信息搜集
信息搜集
完整 Google Hacking 语法列表
- 基础操作符
| 操作符 | 说明 | 示例 |
|---|---|---|
site: |
限定搜索特定域名或子域名 | site:example.com |
intitle: |
标题包含关键词 | intitle:"login" |
allintitle: |
标题包含所有指定关键词 | allintitle:"admin" "dashboard" |
inurl: |
URL 路径包含关键词 | inurl:/admin |
allinurl: |
URL 路径包含所有指定关键词 | allinurl:login.php?user= |
filetype: |
搜索特定文件类型 | filetype:pdf "confidential" |
ext: |
按文件扩展名搜索(同 filetype:) |
ext:sql "password" |
intext: |
正文内容包含关键词 | intext:"数据库密码" |
allintext: |
正文包含所有指定关键词 | allintext:"username" "password" |
cache: |
查看 Google 缓存的页面 | cache:example.com |
related: |
查找类似网站 | related:github.com |
info: |
获取网站的 Google 摘要信息 | info:example.com |
define: |
搜索词语定义 | define:SQL注入 |
- 逻辑操作符
| 操作符 | 说明 | 示例 |
|---|---|---|
AND 或 空格 |
同时满足多个条件 | site:example.com 密码 |
OR |
满足任意一个条件 | 漏洞 OR 后门 |
- |
排除关键词 | 登录 -site:gov.cn |
() |
组合复杂逻辑 | (inurl:admin OR intitle:admin) -论坛 |
- 高级操作符
| 操作符 | 说明 | 示例 |
|---|---|---|
* |
通配符(匹配任意字符) | "username:* password:*" |
"..." |
精确匹配短语 | "您的密码错误" |
.. |
数值范围搜索 | 价格 $100..$500 |
AROUND(N) |
关键词间距不超过 N 个词 | "密码" AROUND(5) "泄露" |
weather: |
搜索某地天气 | weather:北京 |
stocks: |
搜索股票代码 | stocks:GOOG |
- 隐藏功能
| 功能 | 说明 | 示例 |
|---|---|---|
| 时间筛选 | 限定时间范围(通过搜索工具栏) | 最近一年、自定义日期 |
| 图片搜索 | 通过图片反向搜索敏感信息 | 上传图片查找来源 |
| 地图数据 | 搜索暴露的地理标记信息 | intitle:"security camera" site:google.com/maps |
二、组合示例大全(按场景分类)
- 敏感文件泄露
| 场景 | 示例 | 说明 |
|---|---|---|
| 数据库备份 | filetype:sql "DROP TABLE" site:example.com |
搜索 SQL 备份文件 |
| 配置文件 | intitle:"index of" "config.php" |
查找 PHP 配置文件 |
| 日志文件 | ext:log "error" "password" |
包含密码的日志文件 |
| 密钥文件 | filetype:key private |
私钥文件泄露 |
- 后台与登录页面
| 场景 | 示例 | 说明 |
|---|---|---|
| 管理员后台 | intitle:"admin login" inurl:/admin |
未授权访问的管理页面 |
| 默认密码 | "默认密码" site:routerlogin.net |
设备默认凭据 |
| 弱口令提示 | intext:"用户名或密码错误" inurl:login |
登录页面错误信息 |
- 漏洞利用
| 场景 | 示例 | 说明 |
|---|---|---|
| SQL 注入点 | inurl:"id=" & intext:"Warning: mysql" |
存在报错信息的注入点 |
| 目录遍历 | intitle:"index of /" "parent directory" |
开放目录列表 |
| API 接口暴露 | inurl:/api/v1 intext:"apikey" |
泄露的 API 密钥 |
- 设备与系统
| 场景 | 示例 | 说明 |
|---|---|---|
| 网络摄像头 | inurl:/view.shtml intitle:"Live View" |
公开的摄像头流 |
| 路由器管理 | intitle:"RouterOS" "admin" |
未授权的路由器配置页面 |
| 打印机控制台 | inurl:"/hp/device/this.LCDispatcher" |
惠普打印机管理界面 |
- 开源情报(OSINT)
| 场景 | 示例 | 说明 |
|---|---|---|
| 员工信息 | site:linkedin.com "CTO" "example.com" |
通过 LinkedIn 收集员工职位 |
| 文档元数据 | filetype:docx "作者:张三" |
从 Office 文档提取创建者信息 |
| GitHub 泄露 | "github.com" "password" extension:env |
GitHub 中的敏感环境变量文件 |
- 错误信息泄露
| 场景 | 示例 | 说明 |
|---|---|---|
| 调试模式 | intext:"DEBUG MODE" "PHP" |
开启调试模式的网站 |
| 数据库报错 | "ORA-12541: TNS 无监听程序" |
Oracle 数据库错误信息 |
| 堆栈跟踪 | intext:"at java.lang.Thread" |
Java 应用崩溃日志 |
三、高阶组合技巧
- 通配符与模糊搜索
| 技巧 | 示例 |
|---|---|
| 搜索带参数的 URL | inurl:*.php?id= * |
| 查找密码重置链接 | "password reset" site:example.com inurl:token=* |
- 时间范围限定
| 技巧 | 示例 |
|---|---|
| 查找近期泄露的数据库 | filetype:sql "INSERT INTO users" after:2023-01-01 |
- 混合逻辑精准定位
| 技巧 | 示例 |
|---|---|
| 排除干扰结果 | (intitle:"管理后台" OR inurl:/admin) -site:gov.cn |
| 组合文件类型与关键词 | filetype:xls "员工工资" site:example.com |
- 利用错误消息
| 技巧 | 示例 |
|---|---|
| 发现 SQL 注入漏洞 | "You have an error in your SQL syntax" |
| 识别配置错误 | "Access denied for user 'root'@'localhost'" |
四、防御建议
| 措施 | 说明 |
|---|---|
robots.txt 配置 |
禁止爬虫访问敏感路径(如 /admin、/config) |
| 文件权限控制 | 避免将备份文件(.bak、.sql)存放在 Web 目录 |
| 错误信息隐藏 | 自定义错误页面,避免暴露堆栈跟踪 |
| 定期搜索自身 | 用 site:yourdomain.com 检查公开信息泄露 |
五、工具增强
| 类型 | 工具 | 说明 |
|---|---|---|
| Google Dork 自动化 | GHDB | 直接搜索预定义的漏洞语法 |
| Google Dork 自动化 | DorkGenius | 自动生成高级 Dork 语句 |
| 监控与告警 | Google Alerts | 监控公司关键词(如 site:example.com password) |
六、合法与道德提醒
⚠️ 重要提示
- 仅用于授权测试:渗透前需获得书面许可
- 漏洞报告:发现漏洞后联系管理员,参考《漏洞披露规范》
- 避免敏感数据:示例中的关键词均为演示用途,请勿针对真实系统测试
七、常见语法解析与示例
index of /admin
| 项目 | 内容 |
|---|---|
| 用途 | 搜索开放目录列表中的 /admin 目录(常见管理后台路径) |
| 风险 | 暴露后台登录页面、未授权访问管理界面 |
| 防御 | 禁用目录列表(Apache: Options -Indexes),设置访问权限(如 IP 白名单) |
index of /passwd
| 项目 | 内容 |
|---|---|
| 用途 | 查找 Unix/Linux 系统中的 /etc/passwd 文件(用户账户信息) |
| 风险 | 泄露用户名、UID/GID 等敏感信息(现代系统密码存储在 /etc/shadow) |
| 防御 | 确保 /etc/passwd 文件权限为 644,禁止 Web 访问系统文件 |
index of /password
| 项目 | 内容 |
|---|---|
| 用途 | 搜索包含 “password” 关键词的目录或文件(如明文密码文件) |
| 风险 | 直接获取明文密码或哈希值 |
| 防御 | 避免在代码或文件中明文存储密码,使用环境变量或密钥管理服务 |
index of /mail
| 项目 | 内容 |
|---|---|
| 用途 | 查找邮件服务器或邮件存储目录(如 /var/mail) |
| 风险 | 泄露用户邮件内容、账户信息 |
| 防御 | 限制邮件目录的 Web 访问权限,加密存储敏感数据 |
"index of /" +passwd
| 项目 | 内容 |
|---|---|
| 用途 | 在根目录下搜索 passwd 文件 |
| 风险 | 可能发现 /etc/passwd 被错误链接到 Web 根目录 |
| 防御 | 检查 Web 目录中是否存在符号链接到系统文件 |
"index of /" +password.txt
| 项目 | 内容 |
|---|---|
| 用途 | 查找 Web 根目录下的 password.txt 文件 |
| 风险 | 明文密码文件可直接下载 |
| 防御 | 删除测试或临时文件,禁用目录列表 |
"index of /" +.htaccess
| 项目 | 内容 |
|---|---|
| 用途 | 暴露 Apache 服务器的 .htaccess 配置文件 |
| 风险 | 泄露重定向规则、认证凭据(如 AuthUserFile 路径) |
| 防御 | 限制 .htaccess 文件权限(如 600),避免存储敏感信息 |
"index of /root"
| 项目 | 内容 |
|---|---|
| 用途 | 搜索 Unix 系统超级用户(root)的主目录 |
| 风险 | 泄露 root 用户的 SSH 密钥、脚本或日志 |
| 防御 | 确保 /root 目录权限为 700,禁止 Web 服务器访问 |
"index of /cgi-bin"
| 项目 | 内容 |
|---|---|
| 用途 | 查找 CGI 脚本目录(常见于老旧系统) |
| 风险 | 利用 CGI 漏洞(如 Shellshock)执行远程代码 |
| 防御 | 升级或禁用 CGI 模块,设置严格的脚本权限 |
"index of /logs"
| 项目 | 内容 |
|---|---|
| 用途 | 暴露日志文件目录(如访问日志、错误日志) |
| 风险 | 日志中可能包含敏感信息(如 SQL 错误中的数据库密码) |
| 防御 | 将日志存储在非 Web 目录,定期清理并加密存档 |
"index of /config"
| 项目 | 内容 |
|---|---|
| 用途 | 查找配置文件目录(如数据库连接信息) |
| 风险 | 泄露 config.php、settings.ini 等文件 |
| 防御 | 将配置文件移出 Web 目录,使用环境变量注入配置 |
FOFA
简介:
FOFA(Fingerprinting Organizations with Advanced Tools)是一家总部位于中国的网络安全公司提供的一款网络搜索引擎,专注于帮助用户收集和分析互联网上的设备和服务信息。FOFA 的主要特点包括:
- 设备指纹识别: FOFA 可以通过对设备的指纹信息进行识别,帮助用户发现和查找特定类型的设备。
- 漏洞扫描: FOFA 提供了一些漏洞扫描功能,可以帮助用户检测目标设备中可能存在的漏洞。
- 定制搜索: 用户可以使用 FOFA 的搜索语法和过滤器,根据特定的条件和关键词来执行定制搜索,以找到目标设备和服务。
- 图形化界面: FOFA 提供图形化的搜索界面,使用户能够直观地查看搜索结果、图表和图谱,从而更好地理解互联网上的设备布局。
- 历史数据: FOFA 记录了历史搜索结果,用户可以查看设备和服务的历史信息,帮助他们了解网络的发展和变化。
- API 支持: FOFA 提供了 API,使用户能够通过编程方式访问其搜索引擎,从而集成 FOFA 的功能到自己的应用程序或工作流程中。
搜索语法:
title=“标题”

