20145205武钰 《网络对抗技术》 恶意代码分析

实验内容

  • 分析的恶意代码为:Exp2中Msfvenom直接生成的exe,在回连kali时关闭了防火墙和杀软,但是本次分析的重点不在此,实验环境因为和前几次的IP不同,所以使用最为偷懒的恶意代码生成方式。
  • 使用systracer分析对比(主机加载恶意代码前、安装后、回连后、使用抓屏功能后):注册表项、文件、开放端口等是否有变化
  • 使用TCPView查看恶意代码回连前后端口开放情况
  • 运用计划任务,设置每5分钟启用netstat命令,观察恶意代码回连前后端口开放、IP连接情况
  • 使用wireshark在恶意代码回连时进行捕包,分析数据,并分析控制机和靶机之间的数据传输情况。
  • 使用sysmon工具,设置配置文件(在给的码云参考资料中有),监控主机中的进程行为。

实验后回答问题

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

  • 所谓的系统监控,本次实验中主要侧重于系统在干嘛,其实就是分析系统的工作日志以及系统资源使用情况,因为本次实践的恶意代码分析具体是实时链接的后门程序,若要同其他主机进行实时链接,就需要对于网络资源的使用,即我们可以一方面通过对于系统的网络资源,如端口的开放,流量的监控,是否有异常的数据传输进行,来确定是否存在恶意代码正在向外发送数据;另一方面可以查看系统的工作日志是否有异常的进程,查看注册表信息、文件是否有被恶意篡改或进行了未授权的使用,因为系统内的日志信息和注册表信息过于庞大,光靠人力去鉴别不是很现实,我们可以借助一些工具进行查看。对于系统日志进行操作,systracer工具可以对于系统的文件信息、注册表信息、日志信息进行快照备份,通过对于各个不同时期的快照进行对比,从而发现异常问题,并再使用跟踪工具反溯到异常进程,从而发现系统的问题所在。其实日常中最为简单的办法就是使用杀软对于我们的系统进行一次全盘扫描,其实我们这次的实践就是在深层次的探究杀软的工作方式,只是我们是使用的不同的工具进行操作分析,而且杀软我认为是在集合多种功能后的集大成者,使用傻瓜式的图形化界面做了包含于我们实践内容的工具。

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

  • 在对于某个程序有问题时,就简单的多了,首先我们可以使用自己的杀软进行扫描,或是将他扔到网上的检测平台进行分析,若是一个大程序,其中捆绑了一些插件,我们可以使用sysmon对其进行进程监控,可以监控到这个可疑程序的系统资源使用情况,对于该程序的操作日志进行查看,可以看到这个程序具体做了什么,来判断是否是有问题的程序或是进程。TCPVview就可以扫描系统网络链接情况,通过观察可以进程的是否进行了可疑通信进行判断。其实在系统自带的资源管理器也可以进行该项扫描,但是因为实际中,很多恶意软件会对自己的可疑通信进行伪装,或是借用正常的可信端口,或是将数据混杂在正常的数据包中,是我们实践中无法遇到的。

实验总结与体会

  • 我个人认为,本次实践较前几次来说最大的区别就是重于分析,而非操作,并不是根据现有的指导书进行事先安排好的一步一步操作,有了一定的自我发挥空间,也并不是必须只使用那几个工具,可以自己把握,我感觉最为直观的体现就是大家的博客肯定不会是看起来前篇一律了,连截图都是甚是相似的情况会有一定的变化,而且我认为本次实验是要先理解再具体操作,这样可以明白我们要干什么,面对一些之前都没有接触过的数据我们知道我们要干什么,知道了要做什么就有了头绪,不用每个东西都要瞎试一下。
  • 就我而言本次实验中,我理解的是对于系统进行资源分析,发现恶意代码干了什么,从而分析恶意代码,在计算机病毒一课中,我们是去分析恶意代码打算要干什么,从而去分析恶意代码,这是两者的区别所在。本次实验着重于引导我们干什么事情可以去发现恶意代码,并不是直接给你一个恶意代码使用工具分析就好了,偏重于实际应用,较为贴近生活。认真理解可以发现并不是学这个就是为了做个实验。

