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

Жизнь и смерть беспозвоночных в системе

Крис Касперски

Хакер, номер #089, стр. 089-050-6


.text:77F82C30 ZwProtectVirtualMemory proc near ; CODE XREF: sub_77F81C0C+10E?p

.text:77F82C30 ; sub_77F8DFB8+85?p ...

.text:77F82C30

.text:77F82C30 arg_0 = dword ptr 4

.text:77F82C30

.text:77F82C30 mov eax, 77h ; NtProtectVirtualMemory

.text:77F82C35 lea edx, [esp+arg_0]

.text:77F82C39 int 2Eh

.text:77F82C3B retn 14h

.text:77F82C3B ZwProtectVirtualMemory endp

Очень немногие сторожевые программы работают на таком низком уровне, поэтому мы имеем хорошие шансы остаться незамеченными, однако... риск все-таки есть. Что поделаешь — такова специфика нашей профессии. Но глубже спускаться уже некуда! Ниже только ядро! Нет, можно конечно, написать драйвер, разбирающий каталог страниц и внедряющий код напрямую в физическую память, или сделать то же самое с прикладного уровня, обратившись к псевдоустройству "\\Device\\PhysicalMemory", которое вплоть до Windows 2003 Server SP1 было доступно администратору на чтение/запись, но теперь работать с ним не может даже System, отбрасывая нас назад к драйверу (см. статью Changes to Functionality in Microsoft Windows Server 2003 Service Pack 1 Device\PhysicalMemory Object на сайте Microsoft: www.microsoft.com/technet/prodtechnol/windowsserver2003/library/BookofSP1/e0f862a3-cf16-4a48-bea5-f2004d12ce35.mspx). Другая сумасшедшая идея — спуститься на секторный уровень, забраться в файл подкачки и слегка "подправить" программу. Но ведь это же бред! Существуют гораздо более элегантные и незаметные способы безопасного внедрения! Нам ведь все равно, в какую программу внедряться, правда? Мы же ведь не вендетту устраивать собираемся! Мы чужие ресурсы ограбить хотим. Многие программы поддерживают плагины и другие виды расширений. Достаточно забросить модуль в определенную директорию или слегка подправить конфигурационный файл (реестр). Программа загрузит наш плагин как родной, и мы окажется в чужом адресном пространстве, в пределах которого можно делать все что угодно. Другое могучее орудие пролетариата — макросы. FAR хранит их в реестре и позволяет переназначить любую комбинацию клавиш, даже уже занятую. Также он позволяет макросам подавлять вывод на экран. Что это значит? А вот что! Возьмем комбинацию, которая используется как можно чаще (например <Alt>+<F1>, отвечающая за выбор диска в левой панели) и повесим на нее последовательность э… некоторых "полезных" действий (необязательно деструктивных), а после этого нажмем <Alt>+<F1> для вызова настоящей панели, чтобы у пользователя не возникало никаких подозрений, что здесь что-то не так. Поскольку FAR предоставляет доступ ко всем командам командной строки, возможности макровирусов оказываются поистине безграничны! Причем обнаружить присутствие посторонних макросов очень сложно, разве только специально их искать, но для этого потребуется установить дополнительный плагин, отображающий макрокоманды в "естественном" виде, иначе в них сам мыщъх хвост оторвет. А знаменитый Лис? Да это целое кладбище для хакеров готического типа! Бери и хакерствуй, в смысле устанавливай свои собственные расширения. "Левые" расширения легко обнаружить, просто просмотрев перечень уже установленных, однако далеко не всякий пользователь с уверенностью сможет сказать, какие расширения он устанавливал и когда. Последние версии Оперы также поддерживают расширения в виде мини-приложений, которые никем не контролируются.

Назад на стр. 089-050-5  Содержание  Вперед на стр. 089-050-7