Про трояны новичкам — HackZona.Ru

Про трояны новичкам

Про трояны новичкам

Тип статьи:
Со старой ХакЗоны.

Бойтесь данайцев, дары приносящих
Трояны: виды, принципы работы, защита

Редкий человек, имеющий отношение к IT, не сталкивался с троянами. По идее, уже давно пора бы перестать вестись на трюки, вроде HotPics.jpg.....exe, ан нет, запускаем «патчи для Эксплорера» и «плагины для Винампа», не говоря уже о «крякерах интернета». Надоело. Читай мануал и будь во всеоружии.

Знаешь, сколько видов живых существ обитает на Земле? Я тоже не знаю, но уверен, что много. Тем не менее, биологи сумели разделить все это многообразие всего на пять царств (кстати, одно из них — вирусы). Правда, царства, в свою очередь, делятся на подцарства, подцарства — на типы, типы — на классы и т.д. Получается довольно сложная система. Электронных форм жизни, естественно, гораздо меньше, но классификация их по сложности не уступает той, что принята у биологов. Удивлен? Конечно, для пользователя AOL есть только два типа программ: вирусы и не-вирусы :), обычный юзер знает еще значение слова «троян», и только уж совсем продвинутые товарищи знакомы с таким понятием, как «червь». Но знаешь ли ты, какую классификацию используют антивирусники? Типичное описание вируса выглядит примерно так: SamiiKrutoiVirus.Вирус.Win32.PE-инфектор.полиморфный(олигоморфный). Впечатляет? Если нет, добавь сюда имя автора (если оно известно), дату появления в Сети, степень опасности etc.

Знаешь, какую ошибку совершил Карл Линней, когда пытался разделить растения на несколько классов? Он объединял их не по строению, а по внешнему виду: тут цветы с пятью тычинками, тут — с четырьмя и т.д. Хм, что-то я в биологию ударился :). Ну, да ладно. Современная же наука делит живой мир на группы, исходя из внутреннего строения существ. Но если рассуждать подобным образом о цифровых формах жизни, возникают некоторые проблемы, так как с точки зрения пользователя, т.е. по внешнему виду, все эти формы одинаковы и имеют вид исполняемых файлов. А классифицируя электронные сущности по внутреннему строению, получим показанную выше систему антивирусников, которая не отличается наглядностью и довольно неудобна. Поэтому мы будем по старинке делить фауну Сети всего на три группы — вирусы, черви и трояны. Но прежде чем приступать к подробному рассмотрению последних, разберемся в отличиях этих форм жизни друг от друга.

Вирус, червь или троян?

Итак, вирусы. Основной признак — вирусы заражают файлы. И забудь про вредоносные вирусы — большинство из них написано озлобленными одиночками; редкая VX-группа релизит вирусы вроде CIH, т.е. с «деструктивной полезной нагрузкой», как они это называют. Ведь вирусы для настоящего вирмейкера — это искусство, музыка. Зачем же портить мелодию криками невинных жертв? Повторюсь, я говорю о настоящих вирмейкерах, которых сегодня не так много, а не о тех индивидуумах, что копируют чужие работы с единственной целью — покрасоваться в вирусной десятке Касперского. И поверь мне, никто из настоящих вирмейкеров не выпускает свои творения дальше своего винта в виде, отличном от исходников.

Черви. Основной признак — не заражают файлы, а просто устраивают себе где-нибудь на винте скрытую резиденцию и оттуда рассылают себя на другие машины. Чтобы создать эффективный вирус, нужно прекрасно разбираться в операционке, под которую ты пишешь, разбираться во всех тонкостях ассемблера (и не говори мне о вирусах на Си) и, к тому же, весьма желателен определенный склад ума. А знаешь, на чем написано большинство сегодняшних червей? Visual Basic и VBScript. Теперь понимаешь, почему их так много? Правда, среди червей иногда попадаются очень достойные экземпляры, но это, скорее, исключение, чем правило. Так что если сила вирусов — в качестве кода, то червей — в количестве инфицированных машин. На рисунке это показано очень наглядно.

Наконец-то добрались и до троянов. Все-таки настоящих вирмейкеров — идейных и благородных — немного, поэтому и вирусы, и черви чаще всего несут в себе некоторый деструктивный элемент. Даже те вирусы, чья полезная нагрузка исчерпывается выведением надписи на экран, могут попортить пользователю немало нервов, что уж говорить о более опасных вирусах. Так вот основной признак трояна состоит в том, что это всего лишь инструмент, а способ его применения — дело второе. Один человек может написать троян исключительно в образовательных целях, изучая сетевые протоколы, а другой использовать этот троян в целях, мягко говоря, не совсем законных :). Вот с этими-то двуликими сущностями мы и будем разбираться все оставшееся время (вернее, место). И первое, что необходимо запомнить — есть два типа троянов: мейлеры и бэкдоры.

