2019-2020-2 20174319 安睿韬《网络对抗技术》Exp4 恶意代码分析

目录


 

    一、实践目标

    二、实践内容

    三、 系统运行监控

        1、使用schtasks设置计划任务

        2、使用sysmon工具监控系统

    四、 恶意软件分析

        1、静态分析-使用VirusTotal分析恶意软件

        2、静态分析-使用PEiD分析恶意软件

        3、静态分析-使用PE Explorer分析恶意软件

        4、动态分析-使用wireshark对后门软件进行分析

        5、动态分析-使用Systracer进行分析

    五、实验中遇到的问题

    六、问题回答

    七、实验收获与感想


 

    一、实践目标

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

返回目录


    二、实践内容

  • 系统运行监控
    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点是可疑行为。
  • 恶意软件分析
    • 分析该软件在启动回连、安装到目标机及其他任意操作时(如进程迁移或抓屏)
  • 该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 连接了哪些外部IP,传输了什么数据(抓包分析)
  • 软件准备
    • 根据本次实验的要求,从老师所给网站或自行百度下载 Sysmon 、 PEID 、PE Explorer 、 Systracer 、 Wireshark

返回目录


     三、系统运行监控

        1、使用schtasks设置计划任务

    • 使用schtasks指令监控系统设置计划任务,每隔一分钟查看自己的电脑有哪些程序在联网,连接的外部IP是哪里,运行一段时间后分析该文件。
    • 在C盘中创建一个netstat4319.bat脚本,写入以下内容入
      • date /t >> c: etstat4319.txt
      • time /t >> c: etstat4319.txt
      • netstat -bn >> c: etstat4319.txt

    • cmd中使用
      • schtasks /create /TN netstat4319 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"即可实现每分钟录自己的电脑有哪些程序在联网,连接的外部IP是哪里。

    •  打开任务计划程序,可以看到新创建的这个任务:

    • 双击该任务进行编辑,在常规选项卡中勾选使用最高权限操作,以防记录里出现权限问题。

    • 操作选项卡中双击编辑启动程序操作,程序或脚本选择netstat4319.bat,参数设置输出到netstat4319.txt

    • 该任务的运行结果都存储在netstat4319.txt文件中:

    • 执行一段时间后将txt中的数据导出通过excel表进行整理:

    • 统计结果:

    • 如数据图所示,联网较多的有系统自带的浏览器和 QQ 浏览器,之后便是 360 和 Wechat

      返回目录


        2、使用sysmon工具监控系统

    • 下载SysinternalsSuite.zip并解压。根据自己的系统选择Sysmon版本,电脑是64位的系统,选择Sysmon64.exe,在程序的属性中查看版本信息。

    • 首先选择要监控的目标:进程创建、进程创建时间、网络连接、远程线程创建
    • 接下来要完成配置文件:相关事件过滤器,具体代码如下

 

      • 其中将谷歌与火狐浏览器设为白名单,同时去掉回环地址127.0.0.1,去掉137号端口,137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,查看http的80端口与https的443端口。
      • 远程线程创建记录Windows程序管理器或者文件资源管理器explorer.exe;从动态链接库 (DLL) 中运行的服务的通用主机进程svchost.exe;Windows用于管理用户登录和退出的winlogon.exe;为系统管理员设计的Windows命令行外壳程序powershell.exe
    • 编写完成后cmd中使用管理员身份运行Sysmon64 -accepteula -i -n进行安装

    • 在事件查看器中进入行应用程序和服务日志/Microsoft/Windows/Sysmon/Operational进便可看到按我们编写的文档进行记录的事件

    • 以管理员身份打开命令行,使用指令Sysmon.exe -i sysmon20174319.xml 安装 sysmon

    • 在事件查看其中找到配置文件的记录

    • 运行之前实验三的后门程序:

    • 在事件查看器中可以找到该后门程序的运行记录:

    • 找到后门的相应日志,查看详细信息,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等
    • 可能是实验三中进行了加壳处理的缘故,许多信息都是"?"当我们运行不加壳的程序时就能看到源IP和端口、目的IP和端口等具体信息了

      后面出现了以下事件:

    • SearchProtocolHost.exeSearchIndexer.exeSearchFilterHost.exeWindows Vista、Windows 7/10的桌面搜索引擎的索引程序,它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录,以及在Windows中添加到Libraries中的目录
    • SearchFilterHost.exe也可能是恶意软件所伪装,尤其是当它们存在于c:windows或c:windowssystem32目录。

