20199325 2019-2020-2 《网络攻防实践》第九周作业

20199325 2019-2020-2 《网络攻防实践》第九周作业

一.学习总结

恶意代码:使计算机按照攻击者的意图执行以达到恶意目标的指令集,不一定使二进制执行文件,也可以使脚本语言代码、宏代码,或者是寄生在其他代码或启动山区中的一段指令流。

恶意代码类型、特性及典型实例

恶意代码发展过程:

计算机病毒

  • 定义:编制或者在计算机程序中插入的,破坏计算机功能或数据、影响计算机使用,并能自我复制的一组计算机指令或者程序代码
  • 基本特性:
    • 感染性:最本质特性,把自身复制到其他程序中
    • 潜伏性:感染过程隐蔽,不会立即进行破坏
    • 可触发性:满足一定条件后会激活感染机制
    • 破坏性:触发后会进行破坏
    • 衍生性:对已知病毒程序进行修改
  • 感染及引导机制
    • 感染目标:
      • 可执行文件:被作为宿主程序,三种最普遍的感染方式为前缀感染机制、后缀感染机制和插入感染机制。
      • 引导扇区
      • 支持宏指令的数据文件
    • 传播机制
      • 借助人类从一台计算机传播到另一台
      • 传播渠道包括移动存储、电子邮件及下载、共享目录等

网络蠕虫

网络蠕虫是一种智能化自动化,综合网络攻击密码学计算机病毒技术,无须计算机使用者干预即可运行的攻击程序或代码,它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或者国际互联网从一个节点传播到另外一个节点”。此定义体现了新一代网络蠕虫智能化、自动化和高技术化的特征。

后门木马

特洛伊木马(以下简称木马),英文叫做“Trojan horse”,其名称取自希腊神话的特洛伊木马记,它是一种基于远程控制的黑客工具。在黑客进行的各种攻击行为中,木马都起到了开路先锋的作用。特洛伊木马属于客户/服务模式。它分为两大部分,即客户端服务端。其原理是一台主机提供服务(服务器),另一台主机接受服务(客户机),作为服务器的主机一般会打开一个默认的端口进行监听。如果有客户机向服务器的这一端口提出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求。这个程序被称为守护进程

僵尸程序与僵尸网络

  • 僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展融合而产生的一种新型攻击方式。
  • 僵尸网络是指攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
  • 僵尸网络区别于其他攻击方式的基本特性是使用一对多的命令与控制机制,另外,僵尸网络还具有恶意性和网络传播性。

Rootkit

Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马后门等其他恶意程序结合使用。

恶意代码分析方法

恶意代码静态分析技术

  • 反病毒软件扫描,确定反病毒软件是否能够识别待分析样本,以及所识别的类型、家族、变种等信息
  • 文件格式识别:能够快速了解待分析样本的文件格式。工具包括file命令工具,PEiD、FileInfo、FileAnalyzer等
  • 字符串提取分析:利用一些专用的字符串提取工具,彻底搜查目标程序,并提取程序中3个或更多的连续可打印字符所组成的全部字符串。提取的字符串中可获得的有用信息包括:恶意代码实例名、帮助或命令行选项、用户会话、相关URL信息、E-mail地址、包含库文件和函数调用
  • 二进制结构分析:nm 指令在可执行文件中查找 “符号”的重要数据元素。Objdump 能够从目标文件中显示一些不同类型的信息,作为反汇编工具使用,输出目标文件完整的反汇编代码
  • 反汇编与反编译:对二进制程编译链接的逆过程,反编译是把二进制程序的目标代码从二进制机制机器指令转换为汇编代码的处理过程,反编译期望将汇编代码再进一步还原成高级变成语言形式的源代码。
  • 代码结构与逻辑分析:Call Graph(函数调用关系图)包含二进制程序内部用户函数之间的调用关系,以及用户函数对系统函数的引用情况。CFG是对程序代码执行过程全部路径的一种图形化表示方法
  • 加壳识别与代码识别:加壳混淆机制通常包括加密、多样性、多态和变形等。加壳工具根据技术不同分为压缩壳、加密壳、多态壳、变形壳和伪装壳等。

