Exp4 恶意代码分析
一、实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对 可疑对象进行进一步分析,好确认其具体的行为与性质。
二、实践内容
2.1系统运行监控
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
2.2恶意软件分析
(1)启动回连,
(2)安装到目标机
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
三、基础问题回答
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控?
方法有很多,例如:
- 使用tcpview工具检测有哪些程序在进行网络连接,查找并锁定未知的联网可疑程序
- 使用PE解析软件查看可疑进程的详细信息,查看其是否加壳
- 使用Dependency Walker分析调用的DLL及其函数用途
- 使用快照分析进程对系统做了哪些改变,新增文件是否是我们预知的
- 使用wireshark抓包分析进程网络连接传输的数据到底是什么
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
++首先可以使用使用systracer工具,动态分析注册表修改情况,分析原因,这样做的目的,查看文件修改情况和端口情况并分析原因。再者可以使用Wireshark进行抓包分析,查看该程序传输了哪些数据++
四、实践过程
- Windows计划任务schtasks
1.1首先在c盘创建一个txt文件,输入以下内容后另存为bat文件
date /t >> c:\20154330.txt
time /t >>c:\\20154330.txt
netstat -bn >> c:\\20154330.txt
-即保存日期,时间和活动连接
为实现每1min记录下有哪些程序在连接网络,输入以下命令:
schtasks /create /TN 20154330netstat /sc MINUTE /MO 1 /TR "c:\netstatlog.bat
1.2在Windows系统下,打开控制面板,搜索任务计划,找到刚刚创建的计划,且以最高权限运行(因为我的bat在c盘,需要管理员权限)。
由于我遇到一些问题导致不能够记录日志下面是该问题的解决方式:
问题:自己电脑种种原因创建了几个用户和两个用户组,导致任务计划中更改设置时不成功。。。。
解决方法:
如图:
选定你所操作的用户组即可。
1.3日志分析
可以看到我的虚拟机后门的运行
用excel进行数据分析
以协议名称进行统计
以IP地址进行统计
- Sysmon
在这里下载微软Sysinternals套件
https://docs.microsoft.com/zh-cn/sysinternals/downloads/
我们这里只使用sysmon工具
参考配置如下:(自己下载新版本的要在第一行更改版本号,沿用老师或者上届学姐学长的看情况更改即可)
创建配置文件4330.txt
<Sysmon schemaversion="7.01">
<!-- 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进行安装
sysmon -accepteula –i -n
sysmon.exe -c 4330.xml
注:这里要进入该文件的目录。。。
安装好之后我们可以看一下运行程序 的确在运行哦
打开事件查看器(此电脑右单击管理->计算机管理->系统工具->任务计划程序->Microsoft->windows->sysmon->operational)
现在开始执行上次实验的后门程序
找一找一些事件的详细信息会看的你感兴趣的哦 我找到了我的后门程序
这是那个终端
怎么感觉我执行的一些东西都被他记录了呢
还有一个443的端口
- virustotal静态分析
virscan不能分析软件了 所以我用了virustotal
英语四级限制了我的阅读。。。。。。
- systracer
百度一个systracer下载安装(很简单)
然后打开拍四个快照,分别是
1.将恶意软件植入到目标主机中后;
2.恶意软件启动回连时;
3.恶意软件执行ls命令进行查看时;
4.恶意软件进行拍照操作时。
1和2做对比之后
后门软件
- 联网情况分析
在后门程序回连时,在主机的命令行中用netstat -n命令查看TCP连接的情况,可以发现其中有进行回连的后门程序:
- Process Monitor
打开Process Monitor可以看到程序变化,查找4.3.3.07.exe
可以看到它的描述:
- PEiD
PEiD是一个常用的的查壳工具,可以分析后门程序是否加了壳。
加壳
不加壳
- Process Explorer
打开ProcessExplorer,运行后门程序4.3.3.07.exe,在Process栏可以找到4.3.3.07.exe
双击后门程序4301.exe一行,点击不同的页标签可以查看不同的信息:
TCP/IP页签有程序的连接方式、回连IP、端口等信息。
Performance页签有程序的CPU、I/O、Handles等相关信息。
五、实验感悟
本次实践主要是恶意代码分析,恶意代码分析不仅通过动态分析,也可以静态分析。静态分析通过一些PE工具箱(PEview,dependency walker,Resource Hacker,PE explorer等)分析其函数链接库、壳的情况、特征库比对等操作。动态分析,在恶意代码运行时可以实时监测,数据抓包,例如SysTracer、SysinternalsSuite、ProceMonitor等一些工具,可以搜集一段时间内系统注册表、文件等的变化。通过这次的实践,学习到对恶意代码的基本分析的方法,静态和动态的分析方法综合应用,基本上就可以确认一个代码的行为了,根据以上方法,我们不用过渡依赖于杀毒软件给我们的杀毒报告,可以对有所怀疑的软件进行自主分析。![]