当前位置: 首页 > 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…...

java SSM水质历史数据可视化设计myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM水质历史数据可视化设计是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主…...

C++推箱子游戏开发

游戏 自动地图生成背景音乐推箱子到目标位置 美工资源 美工资源&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1MZv8pDBXdNDbXxuAAPSM-A **提取码&#xff1a;**2syq 图形库: www.easyx.cn cpp文件 #include "box_man.h" #include <conio.h> #…...

Kotlin函数式接口

函数式接口 接口只有一个抽象方法的接口&#xff0c;称为 函数式接口 functional interface&#xff0c;也叫做 Single Abstract Method(SAM) interface。 注&#xff1a;函数式接口&#xff0c;只有一个抽象方法&#xff0c;但可以有多个非抽象方法。 一、Kotlin Kotlin支持…...

2024年1月9日学习总结

目录 学习目标学习内容联邦学习基础&#xff1a;why, what, howwhy&#xff1f;what&#xff1f;how&#xff1f; 联邦学习的例子——CIFAR-10数据集&#xff08;分类问题&#xff09;1、import libararies2、hyper-parameters3、加载并且划分数据4、创建神经网络模型5、helper…...

Nacos使用MySQL8时区问题导致启动失败

文章目录 配置下mysql的时区方式一 (永久)方式二&#xff08;临时&#xff09; 由于mysql8需要配置时区&#xff0c;如果不配置时区&#xff0c;nacos就连不上mysql&#xff0c;从而也就无法登录nacos自带的图形化界面 配置下mysql的时区 方式一 (永久) 直接修改配置文件&…...

在k8s集群中部署多nginx-ingress

关于ingress的介绍&#xff0c;前面已经详细讲过了&#xff0c;参考ingress-nginx详解和部署方案。本案例ingress的部署使用deploymentLB的方式。 参考链接&#xff1a; 多个ingress部署 文章目录 1. 下载ingress的文件2. 文件资源分析3. 部署ingress3.1 部署第一套ingress3.1…...

SLF4J Spring Boot日志框架

JAVA日志框架 JAVA有好多优秀的日志框架&#xff0c;比如log4j、log4j2、logback、JUL&#xff08;java.util.logging&#xff09;、JCL&#xff08;JAVA Common Logging&#xff09;等等&#xff0c;logback是后起之秀&#xff0c;是Spring Boot默认日志框架。 今天文章的目…...

mysql之导入导出远程备份

文章目录 一、navicat导入导出二、mysqldump命令导入导出2.1导出2.1.1 导出表数据和表结构2.1.2 只导出表结构() 2.2 导入(使用mysqldump导入 包含t _log表的整个数据库 共耗时 20s;)方法一&#xff1a;方法二&#xff1a; 三、LOAD DATA INFILE命令导入导出(只针对单表)设置导…...

Java虚拟机ART 读书笔记 第2章 深入理解Class文件格式

GitHub - Omooo/Android-Notes: ✨✨✨这有一包小鱼干&#xff0c;确定不要吃嘛&#xff1f;( 逃 深入理解Android&#xff1a;Java虚拟机ART 读书笔记 以下内容均来自书中内容 建议看原书哦 第2章 深入理解Class文件格式 2.1 class文件总览 Class文件格式全貌 u4&#xff…...

编程基础 - 初识Linux

编程基础 - 初识Linux 返回序言及专栏目录 文章目录 编程基础 - 初识Linux前言一、Linux发展简介二、现代Linux三、Linux系统各发行版小结 前言 为什么要学习Linux呢&#xff1f;我这Windows用得好好的&#xff0c;简单易用傻瓜式、用的人还超多&#xff01;但是我要告诉你的…...

南宁网站推广哪家好/网络推广好做吗多少钱

malloc 描述 C 库函数 void *malloc(size_t size) 分配所需的内存空间&#xff0c;并返回一个指向它的指针。 声明 下面是 malloc() 函数的声明。 void *malloc(size_t size) 参数 size – 内存块的大小&#xff0c;以字节为单位。 返回值 该函数返回一个指针 &#xf…...

西安网站制作的公司/在百度平台如何做营销

1. 从CSV中读取数据 从CSV文件中读取数据有很多种方法&#xff0c;下面是常见的几种&#xff1a; 直接读取文件使用CSV模块使用numpy模块使用pandas模块 在本章中&#xff0c;我们使用pandas模块来读取和过滤CSV数据。此外&#xff0c;你还将学会如何通过命令行选项将数据文件…...

c2c代表网站是什么/在线代理浏览国外网站

1.盒子模型 对盒子模型的理解标准盒子模型和怪异盒子模型的区别和使用场景2.position position的属性有哪些releative&#xff0c;absolute, fixed三者的区别以及使用场景&#xff08;重点在releative和absolute是如何配合使用的&#xff0c;使用时候的注意点在哪里&#xff09…...

网站建设服务器价格/淘宝的关键词排名怎么查

在使用library自定义属性时&#xff0c;命名空间URI需要使用http://schemas.android.com/apk/res-auto&#xff0c;在编译时&#xff0c;URI会自动替换为当前app的package名。下面是使用support lib 的属性的例子<android.support.v4.widget.DrawerLayout android:id&quo…...

重庆门户网站/成都专门做网络推广的公司

一直以来我都觉得写程序创建一个窗口&#xff0c;添加些按钮&#xff0c;显示些会变化的文字是十分神奇的事。但是又懒又笨&#xff0c;一直没学会。最近开始考虑做一个观测模拟系统&#xff0c;模拟一个射电天文望远镜的控制界面。这种东西每个望远镜都由&#xff0c;估计代码…...

枣强网站建设代理/外贸营销平台

Hanlp在离线环境下的安装我是没有尝试过的&#xff0c;分享SunJW_2017的这篇文章就是关于如何在离线环境下安装hanlp的。我们可以一起来学习一下&#xff01;HanLP是一款优秀的中文自然语言处理工具&#xff0c;可以实现包括分词、词性标注、实体识别在内容诸多功能&#xff0c…...