L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

conducting-external-reconnaissance-with-osint

conducting-external-reconnaissance-with-osint

使用开源情报(OSINT)技术执行外部侦察,在不直接与目标系统交互的情况下映射组织的外部攻击面。测试人员从 DNS 记录、证书透明度日志、搜索引擎、社交媒体、代码仓库和数据泄露数据库等公开来源收集信息,以构建全面的目标画像。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: conducting-external-reconnaissance-with-osint description: > 使用开源情报(OSINT)技术执行外部侦察,在不直接与目标系统交互的情况下映射组织的外部攻击面。测试人员从 DNS 记录、证书透明度日志、搜索引擎、社交媒体、代码仓库和数据泄露数据库等公开来源收集信息,以构建全面的目标画像。 domain: cybersecurity subdomain: penetration-testing tags: [OSINT, reconnaissance, attack-surface, footprinting, passive-recon] version: 1.0.0 author: mahipal license: Apache-2.0

使用 OSINT 执行外部侦察

使用场景

  • 在渗透测试的初始侦察阶段收集情报,在主动扫描前进行信息收集
  • 映射组织的外部攻击面,识别未知或影子 IT 资产
  • 收集员工信息、邮件格式和组织架构,用于社会工程学活动
  • 识别在互联网上发布的暴露凭据、泄露数据或敏感文档
  • 在红队演练前确定组织数字足迹的范围

不适用场景:跟踪、骚扰或未经授权地监视个人。OSINT 收集必须在授权演练范围内进行,并符合适用的隐私法律(GDPR、CCPA)。

前置条件

  • 针对目标组织执行侦察的书面授权
  • 配置了 VPN 或 Tor 的专用研究工作站,用于需要时的匿名查询
  • 已安装 OSINT 框架工具:Amass、theHarvester、Shodan CLI、Recon-ng、SpiderFoot
  • Shodan、Censys、SecurityTrails、Hunter.io、VirusTotal 和 GitHub 的 API 密钥,以获取增强结果
  • 用于研究过程中访问需要注册服务的一次性邮件账户

工作流程

步骤一:域名和 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 和托管提供商

步骤二:基础设施和服务发现

在不直接扫描目标系统的情况下识别面向互联网的基础设施:

  • Shodan:shodan search "ssl.cert.subject.cn:target.com" 查找所有具有目标域名 TLS 证书的面向互联网服务。同时按组织名称和 IP 范围搜索
  • Censys:搜索目标的 IP 范围和 TLS 证书,识别从互联网扫描中索引的服务、技术和潜在漏洞
  • 云资产发现:使用 cloud_enum 等工具检查 S3 存储桶(target-com、target-backup、target-dev)、Azure Blob 存储(target.blob.core.windows.net)和 GCP 存储
  • WAF 和 CDN 识别:使用 wafw00f target.com 识别可能掩盖源服务器 IP 的 Web 应用防火墙和 CDN 提供商
  • 历史数据:使用 Wayback Machine(web.archive.org)查找已删除的页面、旧版应用和被遗忘的端点

步骤三:邮件和人员情报

收集员工信息和邮件地址,为社会工程学准备:

  • 邮件收割:theHarvester -d target.com -b all -f harvest_results.html 从搜索引擎、LinkedIn 和数据源收集邮件
  • 邮件格式识别:使用 hunter.io 确定邮件格式(first.last、flast、firstl)并验证可达性
  • LinkedIn 侦察:按部门识别员工,特别是 IT 管理员、安全团队成员和高管。注意职位发布和员工档案中提到的技术
  • 组织架构:从 LinkedIn 数据构建组织架构图,了解汇报关系,识别关键人员,映射部门
  • 社交媒体分析:查看员工社交媒体档案,了解内部工具、技术、办公地点、徽章照片和安全实践信息
  • 招聘信息:分析公司招聘页面和招聘网站上的当前和历史招聘信息,获取技术栈详情、工具和基础设施信息

步骤四:凭据和数据泄露分析

