
Салют, Хабр! На связи Павел Максютин и Шаих Галиев из отдела экспертизы PT Sandbox антивирусной лаборатории PT ESC (экспертного центра безопасности Positive Technologies).
В августе, благодаря нашей песочнице, была предотвращена атака на российские организации с применением нового вредоносного кода. Изначально мы предположили, что это массовый фишинг с серверов злоумышленников, который каждый день можно встретить на почте любой организации. Но оказалось, что отправитель письма вполне легитимный: он был скомпрометирован злоумышленниками, нацеленными на российские оборонные и промышленные организации.
Хакеры использовали сложную схему сокрытия вредоносной нагрузки в архивах-полиглотах. Полиглоты — это файлы, которые могут быть валидны с точки зрения спецификации нескольких форматов. Сама вредоносная нагрузка является новой обфусцированной вариацией инструмента PhantomRShell, который использует группировка PhantomCore. Ее деятельность была ранее исследована нашими коллегами из департамента киберразведки PT ESC.
В этой статье мы расскажем подробности атаки, ее возможный исходный вектор и дадим рекомендации по защите почтовой инфраструктуры от взлома и подобных атак.
Таймлайн
В открытых системах агрегации сведений о ВПО информация о семплах появилась только утром 25 августа.

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

Благодаря возможностям поведенческого анализа PT Sandbox смогла задетектировать новый вредонос еще вечером 24 августа — именно в тот момент, когда началась атака на российские организации с его использованием. По нашим данным, злоумышленники атаковали оборонные и промышленные предприятия, а также банковский сектор.
Рассмотрим действия злоумышленников пошагово.
Подробное описание атаки

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

Письмо не содержит признаков фишинга, поэтому вполне может обойти средства защиты почты. Вложение содержит архив. Но на самом деле это не просто архив, а файл-полиглот, состоящий из трех последовательно склеенных файлов разных типов: DLL, PDF и ZIP-архив. Рассмотрим подробно эти файлы.



Из-за особенности формата ZIP при распаковке сигнатура ищется по всему файлу, поэтому такой файл будет корректным архивом, а «приклеенные» к нему файлы останутся незамеченными. Такой трюк позволяет злоумышленникам обойти статические анализаторы, которые не проводят глубокую проверку содержимого файла.
В архиве лежит LNK-файл «Задание_на_оценку_N_2046_от_05_августа_2025_года.pdf.lnk», маскирующийся под PDF-формат для обмана жертвы. Задача LNK-файла заключается в закреплении в системе через подмену ключа InProcServer32 реестра COM-объекта PSFactoryBuffer. Эта техника закрепления особенно примечательна и не была зафиксирована в других подобных атаках. Наша песочница такое поведение обнаруживает следующим правилом.

Таким образом, DLL злоумышленника будет загружена во все процессы, которые используют данный COM-объект, — браузеры, почтовые клиенты, explorer.exe.

Затем из «архива» на диск записываются следующие файлы:
C:\programdata\winnt64_.dll (d585aa73d28af621abcef44ae024fde62366c29f5730a3cb31ff3c8bb5eb84a8)
С:\sponge-bob\exe-zip-injector\Задание_на_оценку_N_2046_от_05_августа_2025_года.pdf (ae2c4a0beb4b6d8042b88b3c921fefe0a1436b1e3b23ada9b26e20c069897ec9)
Что можно заметить в коде ярлыка:

PDF-файл представляет собой имитацию либо реальный документ для отвлечения внимания.

А DLL-файл содержит вредоносную нагрузку типа бэкдор. Как только библиотека будет загружена в процессы, бэкдор подключается к управляющему серверу 31.58.171.246.

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

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

Подробнее про подобные способы обфускации строк можно почитать в различных источниках, например тут: https://gist.github.com/EvanMcBroom/ace2a9af19fb5e7b2451b1cd4c07bf96
А указатели на функции хранятся в неявном виде и вычисляются перед вызовом.

