当前位置: 首页 > news >正文

20252920 2025-2026-2《网络攻防实践》第八次作业

20252920 2025-2026-2《网络攻防实践》第八次作业

20252920 2025-2026-2《网络攻防实践》第八次作业

1.实验内容

动手实践任务一

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

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

动手实践任务二:分析Crackme程序

任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.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、实验过程

2.1 动手实践任务一

(1)解压下载的压缩文件,将RaDa放入虚拟机WinXP的桌面,打开命令提示符,切换至样本所在目录(cd 桌面),进入桌面后输入 file RaDa.exe,查看该文件类型,

image-20260511144608184

查看该文件类型,这是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。

(2)使用PEiD工具查看文件加壳类型。加壳的目的是为了增加逆向难度。可以看到这个是一个版本为0.89.6的UPX壳(压缩壳)。

image

(3)输入strings RaDa.exe,查看 RaDa.exe中可打印字符串,查看是否加壳

image-20260511145223580

发现全是乱码,说明被加壳了

(4)使用超级巡警进行脱壳,选择相应的路径,支持脱壳。

image-20260511145353075

(5)查看桌面,可以看到这个文件。

image-20260511145508059

(6)再用 strings 查看脱壳后的RaDa_unpacked.exe,发现了脱壳后的恶意程序的可打印字符串。

image-20260511145759354

(7)这时候用 IDA Pro Free 打开这个文件。

image-20260511150032054

打开第一个

image-20260511150114385

image-20260511150147422

(8)查看详细信息,可以找到作者为DataRescue sa/nv,邮箱为ida@datarescue.com

image-20260511150510102

2.2 动手实践任务二:分析Crackme程序

(1)首先检查两个文件的完整性,计算其 md5 值。

image-20260511151656748

(2)输入file命令查看其文件类型

image-20260511151937387

可以看到这两个文件都是32位windows下PE文件。

(3)对crackme1.exe进行分析

image-20260512090336995

(4)接下来利用IDA Pro打开这个程序分析,打开通过Strings窗口可以查看该程序中出现的字符串。通过Strings窗口可以查看到该程序中出现的明文字符串,可以看到前面的两种输出信息,“I think you are missing something.” “Pardon? What did you say?”,还发现了“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer”这两个字符串。
由此我们可以猜测,前者就是口令,后者是输入口令正确时程序的输出信息。

image-20260512090732126

接下来看函数调用图(Function Call)可以发现:关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用printfprint函数输出。

image-20260512091908468

下面看sub_401280流程图,看到 cmp [ebp+arg_0],2,其用来判断程序是否有两个参数。

image-20260512092217263

猜测正确的口令应该是"I know the secret",输入命令运行改口令,可以得到这样一条回复"You know how to speak to programs,Mr.Reverse-Engineer"。成功。

image-20260512092429352

(5)程序crackme2.exe的分析过程与一样,先打开Function call(函数调用图),发现关键的部分在sub_401280这里。

image-20260512092619350

image-20260512092705062

输入 copy crackme2.exe crackmeplease.exe 将程序复制并命名为crackmeplease.exe,输入crackmeplease.exe “I know the secret”,得到的反馈信息为We have a little secret: Chocolate.成功。
image-20260512093027469

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

(2)查看摘要 和文件类型:md5sum RaDa.exe指令得到其md5摘要。利用file RaDa.exe识别出这是32位GUI文件

image-20260512093725811

(2)接下来打开监听工具process explorer对RaDa.exe进行检测,如图发现该程序用http连接到目标为10.10.10.10的主机下名为RaDa——commands的网页上,创建文件夹C:\RaDa\tmp保存下载文件,进行DDOS拒绝服务攻击,将RaDa.exe复制到C:\RaDa\bin。该程序还依次读、写和删除注册表,打开注册表查看发现没有信息,则表示已删除。接下来执行exe(执行指定命令)、put(将宿主主机中的指定文件上传到服务器)、get(将服务器中的指定文件下载到宿主主机中)、screenshot(截取宿主主机的屏幕并保存到tmp文件夹)、sleep(停止活动一段时间)。
image-20260512093932473

(3)进入Strings对话框,在菜单栏中的Edit中点击Setup,设置类型为 Unicode

image-20260512094517972

(4)在Strings里查看参数,可以看到作者信息。

image-20260512094457401

(5)在strings中点击IP地址: http://10.10.10.10/RaDa,定位到相应位置后,由上述分析,用http连接到目标为10.10.10.10的主机下名为RaDa——commands.html,对应的函数为sub_404FB0,点击进入此函数,得到汇编代码如图,这个字符串被拷贝到dword_40C030变量中。

image-20260512094828312

image-20260512095011566

(6)回答问题

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
答:文件的摘要是caaa6985a43225a0b3add54f44a0d4c7,这是一个PE可执行文件。
2、找出并解释这个二进制文件的目的;
答:这个二进制文件是一个后门程序,攻击者可以利用其完全控制该系统,并且只要用户上网,就可以得到到攻击者的攻击指令。
3、识别并说明这个二进制文件所具有的不同特性;
答:该程序运行的时候建立远程连接并修改注册表
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
答:UPX加壳技术
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
答:应该属于病毒程序
6、给出过去已有的具有相似功能的其他工具;
答:木马Bobax。
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
作者为Raul siles 和 David Perze。使用strings命令能查看

2.4 分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

