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

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

1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
监控注册表和文件改动、端口占用、进程驻留等操作。可使用本次实验的netstat记录网络连接情况然后分析,当然wireshark等工具也可以使用。

2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
可通过查看sysmon日志找到该进程邻近或同一时刻的进程动态,源IP、目的IP,端口号和进程号等,以及进一步分析它所创建的子进程。

实验内容

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

1、在windows命令行下输入命令schtasks /create /TN 20165228netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"创建名20165228netsta的任务计划

> TN:Task Name,本例中是netstat
> SC: SChedule type,本例中是MINUTE,以分钟来计时。本例中设置为1分钟
> MO: MOdifier
> TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口


2、通过notepad创建netstatlog.bat
内容如下:

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

然后将其放到C盘根目录下(需要管理员权限)
3、编辑任务操作

  • 进入管理工具,在任务计划程序中找到刚创建的任务20165228netstat
  • 操作页面里的启动程序修改为netstatlog.bat,并且在常规页面里开启以最高权限执行以防权限不够无法在C根目录创建.txt文件


    4、由于是每隔一分钟就记录网络情况,所以此时可以看到netstatlog.txt里已经有更新的内容。(然后等待很长一段时间)

    5、用excel生成图表分析

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

1、创建20165228monconfig.txt作为sysmon的配置文件
内容如下:

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

2、进入sysmon解压后的路径,执行sysmon.exe -i C:\20165228monconfig.txt开始安装sysmon

3、安装完成

4、如果修改了配置文件,需运行sysmon.exe -c C:\20165228monconfig.txt
5、进入事件查看器查看日志

  • 应用程序和服务日志/Microsoft/Windows/Sysmon/Operational路径下可以找到sysmon日志文件

  • 运行之前制作的后门回连我的kali

  • 查询得到进程号为21672

  • 在日志中以进程号为关键词搜索相关信息

  • 首先找到了我的后门程序

  • 然后发现它还创建了一个子程序conhost.exe

任务三:恶意软件分析

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

1、使用VirusTotal分析恶意软件

  • 将后门程序丢到VirusTotal中进行分析,并得到SHA-1、MD5摘要值、文件类型、大小、TRiD文件类型识别结果和算法库支持情况

    2、使用Process Monitor分析恶意软件
  • 先反弹连接kali,并且得到进程号15152
  • 发现有很多记录,找出需要的很不容易。我发现它有filter功能,于是我以pid is 15152为条件进行了过滤
  • 得到结果

    所以我的后门应该是修改了我的注册表
    3、使用Process Explorer分析恶意软件

    4、使用PEiD分析恶意软件
  • 加壳:
  • 不加壳:

    5、使用systracer分析恶意软件
    保存了两个快照:正常运行和成功回连
  • 通过compare发现注册表里出现了改动
  • 查看后门软件的“opened handles”来对比
  • 查看后门软件的"open port"来对比
    其中192.168.43.219是win10 IP 192.168.43.171是kali IP

问题

  • 在安装system monitor时,在按照博客编写配置文件开始执行安装后,提示incorrect or unsupported schema version 3.10 . current sysmon schema version 4.20意思是当前sysmon schema 版本为4.20,即3.10为不支持或不正确的版本号。
    解决:我猜测与编写的配置文件有关,刚好在其中找到了有关版本的那一项,该为4.20即可成功安装。

实验感想

  • 在此次实验中,我使用了许多恶意代码分析软件,从网络连接和端口、系统注册表变化等多方面的监控,然后具体定位到某一个或某一些进程后进入深入分析。一定程度上增加了我们自己排查恶意代码的能力,不再那么依赖杀软,并且对恶意代码的运行情况也有了一些理解。

posted on 2019-04-04 17:29  月半月半白勺  阅读(274)  评论(0编辑  收藏  举报

导航