Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 109, ЯНВАРЬ 2008 г.

По горячим следам

Леонид «R0id» Стройков

Хакер, номер #109, стр. 054

(stroikov@gameland.ru)

Берем след хакера с целью собственной наживы

В последнее время нередки случаи повторных взломов одних и тех же ресурсов. Это неудивительно: большинство уязвимостей общеизвестно, а их эксплуатация напрямую зависит от прямых рук атакующего. В сложившейся ситуации отлично чувствуют себя те, кто сумел приспособиться к такому порядку вещей, умело находя следы чужой работы. Ведь как приятно получить с десяток веб-шеллов в течение часа, приложив минимум усилий! С другой стороны, всегда интересно наблюдать за работой таких же, как и ты, тихо и незаметно перенимая опыт коллег по цеху. Поверь, зачастую не нужно изобретать велосипед, достаточно лишь грамотно использовать плоды чужого труда. Как это сделать? Сейчас ты все поймешь сам.

Берем след

Итак, представь, что тебе необходимо заполучить достаточно большое количество веб-шеллов. Причем желательно разносерверное расположение каждого из них (то есть один веб-шелл на одном сервере). В таком случае рутать бажного хостера и заливать в пользовательские веб-каталоги хакерские скрипты не имеет смысла. А искать уязвимые сервисы, руководствуясь багтраком, долго и муторно. К тому же ни один из подобных вариантов не способствует быстрому выполнению поставленной задачи. Поэтому мы будем действовать другими методами :).

Для начала обратимся к любимому Гуглу. Если ты наивно полагаешь, что поисковик хакеру не товарищ, то глубоко заблуждаешься. Google не раз выручал меня в трудных ситуациях (читай подшивку «Хакера»), и этот случай не исключение. Как ты помнишь, поисковик позволяет составлять довольно хитрые запросы, используя специальные конструкции (например, filetype, insite, index.of, etc). Мануалов по теме хватает, поэтому я ограничусь лишь краткими комментариями :). Изначально было решено отталкиваться от запроса в Гугле типа:

inurl:r57shell+filetype:php

Для тех, кто не в теме, поясню: ключ inurl позволяет проводить поиск по адресной строке, а параметр filetype определяет указанное нами расширение. Таким образом, после нажатия на <Enter> Google в два счета вывел пару десятков линков, удовлетворяющих моему требованию (скрипт r57shell.php в составе ссылки). Благодаря этому мной был сразу же получен первый r57-шелл:

http://www.kaup-stabau.com/r57shell.php

На сервере крутилась Линуха, MySQL, Apache и PHP версии 4.4.2 с опцией safe_made=ON. Тем не менее это не помешало мне слить базу, заботливо упакованную в zip-архив и размещенную в корне веб-каталога :). С заметно улучшившимся настроением я принялся экспериментировать дальше, а подредактированный запрос к поисковику принял такой вид:

intitle:r57shell+filetype:php

То есть я попросту позволил Гуглу выдавать мне в качестве результата страницы, содержащие в заголовке строку «r57shell» и имеющие расширение php. Объем предоставленных поисковиком линков меня просто потряс. Конечно, около 50% ресурсов не имели никакого отношения к искомому объекту, зато остальные 50%... :) В общем, в течение часа я собрал порядка 20 вполне работоспособных веб-шеллов, к примеру:

http://angelfud.com/e/r57.php

http://milfmuncher.net/dump.php

Но и на этом останавливаться я не собирался :). Посуди сам, ведь r57 не единственный в мире веб-шелл, ведь полно и других, не менее распространенных скриптов, не так ли? Примером тому служит популярный c99shell, который прекрасно находится в Гугле с помощью аналогичных запросов:

c99shell+filetype:php

c99+filetype:php

inurl:c99shell+filetype:php

Старания мои не были напрасны, и список нажитого добра пополнился десятком записей:

http://www.craptv.com/store/test.php

http://www.pcpoliti.com/hilp.php

http://www.minimail.fr/admin/files/c99.php

Надо сказать, что после двух часов активного парсинга веб-шеллами я был обеспечен на месяц вперед :). Прочувствовав суть затеи и радость от сбора урожая, я не поленился пробежаться по другим скриптам, в том числе и по MySQL-клиентам, ASP-шеллам и прочим прелестям из стандартного хакерского набора. Несмотря на то что запросы к поисковику приходилось постоянно редактировать, результат не переставал меня радовать :).

Наигравшись с массовым парсингом, я начал подумывать о точечном поиске ранее залитых веб-шеллов на конкретно взятом ресурсе. Отличия запроса в этом случае были невелики, и в общем виде он выглядел так:

название_шелла+inurl:адрес_ресурса+filetype:расширение_скрипта

Взяв для примера один из турецких госресурсов в доменной зоне .gov.tr, я без особого труда опробовал теорию на практике :). «Счастливцем» оказался сайт, располагавшийся по адресу www.iett.gov.tr. Я перепробовал несколько запросов к Гуглу, и мне таки повезло:

c99shell+insite:www.iett.gov.tr+filetype:php

На сервере лежал c99-шелл, залитый ранее одним из моих знакомых:

http://www.iett.gov.tr/kitap/kitap.php

