[Vulnhub靶机] DriftingBlues: 5

news2024/11/24 10:03:05

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

靶机下载地址:

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


靶机地址:192.168.67.24

攻击机地址:192.168.67.3


一、信息收集

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

arp-scan -I 指定网卡 -l

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

nmap -sV -O 靶机地址

        -sV        探测主机服务版本

        -O         识别主机操作系统

3.访问网站,发现网站提示是WordPress网站,通过插件也可以查看出该网站是WordPress网站,通过查看分析,没有发现什么其他有用的信息

WordPress是一个免费开源的内容管理系统(CMS),最初是为博客而设计的,但随着时间的推移,它已经发展成一个功能强大且灵活的网站建设工具

4.使用dirsearch工具扫描网站目录,发现了大量的可访问的目录和文件,其中包括WordPress网站的登录页面 /wp-login.php

dirsearch -u 靶机URL

        -u        指定目标URL

5. 尝试使用 wpscan 工具对登录使用的用户名进行爆破,枚举出五个用户名,将用户名写入usernames.txt 内

wpscan --url http://driftingblues.box/blog --enumerate u

        --url                        目标URL

        --enumerate           enumerate参数指定u,枚举站点用户名

6.本想利用kali内自带的字典继续爆破密码,但是发现爆破不成功。利用 cewl 工具爬取网站的字典,将爬取的密码写入到passwords.txt文件

cewl -m 5 -w pass.txt 目标URL

        -m        用于指定最终生成字典中字符最小长度,只有超过指定长度才会记录到字典中

        -w        将爬取到的字符串写入到指定文档

7.继续利用 wpscan 工具及已经获得的用户和密码字典进行爆破,获得登录使用的用户的密码(gill / interchangeable)

wpscan --url http://192.168.67.24/ -U usernames.txt -P passwords.txt

        --url                        目标URL

        -U                           指定用户字典

        -P                           指定密码字典


二、漏洞利用

1.利用得到的账户密码进行登录,本想尝试向网站内写入木马,可惜发现没有权限。在 Media 界面内发现一张在主页没有的图片,比较可疑,点击后发现图片文件URL,下载下来进行查看

2.使用 wget 命令下载图片文件(其实该图片文件存放的目录早在使用 dirsearch 工具对目录进行扫描时就已经发现了,并且可以访问,但是当时没有注意到该图片)

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

3.使用 exiftool 工具对文件的EXIF信息进行解析,发现了图片内隐藏的提示信息,使用 ssh 登录的密码 59583hello

EXIF信息,是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。EXIF可以附加于JPEG、TIFF、RIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。

三、远程登录

1.利用得到的用户字典以及密码,使用 hydra 工具尝试暴力破解ssh服务,得到用户名/密码(gill / 59583hello)

hydra -L usernames.txt -p 59583hello 192.168.67.24 ssh

        -L              指定用户字典的路径

        -p              指定密码

        ssh            用于暴力破解SSH服务器

2.使用得到用户名密码进行 ssh 远程连接,成功登录

四、提权

1.使用命查找具有特殊权限的文件,但是没发现什么可以利用的点。但在成功登录后习惯性使用 ls 命令时查看到当前目录下的文件,发现一个后缀问 kdbx 的文件,文件名为 keyfile.kdbx 且该文件所有者为 gill 用户

.kdbx文件是一种密码管理器数据库文件的后缀。KeePass是一款流行的开源密码管理器,它使用.kdbx文件格式来存储用户的登录凭据、密码和其他敏感信息。这种文件格式采用加密算法保护数据的安全性,确保只有授权的用户可以访问其中的内容。通过KeePass软件或与其兼容的密码管理工具,用户可以打开、编辑和管理.kdbx文件中的密码和其他敏感数据。

2.使用 scp 命令将 keyfile.kdbx 文件下载到攻击机

从 远程 复制到 本地

scp 用户名@ip地址:远程文件路径 本地文件路径

3.使用 keepass2john 工具将 keyfile.kdbx 文件中密码的哈希值导入到 hash.txt 文件中,然后使用 john 工具爆破哈希值,得到密码 porsiempre

keepass2john KeePass数据库文件(.kdbx)> hash文件名

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

keepass2john是一个密码破解工具,用于将KeePass数据库文件(.kdbx)转换为john the ripper密码破解工具可识别的格式。KeePass数据库文件是经过加密的,其中包含用户的登录凭据和密码等敏感信息。使用keepass2john工具,可以将.kdbx文件转换为john the ripper工具支持的.hash格式,以便进行密码破解尝试。

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

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

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

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

