难度 低->中
目标 2个root权限 2个flag
先进行靶机发现
kali 192.168.81.58 靶机 192.168.81.184
简单扫描一下发现开启了22端口和80端口
看了没有什么服务突破口估计就是80端口了
访问发现是一个什么登录界面,并且是qdPM,不确定是不是什么框架cms
在网上搜索了一下发现有一个信息泄露
http://192.168.81.184/core/config/databases.yml
下载下来
这个密码怎么怪怪的
因为网站主页写了版本是9.1
但是这两个rce好像都是后台rce,所以还是得先知道一个用户的账号密码
发现没有什么突破继续进行信息收集
扫描后发现存在目录遍历,不过大部分的目录下面都没有什么东西
但是访问这个install
好像是安装网站的系统的页面,一般来说安装完后是不可以再次安装的
不过我不知道这个的数据库端口是什么,尝试猜测一下常见的几个数据库端口
尝试输入3306发现有反应,爆了个错误但是不是连接失败的错误说明用的是mysql
好家伙 otis rush 进去了
账号 admin@localhost.com 密码123456
不过为什么登录不上???
看了一下wp,和我这个思路不一样,怀疑中了迷雾弹。damn
在secret下面有一个图片,考点是图片隐写,当时看到时候我还以为只是一个简答的放图片的地方。
不过看到这个图片上面的文字 otis rush和之前获得的账号密码一样,确实有蹊跷。
使用 steghide 查看一下是否存在隐藏文件
发现需要密码
使用stegseek工具对图片进行爆破
取出的内容为一个账号和密码,估计就是使用这个进行登录的
otisrush@localhost.com otis666
根据之前收集的CVE的信息后台应该是存在文件上传漏洞的。
简单看了然后使用github上面的项目脚本反弹shell
使用方式也很简单
首先修改qdPM9.1_exploit.py 中的内容
端口选个没有被占用的就可以。然后payload就用他自带的。
然后修改这个php-reverse-shell.php
只需要修改一下监听的ip也就是kali的ip和前面对应的监听的端口
然后python3运行脚本
它会先将webshell上传上去
上传之后到uploads/users里面去找刚上传的然后直接点击访问就会将shell反弹回来
用脚本还是挺方便的,而且会话掉了后直接可以使用nc -lvpn 1234 然后访问一下webshell就可以把shell弹回来
然后思考提权,首先直接sudo -l 看看有没有sudo的权限
发现有个awk可以任意的使用
在网上找了一下这个awk的提权方式,发现很简单的样子
直接 sudo awk 'BEGIN {system("/bin/sh")}'
这里用脚本反弹回来的shell可能不是完整的shell,我重新nc监听并且升级了一下shell
python3 -c 'import pty;pty.spawn("/bin/sh")'
sudo awk 'BEGIN {system("/bin/sh")}'
然后cat 一下root发现没有flag倒是发现了一个ova虚拟机???
原来这就是双倍麻烦666
后记 : 对于那个install的页面还是很不甘心,于是直接到数据库中去看了下用户信息,那个admin@localhost.com的账户真的只是一个配置的账户,啥卵用没有的,在configration表中,而users用户里面真的只有一个otisrush。。。
将前面那个ova靶机传到web目录下面然后下载下来,导入虚拟机启动
靶机 192.168.81.76
开放的端口和前面的那个一样,突破口估计也是web就是不知道两个靶机有什么联系没
访问80端口只有一个简单的登录页面
尝试了简单的弱口令没有结果
然后挂了一下xray发现存在SQL盲注
直接上sqlmap
sqlmap -u http://192.168.81.76/index.php --data "uname=root&psw=1111&btnLogin=Login"
看了一下不是dba的权限
然后发现一个users表,里面有两个用户和密码
sqlmap -u http://192.168.81.76/index.php --data "uname=root&psw=1%27or%271%27%3D%271&btnLogin=Login" -D doubletrouble -T users --dump --batch
拿着这两个去登录网站,发现两个都登录不进去,不可能给个假的账密吧,又想了一下可能是ssh的就去尝试了一下
最终 clapton ZubZub99 登录成功了
拿到flag
看着像是加密的结果,拿到MD5解密网站解密一下
claptonrocks
只有一个这个也不知道是什么意思放在一边。
使用maf的自动提权模块没有找到可用的exp,奇怪(我直接使用ssh模块建立的shell使用local suggest提权模块没有找到可以利用的exp,但是我生成elf使用meterpreter建立的链接使用提权模块可以自动找到利用exp)
但是使用提权脚本查到了可能可以使用的exp
顺便看了一下版本uname -a 发现是3.2的版本的内核,确实是比较低的内核版本,符合脏牛漏洞的利用条件
msf是带有这个漏洞的exp的使用searchsploit linux 3.2 查看一下
发现了这个40616
然后copy一份到当前目录下
查看一下使用方式
gcc 40616.c -o cowroot -pthread
给个权限执行
成功提权至root权限
拿到第二个flag
后记:另外我还特意去看了一下网站是个什么情况,翻了翻源码,发现确实是用的获得的那个账号密码,但是代码中的条件是取出一个列id的值然后才会跳转到另一个页面,然而数据库中并没有id这个列所以一直跳转不成功。同时网站下面还有一个php文件也就是如果登录成功才会显示的页面,是一个ping功能的点可以加;隔开然后执行命令,不过反弹回来的是一个www的权限没什么用