20212918 2021-2022-2 《网络攻防实践》实践第八次作业

1 基础知识

1.1 恶意代码

使计算机按照攻击者的意图执行以达到恶意目标的指令集。

  • 分析:恶意代码是一组指令集,而并不一定是二进制执行文件。其实现方式多种多样,如二进制执行文件、脚本语言代码、宏代码,或是寄生在其他代码或启动扇区中的一段指令流。
  • 类型:根据其执行方式、传播方式利对攻击目标的影响分为计算机病毒、蠕虫、恶意移动代码、特洛伊木马、后门、僵尸程序、内核套件等。
    (1)计算机病毒:一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。
    (2)蠕虫:一类自主运行的恶意代码,自我复制机制与计算机病毒类似,不需要将自身嵌入到其他宿主程序中。蠕虫通常通过修改操作系统相关配置,使其能够在系统启动时得以运行。一般通过主动扫描和攻击网络服务的漏洞进行传播,一般不需要人工干预。
    (3)恶意移动代码:移动代码是指可以从远程主机下载并在本地执行的轻量级程序,不需要或仅需要极少的人为干预。恶意移动代码是指在本地系统执行一些用户不期望的恶意动作的移动代码。普遍以Web浏览器作为攻击目标。
    (4)后门:一类能够绕开正常的安全控制机制,从而为攻击者提供访问途径的一类恶意代码。攻击者可以通过使用后门工具对目标主机进行完全控制。
    (5)僵尸网络:攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的攻击网络。僵尸程序是用于构建僵尸网络以形成一对多控制攻击平台的恶意代码形态。

1.2 计算机病毒

病毒程序通过修改其他程序的方法将自己的精确复制或可能演化的形式放入其他程序中,从而感染它们。

  • 基本特性:
    (1)感染性:病毒进入计算机并被执行,就通过扫描或监视的方式寻找符合其感染条件的目标,并釆用附加或插入等方式将自为复制链接到目标程序中。
    (2)潜伏性:病毒感染目标程序后,并不会立即进行破坏行为,而是在系统中潜伏。
    (3)可触发性:病毒在满足特定的触发条件后,激活其感染机制或破坏机制。触发实质是一种或多种判断条件控制,可作为计算机病毒触发判断条件的有系统日期、时间、特定的文件类型或数据的出现、病毒体自带的计数器等。
    (4)破坏性:病毒在触发后会执行一定的破坏性动作来达到病毒编写者的目标
    (5)衍生性:对某一个已知的病毒程序做出修改,从而衍生出另外一种或多种病毒变种。
  • 感染及引导机制
    以可执行文件作为宿主程序,当其被用户运行时,依附在上面的病毒就可以被激活取得控制权。
    感染方式:
    a. 前缀感染机制:指的是病毒将自身复制到宿主程序的开始,当宿主程序被执行时,操作系统首先会运行病毒代码,大多数情况下,病毒在判断其触发条件是否满足后会将控制权转交给宿主程序,所以用户很难感觉到病毒的存在;
    b. 后缀感染机制:指的是病毒将自身复制到宿主程序的末端,然后通过修改宿主程序开始时的指令,加入一条跳转指令,使得在宿主程序执行时首先跳转到病毒代码,执行完病毒代码后再通过一条跳转指令继续执行宿主程序;
    c. 中间插入感染机制:指的是病毒在感染宿主程序时,能把它拦腰截断,把病毒代码放在宿主程序的中间。中间插入感染机制能够通过零长度插入技术等使得病毒更加隐蔽,但该机制需要阶段宿主程序时的位置要恰当,需要保证病毒能够首先获得控制权,而且病毒不能被卡死,宿主程序也不能因病毒的插入而不能正常工作。
  • 传播机制
    病毒在计算机系统中被触发,它就会寻找可供感染的宿主程序位置,并复制自身并寄生在宿主上,病毒可能依附在移动存储或硬盘的引导扇区,或者可以嵌入代码的文档、可执行文件或者脚本文件。计算机病毒的传播渠道包括移动存储、电子邮件及下载、共享目录等。

1.3 网络蠕虫

网络蠕虫(Worm)是一种通过网络自主传播的恶意代码,这是一种可以自我复制的代码,并且通过网络传播,通常无须人为干预就能传播。如果没有外界干扰,蠕虫会一直对脆弱的系统进行感染,传播速度可能是指数形式,对互联网的危害十分巨大。
网络蠕虫的基本特性是通过网络的自主传播,利用目标系统上存在的安全缺陷,进而用一种自动的方法来占据目标主机。这也是和计算机病毒最大的区别之处。

1.4 后门与木马