domain=”域名”

host=”域名”

ip=”IP地址”/ip=”IP 地址/子网掩码”

body=”搜索内容”

srever=”服务器”

header=”搜索内容”

port=”端口号”

status_code=”服务器状态码”

protocol=”协议类型”

country=”国家编码”

region=”行政区”

city=”城市”

os=”操作系统”

app=”设备”
应用指纹 (app) —— 基于多维度特征综合识别
应用指纹是FOFA通过分析目标的多项特征,综合判断后给资产打上的“软件标签”。它不是你直接搜索一个词,而是FOFA帮你识别好了这是什么软件或框架。
核心原理:
FOFA的识别引擎会从多个维度提取特征,并与庞大的指纹库进行比对。这些维度主要包括:
| 特征维度 | 具体分析内容 | 举例 |
|---|---|---|
| HTTP响应头 | Server、X-Powered-By等字段 |
出现 Server: nginx 可能标记为Nginx |
| HTML内容 | 网页源码中的特定注释、JavaScript路径、CSS样式等 | 包含特定的版权信息或JS文件路径 |
| 协议行为 | TLS握手特征(JARM指纹)、特定端口服务 | Cobalt Strike的HTTPS通信有独特的JARM指纹 |
| 证书信息 | SSL证书的颁发者、组织名等 | 大量自签名证书的特定格式 |
所以当你用 app="Microsoft-Exchange" 时,FOFA会把所有符合Exchange Server多项特征(如特定的owa登录页、响应头等)的资产都找出来。

