Exp4 恶意代码分析

Exp4 恶意代码分析

1.实践原理说明

1.1 实践目标

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

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

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

1.2 实践内容

任务一:系统运行监控

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

任务二:恶意软件分析

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

  • 读取、添加、删除了哪些注册表项
  • 读取、添加、删除了哪些文件
  • 连接了哪些外部IP,传输了什么数据(抓包分析)
  • 2.实践过程记录

    任务一:系统运行监控 

  • 一、使用schtasks指令监控系统

  • Step1:在C盘根目录下先建立一个 netstatlog.dat 文件。

    我们先创建 netstatlog.txt 文件,输入以下内容:

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

然后将文件后缀改为 .dat 。

Step2:在cmd下输入  schtasks /create /TN netstat1330 /sc MINUTE /MO 2 /TR "c:\netstatlog.bat"  命令创建任务计划 netstat1330 

  •  TN :TaskName的缩写,这里我们创建名为 netstat1330 的任务计划
  •  sc :计时方式,我们选择用分钟计时,所以写MINUTE 
  • TR :Task Run的缩写,我们要运行C盘下刚刚写好的脚本文件 netstatlog.bat ,填入即可。

Step3:打开 任务计划程序 ,如下图所示:

可以看到我们刚刚创建的任务计划 netstat1330

双击我们这个任务计划

点击  操作  ——>  编辑

将 程序或脚本 改为之前创建的 netstat.bat 批处理文件——>点击  确定

注意:这里还需要设置以最高权限运行。

点击  常规  ——>选中 以最高权限运行 ,如下图所示:

Step3:在任务中还可以设置其他的东西,例如:

在  条件  中可以看到电源这里是默认选中“只有在计算机使用交流电源时才启动此任务”,如果我们的电脑没有接入电源,他就不会执行。

所以我们取消这个选项

在  设置  中还可以选择任务运行时间,我们设置为3天

 Step4:一段时间之后,我们就可以在 netstat1330.txt 文件中看到我们电脑的联网记录了

Step5:一段时间之后,我们停止执行这个任务,来分析一下数据。

 首先我们打开excel新建一个表

由于是新版excel,所以我们需要先添加旧版的导入文本功能。

点击左上角的 文件 ——> 选项 ——> 数据 ,把下面 从文本(T)(旧版) 打勾

然后点击左上角的 文件 ——> 传统向导 ——> 从文本(T)(旧版) ,选择我们的刚刚生成的 netstat1330.txt 文件,就可以导入数据啦~

接下来我们做成统计图,看起来更清晰

选中我们要分析的数据——也就是第二列,点击 数据透视表

 以下是我得到的图表:

  • 可以看到今天这段时间使用最多的是 chrome 和 QQ ,这是正常的,因为我一直在使用
  •  wps 和 zerotier这些软件我没有打开过,但是可以看到他们仍然在后台运行
  • 其他一些程序都搞不清楚是干啥的,这样看起来这是危险的,可能我以前使用计算机没有很强的安全意识,下载了一些来源不明的软件。今后一定要加强自己的安全意识。

 二、系统运行监控——使用sysmon工具监控系统

Step1:下载sysmon

Step2:配置自己的xml文件并存在 Sysmon 所在目录下。

以下是我配置的 sysmon1229.xml 文件:

这里要注意的是:配置文件第一行的 Sysmon 的版本号要和下载的 Sysmon 版本号相同。

右键点击下载的 Sysmon64.exe ,点击 详细信息 查看版本号

  sysmon1229.xml 文件内容如下:

<Sysmon schemaversion="13.02">
<!-- 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>
  <Image condition="end with">firefox.exe</Image>
</ProcessCreate>

<ProcessCreate onmatch="include">
  <ParentImage condition="end with">cmd.exe</ParentImage>
</ProcessCreate>

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

<NetworkConnect onmatch="exclude">
  <Image condition="end with">chrome.exe</Image>
  <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">firefox.exe</TargetImage>
  <TargetImage condition="end with">winlogon.exe</TargetImage>
  <SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>

