Exp4 恶意代码分析

Exp4 恶意代码分析

实验过程

1.系统运行监控

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

  • 在命令行中输入以下命令,创建任务计划netstat1312
schtasks /create /TN netstat1312 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > d:\netstatlog.txt

  • 在D盘中创建一个脚本文件 netstat1312.bat(先创建一个.txt文件再修改后缀名为.bat),并写入以下内容:
date /t >> d:\netstat312.txt 
time /t >> d:\netstat1312.txt 
netstat -bn >> d:\netstat1312.txt
  • 在Windows的任务计划程序中,可以查看到新创建的任务

  • 双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的 netstat1312.bat 批处理文件的位置,点击确定。

  • 在"条件"选项卡中可以看到,电源选项中默认操作为“只有在计算机使用交流电源时才启动此任务”,那么使用电池电源时就会停止任务。为了我们统计足够多的数据,这个选项取消掉。
  • 点击运行,可以看到D盘下出现了三个文件如下

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

    • 导入文本数据:新建excel文件->选择上方“数据”->选择“导入数据”->选择“导入数据”->选择“直接打开数据文件”
    • 选择数据源文件netstat1312.txt
    • 依次选择其他编码、分隔符号,然后将分隔符号的所有选项都选中,点击完成即可
  • 创建数据透视图

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

    • 将字段列表拖到下方的行和值中,就生成了我们所需的数据透视图

  • 从图中可以看出位居第一位的是TCP,连接的外部地址是我打开的相关页面的,大多为http和https连接

  • 第二多的是firefox.exe,是火狐浏览器

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

  • 明确要监控的目标

    我在这里选择的是:

    • 进程创建ProcessCreate

    • 进程创建时间FileCreatTime

    • 网络连接NetworkConnect、远程线程创建CreateRemoteThread

  • 编写xml配置文件

    在sysmon所在的文件夹下创建文件sysmon20201312.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>
    

  • 启动sysmon,要以管理员的身份运行命令行

    输入命令Sysmon64.exe -i sysmon20201312.xml,安装sysmon,结果如下:

  • 使用事件查看器分析进程

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

      在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、级别、任务类别、详细信息等。

    • 运行实验二中生成的后门程序20201312_backdoor.exe,并启动回连到kali虚拟机中。我们可以在事件查看器中找到此条日志

  • 虚拟机成功获取windows的shell

2.恶意软件分析

2.1使用VirusTotal分析恶意软件

  • 把实验二中生成的后门程序(已接收到win主机里的)在VirusTotal进行分析,结果如下:55/70,被杀软查出来的比率还是蛮高的

  • 继续查看此恶意软件的基本属性,可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。

  • 还可以看到此软件的头部、各个节的相关信息,以及引入的动态链接库

2.2使用wireshark抓包分析恶意软件

  • 运行实验二生成的后门20201312_backdoor.exe,在kali中回连。把过滤规则设置为ip.addr == 192.168.233.136,只留下与kali机有关的包

    我们可以看到前三个包为TCP连接的三次握手

  • 在kali中输入dir,发现wireshark又捕获到了许多PSH+ACK包,可以判断有数据在传输

2.3使用Systracer动态分析

  • 下载systracer

  • 点击右侧的take snapshot,拍摄快照。点击start开始,不用点击stop,60s后拍摄完毕会自动停止。

  • 总共截了以下三张快照:

    • 快照一:未移植后门程序,保存为Snapshot #1
    • 快照二:运行后门程序并在kali中实现回连,保存为Snapshot #2
    • 快照三:在kali中使用dir指令,保存为Snapshot #3
  • 接下来我们对比快照,分析恶意软件在执行过程中系统有哪些变化

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

    • 对比快照一和快照二(后门程序运行前后)

可以看到新增开放了我们的后门程序`20201217_door.exe`连接的本地地址和目标地址以及端口号
  • 对比快照2和快照3 (3运行了dir指令)

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

2.4 使用Process Explorer分析恶意软件

Process Explorer可以监听到电脑上所有正在运行的程序,找到可疑行为,仔细观察是否有后门程序

  • 打开procexp.exe,定位到后门程序20201312_backdoor.exe

点击TCP/IP可以看到相应的端口号

问题与解决

运行netstat1312任务后生成的netstat1312.txt文件内容如下

解决

双击netstat1312任务,勾选“使用最高权限运行”

实验后回答问题

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

    答:①用schtasks设置任务,然后筛选出可疑的网络行为。但凡攻击者想进行远程操作,建立了连接,就一定会被记录到

    ②使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输

    ③使用SysTracer工具,每60s拍摄一张快照,可以通过对比不同快照来查看是否有可疑行为。

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

    答:①使用VirusTotal分析恶意软件,上传后查看detail

    ②使用wireshark查看运行时传输信息的方式以及内容、端口以及目的地址是哪里

    ③使用Systracer工具拍摄快照,查看其对注册表和文件的修改

实验总结与体会

这次实验和前面的三次不太一样,前面三次重点在操作,目的是通过输入一系列命令、运行一些攻击程序来成功获取shell。这次实验重点在于分析,始终围绕着一个20201312_backdoor.exe,通过各种软件对它进行解剖。对于每一个软件分析出来的结果,我理解得还不是很透彻,有点混乱,还要多花时间把它弄通。

posted @ 2023-04-06 22:25  20201312许铮怡  阅读(32)  评论(0编辑  收藏  举报