nTune1030/hunt_malware

GitHub: nTune1030/hunt_malware

一个自动化蓝队扫描工具,通过关键词和行为分析检测主机恶意活动与入侵指标。

Stars: 0 | Forks: 0

# hunt_malware — 自动化蓝队扫描器 **版本:** 2.1.0 **要求:** Python 3.8+,管理员/Root权限,`psutil` 包 ## 概述 `hunt_malware` 是一个基于主机的威胁搜寻工具,用于扫描运行中的 Windows 或 Linux 系统,查找入侵指标(IOCs)。它将**关键词/签名匹配**与**行为及启发式分析**相结合,既能检测已知恶意软件工具,也能发现传统签名扫描器会遗漏的无文件/驻留型攻击。 ## 检测引擎 | 引擎 | 标志 | 检测内容 | |---|---|---| | **关键词进程扫描** | `--processes` | 在运行进程中的已知恶意软件工具名称(Meterpreter、Mimikatz、Netcat 等) | | **网络端口扫描** | `--network` | 可疑的监听/已建立连接端口 + 对网络连接进程的关键词匹配 | | **持久化检查** | `--persistence` | 注册表 Run 键、启动文件夹、计划任务、带有可疑条目的 Windows 服务 | | **DNS / Hosts 检查** | `--dns` | DNS 缓存中的可疑域名(.onion、pastebin、tor2web)、恶意 hosts 文件条目 | | **行为分析** | `--behavioral` | 可疑执行路径、Office 生成的 Shell、LOLBin 滥用、混淆的 PowerShell、名称/路径不匹配 | ### 行为分析详情 行为引擎是实际场景中最有效的检测器。它能识别: - **可疑执行路径** — 从 `\Temp\`、`\AppData\Roaming\`、`\Public\`、`/tmp/` 等目录运行的进程。恶意软件会释放到这些目录,因为无需 UAC 权限即可写入。 - **Office → Shell 生成** — Word、Excel、PowerPoint、Outlook 或 Acrobat 生成 `cmd.exe`、`powershell.exe`、`wscript.exe` 等。这是宏恶意软件和钓鱼载荷的头号指标。 - **LOLBin 滥用** — 18 种“驻留型二进制文件”(`certutil`、`mshta`、`rundll32`、`regsvr32`、`msbuild`、`msdt` 等),具备参数感知检测以减少误报。 - **可疑 PowerShell** — 22 种命令行模式(`-enc`、`-w hidden`、`-nop`、`IEX`、`FromBase64String`、`DownloadString`、`Reflection.Assembly` 等),采用多指标严重性评分。 - **名称/路径不匹配** — 进程名称与可执行文件名不符,可能指示进程空洞化。 ## 安装 ``` pip install -r requirements.txt ``` 无需其他外部依赖。 ## 用法 ``` # 运行所有扫描(默认) python hunt_malware.py # 运行特定扫描 python hunt_malware.py --processes python hunt_malware.py --network python hunt_malware.py --persistence python hunt_malware.py --dns python hunt_malware.py --behavioral # 合并扫描 python hunt_malware.py --processes --network --behavioral # JSON 输出用于 SIEM/工具集成 python hunt_malware.py --all --json > results.json # 使用自定义 IOC 词表(扩展内置关键词) python hunt_malware.py --wordlist ioc_keywords.txt ``` ## 退出代码 | 代码 | 含义 | |---|---| | 0 | 未检测到威胁 | | 1 | 检测到威胁 | | 2 | 错误(非管理员运行) | ## 严重性级别 | 级别 | 颜色 | 含义 | |---|---|---| | **高** | 红色 | 活跃的漏洞利用工具、Office 生成的 Shell、多指标 PowerShell 或关键词+端口关联 | | **中** | 黄色 | 可疑关键词匹配、带有可疑参数的 LOLBin、位于可疑路径的进程、单指标 PowerShell | | **低** | 青色 | 无关键词匹配的可疑端口、单个弱指标 | ## 自定义词表 `--wordlist` 标志可从文本文件加载额外的 IOC 关键词。文件格式很简单: ``` # 以 # 开头的行是注释 # 忽略空行 # 每行是一个关键词,不区分大小写地匹配进程名和命令行 mimikatz cobaltstrike beacon shell64 ``` 关键词匹配方式与内置关键词相同: - 短关键词(≤4 个字符)使用单词边界匹配以避免误报 - 较长关键词使用子字符串匹配 默认包含一个词表文件(`ioc_wordlist.txt`),其中包含常见的恶意软件家族名称、攻击工具标识符和可疑命令模式。 ## 输出 ### 控制台 彩色终端输出,带有按严重性编码的威胁警报: ``` [!] PROCESS THREAT DETECTED [HIGH] Keyword: meterpreter Severity: HIGH PID: 4832 Name: meterpreter.exe Path: C:\Users\bob\AppData\Local\Temp\meterpreter.exe SHA256: a1b2c3d4... Parent: cmd.exe Started: 2026-05-17 18:04:59 Command: C:\Users\bob\AppData\Local\Temp\meterpreter.exe ``` ### 日志文件 所有结果会追加到 `hunt_malware_log.txt`(位于脚本旁边),并剥离 ANSI 代码以获得清晰的纯文本。 ### JSON 使用 `--json` 时,会向标准输出打印一个结构化的 JSON 对象,包含所有威胁、严重性计数和扫描元数据。 ## 文件结构 ``` hunt_malware/ ├── hunt_malware.py # Main scanner script ├── hunt_malware_log.txt # Scan results log (gitignored) ├── ioc_wordlist.txt # Custom IOC keyword list ├── requirements.txt # Python dependencies ├── LICENSE # MIT License └── README.md # This file ``` ## 检测配置 所有检测规则均可在 `hunt_malware.py` 文件顶部进行配置: | 变量 | 用途 | |---|---| | `SUSPICIOUS_KEYWORDS` | 用于进程/命令行匹配的关键词列表 | | `SUSPICIOUS_PORTS` | 与攻击工具相关的端口 | | `KNOWN_SAFE_NAMES` | 需要跳过的进程名称(避免误报) | | `SUSPICIOUS_EXECUTION_PATHS` | 恶意软件通常释放载荷的目录 | | `OFFICE_PROCESS_NAMES` | 不应生成 Shell 的生产应用 | | `SUSPICIOUS_CHILD_PROCESSES` | Office 生成时可疑的 Shell/解释器 | | `LOLBINS` | “驻留型二进制文件”及其滥用描述 | | `SUSPICIOUS_POWERSHELL_PATTERNS` | 用于恶意 PowerShell 命令行的正则表达式模式 | ## 局限性 - **仅限于时间点扫描** — 不进行持续监控。可计划任务运行或结合 EDR 进行实时检测。 - **需要管理员/Root 权限** — 没有提升的权限,许多进程细节和持久化位置无法访问。 - **不能替代 AV/EDR** — 这是为分析师设计的搜寻工具,而非端点保护。 - **可能存在误报** — 像 `rundll32` 和 `msiexec` 这样的 LOLBin 有合法用途。响应前务必调查。 - **侧重于 Windows** — 行为分析和持久化检查在 Windows 上最为全面。Linux 支持涵盖 cron、systemd 以及基本的进程/网络检查。 ## 许可证 本项目采用 [MIT 许可证](LICENSE) 授权,并附有条款限制其仅用于教育和道德黑客目的。请负责任地使用,并仅在您拥有或有权审计的系统上运行。
标签:Conpot, DNS检查, IOC扫描, IP 地址批量处理, LOLBin检测, Mr. Robot, PowerShell分析, Windows安全, 关键词匹配, 启发式分析, 威胁情报, 开发者工具, 恶意工具识别, 持久性检查, 文件less攻击检测, 知识库安全, 签名匹配, 网络端口扫描, 进程扫描, 逆向工具