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

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

本次作业属于那个课程 《网络攻防实践》
这个作业要求在哪里 《恶意代码安全攻防》
作业正文 下述正文

1. 恶意代码定义与分类

  • 恶意代码定义:使计算机按照攻击者的意图执行以达到恶意目标的指令集
  • 恶意代码类型:根据其执行方式、传播方式和对攻击目标的影响分为计算机病毒、蠕虫、恶意移动代码、特洛伊木马、后门、僵尸程序、内核套件等。

2. 计算机病毒:

能够自我复制的代码,通过人工干预将自身嵌入其他程序中进行感染

2.1 计算机病毒基本特性:

(1)感染性:计算机病毒具有把自身复制到其他程序的特性。是最本质的特性,也是判断一个恶意代码是否是计算机病毒的首要依据。
(2)潜伏性:计算机病毒一旦感染目标程序后,除了感染外,并不会立即进行破坏行为,而是在系统中潜伏。
(3)可触发性:计算机病毒在满足特定的触发条件后,激活其感染机制或破坏机制。
(4)破坏性:计算机病毒在触发后会执行一定的破坏性动作来达到病毒编写者的目标。病毒编写者的目标分为两类:一是为了炫技(不会对目标主机造成严重危害),二是为了破坏计算机系统的正常运行(通过删除文件、格式化磁盘等方式队感染目标造成严重危害)。
(5)衍生性:编写者根据个人意图对某一个已知病毒程序进行改写从而衍生出另外的病毒。

2.2 计算机病毒的感染及引导机制

计算机病毒潜在的感染目标分为三大类:可执行文件、引导扇区、支持宏指令
(1)可执行文件:最普遍的感染目标。以可执行文件作为宿主程序时,用户在运行其的过程中依附在上面的病毒就可以被激活取得控制权。最普遍的三种对可执行文件的感染方式:
前缀感染机制:病毒将自身复制到宿主程序的开始,执行时系统先运行病毒代码
后缀感染机制:病毒将自身复制到宿主程序的末端,然后通过修改宿主程序主程序开始时的指令,加入一条跳转指令使得运行时首先跳转到病毒代码,执行完之后再通过一条跳转指令继续执行主程序
插入感染机制:将病毒代码放在宿主程序中间
(2)引导扇区:首先通过BIOS定位到磁盘的主引导区,运行主引导记录;接着从分区表中找到第一个活动分区,执行分区引导记录,分区引导记录负责装载操作系统。
(3)执行宏指令的数据文件:当支持宏指令的数据文件格式出现后,病毒(宏病毒)感染数据文件的方式为将自身以宏指令的方式复制到数据文件中

2.3 计算机病毒的传播机制:

病毒传播渠道包括移动存储、电子邮件及下载、共享目录等。

3. 网络蠕虫:

自我复制机制与计算机病毒类似,但它是一类自主运行的恶意代码,不需要将自身嵌入到其他宿主程序中,它通常通过修改操作系统相关配置在系统启动时运行。

3.1 网络蠕虫的基本特性:

利用目标系统上的安全缺陷,进而用一种自动的方法来占据主机,不需要用户或管理员做任何事情。

3.2 网络蠕虫的基本组成:

(1)弹头(2)传播引擎(3)目标选择算法和扫描引擎(4)有效载荷

4 后门与木马

4.1 定义:

后门允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道;木马是指一类看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序

4.2 后门工具为攻击者提供访问通道:

(1)本地权限提升和本地帐号:使攻击者能够将其权限等级提升为系统管理员
(2)单个命令的远程执行:攻击者可通过此类后门单独执行一个命令
(3)远程命令解释器访问:远程shell,允许攻击者通过网络快速直接的输入能够在目标系统上运行的shell命令
(4)远程控制GUI:能够以图形化界面的方式访问目标系统
(5)无端口后门:无须打开TCP和UDP监听端口的无端口后门

5 僵尸程序与僵尸网络

5.1 定义:

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

5.2 僵尸程序的命令与控制机制

