20212405 2023-2024-2 《网络与系统攻防技术》实验四实验报告

一、实验内容

1、本周学习内容总结:

本周对恶意代码章节进行了收尾,提到了计算机病毒和蠕虫病毒的区别。另一章学习了信息搜索,学习到了一些名词比如旁站、C段、CMS类型等。

C段:在站群服务器中,C段指的是IP地址的第三段,也称为子网段或网络标识。IP地址由四段字节组成,每个字节表示一个数字范围从0到255。C段用于标识IP地址所在的子网,不同C段的IP在SEO中具有重要作用,有助于网站维持正当的搜索引擎排名并提高曝光度。
CMS类型:内容管理系统(Content Management System,CMS)是一种位于WEB前端和后端办公系统或流程之间的软件系统。它允许内容的创作人员、编辑人员、发布人员提交、修改、审批、发布内容。这些“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切想要发布到Internet、Intranet以及Extranet网站的信息。CMS类型通常指的是内容管理系统的不同种类或实现方式,如开源CMS、商业CMS等,它们各有特点和适用场景。

2、实验任务:

一、恶意代码文件类型标识、脱壳与字符串提取

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

二、使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。

三、分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:

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

四、取证分析实践

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

问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
(2)僵尸网络是什么?僵尸网络通常用于什么?
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
(4)在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
(5)哪些IP地址被用于攻击蜜罐主机?
(6)攻击者尝试攻击了那些安全漏洞?
(7)那些攻击成功了?是如何成功的?

二、实验过程

2.1 恶意代码文件类型标识、脱壳与字符串提取 2.1.1使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具

首先将rada拷到虚拟机中,使用file指令扫描它的格式:
在这里插入图片描述
然后使用PEiD软件,就能获取到rada的加壳信息:
在这里插入图片描述
对文件信息和加壳信息的解读,表明rada的文件格式为 PE32 executable (GUI) Intel 80386,运行平台为windows系统,加壳工具为UPX。

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

使用脱壳机对rada进行脱壳:
在这里插入图片描述
然后可以在输出路径中找到脱壳后文件:
在这里插入图片描述

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

然后将脱壳文件拷到虚拟机,使用strings命令插卡脱壳后文件存在的字符串样本:(这一步我看到有人可以在windows执行,但我有些困惑因为Windows没有strings命令,也有可能是版本不同吧)
在这里插入图片描述
可以看到编写作者的名字,是两个人。

2.2 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息

2.2.1 下载IDA Pro,利用IDA Pro分析文件

学习通上提供的IDA不太行,所以我在网上又找了下载链接安装,这个是crackme1的显示:
在这里插入图片描述

2.2.2 利用反编译查看软件的高级语言

通过function calls查看函数调用的过程:
在这里插入图片描述
来分析一下这个图:main函数调用了两种输出函数fprintf和printf,所以我们后续操作围绕main函数。
然后再jump to function中查看main函数,然后再generate pseudocode进行反编译:
在这里插入图片描述
然后分析一下main函数的代码:
在这里插入图片描述
通过代码解读,我们知道了如果输入“I know the secret”就会打印出“You know how to speak to programs ”然后到第二个参数,如果有并且是“I dont know”就会输出pardon?如果是其他的参数数量就是I think you are missing something。所以我们只要输入“I know the secret”即可。
在这里插入图片描述

2.2.3 仿照上述操作获得crackme2的输入

在操作这一步的时候要将第一个输入改成crackmeplease.exe,但是如果这样就不能调用程序了,后来和同学探讨得知是要修改文件名才不会矛盾(我确实没想到这一个办法哈哈),就是把文件名改成crackmeplease.exe就行在这里插入图片描述
在这里插入图片描述

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

2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息

找一个可以生成摘要信息的网站,然后对文件进行操作:
在这里插入图片描述
也可以直接在kali上用md5sum指令直接生成MD5摘要:
在这里插入图片描述

2.3.2 找出并解释这个二进制文件的目的

