20164322韩玉婷 -----EXP4 恶意代码分析
20164322韩玉婷 —–EXP4 恶意代码分析
1.实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容
2.1系统运行监控(2分)
2.1.1 使用schtasks指令监控系统
2.1.2使用sysmon工具监控系统
2.2系统运行监控
2.2.1 恶意软件分析—— Virus Total网站
2.2.2 恶意软件分析—— Process Monitot
2.2.3 恶意软件分析—— Process Expiorer
2.2.4 恶意软件分析—— systracer
2.2.5 恶意软件分析—— FEiD
3.实践总结与基本问题
3.1 实验总结
3.2 基本问题
2.1.1 使用schtasks指令监控系统
创建计划任务,使系统每1分钟自动检测到有哪些程序在连接我们的网络。
- TN:Task Name,本例中是netstat
- SC: SChedule type,本例中是MINUTE,以分钟来计时
- MO: MOdifier
- TR: Task Run,要运行的指令是 netstat
- -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
使用 schtasks /create /TN netstat4322 /sc MINUTE /MO 1/TR “cmd /c netstat -bn > c:\netstatlog.txt "
命令创建计划任务 netstat4322 ,如下图所示:
在C盘中创建一个netstat4322.bat
脚本文件(可先创建txt文本文件,使用记事本写入后通过修改文件名来修改文件格式)
在其中写入以下内容:
date /t >> c:\netstat4322.txt time /t >> c:\netstat4322.txt netstat -bn >> c:\netstat4322.txt
打开任务计划程序
,可以看到我们新创建的这个任务:
双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat4322.bat
批处理文件,另外,要删除添加参数里面的内容,然后确定即可。
注意:任务还有其他属性,点击“条件”选项卡,可以更改相关的设置。比如默认操作为“只有在计算机使用交流电源时才启动此任务”,那么使用电池电源时就会停止任务。这点需要格外注意,如果没有修改默认操作,任务无论如何都无法执行可能只是因为拔掉了电源。
执行此脚本一定时间,就可以在netstate4322.txt文件中查看到本机在该时间段内的联网记录:
当记录的数据足够丰富时,停止任务,将所得数据在excel中进行分析:
将每个应用的联网情况做成树状图,更加清晰直观:
首先我们可以看到TCP是最多的,其次是“wps.exe”和“kxes core.exe”。一个是wps软件云端的一个服务的进程,另一个kxescore.exe是金山毒霸的密保用户的进程。注册了金山密保之后就会呈现的。
2.1.2使用sysmon工具监控系统
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
确定监控对象
选择的是进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。
写配置文件
写与自己想要监控的事件相对应的配置文件。编写好的Sysmon4322.xml.txt内容如下:(配置文件是xml文件,为了简单编辑就直接命令为.txt,每次用写字本打开。)
<Sysmon schemaversion="3.10"> <!-- 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>
启动sysmon
-
下载sysmon,解压。
-
安装sysmon:以管理员身份执行命令
sysmon.exe -i C:\sysmon4322.sml.txt
会提示出错,输入命令 sysmon -accepteula -i -n ;
在事件查看器里查看日志
图标“计算机”右键,点击打开“管理”。点击左侧“系统工具”->“事件查看器”->应用程序和服务日志/Microsoft/Windows/Sysmon/Operational
利用Sysmon具体分析日志
这里我重新生成了一个后门程序hi.exe进行分析;
我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等。
打开kali,运行木马文件,使其回连kali攻击机。查看日志,通过搜索关键字可以找到相关的后门文件:
打开这个事件,查看详细信息
,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等。
2.2恶意软件分析
2.2.1 恶意软件分析—— Virus Total网站
在66个杀软中,有49个报毒,可疑行相当高了。
查看这个恶意代码的基本属性:
可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。
还有该恶意代码的算法库支持情况:
2.2.2 恶意软件分析—— Process Monitor
Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
打开软件,可以看到各个进程的详细记录,下图是我的后门进程:
(通过find来找到自己的后面)
2.2.3 恶意软件分析—— Process Explorer
Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
靶机运行木马,我们可以看到Process Explorer对其进行的记录:
2.2.4 恶意软件分析—— systracer
- 基本步骤如下:
- 安装SysTracer软件
- 保存快照,命名为Snapshot #
- 将木马植入靶机,对靶机注册表、文件等进行快照,保存为Snapshot #2
- 打开kali的msfconsle,靶机运行木马,回连kali,win7下再次快照,保存为Snapshot #3
- 在kali中对靶机进行屏幕截图,win7下再次快照,保存为Snapshot #4
- 在kali中对靶机进行提权操作,win7下再次快照,保存为Snapshot #
点击右下角“Compare”,比较五个快照的不同之处。
比较快照4和快照5,可以看到进程的运行位置、本机地址、靶机地址及端口号
比较快照2和快照3,增加了dll库。
比较快照2和快照3,我们还可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议:
除上图所示,还有一些Systracer未授权的地方我们是没法查看的。如下图:
2.2.5 恶意软件分析—— PEiD
> PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
先看一下没有加壳的后门程序
如上图所示:Nothing found
使用UPX加壳后,PEiD成功检测出了加壳的相关信息:
3.实践总结与基本问题
3.1 实验总结
本次实验的内容十分丰富,但是我觉得有点难,恶意代码的分析让我很头疼,好多东西不认识,只能看懂一些比较简单的信息,自己的英语水平有待提高。。。。实验中我学习到了新的指令和软件,例如SysTracer、ProceMonitor等。这些工具都能很好地辅助我们对主机进行监控,以发现恶意行为并进行及时处理。发现网络攻防是一门很有趣的课程。
3.2 基本问题
问:如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
使用windows自带的schtasks指令设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录。
使用sysmon工具,通过修改配置文件,记录相关的日志文件。
使用Process Explorer工具,监视进程执行情况。
问:如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
使用systracer工具分析恶意软件。