AhmedDAH1/attack-surface-mapper
GitHub: AhmedDAH1/attack-surface-mapper
基于 Python 的攻击面发现与安全评估工具,自动完成端口扫描、MITRE ATT&CK 映射和合规性检查,并提供实时可视化的多格式报告。
Stars: 0 | Forks: 0
# Attack Surface Mapper
一款基于 Python 的企业安全评估工具,能够发现网络漏洞,将其映射到 MITRE ATT&CK 技术,对照主流框架检查合规性,并提供精美的实时仪表盘。
旨在通过多种界面(CLI、终端仪表盘和 Web UI)自动化安全评估,同时提供可操作的洞察。
## 为什么开发这个工具
在进行了无数次手动安全扫描之后,我厌倦了:
- 花费数小时进行重复的端口扫描和服务枚举
- 手动将发现映射到 MITRE ATT&CK
- 反复编写相同的合规性报告
- 不知道攻击面何时发生了变化
- 没有直观的方式向客户展示结果
所以我将其自动化了。这个工具做了我过去手动完成的工作——发现服务、查找错误配置、检查合规性,并实时精美地呈现一切。
## 它能做什么
**扫描**
- 查找开放端口和正在运行的服务(多线程,因此速度很快)
- 识别确切的软件版本
- 获取服务 Banner 以进行指纹识别
- 检测不安全的配置(默认凭证、弱 SSL/TLS、明文协议)
**分析**
- 将发现与 CVE 数据库关联以查找已知漏洞
- 将所有内容映射到 MITRE ATT&CK 战术和技术
- 对照 PCI-DSS、NIST CSF 和 CIS Controls 检查合规性
- 根据严重性和可利用性计算风险评分
**威胁情报**
- 检查您的服务是否暴露在 Shodan 上(您是否在公共互联网上?)
- 针对 VirusTotal 验证 IP 是否存在恶意活动
- 识别全局可见与本地可见的服务
**监控**
- 持续监控您的攻击面
- 检测出现的新端口、服务或漏洞
- 在发生关键变化时发送 Slack 警报
- 通过差异报告随时间跟踪趋势
**报告**
- 用于自动化和 API 的 JSON 格式
- 您可以实际操作的交互式 HTML 仪表盘
- 提供给客户或管理层的专业 PDF 报告
- 用于 Excel 分析的 CSV 导出
**可视化**
- 带有 ASCII 艺术和实时更新的实时终端仪表盘
- 带有图表、图形和实时扫描的基于 Web 的 UI
- 具有现代响应式布局的精美渐变设计
## 快速开始
```
# Clone 仓库
git clone https://github.com/AhmedDAH1/attack-surface-mapper.git
cd attack-surface-mapper
# 安装依赖
pip install -r requirements.txt
brew install nmap # macOS
# 或者:sudo apt-get install nmap # Linux
# 运行基本扫描
python main.py scan 192.168.1.100
# 使用实时仪表板(界面非常惊艳!)
python main.py scan 192.168.1.100 --dashboard
# 启动 Web 界面
python3 web/app.py
# 然后打开:http://localhost:5001
```
就是这样。无需复杂的设置,无需编辑配置文件。
## 实际应用
**命令行扫描**
```
# 基本扫描
python main.py scan 192.168.1.100
# 包含所有功能的扫描
python main.py scan 192.168.1.100 \
--dashboard \
--shodan-key YOUR_KEY \
--vt-key YOUR_KEY \
--slack-webhook https://hooks.slack.com/... \
-o client_assessment
# 您将自动获得 4 份报告:
# - client_assessment.json(用于自动化)
# - client_assessment.html(交互式仪表板)
# - client_assessment.pdf(专业报告)
# - client_assessment.csv(用于电子表格)
```
**实时终端仪表盘**
```
# 支持实时更新的精美 ASCII 仪表板
python main.py scan 192.168.1.100 --dashboard
# 见证奇迹的时刻:
# - ASCII art 横幅
# - 带有 emoji 的实时统计数据
# - 威胁等级指示器
# - 最新发现流
# - 已用时间追踪器
```
**Web 界面**
```
# 启动 Web 服务器
python3 web/app.py
# 在浏览器中打开:http://localhost:5001
# 功能特性:
# - 点击即扫描
# - 实时进度更新
# - 交互式图表(Chart.js)
# - 下载所有格式的报告
# - 精美的渐变设计
# - 非常适合给客户演示
```
**持续监控**
```
# 每小时监控您的基础设施
python main.py monitor 192.168.1.0/24 \
--interval 60 \
--slack-webhook https://hooks.slack.com/...
# 它将在以下情况通过 Slack 向您发送警报:
# - 新端口开放
# - 服务版本变更
# - 出现新漏洞
# - 检测到严重的错误配置
```
**合规性检查**
```
# 查看您是否满足 PCI-DSS、NIST 或 CIS 要求
python main.py scan 192.168.1.100
# 输出包含:
# - 合规性评分(0-100)
# - 按 framework 划分的具体违规项
# - 修复步骤
# - 执行摘要
```
## 界面
**1. 命令行界面**
- 传统的 CLI 输出
- 非常适合脚本编写和自动化
- 所有功能均可通过标志位使用
- 生成全部 4 种报告格式
**2. 实时终端仪表盘**
- 精美的 ASCII 艺术界面
- 带有表情符号指示符的实时统计数据
- 威胁等级可视化
- 活动流
- 使用 Rich 库构建
**3. Web 仪表盘**
- 现代渐变设计
- 实时 WebSocket 更新
- 交互式图表和图形
- 直接下载报告
- 响应式移动端设计
- 非常适合演示和汇报
## 输出效果展示
**终端仪表盘**
╔═══════════════════════════════════════════════════════════╗
║ █████╗ ████████╗████████╗ █████╗ ██████╗██╗ ██╗ ║
║ SURFACE MAPPER - 实时评估 ║
╚═══════════════════════════════════════════════════════════╝
实时统计:
已扫描端口: 5 🟡
开放端口: 3 🟡
发现的服务: 3
漏洞: 2 🔴
严重问题: 0 🟢
高危问题: 1 🟡
合规分数: 70/100 🟡
威胁评估: 中等 ⚠️
**Web 仪表盘**
- 精美的渐变背景(从紫色到蓝色)
- 实时更新的统计卡片
- 显示风险分布的圆环图
- 按框架显示合规性的条形图
- 所有报告格式的下载按钮
- 带有颜色编码条目的实时活动日志
**HTML 报告**(交互式,非常实用)
- 包含关键指标的执行摘要
- 风险分布图
- 带有修复建议的配置问题
- MITRE 技术分解
- 按框架分类的合规违规
**PDF 报告**(可直接提交给客户)
- 专业的封面
- 执行摘要
- 详细的发现表格
- 合规性分析
- 可操作的建议
## API 密钥(均为免费套餐)
**Shodan**(可选,用于检查全局暴露情况)
- 注册:https://account.shodan.io/register
- 免费套餐:每月 100 次查询
- 使用:`--shodan-key YOUR_KEY`
**VirusTotal**(可选,用于检查 IP 信誉)
- 注册:https://www.virustotal.com/gui/join-us
- 免费套餐:每天 500 次请求
- 使用:`--vt-key YOUR_KEY`
**Slack**(可选,用于警报)
- 创建 Webhook:https://api.slack.com/messaging/webhooks
- 使用:`--slack-webhook https://hooks.slack.com/...`
您无需使用其中任何一项即可运行该工具。它们只是提供额外的情报。
## 命令参考
```
# CLI 扫描
python main.py scan # Basic scan
python main.py scan --dashboard # With live UI
python main.py scan -p 22,80,443 # Specific ports
python main.py scan --skip-cve # Skip CVE lookup (faster)
python main.py scan -o my_scan # Custom output name
# 完整的企业级扫描
python main.py scan \
--dashboard \
--shodan-key KEY \
--vt-key KEY \
--slack-webhook URL \
-o enterprise_scan
# 持续监控
python main.py monitor -i 60 # Every 60 minutes
python main.py monitor -i 30 -n 5 # 5 scans then stop
# Web 界面
python3 web/app.py # Start web server
# 然后打开:http://localhost:5001
```
## 项目结构
attack-surface-mapper/
├── src/
│ ├── scanners/ # 端口扫描、枚举、配置审计
│ ├── analyzers/ # MITRE 映射、合规性检查
│ ├── reporters/ # JSON、HTML、PDF、CSV 生成
│ ├── integrations/ # Shodan、VirusTotal、Slack
│ └── core/ # 持续监控、实时仪表盘
├── web/
│ ├── app.py # Flask Web 服务器
│ ├── templates/ # HTML 模板
│ └── static/ # CSS、JavaScript
├── data/ # MITRE ATT&CK 数据、CVE 缓存、扫描历史
├── reports/ # 生成的报告(已 gitignored)
└── main.py # CLI 入口点
## 技术细节
**为什么速度快**
- 多线程端口扫描(100 个并发线程)
- CVE 结果缓存(不会反复请求 NVD)
- 针对外部 API 的智能速率限制
**安全考量**
- 自动跳过针对私有 IP 的 Shodan/VT 检查
- 绝不实际测试凭证(仅标记风险)
- 速率受限以尊重 API 配额
- 将 API 密钥存储在环境变量/参数中,绝不硬编码
**它不会做什么**
- 利用漏洞(这是一个映射工具,而不是渗透测试框架)
- 执行主动攻击或模糊测试
- 修改目标系统
- 存储凭证或敏感数据
## 支持的合规框架
**PCI-DSS v4.0** - 支付卡行业
- 要求 2.1:更改供应商默认设置
- 要求 2.2:禁用不必要的服务
- 要求 4.1:使用强加密
- 要求 4.2:绝不通过未加密方式发送主账号 (PAN)
**NIST Cybersecurity Framework**
- PR.DS-2:传输中的数据保护
- DE.CM-8:漏洞扫描
- PR.AC-4:访问控制管理
**CIS Controls v8**
- 控制 1.1:资产清单
- 控制 4.1:安全配置
- 控制 7.1:漏洞管理
## 功能分解
**8 大主要功能:**
1. **多格式报告** - JSON、HTML、PDF、CSV 导出
2. **持续监控** - 带有警报的变更检测
3. **Slack 集成** - 实时通知
4. **导出中心** - 多种导出格式和 Webhook
5. **威胁情报** - Shodan 和 VirusTotal 集成
6. **合规性分析** - PCI-DSS、NIST CSF、CIS Controls
7. **实时终端仪表盘** - 带有实时更新的 ASCII 艺术界面
8. **Web 仪表盘** - 带有图表和图形的现代 Web UI
## 已知限制
- 需要在系统上安装 nmap
- 免费 API 套餐限制了您可以检查的 IP 数量
- 无法穿透防火墙进行扫描(显而易见)
- 需要 Python 3.8+
- 仅限 macOS 和 Linux(Windows 可能可以运行,但未经测试)
- Web UI 运行在开发服务器上(在生产环境中请使用 gunicorn)
## 截图
*TODO:添加以下截图:*
- 运行中的终端仪表盘
- 带有实时扫描的 Web 界面
- 生成的 HTML 报告
- PDF 报告样本
- 合规性分析输出
## 贡献
发现了 Bug?有新想法?欢迎提交 Issue 或 PR。
这是一个作品集项目,但我一直有兴趣让它变得更好。
## 法律声明
**仅限授权的安全测试。**
请勿扫描您不拥有或未获得明确测试权限的网络。未经授权的端口扫描在许多司法管辖区都是违法的。特此警告。
## 许可证
MIT - 您可以随意使用它。
## 作者
由 Ahmed Dahdouh 构建,作为一个作品集项目,展示了:
- Python 开发和系统架构
- 安全评估方法论
- MITRE ATT&CK 框架知识
- 合规框架理解
- 与外部 API 和服务的集成
- 专业报告和数据可视化
- Web 开发(Flask、WebSockets、实时更新)
- 现代 UI/UX 设计
**本项目展示了:**
- 2000+ 行生产级 Python 代码
- 25+ 个具有专业架构的文件
- 13+ 个外部集成
- 4 种报告格式
- 3 种用户界面(CLI、终端、Web)
- 使用 WebSockets 进行实时通信
- 多线程性能优化
- 企业级安全工具
如果您正在招聘既懂安全又懂开发的安全工程师、Python 开发人员或全栈工程师——欢迎联系。
**GitHub:** https://github.com/AhmedDAH1/attack-surface-mapper
**克隆它。运行它。破坏它。修复它。发布它。**
标签:Ask搜索, CIS Controls, CTI, CVE漏洞关联, Docker容器, GitHub, MITRE ATT&CK映射, NIST CSF, Nmap替代, PCI-DSS, Python安全工具, Slack告警, SSL TLS安全检测, TCP SYN 扫描, VirusTotal, Web UI, 企业安全评估, 威胁情报, 安全仪表盘, 安全基线检查, 安全报告, 实时处理, 密码管理, 开发者工具, 插件系统, 攻击面发现, 数据统计, 无线安全, 服务枚举, 本地模型, 漏洞赏金平台, 端口扫描, 网络安全, 网络安全审计, 资产暴露面监控, 软件指纹识别, 逆向工具, 防御绕过, 隐私保护, 风险评分