VulnHub doubletrouble

靶场搭建

靶场下载地址:https://download.vulnhub.com/doubletrouble/doubletrouble.ova

下载下来是zip压缩文件,解压后是.ova虚拟机压缩文件直接用Vmvare导出就行

打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)

打开后靶机没有自动获取ip,解决办法看我这篇文章:靶机无法自己获取ip地址解决办法_奋斗吧!小胖子的博客-CSDN博客

重启虚拟机

VulnHub doubletrouble_第1张图片

靶场搭建完毕

渗透测试

由于不知道靶机ip,所以需要扫描NAT的网段

VulnHub doubletrouble_第2张图片

128为kali攻击机的ip,所以144为靶机ip

扫描靶机端口服务开放情况

VulnHub doubletrouble_第3张图片

开放了22端口,存在ssh服务

开放了80端口,存在http服务,且中间件为Apache2.4.38

先访问一下WEB

发现是一个登录页面,先测试一下是否存在sql注入

VulnHub doubletrouble_第4张图片

经过测试发现不存在sql注入

VulnHub doubletrouble_第5张图片

搜索一下敏感目录

VulnHub doubletrouble_第6张图片

发现可以访问/core这个目录

VulnHub doubletrouble_第7张图片

在/core/config目录下发现databases.yml配置文件,在其中发现了数据库账号和密码,还有数据库名

VulnHub doubletrouble_第8张图片

发现/install页面

VulnHub doubletrouble_第9张图片

这里似乎可以配置数据库

VulnHub doubletrouble_第10张图片

在这里输入我们之前在配置文件中读到的账号密码,发现报错不能使用

还发现一个readme.txt文档

文档中介绍qdPM一个开源的网站管理软件,证明这个网站使用了qdPM这个开源框架软件

VulnHub doubletrouble_第11张图片

并且能从install页面和首页中看出版本为9.1

VulnHub doubletrouble_第12张图片

VulnHub doubletrouble_第13张图片

搜索相应版本是否存在漏洞,发现确实存在漏洞

VulnHub doubletrouble_第14张图片

将利用代码复制到当前目录下

查看一下代码

VulnHub doubletrouble_第15张图片

这个漏洞利用需要登录才能利用,所以我们尝试去破解登录账号密码

搜索默认的账号密码

VulnHub doubletrouble_第16张图片

尝试登录发现都不正确

在尝试用前面获得的数据库密码登录,发现也不正确

在搜索敏感目录时还搜索到一个/secret目录

在目录下发现一个图片文件

VulnHub doubletrouble_第17张图片

VulnHub doubletrouble_第18张图片

在/secret目录下看起来,是个图片文件,这让我们怀疑这个图片文件可能隐写了东西

将文件保存下来

使用steghide工具查看是否存在隐写内容,发现需要密码,看来确实存在隐写了内容

VulnHub doubletrouble_第19张图片

kali中又专门的破解隐写密码的工具stagecracker

输入命令下载并且查看使用方式

VulnHub doubletrouble_第20张图片

VulnHub doubletrouble_第21张图片

发现上面提示stegcracker已经被stegseek这个工具替代,且stegseek的效率更高

kali中没有stegseek,所以我们需要去下载

根据他给的地址去下载

下载一个deb的软件包

VulnHub doubletrouble_第22张图片

安装软件

VulnHub doubletrouble_第23张图片

查看使用方式

VulnHub doubletrouble_第24张图片

成功破解出密码

VulnHub doubletrouble_第25张图片

使用密码提取出文件

VulnHub doubletrouble_第26张图片

查看文件,发现一组账号和密码

尝试登录,登录成功

VulnHub doubletrouble_第27张图片

登录成功后执行之前找到的漏洞的exp

发现代码报错

使用另外一个python3的exp

发现也报错

VulnHub doubletrouble_第28张图片

查看一下代码

发现代码中很多地方缩进存在问题

