DriftingBlues: 1渗透测试
靶机:DriftingBlues: 1 DriftingBlues: 1 ~ VulnHub
https://www.vulnhub.com/entry/driftingblues-1,625/
攻击机:kail linux 2024
1,将两台虚拟机网络连接都改为NAT模式,并查看靶机的MAC地址

2,攻击机上做主机扫描发现靶机

靶机IP地址192.168.23.136,攻击机IP地址192.168.23.128
3,对靶机做更精细的扫描

22/tcp open ssh OpenSSH 7.2p2
80/tcp open http Apache httpd 2.4.18
4,访问web网页,查看页面源码发现一串base64编码

L25vdGVmb3JraW5nZmlzaC50eHQ=解码得到/noteforkingfish.txt
5,访问192.168.23.136/noteforkingfish.txt

6,访问该文件,发现大量 Ook! 编码,解码之
Ook! 在线解码地址:Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]
解码得到:
my man, i know you are new but you should know how to use host file to reach our secret location. -eric
7,得到一串提示信息。通过对提示的分析,要求通过hosts文件的方式访问地址,此时需要一个域名(这里就需要上面提到的两个邮箱,两个邮箱都是同一个域名)driftingblues.box

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

9,使用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 不显示进度

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

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

11,访问 /ssh_cred.txt 文件得到一个密码,用于ssh登录
获得提示:1mw4ckyyucky需要最后一位加一个数字才真的密码,这样的话就有十种可能
12,直接编写十种可能的密码,用户名eric,再利用工具爆破
hydra -l eric -P password.txt 192.168.23.136 ssh
-l 指定用户名
-P 指定密码字典的路径
ssh 用于暴力破解SSH服务器

如此得到账户/密码:eric/ 1mw4ckyyucky6
13,使用得到的账户密码进行登录

使用ls命令,查看一下当前目录下有啥文件 发现了 user.txt找到了第一个FLAG。

14,接下来的思路就是提权,使用find命令寻找suid程序,尝试进行提权,没有发现可利用的漏洞程序
find / -perm -4000 2>/dev/null

使用sudo运行命令提示无法运行

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

在Linux系统中,默认的备份文件路径通常是/var/backups。这个目录通常用来存放系统自动备份的文件,比如日志、配置文件等。不过需要注意的是,具体的备份路径可能会因不同的发行版和配置而有所不同。
16,查看backup.sh文件的内容,发现提示说有一个backdoor,且用sudo命令执行了/tmp/emergency文件。

17,再次查看/tmp目录,发现没有emergency这个文件,我们可以自行创建

18,创建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文件执行权限是为了能让其执行写入命令。
19,发现成功生成backdoor文件,执行该文件,成功提权至root权限
./backdoor -p 提权命令
-p 以root权限执行命令

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

