查看: 26337|回复: 125
收起左侧

[技术原创] 嗅探Microsoft的病毒扫描引擎

  [复制链接]
B100D1E55
发表于 2017-2-10 09:22:10 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2017-2-10 09:39 编辑

昨天讲到通过构造一个特殊的EICAR Dropper可以间接测试Windows Defender防毒引擎的仿真能力(http://bbs.kafan.cn/thread-2076336-1-1.html),测试结果还是比较让人失望的。这篇里面继续挖掘一下自制的EICAR Dropper的价值——我可以用这个程序作为一个指示器来嗅探Windows Defender虚拟仿真环境的用户名

之所以想到测这个主要是因为昨天有人提到是否能通过网络上传来收集虚拟环境的信息,答案是:没有直接的方法。因为扫描引擎的仿真环境严格和外界隔绝,外界网络连接自然更不可能。

但……吼吼……一些旁敲侧击的方法就完全可行


类似于逆向集成电路的黑盒结构,我们可以通过构造特定的输入并观察输出来反向探测扫描引擎里面的环境。EICAR Dropper的原理正好符合这个条件:我可以添加一个条件判断,如果满足某条件,实机运行并不会展现任何行为,但在Windows Defender的扫描引擎里面则会展现恶意行为从而报毒——通过这点我们就可以反向侦测虚拟机内的用户名。

方法简单到不能再简单了,我写了一个if条件,先获取用户名,如果用户名的某个字母等于某个数值,则释放EICAR。只要我构造大量这样的程序然后扫描,就能碰撞出真的用户名

你可能觉得这个方法很挫:假定用户名的字符限定在52个大小写英文字母上,那么每嗅探一位就需要尝试好几十次。
事实并非如此,如果你使用一些小伎俩(例如Binary Search),每个字符位的嗅探尝试可以低至5~6次(log2(52)~6)……如果设计者起名的思维比较传统,那么通过碰撞一开始的几个字母,你几乎就可以猜出整个单词了(人脑字典破解)

依照这个思维我构造了一些exe然后传到VT,发现第一个字母是大写J

信息不够,我们再碰撞第二个……5次尝试后发现第二个字母是小写o

也就是仿真环境里的用户名是Jo……
我第一反应是John Doe,这个名字类似于中文里的”小明”,用来给一个虚拟环境命名再适合不过了。不过也有可能叫Joe或者Job(我YY了一下VT扫描机说不定会命名为job1,job2,……),反正试一试也不会掉一块肉嘛


我先试了b,发现不行……

再试了h……命中了!
有很大可能性用户名叫John,运用类似方法我立即嗅探出来WD的仿真环境用户名叫JohnDoe。总尝试次数没超过20次,而写程序加整个碰撞试错过程没超过一个小时……

也就是说你可以构造一个恶意程序,当检测到用户名是JohnDoe的时候直接退出,即可某种程度上免杀Windows Defender……当然如果你的用户名刚好也叫JohnDoe——( •̀ ω •́ )y恭喜你!逃过一劫

为了验证不是因为VT上的电脑叫JohnDoe(有的杀软会将实机的用户名传递给仿真环境,这样就没法预测了),我克服了自己的懒惰装了一个RS1的虚拟机,用户名起名为“nonlocal”,试了一下Windows Defender的扫描……

报毒了……


也就是说,用Windows Defender的童鞋们电脑里都住着一个叫小明的孩子,每日兢兢业业帮忙守护着信息安全……
静态用户名嗅探是n年前提出的手法,而对抗方法也很简单,既可以随机生成用户名,也可以直接取用实机的用户名……WD这样的开发态度真的没问题吗??

本系列暂告一段落,我得干活去了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 7分享 +2 人气 +7 收起 理由
popu111 + 1 难得一见有理有据的议论文
屁颠屁颠 + 2 + 1 版区有你更精彩: )
windows7爱好者 + 1 老哥稳
驭龙 + 1 版区有你更精彩: )
linzh + 1 精品文章

