Смекни!
smekni.com

Программные закладки типы, способы внедрения и защиты (стр. 4 из 9)

Короче говоря, троянской можно считать любую программу, которая втайне от пользователя выполняет какие-то нежелательные для него действия. Эти действия могут быть любыми — от определения регистрационных номеров программного обеспечения, установленного на компьютере, до составления списка каталогов на его жестком диске. А сама троянская программа может маскироваться под текстовый редактор, под сетевую утилиту или любую программу, которую пользователь пожелает установить на свой компьютер.

Рассмотрим наиболее известные примеры троянских программ.

2.2.1. Back Orifice

Троянский конь Back Orifice (BO) по своей сути является достаточно мощной утилитой удаленного администрирования компьютеров в сети. Back Orifice является системой удаленного администрирования, позволяющей пользователю контролировать компьютеры при помощи обычной консоли или графической оболочки. В локальной сети или через Internet, BO “предоставляет пользователю больше возможностей на удаленном Windows-компьютере, чем имеет сам пользователь этого компьютера” - сказано в рекламном объявлении на одной из хакерских Web-страниц.

Единственная особенность этой программы заставляет классифицировать ее как вредную троянскую программу: отсутствие предупреждения об инсталляции и запуске. При запуске троянец устанавливает себя в системе и затем следит за ней, при этом пользователю не выдается никаких сообщений о действиях троянца в системе. Более того, ссылка на троянца отсутствует в списке активных приложений. В результате "пользователь" этой троянской программы может и не знать о ее присутствии в системе, в то время как его компьютер открыт для удаленного управления.

Троянец распространяется как пакет из нескольких программ и документации. Все программы написаны на C++ и компилированы Microsoft Visual C++. Все программы имеют формат Portable Executable и могут выполняться только в среде Win32.

Основной программой в пакете является BOSERVE.EXE (затем этот файл может быть обнаружен под различными именами) - это основная "серверная" компонента троянца, которая ждет вызовов от удаленных "клиентов".

Вторым файлом является BOCONFIG.EXE, конфигурирующая "сервер" и позволяющая "прикрепить" BOSERVE.EXE к каким-либо другим файлам (как это делают вирусы). При запуске таких приложений вирус "выкусывает" их из зараженного файла и запускает на выполнение без каких-либо побочных эффектов.

В пакете также присутствуют две "клиентские" утилиты (консоль и графический интерфейс), они позволяют "клиенту" управлять удаленным "сервером". Еще две программы являются утилитами компрессии/декомпрессии файлов - они используются для копирования файлов с/на удаленный "сервер".

Рис. 1. Рабочее окно программы Back Orifice 2000

При запуске троянец инициализирует сокеты Windows, создает файл WINDLL.DLL в системном каталоге Windows, определяет адреса нескольких Windiows API, ищет свою копию в памяти и выгружает ее из памяти, если таковая обнаружена (т.е. обновляет свою версию). Затем троянец копирует себя в системный каталог Windows и регистрирует в реестре как автоматически запускаемый процесс:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices.

Затем троянец перехватывает один из сокетов Windows (по умолчанию - сокет 31337) и остается в памяти Windows как скрытое приложение (т.е. без активного окна и ссылки в списке приложений). Основная процедура перехвата сообщений затем ждет команд от удаленного клиента. Сокеты команды передаются в зашифрованном виде. В зависимости от команды троянец выполняет следующие действия:

· высылает имена компьютера, пользователя и информацию о системе: тип процессора, размер памяти, версия системы, установленные устройства и т.п.;

· разрешает удаленный доступ к дискам (share);

· ищет файл на дисках;

· посылает/принимает файл, уничтожает, копирует, переименовывает, исполняет любой файл;

· создает/уничтожает каталог;

· упаковывает/распаковывает файл;

· отключает текущего пользователя от сети;

· завешивает компьютер;

· высылает список активных процессов;

· выгружает указанный процесс;

· подключается к сетевым ресурсам;

· получает и отправляет кешированные пароли (которые использовались пользователем в течение текущего сеанса), ищет пароль для ScreenSaver (расшифровывает и отправляет);

· выводит MessageBox;

· читает/модифицирует системный реестр;

· открывает/перенаправляет другие сокеты TCP/IP;

· поддерживает протокол HTTP и эмулирует Web-сервер (т.е. троянцем можно управлять при помощи браузера);

· проигрывает звуковые файлы;

· перехватывает, запоминает и затем высылает строки, вводимые с клавиатуры в момент подсоединения компьютера к сети;

и т.д.

Троянец также позволяет расширить список своих функций при помощи подключаемых ресурсов (plug-in). Они могут быть переданы на "сервер" и инсталлированы там как часть троянца и в дальнейшем могут выполнять практически любые действия на пораженном компьютере.

2.2.2. NetBus

