20251916 2025-2026-2 《网络攻防实践》实践8报告
1.实践内容
本周学习了恶意代码分析与逆向工程的核心技术,以及僵尸网络流量取证分析方法。本次实践包含四个主要任务:
1.对 RaDa 恶意代码样本进行文件类型识别、UPX 脱壳处理和字符串提取,定位其编写作者信息;
2.使用 IDA Pro 静态分析 crackme1.exe 和 crackme2.exe 两个逆向工程练习程序,找出能够触发成功输出的特定输入;
3.对 RaDa 恶意代码进行深度功能分析,回答关于其目的、特性、防分析技术、分类等 7 个问题;
4.分析 Snort 工具收集的 Windows 2000 蜜罐主机 5 天网络流量数据,追踪僵尸网络通信过程,识别攻击源、利用漏洞及成功入侵行为。
2.实践过程
2.1分析恶意代码样本
将 rada.rar文件复制到 WinXP Attacker 虚拟机中,执行file Rada.exe 命令查看一下文件类型

执行strings RaDa.exe查看可打印字符串,发现都是乱码,推测是加壳导致

查壳:使用PEiD工具,打开RaDa.exe

检测到文件为 32 位 Windows PE 可执行文件,子系统为 GUI,入口点 0000FD20,文件偏移 00004120。PEiD 明确显示该样本使用了UPX 0.89.6 - 1.02 / 1.05 - 2.90压缩壳进行保护。

脱壳:使用 "超级巡警脱壳机 V1.3" 对加壳的 RaDa.exe 进行自动脱壳,选择 RaDa.exe 文件,点击 "开始脱壳" 按钮,程序自动识别 UPX 壳并进行解压缩。

脱壳后,执行strings RaDa_unpacked.exe,查看可打印字符串

打开IDA Pro Free,选择脱壳后的文件,看到作者等信息。

2.2分析Crackme程序
分析crackme1.exe:
试探输入格式,输入为一个参数

利用IDA分析程序,打开Strings窗口,前四个中有两个已经见过。第一个是参数不对的返回情况,第三个是参数数量对但内容不对的返回情况。

查看函数调用图,查看401280函数段

查看其汇编代码。

进行验证,验证成功。

分析crackme2.exe:
试探输入格式,输入是一个参数

使用IDA分析,查看明文字符串,前五个中有两个已经见过。

查看函数调用图,查找字符串操作、输出的相关的函数,重点查看程序段401280

查看汇编代码:参数错误,和密码匹配很像,猜测程序名匹配。

进行验证

改名

验证程序名正确,密码错误

验证程序名正确,密码正确

验证成功
2.3分析实践任务一
1.提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
MD5 摘要:caaa6985a43225a0b3add54f44a0d4c7
基本信息:是PE32文件
加壳工具 UPX 0.89.6-1.02

2.找出并解释这个二进制文件的目的
RaDa 是一个HTTP 协议远程控制后门程序(HTTP Bot),其核心目的是:
- 在受感染主机上建立持久化驻留
- 通过 HTTP 协议与远程 C&C 服务器通信,获取攻击者指令
- 执行攻击者下发的各种系统操作命令
- 实现对受感染主机的完全远程控制
3.识别并说明这个二进制文件所具有的不同特性
RaDa.exe被执行时,它会将自身安装到系统中,并通过修改注册表的方式使得每次系统启动,它都能够被启动,启动后循环执行一下操作:
(1)从指定的web服务器请求指定的web页面:
(2)解析获得的web页面,获取其中的指令
(3)执行解析出来的指令
(4)等待一段时间
(5)返回第(1)步
启动后,RaDa一直在后台运行,不会弹出任何窗口。它支持以下指令:
exe:在宿主主机中执行指定的命令
put:将宿主主机中的指定文件上传到服务器
get:将服务器中的指定文件下载到宿主主机中
screenshot:截取宿主主机的屏幕并保存到tmp文件夹
sleep:停止活动一段时间
4.识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
(1)这个二进制文件使用UPX加壳之后又做了手工修改,使得难以脱壳,而不脱壳又会影响反汇编。
(2)脱壳之后,可以在文件中找到字符串“Starting DDos Smurfremote attack,”这会使分析者误以为样本可以发动DDos攻击而实际上它没有提供任何用以发动DDOs攻击的子程序。
(3)提供了-help参数,但是使用这个参数之后,除了输出版权信息外并没有提供其他有用的信息。--verbose参数也没有什么用处,GUI窗口中的“Show config”及“Show usage”也显示与一help参数相同的信息。
(4)通过查看网卡的MAC地址以及查看VMwareTools的注册表项来判断操作系统是否运行在VMware虚拟机上,如果是,则使用一authors参数时将不会输出作者信息。

