三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

SRC挖洞必备:用Eeyes棱眼快速整理目标C段资产(附实战避坑指南)

SRC挖洞必备:用Eeyes棱眼快速整理目标C段资产(附实战避坑指南)

SRC实战:用Eeyes棱眼高效定位C段资产的进阶技巧

在漏洞挖掘和攻防演练中,快速准确地识别目标的真实资产是成功的关键第一步。许多企业会使用CDN来隐藏真实服务器IP,这给安全研究人员带来了不小的挑战。本文将分享如何利用Eeyes棱眼工具,结合实战经验,从海量域名中高效提取真实IP并整理成C段,为后续漏洞扫描打下坚实基础。

1. 环境准备与工具配置

1.1 网络环境优化

Eeyes的识别准确率很大程度上取决于网络环境。建议使用具备以下特点的网络:

  • 多出口IP:至少准备3个不同ISP的出口IP
  • 低延迟连接:确保到目标地区的网络延迟在150ms以内
  • DNS解析配置
    # 推荐使用多个公共DNS服务器 nameserver 8.8.8.8 nameserver 1.1.1.1 nameserver 114.114.114.114

提示:避免使用公司或学校网络,这些环境通常有严格的安全策略会影响扫描结果。

1.2 Eeyes安装与依赖

从GitHub获取最新版Eeyes后,需要安装必要的依赖:

git clone https://github.com/EdgeSecurityTeam/Eeyes cd Eeyes chmod +x Eeyes

常见问题处理:

问题现象解决方案
缺少动态链接库sudo apt-get install libssl-dev
权限不足chmod +x Eeyes
执行报错检查系统架构是否匹配(64/32位)

2. 目标资产收集与预处理

2.1 子域名枚举技巧

在将域名列表交给Eeyes处理前,需要先进行全面的子域名收集。推荐组合使用以下方法:

  1. 被动收集
    • 使用Amass、Subfinder等工具
    • 查询DNS历史记录
  2. 主动爆破
    ./altdns -i domains.txt -o data_output -w words.txt -r -s results.txt
  3. 证书透明度日志
    • 查询crt.sh等证书数据库
    • 提取最近6个月内签发的域名

2.2 域名列表清洗

原始域名列表通常包含大量无效或重复条目,需要先进行清洗:

  • 去除重复项:sort -u domains.txt > clean_domains.txt
  • 过滤保留有效域名格式:
    import re with open('domains.txt') as f: domains = [d.strip() for d in f if re.match(r'^([a-z0-9]+\.)*[a-z0-9]+\.[a-z]{2,}$', d.strip())]

3. Eeyes实战应用与技巧

3.1 基础扫描模式

使用本地文件扫描的基本命令格式:

./Eeyes -l clean_domains.txt -log scan_results.log

关键参数说明:

  • -l:指定本地域名列表文件
  • -log:设置日志输出路径
  • -ftime:调整超时时间(默认10秒)

3.2 高级扫描策略

为提高识别率,可采用分层扫描策略:

  1. 第一轮快速扫描
    • 设置较短超时(5秒)
    • 识别明显的真实IP
  2. 第二轮深度验证
    • 对存疑目标延长超时(20秒)
    • 多地点交叉验证
  3. 人工复核
    • 检查常见CDN IP段
    • 验证端口开放情况

3.3 结果分析与处理

Eeyes输出的C段结果需要进一步分析:

# 统计各C段出现的频率 awk -F'.' '{print $1"."$2"."$3".0/24"}' ips.txt | sort | uniq -c | sort -nr

常见误报类型及处理方法:

误报类型特征解决方案
CDN漏判多地解析IP一致手动验证HTTP头
云服务IP属于AWS/Azure/GCP查询IP归属
内网IP10.x/172.16.x/192.168.x直接过滤

4. 自动化工作流构建

4.1 与棱洞工具集成

将Eeyes与棱洞结合可以实现自动化资产发现:

# 自动化工作流示例 subfinder -d example.com -o domains.txt ./Eeyes -l domains.txt -o ips.txt ./棱洞 -i ips.txt -p 1-65535 -o ports.txt

4.2 定时任务与监控

设置定期扫描任务,监控资产变化:

# 每天凌晨执行扫描 0 0 * * * /path/to/scan_script.sh

变化检测方法:

  1. 保存历史扫描结果
  2. 使用diff比较新旧结果
  3. 对新出现的IP/域名重点检查

4.3 结果可视化

将扫描结果导入数据库便于分析:

CREATE TABLE assets ( id INT AUTO_INCREMENT, domain VARCHAR(255), ip VARCHAR(15), cidr VARCHAR(18), scan_date DATETIME, PRIMARY KEY (id) );

5. 实战避坑指南

5.1 网络配置陷阱

  • DNS缓存问题:扫描前清除本地DNS缓存
    # Linux sudo systemd-resolve --flush-caches # Windows ipconfig /flushdns
  • 速率限制:调整扫描间隔避免触发防护
  • 出口IP被封:准备多个备用IP轮换使用

5.2 结果验证技巧

  • HTTP头检查:真实服务器通常有独特的Server头
  • 证书比对:比较IP直连与域名访问的证书
  • 历史记录:查询IP历史绑定情况

5.3 法律与合规注意事项

  • 确保获得授权后再进行扫描
  • 控制扫描强度,避免影响目标系统正常运行
  • 妥善保管扫描结果,防止数据泄露

在实际项目中,我发现最有效的策略是分层递进式扫描。先快速筛选出明显的真实IP,再对存疑目标进行深度验证,最后辅以人工复核。这种方法既保证了效率,又能将误报率控制在可接受范围内。

← 返回列表