Exp4 恶意代码分析-20201324

Posted 徐源20201324

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Exp4 恶意代码分析-20201324相关的知识,希望对你有一定的参考价值。

1 系统运行监控

1.1 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果

目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

写好批处理脚本netstat1324.bat

schtasks /create /TN netstat1324 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > d:\\netstatlog.txt

写好后将文件后缀名改成bat即可

在Windows的任务计划程序中,可以查看到新创建的任务:

设置启动条件,配置权限

这时可以看到D盘下出现了三个文件,若点开netstat1324.txt 的文件发现“请求的操作需要提升”,则输入下图指令

在Excel表格中分析记录的数据

  • 导入文本数据:新建excel文件->“数据”->“导入数据”->“直接打开数据文件”

  • 依次选择其他编码、分隔符号,然后将分隔符号的所有选项都选中,点击完成即可

  • 创建数据透视图:选中我们所要分析的列,选择“插入”——数据透视图——新工作表

在新的工作表中,在右侧字段列表中筛选我们不需要的字段,选好后将字段列表拖到下方的框中

查看生成的图表,从图中可以看出位居第一位的是TCP。其余比较高的包括wps、wpsclouder、vmware、ChromeCore等,确实是当时正在运行的应用

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

在sysmon所在的文件夹下编写xml配置文件。

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

  • exclude:相当于白名单,不用记录。include相当于黑名单。
  • ProcessCreate:进程创建。Image condition要根据自己使用的浏览器更改。由于我使用的是Chrome浏览器,所以在我的配置文件中,排除了(不记录)进程名为Chorme.exe的进程。但是要记录以cmd.exe结尾的进程记录。
  • FileCreatTime:进程创建时间。这里排除(不记录)浏览器进程的创建时间。
  • NetworkConnect:网络连接。过滤掉(不记录)浏览器的网络连接,源IP地址为127.0.0.1、源端口为137的连接服务。包含(记录)目的端口为80(http)443(https)的网络连接。
  • 137端口:提供局域网中ID或IP查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
  • 127.0.0.1:环回地址,表示本机。
  • CreateRemote:远程线程创建。记录的线程如下:
  • explorer.exe:Windows程序管理器或者文件资源管理器
  • svchost.exe:一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
  • winlogon.exeWindows NT 用户登陆程序,用于管理用户登录和退出。
  • powershell.exe:专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

用Sysmon64.exe -i sysmon1324.xml安装sysmon

查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational

此时运行我们在实验二中生成的后门程序20201324_backdoor.exe,成功获取主机shell。我们可以在事件查看器中找到此条日志

2恶意软件分析

分析该软件在

(1)启动回连,(2)安装到目标机,(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

PEiD软件分析恶意软件。

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

普通后门程序

hou

  • 用PEiD检测壳为:yoda\'s Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h)*
  • 有两种情况:
    1)其他壳伪装成yoda\'s Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h)
    2)没有加壳,作者加了花指令,伪装成yoda\'s Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h)
  • 此处应该是没有加壳的,也就是第二种情况。

加壳的后门程序

  • 查到了压缩壳的相关信息

加了压缩壳之后又添加加密壳的文件

  • 未被查出

普通的exe文件

Systracer动态分析

  • 快照一:未移植后门程序,保存为Snapshot #1
  • 快照二:运行后门程序并在kali中实现回连,保存为Snapshot #2
  • 快照三:在kali中使用dir指令,保存为Snapshot #3
  • 快照四:在kali中使用screenshot和record_mic指令,保存为Snapshot #4
  • 快照五:在kali中使用getuid指令,保存为Snapshot #5

2.1 读取、添加、删除了哪些注册表项

比较第二次与第三次的不同(运行了dir指令)

可以看到快照3对根键中的内容进行了修改,对注册表中的配置信息进行了修改

2.2 读取、添加、删除了哪些文件

比较第一次和第二次的不同(后门程序运行回连前后)

可以显示该过程中文件增删情况