(1)IRC是什么?当IRC客户端 申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC(Internet Relay Chat)是一种在线聊天协议,它允许用户通过网络参与实时的文字交流。用户可以在IRC服务器上创建和加入频道(类似于聊天室),并与世界各地的人进行交流。当一个IRC客户端申请加入一个IRC网络时,它通常会发送几个关键的命令消息来建立连接和注册。首先,客户端会发送NICK命令来设置用户的昵称,然后使用USER命令来提供用户的身份认证信息,包括用户名、主机名、服务器名和真实姓名(或其它信息)。这些是建立初始连接和进行用户注册所需的基本命令。
IRC通常使用TCP端口6667作为默认的通信端口。除此之外,还可能使用6660到6669、7000等端口。有些服务器还支持SSL加密连接,通常使用6697端口。这些端口使得IRC客户端能够与服务器建立稳定的连接。

(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet)是由大量互联网连接的设备组成的网络,这些设备被黑客或恶意软件控制,以执行一系列自动化的任务。这些设备通常被称为“僵尸”或“机器人”,因为它们在不知情的设备主人的控制之外被远程控制。
僵尸网络通常用于以下几种目的:

分布式拒绝服务攻击(DDoS):利用大量的设备同时向特定的服务器或网络发送大量请求,导致目标系统超负荷,无法处理正常的流量,从而中断服务。
发送垃圾邮件:利用控制的设备发送大量垃圾邮件或进行垃圾邮件活动,因为使用多个源发送可以增加其分布范围并更难被拦截。
密码破解:使用僵尸网络中的计算能力来破解密码或执行其他需要大量计算资源的安全攻击。
信息窃取:利用被感染的设备来收集敏感信息,如信用卡号码、个人身份信息和企业数据。
点击欺诈:自动化点击网络广告或搜索引擎结果,以生成虚假的点击量,从而欺诈广告收入。
加密货币挖矿:使用僵尸网络中的设备资源来挖掘比特币等加密货币。
僵尸网络由于其能够动员的庞大资源和跨越国界的特性,成为了网络犯罪和网络战的一个重要工具。对于个人和组织来说,确保其设备的安全,防止成为僵尸网络的一部分,是非常重要的。

(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
首先通过Wireshark打开数据文件botnet_pcap_file.dat,并设置过滤条件ip.src == 172.16.134.191 && tcp.dstport == 6667,可以找到所有与蜜罐主机进行通信的五个 IRC 服务器:分别为 209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172
image-20260513103420344

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

在Kali Linux中执行以下命令安装tcpflow流量分流工具:

sudo apt-get install tcpflow

image-20260513103728653

执行以下命令提取该IRC服务器与蜜罐主机的全量通信流量:

cd /home/kali/Desktop
tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"

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

这条命令从 IRC 流量日志中,提取 IRC 服务器返回的在线用户列表,去重后统计出当前频道内的僵尸主机总数量

它是典型的僵尸网络(Botnet)分析命令,用于统计一个 IRC 控制频道里有多少台被控制的机器。

image-20260513104230802

在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
计算出的结果有3461个

(5)那些IP地址被用于攻击蜜罐主机?

统计原理: 所有向蜜罐主机172.16.134.191发起流量的源IP,均为潜在攻击IP。

执行以下命令提取流量中的源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 > IP.txt

image-20260513104630300

输出165表示共有165个IP被用于攻击蜜罐主机,打开IP.txt,查看信息:

image-20260513104702967

(6)攻击者尝试攻击了那些安全漏洞?

筛选TCP端口: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

image-20260513104943592

有135、139、25、445、4899、80。

筛选UDP端口: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

image-20260513105054844

共1个UDP端口。

在Wireshark中输入ip.addr == 172.16.134.191 && tcp.port ==445进行筛选。

image-20260513105336655

在筛选后的数据包中发现了可执行文件PSEXESVC.EXE(NO.33280),这是一种蠕虫病毒的特征码。

在Wireshark中输入ip.addr == 172.16.134.191 && tcp.port ==135进行筛选,发现没有交互

image-20260513105442649

(7)那些攻击成功了?是如何成功的?

成功攻击判定结果: 在所有攻击尝试中,仅针对TCP 445端口的SMB服务攻击成功,攻击者通过PSEXESVC蠕虫实现了对蜜罐主机的远程控制,其他端口的攻击均未成功。

其他端口攻击失败的原因:

  • 135、139、25、4899端口:攻击者仅完成了TCP三次握手,后续无有效漏洞利用载荷,或在会话建立后被目标主机直接RST重置连接,未完成权限获取与代码执行
  • 80端口:攻击者发起的缓冲区溢出攻击、红色代码蠕虫攻击,仅发送了攻击载荷,目标主机无对应的漏洞利用响应。在筛选后的数据包中发现有一数据包中含有CCCCCCCC...填充数据,这是攻击者在尝试缓冲区溢出攻击,但没有后续。
  • UDP 137端口:仅完成了NetBIOS主机信息枚举,无后续权限获取行为,不属于成功的入侵攻击

如何成功的:

综上分析可知,这些攻击是通过向对TCP445端口发送含有PSEXESVC.EXE的数据包,且将PSEXESVC.EXE地址改到系统目录下攻击成功的。攻击者逐步拿下权限,先是admin,再是administrator:

image-20260513105336655

image-20260513110042477

image-20260513110104273

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

开始无法将RaDa拖拽到虚拟机里面,后来通过共享文件才成功复制到虚拟机里。

4、学习感想和体会

随着实验内容的加深,除却对工具的学习外,更多的感受到底层编程语言及其逻辑、协议设计及其逻辑的要求进一步加深,要学的东西有很多,还是得埋头打基础。