2019-2020-2 20175230滕星《网络对抗技术》Exp4 恶意代码分析

1、实践目标

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

2、实践内容

1.系统运行监控

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

2.恶意软件分析

  • (1)启动回连
  • (2)安装到目标机
  • (3)及其余任意操做时。该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 链接了哪些外部IP,传输了什么数据(抓包分析)

3、实践步骤

任务一 系统运行监控

(一)使用如计划任务,每隔一分钟记录本身的电脑有哪些程序在联网,链接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。

  • 1.命令建立计划任务netstat5230
    schtasks /create /TN netstat5230 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat5230.txt"

命令解释:
TN netstat5230:说明计划任务名
sc MINUTE:表示已分钟为单位的计时方式
TR "cmd /c netstat -bn:cmd运行指令"netstat -bn",b会显示可执行文件名算法

  • 2.在C:盘下建立内容以下的批处理文件(能够先建立.txt文件而后修改后缀名为.bat)
date /t >> c:\netstat5230.txt
 time /t >> c:\netstat5230.txt
 netstat -bn >> c:\netstat5230.txt
  • 3.修改计划任务chrome

  • 在开始处右击打开计算机管理->任务计划程序,找到上述建立的任务
    shell

    • 打开任务,操做->编辑->程序脚本,替换为上述建立的批处理文件netstat5230.bat,添加参数为空,并在常规选项卡中勾选使用最高权限运行
  • 4.对该任务右键点击运行,可在netstat5230.bat目录下看到netstat5230.txt,打开就可看到每隔一分钟被输到这里的联网数据
    windows

  • 5.一段时间后,打开Excel表格,选择数据->导入数据->选择数据源,点击肯定api

  • 6.在原始数据类型中选择分隔符号,勾选全部分隔符号
    浏览器

  • 7.选择插入->数据透视图,选择咱们要分析的那一列,并默认位置新表格,点击肯定,在字段中去除不须要的字段,该字段拖动到下方的轴和值两个区域中,最后,获得咱们须要的联网信息统计图
    安全

从图中可知:1.使用最多的是WPS.exe,我此时用的正是WPS
2.接下来是QQ浏览器,正在写博客
3.而后是dgservice.exe dgservice.exe服务是驱动精灵的服务,能够安全结束进程,能够在服务里将其设为手动。当你下次打开驱动精灵时,此服务也会一块儿打开网络

