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

Игра в прятки

Дмитрий Коваленко aka Ingrem

Спецвыпуск: Хакер, номер #048, стр. 048-046-2


Ассоциация с EXE

В своем роде классика. В Windows расширению можно поставить в соответствие программу-обработчик. Например, "Блокнот" чаще всего является обработчиком для .txt-файлов и автоматически запускается при попытке открыть текстовый документ. Троян может прописаться как обработчик EXE-файлов и стартовать при запуске приложений.

Модификация класса папки

Относительно новая техника. Использует то, что некоторым специальным папкам ("Корзина", "Мои документы" и т.п.) поставлены в соответствие классы в реестре. Открой, к примеру, "Мои документы". Там лежит скрытый файл desktop.ini. А в нем следующее:

[.ShellClassInfo]

CLSID2={450d8fba-ad25-11d0-98a8-0800361b1103}

Теперь открой редактор реестра и через поиск найди ветку "450d8fba-ad25-11d0-98a8-0800361b1103" (эта белиберда генерируется системой случайно, так что на разных машинах она разная). В ней увидишь несколько подветок, одна из которых называется InProcServer32. Посмотри на дефолтовый ключик в этой ветке. В нем, если не влезать во все эти "комы" и "о-це-иксы", прописан модуль, работающий с папкой "Мои документы": По умолчанию "=mydocs.dll". Что мешает трояну поработать с mydocs.dll :)?

Также трояну стоит обратить внимание на файлики с расширением .htt. Они называются шаблонами папки и содержат скрипты, выполняемые при ее открытии. Естественно, скрипты эти можно дополнить/подправить ;).

Активно или пассивно?

Для того чтобы в полную силу использовать активные техники, нужны права администратора. У трояна их обычно нет. Хотя, с другой стороны, активные техники позволяют трояну загрузиться вместе с системой и не ждать, когда пользователь сделает что-то, что запустит троян.

Пассивные техники требуют от пользователя выполнения каких-то определенных действий - только тогда троян стартует. До этого он лежит на диске мертвым грузом. Но для пассивных техник не нужны права администратора, более того, пассивные техники в ряде случаев позволяют эти права получить. Например, подменить winword.exe можно и под пользователем. А потом тихо лежать на винте и ждать, когда придет кто-то с админскими правами и попробует открыть документ MS Word в своем сеансе ;).

Так что оптимальным решением для трояна является использование и тех, и других техник в зависимости от обстоятельств.

Умный сплайсинг Native API

Теперь поговорим о стелсе. Чтобы скрыть свое присутствие в системе, большинство троянов используют перехват API. Можно было бы порассуждать о традиционных способах перехвата API, но на эту тему уже написано много хороших статей.

Конечно, придумать новый способ перехвата API у рядового троянописателя вряд ли получится. Но немного усовершенствовать какую-нибудь традиционную технику вполне возможно. Правда, выбор ограниченный. Традиционных техник, по большому счету, всего две: сплайсинг и модификация импорта. Модификация импорта - это довольно надежно, но при реализации приходится учитывать многие нюансы. Поэтому код обычно получается слишком большим и сложным :(. Сплайсинг - более простая техника. В то же время, она считается менее надежной.

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