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:\netstatlog.txt"

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

    date /t >> c:\netstat1321.txt
    time /t >> c:\netstat1321.txt
    netstat -bn >> c:\netstat1321.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 Files\WindowsApps\Microsoft.MicrosoftOfficeHub_18.2008.12711.0_x64__8wekyb3d8bbwe\LocalBridge.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:\Windows\inf\WmiApRpl目录下更新了的文件

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

  • 对比快照三快照四: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主机的,修改了那些注册表,通过那个端口等待。虽然这些注册表、文件我不懂的是什么意思,但是通过工具,是可以发现它是在变化的,比如更新了,为了方便看到底是什么意思,我都是看着时间进行操作,这样子就可以通过工具查看那段时间附近的注册表和文件的变化。
posted @ 2021-04-11 21:35  QBLL  阅读(193)  评论(0编辑  收藏  举报