Internet Exploiter
 
23.03.2004
Андрей Соколов


 
<< стр. 1
стр. 2

Реверсивные трояны

О реверсивных троянских программах следует поговорить отдельно. Термин «троянский конь» (или «троян») в контексте информационных технологий известен каждому. Под троянской программой понимают некий процесс, несанкционированно установленный на удаленной системе и ожидающий некоего события, с возникновением которого он активизируется. Как правило, таким событием является попытка соединения на TCP-порт, проассоциированный с троянской программой. После активизации программа может предоставлять взломщику доступ к командной строке зараженной системы и выполнять ряд функций, заложенных в нее автором. Таким образом, серверная часть трояна находится на удаленной машине, а взломщик в этом контексте является клиентом.

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

- если удаленный компьютер находится в пределах сети с локальной адресацией (то есть, по сути, не имеет реального IPv4-адреса);
- если удаленный компьютер находится внутри «демилитаризованной» зоны, исключающей возможность соединения с располагающимися внутри нее компьютерами извне;
- если удаленная машина оснащена межсетевым экраном, запрещающим доставку пакетов всем портам, кроме разрешенных.

Реверсивные же трояны используют обратную схему работы (отсюда и термин «реверсивные»): на удаленной стороне находится клиент, осуществляющий соединение с сервером, который располагается на стороне взломщика. Такой подход требует больше усилий по кодированию и отладке, но позволяет эффективно обходить вышеупомянутые ограничения.

На сегодняшний день известно о реверсивных троянах, соединяющихся с каким-либо веб-сайтом ради поиска инструкций от взломщика в виде html-страниц. Известны трояны, использующие Интернет-пейджер ICQ в качестве пользователя и ожидающие появления сообщений с UIN’а взломщика. Существуют реверсивные трояны, соединяющиеся и поддерживающие соединение с каким-нибудь публичным IRC-сервером, заходящие на заранее определенный канал и ожидающие там появления «хозяина». Схема, предлагаемая технологией реверсивных троянов, довольно гибкая и универсальная, и ограничивается она, пожалуй, лишь фантазией программиста.

Отслеживание установки (посредством уязвимости браузера, например) и тем более поиск уже прописанного в системе реверсивного трояна — весьма непростая задача для рядового пользователя ПК. Если же мы имеем дело с нетривиальным реверсивным трояном, то здесь может встать в тупик даже опытный администратор систем MS Windows, знающий ОС вдоль и поперек. И коль скоро ошибки в браузере — наиболее вероятная возможность подцепить реверсивный троян, безопасности браузера необходимо уделить максимальное внимание. Самую полную и удобную инструкцию по настройке безопасности Internet Explorer в параноидальном режиме безопасности можно найти здесь: www.security.webmoney.ru/asp/default.asp .

Вот чего следует опасаться.

1 Реверсивный троян может прятаться в системе (прописываясь как сервис, что делает невозможным его отслеживание в списке процессов системы) и активизироваться, например, лишь тогда, когда легитимный юзер активно использует ресурсы компьютера, — чтобы не привлекать внимание неуместными «всхлипами» жесткого диска или мерцанием диода сетевой платы.

2 Чтобы осуществить соединение, реверсивный троян может прикинуться Internet Explorer’ом, «Oперой», почтовым клиентом и даже Интернет-пейджером вроде ICQ. Известно много способов маскировки под любой процесс в ОС Windows, и с помощью этого трюка можно обходить продвинутые межсетевые экраны и политики безопасности, регламентирующие список процессов, которые имеют право «ходить» в Интернет.

3 Реверсивный троян может функционировать в качестве драйвера и встраиваться в компонент сетевой операционной системы Windows. Работа реверсивного трояна на этом уровне может обеспечить невидимость его трафика привычными средствами (снифферами, межсетевыми экранами, антивирусами и т. д.).

4 Реверсивный троян может использовать нетривиальные средства для передачи информации: начиная от ICMP Echo Request-сообщений, которые маршрутизируются практически в каждой сети, и заканчивая отправкой особых DNS-сообщений по следующей схеме:

4.1 Гипотетический DNS-сервер, отвечающий за домен второго уровня, скажем crackster.ru, принадлежит взломщику. На этом сервере установлен особый DNS-сервис, способный производить некие нетривиальные операции.
4.2 Жертва отправляет DNS-запрос своему DNS-серверу на разрешение какого-нибудь несуществующего DNS-имени вроде abbracadabbra.crackster.ru.
4.3 DNS-сервер, не найдя такого имени в кэше, пересылает запрос на DNS серверу crackster.ru, который принадлежит взломщику.
4.4 DNS-сервер crackster.ru отправляет ответ DNS-серверу жертвы. В ответе содержится некий список адресов, число которых ограничено размером UDP-датаграммы DNS-ответа.
4.5 DNS-сервер жертвы, получив ответ, фиксирует его в кэше и отправляет жертве.

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

В заключение отметим, что на сегодняшний день использование уязвимостей клиентского ПО, в том числе и приведенная в статье технология внедрения реверсивных троянов, является одной из самых «перспективных» технологий взлома защищенных корпоративных информационных систем. Она позволяет проникнуть даже на хорошо защищенные объекты (пример: www.dsec.ru/services/ReportEx2.zip), так как их администраторы больше озабочены защитой внешнего периметра, забывая про клиентское ПО и безопасность пользователей, что сегодня совершенно недопустимо.



 
<< стр. 1
стр. 2

<<Hacker-friendly-авторизация
Все материалы номера
Трое в лодке (не считая эксплойта) >>