20251913 2025-2026-2 《网络攻防实践》 第8次作业
1.实践内容
本实验由四个实践任务组成:
动手实践任务一:Rada恶意代码样本基础分析 ——对rada恶意代码样本进行文件类型识别、脱壳处理与字符串提取,以获取样本的基本属性并确定其编写作者。
(1)使用文件格式与类型识别工具(如 PEiD、FileAnalyzer 等)对提供的rada恶意代码样本进行检测,明确其文件格式、所针对的运行平台及可能使用的加壳工具。
(2)使用脱壳工具(如超级巡警脱壳机等)对该样本进行脱壳处理,去除保护壳以还原原始代码结构。
(3)使用字符串提取工具(如 strings 或 BinText)对脱壳后的样本进行字符串分析,从中提取可读信息,重点查找与编写作者相关的字符串,确定该恶意代码的开发者身份。
动手实践任务二:Crackme程序分析 ——在WinXP Attacker虚拟机中使用IDA Pro对crackme1.exe和crackme2.exe进行逆向分析,寻找特定输入使其输出成功信息。
在 Windows XP Attacker 虚拟机环境中,利用 IDA Pro 对 crackme1.exe 和 crackme2.exe 两个程序分别进行静态或动态分析。通过反汇编、调试、追踪执行流程等手段,分析程序的验证逻辑,寻找能够使程序输出成功信息的特定输入(如序列号、用户名或密钥等)。
分析实践任务一:Rada恶意代码深度分析 ——对rada样本进行全面的逆向分析并撰写报告,涵盖样本摘要、功能目的、特性识别、反分析技术、分类判定、同类工具对比及作者溯源等方面。
对rada恶意代码样本进行全面分析,并撰写分析报告,具体需要回答以下问题:
(1)提供该二进制文件的基本摘要信息,包括可帮助识别同一样本的哈希值、文件大小、编译时间等特征。
(2)分析并说明该二进制文件的编写目的与主要功能。
(3)识别并描述该二进制文件所具备的不同行为特征与功能特性。
(4)识别并解释该样本所使用的反分析、反逆向工程等自我保护技术。
(5)根据恶意代码的特征对该样本进行分类(如病毒、蠕虫、木马等),并阐述分类理由。
(6)列举历史上已有的、具有相似功能的其他工具或恶意代码。
(7)推断该二进制文件可能由谁开发,并说明推断依据以及在何种环境和限定条件下可能进行调查溯源。
分析实践任务二:蜜罐主机僵尸网络分析 ——基于Snort工具收集的蜜罐主机5天网络流量数据,分析IRC通信、僵尸网络规模、攻击来源、漏洞利用及成功攻击等安全问题。
分析数据源为利用 Snort 工具收集的蜜罐主机连续5天的网络流量,该数据已去除不相关流量并整合为单一二进制网络日志文件,IP 地址和敏感信息已做混淆处理。围绕该数据源需回答以下问题:
(1)解释 IRC 的基本概念,说明客户端申请加入 IRC 网络时所发送的消息类型,以及 IRC 通常使用的 TCP 端口。
(2)解释僵尸网络的定义及常规用途。
(3)分析蜜罐主机(IP:172.16.134.191)与哪些 IRC 服务器进行了通信。
(4)统计在观察期间,有多少个不同的主机访问了以 209.196.44.172 为服务器的僵尸网络。
(5)识别哪些 IP 地址曾用于攻击蜜罐主机。
(6)分析攻击者尝试利用了哪些安全漏洞。
(7)判断哪些攻击最终成功,并说明攻击成功的原因与实现方式。
2.实践过程
2.1 分析rada恶意代码样本
使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
1、使用 file 命令对 rada.exe 进行文件类型识别,结果显示其为 PE32 可执行文件,面向 Windows 系统,图形界面(GUI),基于 Intel 80386 32 位架构。

2、通过命令strings rada.exe查看该文件的可打印字符串,发现是乱码,由此可以判断这个文件加壳了

3、通过PEiD工具查看该文件。由图中可以看到加壳工具和运行平台为


使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理,查找作者信息;
1、通过超级巡警脱壳机,对rada文件进行脱壳处理。脱壳文件在原路径下

2、使用strings rada_unpacked.exe命令查看其字符串,可以看到出现大量函数调用名以及其他有用字符串,但是并未查找到作者信息。

3、通过IDA Pro Free工具进行分析,可以看到编写作者信息和发布时间



2.2 分析Crackme程序
在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
使用 file 命令对crackme.exe进行文件类型识别,结果显示其为 PE32 可执行文件,面向 Windows 系统,图形界面(GUI),基于 Intel 80386 32 位架构。

2.2.1 分析crackme1.exe
1、为全面了解程序的参数处理行为,分别采用无参数、1 个参数、2 个参数和 3 个参数的方式运行目标程序。当命令行参数个数为0个或大于1个,程序统一提示I think you are missing something. ,说明程序要求且仅接受一个参数。当程序输出变为Pardon? What did you say?,提示信息从“缺少参数”转变为“参数无效”,表明参数个数已通过校验,但参数内容不正确。