Мейлеры

Выглядит это просто: юзер запускает «новый патч для Аутлука», и через несколько минут вся ценная информация уходит на нужный е-мейл. Большинство троянов этой категории похожи друг на друга, как две капли воды, за исключением интерфейса. А похожи они потому, что работают по одному и тому же алгоритму.

Для начала надо устроиться в системе, не вызвав подозрений у жертвы. Согласись, странно, когда патч для Аутлука не патчит Аутлук? Этому должно быть логическое объяснение. Тут методов масса: от примитивных «msmustdie.dll not found» и «already patched», до изысканного метода, когда выводится окошко установки «патча», а после ее завершения открывается readme со списком пофиксенных ошибок :). А в это время троян копирует себя куда-нибудь в %windir%system и спокойно приступает к обработке системы. Для начала ему необходимо прописаться в автозагрузке. Опять же, способов куча. Откровенно тупые трояны вписываются в папку «автозагрузка» или в autoexec.bat. Те, что попродвинутей — в win.ini и system.ini. Ну, а подавляющее большинство прописывается в реестре в следующих местах:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunservices
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunservicesOnce

Освоившись в системе, троян начинает собирать данные. Низкоклассные особи просто отсылают на указанное мыло файлы *.pwl, *.sam и т.д., навороченные же устраивают на винте жертвы целый расшифровочный цех, отправляя хозяину уже готовые пароли от всего, до чего смог дотянуться троян. Зачастую троян записывает все нажатия клавиш и раз в день отправляет домой. Элементарные кони так и живут: загрузился, получил нужную информацию, отправил хозяину. Трояны посложнее реализуют такие вещи, как периодическое самообновление и защита от антивирусов: шифрование и т.д. Самые же достойные представители мейлеров позволяют управлять собой посредством e-mail команд (а также IRC, ICQ или прямого коннекта — прим. ред.). Т.е. троян периодически проверяет определенный ящик, куда хозяин шлет инструкции, типа «PRINT „Have fun!“; DEL C:*.*; END».

Бэкдоры

Слово BackDoor означает «потайной ход». Такой троян состоит из двух частей: клиентской и серверной. Клиент обычно имеет красивый GUI с кучей кнопок и прочие навороты, ибо всю свою жизнь проводит на компьютере хозяина, а значит, не заботится о своем размере. Собственно троян находится в серверной части. До тех пор, пока не пришла пора собирать и отсылать данные, алгоритмы бэкдоров и мейлеров совпадают: обмануть пользователя, устроиться в %windir%system и прописаться в автозагрузке. Но потом начинаются серьезные отличия. Злоумышленник, подославший трояна, выходит в Сеть, запускает клиентскую часть и смотрит, есть ли отклик от сервера, т.е. находится ли жертва также в Сети. Если отклик получен, сервер и клиент устанавливают связь, а дальше все зависит от конкретного трояна: те, что поскромнее, откроют доступ к вражескому винту или еще что-то в этом духе, а те, что покруче, попросту отдадут власть над всем компьютером в руки злоумышленника: тот сможет управлять компьютером жертвы, как если бы сам сидел за ним.

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

Еще один тип

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

Вообще можно выделить еще один тип троянов, хотя правильнее было бы относить такие программы к червям — это трояны, которые вообще не поддерживают связь с хозяином. Если цель мейлеров и бэкдоров заключается в предоставлении доступа к конфиденциальной информации, то цель этих троянов — захват вычислительных или сетевых ресурсов компьютера жертвы. Теперь понятно, почему таких коней иногда называют захватчиками? Они, будучи запущены в стан врага, навсегда забывают о доме и занимаются исключительно своими делами, такими как рассылка спама или атаки на какой-либо сервер — сотня-другая троянов может провести довольно эффективную атаку, будь то DoS или что-то еще. И главное, как и в случае с бэкдорами — ответственность перекладывается их несчастных обладателей.

Как не встрять?

