20252816 2025-2026-2 《网络攻防实践》第八次作业
20252816 2025-2026-2 《网络攻防实践》第八次作业
>.< 相关概念
-
恶意代码:Malware,或Malicious Code,指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。恶意代码类型恶意代码可以根据其执行方式、传播方式和对攻击目标的影响分为计算机病毒、蠕虫、恶意移动代码、特洛伊木马、后门、僵尸程序、内核套件等。
-
计算机病毒(ComputerVirus)是一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。
-
蠕虫(Worm)的自我复制机制与计算机病毒类似,但蠕虫是一类自主运行的恶意代码,并不需要将自身嵌入到其他宿主程序中。
-
恶意移动代码(Malicious Mobile Code)是指在本地系统执行一些用户不期望的恶意动作的移动代码。由于恶意移动代码普遍以Web浏览器作为攻击目标。
-
后门(Backdoor)是指一类能够绕开正常的安全控制机制,从而为攻击者提供访问途径的一类恶意代码。
-
特洛伊木马(TrojanHorse)是一类伪装成有用的软件,但隐藏其恶意目标的恶意代码。后门和特洛伊木马两个概念经常混淆,后门仅为攻击者给出非法访问途径,而特洛伊木马的特征则在于伪装性。当然,许多工具融合了后门和特洛伊木马两者的特性,即攻击者将后门工具伪装成善意的软件,诱导用户安装从而为其给出访问权,此类工具可称为木马后门。
-
僵尸网络(Botnet)是攻击者(称为botmaster)出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的攻击网络。僵尸网络区别于其他攻击方式的基本特性是使用一对多的命令与控制机制,此外也具有恶意性和网络传播特性。僵尸程序(Bot)是用于构建僵尸网络以形成一对多控制攻击平台的恶意代码形态。
-
内核套件(Rootkit)是在用户态通过替换或修改系统关键可执行文件,或者在内核态通过控制操作系统内核,用以获取并保持最高控制权(root access)的一类恶意代码。
-
-
恶意代码分析方法:
-
静态分析技术:反病毒软件扫描、文件格式识别、字符串提取分析、二进制结构分析、反汇编与反编译、代码结构与逻辑分析、加壳识别与代码脱壳等。
-
动态分析技术:快照对比、系统动态行为监控、网络协议栈监控、沙箱技术、动态调试技术等。
-
1. 实践内容
1.1 动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
1.2 动手实践任务二
分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
1.3 分析实践任务一
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
1.4 分析实践任务二
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. 实践过程
相关工具下载
下载tcpflow
sudo apt-get install tcpflow
2.1 动手实践任务一
-
将学习通里的rada文件解压缩后,放在WinXP的C:\Documents and Settings\Administrator文件夹下
![1]()
-
识别rada恶意代码样本的文件格式、运行平台。
file RaDa.exe![2]()
PE32 executable for MS Windows (GUI) Intel 80386 32-bit:说明它是基于 x86 架构、32 位、采用 Windows PE 格式、带图形界面(GUI)的可执行程序,可在 32 位或 64 位 Windows 系统上运行。
-
使用PEiD(winXP系统里自带的,无需下载)查看加壳工具
![3]()
可以看到,使用的是UPX加壳。
-
还是利用这个系统自带的超级巡警脱壳工具,选择相应的路径,然后点击“给我脱”
![4]()
-
使用IDA工具(依旧系统自带),打开脱壳处理后的rada_unpacked.exe文件,进入Strings页面,在String列右击打开Setup,勾选Unicode编码。
![5]()
![6]()
从中发现rada恶意代码的编写作者是Raul Siles与David Perez。
2.2 动手实践任务二
2.2.1 分析crackme1.exe
-
依旧将学习通里的文件放到C:\Documents and Settings\Administrator文件夹下。
-
在命令行尝试运行crackme1.exe,看下它究竟是何物。
![7]()
运行不起来,差什么参数吧……
-
用IDA工具打开crackme1.exe,看到了刚才的输出信息。
![8]()
-
接下来看函数调用图
点击“IDA View-A”➡点击“View”➡点击“Graphs”➡点击“Functions calls”
![9]()
发现经过sub_401280这个函数后会有输出。
-
然后我们查看sub_401280函数的详细信息
点击“Functions”➡点击“sub_401280”➡点击下图这个按钮
![10]()
![11]()
-
认真分析板块间的关系
![12]()
此处是判断参数是否是两个,若非2,则false;若为2,则true。
![13]()
此处是判断输入字符串是否与“I know the secret”相等,若不等,则报错;若相等,则进行下一步。
-
故尝试输入crackme1.exe和"I know the secret"两个参数,观察结果。
![14]()
分析crackme1.exe的实验成功!
2.2.2 分析crackme2.exe
实验步骤与2.2.1类似,不再赘述。

