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

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

一、实验目标

  • 监控你自己系统的运行状态,看有没有可疑的程序在运行。
  • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件
  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

二、实验内容

1、系统运行监控

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点是可疑行为。

2、分析软件操作

  • 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 连接了哪些外部IP,传输了什么数据

三、实验步骤

1、使用schtasks指令监控系统

  • (1)使用命令schtasks /create /TN 20175214 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt" 创建计划任务20175214

    • 其中,部分参数的含义:
      • TN:任务名;
      • sc:计时方式;
      • TR:计划运行的指令;
      • > :表示输出重定向,将输出存放在c:\netstatlog.txt文件中
  • (2)在C盘中创建一个名为netstat.bat的脚本文件,写入以下内容:

date /t >> c:\Kali\netstat.txt
time /t >> c:\Kali\netstat.txt
netstat -bn >> c:\Kali\netstat.txt
  • (3)打开任务计划程序,可以看到新创建的这个任务:

  • (4)勾选不管用户是否登录都要运行使用最高权限运行

  • (5)双击此任务,点击操作->编辑,将程序或脚本改成之前创建的netstat.bat文件;

  • (6)接下来等待脚本执行一段时间后对数据进行处理,整理好的数据图表如下:

  • 统计了大概一天的数据,看了一下,没有什么可疑的连接,基本上都是常用的软件例如浏览器之类的,以及微软系统服务。

2、使用sysmon工具监控系统

  • (1)下载Sysmon,Sysmon可以监控几乎所有的重要操作 下载链接;
  • (2)创建xml配置文件,对Sysmon的监控配置参数,在Sysmon所在的目录下创建相应的配置文件sysmon5214.xml:
<Sysmon schemaversion="10.42">
  <!-- 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>

    <ProcessCreate onmatch="include">
      <ParentImage condition="end with">cmd.exe</ParentImage>
    </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">firefox.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>
  • 其中主要的一些参数老师上课都说过了,简要地提一下:

    • exclude:不用记录;
    • include:记录;
    • onmatch:匹配;
    • ProcessCreate:进程创建
    • NetworkConnect:网络连接
  • (3)以管理员权限打开cmd,进入sysmon所在的文件夹,输入Sysmon.exe -i sysmon5214.xml.

  • (4)在计算机管理中打开事件查看器,在应用程序和服务日志/Microsoft/Windows/Sysmon/Operational中,就可以看到按照xml文件要求记录的新事件,以及事件ID、任务类别以及详细信息

3、使用PEiD分析恶意软件(静态分析)

  • 分析查看使用了压缩壳UPX的后门程序,可以检测出来:

  • 分析查看使用了压缩壳UPX和加密壳的后门程序,无法检测出来:

  • 可见PEiD无法检测出加密壳

4、使用VirusTotal分析恶意软件(静态分析)

  • 将后门软件上传VirusTotal,可以查看恶意代码基本属性,例如SHA-1、MD5摘要值、PEiD检测结果之类的信息:

  • 也就是说VirusTotal除了使用杀软检测,还使用了各类静态分析工具进行了检测,上次实验并没有细看。

5、使用wireshark抓包分析(动态分析)

  • 打开wireshark,选择wlan,开始抓包后,再启动恶意程序回连kali虚拟机,回连成功后停止捕包,然后进行筛选

    • 其中kali的ip为192.168.177.132,win7虚拟机的ip为192。168.177.133
  • 可以看到一开始建立了三次握手连接,然后传输了大量数据包:

  • 再次开始抓包,kali调用屏幕拍照webcam_snap和获取uidgetuid,然后停止捕包,进行查看

    • 使用时getuid出现了3条记录:

    • 使用时webcam_snap出现了很多条记录,应该是由于图片的空间比较大导致的:

6、使用Systracer分析

  • 安装并运行systracer。

    • 由于本机快照速度太慢了,这部分用win7虚拟机来做。
    • 捕获四个快照如下:
      • 快照一:未执行程序;
      • 快照二:运行后门程序并在kali中实现回连;
      • 快照三:执行dir 指令;
      • 快照四:执行exit 指令。
  • 对快照1、2进行对比:

    • 选中两个快照后点击右下角的compare:

    • 选中only difference,可以看到增加了5214bd.exe,一些dll文件,以及端口的开放情况:

  • 对快照2、3进行对比:

    • 删除了一个叫wkssvc的文件,我百度搜了一下,只能查到是windows的,不知道是什么作用。
  • 对快照3、4进行对比:

    • 可以看到端口关闭

    • 和一些文件和键值的删除,应该是在做痕迹扫除

三、基础问题回答

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

  • 一方面可以使用sysmon定期查看日志,监控是否有不知名进程创建和注册表项目的修改;
  • 另一方面可以使用windows计划任务统计是否有未知程序多次链接ip。

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

  • 第一,静态分析,使用工具分析,例如实验中用到的PEID等工具直接解析程序;
  • 第二,动态分析,使用快照有点不太方便,因为日常使用的电脑内容太多,可以在虚拟机里进行测试;还有就是利用wireshack捕包分析。

四、心得体会

这次实验相比于之前的实验最主要的就是身份的转变,由攻转防,实践了很多工具进行对恶意软件的监控和分析,身份转换让我对网络攻防也有了更实际的体验。在亲身体会防御的难度后也更明白了系统安全和良好的浏览习惯的重要性,通过查阅资料也锻炼了我的自学能力,收获很大。

posted @ 2020-04-16 22:11  20175214lzc  阅读(450)  评论(0编辑  收藏  举报