微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: AV之祸 操控杀软硬链接(Hardlink)【046569】mpfans.org
点饭的百度空间
银牌会员




积分 2315
发帖 2236
注册 2007-11-30
#1  AV之祸 操控杀软硬链接(Hardlink)【046569】mpfans.org


积分: 160 点   用户组: 微点交流论坛 版主



AV之祸

本文发表于2009年03期<<黑客防线>>,未经授权,谢绝转载,多谢合作.

文/图 046569@【8K7】 测试:宋博文@mpfans.org



常言道:常在河边走,哪能不湿鞋?于是当今网民已经把Anti-Virus(反病毒)程序列为系统必备软件了.可全国十几亿人把身家性命交给几百名反病毒工程师终究让人有些不放心.于是一个邪恶的想法&测试诞生了.(黑防读者:早就说了04这小子一肚子坏水).

第一章:试验目标及难点


"最危险的地方就是最安全的地方".要想隐藏,能混进杀软行列是最好的办法.可如今杀软早已经告别一个"taskkill"命令就可以结束掉进程的年代了.无论是"主动防御"还是"自我保护模块",都是不小的麻烦.这时候我们有两种选择:一是像硫磺岛战役中的美军.强攻硫磺岛却遭遇日军顽强抵抗,最后成为平洋战争中登陆一方的伤亡超过抗登陆方的唯一战例;二是如同<<超人归来>>中那个内裤外穿男一样,混迹于平常人之中,关键时刻大显身手.很显然,我比较喜欢后者.(众人:够猥琐的了.04奸笑ing)所以任务很简单:写入杀软目录甚至感染杀软文件以达到潜藏的目的.


第二章:试验过程

首先我们需要一个趁手的工具,好在微软已经帮我们准备好了(鲍尔默大叔:我有么?是比尔干的吧?比尔:不是我!)在使用之前,按照惯例,插播点小广告:

Tips 1:Fsutil 是唯一由完全了解 Windows 的高级用户所使用的高级工具。Fsutil 是可用于执行多种与FAT和 NTFS 文件系统相关的任务(例如管理重解析点、管理稀疏文件、卸载卷或扩展卷)的命令行实用程序。由于 Fsutil 功能非常强大,因而只有完全掌握 Windows XP 的高级用户才能使用它。此外,必须作为管理员或管理员组的成员登录才能使用 Fsutil.利用fsutil可以轻松创建硬链接.方法很简单:fsutil hardlink create <新文件名> <现有文件名>


Tips 2:Hardlink(硬链接)相当于一个文件的别名.比如硬盘上原来存在一个文件1.exe,你可以为它创建一个2.exe的硬链接.当删除其中任何一个之后,事实上文件内容并不会被删除掉,仍然可以用其他的名称来访问这个文件。只有当最后一个指向这个文件内容的文件名被删除掉之后,文件内容 才被删除。也就是说,一个文件的 hard link 跟此文件本来的名称并没有任何本质上的区别。需要注意的是,因为每个分区(partition)上都可能有相同的存储位置地址,所以 hard link 必须跟被 link 的文件在同一个分区上。


广告看完了,你想到了什么没有?对,AV很可能依靠路径去匹配文件,包括主动防御和自我保护!因此思路很简单:创建一个硬链接,然后对它进行操作!还记得马奇诺防线 (Maginot Line)是怎么被突破的么?绕过去的!体会到"黑客是思维的体操"这句话的真谛了吧?我们甚至可以用两条DOS命令就完成了替换工作.我们的杀软终于完成了"从被一条命令干掉"上升到"被两条命令干掉"的高度了,整整进步一倍了.
   听起来似乎进展很顺利,可以结束了.可惜事实并非如此,我们要做的工作还有很多.比如我们要替换哪个文件呢?比如用户系统不是XP怎么办?再比如其他可能碰到的意外情况.我们来一个一个解决.
    问题一:替换什么文件.我个人的建议是替换升级文件.杀软一定要升级,替换它可以保证我们狸猫换太子后狸猫可以做一做太子(被执行),这点很重要.但一定要注意的是:你的程序要有独占性,不能反复被执行.否则杀软频繁升级,会让用户卡到郁闷继而格盘,那你就前功尽弃了.
   问题二:用户系统不是XP.我们可能碰到Vista甚至是Windows 7.这个比较麻烦了.系统的易用性和安全性成反比,Vista + UAC 那么难用,确实安全的有些过份,以至于我暂时也没想到好办法突破.但微软接受了用户批评Vista难用的意见,改良了UAC机制,让其在微软最新操作系统Windows 7中不再那么烦人.,于是安全性也降低了.我们来看一个微软已知但却打算拖到RC1才发布补丁的漏洞.下面仍然是广告时间.