后门和木马是两个概念,但通常结合在一起使用,后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图提供访问通道,木马则是指一类看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。
后门能够为攻击者提供多种不同类型的访问通道:本地权限提升和本地账号、单个命令的远程执行、远程命令行解释器访问、无端口后门、远程控制GUI。Windows系统中,后门工具可以利用自启动文件夹、注册表自启动项及预定计划任务来自启动。后门工具进入自启动文件夹后,系统启动后会自动启动自启动文件夹,后门工具也就捎带着启动了。
特洛伊木马通过使自己看起来像是正常的有用的软件,越过防火墙进入到系统。常用的手段是欺骗用户或系统管理员安装特洛伊木马程序,例如攻击者攻击软件发布站点,是软件带有恶意代码,下载软件的人察觉不到,就在安装软件时也安装了恶意代码。

1.5 僵尸程序与僵尸网络

僵尸程序具有蠕虫、特洛伊木马、后门三者的特征,担忧与三种有着显著的区别,僵尸程序会使用“弹头”获得主机的控制权并通过网络进行传播,为了隐藏自己会采用一些伪装和欺骗机制,可以为攻击者提供对受害主机的远程控制。僵尸程序的结构图如下,其中命令与控制模块是核心,传播模块将僵尸程序传播到不同的主机上。

2 实践过程

2.1 动手实践任务一

对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

  • 将所给rada.exe文件拷贝到虚拟机中,输入file RaDa.exe查看文件类型,为32位操作系统下的PE文件,有图形化界面
    image
  • 使用PEiD工具查看RaDa.exe的基本信息,可以看到这个是一个版本为0.89.6的UPX壳,以及文件的入口点、偏移、文件类型、EP段、汇编程序以及加壳类型
    image
  • 使用strings命令查看RaDa.exe中可打印字符串,出现乱码的原因是因为文件被加壳,正常字符无法显示
    image
  • 对RaDa.exe进行脱壳
    image
  • 再用strings查看脱壳后的RaDa.exe(RaDa_unpacked.exe),脱壳之后出现正常的字符串
    image

2.2 分析Crackme程序:

任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。

  • 首先和第一个实验一样,先使用file命令查看文件类型,看到均为windows系统下运行的32位可执行程序,且没有图形界面,仅使用控制台操作
    image
  • 先对crackme1.exe进行破解,首先是尝试运行该程序,试探其输入格式
    image
  • 当输入一个参数和两个参数时,得到了两种不同的反馈。接着使用IDA pro工具来打开文件在Strings页面可以查看到该程序中出现的明文字符串,推测“You know how to speak to programs, Mr. Reverse-Engineer”就是输入口令正确时程序的反馈信息
    image
  • 接着查看整个程序的函数调用情况,点击Display graph of function call,可以看出1程序是用C语言写的,使用strcmp函数来比较口令。程序关键的部分在sub_401280这里
    image
  • 接着查看sub_401280,这里借助资料知道了程序用“I know the secret”字符串和[eax]对应的字符串(用户输入的口令)相比较,通过比较的结果反馈口令是否正确,尝试一下
    image
  • 接下来对crackme2.exe进行破解使用IDA pro工具来打开文件,查看函数调用情况,程序关键的部分在sub_401280
    image
  • 查看sub_401280,第一部分倒数第二行,cmp [ebp+arg_0],2判断程序参数是否为两个
    image
  • 接着用strcmp函数对argc里面的第一个字符串,即程序名,和“crackmeplease.exe”进行判断
    image
  • 通过程序名判断后,用户输入的口令与”I know the secret”判断
    image
  • 所以我们要做的是在程序名为“crackmeplease.exe”中再输入"I know the secret"因此破解需要两步:一是把程序名改为“crackmeplease.exe”,二在输入"I know the secret"。尝试一下
    image

2.3 样本分析实践:分析一个自制恶意代码样本rada

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

  • 使用MD5对该恶意程序进行摘要信息分析,md5摘要值为caaa6985a43225a0b3add54f44a0d4c7。
    image
  • 此程序被加壳了,像之前一样做脱壳处理后分析。打开process explore进行监听,运行RaDa.exe文件。
    image
  • 对行为进行分析,发现访问了http://10.10.10.10/RaDa网址,下载了一个文件保存到C:\RaDa\tmp文件。
    image
  • 继续分析发现该程序可发动DDos拒绝服务攻击
    image
  • 该程序对注册表进行了读写和删除操作,打开注册表发现没有该程序留下的痕迹
    image
  • 打开wireshark,查看监测的数据,可以发现受害机与10.10.10.10的主机发送信息
    image
    回答问题:
    (1)这个二进制文件摘要信息:
    MD5摘要信息:caaa6985a43225a0b3add54f44a0d4c7
    PE格式:运行在Windows 2000, XP and 2003及以上版的操作系统中
    使用了UPX加壳工具进行了加壳处理
    (2)下载后门到目标主机,发动拒绝服务攻击,可远程与目标主机通信。
    (3)自我复制到C盘下,修改注册表自启动项
    (4)使用了UPX加壳工具
    (5)安全软件反馈是木马程序,但通过分析,发现没有伪装成有用的软件,所以不是木马;没有自己复制并发送到网络,不是蠕虫;攻击者可以远程发送指令并且修改了自己的操作痕迹,所以是后门。
    (6)海阳顶端、Bobax – 2004等都是使用http方式来同攻击者建立连接
    (7)Raul siles和David Perze,2004年。