2.3 连接了哪些外部IP,传输了什么数据(抓包分析)

前三个包为TCP连接的三次握手

连接完成后,重新抓包,在kali中输入dir,发现wireshark又捕获到了许多PSH+ACK包,可以判断有数据在传输

3 报告内容

3.1实验后回答问题

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

答:利用主机自带的schtasks追踪启动情况、配置监控系统或进行快照差异比对。如本次实验中,利用sysmon工具,做好配置,一段时间后查看记录日志即可追查主机程序运行情况;或者用本次实验中的systracer工具,抓捕一些快照,进行差异对比。除实验中用到的工具外,还有Process Explorer工具、Process Monitor工具等选择

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

静态分析
  • 使用virustotal
    • 查看恶意软件的一些信息
  • 使用使用PEiD分析
    • 查看文件是否加壳
    • 进行脱壳
  • 使用PE Explorer分析恶意软件
动态分析
  • 使用systracer工具
    • 抓捕一些快照
    • 查看系统中注册表信息、文件、应用的改变
  • 使用Wireshark工具
    • 进行抓包分析
    • 查看可疑通信
  • 使用ProcessExplorer工具
    • 动态监视应用程序
    • 查看哪些程序使用和改变了系统文件

3.2实验总结与体会

第一次接触这么多新工具,有些不熟练,实验中几个被卡住的地方都是因为没搞懂工具的正确使用方式,对自己的表现不太满意。另外,我刚好在其他方面也在接触逆向分析,感觉自己在课堂上学的还是太浅。实战中无论代码量还是隐秘程度都远高于实验,更重要的是,实验归根到底是验证性质的过程,而实战中没有人会告诉你“这附近有你想要的东西”或是“监听一分钟就可以得到数据了,不用等太久”,这种不确定性带来的挑战非常恐怖。希望自己继续加油吧

20155301 Exp4 恶意代码分析

20155301 Exp4 恶意代码分析

实践目标

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

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

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

实践内容

2.1系统运行监控

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

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

2.2恶意软件分析

分析该软件在
(1)启动回连

(2)安装到目标机

