Vibhav-XLR8/LogHunter

GitHub: Vibhav-XLR8/LogHunter

一款跨平台命令行日志威胁分析器,通过行为关联将分散的安全事件串联成完整攻击故事,并自动映射到MITRE ATT&CK框架。

Stars: 0 | Forks: 0

# 🔍 LogHunter — 命令行威胁分析器 (CLTA)

## 🎯 问题陈述 现代网络攻击涉及随时间推移而展开的复杂命令序列。当前的安全解决方案可以标记单个可疑命令,但无法提供完整的攻击叙述。分析师必须手动关联多个命令以理解完整的攻击故事 —— 这是一个既耗时又容易出错的过程。 **LogHunter 解决了这个问题**,它通过自动跨时间和上下文关联相关命令,提供行为分析以识别攻击模式,并将命令序列可视化以揭示攻击进展。 ## ✨ 核心功能 | 功能 | 描述 | |---|---| | **107+ 条检测规则** | Windows, Linux, macOS, Cloud — 按 OS → 类别 → 规则组织 | | **实时威胁情报** | 129,212 个恶意 IP,11,952 个 URL,来源于 Abuse.ch, IPsum, ThreatFox | | **LOLBAS + GTFOBins** | 监控 465 个 Windows + 199 个 Linux 可滥用二进制文件 | | **Sigma 规则** | 自动下载社区验证的 SigmaHQ 规则 | | **行为关联器** | 将检测结果串联成完整的攻击故事 | | **MITRE ATT&CK 映射** | 完整的 TTP 丰富化与杀伤链追踪 | | **跨主机检测** | 识别跨多个主机的协同攻击活动 | | **异常评分** | ML 风格的风险评分与可解释因子 | | **减少误报** | 可配置白名单引擎 | | **多格式报告** | JSON · HTML Dashboard · PDF · MITRE Navigator | | **CLI 界面** | 带有标志的完整命令行界面 | | **演示场景** | 勒索软件, APT, 横向移动模拟 | ## 🏗️ 架构 ``` Azure Sentinel Logs (JSON/CSV) │ ▼ ┌─────────────┐ │ Log Parser │ ← Normalize all formats → LogEvent └──────┬──────┘ │ ┌──────▼──────────────────────────────────┐ │ Rule Engine (107+ rules) │ │ Windows(25) Linux(40) macOS(17) │ │ Cloud(20) Sigma(5+) │ └──────┬──────────────────────────────────┘ │ ┌──────▼──────┐ ┌─────────────────┐ │ IOC Matcher │ │ FP Reducer │ │ 129K+ IOCs │ │ Whitelist │ └──────┬──────┘ └────────┬────────┘ │ │ ┌──────▼────────────────────▼──────┐ │ Behavioral Correlator │ │ Attack Stories · Anomaly Score │ │ Temporal · Cross-Host │ └──────┬───────────────────────────┘ │ ┌──────▼──────┐ │ MITRE Mapper│ ← Technique enrichment · Kill chain · Mitigations └──────┬──────┘ │ ┌──────▼─────────────────────────────────┐ │ Reports │ │ JSON · HTML Dashboard · PDF · Navigator│ └────────────────────────────────────────┘ ``` ## 🚀 快速开始 ### 前置条件 ``` python 3.10+ pip install requests reportlab ``` ### 安装 ``` git clone https://github.com/YOUR_USERNAME/LogHunter.git cd LogHunter pip install -r requirements.txt ``` ### 运行你的第一次扫描 ``` # 扫描 log 文件 python cli.py scan --file samples/sentinel_logs.json # 使用所有 output 格式进行扫描 python cli.py scan --file samples/sentinel_logs.json --format all # 快速扫描(跳过 threat intel 下载) python cli.py scan --file samples/logs.csv --fast # 扫描 log 文件目录 python cli.py scan --dir samples/ --format all --explain ``` ### 生成演示攻击场景 ``` # Ransomware 模拟 python cli.py scenario --type ransomware --output samples/ransomware_sim.json # 完整 APT campaign python cli.py scenario --type apt --output samples/apt_sim.json # 所有场景 python cli.py scenario --type all --output samples/full_sim.json # 扫描 simulation python cli.py scan --file samples/full_sim.json --format all ``` ### 从现有结果生成报告 ``` python cli.py report --input output/reports/loghunter_full_report.json --format pdf python cli.py report --input output/reports/loghunter_full_report.json --format navigator ``` ## 📁 项目结构 ``` LogHunter/ ├── cli.py ← CLI entry point ├── main.py ← Direct Python entry point ├── config.py ← API keys + settings │ ├── core/ │ ├── engine/ │ │ ├── parser.py ← Log parser (JSON/CSV → LogEvent) │ │ └── analyzer.py ← Rule engine orchestrator │ │ │ ├── rules/ │ │ ├── base.py ← BaseRule + RuleMatch classes │ │ ├── windows/ ← 25 Windows detection rules │ │ ├── linux/ ← 40 Linux detection rules │ │ ├── macos/ ← 17 macOS detection rules │ │ ├── cloud/ ← 20 Cloud/Azure detection rules │ │ └── cross_platform/ ← Cross-platform rules │ │ │ ├── threat_intel/ │ │ ├── feed_manager.py ← IOC feed downloader + cache │ │ ├── ioc_matcher.py ← IOC matching engine │ │ └── sigma_converter.py ← SigmaHQ rule downloader │ │ │ ├── behavioral/ │ │ ├── correlator.py ← Attack story builder │ │ ├── anomaly.py ← Anomaly scoring │ │ ├── sequencer.py ← AttackStory data model │ │ └── temporal.py ← Cross-host correlation │ │ │ ├── mitre/ │ │ ├── mapper.py ← MITRE ATT&CK enrichment │ │ └── ttp_db.py ← TTP database (100+ techniques) │ │ │ ├── false_positive/ │ │ └── reducer.py ← Whitelist-based FP reduction │ │ │ └── reporter/ │ ├── pdf_reporter.py ← PDF report generator │ ├── navigator_export.py ← MITRE Navigator JSON export │ └── sentinel.py ← Azure Sentinel push (Phase 4) │ ├── scenarios/ │ └── generator.py ← Attack scenario simulator │ ├── samples/ ← Sample log files ├── data/ │ ├── threat_intel/ ← Cached IOC feeds (24hr TTL) │ └── sigma_rules/ ← Cached Sigma YAML rules │ └── output/ └── reports/ ← Generated reports ``` ## 🧩 检测规则 ### Windows (25 条规则) | 类别 | 规则 | |---|---| | 用户与组管理 | 新用户、管理员组添加、账户启用 | | 持久化 | 计划任务、注册表运行键、启动文件夹、服务 | | 文件下载 | PowerShell 下载、CertUtil LOLBin、BITSAdmin、MSHTA | | 进程执行 | 编码 PS、隐藏窗口、IEX、策略绕过、WMI、Rundll32 | | 网络侦察 | 网络发现、端口扫描、C2 端口、DNS 隧道 | | UAC 绕过 | Fodhelper、事件查看器、磁盘清理技术 | ### Linux (40 条规则) | 类别 | 规则 | |---|---| | 用户与组 | useradd、sudoers 修改、root 登录 | | 持久化 | Cron、systemd、rc.local、bashrc、SSH 密钥、MOTD | | 文件下载 | wget、curl、python HTTP、TFTP、下载+执行链 | | 执行 | Bash/Python/NC/Perl/PHP 反向 Shell、sudo 滥用、memfd | | 侦察 | 系统信息、用户枚举、网络发现、sudo -l | | 数据渗出 | Base64、netcat、tar 归档、curl POST、DNS 渗出 | | 凭据 | /etc/shadow、hashcat、hydra、mimipenguin | ### Cloud/Azure (20 条规则) | 类别 | 规则 | |---|---| | 登录 | 高风险国家、Tor 出口节点、Azure AD 风险、不可能的旅行 | | MFA | MFA 绕过、MFA 禁用、旧版认证、OAuth 同意 | | Azure 活动 | 角色分配、策略修改、资源删除、服务主体 | | 云应用 | 批量下载、SharePoint 外部共享、cloud shell、API 侦察 | ### macOS (17 条规则) | 类别 | 规则 | |---|---| | 持久化 | LaunchAgent、LaunchDaemon、登录项、cron、定期脚本 | | 执行 | osascript、反向 Shell、DYLD 注入、Spotlight 滥用 | | 凭据 | Keychain 转储、浏览器凭据、sudo 提权 | | 网络 | 网络侦察、防火墙禁用、Gatekeeper 绕过 | ## 📊 示例输出 ``` ============================================================ 🔍 LogHunter — Advanced Threat Hunting Engine ============================================================ 📊 LogHunter Summary: 🌐 Threat feeds : Abuse.ch + IPsum + LOLBAS + GTFOBins 📋 Sigma rules : 5 loaded 🗂️ Events analyzed : 17 🚨 Detections : 45 (40 rules + 5 IOC) 📖 Attack stories : 5 🗺️ MITRE techniques : 12 ⛓️ Kill chain depth : Exfiltration 🌐 Cross-host links : 2 Attack Stories: 🔴 STORY-002 [CRITICAL] admin@company.com on Azure Cloud (Score: 310) Pattern: C2 Beacon + Persistence | Steps: 9 | Tactics: 5 Kill chain: Initial Access → Credential Access → Persistence → Defense Evasion 🔴 STORY-004 [CRITICAL] jane.smith on DESKTOP-WIN02 (Score: 100) Pattern: Full Compromise | Steps: 7 | Tactics: 4 🔴 STORY-001 [CRITICAL] john.doe on DESKTOP-WIN01 (Score: 75) Pattern: Full Compromise | Steps: 5 | Tactics: 4 🌐 Cross-host: Shared C2 (192.168.1.100) across 3 hosts 🌐 Cross-host: Coordinated attack — 5 hosts in 3 minute window ``` ## 🌐 威胁情报来源 | 来源 | 数据 | 更新频率 | |---|---|---| | [IPsum](https://github.com/stamparm/ipsum) | 129,212 个恶意 IP | 每日 | | [Feodo Tracker](https://feodotracker.abuse.ch) | C2 僵尸网络 IP (Emotet/TrickBot/QBot) | 每日 | | [URLhaus](https://urlhaus.abuse.ch) | 恶意软件分发 URL | 实时 | | [ThreatFox](https://threatfox.abuse.ch) | IP、域名、URL、哈希 | 实时 | | [LOLBAS](https://lolbas-project.github.io) | 465 个 Windows 可滥用二进制文件 | 已更新 | | [GTFOBins](https://gtfobins.github.io) | 199 个 Linux 提权二进制文件 | 已更新 | | [AlienVault OTX](https://otx.alienvault.com) | 威胁情报脉冲 (需要 API 密钥) | 实时 | | [SigmaHQ](https://github.com/SigmaHQ/sigma) | 社区检测规则 | 已更新 | ## ⚙️ 配置 编辑 `config.py`: ``` # AlienVault OTX API 密钥(在 otx.alienvault.com 免费获取) OTX_API_KEY = "YOUR_KEY_HERE" # Threat intel 设置 THREAT_INTEL = { "cache_ttl_hours": 24, # Refresh feeds every 24 hours "enabled_feeds": [ "urlhaus", "feodo", "ipsum", "threatfox", "lolbas", "gtfobins", "otx" ] } ``` ### 自定义白名单 创建 `config/whitelist.json`: ``` { "trusted_processes": ["your_monitoring_tool.exe"], "trusted_ips": ["10.0.0.1", "192.168.1.1"], "trusted_users": ["svc_monitoring"], "trusted_domains": ["yourcompany.com"], "suppressed_rules": ["WIN-NET-001"] } ``` 使用它: ``` python cli.py scan --file logs.json --whitelist config/whitelist.json ``` ## 🗺️ MITRE ATT&CK 覆盖范围 LogHunter 目前映射到以下领域的 **100+ 项 ATT&CK 技术**: - 初始访问 (Initial Access) (T1078, T1190, T1566) - 执行 (Execution) (T1059, T1047, T1204) - 持久化 (Persistence) (T1053, T1136, T1543, T1547) - 权限提升 (Privilege Escalation) (T1548, T1068) - 防御规避 (Defense Evasion) (T1218, T1562, T1553, T1574) - 凭据访问 (Credential Access) (T1003, T1110, T1555, T1621) - 发现 (Discovery) (T1033, T1046, T1082) - 横向移动 (Lateral Movement) (T1021, T1550) - 收集 (Collection) (T1530, T1560) - 命令与控制 (Command and Control) (T1071, T1090, T1105, T1571) - 数据渗出 (Exfiltration) (T1048, T1567) - 影响 (Impact) (T1485, T1486, T1490) 导出 Navigator 热力图: ``` python cli.py report --input output/reports/loghunter_full_report.json --format navigator ``` 然后在 [attack.mitre.org/matrices/navigator](https://mitre-attack.github.io/attack-navigator/) 导入 ## 🔮 路线图 - [x] 第一阶段 — 核心规则引擎 - [x] 第二阶段 — 威胁情报集成 - [x] 第三阶段 — 行为关联 + MITRE 映射 - [ ] 第四阶段 — Azure Sentinel 集成 (进行中) - [ ] 第五阶段 — 实时流模式 - [ ] 第六阶段 — 基于机器学习的异常检测 - [ ] 第七阶段 — Web UI ## 👤 作者 由 **Vibhav** 构建 — SOAR + AI 安全自动化专家 - 专长:Azure Sentinel, SOAR playbooks, 威胁狩猎 - LinkedIn: [your-linkedin] - Twitter: [your-twitter] ## 📄 许可证 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。 ## ⚠️ 免责声明 LogHunter 仅用于授权的安全测试和防御目的。在扫描任何系统或日志之前,请务必确保您拥有适当的授权。作者不对任何误用行为负责。
标签:AI安全, AMSI绕过, Chat Copilot, Cloudflare, CSV导出, DNS 反向解析, DNS 解析, EDR辅助工具, FTP漏洞扫描, GTFOBins, HTTP/HTTPS抓包, IOC, IP 地址批量处理, LOLBAS, MITRE ATT&CK, PE 加载器, Python安全工具, Sigma规则, SOAR, Web报告查看器, 后渗透, 命令行审计, 威胁情报, 威胁检测, 安全可视化, 安全编排, 开发者工具, 异常评分, 态势感知, 恶意IP检测, 插件系统, 攻击链重构, 数据集, 无线安全, 流量嗅探, 目标导入, 网络信息收集, 网络安全, 网络安全审计, 误报减少, 跨平台安全, 隐私保护