4.利用得到的密码尝试登录root用户,发现登录失败。尝试利用得到的密码打开 keyfile.kdbx 文件,打开后得到了6个名字很像密码的密钥文件,但依旧无法登录root用户

KeeWeb官方网站:KeeWeb

5.使用 scp 命令将 papy 工具上传到靶机

从 本地 复制到 远程

scp 本地文件路径 用户名@ip地址:远程文件路径

6.给 pspy 工具可执行的权限,使用 pspy 工具进行监听,查看系统定时任务中有没有可疑的程序。发现 root 目录下有一个 key.sh 脚本每分钟自动执行,但是该程序的内容我们无法查看,

pspy工具地址:GitHub - DominicBreuker/pspy: Monitor linux processes without root permissions

pspy 是一款用于监视 Linux 进程活动的轻量级工具。它能够监视系统上的进程,并记录有关这些进程活动的信息,如创建时间、执行命令、进程所有者等。

7.使用 scp 命令将 linpeas.sh 工具上传到靶机

8.给 linpeas.sh 工具可执行的权限,使用 linpeas.sh 工具对靶机进扫描和分析,发现了一个比较特殊的目录文件 /keyfolder ,对其进行查看后也没有发现什么

linpeas.sh工具地址:GitHub - BRU1S3R/linpeas.sh

linpeas.sh工具是一款用于 Linux 系统的自动化安全审计和特权升级脚本工具。

linpeas.sh 脚本工具会对系统进行全面的扫描和分析,检查各种方面的安全设置和配置,包括文件权限、SUID/SGID 文件、系统服务、环境变量、计划任务、用户账户、网络连接等等。它还会检测常见的漏洞和攻击痕迹,并提供了漏洞修复和加固建议。

9.根据命名,猜测 /keyfolder 目录作为储存密码/密钥的目录文件,而 key.sh 脚本将密码/密钥写入到了之前我们发现在KeeWeb中查看得到的6个密码/密钥文件中。

我们尝试将6个文件名写入到 /keyfolder 目录中,创建后等了好一会,发现同时创建好像不行,删掉,一个一个创建。在创建 fracturedocean 文件等了一会后,发现多出了一个 rootcreds.txt 文件,查看该文件的内容,得到了root用户的密码 imjustdrifting31

10.使用 su 命令切换到root用户,输入密码后成功提权至root权限(该靶机root用户好像无法直接ssh登录,可能做了限制)

其他

提权至root权限后,我们终于可以查看 key.sh 文件,查看一下 key.sh 脚本到底执行了什么

查看后我们发现该脚本是一个bash脚本

这段代码使用了 ls 命令来列出 /keyfolder 目录中的所有文件,并将结果与字符串 fracturedocean 进行比较。如果存在一个名为 fracturedocean 的文件(因为是查看 /keyfolder 目录,所以该目录下只能有 fracturedocean 文件),则条件为真,if 语句块中的命令将会被执行。在这个例子中,if 语句块中有三个命令,分别是将 "root creds"、空行和 "imjustdrifting31" 写入 "/keyfolder/rootcreds.txt" 文件中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程基础入门【Linux之旅】——下篇【死锁,条件变量,生产消费者模型,信号量】

目录 一,死锁 1. 死锁的必要条件 2,避免死锁 二,条件变量 同步概念与竞态条件 条件变量——初始化 静态初始化 动态初始化 pthread_cond_destroy (销毁) pthread_cond_wait (等待条件满足) pthread_cond_signal (唤醒线程) ph…

@PolarDB,你的动手体验搭子,来啦

前言 PolarDB是阿里云自研的新一代云原生数据库,在计算存储分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。100%兼容MySQL和PostgreSQL生态,高度兼容Oracle语法。 1月17日…

Linux下进程控制

文章目录 创建进程fork创建进程fork返回值写诗拷贝fork常规用法fork失败的原因 进程终止进程正常终止查看进程退出码_exit函数exit函数exit 和 _exit 的区别return退出 进程等待进程等待的方式wait方法(系统调用)waitpid方法(系统调用) WEXITSTATUS 和 WIFEXITED阻塞等待和非阻…

vue无法获取dom

