Exp 4 恶意代码分析

1,实验目标

1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。

 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。

 1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

2,实践内容

 2.1系统运行监控(2分)

(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

参考:schtask与sysmon应用指导

3,具体操作

3.1系统运行监控——计划任务

系统运行监控:

1.schtasks计划任务

Step1:输入命令:

schtasks /create /TN netstat4305 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat4305.txt",创建一个名为netstat4305的计划任务。

 

 

 

 

Step2:在c盘根目录下新建netstat4305.bat ,以文本文件形式打开,输入以下内容:

date /t >>c:\netstat4305.txt

time /t >>c:\netstat4305.txt

netstat -bn >>c:\netstat4305.txt

 

Step3:按win+R键,输入taskschd.msc打开任务计划程序,找到新创建的计划任务netstat4305.

 

 

 

Step4:右键单击该任务,打开任务属性。在“常规”界面,勾选“使用最高权限运行”,配置选择windows10。

 

 

 

 

Step5:找到操作,对启动程序进行编辑。

 

 

 

bat文件写入到“程序或脚本”中,确认、保存和退出。

至此,netstat4305.txt文件可以每隔一分钟记录一次本机的网络连接以及记录时间。

 

 Step6:写入excel表格,制表分析

数据透视表

 

 

 簇状柱形图

 

 3.2sysmon工具监控

1,下载sysmon工具并解压至桌面。

在桌面新建一个XML文件sysmon.xml,以txt文件形式打开并写入下面这段内容并保存:

<Sysmon schemaversion="4.23">

  <!-- 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>

      <SourceIp condition="is">127.0.0.1</SourceIp>

    </NetworkConnect>

 

<NetworkConnect onmatch="include">

<DestinationPort condition="is">4305</DestinationPort>

<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>,

2,右键单击开始菜单,选择Windows PowerShell(管理员)(A),进入管理员界面下的命令行。通过cd进入到sysmon安装程序所在的目录也就是桌面,执行命令:.\Sysmon.exe -i sysmon.xml,安装sysmon工具。

 

 

 

随着安装步骤进行直至安装成功。Sysmon.xml文件内容可随时更改,修改完需要用指令进行更新:Sysmon.exe -c sysmon.xml。

右键单击开始菜单,选择并打开事件查看,双击“应用程序和服务日志”,依次进入/Microsoft/Windows/Sysmon/Operational,在这里可以查看sysmon工具记录下的系统日志。

 

 

此时在Windows端上运行之前实验生成的后门使其成功回连至kali端上。

 

 

根据kali显示的信息可知,连接建立于9:49:12,那么照着这个时间去搜索日志,可以很精确地找到记录后门建立的日志信息。

 

 

如上图所示,找到9:49:12这个时间的日志,就是后门建立的日志信息,可以看出任务类别是“ProcessCreate”,也就是创建进程的日志,在下面的常规信息和详细信息说的都是这个日志的内容,包括进程对应的镜像地址是C:\Users\10983\Desktop\4305encoded.exe,日志来源是sysmon,记录时间是2020/4/17 9:49:12,本机连接的服务器类型是Apache HTTP Server,日志描述是ApacheBench command line utility。类似地,后门的其他日志也可以通过这种方式辨别和分析。

3.3恶意软件分析

静态分析

1)Virustotal分析

 

 

将可以目标放到virustotal网站上进行扫描,可以得到该网站上每一款杀软对该目标的扫描结果,从图中可以看出71款杀软中有56款都示警了。在DETECTION栏目里,可以看到每一款杀软的示警信息,告知用户它是什么类型的恶意代码。

有的杀软只是说suspicious,可疑的,比如Acronis;有的杀软就会明确给出它是什么类型的恶意代码,比如BitDefender就说是Trojan.CryptZ.Gen这种木马,很详细!

DETAILS栏目里,可以查看关于该文件的详细信息,

 

 

2)文件格式识别(peid工具)

PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。

该软件可以使用不同的扫描模式:正常扫描:可在PE文档的入口点扫描所有记录的签名;深度扫描:可深入扫描所有记录的签名,这种模式要比上一种的扫描范围更广、更深入;

核心扫描:可完整地扫描整个PE文档,建议将此模式作为最后的选择。

 

 

(3) 反编译、反汇编(PE Explorer工具)

PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。该软件支持插件,你可以通过增加插件加强该软件的功能,原公司在该工具中捆绑了UPX的脱壳插件、扫描器和反汇编器,非常好用。

导入实验三生成的编码一次的后门4305encoded.exe,然后在“视图”栏可以查看文件头信息、数据目录、区段头等信息。

 

上图是该后门的文件头信息,可以看出这些信息都是相当具体、细节和底层的信息,很多都是和地址、大小、特征有关。

 

 

上图是该后门的数据目录,内容很复杂,但是可以看出它们都非常具体详细,从微观层面解释了这个后门。

 

 

上图是该后门的区段头。结合着数据目录和文件头信息,这么多底层细节很有助于分析一个后门在计算机中的活动轨迹,精确度极高,但同时也需要足够的知识储备和专业素养。

打开附属扫描器,可以看到该后门(4305once.exe)所调用到的dll模块,非常详细,几个大类里面有许多小的dll模块,数量非常之大,在这里查看的dll比上面的PEiD查看的更为详细。

 

 

 上图是针对后门4305once.exe的反汇编结果。

调用出附属扫描器,可以得到该后门所依赖的的dll列表,这部分内容非常详细。

 

 

·动态分析:

主要有以下几种方法:

快照比对(SysTracer、Filesnap、Regsnap工具等)

抓包分析(WireShark工具等)

行为监控(Filemon、Regmon、ProcessExplorer工具等)

沙盒(NormanSandbox、CWSandbox工具等)

动态跟踪调试(Ollydbg、IDAPro工具等)

(1)Wireshark抓包分析

 

 

在后门作用期间用wireshark进行抓包,完整记录kali与Windows间的网络信息交互过程。以tcp4305端口为过滤条件精准得到和后门有关的数据包。因为后门在kali端只启用了4305端口,而Windows往往很少会调用这个端口,所以以此条件过滤得到的数据包绝大多数都是和后门有关、因后门而生成的。上图的前三个数据包是tcp三次握手的过程,192.168.1.104是Windows的IP地址,192.168.1.103是kali的IP地址。第一次握手由Windows向kali发出,即由被攻击方向攻击方主动申请建立连接,这正是反弹连接的一大特点。从第四个数据包开始,就由kali端先发送数据包,窃取Windows端的信息。

 

 

kali端命令行输入exit,断开后门连接。此时winreshark会抓到一个标红的数据包rst包,这是最后一个数据包,它标志着连接的断开。

(2)systracer工具安装。

选中间那个。

 

 设置端口4305。

 

 

制作当前状态下的快照。每次快照均记录以上信息,包括注册表状态、磁盘文件状态和应用程序状态。在三个状态下制作系统快照,分别是后门运行前、后门会连成功并执行一些操作以及后门断开连接。

 

 

在软件右下角,有下图所示的对比操作,可以选中两个快照进行对比,看它们彼此间有什么差异变化。从中就可以看出后门在此期间干了什么。

 

 

比如,可以选择compare快照一和二,对比它们之间的变化。

 

 

左侧导航栏查看的是注册表的对比情况,绿色表示新增,红色表示删除,几大类注册表信息下面有所有的子类注册表信息。

 

 

如上图所示对比文件信息的差异,可以看到后门运行前后有哪些文件是新添加的,还有哪些是被后门删去了的。文件路径都很明确很完整。

 

 

对比快照一和二的开放端口信息,可以看出新增了上图红框所示的那部分内容,这就是后门建立的连接,本地29747端口连向了kali的apache http服务器,直指kali的tcp4305端口。

4,基础问题回答

(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

使用schtasks,设置计划任务,对主机的进程及上网情况进行记录。

使用Systracer定期定时进行快照,对系统状态进行比较,系统是否有执行一些非用户主动下的操作。

(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

用SysTracer记录不同时刻系统的快照, 发现该进程或程序都对自己的电脑做了哪些修改,

用wireshark进行定向定目标地抓包分析,从而获取攻击方与主机的通信内容、ip等等信息。

5,实验心得

此次实验不是特别困难,但也很考验操作。需要掌握多种软件及其操作方法,需要特别细心与沉着。实验中出现了许多问题,非常感谢老师和同学的帮助。通过本次实验,我对恶意代码的分析有了更深的认识。对于网络防护,需要谨小慎微。希望下一次实验我能表现得更好。

posted @ 2020-04-18 11:45  20174305刘鸿钊  阅读(112)  评论(0编辑  收藏