Первый прикол подойдет для абсолютно любой жертвы. Угадай, кого больше всего боится непросвещенный юзер? Правильно, хакеров! Хакер для ламера сродни божеству, которого малограмотный пользователь старается избегать. Как только работник увидит в консоли слово hack, он тут же вскочит с места и закричит, как будто его писюк загорелся! Давай же заставим бедного работника сделать это . Попробуем составить изысканный списочек файлов, после просмотра которого лицо даже самого стойкого человека покроется красными пятнами. Главное - пофантазировать и составить массив ярких имен файлов, которые ну никак не должны находиться на компе жертвы. Пусть это будут слова cool_porn, trojan, exploit, ddos, attack и т.п. Мы не будем создавать эти файлы физически. Это не элитно . Лучше наколбасить какой-нибудь скрипт, который заменит команду ls. Как ты знаешь, после входа пользователя в систему подгружается файл ~/.bash_profile– эдакий профиль каждого логина (при использовании неначального/порожденного интерактивного командного интерпретатора все настройки читаются из конфига /profile, ~/.profile ~/.bash_profile и ~/.bash_login[/ оболочкой игнорируются, так что будь внимателен). Там могут объявляться новые переменные, процедуры и алиасы. Как раз последнее нам и пригодится. Мы засунем в профиль алиас на команду ls, а точнее, подгрузим шпионский файл ~/.functions с подложными алиасами, чтобы не вызвать панику у слегка «продвинутого» юзера. Прописав алиас в якобы служебном файле ~/.functions, мы добились замены системной команды ls на ~/.tmp/.ls (во временном каталоге будут находиться все твои подложные сценарии). Когда плацдарм для прикола готов, можно приступить непосредственно к кодингу. Как я уже говорил, наша задача состоит в том, чтобы вывести список хакерских файлов по команде ls. Это просто, мало того, для остроты ощущений мы оформим все в цвете – ведь юзер привык, что листинг окрашивает имена документов в разные цвета. Сперва поставим одно условие: если команда имеет параметры, то необходимо обращаться к реальному /bin/ls. Только в противном случае можно активизировать прикол. Таким образом, юзер не сразу догадается, что его подставили. .ls собственной персоной Code: #!/bin/sh if [ "$*" == "" ] then echo -e "\033[01;32m0day-exploit\t\t\t\033[00;mmremap.c\n\033[01;32m7350fun\t\t\t\t\033[01;31moral_sex.mpg" echo -e "all-logwipers.tgz\t\t\033[00;mpasswords.crk\n\033[01;31manal_sex.avi\t\t\t\033[01;34mporno" ....... exit fi /bin/ls --color=auto $* Необходимо знать, что служебная переменная $* хранит в себе аргументы команды. Ее мы, собственно, и анализируем. Для цветопечати нужно воспользоваться конструкцией \033[код_фона;код_цвета+m. Вся сложность прикола в том, что тебе потребуется грамотно выстроить и окрасить цепочку файлов. Результат поражает! Проверено на реальных жертвах. Злополучные каталоги Если тебе кажется, что прикол с ls не выведет жертву из себя, можно попробовать насолить коллеге с помощью команды cd. Интересно, как нормальный человек отреагирует на то, что из-за перехода в каталог стали бы удаляться файлы во всех папках? . Пришло время это проверить. Прописывай второй алиас в виде alias cd=~/.tmp/.cd и приступай к кодингу смертельного сценария. На самом деле ничего удалять мы не будем, просто припугнем юзера, что вся его информация может полететь к чертовой матери, и не забудем перехватить сигнал SIGINT (который, как известно, посылается при нажатии Ctrl+C). Все это реально сделать в маленьком bash-скрипте. Запусти cd и попрощайся с системой Code: #!/bin/sh trap true SIGINT DIRS=`/bin/ls -1 /` for each in $DIRS do echo "rm: cannot remove directory \`/$each': Is a directory" rand=$((RANDOM%10+1)) sleep $rand done Первым делом мы перехватили сигнал. Это осуществляется шелловой командой trap, которой передаются два параметра: команда, выполняемая после прихода сигнала, и сам сигнал. Далее выполняем листинг корневого каталога и загоняем вывод в переменную. Затем создаем цикл по каждой строчке переменной (а строка – название папки в корне) и оповещаем юзера, что внутренности системы незамедлительно удаляются (лишь верхним папкам удается уцелеть. Чтобы жертва не приняла удаление за прикол, генерируем случайное число от 1 до 10 и молчим все это время. В итоге создается реальное ощущение работы с каталогами . Угадай, что сделает юзер в первую очередь, как увидит подобное сообщение? Разумеется, нажмет Ctrl+C. Но не тут-то было! Перехват сделает свое дело и не даст команде аварийно завершиться. Юзер напрасно тратит нервы на убийство роковой команды, бьет кулаками по клавиатуре и монитору и кричит благим матом . Зрелище, которое ты так давно хотел увидеть. Он выключил сервер! Что делают работники в консоли? Правильно, работают . Корректируют документы, компилят различные сценарии и никчемные проекты. Пришло время нарушить их рабочую идиллию и вмешаться в процесс грязными хакерскими руками: создать алиас на профессиональный редактор vi, которым пользуются особо одаренные линуксоиды. Этот скрипт внушит твоему любимому коллеге мысль, от которой у него может пропасть дыхание и желание жить. На его экране появится сообщение, характерное для процесса завершения работы, консоль повиснет, а ты и твои заранее предупрежденные сотрудники повернетесь к нему и начнете «благодарить» разными словами. Ведь он только что… удаленно уронил сервер! Уверен, что у такого работника пропадет желание трудится до конца смены, даже несмотря на то, что на самом деле никакого шатдауна не произойдет. .vi вызывающий halt Code: #!/bin/sh DATE=$(LC_ALL=en date +'%c') TTY=$(basename `tty`) echo -e "Broadcast message from $USER (pts/$TTY) ($DATE)\n\nThe system is going down for system halt NOW!" sleep 500 Чтобы осуществить прикол, нужно знать вывод команды halt. Уверен, ты выучил его наизусть. Осталось лишь вставить в мессагу переменные $USER, $TTY и текущую дату. Последняя выводится на буржуйском языке в формате %c, как это видно из кода. Что касается псевдоустройства, то прежде чем его напечатать, необходимо удалить из переменной каталог /dev/. Эта проблема быстро решается при помощи регвыра утилиты sed, либо при помощи программы basename. В скрипте был использован второй вариант. Можешь нагрузить сценарий перехватом сигнала SIGINT (чтобы реальнее было!) и отключением отображения символов (с помощью команды stty). Удаляем... и зависаем! Часто юзер вычищает из своего каталога мусор. Чтобы выпендриться, некоторые личности юзают консольную команду rm, а не удобный интерфейс редактора mc. Над такими коллегами мы и будем прикалываться. Представь, что юзер запустил rm, а бинарник злосчастно завис. Жертва будет искать всевозможные причины – протрояненный /bin/rm, падение сервера или повреждение кабеля. От тебя требуется лишь поддакивать ламеру, мол, у меня такая же проблема, не волнуйся, друг . Алгоритм сценария будет следующим: скрипт проанализирует параметры rm и возьмет последний в качестве файла (так оно и бывает чаще всего). Затем будет выведено предупреждение об удалении особо важного документа. Юзер, не раздумывая, попытается нажать «y», но не тут-то было! Консоль намертво подвиснет. Это произойдет из-за того, что в сценарии будет выключено отображение ввода, а также перехвачен сигнал SIGINT. .rm – удалит файл и подвесит систему Code: #!/bin/sh trap "stty echo" EXIT trap true SIGINT for file in "$@" do last=$file done echo -n "rm: remove write-protected regular file \`$file'? " `stty -echo` while read $deep do false > /dev/null 2> &1 done Видно, что на всякий случай я перехватил и второй сигнал – сигнал выхода из программы. Когда это произойдет (через kill и т.п.), все символы снова будут отображаться как ни в чем не бывало. До повторного запуска /bin/rm . Только для посвященных! По счастливой случайности ты увидел открытую консоль админа, который владеет рутовым паролем? Очень хорошо! Самое время для приколов над умными людьми. Я уверен, сисадм долго будет искать подставу, а когда найдет, не отойдет от открытой консоли ни на шаг. К тому же, если администратор не запалил тебя у его компа, у тебя будет железное алиби . Да, собственно, прикол будет безобидным. Всего-то выведем админу сообщение, что он недостоин рутовых привилегий. Поверь, такие мессаги больше всего бесят сисадмов . Как ты догадался, мы переопределим вызов /bin/su на поддельный .su. В нем напишем, что «к сожалению, юзер не имеет прав для вызова /bin/su». Естественно, прежде чем смотреть алиасы, админ будет долго анализировать свои права и добавлять себя в неизвестные группы (если, конечно, под рукой будет открытая рутовая консоль), а лишь затем догадается о подставе. Немного фантазии - и ты можешь превратить .su в полноценный рутовый шелл, который будет слегка глючить и сбоить. Вот и весь сценарий: #!/bin/sh echo -e "You are not allowed to su root!\nSorry." Пользуясь случаем, напомню, что параметр –e позволяет обрабатывать специальные символы типа возврата каретки, табуляции и т.п. Что нам стоит шелл построить? И наконец, самый хардкорный сценарий, реализацию которого я оставил на десерт. Оно понятно, теперь ты владеешь всеми bash-заподлянками и можешь наколбасить суперский скрипт. Сейчас мы подменим не какой-нибудь бинарник, а целый командный интерпретатор! Когда юзер отойдет на обед (в туалет, покурить, поговорить по мобиле – нужное подчеркнуть ), аккуратно перенеси подложный скрипт в его каталог, а затем запусти его. Перед этим ты умело подкорректируешь приглашение интерпретатора, а также придумаешь заподлянские выводы от команд (впрочем, можешь оставить дефолтовые - я не обижусь). Собственно, творение называется bash, выполняет функции /bin/bash, а на первый взгляд вообще неотличимо от шелла. Но только на первый . Стоит юзеру выполнить какую-нибудь команду, как скрипт ругнется на нехватку памяти, на права, на ошибку сегментации. В итоге у юзера пропадет желание работать, а у тебя существенно поднимется настроение и боевой дух . Поддельный интерпретатор Code: #!/bin/sh BEGIN='[user@localhost user]$ '; trap "echo -n $BEGIN" SIGINT while true; do echo -n "$BEGIN" read cmd if [ "$cmd" != '' ] then rand=$((RANDOM%5+1)) case "$rand" in "1" ) echo "Segmentation fault (core dumped)" ;; "2" ) echo "-bash: fork: resource temporary unavaliable" ;; "3" ) echo "-bash: $cmd: command not found" ;; "4" ) echo "-bash: $cmd: Permission denied" ;; "5" ) echo "Wait for 5 minutes" sleep 300 ;; esac fi done Как я уже сказал, нужно подправить приглашение. Оно задается в первой строке кода. Затем переопределяется реакция на SIGINT (полная имитация Ctrl+C). Потом входим в бесконечный цикл и читаем там команду. Если она поступила, генерируем случайное число от 1 до 5 (это ты уже умеешь делать). Далее анализируем число: если это единица – выдаем ошибку сегментации, двойка – ругаемся на нехватку памяти, тройка – пишем ошибку 404 , четверка – ругаемся на права, пятерка – вынуждаем юзера подождать 5 минут. Никто не мешает тебе нагенерить собственные шутки и внедрить их в скрипт. Для этого достаточно расширить диапазон рандома и вставить пару строк в конструкцию case/esac. Можно придумать всего один прикол, а в остальных случаях исправно выполнять команду. Возможно, так будет интереснее: юзер не сразу поймет, что над ним прикололись. (Це) ][akep
вот ты получил шелл от пользователя нободи и как ты будеш записывть в этот файл ~/.bash_profil если ~ означает хоме папка тоисть если у нободи хомепапка допустим /home/nobody то ты напугаеш сибя а не того кого хочеш Твоя статья похожа на http://forum.antichat.ru/thread20916.html