Куча с горкой Хаштамов Адиль (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 Эта статься написана в исследовательских целях для ознакомления с растущей угрозой со стороны сетевых червей: ведь остановить продвижение заразы можно лишь, как следует разобравшись с тем, как она распространяется. За незаконное применение полученных сведений несешь ответственность только ты сам. |