[Vulnhub靶机] DriftingBlues: 1

news/2025/3/15 18:58:44/

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

靶机下载地址:

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


靶机地址:192.168.67.20

攻击机地址:192.168.67.3


一、信息收集

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

arp-scan -I 指定网卡 -l

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

nmap -sV -O 靶机地址

        -sV        探测主机服务版本

        -O         识别主机操作系统

3.访问web网页,没有什么有用的信息(注意到介绍中存在两个邮箱地址,后面有用),查看网页源代码,发现一串base64加密值

4.将base64加密值进行解密得到 /noteforkingfish.txt 文件,访问该文件,发现大量 Ook! 编码

5.使用在线网站对 Ook! 编码进行解密,得到一串提示信息。通过对提示的分析,要求我们通过 hosts 文件的方式访问地址,此时需要一个域名(这里就需要上面提到的两个邮箱,两个邮箱都是同一个域名)driftingblues.box

Ook! 在线解码地址:Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]

6.将靶机ip地址以及对应的域名 driftingblues.box 写入 hosts 文件内,重新使用域名访问网站进行信息收集发现与之前收集到的信息一致

7.使用gobuster工具进行爆破,尝试爆破子域名,得到子域名test.driftingblues.box

gobuster dns -d "driftingblues.box" --wordlist /usr/share/wordlists/dirb/common.txt --no-error -z

        dns                        使用DNS枚举子域名(域名爆破模式)

        -d                           目标域(指定目标域名)

        --wordlist                字典列表的路径

        --no-error                不显示错误

        -z                            不显示进度

8.将子域名也加入到 hosts 表内,访问网页进行信息收集,发现页面没有什么有用的回显信息(注意页面经常出现的eric,后面ssh暴力破解时候用得到)

9.使用dirsearch工具扫描网站目录,发现robots.txt文件,访问该文件,获得 /ssh_cred.txt 文件

dirsearch -u 靶机URL

        -u        指定目标URL

10.访问 /ssh_cred.txt 文件,获得提示 1mw4ckyyucky 加任意一位数字组成密码,已经之前经常出现的用户名eric(一共就出现过两个名,eric和sheryl)

二、漏洞利用

 1.根据提示创建密码文件password.txt,使用 hydra 工具尝试进行ssh暴力破解,得到密码1mw4ckyyucky6

hydra -l eric -P password.txt 192.168.67.20 ssh

        -l                指定用户名

        -P              指定密码字典的路径

        ssh            用于暴力破解SSH服务器

2.使用用户名密码进行SSH远程登录,成功登录上线

三、提权

1.使用find命令寻找suid程序,尝试进行提权,没有发现可利用的漏洞程序(使用sudo运行命令提示无法运行)

2.换个思路找靶机内存在root权限执行的文件或者脚本,在查看/tmp目录时发现目录下存在备份文件,查看/var目录,果然有一个backups文件夹,查看文件夹里的文件内容,有一个备份文件脚本backup.sh,该文件执行的命令是root权限的

在Linux系统中,默认的备份文件路径通常是/var/backups。这个目录通常用来存放系统自动备份的文件,比如日志、配置文件等。不过需要注意的是,具体的备份路径可能会因不同的发行版和配置而有所不同。

3.查看backup.sh文件的内容,发现提示说有一个backdoor,且用sudo命令执行了/tmp/emergency文件。再次查看/tmp目录,发现没有emergency这个文件,我们可以自行创建

4.创建emergency文件,并向其中写入命令,给该文件执行命令。等待backup.sh执行,生成backdoor文件

echo "cp /bin/bash /tmp/backdoor;chmod +s /tmp/backdoor" > /tmp/emergency

chmod +x emergency

因为emergency文件依旧是eric用户创建的,我们需要一个root用户创建还拥有特殊权限的执行文件去执行提权命令。所以我们利用备份文件会以root权限执行/tmp/emergency文件的漏洞去创建一个backdoor文件(这个命名单纯是根据提示来创建的,可以随意创建一个喜欢的文件名),来执行提权命令,并给该文件赋予特殊权限。

赋予emergency文件执行权限是为了能让其执行写入命令。

5.发现成功生成backdoor文件,执行该文件,成功提权至root权限

./backdoor -p                提权命令

        -p        以root权限执行命令

此时的backdoor文件内的内容实际就是/bin/bash文件内的内容,且该文件为root用户创建,拥有SUID权限的文件,因此我们可以进行提权操作。但是由于Linux系统中出于安全考虑,普通用户无法直接提升为root用户,所以我们要加 "-p" 参数,可以实现以root权限执行命令


http://www.ppmy.cn/news/1340731.html

相关文章

【C++】C++入门 — 指针空值nullptr

C入门 指针空值 指针空值 在良好的C/C编程习惯中,声明一个变量时最好给该变量一个合适的初始值,否则可能会出现 不可预料的错误,比如未初始化的指针。如果一个指针没有合法的指向,我们基本都是按照如下 方式对其进行初始化: voi…

Rust学习之Features

Rust学习之Features 一 什么是 Features二 默认 feature三 简单的features应用示例四 可选(optional)的依赖五 依赖的特性5.1 在依赖表中指定5.2 在features表中指定 六 命令行中特性控制七 特性统一路径八 其它8.1 相互排斥特性8.2 观察启用特性8.3 Feature resolver version …

(安卓)跳转应用市场APP详情页的方式

前言 最近在做一个需求,需要从自己APP进入到系统的应用市场 方便用户在应用市场给自己的APP打分 于是查阅了一些资料,下面说一下实现方法 实现方案 一般来说,最简单的方案就是这样: val uri Uri.parse("market://details…

归并排序+非比较排序

Hello everyone!欢迎来到排序章节目前的“终章”——归并排序,经过了前面三种排序的敲打,尤其是快速排序,相信你一定可以闯过这最后一关! 归并排序 基本思想: 归并排序(MERGE-SORT)…

net 一台路由器如何让两个不同网段的终端可以通信。

# 终端设备自己设置就行了 # 路由器的设置 The device is running! #################################################### <Huawei> Feb 1 2024 21:21:09-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEt hernet0/0/0 has turned into UP state. <…

2024牛客寒假算法基础集训营1

H&#xff1a;01背包&#xff0c;但是bit 这题一看数据范围很大&#xff0c;重量和价值都是1e8级别的&#xff0c;当时还在想是不是背包&#xff0c;原来就是位运算 具体来说&#xff0c;我们枚举m的每一位为1的1&#xff0c;强制这一位为0&#xff0c;这样m被分为前后两部分…

基于数据挖掘的微博事件分析与可视化大屏分析系统

设计原理&#xff0c;是指一个系统的设计由来&#xff0c;其将需求合理拆解成功能&#xff0c;抽象的描述系统的模块&#xff0c;以模块下的功能。功能模块化后&#xff0c;变成可组合、可拆解的单元&#xff0c;在设计时&#xff0c;会将所有信息分解存储在各个表中&#xff0…

Java学习笔记(十一)——常用类

一、包装类 &#xff08;一&#xff09;包装类和基本数据类型的转换 ​编辑 &#xff08;二&#xff09;包装类型和String类型的相互转换 &#xff08;三&#xff09;Integer类和Character类的常用方法 二、String &#xff08;一&#xff09;创建String对象的两种方式 …