20252918 2025-2026-2 《网络攻防实践》实践8报告
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.实践过程
动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
查看文件信息:file /home/kali/learn/rada/RaDa.exe

so,问题(1)的答案是:“RaDa.exe” 是一个可执行文件,采用PE32格式,适用于Intel 80386 架构的处理器,并且是用于 MS Windows 操作系统的图形用户界面 (GUI) 程序,它被分成了3个部分。 PE32 是指 Portable Executable 32-bit 的缩写,它是 Windows 系统上可执行文件的标准格式之一。
用PEiD打开RaDa.exe:

用超级巡警脱壳,脱壳后的文件RaDa_unpacked.exe:

用IDA Pro Free,选择PE Exe对脱壳后文件RaDa_unpacked.exe进行反汇编分析:

可以看到作者信息。
查看作者的另一方式:
rada --authors
RaDa.exe --authors

动手实践任务二
先检查一下两个文件的完整性,计算其md5值,再用file命令查看文件类型:

用IDA Pro Free打开crackme1.exe,打开strings窗口,可以看到一些句子:

查看函数调用图,关键的部分在sub_401280,程序使用strcmp函数输入,然后利用print和fprint输出:

查看代码流程图,:

程序在后台做了三件事:
把输入的字符串地址放到栈上:push offset aIknowthesecret 这句指令的作用是,把 "I know the secret"(含双引号)这个预设的正确字符串在内存中的位置记录下来,并压入栈中,方便后续调用。
把输入存到指定位置:dword ptr [eax] 的意思是把你在程序输入框中键入的内容,存放到寄存器 eax 所指的内存地址处(也就是程序为你输入的字符串开辟的空间)。
比较两段文字是否相同:调用 strcmp 函数,把输入的内容和“I know the secret”这两个字符串逐字比较。
最后程序会检查输入是否等于 "I know the secret"(双引号是字符串本身的一部分)。只要完全匹配,就判定通过,输出 "You know how to speak to programs"。
用cmd进行验证:

crackme2.exe同理:

so,它比crackme1.exe多了一个分支来判断是否输入正确,它先判断是否输入了“crackmeplease.exe”,再判断是否输入了“I know the secret”。
cmd验证:

分析实践任务一
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
md5摘要:caaa6985a43225a0b3add54f44a0d4c7。这是一个PE可执行文件,也是一个UPX加壳文件。
2、找出并解释这个二进制文件的目的;
该程序具备明显的后门程序或僵尸网络程序特征。它会主动连接至目标主机 10.10.10.10/RaDa 并访问名为 RaDa_commands.html 的网页,通过该页面获取并解析远程命令。程序具备文件上传与下载能力,同时在受害主机的 C 盘目录下创建 C:/RaDa/tmp 文件夹用于存储下载的文件。为了维持持久化控制,该程序在注册表中添加了 bin/ 目录下的 RaDa.exe 作为自启动项,确保系统重启后仍能自动运行。此外,该程序还具备发起 DDoS 拒绝服务攻击的功能,能够对三大内网网段(即 192.168、172.16 和 10)同时发起攻击。综合以上行为,可以判断这是一个具有远程控制、文件操作、持久化驻留及分布式攻击能力的恶意程序。
3、识别并说明这个二进制文件所具有的不同特性;
初次运行时,下载到C盘,留下后门,启动DDos攻击。
初次运行时,修改注册表实现自己的开机自启动。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
UPX加壳技术
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
该文件通过修改注册表实现开机自启,通过连接网站下载文件,留下后门,并实现DDos攻击可以知道,它的目的是让主机瘫痪,无法提供服务。此外,它不复制感染,不属于病毒和蠕虫,且没有伪装成可用程序欺骗用户运行,因此不属于木马,所以是一个后门程序
6、给出过去已有的具有相似功能的其他工具;
Setiri、GatSlag
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
该二进制文件的开发作者:Raul Siles & David Perez, 2004
查看md5:

