Краткий Обзор Исходного Кода Трояна Zeus



Введение

Краткий обзор исходного кода трояна zeus

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

Назвав свое творение Зевсом еще в 2007 году, неизвестный автор трояна взял на себя определенные обязательства, обязывающие его быть если не главным, то хотя бы одним из первых, и надо признать, что он выполнил и даже превзошел эти обязательства.

обязательства.

За последние несколько лет троянец Zeus стал легендарным в Интернете и даже за его пределами.

Ни один из троянцев не процветал так бурно и не распространялся так широко, как этот, а по широте охвата zeus не сильно отстает от печально известного червя Kido/Conficker. Изначально zeus позиционировался как банский троян, то есть программа, которая каким-либо образом проникает в компьютер жертвы и передает своему владельцу конфиденциальную информацию — логины, пароли, номера кредитных карт, CVV2/CVC2-коды и так далее.

Но со временем стали появляться модификации, позволяющие красть корпоративные данные, заражать исполняемые файлы, рассылать спам и так далее.



Краткий обзор исходного кода трояна zeus

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

поддерживать.

Ну а каждая малоинтеллектуальная «школота» занимается поиском Дедиков как центров управления, созданием и распространением троянского клиента, обработкой полученных номеров кредитных карт, обналичиванием и прочими преступлениями.



Краткий обзор исходного кода трояна zeus

Самый показательный пример такого рода — задержание в начале октября 2010 года в США группы студентов из России, сгоревших, скорее всего, из-за своей неуемной жадности и глупости.

Вот их имена: Илья Карасев, Кристина Извекова, Софья Дикова и им подобные.

взятый отсюда .

Однако вся школота отделалась на удивление дешево - каждому дали меньше года тюрьмы и мизерный штраф, хотя в США за подобные преступления можно получить и 40 лет тюрьмы.

Хотя следует отметить, что автор zeus принимал активное участие в работе существующих крупных ботнетов, видимо, в рамках таковых.

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

Недавно Зевс был замешан в еще одной атаке — перед Рождеством кто-то разослал рождественские поздравительные открытки якобы из Белого дома правительственным учреждениям США.

Когда вы переходили по ссылке или открывали прикрепленный файл, zeus тупо сканировал жесткий диск в поисках файлов Word, Excel, PDF и отправлял их на некий сервер в Беларуси.

В целом очень много зацепок от zeus ведут в страны постсоветского пространства, что дает основание подозревать, что он родом из России или Украины, что позже и подтвердилось, ведь комментарии в исходниках и инструкции по работе были написано на русском языке.

А сам графический интерфейс сервера Zeus содержал всего два языка — английский и русский.



Возможности



Краткий обзор исходного кода трояна zeus

Вот немного того, что пишет сам автор о возможностях Зевса:

-Язык программирования и IDE:
Visual C++ (текущая версия 9.0).

Никакие дополнительные библиотеки (crtl, mfc и т.п.

) не используются.



-Поддерживаемая ОС:
XP/Vista/Seven, а также 2003/2003R2/2008/2008R2. В том числе работа под Windows x64, но только для 32-битных процессов.

Полная функциональность бота сохраняется и во время активных сеансов «Терминальных серверов».



-Принцип работы:
Бот основан на перехвате WinAPI методом сплайсинга в Ring3 (пользовательский режим), путем запуска копии своего кода в каждом пользовательском процессе (без использования DLL).



-Процесс установки:
На данный момент бот в первую очередь предназначен для работы под Vista/Seven, с включенным UAC и без использования локальных эксплойтов.

Поэтому бот рассчитан на работу с минимальными правами пользователя (в том числе пользователя «Гость»); поэтому бот всегда работает в рамках сессий одного пользователя (от которого бот был установлен).

Бота можно установить для каждого пользователя в ОС, и боты не будут знать о существовании друг друга.

После установки бот создает свою копию в домашнем каталоге пользователя; эта копия привязана к текущему пользователю и ОС, и не может быть запущена у другого пользователя, а тем более ОС.