查看全部评分

pal家族
发表于 2017-2-10 09:29:56 | 显示全部楼层
楼主啊,文章我没看,我是来看TOM的
wangfeng66
发表于 2017-2-10 09:31:32 | 显示全部楼层
又来学习了。技术探底WD系列啊。
B100D1E55
 楼主| 发表于 2017-2-10 09:31:36 | 显示全部楼层
pal家族 发表于 2017-2-10 09:29
楼主啊,文章我没看,我是来看TOM的

很好,我的目的达到了
houtiancheng
发表于 2017-2-10 09:39:58 | 显示全部楼层
楼主你这是要打微软脸啊~
搞得我对WD的信心一下子弱了好多啊
maomao110
发表于 2017-2-10 09:52:35 | 显示全部楼层
pal家族 发表于 2017-2-10 09:29
楼主啊,文章我没看,我是来看TOM的

我也是 只看到了  TOM
清道夫900
发表于 2017-2-10 10:20:32 | 显示全部楼层
现在开始觉得杀软的存在必要性了。
linzh
发表于 2017-2-10 10:31:43 | 显示全部楼层
进来默默的学习...
明月丶舞白衣
发表于 2017-2-10 10:41:49 | 显示全部楼层
所以我现在到处安利不要用WD
驭龙
发表于 2017-2-10 10:41:55 | 显示全部楼层
我说过吧,微软的VFS已经是八年前的老技术了

我想根本适应不了现在的环境,另外虚拟环境分析的时候,会把应用程序命名为myapp.exe

另外你是在本地测试的WD,还是用的在线?万一VT上的环境用户名是这个呢?
jefffire
头像被屏蔽
发表于 2017-2-10 10:45:01 | 显示全部楼层
驭龙 发表于 2017-2-10 10:41
我说过吧,微软的VFS已经是八年前的老技术了

我想根本适应不了现在的环境,另外虚拟环境分析的时候,会 ...

看文章不仔细哟 LZ两个都测了
驭龙
发表于 2017-2-10 10:49:39 | 显示全部楼层
jefffire 发表于 2017-2-10 10:45
看文章不仔细哟 LZ两个都测了

楼主这个最后一张图是本地,但我还是想确认一下,因为MA引擎中没有这个用户名的串符,VFS数据中也没有,所以我想确认一下楼主的测试具体情况

其实我觉得如果不用EICAR代码测试,那会更有说服力,因为这个代码不是真的病毒

评分

参与人数 1人气 +1 收起 理由
月影天心 + 1 版区有你更精彩: )

查看全部评分

B100D1E55
 楼主| 发表于 2017-2-10 11:18:11 | 显示全部楼层
驭龙 发表于 2017-2-10 10:49
楼主这个最后一张图是本地,但我还是想确认一下,因为MA引擎中没有这个用户名的串符,VFS数据中也没有, ...

测试环境:virtualbox装了新的14393,然后关掉defender实时防御,从外面拖进来待测样本进行手动扫描。

EICAR作为标准的测试文件,杀软对待它要像对待真实恶意软件一样,不然也不会被纳为测试标准。而WD的引擎对动态启发释放的文件进行了静态匹配,其他引擎都没这么做,所以这个程序刚好可以测WD。其实不考虑性能问题静态匹配无可厚非,但刚好给外人一个可乘之机来轻松构造我这样的样本,从而判断虚拟机黑盒内是否跑了那串释放文件的代码。其实我把EICAR换成微软能静扫的shellcode估计结果也是一样的
B100D1E55
 楼主| 发表于 2017-2-10 11:22:25 | 显示全部楼层
houtiancheng 发表于 2017-2-10 09:39
楼主你这是要打微软脸啊~
搞得我对WD的信心一下子弱了好多啊

