20155339 Exp4 恶意代码分析
实验后回答问题
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 监控网络连接。
- 当某个系统进程出现多个时,重点监控。
- 监控注册表的变化。
- 监控未知的IP的异常频率的连接。
- 监控系统日志的变化。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 创建计划任务,跟踪该进程的网络连接。
- 使用Systracer拍摄系统的多个快照,并对不同的时刻拍下的快照进行对比,分析改变的注册表的变化。
- wireshark监视该程序的数据包。
- 用Process Explorer获取其命令行,路径,连接的端口号以及本机开放的端口号等信息。
实验总结与体会
通过本次实验,解除了上次实验的忧虑,学习了怎么查看系统的状态以及分析恶意代码的存在。植入后门或许并不难,所以对于系统的状态以及后门的分析就尤为重要了,比起后门攻击,分析略显枯燥,但是分析确极其重要。
实践过程记录
GE_Windows计划任务schtasks
- 开始创建任务,首先建立一个文本文档用于输出结果,复制到C盘。
- 使用
C:\schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
命令,来实现每五分钟每记录一下有哪些程序在连接网络,若需要实现一分钟记录一次,则将MO 5
改为MO 1
即可,对相关参数进行分析:
/TN taskname 指定唯一识别这个计划任务的名称。
/S system 指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统。
/SC schedule 指定计划频率。有效计划任务: MINUTE、 HOURLY、DAILY、WEEKLY、 MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.
/MO modifier 改进计划类型以允许更好地控制计划重复周期。有效值列于下面“修改者”部分中。 /TR taskrun 指定在这个计划时间运行的程序的路径和文件名。
- 出现下图所示则新建成功,但是即使这样发现netstatlog.txt并没有变化,打开控制面板,找到任务计划,点击属性,发现需要更改一些设置,首先选择使用常规中的“最高权限运行”,然后将条件里的条件中的如下两个条件去掉。
现在就可以看到每五分钟就会进行一次记录。
- 我们再加工一下,在C盘要目录下建一个文件c:\netstatlog.bat,内容如下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
可以在图形界面打开计划任务,将其中每5分钟执行的指令从"cmd /c netstat -bn > c:\netstatlog.txt"替换为“c:\netstatlog.bat”。更改完后,我们在netstatlog.txt中会看到如下的输出,多了日期与时间,这样看起来更方便。
- 放了一天多,我将其导入到excel中去,具体导入方法就是在Excel的数据中选择从文本文档导入,然后选择分隔符号,再将所有分割符号选上,并且在其他后键入“:”,完成。
然后对数据进行了一个透视分析,这里我是按降序进行排列,柱状图则更明显的突出了对外连接最多的程序,对其中的几个进行分析。
- 这个wpscloudsvr.exe格外多啊,但是看样子是个WPS的什么云服务,搜了一下是WPS热点,这个真的很讨厌,每次都是手动关闭看来关的不够彻底,进入控制面板将其文件位置找出关闭该程序,并且删了它。
- 接下来是SogouExplorer.exe,这次之后打算改用火狐了,这个随便连接的次数也太多了点,我的流量啊。
- vmware-hostd.exe,这个其实是VMware的一个服务端,网上说是可以关闭的,不影响正常使用,我这种小白,还是留着它吧。
- devenv.exe这是什么呢,原来是是程序开发平台Microsoft Visual Studio 用户界面程序,开发者在这个界面进行设计开发调试工作,那也是没问题的。
- ComputerZTray.exe是鲁大师的硬件核心服务,也是正常软件,SGTool.exe搜狗输入法的加速程序,xmp.exe迅雷看看播放器,DsmSvc,使这个可以加速应用程序的启动速度,如果禁用,会加快系统启动速度。也就是说,你要做个取舍了,是要启动速度,还是要以后软件的加载速度。当然还有我的backdoorc3.exe,这个网上当然是搜不到的,放到virscan上,查杀率当然意料之中的高,当然是个病毒。
对连接次数超过10的IP进行一个批量搜索。
- 大的公司像联通、移动这种应该没问题,对几个我觉得可疑的,无法想象自己为什么会连到这些地方的IP进行了一个搜索,首先对美国的这个进行一次搜索吧,我也没点什么国外的网站啊。首先将其在我的数据中进行一次搜索,看看它是什么程序的IP,搜索发现是vmware,对,那就应该是可信的了。
再对这两个进行个搜索吧。
同样先回到我的数据中进行搜索,原来WPS热点是这几家公司!
- 再看看这是什么吧,是devenv.exe进程,上网搜索过了,是VS的一部分,用于应用程序开发,那就没问题了,看来我的电脑没什么问题。
VirScan
把我的后门软甲放到VirScan上扫描一下,不出所料,22%的查杀率。
可以看到它选择了MD5和sha-1来进行哈希摘要,可能在编码的过程中使用了这两个算法。
尝试获取别的信息,点击任意一个扫描结果看看会有什么别的发现。
- 并没有什么太大的发现,但是发现了大家放到VirScan上扫描的自己生产的后门软件,看来查到的病毒都是一样的。
Sysmon
- Sysmon是微软Sysinternals套件中的一个工具。可以监控几乎所有的重要操作。
- 配置好文件之后开始安装sysmon,先从老师的附件里面下载,文件名为SysinternalsSuite201608,其中包括了Sysmon.exe等,安装命令为
sysmon.exe -i 配置文件名
。 - 首先对老师的配置文件进行学习,编写了自己的配置文件,需要注意的是,exclude相当于白名单,不用记录,而include相当于黑名单。在语法上需要注意一一对应,比如
<SourceIp xxx>
要与</SourceIp>
对应,我在编写的过程中忽略了这一点,直接从上面复制下来就出现了错误。 - 关于我的配置文件,我将搜狗浏览器加入了白名单,与此同时对于80端口的HTTP和443端口的HTTPS,当然还需要包括我的5339端口了,具体如下:
<Sysmon schemaversion="3.10"><!-- Capture all hashes --><HashAlgorithms>*</HashAlgorithms><EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude"><Signature condition="contains">microsoft</Signature><Signature condition="contains">windows</Signature>
</DriverLoad><NetworkConnect onmatch="exclude"><Image condition="end with">SogouExplorer.exe</Image><Image condition="end with">iexplorer.exe</Image>
</NetworkConnect><NetworkConnect onmatch="include"><DestinationPort condition="is">80</DestinationPort><DestinationPort condition="is">443</DestinationPort><DestinationPort condition="is">5339</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>
但是这里需要注意,我们需要使用管理员身份打开cmd.
接下来就可以成功安装了。
- 在这里学到一招,如果我们要切换盘符的目录,正确的用法是在cd 和路径中间 增加一个'/d',例如我想切换到F盘就需要输入
cd /d f:
就可以了,直接cd是不可以的。 - 打开控制面板,打开事件查看日志,依次点击应用程序和服务日志->Microsoft->Windows->Sysmon->Operational
大量的数据或许并不有利于我们分析,所以我用筛选器对数据进行了一次筛选。
创建了一个搜狗表情工具。
Excel文件发生了变化。
使用systracer工具分析恶意软件
1.在正常情况即没有后门程序的情况下对Windows进行快照。
2.在将后门程序拷入主机之后进行快照。
3.回连成功后进行一次快照。
- 快照结果进行对比分析:
1和2进行对比,只观察不同的部分,由下图可以看出注册表发生了变化,首先修改了了很多键值,这些键值包括显示控制系统和软件的处理键下的子键、当前用户的配置数据信息等。
增加了HKEY_LOCAL_MACHINE下的一些子键值。
当然,还有一些软件,比如搜狗啊、SysTracer本身以及微信等引发的键值变化,可以说很详细了。
- 还有剩下的就是没有注册看不了,额,没有办法。
- 2和3进行比较,注册变化更明显,只是依旧看不了。
- 再1和3进行比较看一看,键值发生了很多变化,增加了很多键值,可是没有注册看不了,看来也只能再通过别的方法分析了。
总的来说,植入一个后门程序并且在进行回连的时候会发生很多键值的变化,是可以通过这个方面来进行分析的,只是对于刚入门并且没有注册的我们貌似有些不适用。
用wireshark来进行分析
- 开始捕获包,同时Kali开始通过msf寻找后门程序来进行回连,主机双击后门程序来进行回连,结束捕获。
开始分析TCP的一些内容。这个119.75.213.61有点可疑,回去看看原来整理的Excel,原来是金山WPS办公软件云服务进程,刚关闭完WPS云服务这又有个金山WPS办公软件云服务,也给他关了。
还有个23.57.229.163是什么搜一下,一搜吓到了我,这个IP竟然是印度的。
很值得怀疑,再看看建立连接有没有成功。
- 成功建立的三次握手,但是竟然还给我报了一个304错误,那这是什么呢?上网搜索一下,发现是Akamai(一个CDN运营商)网站的IP。
接下来的就是被虚拟机攻击的我的5339端口了。在本机的虚拟机攻击本机这么直接的操作下,wireshark很直观的再现并且剖析了这一过程,刚开始VM广播寻找哪个主机启动了后门,开始回连192.168.224.140。
端口以及回连的IP直接暴露了出来。
- 一直以为是主机的IP和虚拟机的IP进行通讯,发现其实是,主机的以太网适配器的IP地址与Kali进行了回连,这说明以后在真正的实际应用中,本机的各种的IP与别的IP的连接都需要分析,有些东西用不是单单只能通过物理机IP来进行连接传播甚至被控制的。
- 其他没有抓到什么别的包
Process Explorer进行分析
- 该软件运行很简单,下载安装好了就会进行监控,这个软件还是比较好用,让使用者能了解看不到的在后台执行的处理程序,能显示目前已经载入哪些模块,分别是正在被哪些程序使用着,还可显示这些程序所调用的 DLL进程,以及他们所打开的句柄。Process Explorer最大的特色就是可以中终任何进程,甚至包括系统的关键进程!我觉得这个甚至比任务管理器还好用!竟然现在才知道。
- 这个软件使用也比较简单,安装完后直接就开始了监视,可以在监视菜单栏的空白处点击右键,选择添加列,然后将使用的用户名、路径命令行等添加到显示的列表中,便于分析。
使用该软件进行分析。
- 首先刚开始就有一个smss.exe进程进入了我的视线,上网查了一下,一查吓一跳,竟然有很多人说是木马、病毒,多查了几个网站,发现其实这个程序全名Session Manager Subsystem,它是一种部分的微软视窗操作系统。本身这个程序是一个正常的系统进程,但是如果用户发现在系统进程中出现多个smss.exe进程或者CPU使用率变动很大,那么要小心该程序可能就是一个潜伏在电脑深处的一个盗号木马程序,所以再去寻找,发现只有这一个smss.exe,但是还是有些不放心与之前的任务计划抓下的进程的连接来进行比较,在其中并没有找到这一项的连接,所以应该是没有问题。
svchost.exe也可能是病毒,在这个软件里面也有分析如下图,与此同时对于主机内的每个svchost.exe放到virscan进行扫描,检出为0,基本可以认定为系统程序而不是病毒。
这应该就是计划任务schtasks将记录写入netstatlog.txt的程序。
接下来就是我的后门程序了。
可以清楚的看到回连的IP和本机开放的端口,还可以查看其进程ID号。
又有一个奇怪的程序。
- 上网搜索发现igfxem.exe进程是正常的进程。是intel家的核显驱动类的进程.核显即“核芯显卡”,是指GPU部分它是与CPU建立在同一内核芯片上,两者完全融合的芯片,与igfxhk.exe进程同时存在,看来是安全的,其实这个也是可以禁用的,不过对于核心显卡设置会有一定的影响。
其他进程貌似没有什么问题,这款软件还在一定程度上减少了对未知的系统程序的百度,比如下图所示,很明确的指出了DCOMLAUNCH服务的功能和其是否能被禁用。
看来我的电脑还是比较干净的。