icp=”备案号”
ICP备案号 (icp) —— 基于网页公开的备案信息
ICP备案号是中国大陆网站根据法规要求在页面底部展示的公开信息,形如“京ICP证030173号”。
核心原理:
- FOFA会抓取并提取网页HTML代码中符合ICP备案号格式的字符串
- 同一个公司主体下的不同网站,通常会使用相同或有关联的备案号
实际应用:
搜索 icp="京ICP证030173号" 可以找出所有挂在同一个公司主体名下的网站。这在红队评估或企业资产梳理中非常有效——当你面对一个目标时,可以先找到其官网底部的备案号,然后反查出该公司所有的已备案域名,从而扩大资产收集范围。

图标哈希(Icon Hash)
图标哈希是根据网站根目录下的 favicon.ico 文件(就是浏览器标签页上显示的那个小图标)计算出来的唯一特征值。
核心原理:
- FOFA在抓取网站时,会自动下载并计算该网站图标的哈希值(hash),作为这个图标文件的“数字指纹”
- 很多同一机构、同一套建站系统或同一品牌的网站,会使用完全相同的网站图标
- 关键特点:即使网站换了IP、域名甚至改版了登录页面,只要图标文件没变,它的
icon_hash就不会变
实际应用:
在实战中,你可以先找到目标网站,计算出它的图标哈希值(或直接通过FOFA结果页获取),然后搜索 icon_hash="这个哈希值",就能精准找到所有使用了相同图标的网站。这常用于发现同一机构下的“影子资产”或使用同一套模板的站群。
icon_hash=”-247388890” (fofa网站的图标哈希)

