Ботнеты на основе TOR

    Ботнеты, использующие возможности анонимной сети TOR, не являются чем-то принципиально новым и уже обсуждались несолько лет назад на конференции Defcon 18 («Resilient Botnet Command and Control with Tor»). В прошлом году мы смогли подтвердить некоторые интересные факты, касающиеся использования этих идей в настоящих ботнетах используемых злоумышленниками. Эта тема уже обсуждалась в начале 2013 г. в блоге Rapid7 («Skynet, a Tor-powered botnet straight from Reddit»). В начале июля ресерчер Данчо Данчев опубликовал информацию о командных серверах C&C руткита, использующего TOR.

    Этим летом мы отмечали рост ботнетов, которые используют TOR. В июле было обнаружено два различных семейства вредоносных программ, использующих скрытый протокол сервиса TOR для взаимодействия с командным C&C сервером. Такой сервис хорошо подходит при организации скрытого канала связи, но в то же время является довольно медленным способом кражи больших объемов данных с зараженного компьютера. Для киберпреступников этот путь использования скрытой службы протокола общения с C&C является предпочитетельным при получении обновлений о данных конфигурации или загрузки дополнительных вредоносных модулей.

    Нами было обнаружено два различных ботнета, которые используют сервисы TOR для работы с C&C. Речь идет о семействах вредоносных программ Win32/Atrax и Win32/Agent.PTA. Оба семейства имеют возможности по похищению вводимой пользователем информации в форму веб-страницы браузера. Александр Матросов и Антон Черепанов осуществили анализ этих вредоносных программ. Так как ботнет Atrax выглядит более сложным и интересным, мы начнем наш пост именно с его анализа.



    Win32/Atrax.A

    Win32/Atrax.A представляет из себя интересный бэкдор, использующий TOR. Он устанавливается через специальный даунлоадер, который мы обнаруживаем как Win32/TrojanDownloader.Tiny.NIR. Точка входа даунлоадера довольно проста и приведена ниже на скриншоте.



    Более интересной информацией является тот факт, что доменное имя «kundenservice-paypal.com», жестко заданное в коде, зарегистрировано в середине Июня (12-Jun-2013). Название было дано, судя по всему, для того, чтобы выдать домен за службу поддержки клиентов PayPal.

    Все компоненты троянской программы и даунлоадера были скомпилированы в Июле, согласно информации извлеченной из PE-заголовка.



    После загрузки и запуска на исполнение основного файла дроппера, процедура распаковки запускается для трех PE-модулей: клиента TOR и двух DLL модулей для x32 и x64. Для распаковки используется WinAPI RtlDecompressBuffer. Код функции распаковки выглядит следующим образом.



    Перед установкой дроппер выполняет простые проверки на предмет обнаружения виртуальной машины или активности отладчика. Идентификатор бота Bot ID представляет из себя хэш MD5, рассчитанный с помощью значений системного реестра DigitalProductID и MachineGuid. Граф вызовов для функции, которая заражает систему представлен ниже на скриншоте.



    В конце своего исполнения функция пытается осуществить поиск плагинов, отвечающих за AES-шифрование, в каталоге %APPDATA% и произвести их последующую инициализацию. Все плагины именуются в соответсвии со следующим шаблоном %APPDATA%\CC250462B0857727*. Плагины расшифровываются на лету в процессе инициализации бота, но ключ шифрования зависит от зараженного компьютера. Такой подход затрудняет процесс извлечения файлов вредоносной программы в процессе криминалистической экспертизы.

    Клиент TOR располагается в теле дроппера и хранится в директории %APPDATA% зашифрованным AES-файлом. Инициализация соединения с TOR происходит после проверки на предмет того запущен ли браузер и после этого осуществляется внедрение кода клиента TOR в контекст процесса браузера с передачей управления на него с использованием API ntdll!NtSetContextThread. Win32/Atrax.A поддерживает внедрение кода для x86 и x64 процессов.



    Все взаимодействие между командным C&C сервером и ботом организовано через специальный запрос HTTP. Прототип функции, которая отвечает за эту возможность, представлен ниже.



    Если второй параметр request_via_tor установлен в true, соединение с C&C будет производиться через TOR. В таком случае граф вызовов функций будет иметь вид.



    Далее создается новый поток, который будет исполнять код клиента Tor со следующими параметрами:
    • AUTHENTICATE – пароль для аутентификации.
    • SIGNAL NEWNYM – изменение цепи прокси-узлов.

    Когда Atrax.A установил первое соединение с C&C, он посылает собранную информацию о зараженной системе по адресу в сети TOR.



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



    Название Atrax на картинке панели управления является главной причиной, почему мы выбрали имя Win32/Atrax.A для записи обнаружения вредоносного кода.

    С точки зрения бота, Win32/Atrax.A поддерживает выполнение удаленных команд на скомпрометированном компьютере. Основная функция по разбору команд и их исполнения выглядит следующим образом.



    Список поддерживаемых удаленно команд выглядит следующим образом:

    • dlexec – загрузить и исполнить файл
    • dlrunmem – загрузить файл и произвести его внедрение в файл
    • dltorexec – загрузить исполняемый файл TOR и исполнить его
    • dltorrunmem — загрузить исполняемый файл TOR и внедрить его в браузер
    • update – обновить себя
    • install – загрузить файл, зашифровать его с помощью AES и сохранить в %APPDATA%
    • installexec — загрузить файл, зашифровать его с помощью AES, сохранить в %APPDATA% и затем исполнить
    • kill – завершить все потоки


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



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


    [граббер форм]


    [плагин кражи паролей]

    Win32/Atrax.A является интересным примером вредоносного кода, который использует TOR при организации ботнета и применяет AES шифрование с уникальным ключом, который зависит от параметров оборудования, для дополнительных плагинов.

    Win32/Agent.PTA

    Еще одно семейство, которое мы отслеживали в июле и которое использует Tor называется Win32/Agent.PTA. Это семейство не является новым и уже отслеживалось нами с 2012 года. В этом же году были обнаружены новые возможности этого вредоносного кода по работе с Tor. Он использует сервис скрытого протокола Tor для работы с C&C. Agent.PTA содержит встроенную в тело информацию о конфигурации, зашифрованную с помощью RC4 с C&C адресами внутри сети TOR. Расшифрованная конфигурационная информация выглядит следующим образом.



    Win32/Agent.PTA представляет из себя простой граббер форм с возможностью загрузки дополнительных плагинов. Эта троянская программа может активизировать режим прокси SOCKS5 путем получения специальной команды от C&C.

    Заключение

    В этом году мы уже видели ботнеты, которые используют TOR, но этим летом мы наблюдали именно рост количества подобных вредоносных программ. С технической точки зрения подобные ботнеты довольно сложны для расследований, как и представляет сложность обнаружение истинного местоположения C&C. Но на примере ботнета Win32/Atrax.A мы продемонстрировали тот факт, что способы анализа протоколов взаимодействия не притерпели изменений и старые приемы работы с адресами в сети TOR актуальны.
    • +36
    • 19.4k
    • 9
    ESET NOD32
    84.27
    Company
    Share post

    Comments 9

      +1
      Вот попался на это. Хотел людям из другой страны помочь, а меня использовали как атакующего. Теперь я только внутренний ретранслятор. Вот кому надо а?
        +7
        Вот лежит нож, убили им человека, вот зачем ножи надо делать а?
          +2
          Я как раз имел ввиду «зачем убивать человека?»
            0
            А я как раз о том что TOR это инструмент. Ножиком можно и пищу резать и человека убить.
        0
        Плагины расшифровываются на лету в процессе инициализации бота, но ключ шифрования зависит от зараженного компьютера. Такой подход затрудняет процесс извлечения файлов вредоносной программы в процессе криминалистической экспертизы.


        Как вообще это работает, т.е. .exe файл зашифрован AES изначально, перед выполнением его расшифровывают во временный файл что ли, а потом выполняют и удаляют? Извиняюсь за глупый вопрос, но познания в этой области совсем скромны.

          +1
          Плагин хранится на диске в уже зашифрованном виде, его зашифрование осуществляется в момент его первого сохранения на зараженной машине. Расшифрование плагина осуществляется непосредственно в памяти в момент его загрузки/ инициализации основным мулем вредоносной программы. В процессе генерации ключа используются данные из DigitalProductID и MachineGuid, что делает ключ уникальным для каждой зараженной машины и усложняет в некоторых случаях криминалистический анализ.
            0
            Так тогда возникает резонный вопрос, разве нельзя эти расшифрованные модули в памяти отслеживать, и удалять пакость?
              0
              Все известные нам расширения для Win32/Atrax обнаруживаются в памяти на момент их загрузки, после чего блокируется их дальнейшая активность. Удаление основного модуля Win32/Atrax так же не составляет труда.
          +2
          Кстати, а они активной нодой тор сети являются, то есть трафик tor-а прокачивают?
          А то пора бы уже малварщикам в развитие этой сети вкладываться, хе-хе.

          Принудительная TOR-ификация всех машин ботнета. Звучит интересно. Может тогда эта сеть начнет хоть чуть-чуть быстрее работать.

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