本帖最后由 FoodieOnTheWay 于 2016-7-14 22:40 编辑
了解病毒分析的人对下边三个程序的图标一定很熟悉吧!
没错,这就是微软旗下SysInternal全家桶中的AutoRuns, ProcessMonitor(简称ProcMon)和ProcessExplorer(简称ProcExp)。
听前辈们讲,这几款软件在早期非常流行,很多玩儿病毒的人的工具箱里必定有这几款神器。
Sysint
在我刚开始接触病毒的时候,朋友们教我的就是如何用自启动监视器(AutoRuns),注册表监视器(RegMon),文件监视器(FileMon)等一系列SysyInternal的工具来监视目标程序。后来,注册表和文件监视器这两个工具双剑合璧,成为了ProcessMonitor,变得更厉害了,我还开心了一阵子。
不过呢,所谓树大招风,人怕出名猪怕壮,一些工具一旦被很多病毒分析人员使用,病毒作者就开始设法去Anti这些工具。很典型的就是加了ThemIDA这个壳的一些样本。反沙箱,反虚拟机,反OllyDbg,反SysInternal全家桶等功能应有尽有。
最近遇到了加了Themida壳的程序,有时候开着ProcessMonitor/ProcessExplorer运行的,样本就老是给弹框或者直接退出了。我就想在网上找找相关的方法搞定这个问题。说来也怪,可能沙箱,虚拟机算是刚需,在网上能找到不少防止反虚拟机和沙箱的方法,但是防止反ProcessMonitor的还真没找到(也可能是他们自己写了新的)。于是我打算拯救一下他们,看能不能再焕发一下第二春?!
Ⅰ. 样本如何Anti-ProcessMonitor?
通过对最近遇到的的程序监控API,发现它们一般反Anti-ProcessMonitor的方法有如下3个。
1. Find process;
2. Find window name;
3. Find window class. 我们的目标就是bypass这三种检测。 对付第一个比较简单。ProcessMonitor的程序名一般是ProcMon.exe, 直接改名就好。
第二个也还好,改窗口名也有很多工具可以改。但是如果能一劳永逸,那自己是极好的。
第三个则真是需要改程序内容了。
Ⅱ. 修改 ProcessMonitor程序 下边我就说下具体的修改过程(其实很简单,思路就按照上面的检测方法去反制,我们这里是修改窗口名和窗口类名):
最终我的私人定制版ProcessMonitor的窗口标题是这样的,如下小图(不知道为什么,上传到论坛上的图添加到文章时显得特别小,如果有知道怎么调整,请不吝赐教)。具体修改的地方可以参考下边的PE差异对比图。
ProcMon
Ⅲ. ProcessMonitor的32/64位版本一体化 我之前在工作机上用过64位的ProcessMonitor,但是没发现过什么问题。这次看到有两套字符串,那就随便看看,结果看到了“MZ”,于是猜测在64位机器上面,应该会释放出来,只是之前没有注意到。果不其然,它在%temp%下释放了一个64位的版本出来,名字是原来的名字+64,我的这个就是“Pr0cmon64.exe”。如果按照我的方法把两套字符串都修改了,那么释放出来的64位版本也是能Bypass的。而且,我的工作机是64位的,那么我就可以把它直接复制到我的工具箱,省得它每次还要再释放文件,启动速度也会快一些。 ——————————————————————————————————————————
同样的方法也可以用在其他SysInternal的工具上。当然,工具也可以使用别的,比如,对于ProcessMonitor, IDA看一眼就明白了,可以花更少时间搞定这个,不过我当时以为可能会比较复杂,才使用的OllyDBG。有兴趣的可以试试用IDA搞定ProcessMonitor和其他的SysInternal全家桶产品。 下图是我对ProcessExplorer修改的对比图。
ProcExp
需要提醒大家的是,改过后,SHA1会跟原文件不一致,导致证书失效,UAC提示的时候就没有厂商名称神马的了。
——敬请期待下集——————————————————————————————————— 还需要提醒大家一点的是,新版本的TMD壳还是能检测到ProcessMonitor的,因为它还有别的路子去找到ProcessMonitor,只是用API监控发现不出来。 扣字儿真是比扣代码还累啊,因为第一次在论坛发帖,花了很长时间才写了这么短一篇,鉴于马上12点了,我就就此打住,下次写怎么Bypass比较新的版本TMD的检测,大家表骂我卖关子,真的是因为明天还要继续忙,可能还要加班。
——非常抱歉,下集已经没有了————————————————————————————— 非常不想食盐的,但是谁让自己懒呢。一方面,Boss们同意用火绒的工具,感觉用着还挺好的,所以就没有继续改进的动力了。进一步说,底层的更改还是蛮难的,可能还要请其他同事帮忙,而我这人不太愿意求人,所以就放弃了。求不拍砖。
····························································
应一些同学的要求,把我修改好的放上来。密码是52Pojie
|