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查看文件类型:
5705b3673fb41c80676bf32e7c502cf6
由得到的结果可知,为一个32位Windows PE可执行文件,有GUI图形界面。
·输入命令strings rada.exe可以查看文件的可打印字符串:
cf8d0141d278112ff8d0369cc80cfe8f
分析得到的结果:为乱码,说明该文件加壳了。
·使用PEiD工具进行查看:
97aa0fbc2b29ff2b50a28177b5092f6a
由得到的结果可知,加壳工具为UPX 0.89.6-1.02/1.05-2.90->Markus&Laszlo。

2.1.2 使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理

·使用超级巡警脱壳机进行脱壳:
259a29f39b5f90917d7c42a7f7b8c741
·点击给我脱
5d1fbb05729e31ce2b3aaa6427bf86ba
得到脱壳后的文件RaDa_unpacked.exe
·再次输入命令strings rada.exe可以查看文件的可打印字符串:
65f8c54ac12f1825a84f618f9475fce1
不是乱码了。

2.1.3 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

使用IDA Pro Free工具进行分析,点击New
170f8bf26ca83a36e863fb0ead0e79e4
选择PE,然后选择脱壳后的文件:
07f0fc0fd10d3f041c03ea04fb8595d8
一直点击下一步:
0f7aa470813bf2451a3ca6cbd01dac1d
最终得到结果:
fde09d2b80b4d33c149152fdea4df63a
查看Strings window:
bafc496644dfaa4701e99a7bf22f5bb7
可知作者为 Raul Siles && David Perez。

2.2 分析Crackme程序

将crackme1.exe和crackme2.exe下载到winxp虚拟机中,在命令中输入

file crackme1.exe
file crackme2.exe

查看crackme的文件类型。
d645ce4b44ec4b5bf58f7f20ac18d6cf
可以看到是32位Windows下的PE文件。
试探输入格式:
230c6c6f4b2bc97d5b16f77067a2d3cf
可以看到,输入一个参数的时候是Pardon?What did you say?,输入其他时是I think you are missing something.
通过IDA Pro Free工具对crackme1.exe进行分析:
打开IDA free,选择PE Executable,在strings window中可以看到程序中出现的明文字符串,也可以看到前面输出的字符串包含在内:
3e0226a51c27db15dd51f110eeb114d6
还有I konw the secret.和You konw how to speak to programs,Mr.Reverse-Engineer.
查看程序view-Graphs中的function calls函数调用图:
26fa993cfbdcf3f4eab0329607789896
查看401280函数段,查看其汇编代码:
1c0baf3c53a427c44ed81aa1b82ba5d1
93b77a1a882810f744e27171766fcbdd
在view-Graphs中查看flow chart函数流程图:
3e974c645944d2708a9e6a9a1b327fe5
可以看到,argc=2时,输入I know the secret就会进入到true流程,否则就会进入false流程,返回Pardon?What did you say?语句。如果输入的参数个数不对,直接进入false流程,返回I think you are missing something.语句。
所以在命令中输入"I know the secret",可以得到正确的结果:
a93fdf2690068a827d24f9e734016936

用同样的方式对crackme2.exe进行分析:
输入参数进行测试:
b39c84eab23685d52bcb0426f1214c8a
查看strings window中的明文字符串:
a0f22f2b59f03514db12f69d9b4eeb9f
查看401280函数段,查看其汇编代码和流程图:
402f21e4a60ddf164a786809db3d5074
590eae29fff918fc9a010d5722e609bb
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",可以得到正确的结果:
340358e0dd3aac8145033ac90d3e363e

2.3 分析一个自制恶意代码样本rada

2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息

输入命令:

md5sum rada.exe

得到的结果为:
901473140cfc9450c06aac1c6152bab0
得到的是md5摘要值
输入命令:

file rada.exe

得到的结果为:
dd263a46247bdae37f2fe5404e1b0805
得到的基本信息为PE32文件。

2.3.2 找出并解释这个二进制文件的目的

使用Process Explorer软件监视脱壳后的RaDa.exe,根据Strings进行分析:
6a487ab75ca37b0daa48e0d03c243698
可以看到程序访问了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 识别并说明这个二进制文件所具有的不同特性

484a2142115b6e7e8dd357403b243979
采取了exe、value、put、get,screenshot,然后sleep。执行了上传、下载、休眠、屏幕截图等命令;
文件访问了10.10.10.10\rada\rada_commands.html,把自己放到C盘下,修改注册表。

2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术

1fd6d04c9af0abb2cf221a7c84a82994
用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:
bafc496644dfaa4701e99a7bf22f5bb7
可知作者为 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

使用命令进行过滤,得到的结果:
4f2c4da0f744d6416687639daffa5ce4
c704e0053d80679eb58043587ff4777f
可以看出与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'

01ec7e46685e1df79b84a92d727c9361
生成了三个新的文件。
输入命令:

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

得到如下结果:
32442e567093bfe6367f73c2ae52ebe3
可知,有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中:
367a2b9b7999a5999ecda130e75bc7b1
ebe7c4fc23674078ffc92a96fa6a78f5
共有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端口:
952953bef985c5af98a0890fc5a20233
可以看出,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
f259d405d22b01107b95bc5c15d6bd24
只进行了TCP连接,没攻击。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 139
3f659a9a6bb4772b4ba28fe32ebd6a88
攻击者多次尝试建立连接,都被识别出,发送了RST指令。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 25
6affbcfc85e461c8c26c8277449e5234
仅为TCP连接。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 445
在33280包中:
3dc3d3642a64572a6e0c54eba8527958
可以看到PSEXESVC.EXE程序,说明进行了蠕虫攻击。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 4489
305cc0e177efae1f9910db39ede6c04e
Radmin远程控制工具控制蜜罐主机。
在wirshark中筛选:ip.addr == 172.16.134.191 && tcp.port == 80
32a8bff81a163f584d074581d4edb0e6
f0bce1f5f862ab961043417077501ac8
攻击者想通过缓冲区溢出来获得命令行。
a3c2c2ed70ffd2600d58a0f4b7fc54b4
300f574a0db929215be890a857fc4deb
有c:\notworm,这是一个红色代码蠕虫攻击。
输入

ip.addr == 172.16.134.191&&tcp.srcport==80 &&http

1ab7d5be3b0dd2fbb34e64e52d11f737
通过蜜罐主机80端口向外的流量进行分析,发现蜜罐主机做的几次回应均为一个iis服务器的默认页面,所以80端口的这些攻击均失败。
在wirshark中筛选:ip.addr == 172.16.134.191 && udp.port == 137
145933685b76fcbae23d8065be27df69
是用于获取用户信息的NetBIOS网络查点。

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

rada压缩文件在winxp中无法解压缩。
解决方案:将rada文件先在本机中解压缩,再复制到winxp虚拟机中。

4. 学习感想和体会

这次的实验内容很多,所以耗时也比较长,但是我对恶意代码分析和流量分析的了解也更深了。同时,使用了进程监视器Process Explorer,超级脱壳器、IDA Pro等工具,我对这些工具的使用也有了基础。Crackme1和2程序的分析、Windows 2000系统被攻破并加入僵尸网络的分析,都让我对网络攻防有了更深的体会。我学会了寻找攻击者姓名、攻击者使用了哪些攻击并且是否攻击成功,这些都说明了安全分析需要技术、协议、漏洞和攻击行为的了解。

posted @ 2026-04-27 19:32  Aukeeke  阅读(2)  评论(0)    收藏  举报