20155308《网络对抗》Exp4 恶意代码分析
实践说明
实践目标
是监控你自己系统的运行状态,看有没有可疑的程序在运行。
是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
基础问题回答
- 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用Windows自带的
schtasks
指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放、注册表信息等等; - 通过
sysmon
工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件便可以查看; - 使用
Process Explorer
工具,监视进程执行情况,查看是否有程序调用了异常的dll库之类的。
- 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用
Wireshark
软件进行抓包分析,查看该程序联网时进行了哪些操作; - 使用
systracer
工具分析某个程序执行前后,计算机注册表、文件、端口的一些变化情况。
实践过程
1.使用schtasks指令监控系统
- 先在C盘目录下建立一个
netstatlog.bat
文件,用来将记录的联网结果格式化输出到netstatlog.txt
文件中,netstatlog.bat
内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
(可先创建txt文本文件,使用记事本写入后通过修改文件名来修改文件格式)
- 使用
schtasks /create /TN netstat /sc MINUTE /MO 2 /TR "c:\netstatlog.bat"
命令创建计划任务netstatlog
- 打开任务计划程序,可以看到我们新创建的这个任务
- 双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstatlog.bat批处理文件
- 运行之后出现这个问题:
- 原因是我的权限不够高。解决方法是:将“使用最高权限运行”打上勾。
- 等几分钟后在“netstatlog.txt”文件中有联网记录
2.使用sysmon工具监控系统
sysmon微软Sysinternals套件中的一个工具,可以从码云项目的附件里进行下载,要使sysmon
工具先要配置文件,我直接用的是老师给的配置文件创建配置文件Sysmon20155308.xml。
使用Sysmon.exe -i C:\Sysmon20155308.xml安装sysmon。
- 对配置文件进行修改,将自己感兴趣的过滤器事件和过滤器事件的选项写入。
<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">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
</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.exe -c C:\Sysmon20155308.xml,将sysmon按照修改好的配置文件进行更新。
- 启动之后,便可以到事件查看器里查看相应的日志
这个是我进行360安装所创建的。
3.使用systracer工具分析恶意软件
- 下载安装Systracer。
- 在打开后门前先快照一下,点击“take snapshot”:
- Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后,拍摄快照
- 进行分析:点击Applications->Running Processes->找到后门进程->点击“Opened Ports”查看回连地址、远程地址和端口号:
- 在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化
- 对注册表中hkey_local_machine根键的System子键进行了修改
- 可以看到它启用了很多dll文件
4.使用virscan分析恶意软件
- 在virscan网站上查看上次实验所做的后门软件的文件行为分析:
5.使用PEiD分析恶意软件
- 取一个上次实验生成的,没有加壳的木马,其检测结果如下
- 使用UPX加壳后,PEiD成功检测出了加壳的相关信息
6.使用Process Monitor分析恶意软件
Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常 有用。 这是一个高级的 Windows 系统和应用程序监视工具,由优秀的 Sysinternals 开发,并且目前已并入微软旗下,可靠性自不用说。
打开软件,可以看出其对各个进程的详细记录:
实验总结与体会
通过本次实验,我学会运用一些软件对恶意代码进行监测和分析,虽然这种检测的方法比较简单,而且不一定适用于我们生活中的大部分的后门程序,但是我们可以通过对这些软件的应用,进行学习,打下基础,对以后我们检测后面程序、加强自己电脑的保护有一定的作用。