dehobbs/ADScan

GitHub: dehobbs/ADScan

基于Python的模块化Active Directory漏洞扫描工具,支持多协议与哈希传递认证,能生成带风险评分的独立HTML报告。

Stars: 2 | Forks: 0

# ADScan **Active Directory 漏洞扫描器** — 一款基于 Python 的模块化工具,通过 LDAP、LDAPS 和/或 SMB 连接到域控制器,执行全面的安全检查,并生成包含风险评分的独立 HTML 仪表板报告。 ## 功能特性 - **多协议支持**:LDAP、LDAPS、SMB(用户可选;默认为全部三种) - **灵活认证**:密码、Pass-the-Hash(NTLM `LM:NT` 或 `NT`)或交互式提示 - **风险评分**:初始 100 分,根据发现的问题扣分(最低 0 分),等级评定 A–F - **HTML 报告**:完全独立,支持亮/暗模式切换,严重性标签,可折叠的发现卡片 - **JSON / CSV 输出**:除 HTML 报告外,还提供机器可读的导出文件 - **模块化**:在 `checks/` 中放入新的 `check_*.py` 文件 — 运行时自动发现 - **21 个检查类别**,覆盖最关键的 AD 攻击面 ## 安装说明 ``` git clone https://github.com/dehobbs/ADScan.git cd ADScan pip install -r requirements.txt ``` ### 前置条件 | 软件包 | 用途 | |---------|---------| | `ldap3` | LDAP / LDAPS 连接 | | `impacket` | SMB 连接, Pass-the-Hash | | `pyOpenSSL` | LDAPS 证书处理 | ## 运行方式 ``` python adscan.py -d --dc-ip -u -p [options] python adscan.py -d --dc-ip -u --hash [options] python adscan.py -d --dc-ip -u # prompts for password ``` ### 选项 | 标志 | 描述 | 默认值 | |------|-------------|---------| | `-d / --domain` | 目标域 FQDN(例如 `corp.local`) | 必填 | | `--dc-ip` | 域控制器 IP 或主机名 | 必填 | | `-u / --username` | 用户名 | 必填 | | `-p / --password` | 密码(省略此选项将安全提示输入) | — | | `--hash` | NTLM 哈希(`LM:NT` 或 `NT`) | — | | `--protocol` | `ldap` \| `ldaps` \| `smb` \| `all` | `all` | | `--timeout` | 连接超时时间(秒) | `30` | | `--format` | `html` \| `json` \| `csv` \| `all` | `html` | | `--log-file PATH` | 将所有日志输出(包括 DEBUG 详情)写入文件,除控制台外 | 关闭 | | `-o / --output` | 输出报告路径主干 | `Reports/adscan_report_` | | `-v / --verbose` | 在控制台显示 DEBUG 级别详情(发现详情、受影响对象) | 关闭 | ### 示例 ``` # 密码认证,所有协议 python adscan.py -d corp.local -u alice -p 'P@ssw0rd!' --dc-ip 10.10.10.5 # 交互式密码提示(无 -p 标志) python adscan.py -d corp.local -u alice --dc-ip 10.10.10.5 # Pass-the-hash(仅限 NT) python adscan.py -d corp.local -u alice --hash aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c # 仅 LDAPS,自定义输出 python adscan.py -d corp.local -u alice -p 'Secret1' --protocol ldaps -o results/scan.html # 所有输出格式(HTML + JSON + CSV) python adscan.py -d corp.local -u alice -p 'Secret1' --dc-ip 10.10.10.5 --format all # 自定义超时 python adscan.py -d corp.local -u alice -p 'Secret1' --dc-ip 10.10.10.5 --timeout 60 # 编写持久化日志文件以便事后审查 python adscan.py -d corp.local -u alice -p 'Secret1' --dc-ip 10.10.10.5 --log-file scan.log # 详细控制台输出 + 完整 debug 日志文件 python adscan.py -d corp.local -u alice -p 'Secret1' --dc-ip 10.10.10.5 -v --log-file debug.log ``` ## 免责声明 ADScan 仅供授权的安全评估使用。在扫描 Active Directory 环境之前,请务必获得书面许可。未经授权的使用可能违反计算机犯罪法律。
标签:Active Directory, AD域安全, Checkov, HTML报告, Impacket, LDAP, LDAPS, NTLM, Pass-the-Hash, PE 加载器, Plaso, Python, SMB, SNMP, Web报告查看器, 代码生成, 关系图谱, 内存取证对抗, 反取证, 域控制器, 基线检查, 安全评估, 无后门, 渗透测试工具, 逆向工具, 错误配置检测, 防御绕过