《网络攻防实践》实践八报告
20252809 2025-2026-2 《网络攻防实践》实践八报告
1. 实践内容
本周的实践内容围绕恶意代码分析与僵尸网络流量分析两大主题展开。
- 恶意代码基础分析:涵盖了对恶意代码样本进行文件类型识别、脱壳处理及字符串提取的完整流程,旨在从二进制文件中挖掘作者、功能等关键信息。
- 逆向工程实践:通过静态分析 Crackme 小程序,寻找特定的输入,以触达程序的正确执行路径,理解程序的内部逻辑与校验机制。
- 恶意代码深度剖析:对提供的 RaDa 样本进行全方位分析,包括识别其基本特征、核心目的、功能特性、反分析技术,并进行分类定性与同源工具比对。
- 网络攻击流量取证:对一份蜜罐主机遭受攻击的网络流量日志进行分析,重点在于识别僵尸网络的通信模式(IRC 协议)、统计攻击规模、溯源攻击 IP,并精准定位导致主机失陷的成功漏洞利用。
2. 实践过程
一、动手实践任务一:RaDa 恶意代码样本的基础分析
本任务旨在通过工具对 RaDa 恶意代码样本进行基础分析,以获取其文件属性与编写作者信息。
(1) 文件格式与加壳情况识别
-
环境准备:启动 Windows XP 虚拟机,为保障实验环境安全隔离,将网络连接模式设置为"仅主机模式",不桥接外网。
![image]()
-
文件传输:通过 VMware 的共享文件夹功能,将待分析的
RaDa.exe样本文件传入 WinXP 虚拟机中。![image]()
-
工具分析:将
RaDa.exe拖入 PEiD 分析工具中。![image]()
识别结果清晰地显示了该样本的三个关键属性:
| 项目 | 结果 | 描述 |
|---|---|---|
| 文件格式 | Win32 GUI + 连接器版本 6.0 | 这是一个标准的 32 位 Windows PE 可执行程序,带有图形界面子系统。 |
| 运行平台 | Win32 GUI(子系统) | 兼容所有 32 位的 Windows 操作系统,如 Windows 95/98/2000/XP/7 等。 |
| 加壳工具 | UPX 0.89.6 - 1.02 / 1.05 - 2.90 | 该样本被发现使用了由 Markus & Laszlo 开发的经典 UPX 压缩壳 进行保护。 |
(2) 脱壳处理
-
使用专门的"超级巡警脱壳机"对加壳的
RaDa.exe文件进行脱壳操作,生成一个名为RaDa_unpacked.exe的新文件。脱壳机明确提示了"脱壳成功!"。![image]()
-
效果验证:为确认脱壳效果,将新生成的
RaDa_unpacked.exe再次拖入 PEiD。此时,PEiD 的识别结果变为Microsoft Visual Basic 5.0 / 6.0,不再显示任何 UPX 壳的特征。这证明外层的压缩壳已被完全且完美地剥离。![image]()
(3) 字符串提取与作者信息发现
-
在 IDA Pro 反汇编工具中加载脱壳后的
RaDa_unpacked.exe文件。![image]()
-
使用快捷键
Shift+F12打开字符串分析窗口,在该窗口中浏览并查找关键信息。![image]()
-
成功发现一段明文的作者署名信息:
Raul Siles & David Perez。 -
结论:通过无损脱壳并分析内部字符串,我们确认了该恶意代码样本的编写作者为 Raul Siles & David Perez。
二、动手实践任务二:逆向分析 Crackme 程序
本任务对两个 Crackme 小程序(crackme1.exe 和 crackme2.exe)进行逆向分析,以找到使其输出成功信息的特定输入。
1. 逆向分析 crackme1.exe
-
静态分析:使用 IDA Pro 打开
crackme1.exe,通过Shift+F12查看程序内嵌的字符串,发现了一个可疑且语气肯定的关键字符串I know the secret,推断此即为正确口令。![image]()
![image]()
-
动态验证:打开系统命令行(cmd),切换到程序所在目录,输入命令
crackme1.exe "I know the secret"并执行。程序随即输出You know how to speak to programs, Mr. Reverse-Engineer,这条信息是程序对正确口令的确认回应,验证成功。![image]()
2. 逆向分析 crackme2.exe
-
文件名校验发现:在分析
crackme2.exe时,初步测试发现即使输入正确口令也可能失败,由此推断其存在额外的校验逻辑。经深入分析,发现程序会检查自身的文件名。 -
动态验证与成功:
-
首先,将文件重命名,在 cmd 中执行:
rename crackme2.exe crackmeplease.exe。![image]()
-
然后,使用正确的文件名运行程序并附上口令参数:
crackmeplease.exe "I know the secret"。![image]()
-
程序最终成功输出信息
We have a little secret: Chocolate。
-
-
结论:
crackme2.exe不仅校验输入口令,还强制要求可执行文件本身的名字为crackmeplease.exe。本次实践成功找到了这一隐藏的文件名校验逻辑,并完整达成了两个程序的突破目标。
三、分析实践任务一:RaDa 恶意代码样本深度分析
本任务对脱壳后的 RaDa 样本进行深度分析,并回答一系列问题。
问题 1:二进制文件摘要
-
基本信息:该文件脱壳后为 32 位 Windows PE 可执行程序,开发语言为 Microsoft Visual Basic 5.0 / 6.0,运行于 32 位 Windows 平台。
-
唯一性标识:为获取其唯一的数字指纹,使用
md5sum RaDa.exe命令行工具计算了加壳后原始样本的 MD5 哈希值。![image]()
- MD5 摘要值:
caaa6985a43225a0b3add54f44a0d4c7 - 该哈希值可以作为识别和比对同一样本的唯一依据。
- MD5 摘要值:
| 信息项 | 内容 |
|---|---|
| 文件名 | RaDa.exe |
| 文件类型 | Win32 PE 可执行程序 (GUI) |
| 开发语言 | Microsoft Visual Basic 5.0 / 6.0 |
| 原始加壳 | UPX 0.89.6 - 2.90 |
| 运行平台 | Windows 95/98/2000/XP/7 (32位) |
| MD5 哈希(唯一标识) | caaa6985a43225a0b3add54f44a0d4c7 |
问题 2:二进制文件的目的
-
静态分析启示:对脱壳文件
RaDa_unpacked.exe进行字符串分析,发现了--install、Software\Microsoft\Windows\CurrentVersion\Run、http://等特征字符串。这表明程序具备自启动持久化、远程 HTTP 通信和命令执行能力,呈现出远程控制后门程序的典型特征。 -
动态行为验证:
-
模拟安装:在命令行下运行脱壳程序,并加上
--install参数:RaDa_unpacked.exe --install。程序无任何 GUI 界面弹出,仅后台静默运行。![image]()
![image]()
-
持久化痕迹:打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run路径,发现一个新的注册表项,其值指向 RaDa 程序在系统目录下的路径。这证实了其通过修改注册表实现开机自启的功能。![image]()
-
通信特征:进程内存中可见 HTTP 相关字符串,表明其具备与远程 C2 服务器通信的能力。
-
-
结论:RaDa 是一款典型的远程控制后门程序。其核心目的是在受害主机上 隐蔽、长期地驻留,通过 HTTP 协议与远程控制端通信,使攻击者能随时控制受害主机。
问题 3:RaDa 恶意代码的不同特性
| 序号 | 特性名称 | 具体描述 | 支撑证据 |
|---|---|---|---|
| 1 | 持久化驻留 | 注册表自启动,开机自动运行 | 字符串中含 Run 注册表路径;动态运行后出现自启项 |
| 2 | 后台静默运行 | 无 GUI 界面,用户无感知 | PEiD 识别为 GUI 但实际运行无任何窗口弹出 |
| 3 | HTTP 命令通道 | 通过 HTTP 与 C2 服务器通信 | 字符串含 http://;导入表含 WinInet.dll |
| 4 | 反分析检测 | 检测 VMware 虚拟机并隐藏信息 | 虚拟机中命令行参数不显示完整作者信息 |
| 5 | VB 运行库依赖 | 基于 Visual Basic 开发 | 脱壳后 PEiD 识别为 VB 5.0/6.0 |
| 6 | 模块化恶意功能 | 支持命令执行、文件操作等 | 字符串中含 --install、命令执行、文件操作痕迹 |
问题 4:采用的防止被分析或逆向工程的技术
- UPX 加壳保护技术:这是最直接的反分析手段。加壳后,代码和数据被压缩混淆,直接用 IDA 等静态工具查看只会得到乱码,必须先脱壳才能逆向,抬高了分析门槛。
- 虚拟机环境检测反分析技术:该样本能检测自己是否运行在 VMware 等虚拟机环境中。若检测到,程序会主动隐藏作者信息等关键数据,以此干扰安全分析人员在常用虚拟沙箱中对其进行完整的行为和逆向分析。
问题 5:对该恶意代码样本进行分类并给出理由
- 分类结论:RaDa 属于 远程控制木马(Remote Access Trojan, RAT),即一种后门程序。
- 理由阐述:
- 非传统病毒:它不具备感染或篡改其他本地文件并自我复制传播的能力。
- 非蠕虫:从行为分析看,它不包含主动扫描网络漏洞或以自身为媒介向其他主机传播的模块,其传播依赖外部手动触发。
- 符合后门木马定义:其功能集合——后台静默运行、开机自启动持久化驻留、建立远程 C2 信道、接收并执行远程指令等——完全符合远程控制木马的定义。
问题 6:过去已有的具有相似功能的其他工具
| 工具名称 | 相似点 |
|---|---|
| Back Orifice 2000 (BO2K) | 隐蔽驻留、远程命令执行、文件管理 |
| Sub7 | VB 开发、注册表启动、远程操控 |
| NetBus | 早期后门,后台运行、系统配置修改 |
| Beast RAT | VB 编写,HTTP 通信、远程命令下发 |
问题 7:可能调查出二进制文件的开发作者吗?如果可以,环境与条件是什么?
- 可以调查出。作者信息为
Raul Siles & David Perez,该信息内嵌在程序字符串中。 - 所需环境与限定条件:
- 真实物理机环境:为了完整呈现作者信息,样本需要在真实物理机环境下的 Windows 系统中运行或进行分析,因为它会检测并规避在 VMware 虚拟机中展示关键信息的行为。
- 脱壳是前提:必须先成功执行 UPX 脱壳操作,才能还原出包含作者名的内部字符串。
- 原始样本:分析对象必须是未经篡改或二次加壳的原版 RaDa 样本。
- 静态分析工具:需要借助 IDA Pro 等工具查看脱壳后程序的字符串。
四、分析实践任务二:Windows 2000 蜜罐系统攻陷与僵尸网络流量分析
本任务基于一份由 Snort 收集的、经过编辑处理的蜜罐网络流量日志(botnet_pcap_file.dat),分析一个 Windows 2000 主机被攻破并加入僵尸网络的全过程。
问题 1:IRC 是什么?申请加入时的消息及常用端口
-
操作:用 Wireshark 打开日志,过滤
tcp.port==6667,任选一条 IRC 数据包查看协议详情。![image]()
![image]()
分析结果
-
IRC 的定义:IRC 全称 Internet Relay Chat(互联网中继聊天),是一种基于客户端/服务器模型的文本即时通信协议,常被僵尸网络用作控制信道。Wireshark 协议解析栏明确标注了 "Internet Relay Chat" 协议,进一步确认了流量性质。
-
IRC 客户端入网时必须发送的消息:
- 从捕获的数据包中,服务器返回了
433 NICK echoiso already in use。这是 IRC 协议的标准错误响应码,433 代表"客户端申请的昵称已被占用"。该响应反向证明蜜罐主机(IRC 客户端)在此之前向服务器发送了NICK echoiso指令。 - IRC 客户端申请加入网络时,必须发送的两条核心注册消息为:
- NICK <昵称>:声明客户端在 IRC 网络中的唯一标识。
- USER <用户名> <主机名> <服务器名> :<真实信息>:提交完整的用户身份描述信息,完成注册。
- 从捕获的数据包中,服务器返回了
-
IRC 常用 TCP 端口:从数据包的 TCP 层可见,服务器端使用的端口是 6667,这是 IRC 协议的标准默认端口。其他常见的备用端口还有 6668、6669、7000 等。
问题 2:僵尸网络是什么及其用途
-
僵尸网络(Botnet):是指由大量被植入恶意程序(僵尸程序)的主机组成的受控网络。这些受控主机("肉鸡")会主动连接攻击者的 C2 服务器,并像僵尸一样接收和执行攻击者的统一指令。实验中蜜罐主机
172.16.134.191向 IRC 服务器63.241.174.144:6667发起连接,就是其已成为僵尸网络节点的铁证。 -
用途:
- 发起分布式拒绝服务攻击(DDoS, DoS),耗尽目标资源。
- 发送海量垃圾邮件或进行恶意广告推广。
- 窃取被控主机的个人隐私、账号密码等各类敏感信息。
- 利用众"肉鸡"的算力进行加密货币"挖矿"。
- 作为跳板或扫描器,对内网其他主机进行横向渗透或发起新的攻击。
- 隐藏攻击者的真实 IP,以规避追踪和打击。
问题 3:蜜罐主机(172.16.134.191)与哪些 IRC 服务器进行了通信?
-
在 Wireshark 中使用过滤器
ip.addr == 172.16.134.191 and tcp.port == 6667,定位蜜罐主机发起和接收的所有 IRC 流量。![image]()
-
通过最终分析通信的目标 IP,最终识别出以下 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 为服务器的僵尸网络?
分析目标
统计在流量观察期内,通过 IRC 协议(TCP 端口 6667)接入僵尸网络服务器 209.196.44.172 的不同主机数量。
分析步骤
-
分流 IRC 流量:在 Kali Linux 中使用
tcpflow工具,针对性地提取与 IRC 服务器209.196.44.172端口6667交互的所有 TCP 流。sudo apt-get install tcpflow tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"![image]()
![image]()
命令执行后,在当前目录下生成两个文件:
172.016.134.191.01152-209.196.044.172.06667:蜜罐主机发往服务器的流量;209.196.044.172.06667-172.016.134.191.01152:服务器发往蜜罐主机的流量(用于后续统计)。
-
提取并统计用户名:从服务器发回给蜜罐的流量文件中,通过一个多命令组合的管道,过滤出 IRC 协议的
353响应码(即频道在线用户列表),使用sed、tr等工具进行文本清洗,最终分离出所有用户昵称,并使用sort -u | wc -l进行去重统计。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命令解释
cat:读取服务器发给蜜罐的流量文件;grep -a "^:irc5.aol.com 353":过滤 IRC 服务器对频道用户列表的标准响应行;sed:剔除服务器地址、命令及频道名等无关前缀,仅保留用户昵称列表;tr ' ' '\n':将空格分隔的昵称转为每行一个;tr -d "\15":删除 Windows 格式的回车符,避免统计干扰;grep -v "^$":移除空行;sort -u:对昵称去重,确保同一主机只计一次;wc -l:统计去重后的行数,即不同主机的数量。
![image]()
-
结果:统计结果显示,在本次观察期间,共有 3461 个不同的主机(昵称)连接到了这个由
209.196.44.172控制的僵尸网络频道。
问题 5:哪些 IP 地址被用于攻击蜜罐主机?
分析目标
从网络流量中提取所有向蜜罐主机 172.16.134.191 发起攻击的源 IP 地址,进行去重统计并生成完整列表。
分析步骤
-
提取攻击 IP 地址
使用 tcpdump 读取流量文件,过滤所有发往蜜罐主机的数据包,提取源 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 > IP.txt命令解释
tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191':读取流量文件,只抓取目标为蜜罐主机的数据包;awk -F " " '{print $3}':提取每行的第 3 列(源 IP 地址字段);cut -d '.' -f 1-4:截取完整的 IPv4 地址(去除端口号等多余信息);sort | uniq:对 IP 地址进行排序并去重,确保每个攻击 IP 只出现一次;> IP.txt:将去重后的 IP 列表保存到IP.txt文件中。
![image]()
-
使用
wc -l命令统计该文件的行数,得到结果为 165。这意味着,在观察期间内共有 165 个不同的 IP 地址对蜜罐主机发起过攻击。具体 IP 列表保存在IP.txt中,包括12.252.61.161、12.253.142.87等。wc -l IP.txt![image]()
-
查看具体攻击 IP 列表
查看
IP.txt文件中保存的所有攻击 IP 地址:cat IP.txt![image]()
分析结果
-
统计输出结果为 165,即在观察期间共有 165 个不同的 IP 地址对蜜罐主机发起了攻击。
-
攻击 IP 列表已保存至
IP.txt文件,部分攻击 IP 地址示例如下:12.252.61.161 12.253.142.87 129.116.182.239 195.36.247.77 ...
问题 6:攻击者尝试攻击了哪些安全漏洞?
分析目标
通过分析蜜罐主机 172.16.134.191 的开放端口及对应流量,识别攻击者尝试利用的安全漏洞类型。
-
筛选 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命令解析
src host 172.16.134.191:蜜罐主机主动响应的包tcp[tcpflags]==0x12:代表 SYN+ACK,表示主机该端口开放、愿意接受连接- 后面
cut/sort/uniq:提取端口、去重
![image]()
结果:
输出结果为:135、139、25、445、4899、80,共 6 个 TCP 端口。 -
筛选 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![image]()
结果:
输出结果为 137,共 1 个 UDP 端口。 -
各端口漏洞分析
80 端口(TCP)
Wireshark 过滤:
tcp.port == 80![image]()
打开 1885 数据包分析其 TCP 数据流可得:
![image]()
针对蜜罐开放的 TCP 80 端口(HTTP/IIS 5.0 服务)分析如下:
- Web 服务探测与扫描:攻击 IP
213.23.49.158发送HEAD / HTTP/1.0探测请求,蜜罐返回HTTP/1.1 200 OK,确认 IIS 服务可用性,为后续漏洞利用做准备。 - IIS 5.0 漏洞尝试:结合 Windows 2000 背景,攻击者可尝试红色代码(Code Red)蠕虫漏洞(
GET /default.ida)或 ISAPI 扩展缓冲区溢出(超长 URL),本次流量中的 HTTP 连接即为此类攻击的前置探测。
445 端口(TCP)
![image]()
流量中发现
PSEXESVC.EXE蠕虫特征码。攻击尝试利用 SMB 远程代码执行、PsExec 蠕虫植入、DCERPC 权限提升漏洞。135 端口(TCP)
![image]()
仅存在 TCP 三次握手,无后续数据交互。尝试利用 MS03-026、MS04-012 RPC DCOM 远程溢出漏洞。
139 端口(TCP)
![image]()
存在大量 TCP、SMB、NBSS 包,但无实际漏洞利用载荷。尝试 SMB 空会话、共享资源枚举攻击。
137 端口(UDP)
![image]()
尝试主机信息枚举、NBNS 欺骗攻击。
25 端口(TCP)
![image]()
仅 TCP 三次握手,无业务数据交互。尝试 SMTP 中继漏洞、用户枚举与命令注入。
4899 端口(TCP)
![image]()
尝试远程管理服务弱口令爆破、认证绕过漏洞。
- Web 服务探测与扫描:攻击 IP
针对上述 7 个开放端口,逐一分析攻击者尝试利用的安全漏洞:
| 端口/协议 | 服务 | 攻击者尝试利用的漏洞 |
|---|---|---|
| 445/TCP | SMB/CIFS 文件共享 | 利用 SMB 远程代码执行漏洞或 PsExec 远程执行机制,流量中出现 PSEXESVC.EXE 蠕虫特征,尝试上传并执行恶意程序 |
| 135/TCP | RPC 端点映射 | 尝试利用 MS03-026、MS04-012 等 RPC DCOM 远程溢出漏洞,流量中仅见 TCP 三次握手,未见后续漏洞利用载荷 |
| 139/TCP | NetBIOS 会话服务 | 尝试 SMB 空会话建立、共享资源枚举攻击,流量中存在大量 TCP、SMB、NBSS 数据包,但未发现实际漏洞利用载荷 |
| 80/TCP | IIS 5.0 Web 服务 | 尝试利用红色代码(Code Red)蠕虫漏洞(GET /default.ida 请求触发)、ISAPI 扩展缓冲区溢出漏洞,攻击 IP 213.23.49.158 发送 HEAD / HTTP/1.0 请求进行服务探测 |
| 25/TCP | SMTP 邮件服务 | 尝试 SMTP 中继漏洞利用、用户枚举与命令注入,流量中仅完成 TCP 三次握手,无应用层数据交互 |
| 4899/TCP | Radmin 远程管理 | 尝试远程管理服务弱口令爆破、认证绕过漏洞,流量中仅存在连接尝试,未发现进一步利用行为 |
| 137/UDP | NetBIOS 名称服务 | 尝试主机信息枚举、NBNS 欺骗攻击,流量中存在 Name Query 请求,用于收集目标主机信息 |
小结
攻击者在观察期间对蜜罐主机的 7 个开放端口均发起了不同程度的扫描与利用尝试,涉及 SMB 远程代码执行、RPC 溢出、IIS Web 漏洞、SMTP 中继、远程管理弱口令等多种攻击类型。其中,445/TCP 端口的流量中包含明确的 PSEXESVC.EXE 蠕虫特征,攻击意图最为明显,与后续蜜罐主机被成功攻陷并加入僵尸网络的结果直接相关。
问题 7:哪些攻击成功了,是如何成功的?
分析目标
判断攻击者对蜜罐主机 172.16.134.191 的漏洞利用是否成功,定位成功的攻击路径,并分析失败攻击的原因。
核心判断依据
Windows 2000 蜜罐主机被攻陷并植入僵尸网络后门的 唯一不可逆标志 为:主机主动外联 IRC 僵尸网络控制服务器(本次实验中为 209.196.44.172,端口 6667)。仅当漏洞利用最终实现了恶意代码上传与执行,并触发主机主动外联行为时,攻击才算成功;仅停留在端口探测、信息枚举阶段的攻击均为失败。
一、成功的攻击:445 端口 SMB 服务漏洞利用
本次实验中,仅针对 TCP 445 端口(SMB/CIFS 文件共享服务)的攻击最终成功攻陷了蜜罐主机。
攻击行为特征(流量证据)
通过 Wireshark 过滤规则 tcp.port == 445 分析流量,在数据包中捕获到蠕虫病毒特征码 PSEXESVC.EXE,说明攻击者利用 SMB 服务漏洞或 PsExec 远程执行机制,成功向蜜罐主机上传并执行了恶意蠕虫程序。
攻击成功的验证(IRC 外联证据)
在包含 PSEXESVC.EXE 的数据包之后,蜜罐主机 172.16.134.191 主动向 IRC 僵尸网络服务器 209.196.44.172(端口 6667)发起连接请求,并发送 NICK 注册指令加入僵尸网络频道,这是后门程序运行后主动建立控制信道的典型行为。
成功原因分析
Windows 2000 的 SMB 服务权限极高,攻击者可通过漏洞直接获取管理员权限,实现恶意程序的上传与远程执行;PSEXESVC.EXE 蠕虫运行后,自动触发 IRC 外联行为,使蜜罐主机成为僵尸网络中的受控节点,攻击链条完整闭环。
二、失败的攻击:其他端口漏洞利用尝试
对 TCP 135、139、80、25、4899 端口及 UDP 137 端口的流量分析显示,攻击者仅完成了前期探测或信息收集行为,未突破权限获取与代码执行的关键步骤,攻击均未成功:
| 端口/协议 | 服务 | 攻击行为与失败原因 |
|---|---|---|
| 135/TCP | RPC 服务 | 仅捕获到 TCP 三次握手数据包,无后续漏洞利用载荷,未触发 RPC DCOM 缓冲区溢出漏洞利用 |
| 139/TCP | NetBIOS 会话服务 | 仅建立了 SMB 会话连接,无共享资源枚举或恶意程序上传行为,未突破会话层权限限制 |
| 80/TCP | IIS 5.0 服务 | 仅发送 HEAD / HTTP/1.0 请求探测服务状态,未发起红色代码蠕虫或 ISAPI 溢出漏洞利用攻击 |
| 25/TCP | SMTP 服务 | 仅完成 TCP 三次握手,无邮件中继漏洞探测或用户枚举行为,攻击未推进 |
| 4899/TCP | Radmin 远程管理 | 仅尝试建立连接,未进行弱口令爆破或认证绕过攻击,服务未被控制 |
| 137/UDP | NetBIOS 名称服务 | 仅通过 Name Query 请求枚举主机信息,未进行 NBNS 欺骗或后续渗透攻击,仅收集情报未实现控制 |
三、最终结论
本次实验中,攻击者仅通过 445 端口 SMB 服务漏洞 成功攻陷了蜜罐主机,实现了恶意程序上传、后门植入与僵尸网络接入;其他所有端口的漏洞利用尝试均停留在探测阶段,未成功获取主机控制权。攻击成功的核心标志为蜜罐主机主动外联 IRC 僵尸网络服务器,与 PSEXESVC.EXE 蠕虫的运行直接相关。
3. 学习中遇到的问题及解决
-
问题 1:脱壳后 PEiD 识别为 VB 程序,但 IDA 分析的字符串中仍有乱码,这是为什么?
- 解决方案:这是正常现象。UPX 等压缩壳负责压缩代码段和数据段,脱壳仅仅是解压缩。而对于 VB 程序,其内部的原生编译代码和 P-Code(伪代码)在静态反汇编时就会呈现大量无意义数据和少量夹杂的有效字符。解决方法是重点分析那些有意义的完整字符串(如作者名、URL、注册表路径等),而不是纠结于乱码区域。
-
问题 2:分析 crackme2.exe 时,输入找到的口令却总是失败。
- 解决方案:这往往提示程序存在除口令之外的第二重校验。常见的有文件名校验、参数个数校验、特定环境变量检查等。通过仔细分析程序入口附近的代码,比较自身文件名与一个固定字符串,最终发现了
crackmeplease.exe这个文件名要求。将文件改名后,问题迎刃而解。
- 解决方案:这往往提示程序存在除口令之外的第二重校验。常见的有文件名校验、参数个数校验、特定环境变量检查等。通过仔细分析程序入口附近的代码,比较自身文件名与一个固定字符串,最终发现了
-
问题 3:在 Kali 下使用 tcpflow 提取流量时,生成的报告文件是空的。
- 解决方案:检查
tcpflow的过滤表达式语法。正确语法是tcpflow -r <文件> "host <IP> and port <端口>"。问题通常出在引号缺失,导致后面的过滤条件没有被作为一个整体参数传递给tcpflow,或者过滤的主机 IP 和端口在数据包中的方向(src/dst)不匹配。使用 Wireshark 先确认流量方向和准确 IP、端口再精准过滤即可。
- 解决方案:检查
4. 实践总结
本次实验理论与实践紧密结合,完整覆盖了从恶意代码个体分析到网络攻击事件溯源的全链条。
在恶意代码分析部分,我亲手实践了"文件识别→脱壳→字符串提取"这一基础但至关重要的流程,深刻理解了加壳技术如何对抗静态分析,并成功从二进制世界中挖掘出作者信息等关键情报。通过对 Crackme 程序的逆向,我体会到了程序逻辑中的"迂回"设计,并学习了如何通过动静结合的分析方法去破解这些难题。对 RaDa 样本的深度剖析,让我学会了如何系统性地分析一个未知样本,从摘要、目的、特性到反分析、分类、同类对比,形成了一套完整的分析思维框架。
在网络攻击取证部分,通过对真实蜜罐网络流量的分析,我将理论上的 IRC 协议与僵尸网络、SMB 漏洞等知识与活生生的数据包对应起来。我亲身体验了如何从海量流量中,通过不断收缩过滤条件,像侦探一样,一步步锁定失陷主机、溯源攻击 IP、识别漏洞利用,并最终定位到唯一成功的攻击路径。这个过程极大地锻炼了我的数据分析和网络取证能力。
总而言之,本次实践不仅是一次技术锻炼,更是一次安全思维的塑造,让我认识到无论是分析一个微小的文件,还是一个庞大的网络,都需要耐心、细致和体系化的方法。
5. 致谢
感谢《网络攻防实践》课程王老师的悉心指导与耐心解答,为本次实验提供了清晰的思路框架与专业的技术支持。感谢老师提供的样本资源,使我们能够在安全隔离的条件下开展恶意代码分析与网络流量取证实践。同时感谢开源社区中 UPX、Wireshark、Snort 等优秀工具的开发者与维护者,正是这些成熟可靠的安全工具,为网络攻防研究提供了坚实的技术基础。
6. 参考资料
[1] UPX - the Ultimate Packer for eXecutables. UPX 官方 GitHub 仓库. https://github.com/upx/upx
[2] PEiD - Portable Executable Identifier. PEiD 工具下载与说明. https://peid.apponic.com/
[3] Hex-Rays SA. IDA Pro - 交互式反汇编工具. https://hex-rays.com/ida-pro/
[4] Wireshark Foundation. Wireshark - 网络协议分析器. https://www.wireshark.org/
[5] 诸葛建伟, 陈力波等. 《网络攻防技术与实践》. 电子工业出版社, 2017.
[6] 刘鹏, 王春东. 《恶意代码分析实战》. 人民邮电出版社, 2019.



































浙公网安备 33010602011771号