1. Tips 3:The default UAC setting in Windows 7 is: "Don't notify me when I make changes to Windows settings."

2. What this really means is: "Don't notify me when Microsoft applications require administrator rights."

3. 译文:

4. Windows 7中 UAC的默认设置是当我改变Windows设置的时候不要通知我.

5. 而它的真正意思是当微软程序需要管理权限的时候不要通知我.

而问题就出在rundll32上.它处于白名单中,换句话说,它申请高特权不需要UAC确认(权限继承类漏洞).那么问题简单了,我们只需要编写一个dll实现相应功能就可以了.在之前的广告中我们已经知道了:fsutil运行的时候需要管理权限,现在问题迎刃而解.你只需要关注以下几个问题:
A.创建硬链接的API:CreateHardLink,用来代替不好控制的DOS语句.
B.Rundll32的接口标准,以便可以被调用.
C.硬链接要求处在同一盘符内.
D.是直接替换升级文件or 感染悉听尊便.李代桃僵的办法非常具有迷惑性.
    问题三:其他意外情况.这个可能性太多了,比如恰巧杀软正在升级导致你占坑失败.这时候也许你需要一个判断杀软是否升级的函数.比如卡巴斯基的数字签名技术.这个有点奇怪.卡巴似乎没有在自我守护上使用了这种技术.我们尝试修改了升级文件,卡巴仍然执行,只是不执行我们的函数,看起来使用了冗余的设计,在某处有备份文件.可是我们技术有限,这种情况又不知道怎么调试.如果有朋友指点一二,04感激不尽.还有其他种种可能碰到的异常,慢慢解决吧!限于篇幅,文章中并未给出code,不过在文末我提供了一个小宋写的Demo,大家可以试试看.如果有问题,欢迎与我联系.

    第三章:试验结果

    我们通过简单的方式取得了阶段性的胜利,经过测试可以感染瑞星、金山、江民等等..不过值得一提的是国产杀软中的后起之秀--微点并没有被波及.同时也希望杀软公司提升技术,切实为国家的网络安全做出贡献!


    第四章:导师评语

     (等着各位读者写呢...)


QQ517826104  2009-04-08 18:13
See also:
[mj0011]NTFS之hardlink攻防http://hi.baidu.com/mj0011/blog/ ... 567f094afb510b.html

※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint
2009-4-17 08:53
查看资料  发送邮件  访问主页  发短消息   编辑帖子
HomeSGerMine
银牌会员

■■微点护卫队队长■■


积分 4888
发帖 4785
注册 2009-3-8
来自 哪里有微点,哪里就有我
#2  

微点好,微点妙~

※ ※ ※ 本文纯属【HomeSGerMine】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

东方之荣耀,  中华之微点!---Micropint
2009-4-17 12:01
查看资料  发送邮件  发短消息  QQ   编辑帖子
mamsds
银牌会员




积分 1373
发帖 1360
注册 2008-3-15
来自 乌克兰
#3  

不懂........

※ ※ ※ 本文纯属【mamsds】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

Vi Veri Veniversum Vivus Vici.
2009-4-17 17:46
查看资料  发送邮件  发短消息  QQ   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号