[Vulnhub靶机] DriftingBlues: 5

[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" 文件中。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#高级语法 Attribute特性详解和类型,方法,变量附加特性讲解

文章目录 前言相关资料Attribute特性个人原理理解特性的声明与使用类型特性运行结果: 找到类的Attribute属性方法特性和变量特性代码封装测试类TestService1TestService2TestService3 测试代码运行结果 对封装的代码进行优化封装代码测试代码运行结果(和…

C#,入门教程(13)——字符(char)及字符串(string)的基础知识

上一篇: C#,入门教程(12)——数组及数组使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123918227 字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一!!!!! C#语言实…

POSIX API与网络协议栈

本文介绍linux中与tcp网络通信相关的POSIX API,在每次调用的时候,网络协议栈会进行的操作与记录。 POSIX API Posix API,提供了统一的接口,使程序能得以在不同的系统上运行。简单来说不同的操作系统进行同一个活动,比…

浅析ARMv8体系结构:A64指令集

文章目录 A64指令编码格式加载与存储指令寻址模式变基模式前变基模式后变基模式 PC相对地址模式 伪指令加载与存储指令的变种不同位宽的加载与存储指令多字节内存加载和存储指令基地址偏移量模式前变基模式后变基模式 跳转指令返回指令比较并跳转指令 其它指令内存独占访问指令…

资产信息管理系统-前后端开发

题目要求: 资产管理系统 利用H5规范,CSS样式与JS脚本独立于HTML页面,Javascript调用jQuery库,CRUD后端使用FastAPI封装,前端页面在Nginx中运行,调用API模块, 实现CURD的课设总结 基本设计&am…

增强Wi-Fi信号的10种方法,值得去尝试

Wi-Fi信号丢失,无线盲区。在一个对一些人来说,上网和呼吸一样必要的世界里,这些问题中的每一个都令人抓狂。 如果你觉得你的Wi-Fi变得迟钝,有很多工具可以用来测试你的互联网速度。你还可以尝试一些技巧来解决网络问题。然而,如果你能获得良好接收的唯一方法是站在无线路…

nginx部署前端项目自动化脚本

文章目录 配置入口服务器nginx的conf.d使用docker创建一个nginx配置自动化脚本 前言 将项目 通过nginx 部署到 新的服务器 通过nginx反向代理出去 配置入口服务器nginx的conf.d 一般在这个文件夹下 找不到使用 find / -name nginx 2>/dev/null 找到nginx 的位置如果有些没有…

PostGIS教程学习十九:基于索引的聚簇

PostGIS教程学习十九:基于索引的聚簇 数据库只能以从磁盘获取信息的速度检索信息。小型数据库将完全位于于RAM缓存(内存),并摆脱物理磁盘访问速度慢的限制。但是对于大型数据库,对物理磁盘的访问将限制数据库的信息检…

正则表达式的语法

如果要想灵活的运用正则表达式,必须了解其中各种元素字符的功能,元字符从功能上大致分为: 限定符 选择匹配符 分组组合和反向引用符 特殊字符 字符匹配符 定位符 我们先说一下元字符的转义号 元字符(Metacharacter)-转义号 \\ \\ 符号…

【Matplotlib】基础设置之图形组合07

figures, subplots, axes 和 ticks 对象 figures, axes 和 ticks 的关系 这些对象的关系可以用下面的图来表示: 示例图像: 具体结构: figure 对象 figure 对象是最外层的绘图单位,默认是以 1 开始编号(MATLAB 风格…

Mysql 数据库ERROR 1820 (HY000): You must reset your password using ALTER USER 解决办法

Mysql 5.7数据库原来一直都能正常访问,突然访问不了,查看日志提示数据库需要修改密码, 具体解决办法如下操作: Windows 下: mysql的bin目录下, mysql>use mysql; mysql>mysql -uroot -p密码; 判…

[前车之鉴] SpringBoot原生使用Hikari数据连接池升级到动态多数据源的深坑解决方案 RocketMQ吞掉异常问题排查

文章目录 背景说明蒙蔽双眼口说无凭修补引发的新问题解决配置问题 本地监控佐证万法归元 背景说明 当前业务场景我们使用原生SpringBoot整合Hikari数据源连接池提供服务,但是近期业务迭代需要使用动态多数据源,很自然想到dynamic-source,结果…

windows下全免费手动搭建php8+mysql8开发环境及可视化工具安装

最近PHP项目少了,一直在研究UE5和Golang,但是考虑到政府、国企未来几年国产化的要求,可能又要重拾PHP。于是近日把用了N年的框架重新更新至适合PHP8.2以上的版本,同时也乘着新装机,再次搭建php和mysql开发环境。本文留…

Java18:网络编程

一.对象序列化: 1.对象流: ObjectInputStream 和 ObjectOutputStream 2.作用: ObjectOutputSteam:内存中的对象-->存储中的文件,通过网络传输出去 ObjectInputStream:存储中的文件,通过网络传输出去…

LeetCode-数组-双指针-中等难度

文章目录 双指针1. 删除有序数组中的重复项(入门)1.1 题目描述1.2 解题思路1.3 代码实现 2. 删除有序数组中的重复项 II(简单)2.1 题目描述2.2 解题思路2.3 代码实现 3. 移动零(简单)3.1 题目描述3.2 代码实…

SpringCloud系列篇:核心组件之网关组件

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.网关组件是什么 二. 网关组件的…

The Sandbox 2024 Game Jam 启动|向博姆库斯博士证明你的游戏开发实力!

The Sandbox Game Jam 是面向所有游戏制作爱好者的创作比赛!我们诚邀您加入 The Sandbox 的生态系统,这里充满活力,游戏与文化相融,创作者彼此切磋,共同实现梦想。唯一能限制您的只有想象力。The Sandbox 游戏由大家共…

控制台项目和ASP.Net Core 1.项目创建 2.一键启动多个服务 3.引入别的库

感悟: 1.注意选择:.NET/.Net Core下面的控制台或者ASP.NET Core web应用,而且只有.net core的项目是跨平台的,选错的话,是无法发布到linux上的。 2.c#的命名空间和java包的区别: c#中是按照包来的&#x…

使用Django框架自带的Form表单完成简单的用户登录注册

如果不知道怎么配置Django环境以及如何连接数据库请点击我的上一篇博客: 使用pycharm初始化Django框架并连接Sql Server 文章目录 1.Django默认生成的数据表2.用户登录2.1创建登录页面2.2视图处理登录请求2.3配置访问路径 3.用户注册3.1创建用户表单3.2创建注册模版…

linux系统基础知识-基础IO

IO 概念引入位图的概念IO的系统调用函数openwriteread()close简单使用样例: 文件描述符fd默认文件流stdin/stdout/stderr文件描述符的分配规则 重定向的概念输出重定向输入重定向追加重定向dup2()系统调用总结 文件缓冲区深入理解缓冲区的概念输出缓冲区部分代码解释…