总结:
1.多注意网页源代码 思路不能只限于扫描后台
2.学习了Gobuster工具的使用(第一次用)
3.了解了一些编码ok码 或者base64 等
4.学会结合脚本给的提示 利用sudo 提权
声明:部分内容来自于网络,如有侵权联系删除
相关文章:
DriftingBlues: 1渗透测试
靶机:DriftingBlues: 1 DriftingBlues: 1 ~ VulnHubhttps://www.vulnhub.com/entry/driftingblues-1,625/ 攻击机:kail linux 2024 1,将两台虚拟机网络连接都改为NAT模式,并查看靶机的MAC地址 2,攻击机上做主机扫描发现靶机 靶机I…...
分类算法——决策树 详解
决策树的底层原理 决策树是一种常用的分类和回归算法,其基本原理是通过一系列的简单决策,将数据集划分为多个子集,从而实现分类。决策树的核心思想是通过树形结构表示决策过程,节点代表特征,边代表决策,叶子…...
C# 编程基础:深入解析构造函数与析构函数
在C#中,构造函数和析构函数是特殊的成员函数,它们分别在对象创建和销毁时自动调用。 构造函数 构造函数是一个在创建对象时自动调用的特殊方法,用于初始化对象的状态。它可以有参数,也可以没有参数。一个类可以有一个或多个构造…...
中国大学慕课视频资源分析
右键查看视频信息 关注点在 urls 这个参数,仔细分析就会发现其实是由若干个.ts拓展名和一个.m3u8拓展名的视频文件,每一个.ts视频文件的时长在10秒钟左右。 中国大学MOOC将课程的视频文件拆分成若干个这样的.ts片段,并且用.m3u8记录这些片段…...
简单的kafkaredis学习之redis
简单的kafka&redis学习之redis 2. Redis 2.1 什么是Redis Redis是一种面向 “Key-Value” 数据类型的内存数据库,可以满足我们对海量数据的快速读写需求,Redis是一个 NoSQL 数据库,NoSQL的全称是not only sql,不仅仅是SQL&…...
前端性能优化全攻略:提升用户体验,加速页面加载
在当今互联网时代,用户对于网页的加载速度和性能要求越来越高。快速响应的网页不仅能提升用户体验,还能提高网站的搜索引擎排名和转化率。因此,前端性能优化成为了前端开发中至关重要的一环。本文将深入探讨前端性能优化的原则、方法以及如何…...
手机玩亚托莉:我挚爱的时光!手机推gal、躺床玩漫改gal教程
亚托莉:我挚爱的时光是一款视觉与情感交织的好游戏 。游戏背景设定在因为不明原因导致全球海平面上升之后的未来,在全球大多数地方都被海洋淹没城市才是相对环境的情况下,在一场事故失去了一条腿的男主斑鸠夏生却选择了放弃城市,转…...
metasploit/modules/evasion 有哪些模块,以及具体使用案例
Metasploit框架的evasion模块用于生成绕过安全检测的有效载荷。以下是一些常见的evasion模块及其使用案例: 1. 通用Evasion模块 windows/meterpreter/reverse_tcp_rc4:使用RC4加密的反向TCP Meterpreter会话。 set PAYLOAD windows/meterpreter/reverse…...
网络安全入门文档-虚拟机配置篇
前言 虚拟机作为网络安全渗透测试中常见的工具。通常被用来安装kali系统 简单解释一下,目前操作系统分为三类 windows、linux、mac linux又有两个小类,分别是RedHat、Debian 而我们要安装的kali就是基于Debian的操作系统。 简单来说。虚拟机和系统是两个…...
class 041 最大公约数、同余原理
1. 辗转相除法 对下面的证明过程有什么问题和怀疑的直接随便找两个数字自己写一遍就行了. 1.1 利用辗转相除法计算最大公约数 直接记忆这段代码公式就行了(具体的证明过程直接去看左程云老师写的就行了). public static long gcd(long a, long b) { // Greatest Common Di…...
token的创建与解析,并配合拦截器使用
场景: 进行web应用开发时,往往需要对当前用户进行身份判断,此时可以使用token技术 1.导入依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-impl</artifactId><scope>runtime<…...
Oracle 数据库历史备份数据恢复验证
Oracle ASM 管理的数据库历史备份数据恢复至单实例数据库 简介: 验证 ASM 管理的数据库的历史备份恢复至单实例数据库(主要目的在于验证历史备份是否可用的一次恢复演练) 一、恢复演练系统选择 根据数据库情况选择恢复测试的环境。 此次恢…...
【网络面积篇】TCP断开连接(笔记)
目录 一. 四次挥手 (1)过程描述 (2)为什么是四次挥手? 二、相关问题 1. 第一次挥手丢失了,会发生什么? 2. 第二次挥手丢失了,会发生什么? 补充:close …...
下跌多少才能涨回来?
文章目录 上涨下跌函数关系函数图形数学分析 上涨下跌函数关系 最近炒股很热,对于股票来说,有个很重要的参数涨跌幅,那么下跌多少才能涨回来?这个不需要太深的知识就可以计算出来,下跌和上涨不是等价的,下跌…...
【AAOS】【源码分析】CarSystemUI -- CarSystemBar
CarSystemBar不像Android手机那样固定的顶部“状态栏”和底部“导航栏”,而是将StatusBar和NavigationBar都统称为SystemBar,可以通过如下配置为每侧最多配置一个“系统栏”。 packages/apps/Car/SystemUI/res/values/config.xml<!-- Configure which system bars should …...
[供应链] 邀请招标
1.邀请招标定义 邀请招标(Invitation to Bid by Request) 也称为有限竞争性招标(limited Competitive Bidding)或选择性招标(Selected Bidding) 邀请招标的采购方式下,采购人(如政府机构、企业或其他组织)不是公开发布招标信息,而是根据供应商或承包商…...
VS2017+Qt5.12.9+CMake3.30.2编译VTK 9.2.0
一.准备工作 vs2017,QT,Cmake自行下载准备, VTK下载地址 1.官网下载 2.github下载 二.编译VTK源码 1.个人习惯创建以下目录,一个源码目录,Build为vs解决方案输出目录和编译输出以及中间生成文件目录 2.cmake基础…...
Java线程CPU占用过高如何排查?
使用ps命令查看java进程详细信息: ps aux | grep java使用top命令查看系统进程占用情况 top使用jstack命令导出Java进程的堆栈信息 jstack pid | grep tid -A 10 "java.lang.Thread.State" > gc.log找出占用cpu最高的线程id: top -Hp -d 1 …...
uniapp推送配置流程
Dcloud Dcloud注册账号 个推 了解即可 注册个推账号 ios配置流程 需配置含有推送的描述文件以及p8证书 配置推送证书 ios证书配置报技术错误(参数错误) TeamID-苹果开发者账号唯一的ID 安卓需配置多厂商 小米手机需要配置小米厂商 华为手机则需…...
qt QPicture详解
1、概述 QPicture类是Qt框架中的一个重要图形类,它主要用于记录和回放QPainter的绘图指令。这个类能够跨平台、无分辨率依赖地绘制图形,非常适合用于实现打印预览和图像操作等场景。QPicture可以将绘图操作序列化为一种独立于平台的格式,保存…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
「Java基本语法」变量的使用
变量定义 变量是程序中存储数据的容器,用于保存可变的数据值。在Java中,变量必须先声明后使用,声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例:声明与初始化 public class VariableDemo {publi…...
高保真组件库:开关
一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...