实践过程记录

  • 先附上靶机和kali的IP地址
    -靶机的IP地址
  • kali的IP地址

使用systracer工具备份靶机在恶意代码执行的不同的快照文件进行比对

  • 首先我们要知道不同的修改方式表现形式。

  • 如图可知,不同的修改方式在systracer中显示的颜色不同。
  • 之后进行不同状态下的快照文件备份。这里的三份快照依次为,后门启动前,回连到kali后,在kali进行了截屏操作后的三次不同状态下靶机的快照文件。
  • 首先我们进行第一次和第二次获取的快照对比,对比时,在工具进入界面的右下有有一个选择对比文件处,选择我们所进行对比的文件进行对比。

  • 我们可以发现,许多注册表都被修改了,其中有本地机器的注册表信息,以及网络服务信息,都被后面软件进行了修改。
  • 之后对比在进行了截屏操作后的快照不同
  • 由对比的不同我们发现,在进行截屏操作时,软件中explorer中大量的注册表被修改,说明在进行截屏时调用了许多本地资源,进行了本次操作

使用TCPVview对于系统的网络端口情况进行扫描分析

使用系统工具资源管理器进行分析

  • windows中有自带的工具都可以在实践中使用,如服务管理工具,任务计划程序,已经分析系统资源调用情况的资源管理器

  • 在这里我们发现后门程序正在进行数据传输已经开启了同kali的TCP链接

使用netstat进行网络监听

  • 我们可以直接在cmd中使用netstat指令监听本机网络情况,同样发现了异常的TCP链接。
  • 因为输入一次netstat指令只能对于当前时刻的网络情况进行监听,若要对于系统一个长期的网络情况进行查看的话我们有两种办法,一种是一直查看资源管理器中的网络模块,该工具时实时的监测系统的资源使用情况,或是我们可以设置一个周期性的任务计划,定期启动一下netstat,然后根据周期性的情况观察是否有进程每次都被监听到,可以判定为一直使用网络资源。

  • 上面是我们在命令行进行的netstat监听,并将日志写入到一个文本文档中,也可以使用任务计划工具。
  • 新建任务后,选择启动的周期,并将日志写入到我们文件记录的位置中。

使用wireshark对于后门软件和控制机进行数据传输时的抓包分析。

  • 因为后门软件和kali是实时连接的,而且我们已经发现后门软件已经开启了同kali的链接,我们使用wireshark进行抓包分析。

  • 在进行抓包分析时,因为我们之前通过许多工具发现了靶机和kali建立的是TCP链接,所以我们肯定是两台机器之间肯定有TCP的三次握手,截图如下。

  • 之后我追溯了一下这个链接的数据流,发现了双方传输数据的量
  • 我们可以看到主要是kali一直给靶机进行数据传输,而且靶机对于kali传输的数据中80K中还有42K是传输了一张屏幕截图,kali对于靶机这么多的数据传输,就是在这边控制着靶机,进行着许多任务表的修改,文件的修改,所以才有着不对称的数据量,而靶机对于kali传输的数据主要是一些信息反馈,并不涉及到调用诸多文件的指令传输,所以有了这样的结果。

使用sysmon工具

  • 安装时就按照老师给的指导博客就行,注意一下配置文件的设置,只需修改IP地址即可,注意一下配置文件的位置。
  • 安装好sysmon后,进入服务管理工具,找到sysmon,确认已经启动sysmon服务
  • 之后进入到日志管理程序,去查看一下sysmon的日志文件
  • 我们可以发现sysmon详细的记录了系统所有可执行文件的操作日志,右侧有查找选择,可以进行我们所要监听的程序的日志查找,因为我是在主机中进行sysmon演示,并没有在靶机中使用,这里只是介绍一下如何使用sysmon工具,具体情况我们都可以套用相同的经验手法。
  • sysmon日志中可以双击查看详细情况,无论是进程的位置还是进程进行的操作都可以查看到相关信息。
posted @ 2017-03-29 22:24  20145205武钰  阅读(211)  评论(0编辑  收藏  举报