渗透测试前置阶段——信息搜集
介绍
信息收集是渗透测试的基石,直接决定了后续攻击的广度和深度。所谓的“正面”与“侧面”,本质区别在于是否与目标系统发生直接交互。
一、正面信息收集(主动侦察)
核心逻辑:直接向目标发送探测请求,通过分析响应获取情报。优点是信息准确,缺点是会留下访问日志,容易被防御系统发现。
1. 网络层探测
-
存活主机发现:使用
ping、nmap -sn或fping进行 ICMP 探测,或利用 TCP SYN 扫描(nmap -PS)来绕过某些防火墙的禁 ping 策略。 -
端口服务识别:通过
nmap -sS(半开扫描)或-sV(版本探测)确定开放端口及运行的服务(如 SSH、HTTP、数据库)。
2. 应用层爬取
-
Web 目录/文件枚举:使用
gobuster、dirb或ffuf配合字典,暴力扫描隐藏的目录、备份文件(.bak)、配置文件等。 -
技术栈指纹识别:分析 HTTP 响应头中的
Server、X-Powered-By字段,以及页面源码中的注释、特定文件(如/robots.txt)来识别 CMS、框架及中间件版本。
3. 自动化工具整合
利用 nmap脚本引擎(--script)或自动化框架(如 recon-ng、theHarvester)批量处理,从单一工具输出自动导入到下一个环节。
二、侧面信息收集(被动侦察)
核心逻辑:不直接触碰目标,而是从第三方平台或公开渠道“拼凑”情报。优点是隐蔽性强,几乎零风险。
1. 公开情报(OSINT)挖掘
-
域名与子域名:通过
whois查询注册信息,利用搜索引擎(Google dorking)、证书透明度日志(CT log,如crt.sh)或平台(如SecurityTrails)挖掘子域名。 -
代码泄露:在 GitHub、GitLab 等平台搜索目标相关代码仓库,常能发现硬编码的 API 密钥、数据库连接字符串等敏感信息。
-
历史漏洞关联:查询
CVE、Exploit-DB等数据库,结合已识别的软件版本寻找可利用的公开漏洞。
2. 社会工程学信息
-
员工信息收集:从 LinkedIn、企业官网团队介绍中获取员工姓名、邮箱格式(如 first.last@company.com),为后续钓鱼攻击做准备。
-
供应链与第三方:分析目标使用的第三方服务(如云存储、CDN)或供应商,攻击面往往比主站更薄弱。
三、实战协同流程
在实际渗透中,通常采用“先侧面,后正面”的战术,形成侦察闭环:
-
被动定界:通过 OSINT 摸清目标域名、IP 段、子公司及云资产,绘制初步攻击面。
-
主动验证:对梳理出的目标进行低速率、分散式的端口扫描,验证服务真实性。
-
深度关联:将正面获取的 Banner 信息与被动收集的 CVE 数据匹配,筛选出高价值攻击路径。
⚠️ 法律红线:所有技术仅限在授权测试或自有环境中使用。未经授权的渗透测试属于违法行为。
网站页面
在网站渗透中,页面层面的信息搜集是成本最低、风险最小的突破口。你不需要急于扫描或爆破,仅通过浏览器“查看源代码”和观察细节,就能构建出精准的攻击地图。
一、基础指纹:识别“身份”与“弱点”
这部分信息直接决定了后续攻击手法的选择。
|
关注点 |
搜集方法 |
攻击价值 |
|---|---|---|
|
技术栈 |
查看响应头 |
锁定 CMS 或框架后,直接关联已知漏洞(如特定版本的 SQLi 或 RCE) |
|
前端敏感信息 |
按 |
常能直接发现测试账号、硬编码密钥或未删除的备份文件路径 |
|
输入点与参数 |
观察表单( |
确定注入点、隐藏接口, |
二、关键文件:寻找“入口”与“后门”
这些文件是网站的“藏宝图”,必须优先检查。
-
robots.txt:访问http://目标/robots.txt。它本意是告诉搜索引擎不要抓取什么,但往往直接暴露了/admin/、/backup/、/database/等敏感目录。 -
sitemap.xml:访问http://目标/sitemap.xml。它会列出网站所有重要页面的 URL,是快速发现隐藏功能模块的捷径。 -
错误页面:故意输入错误路径(如
http://目标/xxx),观察 404 或 500 报错信息。详细的错误回显(如数据库报错、绝对路径)是进行 SQL 注入或路径遍历的绝佳线索。
三、交互逻辑:挖掘“隐藏”攻击面
除了静态内容,更要关注网站“怎么用”。
-
登录/注册流程:
-
用户名枚举:测试注册时提示“用户名已存在”还是“密码错误”,这决定了能否爆破账号。
-
验证码机制:验证码是否在客户端生成(可绕过)、是否可重复使用、是否触发次数限制。
-
-
API 接口:通过浏览器开发者工具的 Network(网络) 面板,监控 Ajax 请求。寻找未鉴权的
GET/POST接口,这些往往是逻辑漏洞的高发区。 -
文件上传点:寻找头像上传、附件上传功能,测试是否对文件类型(如
.php、.jsp)和后缀进行了严格过滤。
四、防御态势:判断“防守”强度
在动手前,先看看对方有没有“眼睛”。
-
WAF 识别:修改请求头(如畸形的
User-Agent)或发送简单测试载荷(如'),观察是否返回403 Forbidden或特定的 WAF 拦截页面(如 Cloudflare、安全狗)。 -
Cookie 策略:检查 Cookie 是否设置了
HttpOnly(防 XSS 窃取)和Secure(仅 HTTPS 传输)。 -
框架安全头:查看响应头是否有
X-Frame-Options(防点击劫持)、Content-Security-Policy(CSP)等。
五、实战 SOP:高效信息流
不要盲目翻页,按这个顺序操作效率最高:
-
肉眼观察:浏览首页,点击主要功能,形成业务逻辑概念。
-
文件抓取:优先访问
robots.txt、sitemap.xml,获取目录结构。 -
源码分析:
Ctrl+U查看源代码,搜索敏感关键词。 -
流量监控:开启 DevTools → Network,重新操作关键功能(登录、搜索),分析请求/响应。
-
指纹归档:将识别出的 CMS、框架、中间件版本记录在案,为后续漏洞利用做准备。
⚠️ 法律与道德边界:上述技术细节仅限用于授权测试、CTF 比赛或个人学习研究。未经授权对他人网站进行信息搜集可能触犯法律。
whois工具
Whois 是渗透测试中用于被动信息收集的基础工具,它通过查询互联网域名注册数据库,帮你回答一个核心问题:“这个网站到底是谁的?”
在正式发起扫描前,先查 Whois 是行业标准动作,能让你在不惊动目标的情况下摸清底细。
一、它能查什么?(关键情报)
Whois 记录是一份“域名身份证”,对于攻击者(或防御者)来说,最有价值的信息通常集中在以下几类:
|
情报类型 |
实战价值(攻击视角) |
|---|---|
|
注册商/注册人 |
获取企业名称、邮箱(常为运维邮箱),可用于社工钓鱼或密码爆破 |
|
DNS 服务器 |
获取 |
|
注册/到期时间 |
判断目标活跃度。刚过期的域名甚至可能被抢注接管 |
|
IP 地址段 |
获取主机 IP,用于绘制更大的网络拓扑,寻找同段其他资产(C 段扫描) |
二、怎么查?(多平台操作)
根据你的环境和需求,有多种执行方式:
1. 命令行(Kali/Linux 首选)
最直接、最自动化,适合批量处理。
# 基础查询
whois example.com
# 配合 grep 快速提取关键信息(如注册邮箱)
whois example.com | grep -i "email"
2. 在线查询工具(隐蔽侦察)
不想暴露自己的 IP?使用第三方在线平台,相当于“披着马甲”去问路。
-
国内常用:站长之家(whois.chinaz.com)、爱站网
-
国外常用:Whois.com、ICANN Lookup
-
优势:完全匿名,且部分平台会提供历史记录和关联域名挖掘。
3. 集成化工具(进阶)
在 Kali 中,Whois 常被集成进自动化侦察框架中,如:
-
Recon-ng:通过
whois模块自动查询并存入数据库。 -
theHarvester:配合域名参数,综合搜集邮箱和子域名。
三、实战应用:从 Whois 到攻击链
单纯看信息没用,关键在于情报转化。一个典型的攻击链如下:
-
锁定目标:
whois victim.com,发现注册邮箱为admin@corp.com。 -
关联资产:在搜索引擎或 GitHub 搜索
corp.com,发现该公司还有test.corp.com、api.corp.com等子域。 -
社工准备:邮箱格式暴露了命名规则(如 first.last@corp.com),结合 LinkedIn 找到员工名单,生成爆破字典。
-
网络测绘:获取 IP 后,在 Shodan 或 Fofa 搜索同网段(如
IP/24),寻找暴露的数据库或管理后台。
四、隐私保护与局限性
⚠️ 注意:现在直接查到详细个人信息越来越难,主要因为 GDPR(通用数据保护条例)等法规的推行,很多注册商对个人信息进行了隐藏(显示为 REDACTED)。
-
局限性:只能查到公开的注册信息,无法获取服务器实时状态(如端口开放情况)。
-
法律红线:Whois 查询本身是公开信息访问,但严禁将获取的邮箱、电话用于恶意骚扰、钓鱼或非法入侵。
最佳实践:在授权测试中,将 Whois 作为资产梳理的第一步,配合
nslookup、dig等工具,构建完整的初始攻击面清单。
域名查询
域名查询是信息收集的“总入口”,它不仅仅是把域名变成 IP(DNS),而是通过多维度关联,把孤立的域名扩展成一张完整的攻击面地图。在渗透测试中,这步做得好,往往能发现目标自己都遗忘的“影子资产”。
一、基础解析:DNS 的三种查法
这一步解决“域名指向哪里”的问题,是后续所有动作的基石。
|
工具/方法 |
命令示例 |
核心价值 |
|---|---|---|
|
|
|
快速验证 DNS 解析是否正常,可指定 DNS 服务器(如 |
|
|
|
信息最全。可获取 A 记录(IP)、CNAME(别名)、MX(邮件)、TXT(SPF/DKIM 配置) |
|
|
|
输出比 |
💡 实战技巧:重点关注 CNAME 记录。如果目标用了云服务(如 xxx.cloudfront.net),直接攻击源站 IP 可能无效,必须识别出背后的 CDN 或 WAF。
二、进阶拓展:从“一个点”到“一张网”
单纯解析主域意义有限,真正的价值在于关联挖掘。
1. 子域名挖掘(横向扩展)
主站防御强,但子域名(尤其是测试、遗留站点)往往是突破口。
-
字典爆破:使用
gobuster dns、subfinder或amass,配合大字典进行枚举。 -
证书透明度(CT):查询
crt.sh,通过 HTTPS 证书日志发现从未公开过的子域(如dev-api.target.com)。 -
搜索引擎语法:利用
site:target.com或-site:www.target.com site:*.target.com挖掘被收录的页面。
2. 历史记录与关联(纵向追溯)
-
DNS 历史记录:使用
SecurityTrails或ViewDNS.info,查看域名过去的 IP 解析记录。刚下线的测试服务器 IP 往往比当前生产环境更脆弱。 -
IP 反查(C 段扫描):拿到 IP 后,在
Shodan或Fofa中搜索同网段(如IP/24),寻找目标公司的其他非公开资产(如监控后台、未备案的子公司站点)。
三、自动化整合:工具链推荐
手动查询效率低,推荐使用以下工具进行“一键式”资产发现:
|
工具 |
适用场景 |
特点 |
|---|---|---|
|
Amass |
深度侦察 |
OWASP 出品,集成了 DNS 枚举、CT 日志、API 查询,数据源最全 |
|
Subfinder |
快速扫描 |
速度快,资源消耗少,适合初期快速绘制攻击面 |
|
OneForAll |
综合收集 |
国产神器,整合了爆破、搜索引擎、接口查询等多种方式 |
四、防御规避与注意事项
-
隐蔽性:直接向目标权威 DNS 发起大量查询会被记录。建议使用公共 DNS(如 8.8.8.8)或配置为低速率扫描。
-
合法性:仅限在授权测试范围内操作。大规模扫描商业域名或他人资产可能触发法律风险。
-
信息甄别:注意区分“泛解析”(如
*.target.com都解析到同一 IP)和真实子域,避免无效爆破。
渗透思维:域名查询不是独立的步骤,而是情报的起点。拿到 IP 后要立刻接上端口扫描,发现子域后要立刻接上 Web 指纹识别,形成“查询 → 扫描 → 验证”的闭环。
子域名搜集:one for all
OneForAll 是当前国内安全圈公认的子域名收集“天花板”。它不仅仅是一个简单的 DNS 查询工具,而是一个集成了多源情报、智能爆破、自动验证于一体的自动化资产发现平台。在渗透测试的信息收集阶段,它是将“一个点”(主域名)扩展为“一张网”(完整攻击面)的核心工具。
一、核心能力:为什么它是“神器”?
传统工具(如 nslookup)只能查询已知的 DNS 记录,而 OneForAll 通过 OSINT(开源情报) 挖掘目标散落在互联网角落的“影子资产”。
|
能力维度 |
实战价值 |
|---|---|
|
多源数据聚合 |
不仅查 DNS,还抓取证书透明度(CT)日志、搜索引擎缓存、威胁情报平台(VirusTotal/Shodan API)、DNS 历史记录等,挖出那些未在公开 DNS 中注册但实际存在的子域。 |
|
智能爆破与去噪 |
内置优化字典,利用 |
|
存活验证与指纹 |
最实用的功能。自动对发现的子域进行 HTTP/HTTPS 探测,返回状态码、Title、Banner(Web 指纹),直接输出“活”的资产列表,无缝对接后续漏洞扫描。 |
|
风险资产识别 |
可检测子域名是否可被接管(Subdomain Takeover),例如指向了已删除的 GitHub Pages 或云服务桶。 |
二、极速上手(Kali/Windows)
环境要求:Python 3.8+ 环境。
1. 安装部署
# 1. 克隆项目
git clone https://github.com/shmilylty/OneForAll.git
cd OneForAll
# 2. 安装依赖(建议使用国内源加速)
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
2. 基础使用命令
# 单个目标(最常用)
python3 oneforall.py --target example.com run
# 批量目标(将域名写入 domains.txt)
python3 oneforall.py --targets domains.txt run
3. 结果解读
运行完成后,结果默认保存在 results/目录下(CSV/TXT 格式)。重点关注以下字段:
-
域名:发现的子域(如
dev-api.example.com)。 -
解析 IP:C 段扫描的基础,用于发现同网段其他资产。
-
状态码:
200(正常页面)、403(可能是后台入口)、302(重定向)。 -
Web 指纹:识别出的 CMS(如
WordPress)或框架,直接关联已知漏洞。
三、实战进阶:从“收集”到“攻击”
单纯收集列表没有意义,关键在于情报转化:
-
C 段测绘:提取结果中的 IP 地址,在 Shodan 或 Fofa 中搜索同网段(
IP/24),寻找目标公司的老旧服务器或测试环境。 -
脆弱资产筛选:利用
title字段快速筛选出登录、管理、测试、API等关键词对应的子域,优先进行弱口令爆破或漏洞扫描。 -
API 增强:在
config/api.py中配置 Shodan、Censys 等 API Key,能显著提升数据挖掘深度(尤其是历史记录和非常规端口服务)。
四、避坑与合规
-
速率控制:默认并发较高,测试云上资产或受 WAF 保护的目标时,建议修改
config/setting.py中的线程数,避免被拉黑 IP。 -
法律红线:OneForAll 能力极强,严禁在未授权的情况下对他人域名进行大规模扫描。仅限用于授权测试、SRC 漏洞挖掘或自有资产梳理。
绕过CDN
绕过 CDN 本质上是在授权测试中,通过技术手段找出被 CDN 节点隐藏的源站(真实服务器)IP。这主要依赖“信息差”和“配置疏忽”。以下是实战中常用的思路与手法,按成功率排序。
一、信息收集类(低门槛,首选)
这类方法利用目标暴露在公网的历史数据或关联资产。
-
查 DNS 历史记录
网站接入 CDN 前的解析记录可能被存档。使用
ViewDNS.info、DNSlytics、微步在线等工具查询域名的历史 A 记录,常能直接找到旧 IP。 -
子域名爆破(最常用)
主站(www)做了 CDN,但
api.、dev.、mail.等子域名可能直连源站。用工具(如subfinder、OneForAll)扫出子域,解析其 IP,若与主站同网段(C 段),极可能就是源站。 -
空间搜索引擎(FOFA/Shodan)
利用全网指纹匹配:
-
证书指纹:获取网站 SSL 证书的 SHA256 指纹,在 Censys 或 FOFA 中搜索
cert="xxx",匹配到的 IP 可能是源站。 -
Favicon 哈希:计算网站
favicon.ico的 mmh3 哈希值,在 Shodan 中搜索http.favicon.hash:xxxx。 -
Title/Body 特征:搜索独特的标题或页面内容。
-
-
邮件头溯源
注册、找回密码等邮件通常由源站内网发出。查看邮件原文(Header)中的
Received字段,最底层的 IP 往往是真实服务器。
二、技术试探类(需要动手)
通过特定请求或配置漏洞直接“骗”过 CDN。
-
非标端口与协议
-
端口试探:CDN 通常只转发 80/443 端口。直接访问
IP:8080、IP:8443等常见管理端口,可能直连源站。 -
协议遗漏:CDN 可能只配置了 HTTPS,直接访问 HTTP 版(
http://domain.com)可能回源。
-
-
Host 头伪造
在请求中修改 Host 头(如
Host: internal.domain.com),或在本地 hosts 文件强行将域名解析到疑似 IP,若浏览器能打开网站,则命中源站。 -
边缘节点漏洞
利用 CDN 配置错误(如未过滤回源请求),通过 SSRF 漏洞或特定 Header(如
X-Forwarded-For)让服务器主动连接你的 VPS,从而暴露源 IP。
三、特殊场景与进阶
-
国外节点请求:很多国内 CDN 未覆盖海外。使用国外的 DNS(如
8.8.8.8)解析,或通过海外代理/VPS 访问,可能拿到真实 IP。 -
App/小程序抓包:移动端应用内可能硬编码了源站 IP 或内部域名,通过 Burp Suite 或 Fiddler 抓包分析。
-
全网扫描(Zmap/Masscan):这是“笨办法”但有效。扫描全网 IP,通过 Banner 或页面指纹匹配目标网站。
四、防御视角与法律红线
-
防御思路:源站应严格设置防火墙只允许 CDN 节点 IP 回源,并清理遗留文件(如
phpinfo.php)、隔离邮件服务。 -
法律声明:上述技术仅适用于授权渗透测试、红队演练或自家资产排查。未经授权攻击他人 CDN 属于违法行为,请务必在合法合规范围内操作。
如果你有具体的测试场景(如某类网站或特定 CDN 厂商),我可以提供更针对性的排查路径。
更多推荐
所有评论(0)