Ap6pack/asm-cheatsheet
GitHub: Ap6pack/asm-cheatsheet
一份面向攻击面管理(ASM)的社区实战速查表,提供工具推荐、自动化脚本和分阶段学习路径,帮助用户系统化发现和管理数字资产暴露面。
Stars: 4 | Forks: 0
# 🧩 攻击面管理 (ASM) 速查表
这是一份关于攻击面管理 (ASM) 的战术性、实用性社区参考指南。本指南提供了用于发现、分析和管理数字资产暴露的真实世界建议、开源工具和自动化概念。
## 什么是 ASM?
攻击面管理 (ASM) 是对可能受到攻击的内部和外部数字资产进行持续发现、监控、优先级排序和跟踪的过程。这包括未知、未管理、第三方和临时性的系统。
目标:识别未知资产,减少盲点,并快速检测高风险变更。
## 🚀 快速入门
### 前置条件
在深入了解 ASM 之前,请确保您具备以下条件:
**技术技能:**
- 基本的命令行操作能力 (Linux/macOS 终端或 Windows PowerShell)
- 了解网络基础知识 (DNS、IP 地址、端口、HTTP/HTTPS)
- 基础的脚本编写知识 (了解 bash/python 会有帮助,但非必须)
**必备工具:**
- Git,用于克隆工具仓库
- Python 3.7+ 及 pip 包管理器
- 虚拟机或隔离的测试环境 (推荐)
- 用于编辑配置文件的文本编辑器或 IDE
**API 密钥 (可选但推荐):**
- [Shodan API 密钥](https://account.shodan.io/),用于全网扫描
- [GitHub 个人访问令牌](https://github.com/settings/tokens),用于代码库搜索
- [VirusTotal API 密钥](https://www.virustotal.com/gui/join-us),用于威胁情报
### ⚖️ 法律与道德考量
**⚠️ 重要提示:仅扫描您拥有或获得明确测试授权的资产。**
- **范围界定:** 明确界定您被授权扫描的范围
- **速率限制:** 在请求之间设置合理的延迟,避免导致目标系统过载
- **负责任的漏洞披露:** 通过正当渠道报告漏洞
- **合法合规:** 了解有关安全测试的当地法律法规
### 🎯 您的首次 ASM 扫描 (5分钟演练)
**📖 刚接触 ASM?请阅读我们的[完整入门指南](GETTING_STARTED.md),获取为期 30 分钟的全面演练!**
#### 步骤 1:安装基础工具
```
# 安装 Amass 用于子域名发现
go install -v github.com/owasp-amass/amass/v4/...@master
# 安装 httpx 用于 Web 服务发现
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
# 替代方案:使用 package managers
sudo apt install amass # Ubuntu/Debian
brew install amass # macOS
```
#### 步骤 2:发现子域名 (被动)
```
# 将 'example.com' 替换为你拥有的域名
amass enum -passive -d example.com -o subdomains.txt
```
#### 步骤 3:发现存活的 Web 服务
```
# 检查哪些子域名拥有 Web 服务
httpx -l subdomains.txt -o live_hosts.txt
```
#### 步骤 4:截取屏幕截图
```
# 安装并使用 gowitness 进行可视化侦察
go install github.com/sensepost/gowitness@latest
gowitness file -f live_hosts.txt
```
### 📚 学习路径
**📖 [完整学习指南](resources/learning_guide.md)** - 包含时间预估、先决条件和评估的结构化路径
#### 🟢 初级路线 (2-4 周) - 从这里开始
**前置条件:** 具备基础的命令行和网络知识
**时间投入:** 总计 8-12 小时
1. **被动侦察:** 学习子域名枚举和证书透明度
2. **基础端口扫描:** 了解如何使用 nmap 进行服务发现
3. **Web 应用发现:** 查找 Web 接口并截图
4. **法律与道德:** 了解边界与负责任的漏洞披露
5. **阅读:** [构建您自己的 ASM 工具栈](guides/building_your_own_asm_stack.md)
#### 🟡 中级路线 (1-3 个月)
**前置条件:** 已完成初级路线
**时间投入:** 总计 20-25 小时
1. **自动化:** 编写用于持续监控的脚本
2. **变更检测:** 实施基于 diff 比对的告警机制
3. **威胁情报:** 整合 CVE 和 IOC 数据源
4. **云端资产:** 发现 AWS/Azure/GCP 资源
5. **数据分析:** 生成报告和洞察分析
#### 🔴 高级路线 (3-6 个月)
**前置条件:** 已完成中级路线
**时间投入:** 总计 40-60 小时
1. **自定义工具:** 构建专门的侦察工具
2. **API 集成:** 利用多种数据源
3. **机器学习:** 实施异常检测
4. **企业级部署:** 在大型组织中规模化部署 ASM
5. **项目管理:** 主导 ASM 倡议与计划
### 🛠️ 推荐的新手工具包
| 工具 | 用途 | 难度 | 安装方式 |
|------|---------|------------|-------------|
| Amass | 子域名发现 | 初级 | `go install github.com/owasp-amass/amass/v4/...@master` |
| httpx | Web 服务探测 | 初级 | `go install github.com/projectdiscovery/httpx/cmd/httpx@latest` |
| nmap | 端口扫描 | 初级 | `sudo apt install nmap` 或 `brew install nmap` |
| gowitness | 截取屏幕截图 | 初级 | `go install github.com/sensepost/gowitness@latest` |
| Shodan CLI | 互联网扫描 | 中级 | `pip install shodan` |
### 🚨 常见陷阱与解决方案
**问题:** “我被封锁或触发了速率限制”
- **解决方案:** 在请求之间添加延迟 (`--delay` 参数),使用轮换代理,或降低扫描强度
**问题:** “结果中出现过多误报”
- **解决方案:** 根据响应码、内容长度或已知模式过滤结果
**问题:** “不知道首先该扫描什么”
- **解决方案:** 从已知域名的证书透明度日志和被动 DNS 开始
**问题:** “工具无法安装或运行”
- **解决方案:** 使用 Docker 容器或预构建的虚拟机 (例如 Kali Linux)
### 🎯 安全的练习目标
- **您自己的基础设施:** 您控制的域名和 IP
- **漏洞赏金计划:** 在 [HackerOne](https://hackerone.com/) 和 [Bugcrowd](https://bugcrowd.com/) 上查看授权范围内的目标
- **故意设置为易受攻击的应用:** [DVWA](http://www.dvwa.co.uk/)、[WebGoat](https://owasp.org/www-project-webgoat/)
- **测试域名:** 使用 `testphp.vulnweb.com` 或类似的指定测试网站
### 📖 下一步
完成首次扫描后:
1. 查看下方的[核心 ASM 组件](#core-asm-components)
2. 在 [tools/](tools/) 目录中探索具体工具
3. 阅读 [guides/](guides/) 中的详细指南
4. 查看 [examples/](examples/) 中的实践示例
## 核心 ASM 组件
| 阶段 | 描述 |
|---------------------|-----------------------------------------------------------------------------|
| 发现 (Discovery) | 识别域名、IP、服务、API、云端资产 |
| 枚举 (Enumeration) | 指纹识别端口、服务、技术栈和端点 |
| 历史数据 (Historical Data) | 随时间监控基础设施和应用程序的变更 |
| 威胁情报 | 整合 CVE、泄露的凭证、违规指标和 TTPs |
| 钓鱼风险 (Phishing Risks) | 检测并测试社会工程学的暴露点 |
| 报告 (Reporting) | 使用仪表板和屏幕截图来确定优先级并传达风险 |
## 侦察与发现工具
请查看 [tools/recon_tools.md](tools/recon_tools.md) 获取带有描述和链接的分类工具列表。
## Web 截图工具
截取 Web 界面的屏幕截图,用于视觉差异比对和告警:
- Eyewitness
- GoWitness
- Aquatone
更多详情请见 [tools/screenshots.md](tools/screenshots.md)
## ASM 与漏洞管理的对比
| 特性 | ASM | 漏洞扫描 |
|------------------------------|-------------------------------------|---------------------------------|
| 发现未知资产 | 是 | 否 (需要预先定义范围) |
| 变更检测 | 是 | 否 |
| 屏幕截图和 UI 快照| 是 | 否 |
| 凭证泄露监控 | 是 | 否 |
## ASM 的快速获益点
- 利用证书透明度日志和被动 DNS 查找影子 IT (Shadow IT)
- 定期运行 Shodan 和 GitHub API 查询以进行被动侦察
- 每天对应用进行截图,并比对页面哈希值以发现未经授权的更改
- 随时间推移跟踪历史端口、服务和 HTTP 标头信息的变化
- 标记缺失 2FA 或暴露详细错误信息的登录门户
## 开源 ASM 工具
| 工具 | 功能 |
|-------------|----------------------------------------------------|
| Sn1per | 侦察、端口扫描、截图、报告生成 |
| Amass | 利用多数据源进行子域名发现 |
| Recon-ng | 具备数据库导出功能的全功能侦察框架 |
| Scout Suite | 云端错误配置扫描器 (支持多云) |
| CloudEnum | 针对 AWS、GCP 和 Azure 的云端资产枚举 |
完整列表可在 [tools](tools/) 目录中找到。
## 构建您自己的 ASM 工具栈
查看 [guides/building_your_own_asm_stack.md](guides/building_your_own_asm_stack.md) 以使用以下工具创建轻量级、可扩展的 ASM pipeline:
- Shodan API
- Nmap 和 Masscan
- 截图工具
- ElasticSearch 和 Kibana
- 侦察脚本和 GitHub 监控器
## 🤖 自动化脚本
用于常见 ASM 工作流的即用型自动化脚本:
- **[basic_asm_scan.sh](scripts/basic_asm_scan.sh)** - 完整的域名评估工作流
- **[monitor_changes.py](scripts/monitor_changes.py)** - 网站变更检测与监控
- **[安装指南与示例](scripts/README.md)** - 设置说明与使用示例
## 🚀 项目路线图
**[📋 实施策略](IMPLEMENTATION_STRATEGY.md)** - 将 ASM 速查表扩展为三层资源的综合路线图:
- **第一层:快速参考** - 命令卡片、工具矩阵、正则表达式模式、单行命令
- **第二层:实践自动化** - CI/CD 模板、API 集成、解析器、通知
- **第三层:真实世界场景** - 行业行动手册、合规指南、事件响应
### 计划中的增强功能
- **快速参考命令卡片和查找表**
- **CI/CD 集成模板和自动化库**
- **针对特定行业的 ASM 行动手册和合规指南**
- **云服务商资产枚举技术和配置**
- **高级 API 集成示例和解析脚本**
- **事件响应程序和应急行动手册**
## 📚 附加资源
全面的参考材料和速查表:
- **[🚀 入门指南](GETTING_STARTED.md)** - 从零开始到完成首次扫描的 30 分钟全面演练
- **[📖 学习指南](resources/learning_guide.md)** - 包含难度指示、时间预估和评估的结构化学习路径
- **[🔄 实践工作流](examples/practical_workflows.md)** - 针对 ASM 常见场景的分步操作程序
- **[📚 真实世界案例研究](examples/case_studies.md)** - 成功实施 ASM 的详细示例
- **[🛡️ 安全考量](resources/security_considerations.md)** - 法律、道德和技术层面的安全准则
- **[🔧 2025 现代化工具更新](resources/modern_tools_update.md)** - 取代旧版软件的最新工具和替代方案
- **[📋 命令速查表](resources/command_cheatsheet.md)** - 常用命令的快速参考
- **[📚 推荐阅读清单](resources/reading_list.md)** - 精选的涵盖侦察、OSINT、自动化和威胁情报的书籍
- **[📝 更新日志](CHANGELOG.md)** - 项目历史与版本更新
- **[📋 实施策略](IMPLEMENTATION_STRATEGY.md)** - 项目扩展的战略路线图
- **[📖 ASM 术语表](resources/README.md#asm-terminology-glossary)** - 核心概念与定义
- **[🌐 外部资源](resources/README.md#external-resources)** - 培训、文档和社区链接
- **[🔌 API 文档](resources/README.md#api-documentation)** - 常用服务的集成示例
标签:GitHub, 侦察扫描, 动态插桩, 占用监测, 威胁情报, 安全指南, 实时处理, 密码管理, 应用安全, 开发者工具, 日志审计, 网络安全, 自动化攻击, 资产管理, 逆向工具, 防御加固, 隐私保护