2、通过IDA Pro Free工具进行分析,阅读其汇编语言。由图中可以看到该程序中出现的明文字符串,这里除了之前测试得到的Pardon?What did you say?和I think you are missing something.,还有I konw the secret.和You konw how to speak to programs,Mr.Reverse-Engineer.这两个字符串。由此可以推断,前者是需要的口令,后者是输入该正确口令时会反馈的信息

3、查看整个程序的function calls
根据下图打开function calls

查看整个程序的function calls

4、查看到sub_401280调用了strcmp比较函数,fprint输出函数,查看它的汇编代码,看到下面的函数
将光标放到sub_401280位置处,按照下图打开flow chart,查看流程图

查看sub_401280流程图,采用两级条件判断结构。
- 第一层验证判断条件是检查命令行参数个数是否等于 2,false 分支输出提示"I think you are missing something.",设置返回值为 1,跳转至函数退出,true 分支进入第二级验证
- 第二层验证判断条件是将第一个命令行参数与固定字符串"I know the secret"进行strcmp比较,false 分支输出提示"Pardon? What did you say?",设置返回值为 2,跳转至函数退出,true 分支输出成功提示"You know how to speak to programs, Mr. ...",设置返回值为 0
![image]()
5、尝试输入口令crackme1.exe I know the secret。由图中可以看到,成功通过了该程序的测试
![image]()
2.2.2 分析crackme2.exe
1、按照上面的流程分析crackme2.exe,查看strings。

2、查看整个程序的function calls。sub_401280 是程序的核心密码验证函数,调用printf输出密码输入提示、scanf读取用户输入、strcmp执行密码字符串比对、puts/putchar输出验证结果。完整实现了 "输入提示→用户输入→输入处理→密码比对→结果输出" 的全流程。

3、查看sub_401280流程图。
从图中可以看出sub_401280 是一个三级嵌套条件验证的核心函数
- 第一层验证判断条件是cmp [ebp+arg_0], 2,false 分支输出提示"I think you are missing something.",设置返回值为 1,直接跳转到函数结束,true 分支进入第二层验证逻辑
- 第二层验证判断条件是将argv[1]与固定字符串"crackmeplease.exe"进行strcmp比较,false 分支输出提示"I have an identity problem.",设置返回值为 2,跳转到函数结束,true 分支进入第三层验证逻辑
- 第三层验证判断条件是将argv[2](第二个命令行参数)与固定字符串"I know the secret"进行strcmp比较,false 分支输出提示"Pardon? What did you say?",设置返回值为 3,跳转到函数结束,true 分支进入最终成功解密逻辑。
![image]()
![image]()
4、把crackme2.exe重命名为crackmeplease.exe,输入crackmeplease.exe "I know the secret",输出We have a little secret: Chocolate
![image]()
2.3 分析恶意代码样本rada
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
通过命令md5sum rada.exe查看MD5摘要值caaa6985a43225a0b3add54f44a0d4c7
通过命令file rada.exe查看基本信息 PE32 executable for MS Windows (GUI) Intel 80386 32-bit

2、找出并解释这个二进制文件的目的;
使用Process Explorer软件监视RaDa_unpacked.exe,通过HTTP请求了10.10.10.10\rada
下载了rada_commands.html,将rada.exe放到C:\RADA\tmp文件夹下,修改注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,将rada.exe设为开机启动,将rada.exe文件放到C:\RADA\bin文件夹下,发动DDOS远程攻击

3、识别并说明这个二进制文件所具有的不同特性;
RaDa_unpacked.exe是一个功能完整、威胁等级高的经典远程访问木马,具备僵尸网络客户端的所有核心能力。它能够完全控制受害者系统、窃取敏感信息、参与大规模 DDoS 攻击,并在内网中自动扩散感染。
通过Scripting.FileSystemObject COM 对象实现,可对系统任意文件和目录进行创建、读取、修改、删除操作。
支持RegRead(读取)、RegWrite(写入)、RegDelete(删除)三种核心注册表操作,可修改系统安全配置、窃取注册表中存储的敏感信息。
内置分布式拒绝服务攻击模块,执行时输出提示信息Starting DDoS Smurf remote attack...。Smurf 攻击利用 ICMP 广播协议实现流量放大数百倍。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
它使用了加壳技术
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
更像是远程访问木马,通常伪装成正常软件或文件,通过社会工程学手段诱导用户执行,内置 DDoS 攻击模块(Smurf 攻击),可被攻击者批量控制,组成僵尸网络执行大规模攻击任务
6、给出过去已有的具有相似功能的其他工具;
SubSeven、Poison Ivy、特洛伊木马Setiri
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,string里面直接显示了

