20252807 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. 实践过程
2.1 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者
2.1.1 使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具
·将rada文件解压后复制到winxp中,在cmd中输入命令file rada.exe查看文件类型:

由得到的结果可知,为一个32位Windows PE可执行文件,有GUI图形界面。
·输入命令strings rada.exe可以查看文件的可打印字符串:

分析得到的结果:为乱码,说明该文件加壳了。
·使用PEiD工具进行查看:

由得到的结果可知,加壳工具为UPX 0.89.6-1.02/1.05-2.90->Markus&Laszlo。
2.1.2 使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理
·使用超级巡警脱壳机进行脱壳:

·点击给我脱:

得到脱壳后的文件RaDa_unpacked.exe。
·再次输入命令strings rada.exe可以查看文件的可打印字符串:

不是乱码了。
2.1.3 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
使用IDA Pro Free工具进行分析,点击New:

选择PE,然后选择脱壳后的文件:

一直点击下一步:

最终得到结果:

查看Strings window:

可知作者为 Raul Siles && David Perez。
2.2 分析Crackme程序
将crackme1.exe和crackme2.exe下载到winxp虚拟机中,在命令中输入
file crackme1.exe
file crackme2.exe
查看crackme的文件类型。

可以看到是32位Windows下的PE文件。
试探输入格式:

可以看到,输入一个参数的时候是Pardon?What did you say?,输入其他时是I think you are missing something.。
通过IDA Pro Free工具对crackme1.exe进行分析:
打开IDA free,选择PE Executable,在strings window中可以看到程序中出现的明文字符串,也可以看到前面输出的字符串包含在内:

还有I konw the secret.和You konw how to speak to programs,Mr.Reverse-Engineer.
查看程序view-Graphs中的function calls函数调用图:

查看401280函数段,查看其汇编代码:


在view-Graphs中查看flow chart函数流程图:

可以看到,argc=2时,输入I know the secret就会进入到true流程,否则就会进入false流程,返回Pardon?What did you say?语句。如果输入的参数个数不对,直接进入false流程,返回I think you are missing something.语句。
所以在命令中输入"I know the secret",可以得到正确的结果:

用同样的方式对crackme2.exe进行分析:
输入参数进行测试:

查看strings window中的明文字符串:

查看401280函数段,查看其汇编代码和流程图:


argc=2时,则会对输入的程序名和crackmeplease.exe做判断,不是则会返回I have an identity problem.,若是,则会和“I know the secret”进行比较,若不是,就会进入false流程,返回Pardon?What did you say?语句。如果输入的参数个数不对,直接进入false流程,返回I think you are missing something.语句。
所以,应该先更改程序名为crackmeplease.exe,然后输入crackmeplease.exe "I know the secret",可以得到正确的结果:

2.3 分析一个自制恶意代码样本rada
2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
输入命令:
md5sum rada.exe
得到的结果为:

得到的是md5摘要值
输入命令:
file rada.exe
得到的结果为:

得到的基本信息为PE32文件。
2.3.2 找出并解释这个二进制文件的目的
使用Process Explorer软件监视脱壳后的RaDa.exe,根据Strings进行分析:

可以看到程序访问了http://10.10.10.10/RaDa,
下载了rada_commands.html,
创建了文件C:\RaDa\tmp,
将RaDa_commands.html复制到C:\RaDa\tmp中,
修改注册表,将rada.exe设为开机启动,
将rada.exe文件放入C:\RADA\bin中,
最后进行了DDos攻击。
2.3.3 识别并说明这个二进制文件所具有的不同特性

采取了exe、value、put、get,screenshot,然后sleep。执行了上传、下载、休眠、屏幕截图等命令;
文件访问了10.10.10.10\rada\rada_commands.html,把自己放到C盘下,修改注册表。
2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术

用PEiD检测,采用的防止被分析或逆向工程的技术为UPX 0.89.6-1.02/1.05-2.90 ->Markus & Laszlo。
使用UPX加壳技术
2.3.5 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
是一个后门程序。该程序远程发动攻击,通过程序主动访问10.10.10.10/RaDa。
2.3.6 给出过去已有的具有相似功能的其他工具
僵尸程序Gatslag
特洛伊木马Setiri
2.3.7 可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,脱壳完成后查看Strings window:

可知作者为 Raul Siles && David Perez。
2.4 Windows 2000系统被攻破并加入僵尸网络
分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。
2.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC定义:Internet Relay Chat(互联网中继聊天),一种实时文本通信协议,用于群组聊天或私聊。
客户端加入网络消息:JOIN #频道名(如 JOIN #botnet)。
常用TCP端口:
标准端口:6667
加密端口:6697(SSL/TLS)
其他常见端口:7000, 8000, 8080(僵尸网络常规避标准端口)
2.4.2 僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是由攻击者控制的被感染主机(僵尸节点/Bots)组成的网络。
通常用于:
分布式拒绝服务攻击(DDoS)——> 淹没目标服务器流量
垃圾邮件分发 ——> 通过僵尸主机群发邮件
加密货币挖矿 ——> 劫持计算资源挖矿(如门罗币)
窃取敏感数据 ——> 键盘记录、凭证窃取
勒索软件传播 ——> 横向移动感染内网主机
2.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
tcp.port == 6667 && ip.addr == 172.16.134.191
使用命令进行过滤,得到的结果:


可以看出与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 -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为服务器的僵尸网络。
2.4.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 > 2807.txt;wc -l 2807.txt
将被用于攻击蜜罐主机的IP存入2807.txt中:


共有165个地址。
2.4.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
#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
查看有响应的TCP和UDP端口:

可以看出,TCP端口为135、139、25、445、4899、80,UDP端口为137,分别对应RPC、NETBIOS-SSN、SMTP、SMB、RADMIN、HTTP和NetBIOS网络查点。
2.4.7 那些攻击成功了?是如何成功的?
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 135

只进行了TCP连接,没攻击。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 139

攻击者多次尝试建立连接,都被识别出,发送了RST指令。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 25

仅为TCP连接。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 445
在33280包中:

可以看到PSEXESVC.EXE程序,说明进行了蠕虫攻击。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 4489

Radmin远程控制工具控制蜜罐主机。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 80


攻击者想通过缓冲区溢出来获得命令行。


有c:\notworm,这是一个红色代码蠕虫攻击。
输入
ip.addr == 172.16.134.191&&tcp.srcport==80 &&http

通过蜜罐主机80端口向外的流量进行分析,发现蜜罐主机做的几次回应均为一个iis服务器的默认页面,所以80端口的这些攻击均失败。
在wirshark中筛选:ip.addr == 172.16.134.191 && udp.port == 137

是用于获取用户信息的NetBIOS网络查点。
3. 学习中遇到的问题及解决
rada压缩文件在winxp中无法解压缩。
解决方案:将rada文件先在本机中解压缩,再复制到winxp虚拟机中。
4. 学习感想和体会
这次的实验内容很多,所以耗时也比较长,但是我对恶意代码分析和流量分析的了解也更深了。同时,使用了进程监视器Process Explorer,超级脱壳器、IDA Pro等工具,我对这些工具的使用也有了基础。Crackme1和2程序的分析、Windows 2000系统被攻破并加入僵尸网络的分析,都让我对网络攻防有了更深的体会。我学会了寻找攻击者姓名、攻击者使用了哪些攻击并且是否攻击成功,这些都说明了安全分析需要技术、协议、漏洞和攻击行为的了解。

浙公网安备 33010602011771号