看雪论坛
发新帖

[分享]《恶意代码实战分析》

淘气鬼 2014-12-17 20:20 17400
现在正在看《恶意代码实战解析》,按照书上所说找到了相关的例题实战工具集,当然英语不好的可以到http://download.csdn.net/detail/ioio_jy/8250331#comment处下载,上传压缩包密码是“muma”。敬请各位有兴趣的尽情享用吧。
上传的附件:
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (12)
JackJoker 2014-12-18 21:11
2
不错,多谢分享。
淘气鬼 2014-12-19 00:28
3
由于图片过多无法完全上传,所以直接上传原文件
一次恶意软件静态分析
简述:只是对两个软件通过使用几个静态分析工具进行简要分析,了解它的基础信息。
分析对象:Lab-1.exe、Lab-1.dll
使用工具:windows提供的系统分析包中的PEid, strings,PWview,dependency,resource hacker,WinMD5

开始分析1:La:01-01.dll
使用工具1:PEid

得出现象:如图1:

初步结果:说明这是一个用C++6.0编译出来的.dll文件,但是并没有识别出被加壳过,至于入口点,文件偏移,连接器版本,PE段,首字节,子系统类的值就不一一介绍了。

使用工具2:strings(这一微软提供的一个系统分析工具包的一个工具,只要是负责字符串搜寻)这工具需要自cmd上运行检查

得出现象:首先在cmd上运行strings.exe,运行步骤如图3:

接着输入strings Lab-1.dll(上面的路径是strings路径,最好将分析文件也放在同一位置,方便操作)得到结果如图4:

    以上是挑选后的结果,发现有两个重要的结果1.点用到内核函数库Kernel32.dll函数库中的几个重要的函数,CreateProcessA,Sleep;2.调用网络链接库,外加上一个IP地址,这更坚信其实用到http服务

初步结果:有以上的现象初步判断这是一个需要使用到网络的.dll文件,而且结合Kernel32.dll文件中的sleep函数,或许是可以通过网络控制目标系统进入睡眠。还有一点,.dll必须有一个工具进行辅助(调用它里面的函数,达到目的,这就是Lab-1.exe文件)。

使用工具3:dependency

得出现象:首先查看她对Kernel32.dll文件的调用,如图7:

然后再查看它对WS2_32.DLL,如图8:

首先可以看出这一个通过序号引索调用函数的方法,需要进行人工的匹配,匹配出重要的结果是调用几个可以函数,如图9:

调用到send函数,初步判断是需要往外发处数据。
如图10:

    调用大shutdown函数,初步判断是通过后门进行系统重启
如图11:

调用到WSACleanup,初步判断是事后进行缓存数据清除,清除痕迹。
如图12:

     调用到inet_addr函数,初步判断是获取网络IP地址,与后门主机连接。
     如图13:

调用connect函数,出判断是连接网络。

初步结果:综合上述调用的函数及初步判断,可以进一步判断,该.dll文件,是根据设定的IP地址,连接网络中的目标IP,然后发送数据,通过后门进行远程重启,然后清除缓存数据。

使用工具4:PEview(这是一个比较细的对PE致查找工具)

得出现象:首先是分析出它的文件头数据如图16:

分析出它的文件可扩展头的数据如图17:

再重点查看他需要调用到的数据(主要是导入导出表)如图18:

    这吻合上面其他工具的分析结果,调用到了Kernel32.dll文件 和 WS2_32.dll及MSVCRT.dll文件及他们里面的一些函数。
上面的数据是.rdata区段的数据,接下来还有.data(可读写,存储的是可修改的数据,例如指令之类的)区段,如图19:

这些都是精华数据啊,这是WS2_32.dll文件需要到的数据,这里有exec,sleep,hello,127.26. 52.13 SADFHUHF。exec字符串可能是通过网络接收IP为127.26.52.13给后门程序传送指令,执行睡眠sleep指令
初步结果:进一步确认前面工具分析得到的结果,Lab-1.dll文件主要是实现一个程序后门的功能,通过网络进行传送执行睡眠指令。

使用工具5:resource hacker(这是一个文件资源分析工具,主要是分析某个.dll文件或者.exe文件的资源目录)

得出现象:很多时候用resource hacker分析.dll文件,都是空白的,所以有些病毒分析师并不会怎么将.dll文件放到resource hacker中进行分析。但是有些病毒攻击者正是;利用了这点。将病毒嵌入到.dll文件的资源文件中。该文件在resource hacker中的分析结果如图24:

    这说明这个.dll文件的资源段并没有被嵌入病毒。

初步结果:该文件的资源段属于正常,没有被查出人和资源信息。

使用工具6:WinMD5(用于查询文件的哈希值)
得到结果:290934c61de9176ad682ffdd65f0a669  Lab01-01.dll

分析对象的分析结果:该文件并没有加壳,其次这是一个需要通过联通网络,然后接受目标IP:127.26.52.13传过来的指令,通过该文件后门向系统发出休眠指令使得系统进入休眠状态。


开始分析1:Lab01-01.dll
使用工具1:PEid

得出现象:如图2

初步结果:说明这是一个用C++6.0编译出来的.exe文件,但是并没有识别出被加壳过,至于入口点,文件偏移,连接器版本,PE段,首字节,子系统类的值就不一一介绍了。