2.4 Windows 2000系统被攻破并加入僵尸网络

任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答下列问题:

  • 1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
    IRC(Internet Relay Chat),即因特网中继聊天。 用户用自己的PC运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器即可聊天。
    当IRC客户端申加入一个IRC网络时将发送JOIN信息来加入频道
    IRC服务器通常在6667端口监听,也会使用6660—6669端口
  • 2、僵尸网络是什么?僵尸网络通常用于什么?
    僵尸网络Botnet是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络
    僵尸网络通常被用于发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等
  • 3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
  • Wireshark打开数据文件,因为IRC通过6667端口,可设置过滤条件ip.src == 172.16.134.191 && tcp.dstport == 6667。
    image
    可以找到五个IRC服务器209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172
  • 4、在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
    (1)kali安装tcpflowr:输入命令sudo apt install tcpflow
    image
    (2)输入命令sudo apt install tcpflow-nox
    image
    (3)筛选指定host与端口:输入命令tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'。
    image
    产生的3个文件是209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667、report.xml。
    image
    (4)输入如下指令进行搜索有多少主机连接:
    cat 209.196.044.172.06667-172.016.134.191.01152 | grep -a "^: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
    image
    有3461台主机访问了以209.196.44.172为服务器的僵尸网络。
  • 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 > 20212918.txt;wc -l 20212918.txt将攻击蜜罐主机的ip筛选出输出至20212918.txt文件中。
    image
    结果显示有165个IP地址用于攻击蜜罐主机。
  • 6、攻击者尝试攻击了那些安全漏洞?
    (1)将端口分为TCP端口和UDP端口两部分,分别查看它们受攻击的情况。
    (2)输入tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191 and tcp[tcpflags]== 0x12' | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq筛选响应的tcp端口
    image
    得到的TCP端口有:135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)。
    (3)输入tcpdump -r botnet_pcap_file.dat -nn 'src host 172.16.134.191' and udp | cut -d ' ' -f 3 | cut -d '.' -f 5 | sort | uniq筛选响应的udp端口。
    image
    结果显示udp 137端口,此端口在局域网中提供计算机的IP地址查询服务,处于自动开放状态,可用于NetBIOS查点。
  • 7、那些攻击成功了?是如何成功的?
    得到端口后,利用wireshark查看TCP端口
    端口135:过滤条件tcp.dstport135 && ip.dst172.16.134.191——发现只进行了TCP连接。
    image
    端口139:过滤条件tcp.dstport139 && ip.dst172.16.134.191——发现有NBSS包和SMB包以及TCP包。
    image
    端口25:过滤条件tcp.dstport25 && ip.dst172.16.134.191——发现只进行TCP连接。
    image
    端口445:过滤条件tcp.dstport445 && ip.dst172.16.134.191——发现有61.111.101.78向蜜罐主机发送PSEXESVC.EXE,当客户端执行该可执行文件后,攻击方就可以远程控制执行文件的主机,然后获取权限。
    image
    端口80:过滤条件tcp.dstport80 && ip.dst172.16.134.191——发现c:\notworm,发现这是一个红色代码蠕虫攻击。
    image
    根据以上分析可以知道析可知218.25.147.83发起的攻击是成功的,它通过蠕虫病毒实现。
    3.学习中遇到的问题及解决

3.学习中遇到的问题及解决

  • 在winxp中用谷歌浏览器下载所需软件,网页打不开
    解决方法:换火狐浏览器成功打开页面,下载所需软件。

4 学习感想与体会

在本次实验中,我学会了使用,脱壳工具、文件行为监控软件与进程行为监控软件。不过由于第一次接触恶意代码分析,不是很熟练,通过视频学习,成功将实验完成。

posted @ 2022-05-07 19:54  別來無恙〆  阅读(33)  评论(0编辑  收藏  举报