(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控本身主机的重点事可疑行为。

  • 1.首先根据实验提供的连接,编写配置文件5230sysmoncfig.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>
- exclude至关于白名单,不用记录;include至关于黑名单
- Image condition根据本身使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,写在exclude中就是不记录由谷歌浏览器建立的进程
- 进程建立时间相似,也是不建立浏览器建立进程的时间
- 网络链接过滤掉了浏览器的网络链接、源IP为127.0.0.1(localhost)的网络链接和目的端口为137的链接服务,且查看目的端口为80(http)和443(https)的网络链接。(137端口的主要做用是在局域网中提供计算机的名字或IP地址查询服务,通常安装了NetBIOS协议后,该端口会自动处于开放状态)
- 远程线程建立记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程
- explorer.exe是Windows程序管理器或者文件资源管理器
- svchost.exe是一个属于微软Windows操做系统的系统程序,是从动态连接库 (DLL) 中运行的服务的通用主机进程名称
- winlogon.exe是Windows NT 用户登录程序,用于管理用户登陆和退出
- powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,二者既能够独立使用也能够组合使用
  • 2.下载Sysmon函数

  • 3.输入命令Sysmon.exe -i 5230sysmoncfig.xml启动Sysmon
    工具

  • 4.进入事件查看器里查看日志,点击事件查看器,在应用程序和服务日志->Microsoft->Windows->Sysmon->Operational能够看到按照配置文件的要求记录的新事件,以及事件ID、任务类别等

    • 用Sysmon分析事件,能够看到显示得有具体时间、运行的程序、使用的协议、源IP、目的IP等等

任务2、恶意软件分析

(一)静态分析工具

  • 1.使用VirusTotal分析恶意软件,将实验三一个加壳的后门程序放入virusTotal中分析
    能够看出它的SHA-一、MD5摘要值、文件类型、文件大小,TRiD文件类型、加壳状况、算法库支持

  • 2.使用PE explorer进行外壳检测

    • 查看静态数据目录、节头信息

    • 经过工具能够进行反汇编

    • 点击上方菜单的红箭头能够查看dll库

msvcrt.dll是微软在windows操做系统中提供的C语言运行库执行文件
kernel32.dll属于内核级文件,它控制着系统的内存管理、数据的输入输出操做和中断处理,是必需的
advapi32.dll是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关,会受到病毒的侵扰及篡改,致使系统文件丢失、损坏
wsock32.dll是Windows Sockets应用程序接口,用于支持不少Internet和网络应用程序,是一个对系统很关键或很可疑的文件,易遭受木马病毒(如“犇牛”病毒)破坏致使系统找不到此文件,出现错误提示框。
ws2_32.dll是Windows Sockets应用程序接口。一些病毒会在杀毒软件目录中创建伪"ws2_32.dll"的文件或文件夹,在杀毒软件看来这是程序运行须要的文件而调用,这个所谓的“文件”又不具有系统"ws2_32.dll"文件的功能,因此杀毒软件等就没法运行了而提示:应用程序正常初始化失败

(二)动态分析工具

  • 1.抓包工具运用(wireshark)

    • 反弹连接时进行捕包,其中找到了win7与kail之间三次握手的创建,同时链接后能够看到捕获到大量的TCP传输

    • 输入其余命令如dir,Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包。说明二者之间产生了数据传输

  • 2.快照比对(SysTracer)

    • 安装时进入选择第二个,下一步后设置端口为后门的反弹端口5230

    • 打开后门前先点击take snapshot(建立快照),接着Start,命名为Snapshot #1

    • 开启后门程序回连建立第二个快照Snapshot #2(方法和建立Snapshot #1同样)

    • 而后kali中输入ls命令建立第三个快照Snapshot #3

    • 输入screenshot命令建立第四个快照Snapshot #4

    • 结束连接建立第五个快照Snapshot #5

    • 按住Ctrl任选两个截取的快照,点击compare就能够进行比较二者之间的区别

    • 比较#1和#2能够看到增长5230端口及两个地址

- 比较#2和#3也有增长的操做


- 比较#3和#4能够看到关闭了一些东西可是也出现了一个新的调用SysTracer.exe有了改变

- 最后#4和#5由于关闭了连接,因此对应端口和大量的dll文件都被删除,关闭或改变

4、基础问题回答

  • (1)若是在工做中怀疑一台主机上有恶意代码,但只是猜测,全部想监控下系统一每天的到底在干些什么。请设计下你想监控的操做有哪些,用什么方法来监控。
    使用Sysmon,编写配置文件,记录有关的系统日志
    使用systracer,对比不一样快照,查看是否有可疑行为
  • (2)若是已经肯定是某个程序或进程有问题,你有什么工具能够进一步获得它的哪些信息。
    首先利用静态分析工具如:PEID、ExeinfoPE等工具看看有没壳在保护,而后能够利用wireshack等工具查看此程序有没有异常的链接,而后利用systracer,对比进程运行先后有没有可疑端口、注册表或可疑的变化

5、实践体会

本次实践与以往的实践相比较为简单,只是须要安装的软件有些多,我我的认为,本次实践可让咱们的电脑更加安全,木马病毒咱们不多会用到,可是防范木马病毒、查找电脑中的木马病毒显得更为有用,虽然本次实践只是初步学会了分析恶意软件的方法,但在之后的日子里,咱们会对于这种分析会愈来愈熟练。

相关文章
相关标签/搜索