处理过程 watch监听值变化 index.js:33 [Vue warn]: Error in callback for watcher "$store.state.modelsStorageUrl": "TypeError: Cannot set properties of undefined (setting modelScene)"watch: {"$store.state.modelsStorageUrl":{ha…

24上半年教师资格证笔试报名全流程✅

🕐考试时间安排 (一)报名时间: 2024年1月12日9:30至15日16:00 (二)缴费时间: 2024年1月17日24:00 (三)考试时间: 2024年3月9日星期六 (四&#xf…

上网行为管理到底是什么!

之前经常听过上网行为管理系统,那这个系统到底是什么,还真不是很清楚!今天仔细查了很多资料,分享给大家: 上网行为管理是指一种帮助互联网用户控制和管理对互联网的使用,包括对网页访问过滤、上网隐私保护…

vue3 useAttrs的使用场景,提取共有props

1 场景 多个类似组件都需要传参data,用于请求接口或者处理数据,想让组件干净整洁,把参数data提出来 2 方法 选项式 可以使用mixin混入或者extends继承(略) 组合式 可以使用hook 无脑式踩坑(如下代码…

SwiftUI之深入解析Alignment Guides的超实用实战教程

一、Alignment Guide 简介 Alignment guides 是一个强大的布局工具,但通常未被充分利用。在很多情况下,它们可以帮助我们避免更复杂的选项,比如锚点偏好。如下所示,对对齐的更改也可以自动(并且容易地)动画…

Python书籍推荐,建议收藏

学习Python的书籍可太多了,从入门到放弃,应有尽有啊 入门书籍 根据豆瓣评分的高低,这里介绍了一些经典入门书籍,大家根据自身情况选择尝试 《Python编程:从入门到实践(第二版)》 非常经典且非…

【python】TCP测速程序

一、服务端 下面是一个简单的 Python 服务端程序的示例,使用标准库中的 socket 模块来建立一个 TCP 服务器。该服务器接收客户端的连接请求,客户端发送一定大小的数据流以测试 TCP 带宽。 实际场景中带宽测试可能需要更复杂的逻辑来确保测试的准确性。 …

Android AAudio

文章目录 基本概念启用流程基本流程HAL层对接数据流计时模型调试 基本概念 AAudio 是 Android 8.0 版本中引入的一种音频 API。 AAudio 提供了一个低延迟数据路径。在 EXCLUSIVE 模式下,使用该功能可将客户端应用代码直接写入与 ALSA 驱动程序共享的内存映射缓冲区…

基于springboot在线考试系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合,利用java技术建设在线考试系统,实现在线考试的信息化。则对于进一步提高在线考试管理发展,丰富在线考试管理经验能起到不少的促进作用。 在线考试系统能够通过互…

前端实现截图并下载

原理: 使用一个名为html2canvas的JavaScript库。这个库允许你将当前的HTML内容渲染到一个canvas元素上,然后将其转换为图像并进行下载。 你需要在项目中引入html2canvas库。你可以从官方网站(https://html2canvas.hertzen.com/)下载&#xf…

编译原理期末大题步骤——例题

一、预测分析方法步骤 提取左公因子,消除左递归判断文法是否为LL(1)文法若是,构造预测分析表;否则,不能进行分析。根据预测分析表对输入串进行分析 例子: 文法G[E]: …

selenium python 实现基本自动化测试的示例代码

安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回…

如何克隆驱动器,不同的操作系统有不同的推荐软件

你需要将Windows或macOS安装迁移到新驱动器吗?你可以使用服务备份文件,也可以创建数据的完整一对一副本。通过克隆你的驱动器,你可以创建一个精确的副本。 一些业务级别的备份服务,如IDrive和Acronis,具有内置的磁盘克隆功能,是对正常文件备份的补充。但对于一次性克隆(…

BitMap解析(一)

文章目录 前言数据结构添加与删除操作 JDK中BitSet源码解析重要成员属性初始化添加数据清除数据获取数据size和length方法集合操作:与、或、异或 前言 为什么称为bitmap? bitmap不仅仅存储介质以及数据结构不同于hashmap,存储的key和value也…

在python里面探索web框架

一、常识性知识 python Web框架三巨头:Flask(简单易学)、Django(复杂庞大)、FastAPI 1. Django:Django是一个高级的Web框架,它提供了强大的功能和工具,用于快速开发复杂的Web应用程序。 2. Flask&#xff…

海外社媒运营为什么需要选择优质IP代理?

跨境电商卖家尤其需要关注海外社媒运营,想要更好地运营Instagram、Facebook、TikTok 或 Twitter等,挖掘社媒潜力需要采取战略方法,而社交媒体IP代理在这一活动中发挥着至关重要的作用,下面为你详细介绍。 一、社交媒体代理IP及其运…

新年喝酒有讲究,怎么喝葡萄酒呢?

中国的新年有着独特又深远的意义,无论人在天涯海角,回家团圆是每个人的心愿。新年亲朋好友欢聚一堂,没有酒哪有气氛,所以喝酒是必不可少的活动项目。云仓酒庄的品牌雷盛红酒LEESON分享那么,新年喝啥酒,葡萄…