配置文件内容解释:

    •  onmatch 选项可以设置两种
      •  include 黑名单,记录
      •  exclude 白名单,不记录
    •  sysmon 工具中可以选择一些事件过滤器,包括(按照我配置文件的顺序依次如下):

      •  ProcessCreate 进程创建。
        • 在我的配置文件中,我选择不记录chrome和Firefox两个浏览器的进程
        • 但是记录使用了cmd的进程
      •  FileCreateTime 进程创建时间。
        • 我的配置文件中,选择不记录chrome和Firefox两个浏览器相关进程
      •  NetworkConnect 网络链接。
        • 这里我还是选择过滤掉两个浏览器的网络连接、本机网络(127.0.0.1)连接和目的端口为137(提供局域网中ID或IP查询服务)的连接服务。
        • 记录下目的端口为80(http)和443(https)的网络连接。
      •  CreateRemoteThread 远程线程创建。
        • 这里我只设置了黑名单,记录下的内容包括:
          •  explorer.exe Windows程序管理器或者文件资源管理器,用于管理Windows图形壳,包括桌面和文件管理,删除该程序会导致Windows图形界面无法使用,对我们的计算机还是很重要的,所以我加入了这个文件。
          •  svchost.exe 一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个该文件的进程。
          •  winlogon.exe Windows NT 用户登陆程序,用于管理用户登录和退出。该进程的正常路径应是C:\Windows\System32,且是以 SYSTEM 用户运行,若不是以上路径且不以 SYSTEM 用户运行,则可能是 W32.Netsky.D@mm 蠕虫病毒
          •  powershell.exe 专为系统管理员设计的新 Windows 命令行外壳程序,该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。命令行用户和脚本编写者可以利用 .NET Framework的强大功能。
    • 以上是我所配置文件的内容,除了上述内容,sysmon还有以下事件过滤器:
      •  ProcessTermina 进程结束
      •  DriverLoad 驱动加载
      •  ImageLoad 镜像加载
      •  RawAccessRead 驱动器读取
      •  ProcessAccess  进程访问
      •  FileCreate 文件创建
      •  RegistryEvent 注册表事件
      •  FileCreateStre 文件流创建
    • 以上都可以根据需要进行配置

Step3:安装Sysmon。

在 powershell 中进入 Sysmon 的路径下,输入 Sysmon64.exe -i sysmon20191229.xml

安装成功!

*如果安装不成功,尝试在Sysmon64.exe -i sysmon20191229.xml 命令前加上 .\ ;

*如果出现“you need to launch system as an administrator...”,按“win+X”进入“windows Powershell(管理员模式)”,再次进入sysmon文件夹下输入命令即可安装成功。

Step4:搜索栏进入“事件查看器”,依次点击 应用程序和服务日志/ microsoft/ windows/ Sysmon/ Operational 

 这就是Sysmon按照我们的配置文件要求记录的日志,包括:事件、事件ID、任务类别、详细信息等,双击一条记录,就可以看到了.

任务二:恶意软件分析

我们可以使用Exp3中生成的后门程序进行分析。

1.快照对比——使用systracer工具

Step1:下载安装systracer工具

Step2:抓捕快照

实验中我抓捕了五个快照如下:

1:未移植后门程序

 2:移植后门程序后,运行后门程序并在kali中实现回连后

3:在kali中使用dir指令后

4:在kali中使用screenshot指令后

 Step3:对生成的快照进行对比分析

 通过右下角的 compare 键或者 View Differences Lists 比对各快照,可以选择Only Difference只查看不同的项

  • 对比快照一和快照二(植入后门程序)
    • 可以清楚地看到我们把后门程序放在了d:\大三下\网络对抗技术\实验\Exp4\ 目录之下

 我删除了Vivado 的安装包,也可以看出来

 我下载了新的软件放在 D:\大三下\网络对抗技术\实验\Exp4\软件 目录下,可以看到这个目录发生了变化

 也可以看到改变的记录、增加的文件等等,绿色的就是新增的文件

  • 对比快照二和快照三(后门启动前与启动后):
    • 可以看到新增了运行着的后门程序
    • 可以看到我新增的两张实验截图~

    •  可以清楚地看到注册表项中 HKEY_USERS 新增的项

    • 可以看到新增了我们刚刚回连的后门进程
    • 单击可以详细地看到回连的kali IP

 对比快照三快照四(kali上执行dir指令):

  • 修改了 HKEY_LOCAL_MACHINE 根键中的一些内容
  • 在微软的Windows操作系统中,HKEY_LOCAL_MACHINE保存了注册表里的所有与这台计算机有关的配置信息,是一个公共配置信息单元。
  • 修改了 HKEY_USERS 的一些信息,但是这些我们无法查看
  • HKEY_USERS包含了缺省用户设置和登录用户的信息。
  • 在 d:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\Log\ 中增加了一些新文件
    • 这个文件应该也是一个日志记录,会占据内存很大空间。
    •   这里还可以看到我使用QQ后电脑文件的变化,甚至可以看到我的QQ号,记录的还是很细的

    •  Applications 改变的是一些系统启动所需要的文件 

 对比快照四快照五(kali上执行screenshot指令)

  • 可以看到 HKEY_LOCAL_MACHINE 中新增了一些文件

 

 其他注册表项也发生了一些变化,但是我们无法查看

 

 文件也发生了变化,还是看不了

 

 

