44tl/Cln
GitHub: 44tl/Cln
一个面向 Windows 的单文件轻量安全扫描器,专注于可疑文件、启动项持久化和恶意行为迹象的快速检测与排查。
Stars: 0 | Forks: 0
# CLN Scanner / BETA (可能存在错误) - V0.5.0
**加入 Discord 获取即时更新、安全说明和指南:** https://discord.gg/cqX6eAmcrp
CLN 是一个简单的单文件 Windows 专注扫描程序,用于扫描可疑下载、陌生新应用、未签名应用、诈骗文件、脚本、存档和启动项。它旨在实现快速启动、透明展示其扫描过程,并默认避免执行高开销的操作。它不进行任何网络调用,除非您主动要求,否则不会清理任何内容。
## 快速入门
**CLI 模式 (默认):**
```
python cln.py
```
扫描常见风险位置并在终端打印报告。
**系统托盘模式 (后台运行 + 点击打开 GUI):**
```
python cln.py --tray
```
运行一个最小化的托盘图标;点击它打开完整的设置 GUI。需要 `pystray` 和 `Pillow`:
```
python -m pip install -r requirements.txt
```
**GUI 模式 (立即扫描然后显示审查 GUI):**
```
python cln.py --gui
```
执行扫描并打开图形化审查/删除窗口。
## 使用方法
**默认行为:** 运行 `python cln.py` 会对常见位置 (下载、桌面、文档、临时文件) 执行无界面扫描,并打印一份文本报告。它以 CLI 为优先,并可在任何平台上运行。
### 基本扫描
扫描常见风险位置 (下载、桌面、文档、临时文件):
```
python cln.py
```
扫描特定文件夹:
```
python cln.py C:\Users\You\Downloads
```
扫描整个用户配置文件:
```
python cln.py --full
```
### 启动项、进程与行为检查
包含 Windows 启动项检查 (文件夹、注册表、计划任务、WMI、浏览器扩展):
```
python cln.py --startup
```
包含运行中进程检查 (命令行和内存区域):
```
python cln.py --processes
```
分析进程父子关系以检测 Living-off-the-Land 模式:
```
python cln.py --behavior
```
实时监控进程创建:
```
python cln.py --monitor
```
### 管理员注意事项
要进行最深入的扫描,请先以管理员身份打开 PowerShell 或命令提示符。在没有管理员权限的情况下,Windows 可能会阻止锁定的临时文件或受保护的应用程序文件;CLN 将跳过这些文件,并告知您有多少文件被阻止。在扫描运行期间,临时文件也可能消失;CLN 会将这些计为跳过,而不是将它们显示为错误。
### 输出格式
输出 JSON:
```
python cln.py --json
```
输出 CSV 以供电子表格审查:
```
python cln.py --csv
```
写入用于 CI/CD 或代码扫描的 SARIF:
```
python cln.py --sarif .\reports\cln.sarif
```
在 JSON/文本报告中包含按时间顺序的时间线:
```
python cln.py --timeline
```
### 基线比较
仅显示先前 JSON 报告中未出现的发现:
```
python cln.py --json > .\reports\baseline.json
python cln.py --baseline .\reports\baseline.json
```
### GUI 和托盘模式
在扫描**之后**打开内置的审查和移除 GUI:
```
python cln.py --gui
```
将 CLN 作为**系统托盘应用程序**运行 (仅限 Windows):
```
python cln.py --tray
```
### 高级选项
深度检查 Windows Authenticode 签名:
```
python cln.py --signatures
```
同时扫描风险文件夹之外的源代码脚本:
```
python cln.py --include-source
```
将本地网络连接映射到拥有该连接的进程 (仅限 Windows):
```
python cln.py --network
```
对 PE 文件运行启发式熵和导入分析:
```
python cln.py --heuristic
```
扫描进程内存以检测进程镂空和可执行区域:
```
python cln.py --memory-scan
```
运行自我保护和防篡改检查:
```
python cln.py --stealth
```
限制嵌套 ZIP 递归深度:
```
python cln.py --archive-depth 4
```
安静模式 (抑制进度输出):
```
python cln.py --quiet
```
禁用彩色终端输出:
```
python cln.py --no-color
```
运行连续轮询扫描 (多轮):
```
python cln.py --continuous --poll-interval 30 --poll-count 3
```
### 扫描配置文件
使用捆绑常用标志的预设配置文件:
```
python cln.py --profile deep
python cln.py --profile forensic
python cln.py --profile paranoid
```
| 配置文件 | 用途 |
|---------|---------|
| `fast` | 针对常见风险位置的快速本地检查。 |
| `deep` | 增加更强的文件、存档、签名和源代码覆盖范围。 |
| `forensic` | 增加启动项、进程、网络和时间线检查。 |
| `paranoid` | 提高扫描限制和深度以进行最大程度的审查。 |
### 脱敏控制
报告、JSON 和终端输出默认脱敏常见的 token、webhook URL、控制字符和当前主路径。
当您需要保留路径但仍隐藏机密信息时,请使用较轻的脱敏模式:
```
python cln.py --redact-level secrets --json
```
完全禁用脱敏 (仅限本地取证工作):
```
python cln.py --no-redact
```
### 清理操作
**隔离**已确认的已知恶意文件 (仅限内置哈希):
```
python cln.py --clean --startup
```
永久**删除**而不是隔离:
```
python cln.py --clean --delete
```
隔离与**用户提供的**哈希匹配的文件 (需要选择加入):
```
python cln.py --known-bad .\hashes.json --clean --clean-user-hashes
```
从清单文件还原被隔离的文件:
```
python cln.py --restore .\quarantine\manifest.json
```
### 自定义规则与签名
在不编辑 `cln.py` 的情况下添加外部内容规则:
```
python cln.py --rules .\rules.json
```
在安装了 `yara-python` 时运行 YARA 规则:
```
python cln.py --yara-rules .\yara-rules
```
运行 CLN 的内置 YARA-lite 规则引擎:
```
python cln.py --yara-lite-rules rules\cln-strong.yara-lite.json
```
提供您自己的已知恶意和已知安全的哈希列表:
```
python cln.py --known-bad .\bad-hashes.json --known-good .\good-hashes.json
```
带有来源元数据的结构化哈希列表:
```
{
"schema": "cln-hash-list-v1",
"description": "Internal confirmed bad hashes",
"updated_at": "2026-04-30T00:00:00Z",
"hashes": [
{"sha256": "7123e1514b939b165985560057fe3c761440a9fff9783a3b84e861fd2888d4ab", "description": "known bad sample"}
]
}
```
更改报告输出目录:
```
python cln.py --report-dir .\reports
```
更改隔离目录:
```
python cln.py --quarantine-dir .\quarantine
```
导出证据包 (复制高风险样本及元数据):
```
python cln.py --bundle .\evidence
```
限制内容扫描大小 (默认 75 MB):
```
python cln.py --max-mb 150
```
调整并行工作线程数 (默认:自动):
```
python cln.py --workers 8
```
## 检查内容
| 类别 | 描述 |
|----------|-------------|
| **可执行文件与脚本** | 可疑的可执行文件和脚本文件,用户文件夹中新出现的可运行文件 |
| **签名** | 使用 `--signatures` 时检测到的未签名或不受信任的 Windows 应用 |
| **文件类型不匹配** | 被重命名的可执行文件、伪装的快捷方式 |
| **虚假文档** | 诸如 `invoice.pdf.exe` 的名称、类似诈骗的名称 |
| **存档** | ZIP、Office 文档、Java/Android 包、浏览器/软件包存档 |
| **存档分析** | 存档路径遍历、可疑的压缩率、嵌套 ZIP、嵌入式宏项目、外部 Office 链接 |
| **熵值检查** | 对可疑可执行文件和脚本执行滑动窗口熵检查 |
| **PE 分析** | ImpHash、可疑的节名称、高熵可执行节、可写可执行节、可疑导入簇、时间戳异常、异常入口点 |
| **快捷方式解析** | 原生 LNK 字符串解析,用于快捷方式目标和参数 |
| **PDF 分析** | JavaScript、打开/启动动作、附加动作、嵌入文件 |
| **OLE 提取** | 传统 OLE 字符串提取,用于检测 VBA 自启动、shell 执行和混淆指示器 |
| **脚本反混淆** | 轻量级脚本字符串解析,用于在内容规则运行前处理简单的字符串拼接、反转、替换和字符数组混淆 |
| **证据片段** | 匹配脚本内容规则的字节偏移量和行号 |
| **启动位置** | Windows 启动文件夹、注册表 Run/RunOnce 条目、当前用户 COM 覆盖、IFEO 调试器键、AppInit/AppCert DLL 设置、Shell 图标叠加处理程序、计划任务、WMI 订阅、可疑浏览器扩展 |
| **进程检查** | 使用 `--processes` 进行的可选运行中进程命令行和可执行文件专用内存检查 |
| **行为图** | 使用 `--behavior` 进行的父子进程谱系分析 |
| **实时监控** | 使用 `--monitor` 进行的进程创建监控 |
| **本地网络** | 使用 `--network` 将活动 TCP/UDP 连接映射到对应进程 |
| **GUI 功能** | 内置 Tkinter 移除 GUI,优先处理高/严重级别的发现,提供选中文件的隔离/删除操作和已知恶意哈希清理功能 |
| **指示器** | 已编译的 Python 产物、原始 IP 指示器、脚本中可疑的 URL TLD |
| **哈希列表** | 已知恶意哈希和可信哈希白名单可见性 |
## 安全性
没有任何一款扫描器能捕获所有威胁。请将 CLN 作为防护体系中的一层,与 Windows Defender、浏览器保护机制以及真正受到感染后谨慎的账户恢复步骤配合使用。
标签:API接口, DNS 解析, Linux安全, Living-off-the-Land(LoLBins)检测, Python安全工具, Qt, SolidJS, Windows安全扫描器, 下载文件安全检查, 压缩包扫描, 可疑文件检测, 启动项管理, 命令行工具(CLI), 图形界面(GUI), 多包管理, 开源安全工具, 搜索语句(dork), 文件完整性检查, 无签名应用扫描, 端点可见性, 系统托盘应用, 系统清理工具, 系统诊断工具, 终端安全(EDR), 网络信息收集, 网络安全, 脚本安全分析, 自动化安全运维, 轻量级杀毒, 逆向工具, 逆向工程平台, 隐私保护