Exp4-恶意代码分析 20202211王宏韬

发布时间 2023-04-06 16:11:04作者: 望红桃

目录

1. 实验后回答问题

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

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

2. 实验总结与体会

3. 实践过程记录

  3.1  系统运行监控

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

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

  3.2  恶意软件分析

 

1. 实验后回答问题

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

答:windows自带的schtasks指令,设置一个计划任务,监视系统进程的运行情况。在一段时间后,将所得数据在Excel中得到数据透视图,继续进行分析。或者使用Sysmon,编写配置文件,记录有关的系统日志。或使用Process Explorer工具,监视进程执行情况。或使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。或使用SysTracer,一定时间间隔拍摄一张快照,对比不同快照,查看是否有可疑行为。

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

答:可以对其进行两种分析,静态分析与动态分析。

  静态分析可以用PE Explorer工具,对该程序进行抽丝剥茧地探查,这款工具的反汇编功能很强大,还可以扫描和显示处该程序依赖于外部的DLL列表,知道这个进程都有哪些功能模块。或使用IDA对程序进行静态分析,反汇编代码并进行进一步分析动态分析可以使用Wireshark抓包,分析恶意软件的通信过程。或用SysTracer记录不同时刻系统的快照,对比不同时刻系统在注册表、磁盘文件、应用程序活动等方面的差异,发现该进程或程序都对自己的电脑做了哪些修改,好让自己知道自己应该采取什么样的应对措施进行弥补。还可以Process Explorer可以看的很清楚这个进程的实施者、端口等等

 

2. 实验总结与体会

  本次实验主要是基于以往实验积累下来的经验与相关后门知识的建立,重点在于利用相关软件对各种后门程序行为操作的分析,以此来更加深化了解后门程序原理。通过观察自己创建的后门程序,我学习到了更多计算机系统的知识,与后门行为的情况,让我更加明白单纯靠简单的杀毒软件、安全软件是远远不够保证计算机的安全的。作为计算机专业学生,需要经常监控自己的计算机进程,一旦发现有异常行为,就马上去调查该程序性质,及时杀掉进程,并为防火墙添加补丁,防止二次威胁。

3. 实践过程记录

  3.1  系统运行监控

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

在命令行中输入以下命令,创建任务计划netstat2211

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

 

 

在F盘中创建一个脚本文件 netstat2211.bat

写入批处理代码

date /t >> f:\netstat2211.txt 
time /t >> f:\netstat2211.txt 
netstat -bn >> f:\netstat2211.txt

 

 

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

 

 将其启动文件修改为我们刚刚制作的批处理文件netstat2211.bat

 

 再修改启动操作的权限级别为最高(防止启动bat文件权限不够

 

 等待运行后,可以查看到文件已经记录了

 

 将其导入EXCEL表格,筛选好对应字段,利用数据透析图计算每行的值

 

 可得如下数据:

 

 

分析:可以看出连接频次最高的就是TCP连接,这是由于此时本机有大量的网页链接(http和https连接),利用的是TCP连接;第二频次的是wpscloudsvr,即我此时正在使用wps,且应该是开启了云端同步功能备份,因此在编辑的过程中,cloud程序一直在连接同步;再者即是onedrive,Windows自带的云端软件。

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

(1)明确要监控的目标。

  • 进程创建ProcessCreate
  • 进程创建时间FileCreatTime
  • 网络连接NetworkConnect
  • 远程线程创建CreateRemoteThread

(2)编写xml配置文件:

编写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">firefox.exe</Image> 
    </ProcessCreate>

    <FileCreateTime onmatch="exclude" >
      <Image condition="end with">firefox.exe</Image>
    </FileCreateTime>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">firefox.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结尾的进程记录。(大家如果有用别的浏览器的:比如Edge,在这里可以替换)

  • 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 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

 

 (3)启动sysmon(要以管理员的身份运行命令行)

输入命令,安装sysmon

Sysmon64.exe -i sysmon20202211.xml

 

 

 

 (4)使用事件查看器分析进程

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

运行后门程序20202211backdoor2.exe,并启动回连到kali虚拟机中。我们可以在事件查看器中找到此条日志

 

 输入shell指令,获得cmd

 

 

  3.2  恶意软件分析

wireshark抓包分析:

  打开wireshark开始抓包,在Kali中打开msfconsole并进行监听,在Windows上运行20202211backdoor3.exe后门程序,Kali攻击机中通过TCP反弹获取到Windows端口
  过滤wireshark捕获的包,筛选ip.addr == 192.168.203.128 && tcp

 

 

 如上图,kali与Windows实现三次握手

 

静态分析:

  用peid检测初始后门程序壳为

yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h) [调试] *

  

 

 

 因为此程序是直接生成的后门程序,并没有加壳封装,因此猜测应该是简单的杂指令伪装成yoda's Protector v1.02 (.dll,.ocx) -> Ashkbiz Danehkar (h)

  用peid检测加压缩壳的后门程序壳为

 

 

 

 

 

UPX v0.89.6 - v1.02 / v1.05 - v1.22
UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo [Overlay]

 

显示出UPX的加壳版本号,表示扫描没有问题。

 

 

动态分析:

打开procexp.exe
Process Explorer可以监听到电脑上所有正在运行的程序,找到可疑行为,仔细观察是否有后门程序
通过Process Explorer中的Find工具查找使用了cmd的进行,直接定位到后门程序20202211backdoor3.exe

 

 

 

 因为我的后门程序连上kali控制机后,一直在shell控制台里使用cmd命令(dir等)因此可以通过查看哪些应用程序在使用cmd来定位是否存在后门威胁行为。

一旦发现该后门行为,则可以使用工具先将其杀掉,再为计算机作相应保护