То, что было с госресурсом дальше, - это тема для отдельной статьи, которую я, быть может, когда-нибудь напишу :). Но, как ты понимаешь, шеллы - далеко не самоцель, да и работать через веб-интерфейс не всегда удобно. Думаю, ты уже догадался, о чем я :). Если в Сети полно хорошо (и не очень :)) спрятанных веб-шеллов, то бэкдоров, висящих на стандартных портах, еще больше. А о функции bind из тех же r57, c99 и им подобных и говорить не стоит. Как правило, многие из атакующих предпочитают не париться и открывают дефолтный порт под номером 11457 (без логина/пароля :)). Признаться, порой мне тоже лень изменять значения порта в сорце бинд-шелла (его исходник ищи на нашем DVD).

Как видишь, простенький бинд-шелл с дефолтными параметрами имеет все шансы спасти мир :). Кроме того, ничто не мешает сканировать диапазон IP-адресов на наличие открытого искомого порта. А учитывая то, что создать собственную базу по стандартным портам распространенных бэкдоров не столь сложно, появляется возможность разжиться халявным доступом куда угодно.

Собираем улики

Но кроме банального парсинга Гугла и скана широкого диапазона IP'шников есть и более интересные вещи. Тебе никогда не хотелось понаблюдать за чьей-либо активностью на хакнутом сервере? А поиметь парочку приватных сплоитов совершенно бесплатно? :) Спешу тебя заверить, что и первое, и второе вполне возможно. Для этого не нужно быть экстрасенсом и обладать телепатическими способностями, вовсе нет. Достаточно проявить капельку внимания к взломанным объектам, приправив ее соответствующими знаниями :). Ведь если что-то смог сделать ты, то неисключено, что то же самое сможет сделать кто-нибудь другой (и наоборот). Мне не раз доводилось находить на ломанном сервере чужие скрипты/бэкдоры/сплоиты/etc. Где именно искать все это добро? Вопрос, скорее, риторический, но несколько советов я дам:

1. Первым делом всегда осматривай каталог /tmp на никсовых серваках. В процессе взлома им редко кто пренебрегает, поэтому найти там следы жизни представляется очень вероятным.

2. Проводи глубокий анализ .bash_history всех пользователей, на доступ к каталогам которых хватает прав. Этот дружелюбный для хакера файл хранит в себе лог консольных команд, выполненных юзером, там запросто можно подцепить пасс к чужому акку (от SSH или БД). Например, на одном из серверов в .bash_history я нашел довольно любопытную запись:

chmod 777 ./sf/bouncer

./sf/bouncer

./sf/bouncer --socks5 --port 24465 --s_user sproot --s_password n0d00t --daemon

Вот так я заполучил аккаунт к соксу, запущенному в качестве демона кем-то до меня:

логин: sproot

пароль: n0d00t

порт: 24465

3. Просматривай (хотя бы бегло) passwd-файл, так как некоторые любят добавлять в систему своего пользователя с рутовыми правами (и пустым паролем). То же самое, кстати, относится и к СУБД, в частности к MySQL. Нередки случаи, когда, поимев рута в БД, атакующий добавляет своего юзера в таблицу mysql.user. Мне несколько раз попадались подобные базы и, думаю, еще будут попадаться.

4. Используй консольный поиск с дополнительными параметрами. Поверь, при умелом обращении с утилой find ты быстро найдешь то, что иначе искал бы часами. В качестве примера приведу запрос на поиск всех .bash_history-файлов на сервере:

find / -type f -name .bash_history

Или попробуем определить все диры с чмодом 777:

find / -type d -perm 0777

По найденным каталогам советую хорошенько пошарить, так как вполне возможно, что в них лежат не только пользовательские доки :).

5. Не забывай о логах, будь то логи Апача, Сендмейла или какого-либо FTP-сервера. В логах всегда можно обнаружить много интересного (начиная с признаков вторжения и заканчивая чужими IP-адресами).

Уловок на самом деле великое множество, так что тренируй свою фантазию и не забывай об уголовной ответственности, которая может наступить вследствие неправомерного доступа к чему-либо :). С другой стороны, если ты в свободное от хака время подрабатываешь админом, то не пренебреги возможностью прочесать свой сервер вдоль и поперек. В моей памяти еще свежа история с руткитом, который провисел на сервере одной из крупнейших забугорных телекоммуникационных компаний более года :).

Заметаем следы

Наверняка, по ходу прочтения статьи ты озадачился как минимум одним вопросом: «Как скрыть собственную активность при взломе?» Сразу скажу, что универсального рецепта здесь нет. Если говорить о заливаемом в веб-каталоги «контенте» (веб-шеллы, мускул-клиенты), то по крайне мерее необходимо юзать примитивную PHP-авторизацию и удалять из скриптов заголовки, хранящиеся между тэгами <title> и </title>. А если речь идет о бинд-шеллах, то как минимум не забывай менять дефолтный порт :). Да и вообще, похакал - убери за собой, зачем оставлять следы, которые могут выдать тебя? Безопасности много не бывает, береги себя.

Danger

Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут!

Info

Анализируй хранящийся на сервере контент, особое внимание уделяй каталогам с чмодом 777 и файлам .bash_history.

Похакал - убери за собой :). Не оставляй на взломанном сервере лишних следов.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001