恶意代码动态分析技术

  • 恶意代码动态分析技术主要手段包括快照比对、系统动态行为监控、网络协议栈监控、沙箱、动态测试等
  • 基于快照比对的方法和工具::针对恶意代码动态分析的快照比对方法是首先对原始的“ 干净" 的系统资源列表做一个快照,然后激活恶意代码并给予充分的运行时间, 如5分钟,之后我们再对恶意代码运行后“ 脏” 的系统资源列表进行快照,并对比两个快照之间的差异,从而获取恶意代码行为对系统所造成的影响,比如新建、删除或修改了哪些文件、哪些注册表项等。进行快照对比的工具包括RegSnap、完美卸载等。
  • 系统动态行为监控方法:根据所监控的行为类别,系统动态行为监控软件包括:文件行为监控软件、进程行为监控软件、注册表监控软件、本地网络栈行为监控软件
  • 网络协议栈监控方法:对于恶意代码的网络行为,除了从恶意代码运行平台本地的网络协议栈进行监控之外,更为全面有效的监控试图是从本地网络上其他一台主机来进行
  • 沙箱技术:提供了受限制的执行环境,使得在沙箱中运行的代码不能够修改用户系统,从而提供一个用于运行不可信程序的安全环境
  • 动态调试技术:程序运行时刻对它的执行过程进行调试的技术过程

2.实践过程

2.1 动手实践:恶意代码文件类型识别、脱壳与字符串提取

实践任务:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下。

(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具

(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理

(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写者是谁?

在winxp系统当中打开老师资源的rada文件。并且使用cmd file rada.exe 可以看到文件类型,它是PE32位可执行文件。有图形化窗口,用了intel 80386处理器的汇编指令集。


使用peid查看当前编译版本,看到文件的入口点、偏移、文件类型、EP短、汇编程序以及加壳类型

使用超级巡警进行脱壳


经过脱壳之后的rada减少乱码了

使用IDA进行反编译,查看相应的汇编代码。

2.2 动手实践:分析Crackme程序

实践挑战:使用IDA Pro静态或动态分析crackme1.exe与crackme2.exe,寻找特定的输入,使其能过够输出成功信息。


常看strings,我们可以看到我们在cmd命令输出时候哪些语句,接下来就可以相应的去寻找对应语句的汇编代码了,也就了解这个脚本是怎么执行的了。

在graph中可以查看函数的流程

定位我们所需要的函数

找到相应的汇编代码,所以我们推测,接着这个代码的应该是i know the secret。


进行crack2的实验,和crack大致流程一样

2.3 实践作业:样本分析实践

分析一个自制恶意代码样本rada,并撰写分析报告

  1. 提出对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
  2. 找出并解释这个二进制文件的目的
  3. 识别并说明这个二进制文件所具有的不同特性
  4. 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
  5. 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
  6. 给出过去已有的具有相似功能的其他工具
  7. 可能调查出这个二进制文件的开发者么?如果可以,在什么样的环境和什么样的限定条件下?

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息。
摘要caaa6985a43225a0b3add54f44a0d4c7;Win32 PE 加 UPX 壳 GUI 文件。
2、找出并解释这个二进制文件的目的。
这个二进制文件通过网络获取指令,并执行;攻击者可以利用其完全控制该系统,是一个后门程序。
3、识别并说明这个二进制文件所具有的不同特性。
会请求 Web 服务器;解析获得的指令并执行。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术。
UPX 压缩技术。
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。
不具有自主传播模块,不具有传播和感染的性质,所以它不属于病毒和蠕虫,是一个后门程序。
6、给出过去已有的具有相似功能的其他工具。
Bobax。
7、可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
Raul siles , David Perze。

学习感想和体会

这次的学习主要是恶意代码分析,从来没有接触过相应的,所以不是很明白各个方面都是做什么的,需要继续学习,多接触相应的知识。
posted @ 2020-04-30 02:03  20199325赵恩泽  阅读(271)  评论(0编辑  收藏  举报