使用工具2:strings(这一微软提供的一个系统分析工具包的一个工具,只要是负责字符串搜寻)

得出现象:得出的现象如图5,6:

    上面上面显示的很明显,首先有调用Kernel32.dll里的图5这么几个函数,很明显是实现创建、查找,退出文件功能,然后还有一个就是图6 的两个文件,Kernel32.dll与kerne132.dll,者是一个很明显的文件混淆,着可以判断它是不是它进行创建一个kerne132.dll文件 与Kernel32.dll文件混淆在一起呢?
初步结果:创建一个kerne132.dll文件,和kerne32.dll文件混淆在一起,起到一个隐藏作用。

使用工具3:dependency

得出现象:首先是分析调用的Kernel32.dll里面的函数。如图14:

    在kernel32.dll文件中调用了CopyFileA,CreateFileA,FindClose,FineFirstA,FindNextA函数实现文件创建,查找,复制功能,这也进一步确认了strings上搜索到的数据和推断。
再对MSVCRT.DLL查询分析,这是一个多线程调用函数动态链接库(如果对这个文件不是很熟悉的话可以到微软官网上去查询,http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx),里面还可以查询细致到某个函数的作用)如图15:

可能是本人功力尚浅,并没有觉得什么可以的地方值得怀疑。
初步结果:进一步判定它是执行文件创建,查找,复制,关闭功能。

使用工具4:PEview

得出现象:首先查看的是该程序的文件头数据,如图20:

该程序的可扩展头信息,如图21:

然后再重点查看他的数据段.rdata和.data,.rdata数据如图22:

看到了它调用的Kernel32.dll里面的CopyFileA,CreateFileA,FindClose,FineFirstA,FindNextA函数。也调用MSVCRT.dll多线程库里面的函数执行线程调用。再看.data区段里面的数据,如图23:

这里面的数据就精华丰富了,首先是两个近似函数Kernel32.dll  与Kerne132.dll,初步判断是进行文件混淆目的。
然后是一个系统目录路径,一个函数Kerne132.dll,初步判断是这个路径和Kerne132.dll存在某种关联。
然后再来两个Kernel32.dll 和Lab01-01.dll,Lab01-01.dll这很明显就是上面分析的.dll文件,所以初步判定是这个程序需要调用到Kernel32.dll 和Lab01-01.dll。
然后是系统路径和Kernel32.dll文件,和一个函数。这就是说调用到系统路径里的Kernel32.dll文件的某个函数

初步结果:众多联系起来可以进一步判断,这个程序实现的功能是在系统路径中寻找,创建,复制一个Kerne132.dll文件,然后还调用了Lab01-01.dll文件实现它里面的功能。

使用工具5:resource hacker

得出现象:同样也没分析出结果,这有点异常,刚才还能分析出两个数据,一个是界面代码,一个书二进制数据。现在得到的却是空白如图25:

初步结果:没有出现异常。

使用工具6:WinMD5
得到结果:bb7425b82141a1c0f7d60e5106676bb1  Lab01-01.exe

分析对象的分析结果:该文件并没有加壳,她住要实现的功能是,调用Kernel32.dll文件的相关函数,实现在系统目录里面遍历查找是否存在Kerne132.dll文件,如果不存在就进行创建Kerne132.dll文件,进行混淆Kernel32.dll文件,然后再调用Lab01-01.dll文件,实现它的功能

结合两个分析对象得出的结论:该文件并没有加壳,她住要实现的功能是,调用Kernel32.dll文件的相关函数,实现在系统目录里面遍历查找是否存在Kerne132.dll文件,如果不存在就进行创建Kerne132.dll文件,进行混淆Kernel32.dll文件,然后再调用Lab01-01.dll文件,实现通过联通网络,然后接受目标IP:127.26.52.13传过来的指令,通过该文件后门向系统发出休眠指令使得系统进入休眠状态。

接下来将两个文件放到杀毒软件上去查杀,得到的结果结果:
Lab01-01.dll在360的查杀结果如图26:

Lab01-01.exe文件在360的查杀结果如图27:

360对这两个文件的查杀描述正好复合自行分子得出的结论!

                          精灵(^_^)/淘气鬼  (著)
上传的附件:
Concord 2014-12-28 23:41
4
表示有实体书   还不错=。=
hbcld 2015-3-10 13:11
5
支持,书确实不错
不尽湘江 2015-4-17 14:01
6
好书,好东西,多谢分享
xaoA 2017-6-21 22:24
7
1111111111111
DemonSin 2017-9-2 10:32
8
买了一本书但没有这些资源,感谢楼主分享
贪婪的 2017-9-10 09:52
9
感谢楼主,这敢放在真机上跑吗?
1
holing 2017-9-11 18:04
10
贪婪的 感谢楼主,这敢放在真机上跑吗?
虚拟机,并且做好快照,做好隔离
RuShi 2017-9-11 22:13
11
不是叫《恶意代码分析实战》吗
wx_徐鹏 2017-9-12 19:58
12
为毛被360识别为恶意软件????
1
holing 1天前
13
wx_徐鹏 为毛被360识别为恶意软件????
因为它就是恶意软件啊。。
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 微信公众号:ikanxue
Time: 0.017, SQL: 11 / 京ICP备10040895号-17