在Process Explore上打开rada的脱壳文件,然后双击该进程进行查看(这个时候需要运行脱壳文件,同时需要关闭杀毒软件):
在这里插入图片描述
然后点击strings查看:
在这里插入图片描述
对显示的信息进行分析:
10.10.10.10\RaDa\RaDa_commands.html指的是这个文件是通过http协议请求的;
然后就是rada的文件位置,和文件夹里面都有什么,并且bin里边有rada的复制件可以进行读写;
通过HKLM\Software\Microsoft\Windows\CurrentVersion\Run\和HKLM\Software\VMware, Inc.\VMware Tools\InstallPathTools\InstallPath添加两个注册表项。HKLM的类型是REN_SZ,数据内容是C:\RaDa\bin;
put、get、screenshot、sleep这些是用来远程控制电脑。

2.3.3 识别并说明这个二进制文件所具有的不同特性

文件可以获得来自攻击者的指令,可以使用上述远程控制电脑的指令,可以在运行的时候将自己安装到系统中,可以修改注册表项。

2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术

upx加壳技术

2.3.5 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由

我觉得是后门
因为这个软件可以远程控制主机,并且也不传播,也没有大量消耗资源。

2.3.6 给出过去已有的具有相似功能的其他工具

msfvenom

2.3.7 可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

在cmd中使用author指令就可以查出来了:
在这里插入图片描述

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

2.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?

IRC即Internet Relay Chat,互联网中继聊天,是一种使用客户端-服务器架构的多用户聊天系统。客户端用户可以加入特定的频道(channel)与该频道中的所有用户聊天,也可以采用私聊的方式。特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。当IRC客户端申加入一个IRC网络时将发送JOIN信息来加入频道,IRC服务器通常在6667端口监听。

2.4.2 僵尸网络是什么?僵尸网络通常用于什么?

僵尸网络(BotNet)是指攻击者(botmaster)出于恶意目的,传播僵尸程序(Bot)控制大量主机(Zombie,傀儡主机、肉鸡),并通过一对多的命令与控制信道所组成的网络。僵尸网络构成了一个攻击平台,利用这个平台可以有效地发起各种各样的攻击行为,可以导致整个基础信息网络或者重要应用系统瘫痪,也可以导致大量机密或个人隐私泄漏,还可以用来从事网络欺诈等其他违法犯罪活动,常用于以下攻击行为:
拒绝服务攻击
利用Botnet发动DDos攻击是当前最主要的威胁之一,攻击者可以向自己控制的所有bots发送指令,让它们在特定的时间同时开始连续访问特定的网络目标,从而达到DDos的目的。
发送垃圾邮件
一些bots会设立sockv4、v5代理,这样就可以利用Botnet发送大量的垃圾邮件,而且发送者可以很好地隐藏自身的IP信息。
窃取秘密
Botnet的控制者可以从僵尸主机中窃取用户的各种敏感信息和其他秘密,例如个人帐号、机密数据等。同时bot程序能够使用sniffer观测感兴趣的网络数据,从而获得网络流量中的秘密。
滥用资源
攻击者利用Botnet从事各种需要耗费网络资源的活动,从而使用户的网络性能受到影响,甚至带来经济损失。例如:种植广告软件、利用僵尸主机搭建假冒的银行网站从事网络钓鱼的非法活动。
网络挖矿
网络安全商fortiguard labs的网络安全研究报告指出,虚拟货币的僵尸挖矿ZeroAccess已经成为全球网络当下主要威胁。

2.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?

在wireshark上打开.dat文件,设置好搜索条件:ip.src = 172.16.134.191 && tcp.dstport = 6667,抓包:
在这里插入图片描述
从上图可以得知有5个IRC服务器与主机通信:
209.126.161.29
66.33.65.58
63.241.174.144
217.199.175.10
209.196.44.172

2.4.4 在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?

这需要我们使用tcpflow来分析数据包,先安装tcpflow,使用tcpflow -r botnet_pcap_file.dat ‘host 209.196.44.172 and port 6667’命令来进行抓包,然后会生成三个文件,209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667、report.xml:在这里插入图片描述
打开report.xml文件可以看到一些通信的端口:
在这里插入图片描述
然后使用一个管道的命令,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进行分析:
在这里插入图片描述
这个命令第一次见,分析一下其中几个重要部分:
cat命令:连接209.输出文件
grep:搜索获取昵称输出行
sed:去除前缀
tr:将空格转换为换行
tr -d:删除\r
grep -v:去除空行
sort -u:排序并去除重复
wc -l:输出行数
从上图可以看出,一共有3457台电脑和它连接。