嘿?嗯嗯嗯,看看别的。

好的,接下来看sub_401280函数:


说明需要两个参数。

此处和crackme1.exe不一样了。这里的意思应该是要crackmeplease.exe和 "I know the secret"两个参数。
于是我将crackme2.exe的文件重命名为crackmeplease.exe。然后输入两个参数并观察结果。

crackme2.exe分析实验成功!
2.3 分析实践任务一
-
输入以下命令查看RaDa.exe的摘要
md5sum RaDa.exe![21]()
-
接下来打开监听工具process explorer对RaDa_unpacked.exe进行检测,在string窗口显示二进制文件中的字符串
![22]()
观察到,这个程序通过硬编码的服务器地址(http://10.10.10.10/RaDa
)及指令文件(RaDa_commands.html)建立通信链路,实现远程指令接收;利用
Windows 注册表 Run 键值(HKLM\Software\Microsoft\Windows\CurrentVersion\Run)实现开机自启动,确保持久化驻留;具备文件上传下载(upload.cgi/download.cgi)、DDoS 攻击(Smurf 攻击)等恶意功能;同时通过检测 VMware 环境路径,展现反分析能力,以规避沙箱或虚拟机的动态分析。这些字符串完整勾勒出该木马的远程控制、持久化、攻击载荷及反检测等核心行为逻辑。
-
作者信息如下:
![23]()
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
md5摘要值为caaa6985a43225a0b3add54f44a0d4c7。
2、找出并解释这个二进制文件的目的;
这个程序是一个功能完整的僵尸网络远控后门,它会主动连接黑客的控制服务器,通过 Web 接口接收指令,实现文件上传下载、系统命令执行、注册表修改,甚至可以被用来发起 DDoS 攻击,同时通过开机自启和虚拟机检测来维持自身的存活与隐蔽。
3、识别并说明这个二进制文件所具有的不同特性;
与一般二进制文件不同,该程序具备典型的恶意后门特征:内置硬编码的控制服务器地址,可主动与外部服务器建立连接来接收指令;通过写入开机自启注册表项实现持久化驻留;自带文件上传/下载的后门接口,支持向被控主机植入或窃取文件;内置DDoS攻击功能,可被用于发起网络攻击;同时包含虚拟机/沙箱环境检测逻辑,以此逃避安全分析与逆向追踪。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
采用了UPX加壳技术,直接对文件进行解析会呈现乱码形式。
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
它属于后门程序,因为它通过隐蔽通道接收远程指令,而非通过感染文件或网络传播。
6、给出过去已有的具有相似功能的其他工具;
Bobax、Setiri、GatSla,均通过 HTTP 协议访问指定服务器地址,下载包含控制指令的文件并解析执行,以此实现远程控制、文件上传下载和攻击任务下发。
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
开发作者:Raul siles和David Perze
开发时间:2004
2.4 分析实践任务二
-
在搜索框输入ip.src ==172.16.134.191&&tcp.dstport ==6667,查看蜜罐主机(IP地址:172.16.134.191)与哪些IRC服务器进行了通信。
![24]()
观察得到,蜜罐主机共与5台IRC服务器进行通信。它们分别是209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172。
-
输入以下指令""获取209.196.44.172与172.016.134.191之间的所有的IRC数据包。
cd ~/Desktop tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'![25]()
![26]()
执行完,桌面多了三个文件。
-
以Vim方式打开report.xml文件
![27]()
![28]()
使用以下命令利用管道进行分析
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![29]()
可以看到有3461台不同的主机访问了以209.196.44.172为服务器的僵尸网络。
-
输入以下命令,从流量包中,提取所有攻击蜜罐的 IP 地址,去重,统计攻击者 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 > result.txt;wc -l result.txt![30]()
![31]()
攻击者IP有165个。
-
输入以下命令,查出蜜罐主机回复攻击时,对方用了哪些tcp、udp端口
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 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![32]()
可以看到TCP有135、139、25、445、4899、80,UDP有137。
-
先筛选一下137端口,筛选条件“udp.dstport==137”
![33]()
可以看出,是别的主机对蜜罐靶机的NetBIOS服务探测。
-
再看看135端口,看出是在进行端口扫描,并成功探测到该端口开放。
![34]()
-
接着看139端口,可以看出攻击者探正在通过 139 端口(NetBIOS/SMB)对蜜罐主机进行文件共享服务探测与连接尝试,部分攻击者成功建立了 SMB 会话并请求访问目标主机的共享目录但并没有访问成功,而部分连接被蜜罐拒绝。
![35]()
-
25端口,可以看出攻击者在对蜜罐主机的 25 端口(SMTP 邮件服务)进行多次连接尝试,连接成功后又主动断开。
![36]()
-
445端口,攻击者连接到了目标主机的445端口,通过NTLM空会话或弱认证,使用DCERPC调用SRVSVC和SAMR服务,成功枚举了共享资源、用户列表和域名信息。
![37]()
-
4899端口,攻击者试图通过暴力破解 Radmin 密码来控制受害者的电脑,但似乎没有成功(出现了重传),绿色那部分成功连上了4899端口,并且随后断开了。
![38]()
-
80端口,攻击者正在向蜜罐主机的 80 端口发送恶意构造的 HTTP 请求进行漏洞探测,但似乎都被成功拦截了,而蜜罐同时也在向外部网站发起正常的 HTTP 请求。
![39]()
-
经过分析后,尝试回答下列问题:
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
因特网中继聊天(Internet Relay Chat),一般称为互联网中继聊天,简称:IRC。它是一种网络聊天协议。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。
申请加入前要注册,注册时需要发三种信息:用户信息USER、口令PASS 以及昵称NICK。
IRC明文传输一般使用6667端口,也会使用 6660—6669 端口。SSL加密传输在 6697 端口。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指攻击者(称为botmaster)出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
僵尸网络主要用于:发动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为服务器的僵尸网络?
有3461台不同的主机访问了以209.196.44.172为服务器的僵尸网络
5、哪些IP地址被用于攻击蜜罐主机?
共统计出165个攻击IP,部分IP如下12.252.61.161、12.253.142.87、128.242.214.10、12.83.147.97、129.116.182.239、141.149.155.249、141.85.37.78、144.134.109.25、148.235.82.146、162.33.189.252、164.125.76.48、168.226.98.61、168.243.103.205、169.254.205.177……
6、攻击者尝试攻击了哪些安全漏洞?
利用139/445端口的空会话漏洞获取信息;尝试暴力破解4899端口的远程管理密码;通过 445 端口的 SMB 漏洞成功植入PSEXESVC.EXE,实现远程代码执行和权限控制;同时对 80(Web)和 25(邮件)端口进行探测,寻找其他可能的攻击路径。
7、哪些攻击成功了?是如何成功的?
攻击者利用NTLM空会话或弱认证成功枚举了系统用户和共享信息,随后利用 SMB 漏洞成功上传并执行了 PSEXESVC.EXE后门程序,实现了远程代码执行和系统控制。
3. 学习中遇到的问题及解决
-
问题1:虚拟机打不开,可能是上次异常关闭导致的。
![40]()
-
解决方案1:关闭所有VMware进程后重新打开就好了。
4. 学习感想和体会
通过本次实践,我深刻体会到了“攻防一体”的辩证关系。在动手实践中,无论是利用IDA逆向破解Crackme程序,还是分析RaDa恶意代码的反分析机制,都让我从底层逻辑理解了软件的运行机制。这次实验让我明白,防御不仅仅是堆砌防火墙,更需要深入理解攻击者的手段,才能真正做到“知己知彼,百战不殆”。


































浙公网安备 33010602011771号