Trojan glupteba что это
Trojan glupteba что это
Во вторник компании Google рассказала, что недавно смогла прервать работу крупной сети инфицированных вредоносным приложением компьютеров. Engadget пишет, что в состав этой сети входили около миллиона Windows-компьютеров, что означает один из наиболее крупных среди известных ботнетов.
реклама
Ботнеты представляют собой сеть компьютеров и других подключенных к интернету устройств с вредоносными приложениями на них, которые находятся под контролем хакеров. В данном случае в Google смогли проследить источник происхождения Glupteba и вышли на двух подозреваемых из России. Компания подала на них в суд в надежде создать прецедент, чтобы в будущем было меньше желающих вести подобную противоправную деятельность.
По оценкам компании, размер сети растёт сейчас в среднем на тысячу устройств в день. Вредоносное приложение размещается на сайтах с предложением бесплатных программ. Оно применяется для кражи персональных данных, майнинга криптовалют и перенаправления различного трафика.
Washington Post сообщает, что хакеры использовали и собственные серверы Google для распространения вредоносной программы. В результате компания заблокировала более тысячи учётных записей, применявшихся для распространения Glupteba.
В Google говорят, что не только закрывают уязвимости в системах безопасности, но и работают над устранением целых категорий угроз пользователям и предприятиям в интернете. Для этого существуют группы экспертов и аналитиков по информационной безопасности, занимающихся проблемами DDoS-атак, фишинга, уязвимостями нулевого дня и взломами продуктов и пользователей Google.
Google работала совместно с провайдерами интернет-инфраструктуры. К сожалению, о полной победе над ботнетом говорить не приходится. Он использует технологию блокчейна, поэтому полностью уничтожить его затруднительно. Когда ботнет не получает команд от операторов, программное обеспечение автоматически применяет закодированные в блокчейне биткоина данные для получения инструкций по повторному подключению.
Google утверждает, что применение блокчейна среди киберпреступников становится всё более распространённой практикой. Децентрализация блокчейна позволяет быстрее восстанавливать работу подобных вредоносных сетей после атак на них.
Glupteba – скрытая угроза: как мы нашли вредонос, который больше двух лет прятался в инфраструктуре заказчика
2020 год для Solar JSOC CERT оказался непростым, но и 2021-й не отстает, постоянно подкидывая нам интересные кейсы. В этом посте мы расскажем, как обнаружили вредонос (даже целую сеть вредоносов) по, казалось бы, несвойственной ему активности. Он незаметно «жил» в инфраструктуре больше двух лет, втихаря обновлялся и без препятствий собирал ценные данные в инфраструктуре жертвы.
С чего все началось
В начале года одна компания пришла к нам с вполне конкретной проблемой: в инфраструктуре на сетевом оборудовании были обнаружены попытки сканирования портов, характерных для оборудования Mikrotik, а также брутфорса серверов по протоколу SSH. Сначала мы решили, что был скомпрометирован сервер из внешнего периметра. Уж очень замеченная активность была похожа на работу какого-нибудь бота, которого злоумышленники обычно закидывают на уязвимые серверы в автоматическом режиме. Привет, Mirai, Kaji, Hajime и компания!
Но, как оказалось, источниками подозрительной активности были хосты под управлением Windows, к тому же вполне рядовые. Образ одного из таких хостов и был передан на анализ экспертам Solar JSOC CERT.
Первоначальный анализ скомпрометированной системы
При анализе сразу же бросилось в глаза большое число (более 83!) неподписанных исполняемых файлов в директории %TEMP%\csrss (о них подробно расскажем ниже):
Также в %TEMP%\csrss\smb был найден архив deps.zip (470CF2EA0F43696D2AF3E8F79D8A2AA5D315C31FC201B7D014C6EADD813C8836) и его содержимое:
Данные файлы являются ничем иным, как исполняемыми файлами, которые используются для эксплуатации уязвимости EternalBlue (CVE-2017-0144). Там же были найдены файлы, относящиеся к DoublePulsar. В целом содержимое этой папки можно назвать результатом деятельности группировки The Shadow Brokers в далеком 2017-м.
Помимо этих файлов, мы нашли определенно подозрительные задачи:
Первая задача просто запускает исполняемый файл C:\Windows\RSS\csrss.exe при входе в систему. Вторая с использованием легитимной программы certutil.exe и переданного параметра urlcache загружает с ресурса hxxps://fotamene[.]com/app/app.exe исполняемый файл, сохраняет его в расположение %TEMP%\csrss\scheduled.exe, после чего обеспечивает его запуск. Обратите внимание, что в созданной задаче применяется техника Living-off-the-Land (https://github.com/api0cradle/LOLBAS) с использованием certutil.exe.
Также файл (C:\Windows\RSS\csrss.exe) был прописан в автозапуске в реестре (HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) под именем «BillowingBreeze».
Таким образом, если собрать все данные в кучу (и немного погуглить), то приходит только один вывод: в инфраструктуре компании вовсю развернулось ВПО семейства Glupteba. Его основной модуль – C:\Windows\RSS\csrss.exe.
Анализ основного модуля Glupteba
Итак, мы опознали Glupteba. Это модульное ВПО, написанное на языке Go. Для защиты своих файлов от обнаружения оно использует множество разных техник. Сейчас расскажем вам интересные моменты анализа, а также покажем их корреляцию с артефактами на системе.
Граф основной функции, построенный в IDA, пугает!
Условно весь процесс работы ВПО Glupteba можно разделить на две фазы:
Первая фаза работы ВПО
Первое, что происходит после запуска исполняемого файла, – проверка окружения на соответствие следующим параметрам:
Далее происходит инициализация конфигурации ВПО. Первым делом проверяется наличие конфигурации «старого образца»: HKCU\Software\Microsoft\TestApp (возможно, до этого момента ВПО находилось в стадии тестирования, но теперь все серьезно). При обнаружении конфигурация переписывается в новое расположение: HKCU\Software\Microsoft\ И при необходимости обновляется.
Если же старая конфигурация отсутствует, то она просто пишется по указанному выше расположению. То есть мы увидели «эволюцию» версий ВПО. Это видно и на анализируемой системе. Слева – конфигурация из старого местоположения, справа – из нового (в данном случае – HKCU\Software\Microsoft\eadd010f):
Видно, что значения UUID (используется для идентификации зараженного хоста на стороне злоумышленника) одинаковы, как и дата первой установки (FirstInstallDate). Переводим в более удобный формат и узнаем, что заражение произошло… барабанная дробь. 2 ноября 2018 года!
Подтверждается это также и временными метками MFT файлов в директории %TEMP%\csrss: они расположены между 2 ноября 2018 года и моментом обращения к нам заказчика (январь 2021 года).
Файл C:\Windows\RSS\csrss.exe также был создан 2 ноября 2018 года, а изменен 29 сентября 2020 года. Ветка реестра же последний раз была изменена 14 января 2021 года (дата снятия образа), что говорит об активной работе.
Основные значения конфигурации:
Далее производится проверка и повышение привилегий (в случае необходимости) вплоть до SYSTEM:
1) Обход UAC (HKCU\Software\Classes\ms-settings\shell\open\command:fodhelper или HKCU\Software\Classes\mscfile\shell\open\command:CompMgmtLauncher):
2) Получение токена SYSTEM через Trusted Installer и перезапуск себя с полученным токеном.
Стоит отметить, что без достаточных привилегий ВПО просто завершает свою работу, но при этом физически остается в инфраструктуре.
Следующий этап – проверка окружения на предмет виртуализации:
Вторая фаза работы ВПО
Она состоит из нескольких этапов:
Производится отправка некоторой информации на C2 (установленное ПО, браузер по умолчанию):
Создаются ранее упомянутые задачи:
Установка руткитов, обеспечивающих скрытную работу ВПО
На этом же этапе (если операционная система определена как Windows 7) устанавливается сертификат:
Установка службы WinDefender
Производится проверка наличия службы WinDefender и исполняемого файла C:\Windows\windefender.exe. Если отсутствуют – с CDN загружается и запускается указанный исполняемый файл. Назначение – работа в формате службы, постоянная проверка статуса работы основного модуля, загрузка и перезапуск в случае необходимости.
Запуск потоков, следящих за основными функциями
На данном этапе запускаются потоки:
Далее в бесконечном цикле производится отправка информации из конфигурации на сервер управления и получение ответа. Пример нагрузки, отправляемой на сервер:
Ответ расшифровывается, получается команда вместе с аргументами, производится ее исполнение. Список команд под
Передаваемая информация, как и получаемая, шифруется AES256GCM с постоянным ключом и кодируется Base64.
Отдельного внимания заслуживает алгоритм смены серверов управления.
Интересный факт: каждый раз, когда производится poll (запрос к серверу управления для получения команды), значение PC в конфигурации увеличивается на 1. Для данного кейса значение PC равно 119643. Значит, команды были получены почти 120 тысяч раз за все время работы Glupteba.
Пример аргументов команды run-v3, полученной от сервера управления:
Дополнительные модули
Как уже говорилось выше, в директории %TEMP%\csrss было обнаружено множество различных исполняемых файлов, которые являются дополнительными модулями вредоноса. Интересно то, что многие из них являются различными версиями одних и тех же модулей, создаваемых в разное время с момента первичного заражения. При желании можно отследить историю появления новых версий каждого модуля.
Дальнейшее развитие
После первичного обнаружения ВПО и определения его индикаторов компрометации наша команда проверила обращения к ним из инфраструктуры заказчика. Таким образом, было обнаружено множество других серверов, зараженных после 2 ноября 2018 года.
Какие выводы?
Исходя из вышесказанного, основные цели Glupteba:
И главное: как показывает практика, вредоносная активность далеко не всегда является тем, чем кажется на первый взгляд.
Авторы:
Владислав Лашкин, младший инженер технического расследования группы расследования инцидентов Solar JSOC CERT
Иван Сюхин, инженер технического расследования отдела расследования инцидентов Solar JSOC CERT
Win32/Glupteba больше не связана с операцией Windigo
Исследование Linux/Ebury, основного компонента операции Windigo, заставило нас присмотреться к остальным составляющим данной экосистемы, чтобы узнать, используются ли они в операции. Внимание привлек открытый прокси-сервер Win32/Glupteba, который ранее распространялся с помощью набора эксплойтов в рамках операции Windigo. По итогам последнего анализа мы предполагаем, что программа больше не связана с Windigo.
В посте мы представим информацию о текущих механизмах распространения Glupteba, краткий анализ сетевого трафика, проходящего через прокси, технический анализ состояния бинарного файла Glupteba, а также взаимосвязь Glupteba и Windigo.
Распространение Glupteba в динамике
Краткая история
В разные периоды Glupteba использовала разные способы распространения. Мы отследили основные схемы и методы вредоносной программы за последние семь лет и приводим обзор их эволюции.
В 2011 году, когда ESET изучала буткит TDL-4, наши аналитики обнаружили (и опубликовали), что он использовался как загрузчик дополнительных вредоносных программ. Glupteba была одним из вариантов устанавливаемой малвари. Вероятно, операторы TDL-4 продавали услуги по распространению на черных рынках.
Тремя годами позднее исследование операции Windigo позволило установить, что часть инфраструктуры скомпрометированных Linux-серверов использовалась для переадресации некоторой части НТТР-запросов через троянизированные веб-серверы (Apache httpd, lighttpd и nginx). Запросы перенаправлялись на серверы DNS, контролируемые операторами Windigo, которые возвращали по А-записи IP-адрес финальной цели переадресаций. Там обычно размещался набор эксплойтов. При удачном использовании эксплойта на целевое устройство устанавливалась Glupteba.
Этим связь между Windigo и Glupteba не ограничивается. С&С серверы Glupteba также размещались на машинах, входящих в состав ботнета Windigo. Кроме того, единственной на тот момент задачей Glupteba была пересылка спама по заданию от инфраструктуры Windigo. Сложно сказать, что одни и те же люди управляли Glupteba и ботнетом Windigo. Возможно, операторы Windigo перепродавали доступ к своей инфраструктуре.
Современная схема распространения
В настоящее время вектор распространения Glupteba вновь изменился. Малварь больше не использует инфраструктуру Windigo – сейчас Glupteba является частью собственного ботнета.
Glupteba распространяется с помощью MSIL/Adware.CsdiMonetize.AG – программы, доставляющей различные семейства вредоносного ПО с оплатой за число установок (Pay-Per-Install). Помимо Glupteba мы наблюдали загрузку потенциально нежелательного ПО, криптомайнеров и адвари.
Вместо непосредственной загрузки Glupteba.AY, MSIL/Adware.CsdiMonetize.AG скачивает ее дроппер, который регистрирует бот на C&C сервере, добавляет исключения в Windows Defender и файервол Windows, а также настраивает среду для установки Glupteba.
Запрос на регистрацию бота содержит информацию о машине жертвы. Вот пример такого запроса:
Также создается параметр реестра Windows HKCU\Software\Microsoft\TestApp\UUID. Это необходимо для успешного выполнения Glupteba. Параметр не должен быть пустым.
Далее создаются следующие записи в реестре для добавления исключений из правил Windows Defender и файервола Windows:
По данным телеметрии ESET, активность Glupteba зафиксирована в 180 странах с начала 2017 года. На три страны приходится 25% всех обнаружений – это Россия, Украина и Турция. На рисунке 1 показаны страны, в которых нам удалось выявить случаи распространения.
Рисунок 1. Доля обнаружений по странам
Анализ использования прокси
На момент изучения операции Windigo единственной целью Glupteba была пересылка спама конечным получателям. Мы хотели узнать, изменилось ли с тех пор применение малвари. В ноябре 2017 года мы зафиксировали сетевой трафик, проходящий через зараженный узел в течение четырех дней. Поскольку HTTPS-трафик оставался зашифрованным, наблюдаемая картина ограничивалась незашифрованными сетевыми протоколами. Согласно нашему анализу, теперь Glupteba не только рассылает спам – сейчас малварь используют различные автоматизированные системы. Операторы Glupteba могут пользоваться прокси-сервером сами, но мы считаем, что они продают его использование как сервис третьим лицам. Далее мы приведем информацию о наиболее интересном трафике.
Первое, что мы отметили – Glupteba все еще используется для рассылки спама конечным получателям. Вот пример такого сообщения:
Кроме того, Glupteba замечена в атаках, основанных на повторном применении пароля (password-reuse). Glupteba обеспечивает некоторую анонимность злоумышленникам, так как IP-адрес всегда скрыт для сервера адресата. Кроме того, малварь позволяет распределить запросы среди множества IP-адресов, снижая риск блокировки целевым сайтом. Мы видели применение таких атак на трех доменах.
Таблица 1. Целевые домены, не использующие HTTPS
Имя домена | Краткое описание |
---|---|
adfoc.us | Сервис сокращений URL, где пользователям платят за посещение |
bonusbitcoin.co | Биткоин кран |
social.tunecore.com | Cайт для размещения музыки |
Возможно, целевых доменов больше. Мы знаем имена доменов, к которым шло обращение при использовании протокола HTTPS, благодаря полю server_name в структуре ClientHello, применяемой в процессе согласования соединения по протоколу TLS (Handshake). Это дает представление о том, какие сайты были целью атаки. В таблице 2 представлен список доменов, отсортированных по уменьшению посещаемости.
Таблица 2. Домены в поле server_name сертификата
Имя сервера | URL для аутентификации |
---|---|
auth.mail.ru | https://auth.mail.ru/cgi-bin/auth |
www.instagram.com | https://www.instagram.com/accounts/login/ajax/ |
store.steampowered.com | https://store.steampowered.com/login/dologin/ |
www.amazon.com | https://www.amazon.com/ap/signin |
auth.riotgames.com | https://auth.riotgames.com/authz/auth |
vk.com | https://vk.com/login |
global.americanexpress.com | https://global.americanexpress.com/myca/logon/emea/action |
www.facebook.com | https://www.facebook.com/login/device-based/regular/login/ |
signin.ea.com | https://signin.ea.com/p/web2/login |
account.t-mobile.com | https://account.t-mobile.com/svr/authenticate |
www.linkedin.com | https://www.linkedin.com/uas/login-submit |
www.westernunion.com | https://www.westernunion.com/wuconnect/rest/api/v1.0/CustomerSignOn |
www.paypal.com | https://www.paypal.com/signin |
www.britishairways.com | https://www.britishairways.com/api/grant |
auth.api.sonyentertainmentnetwork.com | https://auth.api.sonyentertainmentnetwork.com/login.jsp |
account.sonymobile.com | https://account.sonymobile.com/api/ng/signin |
www.expedia.com | https://www.expedia.com/user/signin |
Еще один пример автоматической ретрансляции трафика через промежуточный элемент зафиксирован на сайте www.omegle.com. На этой площадке два незнакомых человека могут встретиться в приватном чате. Мы наблюдали, как бот присоединялся к чату и пытался убедить другого пользователя перейти по ссылке. Похоже, что этот сервис представляет собой популярную цель для ботов. Большинство наблюдаемых взаимодействий состояли в том, что два бота заманивали друг друга в мобильное приложение Kik Messenger или предлагали перейти на порносайты по короткой ссылке.
Вот пример взаимодействия двух ботов:
Мы также обнаружили ботов, использующих специальные запросы HTTP POST в попытке найти веб-шеллы. Домены перебирались по алфавиту в порядке убывания, что предполагает программную обработку их списка.
Связи с Windigo
Мы решили вновь навестить Glupteba, чтобы узнать, связана ли малварь с операцией Windigo. Анализ позволил установить, что это не так. Далее рассмотрим причины этого заключения.
Первое, на что мы обратили внимание – используемые Glupteba C&C серверы. Ни один из обнаруженных IP-адресов не совпал с известными серверами, скомпрометированными Ebury. Кроме того, у новых C&C серверов много открытых портов, а у старых было только по одному правилу DNAT и SNAT для переадресации трафика на актуальный сервер. Такое количество открытых портов создает много помех – это не свойственно операторам Windigo.
Как уже говорилось в отчете про операцию Windigo, клиент, подключающийся к Glupteba, перед рассылкой спама отправлял запрос HTTP GET на порт 25 скомпрометированной Ebury машины. Теперь схема изменилась – спам идет через прокси без какого-либо вступления, сообщения выглядят иначе.
Наконец, распространение Glupteba больше не зависит от Windigo – за него отвечает MSIL/Adware.CsdiMonetize.AG.
На основании всего перечисленного мы считаем, что Glupteba больше не связана с операцией Windigo.
Технический анализ
В этом разделе мы приводим технический анализ образцов Glupteba, изученных в ходе исследования. Первое, на что мы обратили внимание – они отличаются от образцов, которые мы анализировали в 2014 году. Мы полагаем, что Glupteba была переписана с нуля. Раньше Glupteba была достаточно небольшой и простой программой, в то время как сейчас это объемная и очень сложная программа на C++. Раньше она поддерживала около 70 функций, теперь их больше 3600.
Рисунок 2. Сравнение списка функций
Glupteba теперь статически скомпонована с библиотеками Boost C++, кaк показано на рисунке 3. Для коммуникации через сокеты она использует Windows Sockets API: WSASend и WSARecv вместо send и recv.
Рисунок 3. Строки кода библиотек Boost C++
Персистентность
Glupteba обеспечивает персистентность путем добавления записи в раздел реестра Run. Таким образом, при каждой загрузке Windows происходит запуск Glupteba. Вот создаваемая запись в реестре:
В реестре Windows создаются и другие записи. Вот наиболее интересные:
Запись GUID содержит id бота, создаваемого вызовом CoCreateGuid. Запись Value содержит временную метку файла PE бинарника Glupteba.
Коммуникация с C&C сервером
С точки зрения сетевой конфигурации, в данных образцах нет серьезных изменений по сравнению с образцами, которые мы описали в отчете об операции Windigo. При запуске Glupteba отправляет тот же маяк на командный сервер, в ответ получает сеанс и порт, к которому подключается Glupteba для задач, связанных с проксированием.
Маяк, отправляемый на командный сервер:
Командные серверы хранятся зашифрованными в бинарном файле. После расшифровки они выглядят так:
Число после двоеточия – это максимальный диапазон количества серверов. В этом случае “30” означает, что есть 30 доменных имен, получаемых путем форматирования строки домена с числами от 1 до 30. При связи с C&C сервером случайным образом выбирается один из этих доменов, и GUID скомпрометированной машины добавляется в виде поддомена в начало к выбранному серверу.
Также Glupteba отправляет второй запрос GET на свой командный сервер для обновления информации о технических характеристиках машины жертвы. Он выглядит следующим образом:
Шифрование строк
Строки кода Glupteba шифруются по специальному алгоритму. Процесс расшифровки использует 16-байтовый ключ и происходит в три фазы. Ключ отличается для каждого варианта программы. Во время первой фазы используется генератор псевдослучайных чисел Вихрь Мерсенна (PRNG). Алгоритм заполняется первыми четырьмя байтами ключа. Затем каждый байт шифра проходит операцию XOR со следующим байтом, генерируемым вихрем Мерсенна.
Рисунок 4. Первая фаза процесса расшифровки
Есть три различных варианта второй фазы. Один использует шифр Rabbit, другой проводит еще одну итерацию операции XOR, похожую на ту, что применяется в первой фазе, но с другим заполнением из ключа. В изученных образцах используется только третий вариант. Он состоит из цикла XOR с ключом.
Третья и финальная фаза – еще один цикл XOR со значением, полученным в результате калькуляции результата второй фазы и непосредственных значений.
Рисунок 5. Третья фаза процесса расшифровки
В нашем репозитории на GitHub мы выложили скрипт для расшифровки всех строк. Так как реализация вихря Мерсенна на Python немного отличается от той, что использует Glupteba, мы также выложили его реализацию на Python. Перед запуском скрипта убедитесь, что его директория находится в вашем %PYTHONPATH%. Сделать это можно, запустив команду в интерпретаторе Python IDA:
Резюме
Операторы Glupteba продолжают находить способы для распространения малвари, несмотря на противодействие профессионального сообщества. После обнаружения операции Windigo они сменили тактику, сохранив охват.
Разработка инструментария с нуля и текущее распространение показывает, что злоумышленники, управляющие Glupteba, все еще активны. Их усилия доказывают, что рынок предоставления открытых прокси-серверов является крайне прибыльным, и вряд ли Glupteba пропадет с радаров в ближайшем будущем.