TMHSDigital/Am-I-Hacked

GitHub: TMHSDigital/Am-I-Hacked

零依赖的 Windows 单文件安全评估工具,通过 70+ 启发式检查快速识别入侵指标并生成交互式 HTML 报告。

Stars: 0 | Forks: 0

Am I Hacked? **零依赖 Windows 安全评估工具。**
**查找入侵指标。生成交互式 HTML 报告。将所有内容映射到 MITRE ATT&CK。** `CRITICAL` -- 强 IOC,立即行动  |  `WARNING` -- 可疑,请调查  |  `INFO` -- 值得注意
[![PowerShell 5.1+](https://img.shields.io/badge/PowerShell-5.1%2B-0d1117?style=for-the-badge&logo=powershell&logoColor=5391FE)](https://docs.microsoft.com/powershell/) [![Windows 10/11](https://img.shields.io/badge/Windows-10%20%2F%2011-0d1117?style=for-the-badge&logo=windows&logoColor=white)](https://www.microsoft.com/windows) [![License: MIT](https://img.shields.io/badge/License-MIT-0d1117?style=for-the-badge&logoColor=white)](LICENSE) [![Version](https://img.shields.io/badge/Version-0.4.0-FF6B6B?style=for-the-badge)](#changelog) [![Zero Dependencies](https://img.shields.io/badge/Dependencies-Zero-0d1117?style=flat-square&labelColor=0d1117)](#) [![MITRE ATT&CK](https://img.shields.io/badge/MITRE%20ATT%26CK-40%2B%20Techniques-ff3333?style=flat-square&labelColor=0d1117)](#mitre-attck-coverage) [![Detections](https://img.shields.io/badge/Detections-70%2B-ff3333?style=flat-square&labelColor=0d1117)](#modules) [![VirusTotal](https://img.shields.io/badge/VirusTotal-Integrated-394EFF?style=flat-square&labelColor=0d1117&logo=virustotal&logoColor=white)](#configuration) [![Scan Time](https://img.shields.io/badge/Scan%20Time-~30s-0d1117?style=flat-square&labelColor=0d1117)](#quick-start) [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-22c55e?style=flat-square&labelColor=0d1117)](CONTRIBUTING.md)
## 为什么开发此工具 大多数安全工具要么是企业级的($$$ + 代理 + 云),要么是只检查 3 项内容的脚本小子单行脚本。**Am I Hacked?** 填补了这一空白:这是一个单独的 PowerShell 脚本,可以跨 5 个安全域运行 70 多项启发式检查,生成可操作的 HTML 报告,并且需要零安装、零依赖、零网络。 **运行它。阅读报告。了解你的处境。** ### 它是如何工作的 ``` flowchart LR Launch["AmIHacked.ps1"] --> Discover["Auto-discover modules"] Discover --> Processes["Processes"] Discover --> Network["Network"] Discover --> Accounts["Accounts"] Discover --> FileSystem["File System"] Discover --> Defense["Defense Evasion"] Processes --> Findings["Findings + MITRE tags"] Network --> Findings Accounts --> Findings FileSystem --> Findings Defense --> Findings Findings --> Report["HTML Report"] Findings --> JSON["JSON Export"] ``` ## 快速开始 ``` git clone https://github.com/TMHSDigital/Am-I-Hacked.git cd Am-I-Hacked # 以管理员身份运行以获取完整结果 .\AmIHacked.ps1 ``` 报告会在你的浏览器中自动打开。发现的结果按严重程度(CRITICAL / WARNING / INFO)进行着色,并标记有 MITRE ATT&CK 技术 ID,同时包含可复制粘贴的修复命令。
第一次使用?请先创建基线。 ``` # 步骤 1 — 在已知洁净的系统上,Snapshot 当前状态 .\AmIHacked.ps1 -CreateBaseline # 步骤 2 — 稍后随时运行 Scan。自 Baseline 以来的变更会被自动标记。 .\AmIHacked.ps1 ``` 基线可以启用**变更检测** —— 这是发现入侵最强大的信号。新的端口、服务、账户、自动运行条目和计划任务都会与你的干净快照进行比对并标记。
## 用法 ``` # Offline 模式 — 无 API 调用 .\AmIHacked.ps1 -Offline # 导出 JSON 和 HTML .\AmIHacked.ps1 -ExportJson # 跳过特定模块 .\AmIHacked.ps1 -SkipModules Network,Accounts # 与特定 Baseline 进行比较 .\AmIHacked.ps1 -BaselinePath C:\Backups\clean_baseline.json # 自定义输出目录 .\AmIHacked.ps1 -OutputPath "C:\SecurityReports" # 在输出中隐藏操作者身份 (用于截图 / 分享) .\AmIHacked.ps1 -Redact # CI / AI Agent 模式 (结构化 JSON 摘要 + Exit code) .\AmIHacked.ps1 -CIMode -ExportJson -Offline ``` | 参数 | 描述 | |-----------|-------------| | `-OutputPath` | 报告输出目录(默认值:`.\reports`) | | `-SkipModules` | 要跳过的模块名称(例如 `Network,Accounts`) | | `-ConfigPath` | `config.json` 的路径(默认值:`.\config\config.json`) | | `-Offline` | 禁用所有外部 API 调用 | | `-BaselinePath` | 特定基线 JSON 的路径 | | `-CreateBaseline` | 快照当前系统状态 | | `-ExportJson` | 将发现结果以 JSON 格式与 HTML 一起输出 | | `-VerboseOutput` | 启用详细控制台输出 | | `-Redact` | 在所有输出中掩盖操作员身份(计算机名、用户名、路径) | | `-CIMode` | 适用于 Agent/CI 的输出:隐藏 banner + 浏览器,自动脱敏,stdout 输出 JSON 摘要,结构化退出代码 | ## CI / AI Agent 用法 `-CIMode` 使该工具可用于 CI 流水线和 AI 终端 Agent(Claude Code, Cursor 等): ``` .\AmIHacked.ps1 -CIMode -ExportJson -Offline ``` **CI 模式下的变化:** - ASCII banner 替换为单行纯文本标题 - 禁止自动打开浏览器 - 自动启用 `-Redact`(掩盖操作员身份) - 所有输出结束后,向 stdout 打印机器可读的 JSON 摘要: ``` ---AMIHACKED-SUMMARY-JSON--- {"verdict":"CAUTION","critical":0,"warning":3,"info":12,"total":15,"duration":28.4,"reportPath":"...","version":"0.4.0"} ``` - 退出代码反映发现结果:**0** = 干净,**1** = 仅有警告,**2** = 检测到关键发现 非交互式环境(例如通过 `powershell.exe -NonInteractive` 管道传输)会自动启用 CI 模式行为。 ## 模块
进程与服务分析 未签名进程检测(Authenticode 验证)、可疑的父→子进程链(Word→PowerShell)、临时目录可执行文件、恶意服务配置、未加引号的服务路径、已知攻击工具(Mimikatz, Cobalt Strike 等)
网络指标 带有反向 DNS 的外部连接、AbuseIPDB 威胁情报、异常监听端口、DNS 劫持、hosts 文件篡改、代理注入、Windows 防火墙状态
账户与身份验证 最近创建的账户和隐藏账户($ 后缀)、管理员组审计、暴力破解检测(Event 4625)、RDP 会话历史、事件日志清除(1102/104)、凭据转储痕迹(LSASS/SAM)、LSA 保护状态
文件系统危险信号 被修改的系统二进制文件、带有签名验证的临时文件扫描、VirusTotal 哈希查询、备用数据流、信息窃取程序痕迹、8 种持久化机制(Run 键、IFEO、AppInit_DLLs、Winlogon、COM 劫持、WMI 订阅、幽灵计划任务、BITS 作业滥用)、Defender 排除项审计
防御规避 已清除的事件日志、AMSI 篡改、Defender 实时保护和篡改保护、ETW 自动记录器篡改、DisableAntiSpyware 策略
## 报告 自包含的 HTML 报告(单文件,无外部依赖)包括: | 功能 | 描述 | |---------|-------------| | **安全评分** | 基于发现严重程度的动画 SVG 甜甜圈图(0–100) | | **裁决横幅** | CLEAN / CAUTION / SUSPICIOUS / COMPROMISED | | **MITRE ATT&CK 徽章** | 可点击的技术 ID,链接到 attack.mitre.org | | **可过滤的发现结果** | 按严重程度过滤,展开/折叠类别 | | **一键复制修复** | 点击任何 PowerShell 命令即可复制到剪贴板 | | **技术细节** | 每个发现结果的 JSON 深入分析 | | **双主题** | 专业默认主题 + “终端模式”(CRT 扫描线、故障效果、霓虹发光) | | **自动折叠** | 仅含 INFO 的类别默认折叠,以突出重点 | | **打印支持** | 干净的打印优化布局 | ## 配置 复制示例配置并根据你的环境进行编辑: ``` Copy-Item config/config.example.json config/config.json ``` 然后编辑 `config/config.json`(已被 gitignore —— API 密钥保留在本地): ``` { "ProcessWhitelist": ["svchost", "csrss", ...], // Skip known-good processes "TrustedCompanies": ["Microsoft Corporation", ...], // Vendor trust for signature checks "TrustedPorts": [135, 445, 5432, 8080, ...], // Expected listening ports "TrustedIPs": ["13.107.0.0/16", ...], // CIDR ranges to skip "TrustedDomainSuffixes": [".microsoft.com", ...], // FP reduction for reverse-DNS "VirusTotalAPIKey": "", // Free: virustotal.com "AbuseIPDBKey": "", // Free: abuseipdb.com "SuspiciousParentChild": [ // Process chain detection rules { "Parent": "winword.exe", "Child": "powershell.exe" } ] } ```
所有配置选项 | 键 | 类型 | 描述 | |-----|------|-------------| | `ProcessWhitelist` | `string[]` | 在签名检查期间要跳过的进程名称 | | `ServiceWhitelist` | `string[]` | 要跳过的服务名称 | | `TrustedIPs` | `string[]` | 不会被标记的 IP/CIDR | | `TrustedPorts` | `int[]` | 预期的监听端口 | | `TrustedCompanies` | `string[]` | 用于信任验证的供应商名称 | | `TrustedDomainSuffixes` | `string[]` | 用于减少反向 DNS 误报的域后缀 | | `VirusTotalAPIKey` | `string` | 用于哈希查询的 VT API 密钥 | | `AbuseIPDBKey` | `string` | 用于 IP 信誉查询的 AbuseIPDB 密钥 | | `SuspiciousParentChild` | `object[]` | 父→子进程规则 | | `SuspiciousTempExtensions` | `string[]` | 在临时目录中被标记的扩展名 | | `TrustedAppDirs` | `string[]` | 在临时目录扫描期间要跳过的应用目录名称 | | `AccountMaxAgeDays` | `int` | 标记 N 天内创建的账户 | | `FileSystemMaxAgeDays` | `int` | 标记最近修改的系统可执行文件 | | `MaxEventLogEntries` | `int` | 每个日志要扫描的最大事件数 |
## MITRE ATT&CK 覆盖范围 每个发现结果都标记了来自 [MITRE ATT&CK](https://attack.mitre.org/) 框架的技术 ID。
完整覆盖矩阵(跨越 11 个战术的 40 多种技术) | 战术 | 技术 | |--------|-----------| | **Execution** | T1059.001, T1204.002 | | **Persistence** | T1053.005, T1136.001, T1197, T1543.003, T1546.003, T1546.010, T1546.012, T1546.015, T1547.001, T1547.004 | | **Privilege Escalation** | T1574.001, T1574.009 | | **Defense Evasion** | T1036.001, T1036.005, T1070.001, T1562.001, T1562.002, T1562.004, T1564, T1564.002, T1564.004 | | **Credential Access** | T1003.001, T1003.002, T1003.003, T1110, T1110.001, T1555, T1555.003 | | **Discovery** | T1078.003 | | **Lateral Movement** | T1021.001 | | **Collection** | T1005, T1560.001 | | **Command & Control** | T1071.001, T1090, T1571 | | **Impact** | T1565.001 | | **Resource Development** | T1584.002, T1588.002 |
## 系统要求 | 要求 | 详情 | |-------------|---------| | **操作系统** | Windows 10 / 11 | | **PowerShell** | 5.1+(Windows 自带) | | **权限** | 建议管理员权限(事件日志、Defender、服务分析需要) | | **依赖** | 无。零。 nada(没有)。 | | **网络** | 可选 —— 仅用于 VirusTotal/AbuseIPDB API 调用 | ## 贡献 欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取完整指南。 模块系统是完全动态的 —— 将 `Check-YourModule.ps1` 添加到 `modules/`,并包含一个 `Invoke-YourModuleChecks` 函数,它就会被自动发现。
新模块和检测的想法 - 浏览器扩展分析 - 证书存储异常(流氓根 CA) - PowerShell 配置文件注入检测 - DNS-over-HTTPS 隐蔽通道检测 - SSH 密钥枚举和审计 - 剪贴板监控检测 - 命名管道分析 - DLL 搜索顺序劫持(超出 COM 范围)
项目结构 ``` Am-I-Hacked/ ├── AmIHacked.ps1 # Entry point & orchestrator ├── config/ │ └── config.example.json # Example config (copy to config.json) ├── modules/ │ ├── Check-Processes.ps1 # Process & service analysis │ ├── Check-Network.ps1 # Network indicators │ ├── Check-Accounts.ps1 # Account & authentication │ ├── Check-FileSystem.ps1 # File system red flags │ └── Check-DefenseEvasion.ps1 # Defense evasion detection ├── lib/ │ ├── Helpers.ps1 # Shared utilities, baseline, TUI │ └── ReportGenerator.ps1 # Self-contained HTML report generator ├── tests/ │ └── Invoke-MockScan.ps1 # Test harness with mock IOCs └── reports/ # Generated reports (gitignored) ```
## 免责声明 此工具仅用于**防御性安全评估**。它识别潜在的危害指标,但不能替代专业的事件响应或企业安全工具。没有任何工具能保证系统 100% 干净。
**[报告 Bug](https://github.com/TMHSDigital/Am-I-Hacked/issues/new?template=bug_report.md)** · **[请求功能](https://github.com/TMHSDigital/Am-I-Hacked/issues/new?template=feature_request.md)** · **[贡献](CONTRIBUTING.md)** MIT License — [TM Hospitality Strategies](https://github.com/TMHSDigital)
标签:AI合规, Ask搜索, Cloudflare, Conpot, DAST, Homebrew安装, HTML报告, IOC检测, IPv6, Libemu, MITRE ATT&CK, PowerShell, VirusTotal, Windows安全, 反取证, 多模态安全, 安全评估, 库, 应急响应, 恶意软件分析, 系统诊断, 零依赖