2018-2019-2 网络对抗技术 20165301 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165301 Exp4 恶意代码分析
实验内容
系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
恶意软件分析
- 分析该软件在(1)启动回连(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
- 该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。
实践过程记录
1.使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)
- 使用
schtasks /create /TN netstat5301 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn >
c:\netstatlog.txt"命令创建计划任务netstat5301
- 在C盘中创建一个
netstat5301.bat
脚本文件(可先创建txt文本文件,使用记事本写入后通过修改文件名来修改文件格式)
在其中写入以下内容:
date /t >> c:\netstat5301.txt
time /t >> c:\netstat5301.txt
netstat -bn >> c:\netstat5301.txt
- 打开任务计划程序,作如下修改
- 执行此脚本一定时间,就可以在netstat5301.txt文件中查看到本机在该时间段内的联网记录
2.使用sysmon工具监控系统(安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。)
-
一键安装命令(需要以管理员身份运行cmd)
sysmon -accepteula -i -n
-
创建配置文件
sysmon20165301.xml
- Sysmon是微软Sysinternals套件中的一个工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。
<Sysmon schemaversion="4.00">
<!-- 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>
<!-- Do not log process termination -->
<ProcessTerminate onmatch="include" />
<!-- Log network connection if the destination port equal 443 -->
<!-- or 80, and process isn't InternetExplorer -->
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort>
<DestinationPort>5301</DestinationPort>
</NetworkConnect>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplore.exe</Image>
</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 Sysmon20165301.xml
,将sysmon按照修改好的配置文件进行更新。
-
打开【开始】菜单,搜索【事件查看器】并打开,在左侧控制台树按照【事件查看器】->【应用程序和服务日志】->【Microsoft】->【Windows】依次展开,找到【Sysmon】下的【Operational】并双击打开
- 在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等。
- 在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等。
-
打开
20165301_backdoor.exe
后门,Kali攻击机用meterpreter回连,可以看到连接的详细信息,包括ip、端口、pid等
3.恶意软件分析
- 文件扫描(VirScan工具)
使用在线VirusScan工具对上次实验中生成的.jar文件进行扫描
-
查看这个恶意代码的基本属性
-
systracer分析恶意软件。首先下载完成后进行安装,步骤为:agree->选第二个
->设置监听端口号
-
在打开后门前先快照一下,点击“take snapshot”,如图,按照以下步骤进行
-
Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后,拍摄快照:
-
点击上方“Applications”->左侧“Running Processes”->找到后门进程“20165329_backdoor.exe”
- 在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化,所有蓝色标注的地方,就是前后发生变化的地方
基础问题回答
-
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用windows自带的schtasks指令设置一个计划任务,发现网络连接异常
- 使用Sysmon,编写配置文件,记录有关的系统日志
- 使用Process Explorer工具,监视进程执行情况。
- 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
-
如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用systracer工具分析恶意软件,查看其对注册表和文件的修改。
- 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
- 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
实验感想
- 通过学习知道了恶意代码的分析方法主要分为静态分析方法和动态分析方法。同时也意识到杀毒软件也不是百分百可靠的。