资产信息收集与指纹识别:HTTPX联动工具实战指南

文章目录

⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。

前言

在网络安全渗透测试中,快速从海量域名资产中筛选存活服务、识别技术栈,是精准定位漏洞目标的关键前提。本文将详细介绍如何通过HTTPXSubfinderEHole的联动,实现"子域名枚举→存活探测→技术栈识别→目标聚焦"的全流程自动化操作,帮助高效完成信息收集阶段的核心任务。

一、HTTPX与Subfinder联动:子域名存活与技术栈初筛

Subfinder是高效的子域名枚举工具,HTTPX则擅长HTTP/HTTPS存活探测与技术栈识别,二者联动可快速构建目标资产的基础信息库。

1.1 工具准备:安装与升级

共性依赖:Go环境配置

两款工具均基于Golang开发,需先配置Go环境(已安装可跳过):

bash 复制代码
# 安装Golang
sudo apt update && sudo apt install -y golang

# 验证版本(需≥1.15)
go version

# 配置国内代理(加速依赖下载)
go env -w GOPROXY=https://goproxy.cn,direct

# 配置环境变量(全局生效)
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc  # 刷新配置
1.1.1 HTTPX安装与升级

HTTPX用于探测HTTP/HTTPS服务存活状态、获取响应码及识别技术栈:

bash 复制代码
# 卸载旧版本(若Kali预装旧版)
sudo rm -f /usr/bin/httpx
hash -r  # 清除命令路径缓存

# 安装最新版
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest

# 验证安装(输出路径及版本)
which httpx  # 应显示:/home/用户名/go/bin/httpx
httpx -version  # 2025年10月最新版为1.7.1
1.1.2 Subfinder安装与升级

Subfinder用于高效枚举目标域名的子域名(原始资产池):

bash 复制代码
# 卸载旧版本(若Kali预装旧版)
sudo rm -f /usr/bin/subfinder
hash -r  # 清除命令路径缓存

# 安装最新版
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

# 验证安装
which subfinder  # 应显示:/home/用户名/go/bin/subfinder
subfinder -version  # 2025年10月最新版为2.9.0

1.2 联动核心流程

1.2.1 基础操作:从子域名到存活技术栈

步骤1:子域名枚举(构建原始资产池)

bash 复制代码
# 枚举目标域名的子域名,去重并保存(仅新增内容)
subfinder -d example.com -silent | anew subdomains.txt
  • -d example.com:指定目标域名(替换为实际测试域名)
  • anew subdomains.txt:仅保存新发现的子域名,避免重复处理

步骤2:存活探测与技术栈识别

将子域名列表传入HTTPX,筛选存活服务并提取技术栈:

bash 复制代码
cat subdomains.txt | httpx \
  -silent \                   # 静默模式,仅输出有效结果  
  -status-code \              # 显示HTTP状态码(200/301等标识存活)  
  -follow-redirects \         # 跟随301/302跳转,避免误判"不存活"  
  -tech-detect \              # 基于Wappalyzer识别技术栈(如Nginx、PHP)  
  -rate-limit 30 \            # 限制每秒30次请求(避免触发防护)  
  -threads 50 \               # 并发线程数(配合速率限制,建议≤速率值)  
  -ports 80,443,8080 \        # 仅探测常见Web端口,减少无效请求  
  -o live_tech_summary.txt    # 保存结果(URL+状态码+技术栈)

结果示例live_tech_summary.txt):

复制代码
https://www.example.com [200] [Nginx, PHP, MySQL]
https://admin.example.com [403] [Apache, Python, Django]
https://api.example.com [302] [Cloudflare, Node.js, Express]
1.2.2 进阶优化:精准筛选与自动化解析

筛选特定目标

根据渗透需求提取符合条件的目标(如200状态码+特定技术栈):

bash 复制代码
# 筛选状态码200且含ThinkPHP(可能存在RCE漏洞)的目标
cat live_tech_summary.txt | grep "200" | grep "ThinkPHP" > tp_targets.txt

# 筛选使用Nginx且非404状态的目标
cat live_tech_summary.txt | grep -v "404" | grep "Nginx" > nginx_targets.txt

模拟浏览器请求(规避WAF)

通过-H参数添加浏览器User-Agent,降低被拦截概率:

bash 复制代码
cat subdomains.txt | httpx -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" -status-code -tech-detect -rate-limit 30 -o results.txt