搜索暴露的凭据和敏感数据:

  • 泄露数据库:通过 haveibeenpwned.com API 检查与目标域名相关的已泄露邮件地址
  • 粘贴网站:在 Pastebin、GitHub Gists 和类似粘贴网站上搜索泄露的凭据、配置文件或内部文档
  • 代码仓库:在 GitHub、GitLab 和 Bitbucket 中搜索:
    • org:target "password"、org:target "api_key"、org:target "secret"
    • 使用 trufflehog 或 gitleaks 对目标的公开仓库进行自动化密钥扫描
  • 文档元数据:下载目标网站上公开可用的文档(PDF、DOCX、XLSX)并使用 exiftool 提取元数据,以揭示内部用户名、软件版本、打印机名称和文件路径
  • Google Dorking:使用精准搜索操作符:
    • site:target.com filetype:pdf 查找公开文档
    • site:target.com inurl:admin 查找管理面板
    • site:target.com "index of /" 查找目录列表
    • site:pastebin.com "target.com" 查找粘贴网站提及

步骤五:技术栈分析

识别目标使用的技术、框架和服务:

  • 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 公司。

方法:

  1. 通过 Amass 和 crt.sh 枚举 147 个子域名,包括 staging.techcorp.io、jenkins.techcorp.io 和 vpn.techcorp.io
  2. Shodan 发现一个被遗忘的 Elasticsearch 实例在 9200 端口上无需认证即可暴露在互联网上
  3. theHarvester 收集了 89 个员工邮件地址,揭示格式为 first.last@techcorp.io
  4. GitHub 搜索发现一名前开发人员的公开仓库包含带有 AWS 访问密钥的 .env 文件
  5. LinkedIn 分析揭示公司使用 Okta 进行 SSO、使用 Jira 进行项目管理、使用 AWS 进行托管
  6. Google Dorking 在 docs.techcorp.io 上发现目录列表,暴露内部架构图
  7. 将所有情报汇编成侦察报告,直接用于威胁建模和攻击规划阶段

常见陷阱:

  • 仅依赖单一子域名枚举工具,遗漏其他工具通过不同数据源发现的资产
  • 未检查云存储服务(S3、Azure Blob、GCP)的公开可访问存储桶
  • 不搜索公开代码仓库中的凭据,这通常会直接产生访问权限
  • 在本应是纯被动阶段执行主动扫描(端口扫描、漏洞扫描)

输出格式

## 外部侦察报告 - TechCorp.io

### 攻击面摘要
- **发现的域名**:3 个(techcorp.io、techcorp.com、techcorpapp.com)
- **枚举的子域名**:所有域名共 147 个唯一子域名
- **唯一 IP 地址**:34 个 IP 映射至 AWS us-east-1 和 us-west-2
- **收集的邮件地址**:89 个有效企业邮件地址
- **暴露的服务**:通过 Shodan/Censys 识别到 12 个面向互联网的服务

### 关键发现

**1. 未经认证的 Elasticsearch 实例**
- 主机:52.xx.xx.xx:9200(elastic.techcorp.io)
- 索引数据:包含用户会话令牌和 PII 的应用日志
- 来源:Shodan 搜索 "ssl.cert.subject.cn:techcorp.io"

**2. 公开 GitHub 仓库中的 AWS 凭据**
- 仓库:github.com/former-dev/techcorp-scripts
- 文件:包含 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 的 .env 文件
- 状态:密钥似乎有效(未测试 - 超出被动侦察范围)

**3. 暴露内部文档的目录列表**
- URL:https://docs.techcorp.io/internal/
- 内容:架构图、网络拓扑、运行手册
- 来源:Google Dork "site:techcorp.io intitle:index.of"

### 建议
1. 立即轮换暴露的 AWS 凭据并审计 CloudTrail 日志
2. 限制 Elasticsearch 仅允许内网访问或添加认证
3. 禁用 docs.techcorp.io 上的目录列表并审计所有 Web 服务器
4. 在所有组织仓库中实施 GitHub 密钥扫描
Skills enregistrées