Dimnie: от гиков с GitHub до корпоративных бухгалтеров

    Введение


    В то время как ИБ-сообщество России внимательно наблюдает за новыми атаками известных преступных групп Carbanak, Buhtrap и RTM, в стане финансовых угроз незаметно произошло пополнение. И вызвано оно не появлением совершенно нового банковского трояна, а добавлением банковского модуля к ранее известному шпионскому ПО Dimnie.

    Dimnie — троян для сбора информации (снимков экрана, клавиатурных нажатий и т.д.) и получения удаленного доступа к зараженным системам. Совсем недавно, в январе, нам попался один из его новых модулей для подмены платежей 1С, и тогда стало понятно, что авторы Dimnie кражей информации ограничиваться не хотят.

    Известность Dimnie приобрел еще в начале 2017 года, когда атаковал пользователей сервиса GitHub (более подробно об этом писали коллеги из Palo Alto Networks). Но согласно данным Virus Total, троян этот далеко не новый: злоумышленники вовсю используют его аж с середины 2014 года, — именно тогда впервые засекли образцы исполняемых файлов Dimnie.

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

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

    Выделялся из толпы троян Dimnie еще и необычным способом сокрытия запросов к управляющему серверу — он маскировал их под запросы к легитимным ресурсам toolbarqueries.google.com и gmail.com и под картинки формата JPEG. А вот распространяли его злоумышленники вполне типично — при помощи фишинговых писем с небольшой социальной инженерией:



    Схема работы


    Dimnie — сложный модульный троян. Все его модули делятся на основные и вспомогательные. Основные — Downloader, Autorunner, Core и Loader — загружаются при каждом заражении и сами по себе вреда не наносят. А вот вспомогательные модули — Keylogger, PCInfo, WebHistory, ProcInfo и Banker — являются «полезной нагрузкой», и именно с их помощью и происходит извлечение и подмена информации на зараженной системе. При каждом запуске Dimnie модуль Loader запрашивает дополнительные модули в зависимости от того, что именно преступник хочет сделать с зараженном системой. Общая схема работы Dimnie представлена на рисунке:



    Список модулей


    Нашей команде удалось загрузить и исследовать следующие модули Dimnie:



    Заражение


    29 января мы зафиксировали почтовую рассылку с вот такими письмами:



    К письму прилагался RAR-архив с файлом «Документы начало года.exe» — исполняемым файлом Windows.

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

    Согласно VirusTotal, файл «Документы начало года.exe» также распространялся и под другими именами:

    • Документы 22.01.exe
    • Документы по постановлению 22.01.exe
    • Акт сверки 25.01.exe
    • Пакет документов январь.exe
    • Возбуждение исполнительного производства январь.exe
    • Пакет документов начало года.exe
    • Исполнительное производство 22 января.exe
    • Акт 25.01.exe
    • Исполнительное производство 22.01.exe

    Для маскировки преступники использовали значок документа PDF. Сидящий под Windows с настройками по умолчанию пользователь вряд ли отличит этот файл от настоящего PDF-документа:



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

    Downloader


    Первым делом Downloader получает основной модуль Core и модуль для закрепления на системе Autorunner. Для этого он производит DNS-запрос для получения записи с именем «justteordingto.xyz».



    Интересно, что тут, как и в экземпляре, исследованном экспертами из Palo Alto Networks, троян маскирует свои запросы под прокси-запросы к ресурсам toolbarqueries.google.com и gmail.com и под картинки формата JPEG:



    После этого полученный модуль исполняется в отдельном потоке.



    Для модуля Autorunner определяется адрес EntryPoint и формируются параметры вызова: адрес памяти, куда помещен модуль, ключ для шифрования передаваемых по сети данных и идентификатор модуля. Далее модуль Downloader создает поток Autorunner, дожидается его завершения и затем самоудаляется.

    Autorunner


    Модуль Autorunner содержит в себе IP-адрес 185.82.217.155, с которого производится загрузка модуля Core.



    В зависимости от имеющихся прав Autorunner использует один из трех способов закрепления:



    Core


    В результате работы модуля Core производится DNS-запрос для получения записи доменного имени «worldmed.bit», который относится к распределенной блокчейн-инфраструктуре Namecoin. Доменное имя запрашивается у следующих DNS-серверов:

    • 54.236.38.98;
    • 172.93.216.250;
    • 96.47.228.108;
    • 66.70.211.246;
    • 52.174.55.168;
    • 88.175.188.50;
    • 161.97.219.84;
    • 104.168.144.17;
    • 163.172.168.171;
    • 207.192.71.13;
    • 178.63.116.152;
    • 188.226.146.136;
    • 45.55.97.204;
    • 192.99.85.244;
    • 163.53.248.170;
    • 51.254.25.115;
    • 172.104.136.243.





    Доменная зона «.bit» существует вне общей системы доменных имен сети Интернет и не регулируется ICANN. Это уже не первое использование DNS-серверов Namecoin разработчиками вредоносного ПО — банковский троян RTM тоже задействовал зону «.bit» для разрешения адресов серверов управления. Впрочем, Dimnie и тут от всех отличился — он использует адреса «.bit» только в работе модуля Core, остальные обнаруженные нами модули содержат адрес сервера управления в виде IP-адреса, зашитого в модуль. При каждом запуске Core загружает модуль Loader.

    Loader


    Модуль Loader загружает и запускает все функциональные модули Dimnie. Адрес, с которого Loader загружает модули этого трояна, совпадает с адресом в модуле Autorunner — 185.82.217.156.



    В то же время Loader использует собственную реализацию протокола HTTP. GET- и POST-запросы формируются отдельно, а для их передачи и получения ответов используются низкоуровневые функции winsock.



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

    Протокол общения в данной реализации не отличается от описанного в отчете коллег из Palo Alto Networks. Используются те же самые домены для создания GET- и POST-запросов (toolbarqueries.google.com и gmail.com), а модули и их отчеты так же маскируются под JPEG-картинки.



    Для шифрования данных авторы Dimnie используют AES 256 в режиме ECB. Этот режим блочного шифрования считается самым ненадежным — в нем сохраняются статистические особенности открытого текста, и одинаковым блокам зашифрованного текста соответствуют идентичные блоки открытого текста. Учитывая, что во многих форматах используются стандартные заголовки и блоки одинаковых символов, ECB никак нельзя назвать надежным, и это делает выбор авторов Dimnie особенно странным.



    Отметим, что загружаемые модули Dimnie запускаются по-разному:

    • внедрение в процесс svchost.exe. При этом процесс создается с флагом Suspended, а внедрение модуля и запуск удаленного потока происходит с помощью функции CreateRemoteThread;
    • создание файла «%TEMP%\msiexec2.exe», копирование в него полезной нагрузки и запуск;
    • копирование модуля в выделенную виртуальную память и запуск локального потока.



    Модуль WebHistory


    Модуль WebHistory позволяет получить историю посещений веб-браузеров зараженной системы. Он перебирает в реестре все пути, где могут лежать файлы истории браузеров Mozilla Firefox, Google Chrome и Internet Explorer, после чего для каждого из них формирует сообщение следующего формата:



    Где <URLs_XXX> — тег браузера (URLs_IE, URLs_FF, URLs_Chrome); временная метка формирования данных; #URL_FILE — файл, в котором производился поиск записей; записи формата «X^Y^X^V» — временная метка, количество обращений, тип запроса (h — http, s — https, f — ftp, I — локальный файл), ресурс; время в миллисекундах на поиск данных.

    Модуль Keylogger


    Модуль Keylogger — это клавиатурный шпион, который перехватывает нажатия клавиш с помощью функции WinAPI RegisterRawInputDevices и поддерживает архитектуры х86 и х64. При запуске он внедряется в explorer.exe и все последующие действия выполняет из контекста этого процесса. Журнал нажатий клавиатуры сохраняется во временный файл в директории %TEMP% вместе с заголовками окон и буфером обмена. Затем все эти данные отправляются на сервер управления.



    Модуль сбора информации о системе PCInfo


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

    Модуль получения списка процессов ProcInfo


    Модуль ProcInfo получает список запущенных процессов.

    Модуль кражи данных учетных записей Stealer


    Модуль Stealer — это т.н. Pony Stealer, ПО для кражи паролей учетных записей пользователей из различных установленных программ. В список программ, из которых Pony крадет пароли, входит больше сотни популярных наименований, включая многие FTP-клиенты, почтовые программы (Outlook, Thunderbird) и файлы-кошельки (wallet.dat и electrum.dat) для хранения ключей различных криптовалют:



    В данном случае Pony Stealer собран в виде DLL, и загружается также, как и остальные модули. Украденные данные отравляются на адрес «http://185.82.217.244/g/g.php».

    Модуль подмены данных платежных поручений Banker


    Самый объемный из загруженных нами модулей, модуль Banker подменяет реквизиты получателя в текстовых файлах платежных поручений 1C (файлы 1c_to_kl.txt) при их загрузке в системы дистанционно банковского обслуживания (банк-клиенты).

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

    • cbank.exe
    • cbmain.exe
    • chrome.exe
    • clbank.exe
    • firefox.exe
    • javaw.exe
    • jp2launcher.exe
    • iexplore.exe
    • opera.exe

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



    Подмена реквизитов не производится в следующих случаях:

    • Если наименование банка плательщика содержит строки «СБЕРБАНК», «ОТКРЫТИЕ» или «ВТБ»;
    • Если поле «Получатель» или «Получатель1» содержит строки «УФНС» или «УФК»;
    • Если поля «Плательщик» или «Плательщик1» содержат строки «ГУП» или «МУП»;
    • Если сумма не удовлетворяет заданным критериям.

    Получается, что авторы банковского модуля Dimnie не собираются красть деньги у клиентов Сбербанка, ВТБ, банка «Открытие» и государственных организаций, а также средства, отчисляемые Федеральной налоговой службе.

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

    Стоит отметить, что протокол коммуникации модуля Banker отличается от протокола коммуникации остальных модулей — обмен данными с сервером управления осуществляется с использованием протокола SOAP, а конкретно open-source библиотеки gSOAP. К тому же, отправка запросов к серверу управления происходит без какого-либо шифрования или обфускации трафика с помощью ложных JFIF-заголовков:

    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="uri"><SOAP-ENV:Body
    SOAP-
    ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><ns:get_Ar><uniq>1234567890</uniq></ns:get_Ar></SOAP-ENV:Body></SOAP-ENV:Envelope>
    

    Использование подобных методов (SOAP XML) нехарактерно для вредоносного ПО — чаще его можно встретить в коде enterprise-приложений. Вместе с отсутствием шифрования траффика, это позволяет предположить, что модуль Banker был разработан сторонним разработчиком.

    Заключение


    Dimnie произвел на нас довольно противоречивое впечатление. С одной стороны, в нем используются интересные технологии — маскировка домена, мимикрия под картинку, весьма сложная модульная архитектура и отказоустойчивый Namecoin-домен в узком месте этой архитектуры. Все это вроде бы говорит о том, что авторы Dimnie тщательно подошли к работе над своим детищем. Но в то же время в трояне есть и откровенно провальные моменты: плохая социальная инженерия, использование режима ECB для шифрования, невозможность работы через прокси-сервер, тяжеловесный SOAP-протокол.

    При этом защититься от Dimnie достаточно просто:

    • Запретить доступ в интернет в обход корпоративного прокси
    • Запретить DNS-запросы к серверам Namecoin

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

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

    Сетевые идентификаторы, относящиеся к Dimnie:


    • justteordingto[.]xyz
    • sixgoats[.]pw
    • selenaspace[.]space
    • guysid[.]pw
    • fracking[.]host
    • shortsell[.]trade
    • sellgrax[.]club
    • dajebikes[.]pw
    • bestintrading[.]pw
    • justteordingto[.]xyz
    • yibgenkleg[.]host
    • recruiterbox[.]club
    • geforthirode[.]xyz
    • yibkenkleg[.]rocks
    • yibjenkleg[.]cn
    • webwerkt[.]trade
    • ketpatontjohnbet[.]xyz
    • haptofhodabi[.]xyz
    • fydomotedwa[.]xyz
    • webfoundation[.]top
    • 185[.]82[.]217[.]244
    • 185[.]82[.]217[.]155
    • 185[.]82[.]217[.]156
    • 185[.]82[.]217].]249
    BI.ZONE
    80,00
    Компания
    Поделиться публикацией

    Похожие публикации

    Комментарии 2

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Приятно слышать, что тема интересная.
        Спасибо!

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

      Самое читаемое