2.4.5 哪些IP地址被用于攻击蜜罐主机?

使用tcpdump -n n""‘print $3}’| cut-d’.’-f1-4lsort l uniq l more > 20212405ll.txt;wc -l 20212405ll.txt-r botnet pcap file.dat这个命令来进行分析:
在这里插入图片描述
显示有165个地址被用于攻击,从下面文件中可以看出具体的地址:
在这里插入图片描述

2.4.6 攻击者尝试攻击了那些安全漏洞?

在wireshark中使用统计功能来查看:
在这里插入图片描述
从图片中可以看出TCP和UDP两种包都有,然后要进行区分的话我们需要使用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,和cpdump -r botnet_pcap_file.dat -nn ‘src host 172.16.134.191’ and udp | cut -d ’ ’ -f 3 | cut -d ‘.’ -f 5 | sort | uniq这两种命令来查看TCP和UDP的相应端口:
在这里插入图片描述
在这里插入图片描述
从上图中可以看出这两种端口分别是TCP:135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http);UDP:137,然后我们来挨个分析一下:
2.4.6.1 tcp.port == 135
在这里插入图片描述
其实就是互相连接的过程。
2.4.6.2 tcp.port == 139
在这里插入图片描述
在这里插入图片描述
这个我不太会分析,请教了同学之后得知这个是攻击方提出了想要访问共享资源\PC0191\C,但是没能成功,因为看到树连接和请求的数据报。
2.4.6.3 tcp.port == 25
在这里插入图片描述
只是扫描。
2.4.6.4 tcp.port == 445
在这里插入图片描述
在这里插入图片描述
这里可以看到有一个PSEXESVC.EXE,这应该是一个蠕虫文件,当使用它进行服务器远程连接时,就会在服务器上安装一个psexec。此时已经被注入恶意软件,而且可以看到被攻击者成功响应,说明已经被成功攻击了。
2.4.6.5 tcp.port == 4899
在这里插入图片描述
4899端口是一个远程控制软件(remote administrator)服务端监听的端口,具有远程控制功能。这个图应该是已经形成了控制和被控制的情况了。
2.4.6.5 tcp.port == 80
在这里插入图片描述
在这里插入图片描述
有很多c,所以会想到缓冲区溢出攻击,还有一个蠕虫。
2.4.6.6 udp.port == 137
在这里插入图片描述
这里的NBNS是NetBIOS name service的缩写,是NetBIOS的命名服务。

2.4.7 那些攻击成功了?是如何成功的?

上述中的缓冲区溢出,445端口的口令爆破,蠕虫,远程控制,udp137的查点这些攻击成功了。

三、遇到的问题

这次实验虽然要分析的任务很多,但是操作步骤都不太难。我主要遇到了两个问题,一个是用process explore的时候没找到rada,关了杀毒软件后才找到;还有就是在tcpflow的时候直接运行命令的时候只生成了一个失败的report.xml文件并且打不开,搜索了原因后知道需要先用tcpdump过滤一下流量,即tcpdump -r botnet_pcap_file.dat ‘host 209.196.44.172 and port 6667’ -w filtered_botnet_pcap_file.pcap,然后才能用tcpflow进行后续操作,即tcpflow -r filtered_botnet_pcap_file.pcap。
还有就是wireshark捕获的包我几乎都不太会看,不知道该看什么,就是请教同学,上网查,然后挨个弄明白的,我觉得还是掌握知识很不牢固,不然也不会觉得无从下手。

四、学习心得

这次实验的步骤很多,看着有些吓人,但是一步步做下后还是很有收获的,并且操作难度不大。这次又认识了一些工具,比如脱壳,tcpflow(需要空间太大把我虚拟机搞崩了)。印象最深的是最后的捕包分析,因为开始看着显示那么多包根本就不知道该看什么,然后就去网上查每个端口一般都是干什么用的,然后问同学该重点看哪里,怎么知道蠕虫之类的位置(有点取巧了)。总之真的是收获满满的一次实验。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值