Эволюция Zeus. Part I

    Intro


    Бот Zeus, пожалуй, один из самых известных представителей вредоносного программного обеспечения. Zeus ведет свою историю с 2007 (или даже 2006) года. Многие ошибочно полагают, что Zeus — просто очередной троян, однако это не так. В действительности, Zeus представляет собой образец так называемого crimeware — программного обеспечения, предназначенного для совершения противоправных действий. В данном случае основное предназначение crimeware Zeus — кража учетных данных, используемых для проведения финансовых операций. По информации аналитиков, он отвечает за 90 % случаев банковского мошенничества в мире.

    Другим заблуждением является утверждение о существовании одного огромного ботнета Zeus. На самом же деле Zeus лежит в основе очень большого числа – вероятно, нескольких сотен – различных ботнетов, и все они контролируются разными группировками киберпреступников. Создатели Zeus просто продают его заинтересованным лицам, а они уже с его помощью формируют собственные ботнеты. Таким образом, правильно говорить не о ботнете Zeus, а о ботнетах, созданных при помощи Zeus. Для отслеживания информации о командных серверах Zeus в феврале 2009 года Роман Хюсси (Roman Hussy), швейцарский специалист по компьютерной безопасности, создал сайт ZeusTracker.

    Zeus, version 1


    Разработчик ZeuS известен под никами Slavik и Monstr, именно он до 2010 года единолично производил сбыт и поддержку своего продукта.

    Структурно Zeus состоит из нескольких частей — билдера (builder) бота и административной панели.
    Основной модуль бота Zeus и билдер написан в среде Visual Studio на языке C и частично С++. Конечный исполняемый код бота Zeus создавался билдером и содержал в себе собственно основной модуль и файл конфигурации. Файл конфигурации содержит в себе адрес управляющего центра, пути к скриптам и другие данные, необходимые для работы. Билдер имеет аппаратную привязку к компьютеру покупателя, то есть мог запускаться только при наличии определенной конфигурации.

    Исследователи отмечают, что в семействе Zeus не используются какие-либо техники сокрытия (rootkit) или использование эксплоитов для повышения своих привилегий в системе. Основной упор делался на стабильность функционирования, в том числе при работе с ограниченными пользовательскими правами.
    Возможности Zeus первого поколения на примере версии 1.3.4.x, март 2010 года (источник):

    • кража учетных данных, вводимых в браузере;
    • кража учетных данных, хранимых в Windows Protected Storage;
    • кража клиентских сертификатов X.509;
    • кража учетных данных FTP и POP;
    • кража и удаление HTTP и Flash cookies;
    • модификация запрашиваемых HTML страниц для последующей кражи учетных данных (Web Injects);
    • перенаправление запросов пользователя на другие сайты;
    • создание снимков экрана;
    • поиск и загрузка файлов на удаленный сервер;
    • модифицирование файла hosts;
    • загрузка и последующий запуск файла с удаленного сервера;
    • удаление критически важных веток реестра для невозможности загрузки операционной системы.

    Начиная с версии 1.4, появился функционал внедрения Web Injects в Firefox. Web Injects — набор HTML и JavaScript кода, обеспечивающий отображение форм ввода учетных данных систем ДБО (дистанционного банковского обслуживания), имитирующих настоящие. При попытке посещении сайта какой-либо системы ДБО через браузер, троян перехватывает запрос и отображает поддельную форму. Украденные таким образом учетные данные отправляются на командный центр злоумышленников. Для затруднения обнаружения антивирусным ПО, Zeus стал использовать полиморфное шифрование и механизм изменения размера своего файла. При этом файл Zeus на каждой зараженной системе шифровал себя заново с новыми параметрами, так что один и тот же билд на разных компьютерах выглядел совсем по-другому.

    Расценки на компоненты версии Zeus 1.3.4.x:

    • билдер и админпанель — от 3000$ до 4000$;
    • модуль Back Connect (любой порт, позволяет например подключиться по RDP) — 1500$;
    • модуль кражи учетных данных из браузера Firefox (form grabber) — 2000$;
    • модуль уведомления и отправки украденной информации через Jabber — 500$;
    • приватный (сделанный на заказ) модуль VNC (удаленного управления, аналог RDP) — 10000$;
    • поддержка работы в ОС Windows Vista/Seven — 2000$.

    Распространение ботов Zeus производилось различными способами. Например, осенью 2009 года он распространялся в спамерских сообщениях, рассылаемых от имени налоговой службы США. В другом случае в письме сообщалось о проведении всеобщей вакцинации от свиного гриппа H1N1. Ссылки в письмах вели на поддельные сайты, созданные злоумышленниками. На сайтах предлагалось скачать и запустить исполняемый файл формата exe, якобы содержащий определенные инструкции. На самом деле файл был ботом Zeus. Для рассылки спама использовались «мощности» ботнета Cutwail (также известного как Pushdo и Oficla). Позднее тактика была изменена и в письмах стали присылаться ссылки на сайты, содержащего в себе iframe или jscript, ведущий на какой-либо эксплоит пак. Это позволяло производить заражение без каких-либо действий пользователя — ему достаточно было перейти по ссылке, и Zeus устанавливался автоматически, конечно, если браузер был подвержен уязвимости (не имел соответствующего обновления безопасности). В процессе написания писем широко использовались методы социальной инженерии.

    Некоторые администраторские панели Zeus имели функцию проверки FTP аккаунтов «на лету» — как только присылалась новая порция украденных учетных данных, производилась проверка на наличие аккаунтов FTP и такие аккаунты сразу проверялись. Если в результате проверки выяснялось, что доступ есть, отдельный скрипт производил поиск файлов на удаленном FTP сервере с расширениями .htm, .html и .php (так как сервис FTP часто используется для заливки контента на сайт) и в эти файлы вставлялся iframe или jscript, ведущий на какой-либо эксплоит пак. Таким образом, происходило заражение сайтов в автоматическом режиме.

    В апреле 2010 года Zeus получил дополнительный функционал внедрения своего дроппера в исполняемые файлы (источник), 512 байт внедряемого кода производили следующие действия:

    • загрузка удаленного файла, URL которого был задан внутри;
    • запуск загруженного файла на исполнение;
    • запуск оригинального кода зараженной программы.

    Этот функционал чем-то напоминает вирусный. Однако если антивирус лечил зараженный файл, у вируса не было больше возможности запуститься. В данном же случае, сохранялся шанс, что антивирус удалит основной модуль Zeus и не тронет дроппер, что позволяет заразить компьютер повторно, возможно новой версией Zeus.

    Конкурент


    Приблизительно в декабре 2009 года на «черном рынке» появился конкурент Zeus — SpyEye, функционал и состав (билдер и админпанель) которого были очень схожи с Zeus, однако цена была ниже, для базовых модулей она составляла около 500$. В дальнейшем конкурентная борьба привела к появлению в SpyEye версии 1.0.7 от февраля 2010 года функции «Zeus Killer», предназначенной для удаления Zeus. Для завершения работы всех копий Zeus, SpyEye посылал команду через именованный канал, открываемый каждой копией Zeus для своих нужд. SpyEye обнаруживал Zeus по специфическому имени мьютекса, который использовался Zeus для обнаружения своей копии и предотвращения повторного запуска. Кроме того, SpyEye мог перехватывать отчеты, отправляемые Zeus, и таким образом не делать двойную работу. Еще одна новинка — модуль, созданный для обхода системы безопасности Rapport компании Trusteer, направленной на блокирование возможности внедрения в браузер вредоносных программ, которая была создана, в том числе, для противодействия Zeus. Билдер SpyEye, как и билдер Zeus, содержал в себе систему лицензирования, основанную на привязке к заданной аппаратной конфигурации. Она реализовывалась при помощи навесной защиты VMProtect.

    По информации с форума, в октябре 2010 года создатель Zeus Slavik передал исходные коды своему конкуренту — разработчику SpyEye, и прекратил дальнейшую разработку. Код был передан человеку с ником Harderman, известным также как Gribodemon. По словам Harderman, исходные коды он получил на безвозмездной основе и брал на себя обслуживание всех бывших клиентов Slavik, в дальнейшем предполагалось некое слияние исходных кодов Zeus и SpyEye. И действительно, с января 2011 года исследователи антивирусных компаний начали обнаруживать новые гибридные версии SpyEye, их нумерация началась с версии 1.3.

    Расценки на компоненты версии SpyEye 1.3.45, август 2011:

    • билдер и админпанель — 2000$;
    • модуль Web Injects для браузера Firefox — 2000$;
    • модуль обхода защиты Rapport — 500$;
    • модуль прокси Socks5 — 1000$;
    • модуль доступа по протоколу RDP — 3000$;
    • модуль FTP Back Connect — 300$;
    • модуль кражи сертификатов из браузера Mozilla Firefox — 300$;
    • модуль кражи учетных данных кредитных карт — 200$;
    • модуль кражи учетных данных из браузеров Opera & Chrome (form grabber) — 1000$.

    Руководство пользователя к этой версии доступно в персональном блоге XyliBox.

    Zeus, version 2.1


    В тоже время исследователи из компании RSA обнаружили некоторые факты, позволяющие усомниться в словах Slavik о выходе из бизнеса. В августе 2010 года, то есть за два месяца до «официального» объявления о прекращении работы над Zeus, был обнаружен ботнет, созданный при помощи бота Zeus, имевшего версию 2.1.0.10. Расследование показало, что комплект указанной версии не продавался на «черном рынке». Последующие обнаружения бота такого типа уверили экспертов RSA в том, что данной модификацией владел один человек (или группа лиц) — в противовес прошлым инцидентам конфигурационный файл бота версии 2.1.0.10 не претерпевал значительных изменений в течение длительного времени (ранее каждый оператор какого-либо ботнета на базе Zeus использовал свой уникальный конфигурационный файл).

    Ключевой особенностью Zeus 2.1.0.10 стало изменение схемы связи с управляющими серверами. Теперь адреса серверов не были жестко заданы в конфигурационном файле. Список адресов формировался с помощью DGA (Domain Generation Algorithm — алгоритм генерации доменных имен). Ранее подобная техника неоднократно применялась в таких образцах ВПО, как Bobax, Kraken, Sinowal (a.k.a. Torpig), Srizbi и Conficker. По сформированным адресам Zeus искал свои командные сервера. Для защиты от перехвата управления производилась проверка цифровой подписи загружаемого файла в ходе своего обновления (так же при помощи Windows Crypto API). Для этого в коде Zeus присутствовал открытый ключ RSA длинной 1024 бит.

    Исследователи из RSA в 2011 году смогли получить доступ к одному из серверов Zeus версии 2.1.0.10. Они обнаружили, что между августом 2010 и августом 2011, более 210 000 компьютеров связывались с этим сервером, на который было передано порядка 200 гигабайт данных с инфицированных компьютеров. Около 42% зараженных компьютеров находились в США. Удалось также выяснить, что один из логинов для авторизации доступа к этому командному серверу был «Slavik». Поэтому эксперты RSA предполагают, что Slavik на самом деле занялся созданием собственного ботнета (возможно, не один).

    Продолжение здесь.
    Share post

    Similar posts

    Comments 47

      –20
      Уже сколько лет боюсь садиться за Windows, тем более чужой… с моим линуксом как то всё намного проще:)
        +40
        Пожалуйста, не разводите очередной холивар. А то у меня создается впечатление, что мои статьи читают только люди из мира Linux, для того, что бы в очередной раз убедиться, какое гуано Windows.
          –17
          Даже не собирался:) обычный комментарий, со своей точкой зрения.
            0
            Не холивара ради: видел много статей про подобное ВПО под Windows, но ещё не встречал статей про ВПО подобного уровня под Linux. Если у Вас есть ссылки на «где почитать» или Вы сами напишете — с удовольствием почитаю.
              +23
              Я думаю (и это только ИМХО), заниматься разработкой подобного ПО под linux нецелесообразно. Доля linux на пользовательских компьютеров очень маленькая. Сил на создание уйдет столько же сколько и на создание версии для винды. В итогде соотношеные выгода\затраты говорит против создания по для linux.
                0
                Как я люблю когда виндо\линукс\мако хейтеры приходят и увидев подобный коммент лезут минусовать карму. Не занимаюсь кармадрочерством, но пишите, хоть если с чем-то не согласны. А так вроде и обплевали и непонятно за что.
                  +3
                  А еще целевые аудитории у ОС немного разные. Никто не мешает под линуксом попросить пользователя установить крутую программу с котятами, запросить у пользователя пароль, вызвать с ним sudo и делать что угодно. Я не виду причин, по которым пользователь, согласившийся на это под виндами не сделает того же самого под линуксом. Но доли таких пользователей скорее всего разные.
                    +1
                    судо/рут нужен, если хочется получить полноценный доступ к ОС. Подавляющей части вирусов это не нужно, нужны ваши данные — парольчики, и прочее. А для этого вполне достаточно уязвимости в вашем браузере, запущенном под вашими же правами. Даже меньше — если у вас Ubuntu, например, посмотрите права в ~. Вас не смущает доступ r для others? Да, конечно, все критичные конфиги и каталоги, типа, .ssh закрыты, но возьмите ~Desktop — опять r! А ведь сюда хомячки кладут всё своё ценное. Возьмите сегодняшний бич под винду — энкодеры, с которыми непонятно что делать вообще и как ловить.
                    Так что мы спокойно живем под линукс, пока он не интересен с т.з. малой популярности у хомячков. Как только понадобится, поверьте, уязвимостей там хватит надолго.
                  0
                  Maldor меня опередил.
                    +4
                    Оно там тоже есть, просто ориентированно не на клиентские машины, а на серверные www.opennet.ru/opennews/art.shtml?num=35392
                      0
                      А еще была серия прикольных вирусов, заражающих столь распространенные нынче домашние роутеры. Основной пут вторжения — bruteforce пароля админки по словарю.
                        +1
                        Запуск руткита производится через загрузку модуля ядра Linux. Но так как команда «insmod /lib/modules/2.6.32-5-amd64/kernel/sound/module_init.ko» добавляется в конец файла /etc/rc.local, а в Debian файл /etc/rc.local завершается вызовом exit 0, команда загрузки модуля размещается после вызова exit, т.е. после перезагрузки руткит не активируется.

                        Как говорится, epic fail :-)
                    –2
                    Я однажды в линуксе пытался запустить виндовый вирус под wine — не получилось. Мне только показали окошко с ошибкой, но сам вирь не запустился. Хотя мой друг ради интереса тоже пытался запускать вирь, и у него получилось!)
                      +1
                      Малварь малвари рознь… Очень часто зловредное ПО опирается на недокументированные особенности ОС, которые могут быть не реализованы в wine.
                        0
                        К сожалению, в последнее время (примерно года три) Wine настолько развился, что огромное число троянов под ним работают.
                      +4
                      И все таки первый в истории вирь погрыз в решето именно пингвина *nix :)
                        +2
                        Я уж в статье про червь Морриса не стал об этом упоминать — но таки да, вредоносные программы сначала появились под NIX системы.
                          0
                          Логично, да, в те времена винда была 2.0 и никакого интернета в ней не было. Как и в DOS. А вот вирусов для DOS, рассчитанных на «дискетконет», было полным-полно.
                        0
                        А сейчас вообще через какие браузеры проникают такие штуки? Только ИЕ? или для других браузеров тоже имеются эксплоиты?
                          +6
                          Имеются для всех.
                            +2
                            В настоящее время, похоже, стало целесообразнее эксплойтить уязвимости в популярных браузерных плагинах — Java, Flash Player, Adobe Reader. Заодно не требуется сильно заморачиваться насчёт разновидностей браузера.
                            +5
                            Захватывающе. Война мафиозных IT-кланов =)
                              +2
                              Да там вообще, когда читаешь в оригинале на английском — как триллер. Плохо, что рускоязычные аналитики не сводят все кусочки мозаики воедино.
                                +1
                                спасибо Вам за статью — было действительно интересно читать.
                                +6
                                Уверен, что через полвека про темную сторону IT нашего времени снимут немало фильмов.
                                +1
                                Для общего развития напишите ещё про вирусы/ботнеты для линуксовых серверов например. Хотя если есть инфа про поражающие клиентские машины, тоже интересно почитать.
                                  0
                                  про ботнеты из роутеров со стандартными логинами/паролями admin/admin слышал, а вот про остальное как то не приходилось…
                                • UFO just landed and posted this here
                                    +4
                                    Ага, и куски кода )))
                                    • UFO just landed and posted this here
                                        0
                                        Это-то как раз вполне реально. Некоторое время назад же утекли исходники Zeus.
                                          0
                                          В треде уже выложили исходники
                                    +14
                                    Как вы думаете, Slavik читает хабр?
                                    И вообще, это точно nuklearlord написал топик? Может Славик под его аккаунтом захотел попиариться? Перенесите в блог «Я пиарюсь» :-)

                                    Пользуясь случаем, передаю приветы Slavik-у и его друзьям-подельникам.
                                      +4
                                      А я вот хочу передать Дамраю и Кабану.
                                      Как по мне, так для своего времени было очень популярно и с низким порогом входа
                                        +2
                                        Была мысль и про Pinch ввернуть главу, но как по мне — размах не тот. Хотя идея обхода антивирусной защиты путем эмуляции нажатия пользователем кнопки разрешить — это нечто. Такой примитив — но работает!
                                          0
                                          ЕМНИП, это было не сразу.
                                          Но как быстрый костыль — годится
                                        +2
                                        Вы мне льстите, я вообще даже не реверсер. Я просто люблю собирать и анализировать информацию.
                                        +5
                                        Кому интересно, то на реддите парень делает свой форк зевса, который распространяется через usenet, может ддосить, майнить биткоины и управляется через Tor.
                                        community.rapid7.com/community/infosec/blog/2012/12/06/skynet-a-tor-powered-botnet-straight-from-reddit
                                          +1
                                          За ним пативэн уже выехал. За вами пока ведется наблюдение =) А за инфу спасибо.
                                          +5
                                          Славик, чё-то я очкую ©
                                            +7
                                            Ус-па-кой-ся, я так сто раз зевса криптовал =)
                                            0
                                            А кто нибудь проводил анализ реализации Zeus или Spyeye, интересно узнать на сколько хорошо он спроектированы и реализованы внутри. Есть ли баги, стабильность работы…
                                              0
                                              Вот, например. Правда IMHO там много домыслов. И версия древняя относительно.
                                              0
                                              Баги есть везде, в т.ч. и ботнетах. В какой-то версии Spyeye есть банальная sql инъекция, которая позволяет получить доступ к командному центру и перехватить управление ботнетом.
                                                +4
                                                И ведь в полицию не обратишься «у меня угнали ботнет!». Красота.
                                                0
                                                В старых версиях Zeus код С&C был довольно посредственный PHP, по этому нагрузку не держал совсем. Что приводило даже к возникновению паралельного рынка админок совместимых с ботами Zeus но более производительных.

                                              Only users with full accounts can post comments. Log in, please.