证书
cert.subject.cn=”*.baidu.com”
证书来源:
当通过 https:// 访问一个网站时(比如 https://www.baidu.com),网站服务器为了证明自己是合法的、并加密你们之间的通信,会向你的浏览器出示一个数字身份证,这个身份证就是 SSL/TLS证书
cert.subject.cn 中的 cn 是 Common Name(通用名称) 的缩写。它表示这张证书是为哪个域名颁发的。
- 简单理解:
cert.subject.cn的值,就是证书上写的“此证书授权给以下域名使用”。 - 最常见的情况:
- 单域名证书:
cert.subject.cn = "www.example.com" - 通配符证书:
cert.subject.cn = "*.example.com"(*代表任意子域名,比如a.example.com、b.example.com都行)
- 单域名证书:
工作步骤:
用 cert.subject.cn="*.baidu.com" 去搜索,FOFA 会做以下两步:
- 读取证书:找到所有网站的SSL证书,并读出证书里
subject.cn这个字段的值。 - 匹配文字:筛选出那些
subject.cn字段的文字恰好是*.baidu.com的网站。
关键点:cert.subject.cn 的值,是证书里的“文字”,它不一定等于你当前访问的域名。
cert.subject.cn 的强大之处:它能帮你找到那些在证书层面“共享身份”的资产,即使它们的域名完全不同

