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

Куча с горкой

Хаштамов Адиль (adi1@ok.kz)

Хакер, номер #081, стр. 081-074-4


Как видно из скрина, сервер упал и значения EAX, ECX подменились на 0x61616161. Это говорит о том, что мы в состоянии удачно выполнить код. Сам эксплойт, который будет открывать доступ к шелл-оболочке, очень прост для понимания, и ты его можешь наблюдать на нашем диске. В нем я использую winsock для соединения с сервером (у нас он висит на 6666 порту). При подключении на него эксплойт формирует строку для переполнения. Для этого мы заполняем выделяемый в программе буфер, организуя короткий переход jmps, передающий управление фильтру, который после этого перезаписывается инструкцией call dword ptr [edi+0x74]. Эта инструкция в нашем случае взята из библиотеки RPCRT4.DLL. Управление переходит на «пустышки» (NOP'ы), которые спускаются до нашего шелл-кода, который и исполняется серверной частью. Шелл-код работает по следующему принципу. В самом начале по структуре winsock мы открываем 28876 порт на машине. Далее создаем процесс cmd.exe с помощью CreateProccess(), который «вешается» на вышеуказанный порт, поэтому при подключении на него, ты получаешь интерактивную командную строку. Для более ясного понимания работы сплоита советую тебе запустить сервер вне отладчика, а потом «прикрепиться» к нему с помощью OllyDbg. Все эти действия можно наблюдать на картинке под номером 5.

Как видно, все наши теоретические прикидки и расчеты реализовались на практике, мы перезаписали фильтр, наш код исполнился удачно и на 28786 порту открылся гейт для доступа к cmd.exe :).

[заключение]

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

CD/DVD

На нашем диске ты найдешь полные версии программ, описанных в этой статье, подопытное приложение Server.exe для экспериментов и сплоит для программы - в ознакомительных целях.

INFO

Описанная методика является платформозависимой и для каждой версии системы нужно собирать свой сплоит, указывая различные адреса фильтров.

INFO

Количество выделяемой памяти в куче указывается в PE-заголовке экзешника и может быть изменено.

WARNING

Эта статься написана в исследовательских целях для ознакомления с растущей угрозой со стороны сетевых червей: ведь остановить продвижение заразы можно лишь, как следует разобравшись с тем, как она распространяется. За незаконное применение полученных сведений несешь ответственность только ты сам.

Назад на стр. 081-074-3  Содержание