DevGuru靶机、Mac攻击机、kali2020辅助攻击机
VM名称:DEVGURU:1
下载:https://www.vulnhub.com/entry/devguru-1,620
目标:获得user.txt与root.txt并获得root权限
运行:VMware Workstation 16.x Pro(默认为NAT网络模式,VMware比VirtualBox更好地工作)
描述:DevGuru是一家虚构的web开发公司,雇用您进行pentest评估。您的任务是在他们的公司网站上查找漏洞并获取root。
靶机DevGuru
1.nmap扫描端口信息
D76167BBD7BA7094E3A61116D26257F9 2.我们看到了一个git信息泄露~提取泄露信息
提取完成。我们打开泄露信息文件夹~
3.我们在config/database.php发现数据库密码信息
adminer.php文件是数据库配置功能页面,类似phpmyadmin
4.接下来我们登录adminer进入数据库
登录数据库,寻找铭感信息~
我们看到了一个用户名 frank 但是密码是被加密过的~
经分析得知~这个是MD5二次加密并加盐后的密码。
那么我们需要自行修改密码并加密。替换原有的密码即可。
把密文替换~两个选项都需要哦:password和persist_code两个字段,值都是上面123456加密加盐值,类型不选。保存即可
PS:当然我们也可以新建一个用户,但是记得给管理员权限~
5.接下来我们扫描网站目录,寻找后台登录页面。
扫描完成后,测试一波,发现了登录页面~
5.登录后台~
435D8EED33C18C0EF39B0A9CC7417670 1.仔细查询一番,发现可以在cms里面进行命令执行~
2.在code中添加命令执行参数
在Markup添加一行进行调用
点击首页进行访问~
接下来,我们用GET请求,尝试命令执行
命令执行成功!
PS:在命令存在空格时使用${IFS}绕过即可
1.修改之前写入的命令执行参数,修改为反弹shell的命令
2.攻击机终端使用nc连接
输入完成后,重新访问首页,进行反弹~
EF0762613693765C8F46A48E54C66B28 进入var,发现备份文件,仔细搜寻一番,发现有一个可疑的备份文件~
我们把这个文件复制到html里面进行下载查看~
我们访问域名进行下载
打开搜寻一番,发现了另外一个数据库用户密码
打开:http://192.168.0.111/adminer.php 登录新的数据库
我们再次看到了user,发现了一个新的加密方式~
53D1E918F3F54B1B5F3F09935F099675 修改frank用户密码为123456,需要知道密码加密方式。。
查找源码加密方式:https://github.com/go-gitea/gitea/blob/master/models/user.go
加密参数有passwd,salt,algo
按照switch语句判断应该执行
修改一下脚本进行运行。
使用golang语言在线编译:https://play.golang.org/
得到密文:
也可以用python进行编译
修改密码:
1.登录系统~
B553250E55D054D729D1CE1413AA08D5 2.寻找地方写shell
找到个人仓库~
点击setting
找到Git Hooks
点击最后一个的小画笔
写入bash脚本
点击update hook进行保存,在终端监听5555端口
接下来,在CODE中选择一个文件进行修改并保存
Done!获得frank用户的shell
使用python3升级shell功能
获得第一个flag:user.txt
627BED4DAF5A2EAAAA1DE963F5B6500A 查看sudo -l,crontab -l,id等,此处可以利用suid提权
B39D3E6C-8263-4AA9-8D5D-CF9FEEB5A04F sudo提权辅助网站:https://gtfobins.github.io/gtfobins/sqlite3/
提权时候会让输入密码,使用sudo -u#-1绕过限制进行执行
进入root用户文件夹获得flag