Chaos使用手册

🌐 工具简介

Chaos 是 ProjectDiscovery 开发的子域名枚举工具,专门用于从 Chaos 数据库中查询指定域名的子域名信息。该工具与 ProjectDiscovery 云平台集成,支持批量查询和多种输出格式。

🚀 安装与更新

# 更新到最新版本
chaos -up

# 禁用自动更新检查
chaos -duc

📋 基础用法

chaos [参数选项]

🎯 参数详解

🔑 认证配置

  • -key string
    • 功能:设置 ProjectDiscovery 云服务 (PDCP) API 密钥
    • 说明:必须参数,用于认证访问 Chaos 数据库
    • 示例chaos -key your-api-key -d example.com

🔍 目标指定

  • -d string

    • 功能:指定要搜索子域名的目标域名
    • 格式:域名(如 example.com)
    • 示例chaos -d hackerone.com
  • -dL string

    • 功能:从文件读取多个域名进行批量搜索
    • 格式:每行一个域名的文本文件
    • 示例chaos -dL domains.txt

📊 输出控制

  • -silent

    • 功能:静默模式,仅输出结果
    • 说明:不显示进度信息和其他提示
  • -o string

    • 功能:将结果保存到指定文件
    • 示例chaos -d example.com -o results.txt
  • -json

    • 功能:以 JSON 格式输出结果
    • 特点:便于后续程序处理
  • -count

    • 功能:显示指定域名的统计信息
    • 说明:输出子域名数量统计

📝 日志与信息

  • -v, -verbose

    • 功能:详细模式,显示更多调试信息
    • 适用:排查问题时使用
  • -version

    • 功能:显示工具版本信息
    • 示例chaos -version

🎪 使用示例

示例1:基础查询

# 查询单个域名的子域名
chaos -key your-api-key -d example.com

# 输出示例:
# api.example.com
# blog.example.com
# dev.example.com
# mail.example.com
# www.example.com

示例2:批量查询

# 从文件读取多个域名
chaos -key your-api-key -dL target_domains.txt

# 或使用管道
cat domains.txt | xargs -I {} chaos -key your-api-key -d {}

示例3:统计信息

# 显示子域名数量统计
chaos -key your-api-key -d example.com -count

# 输出示例:
# Total subdomains found: 147

示例4:JSON 输出

# JSON 格式输出,便于后续处理
chaos -key your-api-key -d example.com -json -o results.json

# 输出示例:
# [
#   {"domain": "api.example.com"},
#   {"domain": "blog.example.com"},
#   {"domain": "dev.example.com"}
# ]

示例5:静默模式

# 仅输出结果,无额外信息
chaos -key your-api-key -d example.com -silent

# 结合其他工具使用
chaos -key your-api-key -d example.com -silent | httpx -silent

示例6:保存到文件

# 保存结果到文件
chaos -key your-api-key -d example.com -o subdomains.txt

# 追加到现有文件
chaos -key your-api-key -d example.com -o subdomains.txt -silent

🔧 进阶用法

与其他工具结合

# 1. 使用chaos发现子域名,然后用httpx检查存活
chaos -key your-api-key -d target.com -silent | httpx -title -status-code

# 2. 批量处理多个域名
for domain in $(cat domains.txt); do
    chaos -key your-api-key -d $domain -silent >> all_subdomains.txt
done

# 3. 结合nuclei进行漏洞扫描
chaos -key your-api-key -d target.com -silent | httpx -silent | nuclei -t ~/nuclei-templates/

工作流自动化

#!/bin/bash
# 自动化子域名收集脚本
API_KEY="your-api-key"
TARGETS="targets.txt"
OUTPUT_DIR="results"

mkdir -p $OUTPUT_DIR

while read domain; do
    echo "[+] 收集 $domain 的子域名..."
    chaos -key $API_KEY -d $domain -silent > "$OUTPUT_DIR/${domain}_subdomains.txt"
    count=$(wc -l < "$OUTPUT_DIR/${domain}_subdomains.txt")
    echo "[+] 发现 $count 个子域名"
done < $TARGETS

⚠️ 注意事项

1. API 密钥

  • 必须拥有有效的 ProjectDiscovery 云服务 API 密钥
  • 密钥可通过 ProjectDiscovery 平台获取
  • 注意 API 调用配额限制

2. 使用限制

  • 遵守目标网站的服务条款
  • 仅用于授权的安全测试
  • 不要对非授权目标进行扫描

3. 性能考虑

  • 批量查询时注意 API 调用频率
  • 大型组织可能返回大量结果,合理控制输出

4. 输出处理

  • 默认输出为纯文本
  • 使用 -json 参数便于程序解析
  • 使用 -o 参数保存结果避免丢失

💡 使用场景

🎯 渗透测试准备

# 信息收集阶段
chaos -key $API_KEY -d target-company.com -o scope_subdomains.txt

# 创建扫描目标列表
cat scope_subdomains.txt | httpx -silent > live_targets.txt

📊 攻击面管理

# 定期监控组织的攻击面
chaos -key $API_KEY -d organization.com -count
# 对比历史数据,发现新增资产

🔍 漏洞赏金

# 快速枚举目标的子域名
chaos -key $API_KEY -d bugbounty-target.com -silent | \
    httpx -ports 80,443,8080,8443 -o http_targets.txt

📈 安全评估

# 评估组织的暴露面
./assess_exposure.sh company_domains.txt

# assess_exposure.sh 内容:
for domain in $(cat $1); do
    subs=$(chaos -key $API_KEY -d $domain -silent | wc -l)
    echo "$domain: $subs 个子域名"
done

🔄 故障排除

常见问题

  1. API 密钥无效

    error: authentication failed
    

    解决:检查 API 密钥是否正确,或重新生成密钥

  2. 无结果返回

    No subdomains found
    

    解决:确认域名在 Chaos 数据库中有记录,或尝试其他域名

  3. 连接问题

    error: could not connect to API
    

    解决:检查网络连接,确认能访问 ProjectDiscovery 服务

调试技巧

# 启用详细模式查看详细过程
chaos -key $API_KEY -d example.com -v

# 检查版本和更新
chaos -version
chaos -up

📚 最佳实践

  1. 密钥管理

    # 使用环境变量存储API密钥
    export PDCP_KEY="your-api-key"
    chaos -key $PDCP_KEY -d target.com
    
  2. 结果去重

    # 收集多个域名的结果并去重
    chaos -key $API_KEY -dL domains.txt | sort -u > all_unique_subs.txt
    
  3. 增量收集

    # 避免重复查询,保存历史记录
    if [ ! -f "cached_results.txt" ]; then
        chaos -key $API_KEY -d target.com -o cached_results.txt
    fi
    
  4. 资源限制

    # 控制查询速度,避免API限制
    while read domain; do
        chaos -key $API_KEY -d $domain
        sleep 2  # 延迟避免频率限制
    done < domains.txt
    
posted @ 2026-01-27 23:41  ffff5  阅读(10)  评论(0)    收藏  举报