(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

(3)读取、添加、删除了哪些注册表项

(4)读取、添加、删除了哪些文件

(5)连接了哪些外部IP,传输了什么数据(抓包分析)

3.实践内容

3.1 系统运行监控

(1)schtasks指令监控,首先生成一个txt文本文件,在里面输入

date /t >> c:\\4317netstatlog.txt 
time /t >> c:\\4317netstatlog.txt
netstat -bn >> c:\\4317netstatlog.txt

(2)将其后缀改为.bat,然后我们找到任务计划程序,然后新建一个任务,配置好触发器,让其五分钟执行一次。

(3)上述操作等同与 schtasks /create /TN netstat /sc MINUTE /MO 2 /TR "c:\\netstatlog.bat" 命令。

(4)用Excel分析记录下来的数据,通过数据进行分析。

(5)我们可以查看计算机在此在期间访问网络的软件。

(6)还可以看一下访问最多的主机连接到的外部地址

(7)我们用网站批量查询一下访问的IP的网站,访问最多的是天津市移动,最多的应用是MicrosoftEdge浏览器,猜想是不是电脑DNS服务器连接的天津的DNS服务器。

3.2 使用sysmon监视系统

sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。

通过收集使用Windows事件集合或SIEM代理生成的事件,然后分析它们,可以识别恶意或异常活动,并了解入侵者和恶意软件在网络上如何操作。

(1)首先编写配置文件,这次实验的配置文件中记录ProcessCreate, FileCreateTime。

<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>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </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>

    <FileCreateTime onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
    </FileCreateTime>

    <ProcessCreate onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
       <Image condition="end with">iexplorer.exe</Image>
       <Image condition="end with">360tray.exe</Image>
    </ProcessCreate>
  </EventFiltering>
</Sysmon>

(2)打开cmd,安装Sysmon,输入sysmon.exe -i config_file_name

(3)搜索 “事件查看器”在应用程序和服务日志——>Microsoft——>Windows——>Sysmon——>Operational

(4)观察记录的联网行为,同时并进行了回连操作。

事件一: 记录了事件的时间,发生的位置,使用的用户,安全等级和哈希值等等。

事件二: 记录了事件事件的发生的时间、目标文件的地址,我认为这个是kali回连所产生的事件,kali的目标文件是我们的后门程序。

事件三: 记录了交流用的协议,源IP地址、端口号、以及是否用了IPv6协议。

4.systracer分析

(1)从网络上下载systracer。
点击take snapshot来快照,建立4个快照,分别为:

snapshot#1 后门程序启动前,系统正常状态

可以看到后门程序启动之前,程序的进程中

snapshot#2 启动后门回连Linux

可以观察到图中openitem中的路径,猜测应该是kali使用backdoor.exe访问主机的目录等。

snapshot#3 Linux控制windows查询目录

snapshot#4 Linux控制windows在桌面创建一个路径

(2)对比下1、2两种情况

(3)对比3、4两种情况

使用Process Explorer

Process Explorer可以实时监控计算机的进程状态,我们可以用它来看看Meterpreter进程迁移的行为,首先运行后门程序,我们找到了它的进程,双击进程,我们可以看到详细信息,其中的TCP/IP,在其中我们可以看到源地址是本地主机,目的地址是虚拟机的地址,然后端口是5301,可以分析出后门是让本地对虚拟机进行回连。

Process Monitor

Process Monitor一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。 有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常 有用。

运行后门回连成功后进行刷新,可以看到后门程序出现在进程树和主界面中。

下面是后门程序和正常程序的对比,从图中我们可以看到在栈的模块/组件中,后门程序有一部分显示的是未知,而正常程序均是显示的已知模块和组件,我认为这一特点也可以作为判别恶意代码的一个标准。

PEiD分析

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

我们把上次实验加壳后的程序放到程序里面测试,其中我们可以看到peid查壳区段的入口点是UPX1,即(EP Section),从最下面一行我们知道后门程序加壳的软件是UPX 0.89.6-1.02/1.05-2.90。如果是未加壳的程序.则显示另一副图。

未加壳版本

使用wireshark分析恶意软件回连情况

可以清楚的看到本地主机IP:192.168.229.1,到kali IP192.168.229.135的TCP三次握手的连接,其中的[PUSH ACK]应该是kali向主机发送命令所捕获的TCP包,从这里我们应该可以分析出恶意代码的指令传送过程。

实验后回答问题

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

答: 监控方法有本次实验利用的脚本,新建一个任务,监控注册表、系统服务、开机启动项、文件创建、网络连接情况。

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

答: 可以通过Wireshark对于网络流量进行监察,是否有不正常的网络通信,并且可以把怀疑的目的IP地址放到网站上查询,进一步探测进程到底在和谁通信,还可以用Process explorer对进程进行监控,记录下可以进行的String字符串信息进行分析。

实验总结与体会

此次实验给我一次机会对电脑的所有进程进行监控,在监测到大量的进程信息后,通过Excel表格、各种分析工具进行筛选,可以把大量的信息整理归纳,以便于针对有问题的进程进行分析,并且通过各种软件我们可以知道进程到底在和谁通信,在什么时候通信,可以让我们知道恶意代码更加详细的信息,以便于后一步的禁用和阻止过程。

以上是关于Exp4 恶意代码分析-20201324的主要内容,如果未能解决你的问题,请参考以下文章

2019-2020-2 20175303柴轩达《网络对抗技术》Exp4 恶意代码分析

2018-2019 20165208 网络对抗 Exp4 恶意代码分析

2018-2019-2 网络对抗技术 20165318 Exp4 恶意代码分析

2018-2019 20165226 Exp4:恶意代码分析

# Exp4 恶意代码分析

Exp4 恶意代码分析