(1)基于IRC协议的命令与控制机制
(2)基于HTTP协议的命令与控制机制
(3)基于P2P协议的命令与控制机制

6. Rootki

6.1 定义:

一类特洛伊木马后门工具,通过修改现有的操作系统软件,使攻击者获得访问权并隐藏在计算机中。当获取运行在目标主机上与操作系统相关联的常规程序时,用恶意版本代替他们;恶意的Rootikt将自身伪装成普通程序;Rootkit还作为后门形式其职能,通过后门口令远程shell或其他途径为攻击者绕过正常机制的后门访问通道。

6.2 Rootkit运行层次:

(1)用户模式:修改操作系统用户台中用户和管理员所使用的一些内建程序和库文件
(2)内核模式:直接攻击操作系统最核心的内核,并隐藏自身

  • 用户模式Rootkit
    针对类UNIX平台的用户模式
    分类:(1)提供后门访问的二进制替代程序(2)隐藏攻击者的二进制替代程序(3)用于隐藏但不替换的二进制程序(4)两外一些零散的工具(5)安装脚本
    技术:(1)windows为了支持第三方工具扩展Windows的内置功能特性,提供了一些开发接口
    (2)Windows使用了WTP机制来防止操作系统关键文件被修改或替换(3)使用DLL注入和API挂钩技术把恶意代码直接加入运行进程的内存空间中
    - 内核模式Rootkit

7.实践作业

实践一、恶意代码文件的类型识别、脱壳与字符串提取

  • 在cmd中切换到恶意程序所在的目录(本文为testy),输入命令file RaDa.exe。PE32:该程序32位,GUI:图形界面 intel 80386:处理器结构
  • 输入命令strings RaDa.exe,发现可打印的字符串乱码,判定该程序应该采用了加壳防止反汇编技术
  • 使用PE i D工具查看该程序使用的加壳工具
  • 采用脱壳工具:虚拟机自带的超级巡警自动脱壳,并且可以发现恶意程序目录下生成了一个脱壳之后的程序:RaDa_unpacked.exe

  • 使用PEiD工具查看拓客后的程序RaDa_unpacked.exe,可以看到该程序所使用的语言和开发工具Visual Basic 5.0/6.0
  • 输入命令strings RaDa_unpacked.exe查看脱壳后的恶意程序的可打印的字符串,打开监视工具process explorer,同时输入命令RaDa_unpacked.exe运行该恶意程序,在process explorer中点击就可以查看相关信息


实践二、分析Crackme程序

  • 使用file命令分析程序,还是先进入恶意程序目录testy,执行命令file crackme1.exe 和 file crackme2.exe,可知两个文件均为Windows系统下运行的32位程序,intel 80386:处理器结构
  • 并不知道程序的特定输入是什么,所以一个个尝试:分别输入一个整数crackme1 1,分别输入两个整数 crackme1 1 2;分别输入一个字符串crackme1 yzf,分别输入两个字符串crackme1 yzf do,分别输入三个字符串crackme1 yzf do one......由图可知输出只有两种结果,只能判定该程序的特定输入为一个参数,具体不知道
  • 打开系统自带的IDA,打开testy文件中的crackme1.exe,分析该恶意程序字符串信息。图中可以看见四种输出反馈,且是由c语言编写的
  • 四种输出反馈一个一个尝试,当输入的字符串为”I know the secret”时发现其输出反馈信息为一个全新的字符串 You know how to speak to programs,所以认为输入的字符串为正确的
  • 同理,对crackme2.exe 进行分析。当输入不同的参数时,根据输出反馈判定程序输入只有一个参数
  • 使用IDA工具分析crackme2.exe文件,与crackme1.exe不同的是它多了一些字符串。注意:在输入这些新的字符串之前,要先将crackme2.exe进行复制之后才能出现一些新的输出反馈信息

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

  • 进入目录testy,输入命令md5sum RaDa.exe对该恶意程序进行摘要信息分析;输入命令file RaDa.exe,GUI:有图形界面,32位程序。MD5摘要信息:caaa6985a43225a0b3add54f44a0d4c7,PE格式:Windows 2000,xp and 2003及以上操作系统,使用了UPX加壳工具进行加壳
  • 打开监视工具process explorer和wireshark开始监听,点击运行RaDa.exe,可知该恶意程序连接到的目标主机为10.10.10.10,且在c盘目录下创建了文件夹C:/RaDa/tmp来保存下载的文件;继续分析可以看到该程序对主机注册表进行了读写和删除。


  • 在运行中输入regredit进入注册表,未出现相关信息,推测已经被删除了
  • 打开wireshark,可以看到受害主机(192.168.200.2)向目标主机(10.10.10.10)发送了大量数据包,但是追踪其tcp数据流并未发现任何相关信息


    目的:该文件是一个http后门程序,当连接上互联网该程恶意程序会通过http请求连接到指定主机,进行攻击。
    文件所具不同特性:启动后自动访问10.10.10.10并下载RaDa.Commend.html。
    防分析技术:加壳技术。
    对恶意代码样本分类:未发现该恶意代码传播和感染,其主要远程获得指令并在靶机上进行相应操作,属于后门程序

