关于 conducting-external-reconnaissance-with-osint
面向授权安全评估的 OSINT 侦察技能,介绍如何在渗透测试和红队行动前梳理组织的公开数字足迹、基础设施、人员及暴露数据。
主要功能
- 01域名与 DNS 枚举
- 02互联网资产发现
- 03员工与邮箱信息收集
- 04凭据及数据泄露搜索
- 05技术栈分析
适用场景
- 01梳理组织的外部攻击面
- 02在主动测试前收集情报
- 03发现公开暴露的凭据或文档
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill conducting-external-reconnaissance-with-osint安装后在 Claude Code 中输入/conducting-external-reconnaissance-with-osint确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
使用 OSINT 开展外部侦察
适用场景
- 在渗透测试的初始侦察阶段收集情报,然后再进行主动扫描
- 绘制组织的外部攻击面,以发现未知或影子 IT 资产
- 收集员工信息、电子邮件格式和组织结构,用于社会工程活动
- 识别在互联网上公开的暴露凭据、泄露数据或敏感文档
- 在红队行动前评估组织数字足迹的范围
请勿用于 跟踪、骚扰或未经授权地监视个人。OSINT 信息收集必须在授权行动范围内进行,并遵守适用的隐私法律(GDPR、CCPA)。
前提条件
- 获得针对目标组织开展侦察的书面授权
- 配备专用研究工作站,并在需要时使用 VPN 或 Tor 进行匿名查询
- 已安装 OSINT 框架工具:Amass、theHarvester、Shodan CLI、Recon-ng、SpiderFoot
- 用于获取更多结果的 Shodan、Censys、SecurityTrails、Hunter.io、VirusTotal 和 GitHub API 密钥
- 用于研究期间访问需要注册的服务的一次性电子邮件账户
工作流
步骤 1:域名和 DNS 枚举
枚举与目标关联的所有域名、子域名和 DNS 记录:
- 识别根域名:从主域名开始,通过使用
whoxy.com或domaintools.com,根据注册人姓名、电子邮件和组织信息进行反向 WHOIS 查询,找出所有相关域名 - 子域名枚举:运行多个工具以全面覆盖:
- 使用
amass enum -passive -d target.com -o amass_subs.txt从 40 多个数据源被动发现子域名 - 使用
subfinder -d target.com -all -o subfinder_subs.txt快速进行被动枚举 - 查询
crt.sh证书透明度日志:curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u
- 使用
- DNS 记录分析:查询所有记录类型:
dig target.com ANY;检查 SPF、DKIM、DMARC 记录以了解电子邮件基础设施,并枚举 MX 记录以识别电子邮件服务提供商 - 尝试区域传送:使用
dig axfr @ns1.target.com target.com检查 DNS 服务器是否配置错误 - 汇总结果:合并、去重所有发现的子域名,并将其解析为 IP 地址。将 IP 地址映射到 ASN 和托管服务提供商。
步骤 2:基础设施和服务发现
在不直接扫描目标系统的情况下,识别面向互联网的基础设施:
- Shodan:使用
shodan search "ssl.cert.subject.cn:target.com"查找所有具有目标域名 TLS 证书的面向互联网服务。还可按组织名称和 IP 地址范围搜索。 - Censys:搜索目标的 IP 地址范围和 TLS 证书,以识别通过全网扫描编入索引的服务、技术和潜在漏洞
- 云资产发现:检查 S3 存储桶(
target-com、target-backup、target-dev)、Azure Blob 存储(target.blob.core.windows.net)和 GCP 存储,可使用cloud_enum等工具 - WAF 和 CDN 识别:使用
wafw00f target.com识别 Web 应用防火墙和 CDN 服务提供商,它们可能会隐藏源服务器 IP 地址 - 历史数据:使用 Wayback Machine(
web.archive.org)查找已删除的页面、旧版应用和被遗忘的端点
第 3 步:电子邮件和人员情报
收集员工信息和电子邮件地址,为社会工程攻击做准备:
- 电子邮件搜集:使用
theHarvester -d target.com -b all -f harvest_results.html从搜索引擎、LinkedIn 和数据源收集电子邮件地址 - 电子邮件格式识别:使用
hunter.io确定电子邮件格式(first.last、flast、firstl),并验证其是否可送达 - LinkedIn 侦察:按部门识别员工,尤其是 IT 管理员、安全团队成员和高管。记录职位招聘信息和员工个人资料中提到的技术
- 组织架构图:根据 LinkedIn 数据构建组织架构图,了解汇报关系、识别关键人员并梳理各部门
- 社交媒体分析:查看员工的社交媒体个人资料,寻找有关内部工具、技术、办公地点、门禁卡照片和安全实践的信息
- 职位招聘信息:分析公司招聘页面和招聘网站上当前及历史职位招聘信息中的技术栈、工具和基础设施详情
第 4 步:凭据和数据泄露分析
搜索暴露的凭据和敏感数据:
- 泄露数据库:通过
haveibeenpwned.comAPI 检查与目标域名相关的电子邮件地址是否出现在泄露数据中 - 粘贴网站:在 Pastebin、GitHub Gists 和类似的粘贴网站中搜索泄露的凭据、配置文件或内部文档
- 代码仓库:在 GitHub、GitLab 和 Bitbucket 中搜索:
org:target "password"、org:target "api_key"、org:target "secret"- 使用
trufflehog或gitleaks自动扫描目标的公开仓库中的机密
- 文档元数据:从目标网站下载公开可用的文档(PDF、DOCX、XLSX),并使用
exiftool提取元数据,以查找内部用户名、软件版本、打印机名称和文件路径 - Google 搜索语法:使用定向搜索运算符:
site:target.com filetype:pdf搜索公开文档site:target.com inurl:admin搜索管理面板site:target.com "index of /"搜索目录列表site:pastebin.com "target.com"搜索粘贴网站中的相关内容
第 5 步:技术栈分析
识别目标使用的技术、框架和服务:
- Web 技术指纹识别:使用
whatweb target.com或 Wappalyzer 浏览器扩展,识别 CMS、框架、JavaScript 库、分析工具和服务器软件 - SSL/TLS 分析:使用
sslyze target.com或testssl.sh target.com识别密码套件、协议版本、证书详情和加密弱点 - JavaScript 分析:下载并检查 JavaScript 文件,查找框架标识符、API 端点、内部主机名和版本字符串
- 基于 DNS 的服务识别:检查 TXT 记录中的服务提供商信息(例如,
v=spf1 include:_spf.google.com表示 Google Workspace,MS=msXXXXXX表示 Microsoft 365) - 移动应用分析:从应用商店下载目标的移动应用,并使用
apktool(Android)或frida进行分析,以查找硬编码的 URL、API 端点和嵌入的凭据
核心概念
| 术语 | 定义 |
|---|---|
| OSINT | 开源情报;从公开来源收集的情报,包括网站、社交媒体、公共记录和政府数据 |
| 被动侦察 | 在不直接与目标系统交互的情况下收集信息,不会在目标日志中留下痕迹 |
| 主动侦察 | 通过直接与目标系统交互(扫描、探测)来收集信息,相关操作可能会被记录 |
| 证书透明度 | 由证书颁发机构签发的 TLS 证书的公开日志,可供查询以发现子域名和基础设施 |
| 攻击面 | 未经授权的用户可以尝试进入环境或从中提取数据的所有入口点的总和 |
| Google Dorking | 使用高级 Google 搜索运算符,查找搜索引擎已编入索引但原本不打算公开的敏感信息 |
| 影子 IT | 员工或部门在 IT 部门不知情或未批准的情况下部署的技术系统和服务 |
工具与系统
- Amass (OWASP):综合性子域名枚举工具,结合被动来源、DNS 暴力破解和证书透明度日志分析
- Shodan:覆盖整个互联网的扫描数据库,为联网设备的服务、横幅和元数据建立索引,可按 IP、域名或组织搜索
- theHarvester:用于从公开来源收集电子邮件地址、子域名、主机、员工姓名和开放端口的 OSINT 工具
- SpiderFoot:自动化 OSINT 收集平台,可查询 200 多个数据源,并将发现的信息关联为统一图谱
- Recon-ng:模块化 Web 侦察框架,配备数据库后端,用于整理和交叉引用发现的情报
常见场景
场景:红队演练前的侦察
背景:一家科技公司委托进行红队评估。在开始主动测试之前,团队会开展被动 OSINT,以绘制攻击面并识别潜在入口点。目标是一家拥有 500 名员工、主域名为 techcorp.io 的 SaaS 公司。
方法:
- 通过 Amass 和 crt.sh 枚举出 147 个子域名,包括 staging.techcorp.io、jenkins.techcorp.io 和 vpn.techcorp.io
- Shodan 发现一个被遗忘的 Elasticsearch 实例,其 9200 端口未启用身份验证且暴露在互联网上
- theHarvester 收集到 89 个员工电子邮件地址,由此发现邮箱格式为 [email protected]
- GitHub 搜索发现一名前开发人员的公开代码仓库中包含一个带有 AWS 访问密钥的
.env文件 - LinkedIn 分析发现该公司使用 Okta 进行 SSO、使用 Jira 进行项目管理,并使用 AWS 进行托管
- Google Dorking 在 docs.techcorp.io 上发现一个目录列表,其中暴露了内部架构图
- 将所有情报汇总成侦察报告,直接用于威胁建模和攻击规划阶段
注意事项:
- 依赖单一子域名枚举工具,遗漏其他工具利用不同数据源发现的资产
- 未检查云存储服务(S3、Azure Blob、GCP)中是否存在可公开访问的存储桶
- 未在公开代码仓库中搜索凭据,而这类搜索往往能立即获得访问权限
- 在本应仅进行被动侦察的阶段开展主动扫描(端口扫描、漏洞扫描)
输出格式
## External Reconnaissance Report - TechCorp.io
### Attack Surface Summary
- **Domains discovered**: 3 (techcorp.io, techcorp.com, techcorpapp.com)
- **Subdomains enumerated**: 147 unique subdomains across all domains
- **Unique IP addresses**: 34 IPs mapped across AWS us-east-1 and us-west-2
- **Email addresses collected**: 89 valid corporate email addresses
- **Exposed services**: 12 internet-facing services identified via Shodan/Censys
### Critical Findings
**1. Unauthenticated Elasticsearch Instance**
- Host: 52.xx.xx.xx:9200 (elastic.techcorp.io)
- Indexed data: Application logs containing user session tokens and PII
- Source: Shodan search "ssl.cert.subject.cn:techcorp.io"
**2. AWS Credentials in Public GitHub Repository**
- Repository: github.com/former-dev/techcorp-scripts
- File: .env containing AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
- Status: Keys appear active (not tested - out of scope for passive recon)
**3. Directory Listing Exposing Internal Documents**
- URL: https://docs.techcorp.io/internal/
- Contents: Architecture diagrams, network topology, runbooks
- Source: Google dork "site:techcorp.io intitle:index.of"
### Recommendations
1. Immediately rotate the exposed AWS credentials and audit CloudTrail logs
2. Restrict Elasticsearch access to internal networks or add authentication
3. Disable directory listings on docs.techcorp.io and audit all web servers
4. Implement GitHub secret scanning across all organization repositories
评论
支持 Markdown