【病毒木马】病毒样本半感染型分析的方法
2020-03-22 12:35:34 Author: bbs.pediy.com(查看原文) 阅读量:227 收藏

[原创]【病毒木马】病毒样本半感染型分析的方法

19小时前 202

不管是为了提升分析的能力还是分析的效率,都需要有更简便的方法或技巧来支撑,这篇分析会引用一点简单介绍IDA的方法辅助分析,让分析变得更容易,这是一个属于半感染型的病毒。

SHA1: 4fa645139fc313d1c33367d026e07ddfb1713e0c 

使用IDA分析静态分析,在00401246这个位置的的call中调用大量loadlibrary+Getprocess,将获取的到的函数列表填充到返回值的地址中,所以命名是必要的,将下图的字符组合成完整字符进行调用API函数获取模块及函数地址。 

使用这种方法能够看清楚样本的意图,但由于数量过于庞大所以需要使用更合适的方式来进行分析。 

在获取函数地址列表时可以观察到,在交叉引用中,该全局变量被多次读取,表明这个全局变量正是分析的必要条件,返回的地址会写入到全局变量中,经过读该位置的函数地址进行调用API。 

类型:

使用OD断点在全局变量上,在数据地址中能看到获取到的地址列表以及函数名称,复制下来构造strust给IDA使用,方便进行静态分析。

 

在IDA中可以创建通用脚本来导入到IDA快速进行构造结构,减少分析时间。IDA可以创建一个程序的结构文件,我们稍作修改添加一个结构体再用IDA读取进去就可以了。 

将OD中的数据按格式修正为结构体 

在ida中进行结构添加,可能会有错误,这里是因为有重复的名称,根据提示将指定的位置更改就好了 

修改好后添加一下就可以了 

加载好结构体后,需要在IDA中shift+F9切换到结构体界面,按照如下方式insert添加结构体。 

交叉引用全局变量,查看调用,将分析的地方ALT+L选中,T快捷赋值结构体 

API函数的调用一目了然,便可进行静态分析

病毒会遍历当前进程,排除一些进程外将遍历到的进程放入一块列表中,等待后续操作 

在函数cmp_isrun_process中,会有比较事先保留好的一些字符串,对比是否包含,如果包含,那么这个进程将不被加入到列表中,不会被修改感染。 

对比目中排除掉被包含的字符串: 

desktop    桌面    \temp\    \windows\    netthief    \avira\ \360\    \aliwangwang\    \internet explorer\    \outlook express\    \microsoft sql server\    \winrar\ \globallink\game\    \qqdoctor\    \rising\    \firefox    \aliim visual studio    \microsoft office\    \thunder\    exebinder    \qq \world of warcraft\    \skynet\    \eset nod32 antivirus\    \windows live\messenger\    \winzip\        

获取目录后将判断是否已经存在列表中,然后将其加入到列表

因为外层函数process_enum是在一个死循环,所以上面的逻辑不得不这样做,避免重复添加,然后进入到write_file进入感染逻辑。 

列表遍历后,开始进行写入操作,读取、判断查找目标程序的资源段、计算、写入。 

判断查找文件资源段,将源文件的资源段拷贝达到被感染文件的保留图标等信息。

源文件的资源信息保存后,将源文件隐藏属性并抹去后缀 

 组合感染文件,将病毒源文件及目标文件的资源文件整合到一起 

将感染标记复制到文件中,其中前4字节为GetTickCount函数随机后计算出的数值,会用来在某处进行比较。 

最后写入到文件 

感染后: 

样本实际还保留在原来的位置,隐藏且后缀已经抹去,看似是原来的文件其实已经被病毒暗度陈仓,有趣的是病毒只会操作感染那些正在运行的程序,所有的程序经过感染是没有原来的逻辑,只有资源文件还保留,再次执行的只会是病毒,这个感染型可以找回,比较良心,值得注意的是分析方法,达到顺利的分析病毒逻辑。 分析结束 。

样本已上传密码virus

2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!

最后于 18小时前 被驱动骑士编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-258242.htm
如有侵权请联系:admin#unsafe.sh