Оригинальная копия бота (использованная для установки) будет автоматически удалена вне зависимости от успешности установки.



-Защита:
Уникальные имена всех объектов (файлов, мьютексов, ключей реестра), создаваемых ботом для каждого пользователя и ботнета.

Установленный бот не может быть запущен от другой ОС или пользователя.

Код, использованный для установки бота, уничтожен.

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

Автоматические обновления бота, не требующие перезагрузки.

Мониторинг целостности файлов бота.



-Получение важных данных из пользовательских программ:
Входы с FTP-клиентов: FlashFXP, CuteFtp, Total Commander, WsFTP, FileZilla, FAR Manager, WinSCP, FTP Commander, CoreFTP, SmartFTP. Файлы cookie Adobe (Macromedia) Flash Player. «Файлы cookie» wininet.dll, Mozilla Firefox. Импортируйте сертификаты из хранилища сертификатов Windows. И следим за их дальнейшим добавлением.

Мониторинг нажатия клавиш клавиатуры.

Сделаю несколько комментариев по поводу высказываний автора zeus: попавшая ко мне версия была скомпилирована на компьютере автора с использованием MS Visual Studio 10.0, поэтому файл комментариев несколько устарел.

Возможно автор не удосужился обновить их для пользователя, которому продал исходники, или что-то еще.

Что касается принципа работы, то автор решил не заморачиваться с написанием драйверов, повышением привилегий и другими загрузочными фишками, которые в последнее время очень популярны среди вирусописателей, и неслучайно такой олдскульный подход вполне оправдан, поскольку Бот работает крайне стабильно на всех семействах операционных систем Windows, работоспособен даже из гостевой учетной записи и имеет минимально возможную вероятность быть пойманным антивирусом.

Более того, в операционных системах семейства Windows после выхода XP SP2 для поддержки технологии «горячего патча» пролог каждой функции был сделан постоянной длины в 5 байт, что избавило zeus от таскания с собой дизассемблера BeaEngine, и это, несомненно, пошло троянцу на пользу, ведь автор «Зевса» называет дизассемблер «довольно громоздким, хотя и универсальным».

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

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

Если создан, то этот процесс заражен.

Но имя, скорее всего, уникальное для каждого экземпляра клиентской программы, поэтому так просто запихнуть его в правила антивируса не получится.

Вот еще несколько интересных строк: «При установке бот создает свою копию в домашнем каталоге пользователя.

На данный момент файлы бота не скрыты через WinAPI», что дает нам отличный способ обнаружить именно этого бота.

И вообще – в корне домашнего каталога пользователя не должно быть никаких подозрительных файлов! Особенно исполняемые, странно, что антивирусы об этом не знают. В целом схема распространения этой версии zeus довольно примитивна - пользователь переходит по ссылке, полученной в спам-письме, или через зараженный pdf-документ, и запускает программу-установщик zeus, которая шифрует вирус уникальным для каждого шифром.

отдельного пользователя, после чего установщик удаляется и вирус может быть запущен только на этом конкретном компьютере под этим пользователем.

Никакого распространения через сетевое сканирование, флешки и прочие новомодные штучки.

Все это, безусловно, ограничивает распространение трояна, но делает его гораздо более устойчивым к антивирусам, что, судя по масштабам распространения zeus, более чем оправдано.

По поводу «Получение важных данных из пользовательских программ» — правда, такой функционал существует. Правда автор забыл написать, что взломщик паролей CuteFTP в текущей версии закомментирован, то есть в сборку не попадает, судя по тому, что он не доработан, а расшифровка пароля для WsFTP не реализована на все, что отражено в комментариях источников, но это все мелочи; ) Странно, что автор не заморачивался с паролями от аськи, скайпа, сохранил пароли от соцсетей.

сети и т. д., все эти данные с радостью крадут другие трояны.

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

Кстати, среди браузеров автор не упомянул Google Chrome, на случай, если его данные не будут украдены трояном, поэтому, возможно, лучше использовать браузер от Google, хотя я этот вопрос не исследовал.