子域名搜集
在渗透测试中,主站 (如:www.baidu.com) 往往防守严密,像一座堡垒。但它的子域名 test.baidu.com(测试系统)可能被管理员忽视,使用了弱口令或存在漏洞。攻陷了子域名,就可能以此为跳板,最终拿下整个目标。
总结一句话:子域名搜集的本质,就是绘制目标的攻击面地图,找到最薄弱的突破口
子域名搜集思路:

第一步:被动搜集(安静,不接触目标)
这是最安全的阶段,所有信息都来自公开渠道,不向目标发送任何数据包,不会留下任何日志
1. 搜索引擎语法
利用百度、Google 等搜索引擎的特定语法,直接搜索公开的页面。
- Google / 百度:
site:cuit.edu.cn: 最基本语法,搜索该域名下的所有网页。site:cuit.edu.cn -www: 排除www这个常见的子域名,往往能发现意想不到的结果。site:cuit.edu.cn intitle:管理: 搜索子域名中标题包含“管理”的后台。
2. 网络空间搜索引擎
利用 FOFA、Shodan、ZoomEye 等平台,它们已经帮你把互联网上的资产爬好了。
- FOFA 示例:
domain="cuit.edu.cn": 最核心语法,直接列出所有子域名。cert.subject.cn="cuit.edu.cn": 查找所有使用了百度证书的网站,包括很多非baidu.com域名的资产。
3. DNS历史解析记录
很多子域名解析过,后来不用了,但记录还留存在历史数据中。
- 工具/网站:SecurityTrails, DNSdumpster, VirusTotal。
- 直接访问
securitytrails.com,输入cuit.edu.cn,它会给你一份非常详尽的历史子域名列表。
- 直接访问
第二步:主动爆破(动静较大,数据丰富)
使用工具和字典,强行猜测子域名是否存在。注意:这种方式会直接向目标的DNS服务器发送大量请求,动静较大,实战中需要控制速度。
1. 字典爆破
使用一个强大的子域名字典,挨个去猜。
推荐工具:
subfinder,oneforall,ksubdomain。命令示例(以 subfinder 为例):
bash
1
subfinder -d cuit.edu.cn -o baidu_subdomains.txt
2. 排列组合爆破
不仅猜单词,还根据已有的子域名,智能生成新的可能性。
- 推荐工具:
altdns。- 比如它已经发现了
mail.cuit.edu.cn,就会尝试mail2.cuit.edu.cn,mail-test.cuit.edu.cn等排列组合。
- 比如它已经发现了
第三步:证书透明(CT)日志——最容易被忽视的宝库
这是目前公认的最有效、最安静、信息最准确的方法。任何网站要启用HTTPS,都必须申请SSL证书,而证书的申请记录是公开写入日志的。
- 核心原理:证书中包含
Subject Common Name (CN)和Subject Alternative Name (SAN)字段,这两个字段里会列出这个证书为哪些域名(包括所有子域名)提供加密服务。 - 查询方式:
- 网站:
crt.sh,直接搜索%.cuit.edu.cn(%是通配符)。 - FOFA:
cert.subject.cn="cuit.edu.cn"或cert.subject.c="cuit.edu.cn"。 - 工具:
ctfr.py等脚本。
- 网站:
举个例子:百度的证书 SAN 字段里,可能会列出 *.baidu.com, *.map.baidu.com, *.cloud.baidu.com 等几十上百个子域名。这些都是百度的真实资产
工具介绍
OneForAll
介绍:OneForAll 是由 shmilylty 在 Github 上开源的子域名收集工具。它具有强大的收集能力和灵活的处理功能,支持多线程操作,速度极快
功能特点:
收集能力强大:利用证书透明度、常规检查、爬虫档案、DNS 数据集、DNS 查询、威胁情报平台、搜索引擎等多种方式收集子域。
支持子域爆破:支持字典爆破、自定义 fuzz 模式,批量爆破和递归爆破。
子域验证:自动解析子域 DNS,获取 title 和 banner,判断子域存活情况。
子域接管:支持子域接管风险检查和自动接管(目前支持 Github)。
处理功能强大:支持多种格式导出结果(rst、csv、tsv、json、yaml、html、xls、xlsx、dbf、latex、ods)。
速度极快:利用多线程和异步多协程技术,收集速度达到10000pps
运行:
py -3.14 oneforall.py --target example.com run
再在result文件夹里找到相应结果
结果(cuit.edu.cn)如下:

灯塔(ARL)
简介:
ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统,旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。 协助甲方安全团队或者[渗透测试人员奏效侦察和检索资产,发现存在的薄弱点和攻击面。
其特性如下:
1、域名资产发现和整理
2、IP/IP 段资产整理
3、端口扫描和服务识别
4、WEB 站点指纹识别指纹识别
5、资产分组管理和搜索
6、任务策略配置
7、计划任务和周期任务
8、Github 关键字监控
9、域名/IP 资产监控
10、站点变化监控
11、文件泄漏等风险检测
12、nuclei PoC 调用
13、WebInfoHunter 调用和监控

密探
简介:
密探渗透测试工具包含资产信息收集,子域名爆破,搜索语法,资产测绘(FOFA,Hunter,quake, ZoomEye),指纹识别,敏感信息采集,文件扫描、端口扫描、批量信息权重查询、密码字典等功能

资产测活
工具:
HTTPX
简介:
HTTPX 是一个功能强大的 HTTP 客户端工具,用于执行各种网络任务,例如发现 Web 应用程序漏洞、探测域名和端口等。它使用了 retryablehttp 库来运行多个探测器,旨在通过增加线程数来提高结果的可靠性。
HTTPX 支持多种 HTTP 请求方法,可以使用自定义标头和数据,并且可以设置请求超时时间、重试次数和批处理大小等选项。此外,HTTPX 还支持代理、SSL 和身份验证,并且可以查找和打印链接、横幅和技术指纹等信息。
HTTPX 还内置了 Wappalyzer 技术检测集成,可以自动识别网站所使用的 CMS 和 Web 服务器,并且可以保存输出为 JSON 格式,方便进一步处理。HTTPX 还有许多其他有用的参数和选项,可以帮助您更好地执行各种网络任务。
1 | httpx.exe -h |
常用命令:
1 | 1.探测网址的基本信息:httpx.exe -u https://www.example.com |

1 | 2.从文件中扫描多个网址:httpx.exe -l targets.txt |
1 | 3.使用自定义请求头进行扫描:httpx.exe -u https://www.example.com -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" |
1 | 4.禁止重定向并设置超时:httpx -u http://sdfadsf.com -timeout 10 |
1 | 5.显示 Web 服务器和 CDN 信息:httpx.exe -u https://baidu.com -cdn -web-server |
1 | 6.根据指定的状态码过滤响应:httpx.exe -l .\url.txt -fc 403,404 |
1 | 7.启用随机 User-Agent 并避免解码响应体:httpx -url https://www.example.com -random-agent -no-decode |
1 | 8.批量探测 |
1 | 9.批量二:探测成功的url输出 |
DDDD
简介:
dddd(常被戏称为“带带弟弟”)是一款专为红队和渗透测试人员设计的自动化侦察与漏洞探测工具。它的核心理念是把信息收集、指纹识别到漏洞扫描的整个流程整合起来,帮助安全人员在攻防演练或合规测试中,从海量目标中快速、精准地定位高风险资产,抢占时间先机
简单来说,可以把 dddd 理解为一个功能高度集成的自动化“打点”利器,它能帮你把繁琐的重复性工作自动化,让你更专注于漏洞的验证和利用

示例:最基本的扫描命令
1 | dddd.exe -t 192.168.134.128 |

指纹识别
什么是指纹
在渗透测试的语境下,一个系统的“指纹”是其软件、框架、中间件、操作系统甚至是配置在网络上留下的各种细微特征。这些特征本身可能是无害的,但组合起来就能拼凑出系统的完整画像
一个指纹通常由两部分构成:
- Web组件:指具体的软件名称,比如 Nginx、Tomcat、WordPress、jQuery 等。
- 识别规则:一组用于匹配该组件的特征。
常见的指纹特征可以归纳为以下几类:
| 特征类别 | 具体说明 | 举个栗子 |
|---|---|---|
| HTTP响应头 | 服务器返回的HTTP头字段,信息量很大。 | Server: nginx/1.18.0 X-Powered-By: PHP/7.4.33 Set-Cookie: JSESSIONID=... (Java应用) |
| HTML内容 | 页面源码里的特殊标记、注释、引用的文件等。 | <meta name="generator" content="WordPress 5.8"> <script src="/wp-content/themes/twentytwentyone/..."> 页面底部的 © 2024 Powered by Discuz! |
| URL结构 | 网站特有的目录路径、文件命名习惯。 | /wp-admin/ (WordPress 后台目录) /wls-wsat/ (Weblogic 组件) /robots.txt 中的特定字段 |
| 特定文件MD5 | 一些不常更改的静态文件(如图标、CSS)的哈希值。 | 网站的 favicon.ico 指纹图标就很独特。通过计算其MD5值,与指纹库中的记录对比,就能快速锁定目标。 |
| 错误页面 | 访问不存在的页面时,服务器返回的错误信息。 | Tomcat、IIS、Apache 的默认404页面都各不相同,能透露其身份。 |
指纹识别的作用
在渗透测试的信息收集阶段,指纹识别的主要作用是通过分析目标系统的响应特征,快速定位其使用的具体软件、版本、框架及配置,从而缩小攻击面并精准选择利用方式
脆弱资产
在渗透测试或网络安全评估的信息搜集阶段,脆弱资产通常指那些存在已知或潜在安全弱点、且可能被攻击者利用以达成进一步目标(如获取权限、横向移动、破坏系统)的目标资源。
简单理解:就是**“容易被打且打完之后有价值”**的东西。
具体可以从以下几个维度来识别:
常见类型
- 老旧或未打补丁的系统:例如仍在使用Windows 7、Server 2008,或存在EternalBlue(永恒之蓝)、Log4j等已知漏洞但未修复的服务器。
- 弱口令或默认凭证:例如后台admin/admin,数据库root/空密码,SSH允许弱口令登录。
- 暴露的非标准端口或服务:在公网或内网开放了如Redis 6379(未授权访问)、Docker 2375(API暴露)、Elasticsearch 9200(数据可读)等服务。
- 具有已知漏洞的应用组件:如Struts2、Shiro反序列化漏洞、ThinkPHP远程执行等。
- 泄露的敏感信息源:代码仓库(GitHub、GitLab)中的密钥、配置文件,或在JS文件中暴露的API接口、内网地址。
- 缺乏访问控制的资源:目录浏览、备份文件可下载(.git/.svn/.bak/.sql)、swagger未鉴权等。
- 配置错误的云资产:可公开读写的S3存储桶、未授权的Kubernetes API Server。
为什么在信息搜集时要关注脆弱资产?
- 降低攻击门槛:相比寻找0day,脆弱资产通常能用现成工具或公开PoC直接利用,快速获得突破口。
- 提升渗透效率:在大量资产中筛选出“大概率可突破”的目标,避免在强防护系统上浪费精力。
- 构建攻击路径:很多脆弱资产(如弱密码开发机、测试环境)虽非核心,但可作为跳板进入内网,再攻击高价值目标。
漏洞扫描
nuclei
简介:
Nuclei 是一个基于模板的自动化漏洞扫描器,专门用来快速检测目标系统中是否存在已知的安全漏洞或配置问题
YAML
YAML 是什么?
全称:YAML Ain‘t Markup Language(递归缩写,意为“YAML 不是标记语言”)
本质:一种人类可读的数据序列化格式,用来表示键值对、列表、字典等数据结构。
用途:常用于配置文件(如 Docker Compose、Ansible)、数据交换(如 API 返回)、以及漏洞 POC 编写
总结:YAML 是一种书写格式/语言,POC 是漏洞检测逻辑的内容,我们通常用 YAML 这种格式来编写 POC 文件(文件后缀为 .yaml 或 .yml)
Nuclei 是一个执行引擎,而 YAML 编写的 POC 是它能够识别和运行的“漏洞检测脚本”
YAML PoC 基础结构
一个标准的 YAML PoC 包含以下核心部分:
1 | id: poc-example-name |
Nuclei的YAML标准格式(HTTP 协议模板):
1 | id: git-config # 模板唯一标识 |
1.
id(唯一标识)- 说明:模板的唯一标识符,用于后续追踪和调用。
- 格式要求:
string类型,不能包含空格。 - 示例:
id: CVE-2023-28432
2.
info(基础元数据)说明:描述漏洞的基本信息,帮助用户理解该模板的用途和严重性,方便管理和分类。
必要字段:
name(漏洞名称),author(作者),severity(严重等级),description(详细描述)。推荐字段:
tags(标签,如cve, rce, 用于分类),reference(参考链接)。示例:
yaml
1
2
3
4
5
6
7info:
name: Git Config File
author: L1uxsn
severity: medium
description: Searches for the pattern /.git/config on passed URLs.
reference: https://www.acunetix.com/vulnerabilities/web/git-repository-found/
tags: git,config
3.
Protocol(协议定义)- 说明:这是模板的核心部分,定义了要执行的实际测试逻辑。Nuclei 支持多种协议。根据选择的协议不同,数据结构也不同。
接口和路由
找到网站隐藏的接口和路由,是信息收集阶段的一项核心工作。这能极大地增加攻击面,发现那些前端未显示但功能完整的模块
- 路由 是服务器根据URL路径和HTTP方法,将请求映射到具体处理函数(后端代码)的规则集合。
- 例如:
GET /user/profile→UserController.getProfile()
- 例如:
- 接口 通常指一个具体的、可访问的端点(Endpoint),由 URL路径 + HTTP方法 组成,它是前后端交互的实际入口。
- 例如:
POST /api/login、DELETE /api/post/123
- 例如:
在渗透测试中的作用
1. 扩大攻击面
现代Web应用大量功能依赖前端JS动态渲染,很多接口并未在HTML链接中直接暴露,而是藏在JS代码中(如/api/user/list、/admin/config)。发现这些“隐藏”的路由/接口,就能绕过页面的限制,直接攻击后端逻辑
2. 测试越权与未授权访问
找到接口后,可以尝试:
- 不携带Cookie/Session访问,检查是否存在未授权访问。
- 修改请求中的身份标识(如
?user_id=123),测试水平/垂直越权。 - 对管理员接口(如
/admin/deleteAll)尝试低权限访问。
3. 挖掘参数注入漏洞
每个接口都可能存在SQL注入、命令注入、XXE、SSRF等。通过分析接口的请求参数(尤其是隐藏参数,如debug=true),可以构造恶意负载。
4. 发现业务逻辑漏洞
有些接口虽然不直接在页面上使用,但可能仍有后端代码支撑。例如:
- 修改订单状态的接口(
/order/status?orderid=xxx&status=paid) - 批量操作的接口(
/batch/delete) - 测试环境遗留下来的接口(
/debug/health、/api/swagger)
5. 指纹识别与信息泄露
某些接口的返回值会泄露版本信息、内部IP、代码路径、配置信息等,有助于后续精准攻击。
可以使用findsomething和查看js查看接口和路由
网站时光机
介绍:
“网站时光机”(Wayback Machine)是信息收集中一个宝藏般的存在。可以把它想象成一个全球互联网的“历史档案馆”,由非营利组织“互联网档案馆”(Internet Archive)运营。
简单来说,它是一个从1996年至今,保存了超过8560亿个网页历史快照的超大数据库。对信息安全测试来说,它的价值在于能帮你找到那些早已被开发者遗忘,但在当前服务器上依然可以访问的历史接口和敏感文件