2.4 分析botnet_pcap文件
任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
定义:IRC是基于文本的实时通信协议,采用客户端 - 服务器架构,支持多用户群聊(频道)和一对一私聊。它是最早的互联网实时通信协议之一,至今仍被广泛使用,尤其在技术社区和恶意软件控制领域。
发送消息:
- NICK 消息:用于指定用户在 IRC 网络中的唯一昵称,服务器会检查昵称是否已被占用。
- USER 消息:提供用户的身份信息,其中主机名和服务器名通常由服务器自动填充,真实姓名可以是任意字符串。
- PASS 命令:如果这个 IRC 节点设置了门禁密码,在这俩命令之前还得先发个 PASS 命令把密码递过去。
使用的TCP端口:
- 默认明文端口:6667(最常用)
- 常用明文端口范围:6660-6669
- SSL 加密端口:6697(标准 TLS 加密端口)
- 其他非标准端口:7000、8000、8080 等(常用于规避防火墙检测)
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet) 是指被攻击者通过恶意软件感染并远程控制的大量计算机组成的分布式网络。这些被感染的计算机被称为 "僵尸主机"或"肉鸡",它们在用户完全不知情的情况下运行恶意程序,自动接收并执行攻击者通过控制信道发送的指令。
僵尸网络是网络犯罪的重要基础设施,通常用于以下非法活动:
- 分布式拒绝服务攻击(DDoS):利用数千甚至数百万台僵尸主机同时向目标发送海量流量,导致目标服务器或网络瘫痪。
- 发送垃圾邮件:僵尸网络发送了全球超过 80% 的垃圾邮件,不仅提高了发送效率,还能有效隐藏攻击者的真实身份。
- 窃取敏感信息:通过键盘记录、屏幕截图等方式收集用户的银行账号、密码、信用卡号等个人信息。
- 点击欺诈:自动点击广告链接或访问特定网站,为攻击者赚取广告费。
- 加密货币挖矿:利用僵尸主机的 CPU 和 GPU 资源进行加密货币挖矿,获取非法收益。
- 传播恶意软件:作为恶意软件的分发平台,进一步感染更多计算机。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用wireshark打开botnet_pcap_file.dat文件,通过命令ip.src==172.16.134.191 and tcp.dstport == 6667进行过滤。从图中可以看到,蜜罐主机与五个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为服务器的僵尸网络?
在主机上下载下面这两个文件:
libhttp-parser2.9
https://mirrors.tuna.tsinghua.edu.cn/kali/pool/main/h/http-parser/libhttp-parser2.9_2.9.4-6+b3_amd64.deb
tcpflow
https://mirrors.tuna.tsinghua.edu.cn/kali/pool/main/t/tcpflow/tcpflow_1.6.1-3+b1_amd64.deb
把下载好的两个 .deb 文件拷贝到 Kali 桌面
在 Kali 的终端里,使用命令sudo dpkg -i libhttp-parser2.9_2.9.4-6+b3_amd64.deb tcpflow_1.6.1-3+b1_amd64.deb安装tcpflow
使用命令tcpflow --version验证安装,出现版本信息即安装成功。

通过命令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查看文件,可以从图中看到,有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 > 20241905.txt;wc -l 20251913.txt,将攻击蜜罐主机的IP地址筛选出输出到20251913.txt文件中。

可以看到有165个ip

查看所有ip

6、攻击者尝试攻击了那些安全漏洞?
通过命令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端口。可以看到响应的端口
135
139
25
445
4899
80

通过命令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端口。从图中可以看到响应的端口是137

7、那些攻击成功了?是如何成功的?
通过命令ip.addr == 172.16.134.191 && tcp.port == 135筛选135端口,从图中可以看到进行了TCP连接

通过命令ip.addr == 172.16.134.191 && tcp.port == 139筛选139端口,有tcp、nbss、smd协议

通过命令ip.addr == 172.16.134.191 && tcp.port == 25筛选25端口,从图中可以看到同样只是进行了连接

通过命令ip.addr == 172.16.134.191 && tcp.port == 445筛选445端口。由图中可以看到PSEXESVC.EXE程序。

通过命令ip.addr == 172.16.134.191 && tcp.port == 4899 筛选4899端口。由图中可以看到只是进行了连接

通过命令ip.addr == 172.16.134.191 && tcp.port == 80筛选80端口。GET了一个defalut.ida文件

追踪TCP流可以看到访问了www.worm.com,表示攻击者进行了红色代码蠕虫病毒的攻击

通过命令ip.addr == 172.16.134.191 && udp.port == 137筛选137端口。由图中可以得到该端口是NetBIOS网络查点

3.学习中遇到的问题及解决
- 问题1:无法把学习通上的rada.rar下载到winxp中
- 问题1解决方案:第一个解决方法是在虚拟机中登录学习通,但是一直无法联网;第二个办法是安装vmtools,在主机中使用网址https://packages-prod.broadcom.com/tools/frozen/windows/winPreVista.iso 下载vmtools。选中winXP虚拟机,点击编辑虚拟机设置,在硬件列表中,找到 CD/DVD (IDE) 驱动器,右侧选择 “使用 ISO 映像文件”,点击浏览,找到主机上的 vmtoolswinPreVista.iso 并选中,启动 Windows XP。进入系统后,打开 “我的电脑”,找到虚拟光驱,右键选择自动播放,运行里面的VMwareTools.exe,按提示安装,安装完成后重启XP。
4.实践总结
通过本次实验,我不仅使用且了解了恶意代码分析、程序破解和流量分析的基本方法,更认识到网络安全的重要性。






浙公网安备 33010602011771号