Exp4 恶意代码分析
Exp4 恶意代码分析
4.1 基础问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 首先想到的肯定是用我们这次实验所用到的方法,用schtasks来建立每隔一段时间对主机联网状态进行记录。利用sysmon工具来记录有关的日志文件,分析哪些文件疑似恶意代码。在定位到可以文件后,可以针对文件的行为进行分析,看这些疑似恶意代码进行了哪些操作。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 对于网络传输过程中的监控当然是用wireshark抓包并分析主机与恶意代码进行了怎样的通讯。可以得到传输方式、端口、和远端ip以及一些传输内容。
- 对于整个电脑进程的监控可以用systrace创建快照来比对分析恶意代码的行为。可以得知恶意代码的具体操作以及对主机进行了哪些更改。
4.2 实践总结与体会
本次实验主要是对自己的电脑进行监控,试图从中找出潜在的恶意代码,是主要注重于防护与监控这方面的实验。在实验过程中利用各种工具也确实进行了对系统的检测,也检测了不少进程,但个人认为自身对计算机许多底层的知识仍极为匮乏,导致查出来软件、进程的调用也分辨不出那些比较关键,那些操作就疑似恶意代码,这方面自己还要好好学习一下。
4.3 实验内容
-
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
-
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
-
恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件 -
读取、添加、删除了哪些注册表项
-
读取、添加、删除了哪些文件
-
连接了哪些外部IP,传输了什么数据(抓包分析)
4.3.1 系统运行监控
4.3.1.1 使用schtasks指令监控系统运行状态
- 首先我们以管理员身份运行cmd,输入指令
schtasks /create /TN netstat20165103 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
在c盘创建一个计划任务。
- 然后我们在c盘中新建个文档,在其中输入:
date /t >> c:\netstat20165103.txt
time /t >> c:\netstat20165103.txt
netstat -bn >> c:\netstat20165103.txt
保存并改后缀为.bat
- 在任务计划程序中,我们修改之前新创建的任务,将操作的目标文件夹改为我们上一步创建的文件并去掉运行参数。过一段时间后,我们就可以在c盘中看到我们收集到的数据输出到了一个txt文本文件中了。
- 接下来对数据进行处理,导入到Excel中制作一个图表。
- 从统计出的数据可以看出使用网络的频繁程度以及对应的软件,算是比较基础的分析。
4.3.1.2 使用sysmon监控系统运行状态
- 首先是下载微软的Sysinternals套件中的sysmon工具,下载好后需要自己写一个配置文件。
- 参考老师给的配置文件我这里的配置文件如下:
<Sysmon schemaversion="4.20">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
</NetworkConnect>
<CreateRemoteThread onmatch="include">
<TargetImage condition="end with">explorer.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
- 保存为
.xml
文件后放c盘 - 开始安装sysmon,输入
sysmon.exe -i C:\20165103sysmon .xml
,安装成功后打开事件查看器。
- 才侧边栏中选择应用程序和服务日志>Microsoft>Windows>Sysmon>Operational,可以看到我们所记录下的事件。
- 下面进行对之前后门进行分析。
- 到kali中连接成功后尝试
ls
和getuid
命令
- 回到主机中我们看到任务列表中出现了我们的后门程序,可以看到端口等信息,该程序还调用了
SearchFilterHost.exe
和SearchPortHost.exe
,看来这就是刚才命令在攻击机这边的操作了。
4.3.2 恶意软件分析
4.3.2.1 使用virustotal和VirusScan分析
- 这里用的还是之前做的后门程序
- 上次只是看这些后门程序被杀软检测出的数量,这次看一下行为和细节
4.3.2.2 用PEID查壳
- 使用PEiD,很方便的软件,能看到软件是否加壳,当然,也有查不出来的时候。
4.3.2.3 使用PE Explorer分析恶意软件
- 这个软件可以看到这个后门程序调用的dll文件,这个在virustotal中也能看到
4.3.2.4 使用systracer分析
-
这个软件是通过对比快照之间的去区别来让我们更清晰地分析恶意软件的行为。
-
这里先创建了3个快照,第一个是系统初始状态,第二个是kail成功通过后门获得了系统的操作,第三个是用查看文件和截屏的命令。
-
可以看到后门进程的一些通讯信息、句柄等内容。
4.3.2.5 使用wireshark抓包分析
- 这个算是比较常用的软件了,在kail监听后启动后门软件然后开始抓包,抓到大量的tcp包,可以看到源地址和目的地址以及传输的端口号,具体的内容也可以从包里看出来。