20145212罗天晨 恶意代码分析
20145212罗天晨 恶意代码分析
一、实验问题
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- (1)我们可以使用一些工具帮助自己监测系统,如本次实验中的TCPView,这个程序可以实时监控电脑上的端口信息,如果受到怀疑的恶意代码启动的时候连接了一些看起来很可疑的端口,就可以进一步进行分析。
- (2)我们可以通过在windows下建立一个监测本机连接ip地址的任务计划程序,不定时的查看一下电脑都在什么时候连了网干了什么,如果在你觉得自己的电脑没有联网的情况下出现了ip访问记录就十分可疑了。
- (3)可以通过sysmon监控几乎所有的重要操作,并在事件查看器中找到日志查看。
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- (1)PE explorer工具,它可以对程序调用库等信息进行分析查看,还可以对其反汇编。
- (2)PEiD工具,可以查看程序有没有被常用的加壳软件加壳。
- (3)启动该程序,利用systracer及wireshark动态分析程序动向。
二、实验总结与体会
- 本次实验的重点在于对恶意代码进行剖析,在这个稍微强大一点的病毒就能轻易逃过杀软的时代,想要保证电脑的安全不可谓不难
- 以后我们若是怀疑自己的电脑被植入了病毒,可以通过这次实验中使用的方法手动监测。
- 弄清楚一个程序是不是病毒,更要熟悉自己的电脑,清楚某些端口号的作用,清楚什么是可疑的动态。
三、实践过程记录
使用分析软件静态分析
PE explorer
- 这是在我的windows虚拟机上运用PE explore对病毒程序进行分析的结果:
-
PE文件头的信息
如图可以看出编译时间为2017年3月28日
处理器为i386
版本号为6.0 -
查看文件依赖的dll库:
这是未实现免杀的病毒文件的ddl库
这个是实现了免杀的文件的ddl库
-
在没有实现免杀的程序中,首先多出来的WSOCK32.dll和WS2_32.dll库起到了创建套接字,即发生网络连接的作用,在一个73k大小的未注明用途的应用程序中出现这两个库的调用,只这一点就已经十分可疑了,难怪那么容易就被查杀
-
其次在未实现免杀的程序中,还有一个叫做ADVAPI32.dll的ddl库,这个库与注册表的操控以及事件日志有关
-
对比十分明显,虽然都是一样的功能,但是实现了免杀的程序显然伪装的更加彻底,只显示调用了一个一般程序在windows下都会调用的dll库
-
通过免杀的程序可以通过反汇编查看,如果汇编语言学习的很好应该可以看破它想要做什么,但是显然想用这个方法查看文件是否为病毒并不实际。
-
PEiD
- 使用PEiD查看程序是否带壳:
-
先看没有实现免杀的程序:
显示什么都没找到,应该是版本原因导致的 -
查看实现了免杀的程序:
编译器显示是由VC编译的程序。
-
启动系统监控
TCPView
- 使用TCPView可以清楚的查看端口使用情况,当启动病毒程序连接到kali时,出现了如图信息:
- 可以看出5212端口开放。
netstat
-
我们可以通过建立一个windows计划任务程序查看本机有哪些ip连接:
-
这个时候每隔5分钟就会更新一次netstatlog文件,我们可以查看当病毒回连的时候发生了什么:
-
显然这里不止显示了病毒文件ltc5212.exe的连接细节,还有IE的IP连接。
-
端口号、ip地址等等都监测并记录的十分清楚,美中不足的是我发现这个程序重启系统之后貌似需要在任务计划程序里手动开启?(不知道是不是我的配置不对,但是尝试了好几次如果不不手动开重启之后就不会记录。)
sysmon
-
很奇怪的是在我的win7虚拟机上这个程序安装不成功,目前还没有找到解决办法:
-
本以为卸载重装可以成功,但是还是上图问题。。。于是换成了win10主机安装:
-
在事件日志的Applications and Services Logs/Microsoft/Windows/Sysmon/Operational下,查看回连情况
-
这里找到了ltc5212.exe在回连kali的记录:(其他记录也有很多,比较容易看懂。)
这里显示程序为路径C:\Users\Lenovo\Desktop\下的ltc-5212.exe,事件时间是2017-03-29 12:51:42.523,等等。
使用软件动态分析:
systracer
-
分析恶意代码回连前后的情况,下图是对两次快照进行的对比:
-
可以发现在运行的进程中多出来了ltc5212.exe
-
图中十分清楚的看出在开启了病毒程序之后端口5212被打开了。
-
在kali中对靶机进行截图,再次抓去快照进行对比
-
截屏时注册表发生了一些变化:
-
本来想要尝试提权再对比变换……但是这次就算换模块也提权不成功。。。我抱着试一试的心情重启了kali结果又可以了……至今不知道原因
-
放上提权前后快照对比:
-
可以看到多出了很多联网请求,这么一个小小的程序有这么多联网请求显然很不正常了。
-
再看注册表:
-
这个shell是什么呢……虽然还没查清楚但是感觉在这里看到shell有些敏感啊。。
wireshark
-
捕捉到靶机回连kali时通过TCP的包,可以看到多次三次握手协议,
-
捕获到虚拟机向靶机发送的数据包: