20251908-2025-2026-2 《网络攻防实践》第八周作业
一、实验内容
1.主要任务
本次实验包含四项任务,涵盖恶意代码基础分析、逆向工程、恶意代码取证以及网络流量分析,综合锻炼静态分析、动态分析、网络协议分析与数字取证能力。
动手实践任务一:rada 恶意代码样本基础分析
目标是对提供的 RaDa.exe 样本进行文件类型识别、脱壳处理及字符串提取,最终定位编写作者。使用 file 命令和 PEiD 工具确定样本为 Win32 PE 可执行文件(GUI),UPX 0.89.6 加壳;通过超级巡警脱壳机脱壳,得到未压缩版本;再借助 strings 和 IDA Pro 的字符串分析,发现作者信息 “Raul Siles & David Perez”。
动手实践任务二:Crackme 程序逆向分析
要求在 WinXP Attacker 虚拟机中使用 IDA Pro 对 crackme1.exe 和 crackme2.exe 进行静态/动态分析,寻找正确输入使其输出成功信息。通过对函数调用图和字符串的逆向,发现 crackme1.exe 需传入参数 “I know the secret”,而 crackme2.exe 不仅需要相同参数,还要求程序文件名为 “crackmeplease.exe”,最终均成功输出验证信息。
分析实践任务一:rada 恶意代码深度分析报告
基于脱壳后的样本,撰写详细分析报告,涵盖样本摘要、目的、特性、防分析技术、分类、同类工具及作者调查可能性。分析表明,该样本为基于 Visual Basic 的远程控制木马(RAT),具备 HTTP 通信、持久化、屏幕截图和 DDoS 攻击能力,主要采用 UPX 壳进行保护,作者信息可直接从字符串中获取,但需在脱壳前提及安全隔离环境下进行。
分析实践任务二:僵尸网络流量取证
对蜜罐主机捕获的 Snort 网络日志(botnet_pcap_file.dat)进行分析,回答 IRC 协议及僵尸网络基础知识、攻击溯源等问题。使用 tcpdump、tcpflow 等工具,通过过滤 IRC 协议流量(端口 6667)提取频道用户列表,并统计分析访问僵尸网络的唯一主机数量;识别攻击蜜罐的 IP 及漏洞利用方式(如空口令、RPC 溢出、IIS 漏洞等),最终确认攻击成功证据(蜜罐主动发起 IRC 连接),还原出蜜罐被攻陷并加入僵尸网络的过程。
2.实验环境
- 主机系统:Windows 11
- 虚拟化平台:VMware Workstation 17 Pro
- 虚拟机:
| 主机 | IP地址 | Mac地址 |
|---|---|---|
| WinXPattacker | ||
| Kali Linux 2025.4 | 192.168.188.7 | 00:0c:29:d2:d4:c0 |
| Metasploit_ubuntu | 192.168.188.4 | |
| VMNet8网卡 | 192.168.188.1 | 00:50:56:fa:aa:1e |
- 网络模式:NAT模式(VMnet8,子网 192.168.188.0/24)确保虚拟机间及与宿主机互通。
3.知识点梳理
3.1恶意代码静态分析技术
- 文件类型识别:使用
file命令识别 PE 文件格式、运行平台及 CPU 架构;通过 PEiD 工具检测可执行文件的加壳类型与编译器信息。 - 加壳与脱壳技术:掌握 UPX 通用压缩壳的原理与自动脱壳方法,理解加壳对静态分析的干扰作用及脱壳后的代码还原流程。
- 字符串提取与分析:使用
strings命令提取可执行文件中的可打印字符串,结合 IDA Pro 的 Unicode 字符串支持功能,定位恶意代码的 C2 地址、注册表路径、功能提示及作者信息。 - IDA Pro 逆向基础:掌握 IDA Pro 的基本操作,包括函数列表查看、字符串窗口使用、控制流图分析及汇编代码阅读,能够定位关键函数并梳理程序执行逻辑。
3.2逆向工程基础
- 命令行参数解析:理解 C 语言程序
argc和argv的工作原理,能够通过逆向分析识别程序对命令行参数的数量校验与内容比对逻辑。 - 字符串加密与解密:分析简单的异或加密算法,能够逆向还原加密后的硬编码字符串,理解程序中敏感信息的隐藏方式。
- 程序分支控制:通过分析条件跳转指令(如
cmp、jne、je),梳理程序的执行分支,找出触发成功输出的条件组合。
3.2网络流量分析与攻击溯源
- 网络抓包工具使用:掌握 Wireshark 的流量过滤语法、tcpflow 的 TCP 流提取功能及 tshark 的命令行批量分析方法,能够从 pcap 文件中提取特定协议和主机的流量。
- IRC 协议原理:理解 IRC 协议的通信机制,掌握客户端加入网络的消息序列(NICK、USER、JOIN)及常用端口,能够识别 IRC 僵尸网络的 C2 通信特征。
- 僵尸网络工作机制:了解僵尸网络的组成结构(控制端、C2 服务器、僵尸主机)及典型恶意活动(DDoS 攻击、垃圾邮件、信息窃取)。
- 常见 Windows 漏洞攻击:掌握 SMB 空会话漏洞的原理与利用方式,理解 Windows 2000 系统默认配置的安全风险,能够识别端口扫描、会话建立、文件操作等攻击步骤的流量特征。
二、实验过程
(1)动手实践任务一:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
首先拖动解压后的文件到WinXPattacker

win+r 打开命令行,dir或者ls查看当前目录下的文件,然后cd进入桌面,接着ls查看桌面是否存在RaDa.exe

使用 file RaDa.exe 命令查看文件类型,结果显示其为 32位PE可执行文件,Windows平台(GUI),Intel 80386架构。

使用 PEiD 工具打开 RaDa.exe,检测加壳情况,结果显示该文件使用了 UPX 0.89.6 压缩壳。

打开文件


打开超级巡警脱壳机,加载 RaDa.exe,点击脱壳,脱壳成功后会生成 RaDa_unpacked.exe 文件。


脱壳后桌面多出了一个RaDa_unpacked.exe的文件

将脱壳后的文件再次拖入PEiD,显示为 Microsoft Visual Basic 5.0/6.0,不再显示UPX壳特征。


此时使用 strings RaDa_unpacked.exe 命令查看脱壳后的可打印字符串,可以看到大量函数调用名和有用字符串。

使用 IDA Pro Free 打开脱壳后的 RaDa_unpacked.exe,可找到作者信息:Raul Siles & David Perez,以及时间2004。




(2)动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。

可以看到都是32位的PE文件


crackme1.exe
运行crackme1.exe,依次使用0~4个输入参数,发现一个参数时与其他情况下输出不一样,猜测程序需要 1个参数。
用IDA Pro Free打开 crackme1.exe,string窗口显示如下

一共有四个字符串,分别是
I think you are missing someting
I know the secret
Pardon?What did you say?
You know how to speak to programs,Mr.Reverse—Engineer
双击I know the secret,跳转到这里

再次双击,跳转到这里,右键编辑,发现是sub_401280中的输出



简单地讲,这部分主要完成了以下任务:
- 参数数量校验:首先
cmp [ebp+arg_0], 2判断argc是否为 2(仅包含 1 个额外参数)。不满足则输出"I think you are missing something."。 - 获取参数指针:满足数量后,通过
add eax, 4跳过程序名(argv[0]),取出argv[1]的字符串指针。 - 字符串比对:调用
strcmp,将用户输入的argv[1]与硬编码字符串"I know the secret"进行严格比对。 - 成功/失败流:
- True:匹配成功,进入右下角分支,输出
"You know how to speak to programs, Mr. ..."(完整内容通常是 "Mr. Robot")。 - False:匹配失败,进入左下角分支,输出
"Pardon? What did you say?\n"。
- True:匹配成功,进入右下角分支,输出
- 返回值:代码最后
mov eax, [ebp+var_4]将返回值(根据路径分别为 1, 2, 0)放入eax并ret。
这段代码的作用是验证用户是否输入了正确的命令行参数 "I know the secret",并根据验证结果输出不同的提示信息。
这时回到命令行输入crackeme1.exe I know the secret

发现输出”You know how to speak to programs, Mr.Reserve-Engineer”,表示成功运行程序。
crackeme2.exe
对于crackeme2.exe,前面的操作类似,不再截取,直接看图



分析流程图发现,crackme2.exe 有三个判断条件:
- 参数个数是否为2
- 当前程序文件名是否为 crackmeplease.exe
- 第二个参数是否为 “I know the secret”
全部满足时输出 “We have a little secret: Chocolate”;第二个条件不满足时输出 “I have an identity problem.”。
可以看到代码逻辑中的程序名称改变了,因此需要对程序名称进行修改,重命名或者直接copy一份出来也可以,然后输入以下命令,验证成功

针对输出的“We have a ...”进行分析,这时回到上面的流程图,可以看到文件名验证“Crackmeplease.exe”通过后(即argv[0]),经过的剩余流程分析如下
loc_401351:
mov [ebp+var_4], 0 ; 初始化循环计数器为0
jmp loc_401358 ; 跳转到循环条件判断
loc_401358:
cmp [ebp+var_4], 21h ; 比较计数器是否≤33(0x21=33)
ja short loc_401381 ; 计数器>33时跳出循环
loc_40135E:
mov eax, [ebp+var_4]
add eax, offset unk_403080 ; 取密文数组第var_4个元素的地址
mov al, [eax] ; 读取一个密文字节
xor al, 42h ; 核心操作:与密钥0x42(十进制66)异或解密
movsx eax, al
push eax
call putchar ; 输出解密后的明文字符
lea eax, [ebp+var_4]
inc dword ptr [eax] ; 计数器加1
jmp short loc_401358 ; 回到循环条件
即,输出的“We have a ...”来自于对密文数组的解密,定位到

至此,crackme2.exe的分析也结束了
(3)分析实践任务一:分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
分析流程
使用md5sum RaDa.exe命令计算哈希值

IDA pro free中打开脱壳后的版本后,在strings里按照如下步骤,添加类型Unicode的支持


翻找后发现以下信息,包含作者、日期、版本号等等

同样的,继续翻找以下信息

猜测是通过http请求访问10.10.10.10\RaDa\RaDa_commands.html,然后又进行下载上传操作到C:\\RaDa\\tmp和C:\\RaDa\\bin下
这里应该是将文件保存到了本机,查看后发现确实如此,但是无法确定是本地进行的操作还是访问网络达成的

这时断掉物理机网络(拔网线大法),删掉RaDa文件夹(参考如下步骤)
右键打开任务管理器,结束RaDa.exe运行(自己翻一下就好了)

可以看到依旧生成,故这一步与联网无关

研究与联网相关的操作,先打开wireshark

开始抓包

打开RaDa.exe,过滤抓包后的结果如下

可以看到正在对另一台机器(IP 10.10.10.10)发起大量的 TCP 连接请求,推测是进行了DOS攻击
继续查看,发现还查看了数据库和mac地址等等,还修改了注册表以进行开机自启动


RaDa恶意代码样本分析总结
1. 二进制文件摘要与样本识别信息
该恶意代码样本的核心识别信息如下:
- 哈希标识:MD5值为
caaa6985a43225a0b3add54f44a0d4c7,是唯一识别该样本的核心指纹 - 文件基本属性:32位Windows GUI PE可执行文件,Intel 80386架构,原始文件名为
RaDa.exe,大小21KB - 编译与加壳信息:原始文件使用UPX 0.89.6压缩壳加壳,脱壳后显示为Microsoft Visual Basic 5.0/6.0编译生成
- 版本与时间信息:版本号为v0.22(代码段)和1.00(资源段),开发时间为2004年9月
2. 二进制文件的核心目的
该样本是一款集成多模块的远程控制木马(RAT),核心目的是实现对受害主机的持久化控制、信息窃取与分布式攻击,具体功能目标包括:
- 持久化驻留:通过修改Windows系统注册表实现开机自启动,确保恶意代码在主机重启后仍能运行
- 本地环境准备:自动在受害主机创建
C:\RaDa\bin和C:\RaDa\tmp目录,用于存储恶意程序本体和传输的文件 - 系统信息窃取:通过WMI接口执行查询语句
SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled,窃取受害主机的网卡MAC地址、IP配置等网络信息 - 远程命令与文件控制:通过HTTP协议访问控制端地址
http://10.10.10.10/RaDa,利用download.cgi和upload.cgi接口实现远程文件上传下载,并通过RaDa_commands.html接收控制端指令 - 分布式拒绝服务攻击:集成Smurf DDoS攻击模块,可向指定目标发起大规模TCP连接请求,实现拒绝服务攻击
3. 二进制文件的核心特性
(1)持久化特性
通过修改注册表项HKLM\Software\Microsoft\Windows\CurrentVersion\Run\RaDa,将自身路径C:\RaDa\bin\RaDa.exe写入自启动列表,实现系统级持久化。
(2)文件系统特性
无需网络连接即可自动在C盘根目录创建RaDa目录及其子目录bin和tmp,用于本地文件存储与执行。
(3)网络行为特性
- 主动向控制端IP
10.10.10.10发起TCP连接请求,建立C2通信通道 - 支持HTTP协议的文件上传与下载,实现恶意载荷的分发与受害主机文件窃取
- 具备DDoS攻击能力,可向目标发送大量SYN包进行拒绝服务攻击
(4)系统交互特性
利用Windows WMI接口获取系统网络配置信息,为攻击者提供受害主机的网络环境数据。
4. 反分析与逆向工程技术
该样本仅采用了UPX压缩壳作为基础的反分析技术:
- 技术原理:UPX是一款通用的可执行文件压缩工具,通过压缩原始代码段和数据段,减小文件体积的同时,将原始二进制代码隐藏在压缩数据中
- 反分析效果:直接对加壳后的文件进行静态分析时,只能看到UPX壳的解压缩代码,无法获取原始恶意代码的字符串、函数调用和逻辑结构;同时会干扰部分静态分析工具的识别与解析
- 局限性:UPX属于公开的通用压缩壳,存在成熟的自动脱壳工具(如超级巡警脱壳机、UPX官方脱壳命令),脱壳难度较低,无法有效阻止专业逆向分析
5. 恶意代码分类与理由
分类:远程访问特洛伊木马(Remote Access Trojan, RAT),同时具备分布式拒绝服务攻击能力。
理由:
- 符合RAT核心特征:不具备自我复制感染其他文件的能力(区别于病毒),也没有主动扫描网络并传播的特性(区别于蠕虫);其核心是通过伪装或入侵手段植入受害主机,建立隐蔽的远程控制通道,实现对主机的完全控制
- 具备RAT典型功能:实现了持久化驻留、系统信息窃取、远程文件操作、命令执行等RAT标准功能
- 附加攻击模块:在远程控制基础上集成了Smurf DDoS攻击模块,可作为僵尸网络节点参与分布式攻击,是功能扩展型RAT
6. 相似功能的历史工具
- 经典远程控制木马:
- Back Orifice(BO):1998年发布的早期知名RAT,支持远程文件操作、系统监控、键盘记录等功能
- NetBus:与BO同期的远程控制工具,具备类似的远程管理能力,曾被广泛用于恶意攻击
- SubSeven:功能更强大的RAT,集成了摄像头监控、音频录制、注册表编辑等高级功能
- DDoS攻击工具:
- Trinoo:早期分布式DDoS工具,通过主控端控制大量代理节点发起UDP洪水攻击
- Tribe Flood Network(TFN):支持多种攻击方式(ICMP洪水、UDP洪水、SYN洪水)的分布式DDoS工具
- Stacheldraht:结合了Trinoo和TFN的特性,增加了加密通信和身份验证功能
- 现代同类工具:Gh0st RAT、Poison Ivy、AsyncRAT等,均具备远程控制与DDoS攻击的组合能力。
7. 开发作者调查结论
可以调查到该样本的开发作者,具体信息与限定条件如下:
- 作者信息:Raul Siles & David Perez,开发时间为2004年9月
- 调查前提与限定条件:
- 必须先对原始加壳文件进行成功脱壳:原始文件被UPX压缩壳保护,直接分析无法获取作者信息,需使用脱壳工具得到原始可执行文件
- 使用支持Unicode字符串提取的逆向分析工具:作者信息以Unicode字符串形式存储在脱壳后的代码段和资源段中,需在IDA Pro等工具中开启Unicode字符串显示功能才能识别
- 该样本为公开的教学用恶意代码样本:作者信息是故意保留在代码中的,用于恶意代码分析教学目的,实际野外恶意代码通常会清除此类标识信息
(4)分析实践任务二:Windows 2000系统被攻破并加入僵尸网络
任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答下列问题:
1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC(Internet Relay Chat) 是一种基于文本的实时聊天协议,采用C/S(客户端/服务器)架构,用户通过客户端连接IRC服务器、选择并加入频道,进行实时群组或一对一对话。
- 加入IRC网络时发送的消息:IRC客户端申请加入一个IRC网络时,通常会发送以下消息序列:
- NICK:设置客户端昵称
- USER:提交用户名、主机名、服务器名和真实姓名等用户身份信息
- JOIN:加入特定频道(如
#channel_name)
IRC常用TCP端口:
- 6667(默认端口,最常用)
- 6660-6669(其他可用端口)
- 部分IRC服务器也使用 7000 或 6697(SSL加密连接)端口
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络(Botnet) 是指由大量被恶意软件控制的主机(称为"僵尸主机"或"Bot")组成的网络,攻击者通过命令与控制(C&C)服务器远程操控这些主机。
僵尸网络通常用于以下恶意活动:
- DDoS攻击:利用大量僵尸主机对目标发起分布式拒绝服务攻击,导致目标服务瘫痪
- 垃圾邮件发送:利用僵尸主机大量发送垃圾邮件
- 恶意代码传播:通过僵尸主机扫描并感染更多主机,扩大僵尸网络规模
- 信息窃取:窃取主机上的敏感数据(如密码、银行账号、个人隐私等)
- 钓鱼攻击:托管钓鱼网站或发送钓鱼邮件
- 加密货币挖矿:利用被控主机的计算资源进行挖矿
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用wireshark打开botnet_pcap_file.dat文件
过滤ip.src == 172.16.134.191 and tcp.dstport == 6667 and tcp.flags.syn == 1,可以看到与如下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台主机访问了...
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

5、那些IP地址被用于攻击蜜罐主机?
使用以下命令
tshark -r botnet_pcap_file.dat -Y "ip.dst == 172.16.134.191" -T fields -e ip.src | sort -u
可以看到以下ip被用于攻击蜜罐主机
┌──(kali㉿kali)-[~/Downloads]
└─$ tshark -r botnet_pcap_file.dat -Y "ip.dst == 172.16.134.191" -T fields -e ip.src | sort -u
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
172.168.0.154
192.130.71.66
192.215.160.106
194.192.187.194
194.199.201.9
194.68.68.12
194.68.68.39
195.36.247.77
195.67.251.197
198.49.161.200
200.135.228.10
200.50.124.2
200.60.202.74
200.66.98.107
200.74.26.73
200.78.103.67
202.63.162.34
203.106.55.12
203.115.96.146
203.170.177.8
204.50.186.37
205.180.159.35
205.188.137.80
206.149.148.192
206.151.167.254
207.172.16.150
207.172.16.156
207.46.196.108
207.46.196.120
207.6.77.235
207.68.171.238
207.68.171.245
207.68.176.250
207.68.183.190
207.68.184.62
208.186.61.2
209.196.44.172
209.45.125.110
209.45.125.69
210.111.56.66
210.12.211.121
210.203.189.77
210.214.49.227
210.22.204.101
210.58.0.25
211.149.57.197
212.110.30.110
212.122.20.74
212.162.165.18
212.243.23.179
213.107.105.72
213.116.166.126
213.122.77.74
213.170.56.83
213.217.55.243
213.23.49.158
213.44.104.92
213.66.244.241
213.7.60.57
213.84.75.42
216.154.242.126
216.170.214.226
216.192.145.21
216.228.8.158
216.229.73.11
216.239.33.101
216.239.51.100
216.239.57.100
217.1.35.169
217.140.0.47
217.151.192.226
217.151.192.231
217.199.175.10
217.222.201.82
217.227.245.101
217.227.98.82
217.35.65.9
218.163.9.89
218.237.70.119
218.244.66.32
218.25.147.83
218.4.48.74
218.4.65.115
218.4.87.137
218.4.99.237
218.87.178.167
218.92.13.142
219.118.31.42
219.145.211.132
219.145.211.3
219.65.37.37
219.94.46.57
24.107.117.237
24.161.196.103
24.167.221.106
24.197.194.106
24.74.199.104
4.33.244.44
4.64.221.42
61.111.101.78
61.11.11.54
61.132.88.50
61.132.88.90
61.134.45.19
61.140.149.137
61.14.66.92
61.150.120.72
61.150.72.7
61.155.126.150
61.177.154.228
61.177.56.98
61.177.62.66
61.185.212.166
61.185.215.42
61.185.242.190
61.185.29.9
61.203.104.148
61.55.71.169
61.8.1.64
62.127.38.198
62.150.170.134
62.150.170.232
62.194.4.114
62.201.96.159
62.251.129.118
63.241.174.144
64.0.96.9
64.17.250.240
64.254.203.68
65.57.83.13
66.139.10.15
66.190.67.122
66.233.4.225
66.73.160.240
66.81.131.17
66.8.163.125
66.92.135.108
67.201.75.38
67.81.161.166
68.115.33.110
68.152.53.138
68.154.11.82
68.169.174.108
68.37.54.69
68.45.123.130
68.84.210.227
80.181.116.202
81.114.77.37
81.202.125.5
81.50.177.167
81.57.217.208

统计一下,一共是165个ip
6、攻击者尝试攻击了那些安全漏洞?
使用以下两个命令进行统计
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

即端口135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、 4899(radmin)、 80(http)收到了攻击,UDP端口137被攻击。
7、哪些攻击成功了?是如何成功的?
ip.addr==172.16.134.191 and tcp.port==25
- 攻击尝试:无完整 TCP 连接,仅存在零星 SYN 包
- 失败原因:未建立 SMTP 会话,无邮件发送或命令执行尝试
- 结论:仅端口扫描,无实际攻击

ip.addr==172.16.134.191 and tcp.port==80

ip.addr==172.16.134.191 and tcp.port==135
- 攻击尝试:
195.36.247.77完成了 TCP 三次握手 - 失败原因:握手完成后无任何后续 RPC 请求或数据传输,仅为端口存活扫描,未发起实际漏洞利用
- 结论:无有效攻击行为,仅探测端口开放状态

ip.addr==172.16.134.191 and tcp.port==139
- 攻击尝试:多个 IP(219.118.31.42、218.163.9.89、61.155.126.150 等)完成了 TCP 三次握手和 NetBIOS 会话请求
- 失败原因:所有尝试在树连接阶段(Tree Connect AndX) 被主机主动发送 RST 包中断,无法建立到共享资源的连接
- 结论:仅完成端口扫描和会话初始化,未获得任何系统访问权限

ip.addr==172.16.134.191 and tcp.port==445
攻击者 IP 195.36.247.77 与蜜罐主机 172.16.134.191 完成了完整的 SMB 会话建立与文件操作流程。
首先利用 445 端口建立 SMB 连接:机器 172.16.134.191(通常是攻击者/中继机器)与 210.22.204.101(目标机器)建立了 SMB 会话。
连接 IPC 管道:通过 Tree Connect AndX Request 连接到目标的 \\172.16.134.191\IPC。IPC$ 是 Windows 用于远程进程间通信的共享。
服务控制管理器 (SVCCTL) 交互:
- 数据包中依次出现了
OpenSCManagerA(打开服务管理器)、OpenServiceA(尝试打开某服务)、CreateServiceA(尝试创建服务)。 - 这是典型的 PsExec 类工具执行原理:攻击者通过
svcctl管道,在目标机器上创建和启动一个临时服务(通常用来执行恶意 payload 或反向 Shell)。

ip.addr==172.16.134.191 and tcp.port==4899

ip.addr==172.16.134.191 and udp.port==137
- 攻击尝试:无有效 NetBIOS 名称查询响应
- 失败原因:仅发送了名称查询包,未获得任何系统信息
- 结论:仅信息探测,无实际攻击

三、学习中遇到的问题及解决
1.Crackme2.exe 动态调试时因文件名不符直接退出
问题描述:
在分析 crackme2.exe 时,无论如何传入参数,程序都输出“I have an identity problem.”后直接退出。
问题分析:
通过静态分析发现,crackme2.exe 在比较用户参数之前,会先通过 GetModuleFileName 获取自身可执行文件名,并与硬编码字符串 crackmeplease.exe 做比较。由于我的程序文件名为 crackme2.exe,该条件不满足,程序在入口处即跳向失败分支并退出,根本不会执行到参数比较代码。
解决方法:
复制了一份重命名一下就行了
四、学习感悟、思考等
本次恶意代码分析实践让我完整体验了从样本静态分析到僵尸网络流量溯源的全流程。我掌握了文件识别、脱壳、IDA逆向及Wireshark流量分析等核心技能,学会了从结果反推程序逻辑的逆向思维。通过分析Windows 2000因SMB空会话漏洞被入侵的过程,我深刻认识到基础配置安全的重要性。理论与实践的差距让我明白,网络安全攻防重在实战积累,未来我会继续加强实操练习,提升安全分析与防御能力。
参考资料:

浙公网安备 33010602011771号