实践四、取证分析
Windows 2000系统被攻破并加入僵尸网络:

  • 7.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送哪个消息?IRC一般使用哪些TCP端口?
    IRC:Internet Relay Chat,互联网中继聊天。通过因特网以IRC协议连接到一台IRC服务器上就可以在PC端运行。
    当IRC客户端申请加入一个IRC网络时将发送口令、昵称、用户信息
    USER 、PASS 、NICK
    IRC在明文传输时一般使用6667端口,在SSL加密时使用6697端口
  • 7.4.2 僵尸网络是什么?僵尸网络通常用于干什么?
    僵尸网络: Botnet,采用一种或多种传播手段使得大量主机感染bot程序病毒,形成一对多控制网络
    攻击者可以利用Botnet发送大量垃圾邮件同时隐藏自身IP,也可以利用它影响用户的网络性能;Botnet的控制者可以从僵尸主机种获取用户的相关信息:个人账户、机密数据等等
  • 7.4.3 蜜罐主机(IP:172.16.134.191)与哪些IRC服务器进行了通信

    观察到5个IRC服务器:
    202.126.161.29
    66.33.65.58
    63.241.174.144   217.199.175.10  209.126.161.29
  • 7.4.4 在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络。
    用tcpflow进行分流,输入命令:tcpflow -r botnet.pcap "host 209.196.44.172 and port 6667" (筛选host和端口6667后进行分流)。再输入指令:cat 209.196.044.172.06667-172.016.134.191.01152 | grep "^:irc5.aol.com 353" | sed "s/^:irc5.aol.com 353 rgdiuggac @ #x[^x]*x 😕/g" | tr ' ' '\n' | tr -d "\15" | grep -v "^$" | sort -u | wc -l 搜索主机连接个数,最后发现有3457台主机连接了
  • 7.4.5 哪些IP地址被用于攻击蜜罐主机
    tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 2.txt;wc -l 2.txt
  • 7.4.6 攻击者尝试攻击了那些安全漏洞
    用wireshark筛选出经过每个端口的数据包,命令tcp.dstport==80 && ip.dst == 172.16.134.191筛选通过80端口的数据包
    看到24.197.194.106向蜜罐发送了许多C,可能在进行缓冲区溢出攻击

    218.25.147.83进行了蠕虫攻击

8. 遇到问题及解决方法

(1)Kali和ubuntu种安装不了snort
解决方法:未解决。。。。
(2)在第一个实践中对恶意程序进行脱壳时发现一直在脱壳中,速度极慢
解决方法:将中文文件名改为英文文件名即可

9. 心得体会

分析太难了,只能参考大佬的博客

posted @ 2020-04-29 11:48  yzf0425  阅读(336)  评论(0编辑  收藏  举报