也不想说WD什么坏话。但天天叫嚣WD对大多人都够用,WD技术跟主流大厂势均力敌的童鞋……是不是自己应该先求证一下再这么说呢
驭龙
发表于 2017-2-10 11:23:33 | 显示全部楼层
B100D1E55 发表于 2017-2-10 11:18
测试环境:virtualbox装了新的14393,然后关掉defender实时防御,从外面拖进来待测样本进行手动扫描。

...

感谢提供详细信息

我并没有别的意思,只是确认一下而已,因为我也喜欢关注WD的情况

其实我昨天说过,这个EICAR检测代码是在WD的反病毒引擎中,也就是说WD对检测这段代码,是有他特别待遇的
月影天心
发表于 2017-2-10 11:26:48 | 显示全部楼层
本帖最后由 月影天心 于 2017-2-10 11:36 编辑
B100D1E55 发表于 2017-2-10 11:22
也不想说WD什么坏话。但天天叫嚣WD对大多人都够用,WD技术跟主流大厂势均力敌的童鞋……是不是自己应该先 ...


然而事实是在日常情况下,WD辅以Win10的一众安全技术确实够用了
且不论WD到底与第三方商业化产品有多大差距,很多第三方杀软在引擎构架上可能还不如WD,现实就是,Win10中使用WD足以应对日常安全需求,不要说WD功能残缺,也不要说WD既有引擎技术多么多么局限,微软不可能把WD发展成为功能齐全的世界级杀软品牌,WD永远都是定位于保障基础安全的Basic protection,在新的WD安全中心里,微软也只是整合了Win10下的各类安全功能,并没有为WD增加额外的新功能,只是在已有引擎技术的基础上不断完善改进,其实近年来微软受制于WD的定位,还是做了很多努力,拉黑大法也好,动静态启发也好,新的UI整合也好,WD的定位不会改变,现在是这样,将来依然如此
B100D1E55
 楼主| 发表于 2017-2-10 11:27:54 | 显示全部楼层
驭龙 发表于 2017-2-10 11:23
感谢提供详细信息

我并没有别的意思,只是确认一下而已,因为我也喜欢关注WD的情况

有人提出合理质疑是好事~我本身也不是这个专业的,理解肯定是有局限

EICAR在几乎所有反病毒引擎中都有定义,不然VB100就跪了。WD动态启发策略比较特殊所以这个测试刚好测了WD,也算是意料之外的发现
驭龙
发表于 2017-2-10 11:32:50 | 显示全部楼层
本帖最后由 驭龙 于 2017-2-10 11:51 编辑
B100D1E55 发表于 2017-2-10 11:27
有人提出合理质疑是好事~我本身也不是这个专业的,理解肯定是有局限

EICAR在几乎所有反病毒引擎中都有 ...


不一样的,在其他安全软件中EICAR特征是在特征码定义中,引擎负责调用特征库中的特征码定义匹配威胁,而WD并不是把EICAR特征全部放在特征库中,而是放在引擎本身的架构中,所以WD检测EICAR的效果是不一样的。
B100D1E55
 楼主| 发表于 2017-2-10 11:34:19 | 显示全部楼层
月影天心 发表于 2017-2-10 11:26
然而事实是在日常情况下,WD辅以Win10的一众安全技术确实够用了
且不论WD到底与第三方商业化产品有多 ...

不知道“够用”是什么概念。在我看来日常连cerber之流都防不了的难以称作“够用”,而win10一众安全技术大概除了实用性极低的smartscreen禁运外其他在这种情况下也没什么用。至于“引擎构架上可能还不如WD”这种论调是要拿出具体证据的。
拉黑并没有那么有效,cerber这种一小时一更的东西拉黑前说不定都已经过期了。
B100D1E55
 楼主| 发表于 2017-2-10 11:35:44 | 显示全部楼层
驭龙 发表于 2017-2-10 11:32
不一样的,在其他安全软件中EICAR特征是在特征码定义中,引擎负责调用特征库中的特征码定义匹配威胁,而W ...

有相关来源么
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-12-22 06:11 , Processed in 0.111432 second(s), 3 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表