Posts

从零开始搭建Cuckoo Sandbox-Extra

该部分不会在我所供职的公司的技术分享区发表,算是给愿意关注本人个人博客的朋友们的福利。
该部分随时有可能更新(记得偶尔来看看,指不定就更新了呢),一方面作为福利提供给各位,另一方面也是作为我这边相关信息的存档。

这一节,让我们来讨论讨论如何绕过日益变态的虚拟环境检测方法(当然在这里只会讨论我已经额外部署/修改绕过方案的)。如果对本文的内容有质疑或者任何建议(如果能提供方案就更好了),欢迎留言。

进程检测

一转眼,我这沙盒搭建起来已经有4个多月了,算下来也跑了好几百个文件了(可能有上千个了),进程检测算是很多病毒的常规操作。
我在一开始部署这套东西的时候确实在这方面没有考虑这么多,只不过看着有些样本检测到VirtualBox的进程乃至于Python的进程就直接退出了,的确有点尴尬。
而目前大部分沙盒分析的样本都工作在R3下,很少有去R0捣乱的。所以能弄到个R3下隐藏进程的工具就好了。
这种工具当然是存在的,而且已经存在很久了——HideToolZ
这玩意出了个中文官网(我记得以前只有英文版,而且几年前我还用过,只不过当时我在用XP系统),一开始感觉这里面会夹带私货,后来虚拟机里试了试好像没多大问题,反正就先用着了。
我用这个工具把VBox的进程/cmd.exe(用于起python脚本,其实完全可以Win+R,带参启动就好)/Python.exe藏了起来,还把cmd.exe做了窗口隐藏和防窗口枚举处理(有病毒还真检测这个)
只不过很遗憾的是,实际样本执行的时候,Cuckoo会启动额外的Python进程,这些额外启动的Python进程并不在隐藏范围内,说白了就是还是有可能被检测出来。但是这个策略至少保护了VBox进程和命令行进程不被检测,有总比没有好。

模拟点击

实际上,Cuckoo Sandbox有还算完善的模拟点击策略,包括随机的鼠标移动和特定的按钮点击,在[Cuckoo工作目录]\analyzer\windows\modules\auxiliary\human.py可以找到详细的逻辑。
比较遗憾的是,如果你有留意其工作流程的话,你会发现这玩意每秒才会进行一轮鼠标移动/点击/特定按钮点击,对于部分已经把检测间隔压缩到几十毫秒的木马(如Lokibot,这玩意是真的恶心),怕是骗不过去。我们得把这个间隔调短一些。

X-Sec Antivirus开发者日志 - 写在2.2.0.3发版之后

看起来有点像记流水账,只不过实际上每次写这种发版后的日志,总是有些细节在里面。

今天突然翻到了自己之前在博客里对当时的“新界面”的剧透,只不过实际上,就算是现在的版本,也和当时剧透的内容有了不少差别。
而在前段时间,我们团队迎来了一位新人,他负责UI设计。很明显,3.0我们还要换一次界面。从目前的设计稿来看,我和另一位开发人员都非常满意,而且实现起来应该难度不大。
至于实时监控之类的,可能距离就有点远了,主要的问题是引擎效率。这可能需要我下点狠心找长段空闲时间来重写引擎,当然伴随着的是重新进行特征提取,感觉就像个无底洞。

这次发版又像上次那样各种翻车。
下午刚发完版的时候发现升级模块有个小bug。
修了之后重发,结果发现出了更大的问题;然后还发现主程序也有bug,干脆一并修了,顺带还把代码稍微优化了下。
再次发版,这下主服务器升级没问题了,也没发现程序bug。但是后来发现镜像升级服务器出现了恶心的缓存问题,而且不同文件缓存的版本还不一样,于是去后台把有效期缩短了。
只不过,主服务器上有个更恶心的问题,而且一时半会儿没有解决办法(网上只看到一片哀嚎,很多人都碰到这个问题而且束手无策),试过一个解决办法,结果就是整站HTTP 500,于是赶紧回滚。但是最后我还是在IIS上找到了解决方案。【此外这个问题正常情况下非常难触发】
值得庆幸的是,在我和另一个开发人员不断折腾的过程中,我的主要目标用户,要么即将/正在睡觉,要么刚起床(时区推算)。怎么折腾问题都不大~

看来一发版就出事的魔咒在我身上是真的消不掉了...T^T