Вирус, расплодившийся на твоем компьютере — это проблема, вирус, уничтоживший твою информацию — это беда, но осознание того, что кто-то смотрит твои картинки, читает твои письма, и сидит в интернете за твой счет, злит гораздо больше. Во всяком случае, меня. Как же не встрять? Прежде всего, почитай статью «Правила поведения в Сети» в этом номере нашего журнала. Там более чем подробно все описано. Отыскивая в Сети интересные трояны для этой статьи, я с трудом нашел незараженные различными подарками, типа вирей и других троянов. Знаешь, как весело выглядит клиент бэкдора А, на самом деле являющийся еще и сервером трояна B? :) Кстати, вот еще информация для размышления: пишется троян, в его коде делается специальный «черный ход», и троян выкладывается в Сеть, на какой-нибудь хацкерский сайт — «Новый крутой троян! Скачай быстрее!» Народ кидается пробовать: захватывают чужие системы, бесплатно сидят в инете и т.д. А тем временем человек, написавший трояна, наслаждается властью над всеми затрояненными компьютерами. Чем-то финансовую пирамиду напоминает. Но так как пользователь нынче пуганый пошел, часто делается так: вместе с трояном публикуются его исходники, мол, все по-честному. Юзер видит файл *.cpp, успокаивается и вляпывается в большие неприятности, так как что стоит выкинуть из исходника реализацию того самого «черного хода»? Правда, товарищи со стажем в подобных делах, в таких случаях не пользуются готовым экзешником, а компилируют свой из предоставленного исходника. Но и для этого метода есть контрмеры: случается так, что те пятнадцать строк, что отвечают за потайной ход, днем с огнем не найти в тысячах строк кода трояна.

Но что делать человеку, который все-таки запустил «патч для Аутлука»? Или тому, кто раскусил подставу и хочет добраться до хозяина? Читать дальше.

Вскрытие

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

1. Для начала необходимо найти файл трояна. Самый простой и быстрый способ сделать это — антивирус. Если он найдет трояна, самое большее, что он сможет сделать — удалить его. Если тебя это устраивает, действуй. Меня же интересует тот гад, который подослал ко мне заразу. Если троян найден, вырубаем антивирус и goto 4.
2. Если антивирь ничего не нашел, будем искать вручную. Запускаем regedit и изучаем ключи автозагрузки (см. выше), а также просматриваем system.ini, win.ini, если мы живем под убогой Windows 9x. Ищем все подозрительные названия: если видишь программу с названием, типа «trojan» или «msfucker», поиск окончен; также нужно обращать внимание на названия, в которых есть слова «server», «srv» или «ras» (Remote Access Service). Если троян найден, goto 4.
3. 99% троянов загружаются вместе с операционкой, и остаются в памяти до выключения компьютера. А значит, если мы просмотрим все процессы, запущенные системой, среди них окажется и троян. Запускаем Task Manager и начинаем изучать список процессов в поисках «левого». Большинство троянов не называют свои процессы подозрительными именами, а выбирают что-то нейтральное, вроде «print service» или «sound mixer». Но какой, к черту, саундмиксер, если у нас запущены только основные службы? Так что ищи все, отличное от ядра системы. Если троян все еще не найден, можешь отказываться от поисков: увы, этот экземпляр тебе не по зубам (или это просто паранойя).
4. Итак, мы знаем, в каком файле сидит троян! Лучше всего взять в руки дизассемблер и разобраться с ним раз и навсегда. Если с дизасмом туго, читай дальше. Запускаем regedit и ищем в реестре все упоминания об этом файле. А найти можно много интересного: мыло, на которое уходят твои пароли, порт, по которому соединяется бэкдор, расположение копий трояна на твоем винте и т.д. Если вся информация о хозяине есть в реестре — поздравляю, что ты будешь делать дальше, зависит исключительно от тебя и, главное, от твоих возможностей :).
5. Если поиск по реестру ничего не дал, запускаем поиск по всему винту: нас интересуют файлы, содержащие имя трояна. Конь может хранить свои настройки в каком-нибудь wincmd.ini, под самым твоим носом.
6. Если и пятый пункт не дал результатов, делаем следующее: внимательно просматриваем файл, в котором сидит троян. Можно найти много интересного: электронный адрес хозяина, IP, порты и т.д. Я видел много троянов-мейлеров, которые хранили в незашифрованном виде адрес, по которому отсылали инфу.
7. Итак, все предыдущие методы не помогли, или тебе нужна дополнительная информация о хозяине. Все довольно просто: ставим firewall (я предпочитаю ZoneAlarmPro) и выходим в онлайн. Троян, будь то мейлер или бэкдор, периодически проверяет, находится ли компьютер в Сети, и, если так, отправляет домой ворованную инфу или пытается соединиться с клиентом. Вот в этот момент, любой нормальный брандмауэр выводит сообщение, дескать, такая-то программа (вот троян и попался) пытается открыть соединение на таком-то порту — разрешить? Нам нужен хозяин, поэтому разрешаем. Троян спокойно соединяется с домом, и наш фаервол показывает IP-адрес этого самого дома! Все, рубим соединение, избавляемся от трояна и начинаем вспоминать, что можно сделать с человеком, зная его IP :).

