基于Mysql的UDF提权(Windows系统)1
【实验目的】
通过本实验理解如何通过webshell结合dll文件对Windows系统进行UDF提权,掌握UDF提权的基本思路,熟悉UDF提权的主要方法。
【实验环境】
攻击机:Win2008-att
用户名college,密码360College
webshell脚本:dama.php
udf提权脚本:udf.php
目标靶机:Win2003-DVWA
用户名college,密码360College
【实验原理】
UDF(用户定义函数)是一类对MYSQL服务器功能进行扩充的代码,通常是用C(或C++)写的。通过添加新函数,性质就像使用本地MYSQL函数abs()或concat()。当你需要扩展MYSQL服务器功能时,UDF通常是最好的选择。但同时,UDF也是黑客们在拥有低权限mysql账号时比较好用的一种提权方法。
【实验步骤】
1.在靶机Win2003-DVWA上,启动phpstudy,开启漏洞环境。
2.在攻击机上,启动Firefox浏览器,登录靶机上的DVWA网站。
网站的URL为:http://【靶机IP地址】/dvwa
登录用户名为admin,密码为password
3.成功登录DVWA网站后,选择网站左侧菜单“DVWA Security”,将DVWA网站安全等级设置为“Low”。
4.选择网站左侧菜单“File Upload”,将攻击机Win2008-att桌面文件夹Tools中的dama.php(实验中所用的webshell)文件上传至靶机。
5.dama.php上传成功后,在攻击机浏览的地址栏中输入如下URL连接dama.php:
http://【靶机IP地址】/dvwa/hackable/uploads/dama.php
出现登录提示框时,输入密码hucyuansheng登录。
6.成功登录dama.php后,选择左侧菜单“信息操作”->“上传文件”,将攻击机Win2008-att桌面文件夹Tools中的udf.php文件上传至靶机。默认上传路径为dama.php所在的目录,即C:/Program Files/phpStudy/WWW/DVWA/hackable/uploads。
7.仍然在dama.php主界面上,选择左侧菜单“本地磁盘”->“本地磁盘(C:)”,在C:/Program Files/phpStudy/MySQL/lib目录下创建名为plugin的文件夹。
8.在攻击机上,利用Firefox浏览器连接目标靶机上的udf.php脚本。
URL为:http://【靶机IP地址】/dvwa/hackable/uploads/udf.php
host:127.0.0.1
mysql账号:root
密码:root
数据库名:mysql
9.udf.php连接成功后,在“DLL导出路径”处填写C:\\Program Files\\phpStudy\\MySQL\\lib\\plugin\\udf.dll,并点击“导出到此目录”按钮。如果执行成功,udf.dll文件将被导出至指定目录。
注:(1)在填写DLL导出路径时,应使用“\\”(双反斜杠)。
(2)MySQL数据库的版本不同,导出路径也不尽相同。当MySQL版本<5.0时,导出路径随意;如果5.0<=MySQL版本<5.1,则需要导出至目标服务器的系统目录(如:system32);如果MySQL版本>5.1,则需要导出至MySQL数据库插件的安装目录,本例中为C:\Program Files\phpStudy\MySQL\lib\plugin。由于plugin目录默认是不存在的,因此在本实验的第7步中需要利用webshell创建该目录。
10.udf.dll导出成功后,仍然在udf.php主界面执行下列命令,创建cmdshell函数:
create function cmdshell returns string soname ‘udf.dll’;
11.如果cmdshell函数创建成功,则可利用该函数在靶机操作系统中添加名为admin12的用户,所用命令为:
select cmdshell(‘net user admin12 admin12 /add’);
12.在靶机上验证攻击效果:在cmd下输入net user命令,会看到靶机操作系统中被添加了一个用户“admin12”。
实验至此结束。
【思考与总结】
通过本次实验,掌握了利用webshell结合dll文件对Windows系统进行UDF提权的方法。