JSON格式输出(便于自动化处理)

使用-json参数生成结构化数据,配合jq工具快速解析:

bash 复制代码
# 输出JSON格式结果
cat subdomains.txt | httpx -silent -json -status-code -tech-detect -o results.json

# 提取200状态码且含WordPress的URL
cat results.json | jq -r 'select(.status_code == 200 and .tech[] | contains("WordPress")) | .url' > wp_200.txt
1.2.3 一步到位:全流程自动化
bash 复制代码
# 子域名枚举→存活探测→技术栈识别→结果保存(文本+JSON)
subfinder -d example.com -silent | anew example_subdomains.txt | httpx -silent -status-code -follow-redirects -tech-detect -rate-limit 30 -threads 50 -ports 80,443,8080 -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" -o example_live_tech.txt -json -o example_live_tech.json

1.3 关键参数说明

参数 作用与建议值 渗透场景意义
-rate-limit N 每秒请求数(10-50,防护严格时调低) 平衡速度与隐蔽性,避免触发流量清洗或告警
-threads N 并发线程数(50-200,≤速率限制值) 避免线程过高导致请求堆积,影响效率
-follow-redirects 跟随301/302跳转(默认关闭) 防止因跳转误判"不存活"(如子域名跳转到主站)
-tech-detect 启用技术栈识别(默认关闭) 快速定位脆弱技术栈(如ThinkPHP、Struts2等易受攻击框架)

二、HTTPX与EHole联动:精准识别国内常见系统

EHole(棱洞)是针对国内资产的指纹识别工具,可对HTTPX筛选出的存活资产进一步精准识别,聚焦易攻击系统(如OA、CRM等)。

2.1 EHole环境搭建

步骤1:安装与编译
bash 复制代码
# 克隆仓库
git clone https://github.com/EdgeSecurityTeam/EHole.git
cd EHole

# 编译生成可执行文件
go build -o ehole main.go

# 验证安装(查看帮助)
./ehole -h
步骤2:配置FOFA(可选)

若需通过FOFA批量识别资产,需配置API信息:

bash 复制代码
# 编辑配置文件
vim config.ini

# 填入FOFA邮箱与密钥(从https://fofa.info/userInfo获取)
Email=your_fofa_email@example.com
Fofa_token=your_fofa_api_key

2.2 联动操作:深化指纹识别

对HTTPX筛选出的存活URL进一步识别国内系统指纹:

bash 复制代码
# 从HTTPX结果中提取URL(假设结果文件为example_live_tech.txt)
cat example_live_tech.txt | awk '{print $1}' > example_live_urls.txt

# 使用EHole识别指纹,输出JSON结果
./ehole -l example_live_urls.txt -t 30 -json example_ehole_results.json
  • -l:指定包含URL的本地文件
  • -t 30:并发线程数
  • -json:输出JSON格式结果,便于后续分析

总结

通过Subfinder+HTTPX的联动,可快速完成子域名枚举与基础技术栈识别;结合EHole则能进一步精准定位国内常见系统,显著缩小漏洞验证范围。

实际操作中需根据目标防护强度调整速率与线程参数,平衡效率与隐蔽性,为后续漏洞挖掘奠定精准目标基础。

相关推荐
unable code6 小时前
攻防世界-Web-easyupload
网络安全·web·ctf
Bruce_Liuxiaowei9 小时前
MQTT协议在物联网环境中的安全风险与防范指南
运维·网络·物联网·安全·网络安全
李白你好1 天前
兼具本地式与分布式优势、针对大类通用型Web漏洞、插件外部动态化导入的轻量级主被动扫描器
安全工具
witkey_ak98961 天前
网安面试题收集(1)
网络安全
网安INF2 天前
【论文阅读】-《SparseFool: a few pixels make a big difference》
论文阅读·人工智能·深度学习·网络安全·黑盒攻击
介一安全2 天前
【Web安全】转义字符注入?转义也会失效的SQL注入
web安全·网络安全·安全性测试·sql注入
网安INF2 天前
【论文阅读】-《Sparse Adversarial Attack via Perturbation Factorization》
论文阅读·人工智能·计算机视觉·网络安全·黑盒攻击
lingggggaaaa2 天前
小迪安全v2023学习笔记(九十七天)—— 云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
java·笔记·学习·安全·网络安全·云原生·kubernetes
余防2 天前
代码审计
安全·web安全·网络安全