当前位置: 首页 > news >正文

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

相关文章:

[Vulnhub靶机] DriftingBlues: 5

[Vulnhub靶机] DriftingBlues: 5靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/driftingblues/driftingblues5_vh.ova 靶机地址:192.168.67.24 攻击机地址:192.168.67.3 一、信息收集 …...

26 数字验证

效果演示 实现了一个简单的数字密码输入表单,用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码,用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…...

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴,适用于连续数据。 此时x轴数据是从零开始,有数据大小的区分。 【注意】 因为xAxis.data是为category服务的,所以xAxis.data里面设置的数据无效。 二、type: ‘ca…...

【代码随想录】刷题笔记Day47

前言 又过了个愉快的周末~大组会终于不用开了,理论上已经可以回家了!但是我多留学校几天吧,回家实在太无聊了,也没太多学习的氛围 198. 打家劫舍 - 力扣(LeetCode) dp[i]含义 考虑下标i(包括…...

6.1 截图工具HyperSnap6简介

图片是组成多媒体作品的基本元素之一,利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口,然后在画笔或者其它的图片处理软件中进行剪…...

stable diffusion 人物高级提示词(二)衣物、身材

一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙: 英文解释Formal Dress正式礼服,通常用于正式…...

外包做了1个月,技术退步一大半了。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

docker-compose常用命令及.yaml配置模板

1、docker-compose常用命令: docker-compose -f mysql-docker-compose.yaml up -d docker-compose -f mysql-docker-compose.yaml downdocker-compose的常用命令包括: docker-compose up:启动并运行Compose文件中的服务。 docker-compose st…...

工作随机:OEM(13.5)报错代理无法访问

文章目录 前言一、问题排查二、重启主机agent1.定位主机安装位置2.查看并启动agent3.OEM检查 前言 今早接到反馈,在客户部署的OEM(版本 13.5)监控失效,提示代理无法访问,无法访问的除了数据库以外还有主机都显示数据不…...

Pruning Papers

[ICML 2020] Rigging the Lottery: Making All Tickets Winners 整个训练过程中mask是动态的,有drop和grow两步,drop是根据权重绝对值的大小丢弃,grow是根据剩下激活的权重中梯度绝对值生长没有先prune再finetune/retrain的两阶段过程 Laye…...

C#COM对象的资源释放

在C#中使用COM对象时,由于COM对象遵循引用计数(Reference Counting)的管理方式,当COM对象的引用计数为0时,系统才会真正释放该COM对象所占用的资源。然而,在.NET环境下,CLR(Common L…...

了解Apache 配置与应用

本章内容 理解 Apache 连接保持 掌握 Apache 的访问控制 掌握 Apache 日志管理的方法 Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源、跨平台、功能 模块化、可灵活定制等诸多优点,不仅性能稳定,在安全性方面的表现也十分…...

悟的复杂度分析

复杂度分析: 时间复杂度(算法中的基本操作的执行次数); 空间复杂度。 时间复杂度: 实际上我们计算时间复杂度时,我们其实并不需要计算准确的执行次数,只需要大概的执行次数,因此我们…...

《网络是怎样连接的》2.5节图表(自用)

图5.1:ip包结构 图5.2:ip网络包的传输方式 1.以太网的部分也可以替换成其他的东西,例如无线局域网、ADSL、FTTH等,它们都可以替代以太网的角色帮助IP协议来传输网络包 2.根据ARP协议,客户端可以根据ip地址得到下一个路…...

java 音乐会售票平台系统Myeclipse开发mysql数据库struts2结构java编程计算机网页项目

一、源码特点 java 音乐会售票平台系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助struts2框架开发mvc模式,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发 环境为TOCAT7.0,Myeclipse8.5开发,数据…...

鸿蒙开发解决agconnect sdk not initialized. please call initialize()

文章目录 项目场景:问题描述原因分析:解决方案:总结:项目场景: 鸿蒙开发报错: agconnect sdk not initialized. please call initialize() 问题描述 报错内容为: 10-25 11:41:01.152 6076-16676 E A0c0d0/JSApp: app Log: 数据查询失败: {“code”:1100001,“messag…...

秋招阿里巴巴java笔试试题-精

一、单项选择题 1、以下函数的时间复杂度是 &#xff08; &#xff09; 1 2 3 4 5 6 7 8 9 void func(int x,int y, int z){ if(x<0) printf("%d, %d\n", y, z); else { func(x-1,y1,z); func(x-1,y,z1); } } A.O(x*y*z) B.O(x^2*y^2) C.O(2^x) D.O(2^x*…...

018、通用集合类型

Rust标准库包含了一系列非常有用的被称为集合的数据结构。大部分的数据结构都代表着某个特定的值&#xff0c;但集合却可以包含多个值。 与内置的数组与元组类型不同&#xff0c;这些集合将自己持有的数据存储在了堆上。这意味着数据的大小不需要在编译时确定&#xff0c;并且可…...

【Leetcode】236.二叉树的最近公共祖先

一、题目 1、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 示例1…...

C#,入门教程(11)——枚举(Enum)的基础知识和高级应用

上一篇&#xff1a; C#&#xff0c;入门教程(10)——常量、变量与命名规则的基础知识https://blog.csdn.net/beijinghorn/article/details/123913570 不会枚举&#xff0c;就不会编程&#xff01; 枚举 一个有组织的常量系列 比如&#xff1a;一个星期每一天的名字&#xf…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...