Ich bin trojan

Теперь я поделюсь впечатлениями о некоторых троянах, попавшихся мне на глаза за последнее время. Кстати, ты знаешь, как разбираться в особенностях работы конкретного трояна, не имея жертвы? В случае с мейлерами все просто — ставишь в настройках свой адрес и читаешь собственные пароли, смотришь, какие антивирусы обнаруживают троян и т.д. Если же тебя интересует бэкдор, запускаешь у себя на машине сервер и коннектишься к нему через клиент по IP 127.0.0.1. Таким образом без лишнего риска можно разобраться в тонкостях настройки и работы трояна, прежде чем использовать его по-настоящему.

BO2K (backdoor, размер сервера 112 Кб, невидим для TaskInfo в 9x)

Только не говори, что не слышал о нем. Я не хотел включать в статью описание таких известных троянов, как NetBus или GirlFriend, но обойти молчанием BackOrifice я просто не мог.
Самый навороченный бэкдор из всех, что я видел. Единственный из перечисленных в этом разделе троянов, который смог укрыть свой процесс от TaskInfo. О BO2K можно написать не одну статью: гибкое конфигурирование, различные способы шифрования, несколько десятков плагинов, Linux-версия — этим список достоинств BackOrifice не исчерпывается. Но рекомендовать этот троян для использования я не могу из-за одного-единственного недостатка, который сводит на нет все его достоинства. Дело в том, что BackOrifice настолько распространен и известен, что наука не знает антивируса, неспособного его обнаружить. Ребята из CultDeadCow пытались исправить это, релизя плагины, призванные скрывать BO от конкретных антивирей, но в целом ситуация не изменилась, и сегодня BackOrifice2000 — отличный инструмент для удаленного администрирования, но никак не троян.

[email protected] соседа (mailer, размер сервера 13 Кб, видим для TaskInfo)
Этот мейлер пользуется в России особым успехом, я бы даже сказал, что это наш национальный троян. Элементарно настраивается, элементарно используется. Примечателен также маленький размер сервера, так что троян можно незаметно присоединить к другой программе. Одним словом, народный выбор: знаний не требуется никаких, эффективность высокая.

Anti-Lamer Light (mailer, размер сервера 24 Кб, видим для TaskInfo)

Простенький почтовый троян, обещает вырубать известные ему антивирусы и фаерволы. Через конфигуратор сервер можно склеить с другим файлом.
Это «облегченная версия» трояна Anti-Lamer Backdoor, который имеет несколько интересных возможностей, но, конечно, и в подметки не годится BO.

FurierTrojan (mailer, размер сервера 38 Кб, видим для TaskInfo)
Хм. Большой сервер, отсутствие возможностей для конфигурации (настраивается только e-mail), определяется TaskInfo. Короче говоря, не наш выбор.

GROB (backdoor/mailer, размер сервера 49 Кб, видим для TaskInfo)

Полноценный мейлер с некоторыми возможностями бэкдора. Самозащита — минимальная, алгоритм работы — стандартный, сервер — большой. Единственным преимуществом перед собратьями является приятный интерфейс клиента :).

Знаешь, зачем я добавил к статье этот краткий обзор? Чтобы ты уловил общее состояние «рынка троянов» на сегодня. Что мы видим: новых бэкдоров практически нет, защиты не хватает даже на то, чтобы качественно спрятать свой процесс, повсюду низкосортные почтовые трояны, фантазия авторов ограничивается выведением окошка «data.cab not found». Но в постоянном появлении новых троянов, пусть и низкопробных, есть свои плюсы. Помнишь, что я говорил о BackOrifice? При том, что технически это самый хороший бэкдор из существующих, использовать его сегодня, по меньшей мере, глупо. В то же время, примитивный троян, вышедший неделю назад, и поэтому еще не занесенный в базы антивирусов, будет гораздо эффективнее могучего BO2K. В качестве «золотой середины» можно посоветовать использовать такие экземпляры, как DonaldDick или NetSphere, которые являются промежуточным звеном между элитными, но слишком распространенными троянами и малоизвестными низкосортными.

Нравится
Не нравится

2 комментария

17:18
Спасибо,за статью. Было интересно почитать.=)
14:31
Спасибо за статью...есть пара моментов, которых я не знал!