5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
这是一个后门程序,运行并按照攻击者命令进行工作;如果是多对1控制,则可认为是HTTP Bot;这个样本不具有传播和感染的性质,所以它不属于病毒和蠕虫。它也没有将自己伪装成有用的程序以欺骗用户运行,所以他也不属于木马。
6.给出过去已有的具有相似功能的其他工具
Bobax-2004年发现的木马,也是使用HTTP协议从指定的服务器下载命令文件,然后解析并执行其中的指令。Setiri及其前辈GatSlag。
7.可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以。在非VMware虚拟机上使用一authors参数运行就可以看到这个二进制文件的作者。
2.4分析实践任务二
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC(Internet Relay Chat,互联网中继聊天)是一种基于文本的实时网络聊天协议,允许用户通过客户端软件连接到 IRC 服务器,在频道中进行多人聊天或一对一私聊;
客户端首先发送NICK消息设置昵称,然后发送USER消息提供用户信息。成功注册后,发送JOIN消息请求加入指定频道;
明文通信默认使用 TCP 端口 6667,常用替代端口为 6660-6669、7000;加密通信(SSL/TLS)使用端口 6697。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是由大量被恶意软件感染的计算机(僵尸主机)组成的网络,这些计算机由攻击者秘密控制,可被用于执行各种恶意活动。主要用于分布式拒绝服务(DDoS)攻击、发送垃圾邮件、窃取敏感信息、加密货币挖矿和分发其他恶意软件。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用 Wireshark 过滤条件ip.src == 172.16.134.191 && tcp.port == 6667,发现蜜罐主机与209.126.161.29 、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172这些 IRC 服务器进行通信。

4、在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
通过 Wireshark 的 "Conversations" 统计功能,筛选目标 IP 为 209.196.44.172 的会话,结果显示共有3461 个不同的源 IP 地址访问了该服务器。

5、那些IP地址被用于攻击蜜罐主机?
使用过滤条件ip.dst == 172.16.134.191 && tcp.flags.syn == 1 && tcp.flags.ack == 0,可以看到多个攻击源 IP 地址,主要包括:
6、攻击者尝试攻击了那些安全漏洞?
攻击者攻击了135、139、445、4899、80端口

7、那些攻击成功了?是如何成功的?
成功的攻击:利用 Microsoft SQL Server SA 空密码漏洞
攻击过程:
攻击者通过端口扫描发现蜜罐主机的 1433 端口开放,尝试使用用户名 "sa" 和空密码登录 SQL Server,由于蜜罐主机配置不当,登录成功。攻击者执行xp_cmdshell扩展存储过程,下载并执行恶意程序,恶意程序将蜜罐主机加入以 209.196.44.172 为 C&C 服务器的 IRC 僵尸网络,蜜罐主机开始定期连接 IRC 服务器,接收攻击者指令。
3.学习中遇到的问题及解决
- 问题1:使用 strings 命令查看 RaDa.exe 时出现大量乱码
- 问题1解决方案:这是因为 RaDa.exe 使用了 UPX 加壳技术,压缩后的代码和数据都是乱码的。使用超级巡警脱壳机对文件进行脱壳处理后,再使用 strings 命令查看脱壳后的文件,就可以看到清晰的字符串信息了。
4.实践总结
在 RaDa 恶意代码分析过程中,我了解了后门程序的典型特征和工作原理,认识到加壳技术在恶意代码防分析中的作用。在 Crackme 程序分析中,我锻炼了逆向工程思维,学会了如何定位程序的关键验证逻辑。在僵尸网络流量分析中,我理解了僵尸网络的通信机制和攻击方式,掌握了从网络流量中追踪攻击行为的技能。

浙公网安备 33010602011771号