Ну и как понятно из всего вышесказанного, zeus необычайно распространён, добротно сделан, стабилен и скрытен в работе, легко адаптируется к различным новым задачам и, кроме всего прочего, работает под подавляющим большинством операционных систем семейства Windows. , включая 64-битные.

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

, благодаря чему каждый получил возможность узнать вредоносное ПО, так сказать, изнутри.



Анализ



Краткий обзор исходного кода трояна zeus

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

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

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

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

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

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

Видимых следов какой-либо системы контроля версий нет, и это еще раз подтверждает предположение, что это была не утечка исходников от их создателя, а пакет исходников, проданный какому-то клиенту.

Ведь вряд ли автору удалось проработать 4 года и дойти до версии 2.0.8.9 без контроля версий.



Краткий обзор исходного кода трояна zeus

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

клиент — сам вирусный клиент или бот, который проникает и поселяется на компьютерах жертв.

Здесь находится самый большой по объему код, ведь трояну нужно уметь многое.

builder — сборщик новых версий вирусного клиента на основе скомпилированного содержимого каталога «клиент» bcserver — сервер для работы на дедике, к которому будут подключаться боты.

server[php] – веб-интерфейс для управления ботнетом.

bin — это некоторые из сторонних разработчиков, которые использует проект zeus. Все остальные сторонние компоненты были переписаны для zeus API, например vnc — дизассемблер на движке BeaEngine. Этот каталог содержит fasm, php, 7zip, upx.

Краткий обзор исходного кода трояна zeus

Первое, что бросилось в глаза, это система сборки.

Хотя zeus создан для Visual Studio 10, система сборки написана на PHP. Это очень необычное и редкое решение, поскольку разработка системы сборки на PHP нетипична для Windows-систем, да и вообще не характерна для каких-либо систем.

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

Где он мог это получить? Только на своей предыдущей или нынешней работе и скорее всего он участвовал в разработке этой системы.

Код почти полностью написан на C, только там, где используются COM-интерфейсы, C++ используется неохотно.

Хотя автор регулярно пишет TODO, что некоторые части нужно переписать с помощью COM. Весь код хорошо прокомментирован, такое ощущение, что все комментарии написаны в стиле какой-то системы самодокументации, типа javadoc или qtdoc, но более примитивной, видимо проприетарной, что использовалось на прежней работе автора бота .

Почти все комментарии в коде написаны на русском языке, и это очень существенно, поскольку говорит о том, что автор не работал в крупных международных проектах, потому что у них 100% запрет на комментарии, написанные национальными алфавитами.

В php комментарии находятся в формате utf-8, тогда как в коде C комментарии находятся в формате win-1251. Также вполне возможно, что автор плохо говорит по-английски, поскольку, как пояснялось в предыдущем абзаце, он не работал с иностранцами.

Правда, здесь есть одно препятствие — файл manual_en.html, который написан на более-менее приличном английском языке, но, возможно, у автора есть помощник, говорящий по-английски.

Но повторюсь еще раз — я на 99% уверен, что C-код всего Зевса, включая систему сборки, писал один человек.

Вероятность 80%, что код администратора PHP для Бонтена написал один и тот же человек.

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

Еще раз - я категорически утверждаю, что весь C-код zeus был написан одним человеком, ни о какой команде хакеров и ни о какой передаче исходного кода zeus разработчикам SpyEye речи не идет, чем они нас так напугали.

СМИ, разговоров нет, все стилистически и функционально настолько четко выверено и просчитано, что даже не видя кода до конца, можно примерно представить, что там будет. Сам код меня в каком-то смысле даже порадовал - нет больших некомментированных кусков, нет даже неформатированных кусков, все лаконично, понятно и красиво, сразу видно, что код регулярно рецензируется автором.

Еще одной отличительной особенностью является высокая степень абстрагирования кода от системных вызовов и вообще работы с конкретной операционной системой.

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

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