返回目录


 

    四、 恶意软件分析

        1、静态分析-使用VirusTotal分析恶意软件

    • VirusTotal在实验三中我们使用过,将后门程序上传到VirusTotal,可以从中获取详细信息,包括大小、 MD5、SHA-1、SHA-256数值以及加密壳类型等:

   返回目录


      2、静态分析-使用PEiD分析恶意软件

    • PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名,扫描模式有:
      • 正常扫描模式:可在PE文档的入口点扫描所有记录的签名
      • 深度扫描模式:可深入扫描所有记录的签名,这种模式要比上一种的扫描范围更广、更深入
      • 核心扫描模式:可完整地扫描整个PE文档,PEiD内置有差错控制的技术,所以一般能确保扫描结果的准确性
    • 将实验三中加壳后的文件使用PEiD进行扫描,首先扫描未加壳的程序

    • 扫描加过压缩壳的程序

    • 扫描加过加密壳的后门程序

    • 这里只检测出了压缩壳,加密壳却未检测出

       返回目录


      3、静态分析-使用PE Explorer分析恶意软件

    • PE Explorer 安是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。
    • 打开软件,使用其引入功能查看文件引用的动态链接库:

    • 查询后得知KERNEL32.dll 安控制着系统的内存管理、数据的输入输出操作和中断处理,msvcrt.dll是微软编译软件的函数库
    • 通过分析生成的后门程序都会使用KERNEL32.dll ,所以如果有陌生软件使用KERNEL32.dll则应当提高警惕

      返回目录 


     4、动态分析-使用wireshark对后门软件进行分析

    • 回连完成后结束捕获,并把过滤规则设置为 ip.addr == 192.168.211.129
    • ping通时的 ICMP 包

    • MSF 反弹连接时的 TCP 包

    • dir 时查看包,返回的大豆是 TCP 三次握手的包

    • 其他回连包

 返回目录


 

        5、动态分析-使用Systracer进行分析

    • 下载SysTracer工具并设置监听端口号“4319”

      • 快照一:未移植后门程序
      • 快照二:移植后门程序
      • 快照三:运行后门程序并在kali中实现回连
      • 快照四:在kali中使用dir指令
      • 快照五:在kali中使用record_mic指令

    • 通过右下角的compare 键或者View Differences Lists  比对各快照,进行分析
    • 快照一和快照二:增加了我的后门程序,后面还有很多增加或删减的键值,增加或删减的.dll文件

    •  对比快照二和快照三(后门启动前与启动后):可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议

    • 而且该后门程序生成了很多文件、目录和键值

    • 对比快照三和快照四:kali上执行dir 指令:可以看到对行key_local_machine根键中的内容进行了修改,KEY_LOCAL_MACHINE保存了注册表里的所有与这台计算机有关的配置信息,执行dir会改变该注册表的信息

    • 可以看到kali执行record_mic录音指令后,后门程序增加了audioses.dll,这是与声卡驱动有关的动态链接库,可见该后门程序启动了主机声卡

返回目录


      五、实验中遇到的问题

    • 创建计划任务时被拒绝访问

      • 解决方法:以管理员身份运行即可

返回目录


       六、问题回答

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

      • 使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件

      • 使用Process Explorer,查看系统中是否存在可疑进程

      • 使用Systracer拍摄快照,对比不同时间的快照,查看是否有可疑的行为。

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

    • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
      • 通过火绒安全杀软中的进程管理来监控文件系统、注册表、进程/线程的活动。

      • 通过Wireshark进行捕包分析,监视与可疑IP的连接通信情况。

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

      • 使用PE Explorer查看其引用的动态链接库

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

 返回目录


 

      七、实验收获与感想

        本次实验主要是利用一些工具来对自己的电脑中运行的进程进行一些分析,为了分析恶意代码的一些特征,我们用Kali去攻击Windows,在Windows中运行该后门程序。

        我们对这个后门程序主要从两个方面进行分析,静态分析和动态分析,静态分析是可以使用一些软件和现有的在线资源对软件本身的机器指令进行分析,来判断其是否为危险文件;动态分析主要是在程序运行过程中对它所进行的行为进行分析。个人认为动态分析的效果应该会更好一些,因为特征库监测的好坏其实有一个病毒库的问题,而行为这个是后门程序比较相似的一些特征,虽然指令不同但是最后实现的操作还是一样的。

        实验进行过程比较顺利,没有出现过多的偏差,除了systracer软件限制拍照次数导致重新安装程序之外,没有啥其他糟心的事了。

 返回目录

 

原文地址:https://www.cnblogs.com/art23/p/12710735.html