打开Process Explorer,监听脱壳后的RaDa.exe文件即RaDa_unpacked.exe:

修改了注册表,用Wscript.Shell对象读写 Wscript.Shell用了三个方法:


修改注册表后,将RaDa设置为开机启动项,最后它还攻击了三大内网,即192.168、172.16、10三个网段。此外,还能在这里看到作者的信息,于2004年编写了此恶意软件:


分析实践任务二
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC 全称为 Internet Relay Chat,是一种基于 TCP 协议的即时聊天协议。当客户端申请加入一个 IRC 网络时,首先需要发送 NICK 消息,用于向服务器声明用户选择的昵称。此外,客户端通常还会发送 USER 消息 以提供用户名和主机信息。IRC 服务默认使用 TCP 端口 6667,但也可配置使用 6660–6669 范围内的其他端口。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络 是由攻击者通过恶意软件控制的、大量被感染主机构成的网络。这些主机在用户不知情的情况下接受远程命令,常被用于发起 DDoS 攻击、发送垃圾邮件、窃取敏感信息、传播恶意软件或进行点击欺诈等恶意活动。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
通过对网络日志的分析,蜜罐主机与以下 5 个 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为服务器的僵尸网络?
在 5 天的数据采集周期内,共有 3461 个不同 IP 地址 的主机访问了以 209.196.44.172 为服务器的僵尸网络,表明该僵尸网络规模较大且具备一定的活跃度。
5、那些IP地址被用于攻击蜜罐主机?
日志分析显示,共有 165 个独立 IP 地址 对蜜罐主机发起了主动攻击行为。
6、攻击者尝试攻击了那些安全漏洞?
攻击者尝试攻击了以下 TCP 端口对应的服务或漏洞:
135:RPC(远程过程调用)
139:NetBIOS-SSN
25:SMTP(邮件服务)
445:SMB(文件共享)
4899:Radmin(远程管理)
80:HTTP(Web服务)
UDP端口137:NetBIOS名称服务。
7、那些攻击成功了?是如何成功的?
成功实施的攻击主要针对 TCP 445 端口(SMB 服务),具体包括以下类型的攻击:
普通查点(侦查性探测)
弱口令猜测
MSRPC-SVCCTL服务枚举漏洞
PSEXESVC相关攻击
攻击成功过程描述如下:
攻击者向目标主机的 TCP 445 端口发送包含 PSEXESVC.EXE 的数据包,并将该可执行文件的路径指向系统目录(如 C:\Windows\System32)。通过利用 MSRPC-SVCCTL 漏洞,攻击者能够远程创建并启动服务,从而在目标主机上执行任意命令。攻击成功后,攻击者获得对目标系统的远程控制能力,为进一步植入后门或加入僵尸网络奠定基础。
问题3:
IRC服务器明文传输通常在6667端口监听,设置过滤条件:

看到五个IRC服务器:

问题4:
安装TCPflow,输入tcpflow -r /home/kali/Desktop/botnet_pcap_file.dat "host 209.196.44.172 and port 6667",随后输入sudo 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:

问题5:
表示共有165个IP被用于攻击蜜罐主机,打开IP.txt:

问题6:
TCP响应端口为135、139、25、445以及4899、80;UDP响应端口为137


问题7:
135端口:

139端口:

25端口:

445端口:

4899端口:

3.学习中遇到的问题及解决
- 问题1:RaDa.exe文件无法移动到虚拟机
- 问题1解决方案:不能直接拖动,需要使用U盘。
4.实践总结
本次实验完成了对RaDa恶意代码的逆向分析,掌握了PE识别、加壳检测与字符串提取方法;通过CrackMe熟悉了IDA Pro静态分析流程;并结合IRC流量分析理解了僵尸网络的组网结构与攻击模式。实验发现,早期恶意代码普遍采用加壳与反分析技术规避检测,而僵尸网络则依赖IRC等简单协议实现大规模控制,对我们防御来说,就必须提升对混淆代码的逆向能力和对异常协议流量的监测水平。
