• 2020-2021-2 网络对抗技术 20181321 Exp4 恶意代码分析


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

    原理与实践说明

    1.实践目标

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

    2.实践内容概述

    • 系统运行监控
      • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
      • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
    • 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
      • 读取、添加、删除了哪些注册表项
      • 读取、添加、删除了哪些文件
      • 连接了哪些外部IP,传输了什么数据

    3.基础问题回答

    • 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
      • 使用windows自带的schtasks指令设置一个计划任务,发现网络连接异常
      • 使用Sysmon,编写配置文件,记录有关的系统日志
      • 使用Process Explorer工具,监视进程执行情况。
      • 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
    • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
      • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改。
      • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
      • 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

    实践过程

    1.使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)

    • 使用cmd,输入以下命令,创建netstat1321。

      schtasks /create /TN netstat1321 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"

    • 在C盘创建一个netstat1321.bat脚本文件,写入以下内容

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

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

    • 双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat1321.bat批处理文件,确定即可。也可以修改其他属性,来抓取记录,我这里设置了使用最高权限抓取。

    • 执行此脚本一定时间(我抓了一个小时),就可以在netstat1321.txt文件中查看到本机在该时间段内的联网记录:

    • 将存储的数据通过excel表进行整理,参考学姐博客:https://www.cnblogs.com/zjy1997/p/8824717.html#4.1

      • 统计图

    • 根据统计图可知,在这个一个小时里面,我使用QQBrowser.exe连接网络的次数字多,第二就是我的QQ.exe,同时我们也可以看到自己的别的程序连接网络的次数,比如微信、code的联网情况,

    2.使用sysmon工具监控系统(安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。)

    • sysmon是微软Sysinternals套件中的一个工具,使用sysmon工具前首先要配置文件。

    • 我创建的配置文件sysmon20181321.xml内容如下:

      * chrome.exe firefox.exe cmd.exe chrome.exe firefox.exe chrome.exe firefox.exe 137 127.0.0.1 80 443 explorer.exe svchost.exe firefox.exe winlogon.exe powershell.exe

      • 参数解释:

        • 对应你的Sysmon的版本。(但是老师的版本为3.10才能运行)

        • exclude相当于白名单,不用记录。include相当于黑名单。

        • Image condition这里要根据自己使用的浏览器更改,例如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,火狐浏览器是“firefox.exe”我用的是360浏览器和火狐浏览器写在exclude中就是不记录由360浏览器和火狐浏览器创建的进程。想知道自己浏览器进程名,可以查看“netstat5318.txt”中的记录。

        • 进程创建时间类似,也是不创建浏览器创建进程的时间。

        • 网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,并查看目的端口为80(http)和443(https)的网络连接。

          • 137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
          • 127.0.0.1表示本机IP。
        • 远程线程创建记录了目标为explorer.exe、svchost.exe、firefox.exe、winlogon.exe和powershell.exe 的远程线程。

          • explorer.exe是Windows程序管理器或者文件资源管理器
          • svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
          • winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。
          • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
    • 安装sysmon:执行命令sysmon.exe -i C:sysmon20181321.xml,成功安装结果如下:

    • 查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational,在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等。

    • 对实验3的程序进行分析,会出现事件1来表示运行了后门程序。

    • 进行多次运行getuid命令之后,会出现一个C:Program FilesWindowsAppsMicrosoft.MicrosoftOfficeHub_18.2008.12711.0_x64__8wekyb3d8bbweLocalBridge.exe的程序,我们有理由怀疑这个程序就是使用getuid运行的程序.

    3.恶意代码的分析

    1.使用VirusTotal分析恶意软件

    • 将生成的恶意代码放入VirusTotal进行分析。

    • 看这个恶意代码的基本属性。

    • 以及恶意代码算法库以及调用的.dll文件。

    2.使用systracer分析恶意软件

    • 下载SysTracer工具

    • 点击右侧的take snapshot,存储快照

      • 快照一:未移植后门程序,保存为Snapshot #1
      • 快照二:移植后门程序,保存为Snapshot #3
      • 快照三:运行后门程序并在kali中实现回连,保存为Snapshot #4
      • 快照四:在kali中使用dir指令,保存为Snapshot #5
    • 通过右下角的compare键或者View Differences Lists比对各快照,可以选择Only Difference只查看不同的项

    • 对比快照一快照二:增加了我的后门程序20181321_backdoor.exe.

    • 可以看到很多增加的,删除,更新的文件以及键值。

    • 对比快照二快照三(后门启动前与启动后)

      • 可以看到新增的后门进程,而且可以详细看到其的目的IP和端口号、源IP和端口号以及连接的协议:

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

      • c:WindowsinfWmiApRpl目录下更新了的文件

      • 在查看注册表中,发现更新了许多的注册表,

    • 对比快照三快照四:kali上执行dir指令

      • 数据文件进行了更新,注册表也进行了更新。

    3.使用PE Explorer 进行分析。

    • PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源。该软件支持插件,你可以通过增加插件加强该软件的功能

    • 下载PE Explorer,将后门程序放入进行研究。

    • 这里主要看文件引用的dll库,可以通过视图->引入进行查看,如下图所示:

    • 常使用的一些.dll库。

      • KERNEL32.dll:控制着系统的内存管理、数据的输入输出操作和中断处理。
      • msvcrt.dll:是微软编译软件的函数库。
      • WSOCK32.dll:Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。

    4.用wireshark进行分析

    • 下载安装wireshark,然后回连进行分析,进行抓包。

    • 回连的时候,可以看出两台主机进行了TCP握手,进行连接。

    • 在kali运行dir,pwd的命令,发现都是通过TCP协议,window端口为54021,进行控制和操作。(这里的协议与你生成的后门所用的协议有关),IP则为kali虚拟机的IP地址。第一步为dir等命令,然后window将dir后的数据包发送回kali。

    实验总结与体会

    • 本次实验在操作上没有什么难度,主要是下载安装软件并应用,重点在于如何利用这些软件分析恶意代码。在不断实践的过程中,我掌握了很多种工具的用法,学会了如何让计算机周期性执行一个任务,如果把命令行下的结果记录到文件中.在这个过程中终是要通过看里面注册表的变换,文件的更新对自己的后门程序进行分析,kali如何进行远程控制的window主机的,修改了那些注册表,通过那个端口等待。虽然这些注册表、文件我不懂的是什么意思,但是通过工具,是可以发现它是在变化的,比如更新了,为了方便看到底是什么意思,我都是看着时间进行操作,这样子就可以通过工具查看那段时间附近的注册表和文件的变化。
  • 相关阅读:
    MySQL 数据恢复
    由 go orm 引发的探索
    beego 优雅重启
    2020年8月20日
    Linux 递归获取目录下所有满足条件的文件
    NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书
    Flutter环境配置-windows
    Vue获取钉钉免登陆授权码(vue中的回调函数实践)
    【C#上位机必看】你们要的Iot物联网项目来了
    Windows Server系统部署MySQL数据库
  • 原文地址:https://www.cnblogs.com/qbll/p/14645676.html
Copyright © 2020-2023  润新知