VulnHub doubletrouble_第29张图片

修改一下

VulnHub doubletrouble_第30张图片

再次执行发现成功执行

VulnHub doubletrouble_第31张图片

执行成功

上传了一个后面,访问一下

VulnHub doubletrouble_第32张图片

用后门反弹shell

先看有没有nc和python

VulnHub doubletrouble_第33张图片

利用python升级shell

升级完shell之后浏览了一下每个目录没有发现什么线索

只能进行提权

sudo提权

sudo -l 查看特权命令

VulnHub doubletrouble_第34张图片

发现存在awk特权命令,输入命令提权

sudo awk 'BEGIN {system("/bin/bash")}'

提权成功

进入到/root页面下发现又出现一个ova虚拟机压缩文件,存在第二台机器

将文件保存到本地电脑上

直接在靶机上通过python搭建临时网站,因为80端口已经在占用所以要用其他端口

在本地Windows点脑上安装wget

下载地址:GNU Wget 1.21.3 for Windows

将下载好的wget.exe放在C:/Windows/System32目录下,即安装完成

打开命令窗输入wget,安装成功

VulnHub doubletrouble_第35张图片

将靶机文件下载下来

VulnHub doubletrouble_第36张图片

用VM打开

开启虚拟机

由于不知道靶机ip,所以需要扫描NAT的网段

VulnHub doubletrouble_第37张图片

144为第一台靶机,128为kali攻击机,所以145为新的靶机

扫描端口服务开放情况

VulnHub doubletrouble_第38张图片

开放了22端口,存在ssh服务

开放了80端口,存在http服务,且中间件为2.22

先访问一下WEB

又发现一个登录页面

VulnHub doubletrouble_第39张图片

先尝试看是否存在admin/admin/admin123这样的经典弱口令

发现不存在

搜索一下敏感目录

VulnHub doubletrouble_第40张图片

发现不存在其它铭感目录

但是发现存在/cgi-bin目录,看是否存在破壳漏洞

发现也不存在

VulnHub doubletrouble_第41张图片

看是否存在sql注入,经过抓包简单的sql注入测试发现不存在

用sqlmap测试,发现uname参数存在时间注入

sqlmap -u "http://192.168.52.145/index.php" --batch --forms

VulnHub doubletrouble_第42张图片

利用sqlmap爆出数据库名--current-db

爆出当前数据库的表名-D doubletrouble --tables

VulnHub doubletrouble_第43张图片

爆出users表的列名-D doubletrouble -T users --columns

VulnHub doubletrouble_第44张图片

爆出users表里的数据-D doubletrouble -T users --dump

VulnHub doubletrouble_第45张图片

得到两组账号密码,尝试登陆

发现两组账号密码都不能用于登录网站

前面端口探测发现存在ssh

尝试登录ssh

成功用其中一组账号密码登录成功

VulnHub doubletrouble_第46张图片

进行提权

sudo提权

不具有sudo命令

SUID提权

SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

通过命令

find / -perm -4000 2>/dev/null查看是否具有root权限的命令

常见可用于提权root权限文件

nmap

vim

find

bash

more

less

nano

cp

awk

也不能利用

VulnHub doubletrouble_第47张图片

内核提权

搜索相应提权漏洞

发现可以用dirtycow漏洞提权

将提权代码复制到/root

再利用python上传文件

VulnHub doubletrouble_第48张图片

编译运行,运行成功后,就会新建一个firefart账号密码为执行时自己输入的密码,权限为root权限

VulnHub doubletrouble_第49张图片

使用firefart账号登录

VulnHub doubletrouble_第50张图片

如果是真实环境下,后续应该还要把原来的备份/tmp/passwd.bak文件复制回/etc/passwd,还原操作系统原来的用户账号

然后重新设置root账号密码

使用root账号登录

VulnHub doubletrouble_第51张图片

你可能感兴趣的:(web安全,安全)