Меня немного удивила зачастую довольно большая длина строк в исходных файлах — зачастую она превышает 200 символов! С одной стороны, это говорит о том, что у автора монитор не менее 24", с другой стороны, до сих пор непонятно, как он, например, использует такие утилиты, как диффинг разных ревизий исходного кода; с длинными строками, даже 32 дюйма мало).



Краткий обзор исходного кода трояна zeus

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

Поэтому неудивительно, что он стал настолько популярен среди компьютерных преступников всех мастей и мастей и, судя по всему, принес своему создателю не менее 100 000 долларов.

Хотя, стоит отметить, что автор в нескольких комментариях жалуется, что ему не на чем тестировать некоторые компоненты вируса, например SetColourMapEntries в vnc и SEC_I_CONTEXT_EXPIRED, SEC_I_RENEGOTIATE в ssl. Это никак не вяжется с предполагаемыми доходами автора, хотя Москва, где предположительно проживает автор трояна, — дорогой город. В общем, мне кажется, что если zeus продолжит развиваться дальше, за голову неизвестного автора будет объявлена награда, так же, как когда-то Microsoft объявила награду в $250 000 за голову создателя червя Kido. Еще немного об авторе - видимо этот парень давно ушел с прежней работы, потому что даты модификации некоторых исходников - 4 утра, 12 ночи и так далее, короче время, когда любой порядочный разработчик должен спать по порядку идти на работу утром работать.

Мне могут возразить, что возможно на компьютере, где происходила разработка, намеренно было установлено неправильное время? Ерунда! Автор наверняка использует в своей разработке несколько компьютеров, но со временем особо поиграться не получится, по крайней мере системе хранения исходного кода это не понравится.

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

В общем, самые неприятные ощущения при работе с кодом я испытал в тот момент, когда запускал файл make_debug.cmd, и все собралось довольно быстро и без заминок.

Получается, что любая школота, настроив базовый конфиг, начнет клепать свои копии ботов.

Хотя надо отдать должное системе сборки, она сработала на ура.



Краткий обзор исходного кода трояна zeus

В файлах «source\builder\resources\"resources.aps" и "zeus.sln" мы обнаружили чрезвычайно интересную строку "C:\Users\jam3s\Desktop\Zeus\source\builder\resources\resources.rc", это полный путь на диске, на котором хранилось дерево проекта на исходном компьютере разработчика.

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

Позже автор стал более «продвинутым» и скопировал дерево исходников проекта в «c:\zeus», это мы можем узнать из любого исходного объектного файла проекта.

Поиск в Яндексе и Гугле не выявил явных личностей с ником jam3s, но особых результатов я и не ожидал, ведь автор Зевса так просто не обожжётся, птица летит не туда.

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



Краткий обзор исходного кода трояна zeus

В целом можно кратко составить следующий обобщенный портрет бота-писателя: — Молодой человек от 28 до 35 лет, русский.

— Я несколько лет работал в более-менее крупной компании разработчиком программного обеспечения, с иностранцами компания не сотрудничала.

— Живет 90% в Москве, 80% в Санкт-Петербурге — Не знает английского языка или знает его плохо.

— Использует никнейм jam3s.

Эпилог



Краткий обзор исходного кода трояна zeus

Говорят, что оружие, предназначенное для убийства, имеет свою скрытую эстетику, изгиб линий и очертания форм придают таким предметам скрытое очарование, вызывая у наблюдателя смесь восхищения и ужаса.

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

Возможно, пока вы читаете эти строки, кто-то из очередных владельцев ботнета пристально наблюдает за вами через vnc, терпеливо ожидая, пока вы войдете в свой банковский счет? Но не все так плохо, пример автора zeus подсказывает нам, что для опытного и целеустремленного программиста-одиночки нет ничего невозможного, даже если он вынашивает самые низменные и коварные планы.

Да пребудет с вами сила Хабра!

Краткий обзор исходного кода трояна zeus

Теги: #троян #zeus #хакер #zeus #информационная безопасность

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.