Функционал этого вредоноса вполне стандартный в рамках этого семейства: инструмент позволяет злоумышленнику удаленно выполнять произвольный код.

А также скачивать произвольные файлы с компьютера жертвы.

Иными словами, бэкдор может привести к полной компрометации инфраструктуры жертвы и похищению конфиденциальной информации.
Но как злоумышленникам удалось отправить эту нагрузку от легитимного отправителя?
Как мы выявили возможную атаку на отправителя
В заголовках одного из отправленных злоумышленниками писем с вредоносным вложением виден его путь через существующие почтовые серверы отправителя — спуфинга или отправки с иного внешнего сервера не происходило. То есть исходящее письмо прошло путь внутри компании и было отправлено через интернет: exch-05.<SENDER>.local (<SENDER-LOCAL-IP>) -SMTP-> exch-05 (<SENDER-LOCAL-IP>) -NAT-> mx.<SENDER>.ru (<SENDER-PUBLIC-IP>) -smtp-> mx-01.<VICTIM>.ru:
Received: from mx-01.<VICTIM>.ru (mx-01.<VICTIM> [<VICTIM-PUBLIC-IP>])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
(No client certificate requested)
by <VICTIM> (Postfix) with ESMTPS
for <<VICTIM-EMAIL>@<VICTIM>.ru>; Mon, 25 Aug 2025 02:40:55 +0300 (MSK)
Authentication-Results: mx-01.<VICTIM>.ru;
iprev=pass (mx.<SENDER>.ru) smtp.remote-ip=<SENDER-PUBLIC-IP>;
dkim=pass header.d=<SENDER>.ru header.s=dkim header.a=rsa-sha256;
dmarc=pass header.from=<SENDER>.ru
Received: from mx.<SENDER>.ru ([<SENDER-PUBLIC-IP>])
by mx-01.<VICTIM>.ru with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
(Exim 4.98.2)
(envelope-from <<SENDER-EMAIL>@<SENDER>.ru>)
for <VICTIM-EMAIL>@<VICTIM>.ru;
Mon, 25 Aug 2025 02:40:55 +0300
Content-Type: multipart/mixed;
boundary="--boundary_5920_85f5dbea-3cb3-424d-be37-64b1b89be9ba"
DKIM-Signature: v=1; a=rsa-sha256; d=<SENDER>.ru; s=dkim; c=simple/simple;
<...>
Received: from exch-05 (<SENDER-LOCAL-IP>) by exch-05.<SENDER>.local
(<SENDER-LOCAL-IP>) with Microsoft SMTP Server id 15.0.1473.3; Mon, 25 Aug 2025
02:40:55 +0300
Как видно, в письме уже указана версия почтового сервера отправителя — 15.0.1473.3. Но даже если бы у нас не было тела письма, можно было бы найти ее другим образом.
Узел mx.<SENDER>.ru является единственным MX-сервером, опубликованным в DNS:
; <<>> Net::DNS::Dig 0.12 <<>> -t mx <SENDER>.ru.
;;
;; Got answer.
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28754
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;<SENDER>.ru. IN MX
;; ANSWER SECTION:
<SENDER>.ru. 424 IN MX 10 mx.<SENDER>.ru.
;; Query time: 22 ms
;; SERVER: 8.8.8.8# 53(8.8.8.8)
;; WHEN: Tue Aug 26 01:34:08 2025
;; MSG SIZE rcvd: 46 -- XFR size: 2 records
Указанный почтовый сервер при обращении по SMTP представляется как MS Exchange:
220 exch-05.<SENDER>.local Microsoft ESMTP MAIL Service ready at Tue, 26 Aug 2025 11:37:01 +0300 [221 ms]
EHLO mx.test.ru
250-exch-05.<SENDER>.local Hello [<CHECKER-IP>]
<...>
При переходе на указанный узел открывается OWA:

На этом этапе у нас появилась гипотеза, что почтовый сервер подвергся распространенным атакам на Exchange: ProxyShell, ProxyLogon и так далее. Как проверить эту гипотезу?
В коде этой страницы отображается версия продукта — 15.0.1473.

Согласно таблице версий MS Exchange, есть соответствие двум релизам:
Exchange Server 2013 CU22 Mar21SU March 2, 2021 15.0.1473.6 15.00.1473.006
Exchange Server 2013 CU22 February 12, 2019 15.0.1473.3 15.00.1473.003
Указанные версии Exchange имеют ряд уязвимостей, позволяющих осуществить удаленное выполнение кода, например CVE-2022-41082.
Exchange Versions Vulnerable to CVE-2022-41080/CVE-2022-41082
2019
15.2.1118.15 - 15.2.1118.7 <-- strict match of all 4 numbers required
15.2.986.30 - 15.2.986.5 <-- strict match of all 4 numbers required
15.2.922.27 - 15.2.196.0 (anything less than or equal to 15.2.922 )
^^^ looser match of the first 3 numbers is required
2016
15.1.2507.13 - 15.1.2507.6 <-- strict match of all 4 numbers required
15.1.2375.32 - 15.1.2375.7 <-- strict match of all 4 numbers required
15.1.2308.27 - 15.1.225.16 (anything less than or equal to 15.1.2308)
^^^ looser match of the first 3 numbers is required
2013
15.0.1497.31 - 15.0.1497.2 <-- strict match of all 4 numbers required
15.0.1473.6 - 15.0.516.32 (anything less than or equal to 15.0.1473)
^^^ looser match of the first 3 numbers is required
Полностью подтвердить или опровергнуть эту гипотезу поможет только полноценное расследование инцидента. Мы уведомили организацию, от которой пришло изначальное вредоносное письмо, и надеемся, что меры по устранению последствий атаки будут предприняты в ближайшее время.
Как защититься
Если у вас тоже используется устаревшая версия MS Exchange, рекомендуем срочно сделать следующее:
Перенести почтовые серверы за межсетевой экран для осуществления доступа по HTTPS только через корпоративный VPN.
Обновить MS Exchange до актуальных версий.
Убедиться, что почта защищена минимально необходимым для безопасности средством защиты — почтовым шлюзом с функционалом антиспама, антифишинга, набором фильтров и антивирусными движками.
Если нужно использовать OWA — осуществлять публикацию через межсетевой экран уровня веб-приложений (WAF).
А для защиты от подобных атак необходимо:
Использовать не только базовую защиту почты, но и полнофункциональное решение, включающее в себя песочницу, которая настроена на активную блокировку писем с обнаруженными угрозами, то есть стоит «в разрыв» почтового трафика.
Проверять не только входящие, но и исходящие/внутренние письма.
Отказаться от белых списков отправителей.
Индикаторы компрометации
Название | Индикатор |
Исходный архив-полиглот | 66dd68177a5b31159579cfcab558771097d753a17b63c1cbf4dadc2f5c4f0e2e 5265332860d0c81a5687f75d836441e5e1f45eb98e6dea6e3d8830d70c97783a |
LNK-файл | b9579e65e5499be393cf182496103941a006479ff8b41c0ad3b57b1d678d9794 |
Вредоносная DLL | d585aa73d28af621abcef44ae024fde62366c29f5730a3cb31ff3c8bb5eb84a8 |
PDF-документ для отвлечения внимания | ae2c4a0beb4b6d8042b88b3c921fefe0a1436b1e3b23ada9b26e20c069897ec9 |
C2 | 31.58.171.246 31[.]57.61.137 |
Путь к бэкдору в скомпрометированной системе | C:\ProgramData\winnt64_.dll |
Путь к PDF-decoy-файлу в скомпрометированной системе | C:\sponge-bob\exe-zip-injector\Задание_на_оценку_N_2046_от_05_августа_2025_года.pdf |