2.kali中使用 wireshark抓包分析:

主机ip:192.168.43.141 虚拟机ip:192.168.43.183

 

  • 点击右上方的kali图标,搜索wireshark,进入wireshark

  • 选择需要监听的网卡,双击即可开始监听

 

  • ncat传送后门程序

  • 我这里用的payload是windows/meterpreter/reverse_tcp
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    set LPORT 1227
    set LHOST 192.168.43.183
    • 前两行先由kali端向主机端发送连接请求,被拒绝了,回了一个[rst,ack]包。
      再看3-5行,这是典型的tcp三次握手建立连接
      这里的包可以结合自己的操作看,从图中可以看出正好被拒绝了一次,然后再建立连接。

 

现在来看看下面的详细信息,因为用的tcp反弹式连接,所以基本上都是tcp包,详细信息一次类推
第一行,帧Frame447指的是要发送的数据块,其中,所抓帧的序号为36838,捕获字节等于传送字节数:7354字节
第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为08:00:27:ca:97:51,目标Mac地址为0c:dd:24:8e:94:37
第三行,IPV4协议,也称网络协议,是网络层;源IP地址为192.168.43.183,目的IP地址为:192.168.43.141
第四行,TCP协议,也称传输控制协议,是传输层;源端口(55538);目标端口(12270);序列号(1);ACK是TCP数据包首部中的确认标志,对已接收到的TCP报文进行确认,值为1表示确认号有效;长度为7300字节
第五行,数据共有7300字节

可以看出来ncat是将后门程序分段传输过去的哈,我生成的后门程序大小为73802字节,不知道少的那216字节去哪了。

打开msfconsole,并设置打开kali监听,并在Windows中启动后门程序,抓包;getshell,并dir后的包

 

getshell并没有获得什么信息,而dir后主机发送了一个1140字节的数据包,可能是目录的文件信息。

3.实验问题回答

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

  • 创建计划任务:使用schtasks,每隔一段时间对主机联网状态的记录,分析是否有可疑程序
  • 监控系统:使用sysmon编写配置文件,在事件查看器中的日志查看有无异常事件
  • 监控流量:使用wireshark抓包进行数据流量分析
  • 监控进程:使用Process Explorer对进程进行监控
  • 监控端口:使用nmap查看是否有异常端口开放

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

  • 查看程序进程号和开放的端口号。

  • 使用PEiD进行外壳检查。

  • 使用systracer分析,查看其对注册表、dll文件和进程的修改。

  • 使用wireshark进行抓包分析,查看异常流量。

  • 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

4.实验总结感悟

本次实验主要内容是监控自己系统,然后分析之前实验生成的后门程序,并学习怎样查看分析计算机是否被入侵。通过实验,才发现系统下运行的软件不止是你打开的那些,在你下载一些软件过程中偷偷携带的附属品也在运行,但我却不知道还有他们,难怪电脑越来越卡了。在恶意代码分析的过程中,认识了解了很多系统文件和他们的作用。入侵攻击是非法的,所以检测入侵更加有意义和实用性,在本次自己动手实验过后,对于恶意代码有了不同的认识,也会让我在以后更安全的利用网络资源。

 

posted @ 2022-04-07 22:17  20191229XYZ  阅读(126)  评论(0)    收藏  举报