SysAdminDoc/npp-sc-scanner

GitHub: SysAdminDoc/npp-sc-scanner

针对 Notepad++ 供应链攻击(Lotus Blossom APT)的 PowerShell IOC 扫描与一键修复工具,支持 RMM 批量部署与 GUI 交互式处置。

Stars: 0 | Forks: 0

# Notepad++ 供应链 IOC 扫描器 ![Version](https://img.shields.io/badge/version-v8.8.9-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Platform](https://img.shields.io/badge/platform-PowerShell-lightgrey) 针对归因于中国 APT 组织 **Lotus Blossom**(又名 Billbug、Raspberry Typhoon、Spring Dragon)的 **Notepad++ 供应链攻击事件**(2025年6月至12月)的综合 IOC 扫描器。 该攻击通过入侵托管提供商劫持了 WinGUp 更新机制,从而向目标组织投递 **Chrysalis 后门**、Cobalt Strike 信标和 Metasploit 载荷。 ![Screenshot](https://static.pigsec.cn/wp-content/uploads/repos/cas/37/377ea98eb6d8ad7fb58d4b06d3d2e503398dc94992850bc69ac946576c765966.png) ## 快速开始 **单行运行**(在 PowerShell 中以管理员身份运行): ``` irm https://raw.githubusercontent.com/SysAdminDoc/npp-sc-scanner/refs/heads/main/NppScanner-GUI.ps1 | iex ``` ## 脚本 | 脚本 | 描述 | |--------|-------------| | `Check-NotepadPlusPlusIOC.ps1` | **CLI 扫描器** - 非常适合 RMM 部署(ConnectWise、Datto、NinjaRMM 等) | | `Check-NotepadPlusPlusIOC-GUI.ps1` | **GUI 扫描器和修复工具** - 供技术人员使用的交互式 WPF 界面 | ## 功能 ### 检测范围 - **Notepad++ 版本分析** - 8.8.9 之前版本 = 存在漏洞,8.9.1 之前版本 = 已部分修补 - **恶意软件暂存目录** - `%APPDATA%\ProShow`、`%APPDATA%\Bluetooth` - **隐藏属性检测** - Chrysalis NSIS 安装程序会设置 Bluetooth 目录的隐藏属性 - **41 个文件哈希** - 25 个 SHA-1(Kaspersky)+ 16 个 SHA-256(Rapid7) - **8 个 C2 IP 地址** - 恶意更新主机和 C2 服务器 - **6 个 C2 域名** - 包括 api.skycloudcenter.com、wiresguard.com - **Cobalt Strike 产物** - 位于 `ProgramData\USOShared` 中 - **持久化机制** - 注册表 Run 键(包括 WOW6432Node)、服务、计划任务 - **正在运行的进程** - BluetoothService、ProShow、ConsoleApplication2、伪造的 svchost - **网络连接** - 活动的 C2 连接、DNS 缓存条目 - **GUP.exe 监控** - 连接到非合法更新源 - **Hosts 文件篡改** - notepad-plus-plus.org 重定向 - **Chrysalis 互斥体** - `Global\Jdhfv_1.0.1` - **AutoUpdate.exe** - 并非合法的 Notepad++ 文件 ### RMM/MSP 功能 (CLI) - **SYSTEM 账户支持** - 以 NT AUTHORITY\SYSTEM 身份运行时,自动枚举所有用户配置文件 - **退出代码** - `0` = 干净,`1` = 发现 IOC(用于 RMM 告警) - **导出到文件** - `-ExportPath` 参数用于合规性文档记录 - **HKU 注册表访问** - 以 SYSTEM 身份运行时,检查 HKEY_USERS 中加载的用户配置单元 ### GUI 功能 - **深色主题 WPF 界面** - 专业外观 - **实时扫描** - 进度条和状态更新 - **一键修复** - 终止进程、删除文件、清理注册表、阻止 C2 IP - **导出/复制报告** - 支持文本和 CSV 格式 - **来源链接** - 指向 Kaspersky、Rapid7 和官方披露信息的直接链接 ## 用法 ### CLI (RMM 部署) ``` # 基础扫描 .\Check-NotepadPlusPlusIOC.ps1 # 导出报告 .\Check-NotepadPlusPlusIOC.ps1 -ExportPath "C:\Reports\npp-scan.txt" # RMM 与 exit code check 集成 .\Check-NotepadPlusPlusIOC.ps1 -ExportPath "C:\Logs\npp-scan.txt" if ($LASTEXITCODE -eq 1) { # Alert: IOCs detected } ``` ### GUI ``` .\Check-NotepadPlusPlusIOC-GUI.ps1 ``` 或右键点击 >“使用 PowerShell 运行” ## RMM 部署说明 通过 RMM 工具(ConnectWise Automate、Datto RMM、NinjaRMM 等)部署时,脚本将以 `NT AUTHORITY\SYSTEM` 身份运行。版本 2.3 及以上通过以下方式自动处理此问题: 1. 检测 SYSTEM 执行上下文 2. 通过 `HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList` 枚举所有用户配置文件 3. 检查每个用户的 `%APPDATA%` 和 `%LOCALAPPDATA%` 路径 4. 通过 `HKU:\{SID}\...` 而不是 `HKCU:` 访问用户注册表配置单元 **以前的版本(2.3 之前)在以 SYSTEM 身份运行时会漏掉用户配置文件 IOC。** ## 误报说明 ### `C:\ProgramData\USOShared` 这是一个**合法的 Windows Update 目录**(更新会话协调器)。扫描程序仅在此目录包含特定的恶意产物(`svchost.exe`、`conf.c`、`libtcc.dll`)时才对其进行标记,而不是因其仅仅存在就标记。 ### DNS 缓存中的 `temp.sh` `temp.sh` 是一项合法的匿名文件共享服务,在此攻击活动中被用于数据外发。开发人员工作站上对 `temp.sh` 的 DNS 缓存命中可能是误报。在采取行动之前,请调查相关上下文。 ### `%APPDATA%\Adobe\Scripts` 这可能是一个合法的 Adobe 目录。仅当它包含 `alien.ini` 恶意软件配置时才对其进行标记。 ## 修复(仅限 GUI) GUI 提供自动修复功能,它可以: 1. **终止恶意进程** - BluetoothService、ProShow、ConsoleApplication2、伪造的 svchost 2. **删除恶意软件目录** - `%APPDATA%\ProShow`、`%APPDATA%\Bluetooth` 3. **删除特定的恶意软件文件** - 包括合法目录中的文件 4. **清理注册表持久化** - 包括 WOW6432Node 在内的 Run 键 5. **移除 BluetoothService 服务** - 如果存在 6. **取消注册恶意计划任务** 7. **创建防火墙规则** - 阻止与所有已知 C2 IP 的出站连接(需要提权) ## 修复后步骤 1. 通过从 [GitHub releases](https://github.com/notepad-plus-plus/notepad-plus-plus/releases) 手动下载,将 Notepad++ 更新至 v8.9.1+ 版本 2. 通过防火墙阻止 `gup.exe` 的 Internet 访问,或通过内部存储库路由更新 3. 轮换受影响机器上的凭证 4. 检查其他安装了 Notepad++ 的机器 5. 查看日志以寻找横向移动指标 6. 如果确认遭到入侵,请联络事件响应团队 ## 来源 - **Kaspersky GReAT**: [Notepad++ 供应链攻击分析](https://securelist.com/notepad-supply-chain-attack/118708/) - **Rapid7 Labs**: [Chrysalis 后门深度剖析](https://www.rapid7.com/blog/post/tr-chrysalis-backdoor-dive-into-lotus-blossoms-toolkit/) - **Notepad++ 官方**: [劫持事件信息更新](https://notepad-plus-plus.org/news/hijacked-incident-info-update/) ## 要求 - PowerShell 5.1+(内置于 Windows 10/11、Server 2016+ 中) - Windows 10/11 或 Windows Server 2016+ - GUI 需要 WPF(.NET Framework,内置于 Windows 中) - 建议使用管理员/提权权限以获得完整的检测能力 ## 版本历史 | 版本 | 日期 | 更改内容 | |---------|------|---------| | 2.3 | 2026-02-04 | 用于 RMM 部署的 SYSTEM 账户配置文件枚举;WOW6432Node 注册表覆盖;隐藏属性检测;退出代码;temp.sh 误报说明;错误修复 | | 2.2 | 2026-02-04 | USOShared 误报修复;Adobe\Scripts 智能检测 | | 2.1 | 2026-02-03 | 隐藏的 Bluetooth 目录检测 | | 2.0 | 2026-02-02 | GUI 修复工具;全面的 IOC 覆盖 | | 1.0 | 2026-02-01 | 初始版本发布
标签:AI合规, IPv6, IP 地址批量处理, Libemu, PowerShell, Web扫描, 威胁情报, 库, 应急响应, 开发者工具, 文档安全, 网络信息收集