2016310Exp4 恶意代码及分析

 

网络对抗 Exp4 恶意代码分析

    • 实验内容
      • 系统运行监控
      • 恶意软件分析
      • 报告评分
    • 基础问题回答
    • 实践目标
    • 实验内容
      • 1. 系统运行监控——计划任务
      • 2. 系统运行监控——利用Sysmon
      • 3.1恶意软件分析—— virscan网站
      • 3.2恶意软件分析——PEID
      • 3.3恶意软件分析——PE Explorer
      • 3.4恶意软件分析——Process Monitor
      • 3.5恶意软件分析——Process Explorer
      • 3.6恶意软件分析——Systraer
      • 3.7恶意软件分析——Wireshark
    • 实验中遇到的问题及解决方法
    • 实验感想

一、基础问题回答

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

  • 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放、注册表信息等;
  • 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件查看;
  • 使用任务管理器->进程,监视进程执行情况,查看是否有可疑程序运行。

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

  • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改,进行快照的对比。
  • virscan集合各种杀软,对指定文件进行分析定性。
  • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。

二、实践目标

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

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

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

三、实践内容

1、windows计划任务

  • 以管理员身份打开cmd,使用指令schtasks /create /TN 4310netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt创建计划任务4310netstat,记录每1分钟计算机联网情况:
  • 在c盘下手动创建一个netstatlog.txt文件

       

  • 在桌面建立一个20164310netstatlog.txt文件,内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt

        将后缀名改为.bat后,用管理员身份将该文件放入C盘

       

  • 打开计算机管理的“任务计划程序库”,可以查看到4310netstat任务就绪(这里忘记截图了)
  • 打开其属性,修改其指令为20164310netstatlog.bat
  • 可以在C盘的netstatlog.txt文件中查看到本机在该时间段内的联网记录:

         

         

2、使用sysmon工具

  • 首先创建配置文件sysmon4310.txt,并输入如下的代码:

        这里需要注意的是第一行代码那个版本如果谢3.10的时候出现问题那么就要换成4.20

<Sysmon schemaversion="4.20">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">
      <Signature condition="contains">microsoft</Signature>
      <Signature condition="contains">windows</Signature>
    </DriverLoad>
    
    <NetworkConnect onmatch="exclude">
      <Image condition="end with">chrome.exe</Image>
      <Image condition="end with">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </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工具
  • 以管理员身份打开命令行,使用指令Sysmon.exe -i安装sysmon

          

  • 配置sysmon:输入命令Sysmon.exe -i sysmon4310.xml配置sysmon

         

  • 安装成功之后在事件查看器中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational

          

  • 然后在linux对windows进行控制,点击输入getpid,得到了进程号10386,然后在Image那一行出现了正在进行的后门

       

3、恶意软件分析

 (1) 静态分析:文件扫描

            将上次生成的jar文件放到virscan上扫描:

             

          然后点击哈勃分析:

          

         可以看到这个后门的种种行为如关键行为,进程行为等,此恶意代码是通过一个反弹链接来控制受害主机,并在受害主机中通过创建进程,船舰删除文件,创建事件对象等等,对目标主机有很大的威胁。

 (2)用peid工具识别文件格式

    先把一个没有加壳的后门放进去,结果什么也没有发现

   

    然后把一个加壳的后门放进去,发现了压缩壳

    

   同时peid也可以进行脱壳,右下角按钮点下显示的是插件列表,其中有一些脱壳的插件,不过只是一些简单的压缩壳而已,比  如upx等。

(3)使用PE Explorer

  先导入没有加壳的后门程序,点击View->Import,查看程序所引用的dll库

再导入加壳的后门

可以发现加壳之后所引用的dll库明显减少,通过百度查到了这几个dll库分别代表了什么:

KERNEL32.dll:是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理。

USER32.dll:Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。它是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。

 msvcrt.dll:是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现。

ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。

 

(4)使用Process Monitor

找到了后门程序,打开看看

可以看到该后门的路径,以及是用TCP进行操作的。同时也能看到它在电脑中的位置,打开第三项Stack可以看到所引用的dll库。

 

(5)使用Process Explorer

 

我找到了我正在运行的后门程序,可以看到反弹链接的ip和端口号

 

也可以看到该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等。

(6)使用Systracer

 点击右侧的take snapshot,存储快照(因为那个sys总是出现问题所以我快照名字比较混乱这里就不放名字了)

       快照一:未移植后门程序

       快照二:移植后门程序

       快照三:运行后门程序并在kali中实现回连

       快照四:在kali中使用dir指令

       快照五:在kali中使用record_mic指令

 对比快照一、二,可以发现多了个后门程序:

对照二、三可以发现多了一个TCP链接:

并且该后门文件生成了很多的文件和目录:

对照三、四,可以发现对对key_local_machine根键中的内容进行了修改:

对照快照四、五可以发现注册表中有以下变化(隔的时间有点久,今早才创建的快照四)

(7)使用wireshark

   在没有进行回连的时候启动抓包,回连之后暂停抓包:

   然后过滤ip(虚拟机的ip为192.168.1.104,因为只看虚拟机和主机之间的通信)得到了以下内容:

   传输的数据包括Windows向Kali发出TCP同步请求包SYN,Kali给Windows发出的SYN同步请求包和确认包ACK。

 4、实验中遇到的困难和解决方法

这次实验也没遇到什么太大的困难,主要就是那个Sysmon安装不上,然后出现了以下问题:

解决办法就是你把那个xml文件放到C盘windows下,因为上面提示了那个xml文件的confugration(配置、路径)不对。

 

 5、实验感想:

这次实验第一感觉就是信息太多,特别考验我们的信息处理能力,特别是在分析注册表修改的时候,一个点进去又会扯出很多问题,深刻感觉自己知识的缺乏,不过这些软件倒是很好用的,比上几次实验敲代码分析简单多了,希望异或能够用到他们。

 

posted on 2019-04-07 16:13  丢你老鼠  阅读(122)  评论(0编辑  收藏