NetBus - это вирус из серии backdoor. Вирусы этого типа, попав на компьютер (та часть, которая попадает на компьютер жертвы называется сервером) и заразив его, резервируют под себя порт и добавляют себя в автозагрузку, если это указано в их программе. После этих действий злоумышленник (владеющий клиентом или центром управления) может подключиться к этому компьютеру (если знает его IP-адрес, а в некоторых случаях требуется и пароль к серверу) и делать с компьютером, что душе угодно (это ограничивается лишь фантазией и возможностями вируса). Таким образом, сервер становится "глазами" и "руками" на компьютере жертвы.

NetBus более прост в обращении по сравнению с Back Orifice.

Оригинальный пакет NetBus`а содержит в себе следующие файлы:

· NetBus.exe - клиент (центр управления)

· Patch.exe - сервер. Он написан на Inprise Delphi.

· NetBus.rtf - описание NetBus`а автором.

Чтобы заразить компьютер, требуется запустить на компьютере жертвы сервер NetBus`а (Patch.exe). Запустить его можно, как обычную консольную программу или как CGI-приложение (из web-браузера). Сервер можно запускать со следующими ключами:

· /noadd - для одноразового использования NetBus`а. Сервер только загружает себя только в оперативную память, не копирует себя в папку с Windows и не добавляет свой ключ в реестр

· /port:х – указывает, на какой надо сесть порт (по умолчанию 12345), где х - номер порта. Этот ключ появился в версии 1.7.

· /pass:х - назначает пароль для доступа к серверу, где х - пароль

· /remove - удаляет сервер из оперативной памяти и ключ в реестре для автозагрузки (сам сервер не удаляется из папки с Windows)

После запуска Patch.exe сервер копирует себя в папку с Windows (NetBus написан под Windows NT/9x), создает там файл своей конфигурации Patch.ini и файл KeyHook.dll. Далее сервер добавляет ключ в реестр для своей автозагрузки при каждом запуском Windows.

Ключ: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
Параметр: Patch
Значение параметра: C:\Windows\Patch.exe /nomsg

Стоит заметить, что если имя сервера имело другое название (например, cool.exe), то соответственно и файлы в папке с Windows будут иметь название cool, а значение в ключе реестра имя параметра изменится тоже на cool!!! Достойно внимания еще то, что если запустить сервер без ключей (/port или /pass), то в реестре создается ключ, соответствующий имени сервера, (например, HKEY_CURRENT_USER\PATCH\), а если с ключами то создается файл конфигурации Patch.ini (где хранится пароль, порт и т.д.).

Далее cервер открывает socket в режиме ожидания на указанном порту и ждет подключения клиента. Когда происходит попытка подключиться к этому порту, то NetBus сообщает, что это собственно он и выдает свою версию. И если пароль не назначен, то происходит соединение. Доступ к серверу разрешается по 4444 порту.

NetBus использует для связи двух компьютеров протокол TCP и не шифрует пакеты данных, как Back Orifice.

Рис. 2. Рабочее окно программы NetBus 1.7.

Опишем вкратце функциональные возможности программы:

· Host name/IP - задание имени хоста или IP-адреса жертвы.

· Port – порт, на котором висит сервер.

· Connect!/Cancel - присоединиться/отсоединиться от компьютера

· Scan! - просканировать диапазон адресов на наличие на них сервера NetBus.

· About – раздел «О программе».

· Memo – раздел «Записная книжка».

· Add IP - запомнить введенный IP-адрес.

· Del IP - удалить введенный IP-адрес.

· Server admin - администрирование сервером NetBus`а. Можно добавить/удалить IP-адреса, с которых можно подсоединиться к серверу, выгрузить сервер из оперативной памяти или удалить его.

· Open CD-ROM/Close CD-ROM - выдвинуть/задвинуть каретку CD-ROM’a. Можно задать интервал выезжания (поставив галочку возле in interval) и количество выездов (Function delay).

· Show images - показать изображение (в BMP/JPG-формате). Требуется ввести его адрес.

· Swap mouse/Restore mouse - поменять/вернуть клавиши мыши местами.

· Start program - запускает программу по указанному адресу.

· Msg manager - позволяет отсылать на зараженный компьютер сообщения и присылать ответы на них.

· Screendump - делает снимок экрана и отсылает на компьютер с клиентом.

· Get info - информация о компьютере жертвы.

· Port redirect - перенаправление на произвольном компьютере произвольного порта.

· Play sound - проиграть WAV-файл.

· Exit Windows - позволяет отлогинить пользователя, перезагрузить или выключить компьютер.

· Send text - если в это время находятся активные поля для ввода текста, то туда вставится набранный текст.

· Active wnds - список активных окон. Можно удалить или сделать активными приведенные в списке окна.

· App redirect - перенаправление ввода-вывода консольного приложения на заданный порт.