20232413 2025-2026-1 《网络与系统攻防技术》实验四实验报告
一.实验内容
- 恶意代码文件类型标识、脱壳与字符串提取。
- 使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
- 分析一个自制恶意代码样本rada,并撰写报告。
- 取证分析实践。
二.实验过程
- 恶意代码(RaDa.exe)文件类型标识、脱壳与字符串提取
1.1Kali 中使用file命令识别文件基本信息
启动 Kali Linux 虚拟机,将RaDa.exe样本复制到/home/kali/桌面,打开终端,切换到样本目录:cd /home/kali/桌面,执行文件识别命令:file RaDa.exe

记录输出信息,确认文件为 “32 位 Windows GUI 可执行文件(Intel x86 架构,含 3 个段)”,运行平台为 Windows。
1.2Windows 中使用 PEiD 检测加壳情况

1.3使用超级巡警脱壳机对 RaDa.exe 脱壳

1.4使用 IDA Pro 提取 RaDa_unpacked.exe 的作者信息
在 IDA 主界面,点击顶部菜单栏 “View”→“Open Subviews”→“Strings”,打开字符串窗口。在字符串窗口中,找到包含 “Raul Siles&&David Perez” 的字符串。查看其内存地址,记录为00403F7A。找到包含 “2004 年 9 月” 的字符串,记录其地址为00403FD4。

2.使用 IDA Pro 逆向 crackme1.exe 与 crackme2.exe
2.1启动 Windows PowerShell,切换到crackme1.exe所在目录
执行不同参数组合,观察输出:

2.2IDA Pro 静态分析关键函数
将crackme1.exe加载到 IDA Pro(32 位模式),等待反汇编完成。
查看函数调用图:点击 “View”→“Graphs”→“Function calls”,在弹出的窗口中浏览函数关系。
定位关键函数sub_401280:
在函数调用图中,寻找调用strcmp(字符串比较)、printf(输出)的函数,确定sub_401280为参数验证核心函数。

双击sub_401280,进入函数反汇编界面。

查看函数流程图:双击击sub_401280函数名,打开流程图

2.3在流程图中,找到参数数量判断逻辑:
观察 “argc”(参数计数)相关判断,确认 “argc != 2” 时输出 “I think you are missing something.”(需 2 个参数)。
找到字符串比较逻辑:
定位strcmp调用处,查看其第二个参数(硬编码字符串),发现为 “I know the secret”。
确认逻辑:当第二个参数等于该字符串时,输出 “You know how to speak to programs, Mr. Reverse-Engineer”(成功信息)。
验证正确输入:
在 PowerShell 中执行正确参数:./crackme1.exe "I know the secret"

2.4逆向 crackme2.exe
在 PowerShell 中运行./crackme2.exe "I know the secret"
观察输出:仍提示错误,判断存在额外验证条件(如文件名、其他参数)。

2.5将crackme2.exe加载到 IDA Pro,定位核心函数sub_401280。
查看sub_401280的反汇编代码,对比 crackme1:
除参数数量和第二个参数验证外,新增strcmp调用,其参数指向字符串 “crackmeplease.exe”。
跟踪该strcmp的第一个参数,发现其为程序自身文件名(GetModuleFileNameA函数获取)。
确认逻辑:程序需先重命名为 “crackmeplease.exe”,再输入 2 个参数(第二个为 “I know the secret”)。



2.6验证正确操作
在 Windows 资源管理器中,将crackme2.exe重命名为 “crackmeplease.exe”。
在 PowerShell 中执行:crackmeplease.exe "I know the secret"
观察输出,确认显示成功信息

3.RaDa.exe 恶意代码深度分析
3.1获取运行平台、MD5 与时间戳
Kali 终端中执行file RaDa.exe,确认运行平台为 “32 位 Windows GUI”。
执行命令:md5sum RaDa.exe,记录 MD5 值为caaa6985a43225a0b3add54f44a0d4c7。
执行时间戳提取命令:exiftool RaDa.exe | grep "Time Stamp",记录编译时间为 “2004 年 10 月 30 日”。

3.2加载RaDa_unpacked.exe到 IDA Pro,打开函数调用图


mov edx, offset aHttp10_10_10_1 ; "http://10.10.10.10/RaDa":这是关键的恶意指令,将攻击者的命令控制服务器地址http://10.10.10.10/RaDa加载到edx寄存器。后续恶意软件的下载恶意 payload、上传受害主机数据等操作,都会通过这个地址与攻击者的服务器通信,实现远程控制。

call esi ; _vbaStrCopy:调用字符串复制函数_vbaStrCopy,该函数用于将字符串复制到指定内存位置,是后续字符串拼接操作的核心函数。
mov edx, offset aRada_commands_ ; "RaDa_commands.html":将字符串"RaDa_commands.html"的地址加载到edx寄存器,该文件可能是攻击者下发控制指令的网页,恶意软件会从这里获取要执行的命令。
mov ecx, offset dword_40C030:将目标内存地址dword_40C030加载到ecx寄存器,作为字符串复制的目标位置,配合_vbaStrCopy完成字符串存储。
后续对"cgi-bin"、"download.cgi"、"upload.cgi"的操作逻辑与上述一致:
cgi-bin是 Web 服务器中存放脚本的通用目录,恶意软件通过它定位后续脚本的路径。
download.cgi是用于从攻击者服务器下载新恶意模块或指令的脚本,让恶意软件能更新功能或接收新任务。
upload.cgi是用于将窃取的受害主机数据(如文件、系统信息)上传到攻击者服务器的脚本。

mov edx, offset aCRadaTmp ; "C:\\RaDa\\tmp":将恶意路径"C:\\RaDa\\tmp"的地址加载到edx寄存器。该路径表示恶意软件会在受害主机的 C 盘根目录下创建RaDa文件夹,并在其中创建tmp子文件夹。

mov edx, offset aCRadaBin ; "C:\\RaDa\\bin":将路径片段"C:\\RaDa\\bin"的地址加载到edx寄存器,作为恶意软件本地存储目录的一部分。

当尝试运行脱壳后的 RaDa 进程(文件RaDa_unpacked.exe)时,即使以管理员身份执行且文件并非只读,系统仍提示 “permission denied”。

4.回答问题
一、RaDa 恶意代码样本分析相关问题
问题 1:提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息
回答:该二进制文件名为 RaDa.exe,核心识别信息如下:1. 文件格式:32 位 Windows GUI 可执行文件,针对 Intel x86 处理器设计,内部包含 3 个段,运行平台为 Windows 系统;2. 哈希值:MD5 摘要值为 caaa6985a43225a0b3add54f44a0d4c7;3. 编译信息:2004 年 10 月 30 日编译,作者为 Raul Siles&&David Perez,创作时间标注为 2004 年 9 月;4. 加壳特征:原始文件采用 UPX 加壳,壳开发者为 Markus & Laszlo。以上信息可作为识别同一样本的关键依据,尤其是 MD5 哈希值和作者信息具有唯一性。
问题 2:找出并解释这个二进制文件的目的
回答:该二进制文件是一款用于实现远程持久控制的后门程序。其核心目的是植入目标主机后,建立攻击者与目标主机的秘密通信通道,实现对目标主机的长期操控与数据窃取。具体表现为:1. 持久化存在:通过修改注册表启动项,确保目标主机开机后程序自动运行;2. 远程通信:与预设的 C2 服务器(http://10.10.10.10/RaDa)建立连接,接收攻击者下发的指令;3. 数据传输:通过 download.cgi 脚本下载新的恶意模块或指令,通过 upload.cgi 脚本上传窃取的目标主机数据;4. 文件管理:在目标主机创建专属目录,存放自身文件与临时数据,为恶意行为提供支撑。
问题 3:识别并说明这个二进制文件所具有的不同特性
回答:该二进制文件的核心特性如下:1. 自启动特性:运行后修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 路径,将自身添加为开机自启动项,确保持久驻留目标主机;2. 文件操作特性:在目标主机 C 盘根目录创建 “RaDa” 文件夹,下属 “tmp”(存储临时文件 / 窃取数据)和 “bin”(保存自身程序)子文件夹,实现文件有序管理与自我保存;3. 双向通信特性:与固定 C2 服务器(http://10.10.10.10/RaDa)建立 HTTP 通信,支持接收指令(解析 RaDa_commands.html 文件)和传输数据(上传 / 下载文件);4. 隐蔽性特性:采用 UPX 加壳隐藏核心逻辑,无明显用户交互界面,后台静默运行,降低被发现的概率;5. 指令执行特性:可解析攻击者通过 C2 服务器下发的各类指令,在目标主机执行相应操作,实现远程操控。
问题 4:识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
回答:该文件采用的核心反逆向技术为 UPX 加壳技术。其原理是:对程序的原始代码、数据进行压缩处理,同时修改程序的原始入口点(OEP),使程序运行时先执行壳代码(负责将压缩的原始代码解压到内存),再跳转到原始入口点执行核心功能。这种技术的反分析作用体现在:1. 静态分析障碍:加壳后的文件反汇编结果以壳代码为主,分析者无法直接获取程序的核心逻辑、字符串(如 C2 服务器地址、作者信息)等关键内容;2. 动态调试干扰:壳代码可能包含反调试指令(如检测调试器进程、修改断点寄存器),阻碍动态调试工具(如 x64dbg)对原始代码的跟踪分析;3. 文件特征隐藏:压缩后的文件大小减小,原始特征(如代码片段、字符串)被隐藏,难以通过特征匹配直接识别。
问题 5:对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
回答:该恶意代码样本属于后门程序(远程控制木马),理由如下:1. 与病毒的区别:病毒需依附宿主文件(如文档、其他可执行文件)才能运行,且具备感染其他文件、自我复制的能力,而该样本可独立运行,无感染宿主文件和自我复制的功能;2. 与蠕虫的区别:蠕虫无需宿主文件,能通过网络(如系统漏洞、邮件、局域网共享)主动传播,实现大规模感染,而该样本不具备主动传播能力,需通过人工植入、诱骗点击等方式进入目标主机;3. 符合后门程序的核心特征:以远程控制为核心目的,通过自启动实现持久化,通过 C2 服务器建立秘密通信通道,为攻击者提供文件操作、指令执行、数据窃取等远程操控权限,且运行过程隐蔽,不主动破坏系统(仅为控制服务),完全契合后门程序的定义。
问题 6:给出过去已有的具有相似功能的其他工具
回答:与该样本功能相似的工具为灰鸽子。灰鸽子是经典的 Windows 平台远程控制后门工具,其核心功能与 RaDa 高度契合:1. 持久化机制:均支持通过修改注册表启动项、添加系统服务等方式实现开机自启动,确保持久驻留目标主机;2. 远程控制能力:均能为攻击者提供远程桌面查看、文件上传 / 下载、命令执行、进程管理等核心操控功能;3. 通信方式:均通过预设的服务器地址(C2 服务器)建立连接,支持攻击者向目标主机下发指令、接收目标主机的反馈数据;4. 隐蔽性设计:均具备后台静默运行能力,无明显用户交互界面,部分版本支持加壳、通信加密等抗检测技术,降低被发现的概率。
问题 7:可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
回答:可以调查出开发作者,该二进制文件的开发者为 Raul Siles && David Perez。所需环境与限定条件如下:1. 分析环境:需具备安装专业逆向分析工具的设备,如搭载 IDA Pro(7.0 及以上版本,支持 32 位 Windows 程序分析)的 Windows 主机,用于样本的静态反汇编与字符串提取;2. 样本条件:作者在程序中明文留下了身份信息(如姓名、标识),该样本在脱壳后可提取到 “Raul Siles&&David Perez” 的明确字符串,为溯源提供直接依据;3. 样本状态:样本需完成脱壳处理,原始文件因 UPX 加壳隐藏了核心字符串,需通过超级巡警脱壳机等工具脱壳,确保原始代码与字符串可被解析;4. 工具支持:依赖具备字符串提取、内存地址定位功能的逆向工具(如 IDA Pro),能精准找到作者信息所在的内存地址(该样本中为 00403F7A),从而提取有效信息;5. 无额外混淆:作者信息未被加密或深度混淆,以明文形式存储在程序数据段,可直接被工具识别提取。
问题 8:给出至少 5 种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法
回答:
基于特征码的检测方法:原理是提取恶意软件的唯一特征(如文件哈希、关键代码片段、特定字符串)构建特征库,检测时将目标文件与特征库比对,匹配则判定为恶意。针对该样本,可提取的特征包括:MD5 哈希值(caaa6985a43225a0b3add54f44a0d4c7)、关键字符串(“http://10.10.10.10/RaDa”“C:\RaDa\bin”“Raul Siles&&David Perez”)、核心代码片段(修改注册表启动项的 API 调用序列、与 C2 服务器通信的函数逻辑)。优势:技术成熟、检测速度快、误报率极低,对已知样本识别准确率接近 100%;劣势:无法检测未知变种(如修改哈希、替换字符串的样本),易被加壳、混淆技术绕过。应用场景:杀毒软件常规扫描、企业终端防护、文件上传下载校验(如邮件附件、云盘文件)。
基于行为的检测方法:原理是预设 “正常行为基线”(如程序允许的文件操作、网络连接范围),实时监控目标程序的动态行为,超出基线则触发警报。需监控的核心行为:注册表操作(修改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 项)、文件操作(创建 C:\RaDa 目录及子文件夹、自我复制到 C:\RaDa\bin\RaDa.exe)、网络行为(向 10.10.10.10 发起 HTTP 请求、与 download.cgi/upload.cgi 交互)、进程行为(后台静默运行且无合理用户交互)。优势:可检测未知变种,不受加壳、混淆影响,能捕捉实际恶意行为;劣势:对基线定义要求高,可能因合法程序特殊操作误报,占用一定系统资源。应用场景:终端检测与响应(EDR)工具、沙箱动态分析、服务器安全监控。
基于启发式的检测方法:原理是基于安全专家总结的 “恶意特征规则”,分析程序静态结构与功能模块,推理判定风险等级。核心规则:代码层面(同时包含网络通信 API 与注册表操作 API,且无合理业务用途)、功能层面(无用户交互界面却实现自启动与远程通信)、结构层面(32 位 Windows GUI 程序 + UPX 加壳,包含指向固定 IP 和脚本的字符串)。优势:可提前识别未知变种,弥补特征码检测盲区;劣势:依赖专家经验,规则过严易误报、过松易漏报。应用场景:杀毒软件深度扫描、未知威胁预警系统、可疑样本初步筛查。
基于机器学习的检测方法:原理分为训练与检测两个阶段。训练阶段:收集标注数据(该样本等恶意软件、正常 Windows GUI 软件),提取静态特征(文件大小、PE 头信息、API 调用序列、字符串熵值)和动态特征(进程创建数量、网络连接频率),通过决策树、神经网络等算法训练模型;检测阶段:将待检测文件特征输入模型,输出恶意概率。优势:能自动学习新恶意模式,适应样本变异,检测效率高,可处理海量数据;劣势:依赖高质量标注样本,可能被对抗样本绕过,检测结果黑箱性强。应用场景:云安全检测平台、大规模终端安全管理系统、邮件网关恶意附件检测。
基于沙箱的检测方法:原理是在隔离的虚拟环境(如虚拟机、容器)中运行可疑程序,记录其所有行为并生成报告,结合规则判定恶意性。操作流程:1. 搭建隔离 Windows 虚拟环境,禁用真实网络连接;2. 将脱壳后的 RaDa_unpacked.exe 放入沙箱运行;3. 监控并记录注册表修改、文件创建、网络请求、进程活动等行为;4. 若检测到自启动配置、C2 通信、目录创建等行为,判定为恶意。优势:可安全分析未知样本,避免真实系统受破坏,能捕获完整恶意行为链;劣势:检测耗时较长(需数分钟),资源占用高,可能被沙箱检测技术绕过。应用场景:可疑文件深度分析、零日恶意软件取证、安全研究机构样本检测。
5.取证分析实践
问题 1:IRC 是什么?当 IRC 客户端申请加入一个 IRC 网络时将发送哪个消息?IRC 一般使用哪些 TCP 端口?
回答:IRC(Internet Relay Chat)是一种基于文本的实时通信协议,允许用户通过服务器集群组成的网络进行群聊、私聊或频道互动,是早期网络通信的重要工具,也常被攻击者用于僵尸网络控制。客户端申请加入 IRC 网络时,核心发送的两条消息:1. NICK 消息:用于设置用户昵称,格式为 “NICK < 昵称>”(如 “NICK Bot123”);2. USER 消息:用于设置用户基本信息,格式为 “USER < 用户名 > < 主机名 > < 服务器名 > < 真实姓名 >”(如 “USER botuser 192.168.1.10 irc.server.com RealName”)。IRC 常用 TCP 端口:1. 默认未加密端口:6667(最常用);2. 加密(SSL/TLS)端口:6697;3. 备用端口范围:6660-6669(部分服务器支持)。
问题 2:僵尸网络是什么?僵尸网络通常用于什么?
回答:僵尸网络是由攻击者通过恶意软件(如后门、木马)控制的大量受感染设备(电脑、手机、物联网设备等,称为 “僵尸机”)组成的分布式远程操控网络。攻击者通过 C2 服务器(如 IRC 服务器、HTTP 服务器)向所有僵尸机下发统一指令,实现协同攻击或恶意行为。僵尸网络的主要用途:1. 发起网络攻击:如分布式拒绝服务(DDoS)攻击,利用大量僵尸机向目标服务器发送海量请求,导致服务器瘫痪;2. 实施恶意活动:发送垃圾邮件(批量传播广告、诈骗信息)、传播恶意软件(通过僵尸机向其他设备扩散病毒、木马)、窃取敏感信息(收集僵尸机上的账号密码、财务数据、个人信息);3. 非法牟利:占用僵尸机算力进行虚拟货币挖矿、出租僵尸网络资源给其他攻击者(用于攻击、发垃圾邮件等)、勒索软件分发(控制僵尸机加密用户文件并索要赎金)。
问题 3:蜜罐主机(IP 地址:172.16.134.191)与哪些 IRC 服务器进行了通信?
回答:蜜罐主机 172.16.134.191 共与 4 台 IRC 服务器进行通信,服务器 IP 地址分别为:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10。检测过程:1. 启动 Wireshark,打开 botnet_pcap_file.dat 流量包;2. 输入过滤条件 “ip.src == 172.16.134.191 and tcp.dstport == 6667”(筛选蜜罐作为源 IP、目标端口为 IRC 默认端口 6667 的流量);3. 查看筛选后数据包的 “Destination” 字段,提取所有唯一的目标 IP,即为通信的 IRC 服务器地址

问题 4:在这段观察期间,多少不同的主机访问了以 209.196.44.172 为服务器的僵尸网络?
回答:共有 3461 个不同的主机访问了该僵尸网络服务器。统计步骤:1. 在 Kali Linux 中切换到 botnet_pcap_file.dat 所在目录;2. 执行命令 “tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"”,提取与该服务器、6667 端口相关的所有 TCP 流量;


3. 执行后生成 TCP 连接流文件(如 “209.196.044.172.06667-172.016.134.191.01152”)和 report.xml 报告;4. 命令执行后输出结果为 3461,即不同访问主机数量(通过提取 IRC 频道用户列表,去重后统计)。

问题 5:哪些 IP 地址被用于攻击蜜罐主机?
回答:共有 165 个不同的 IP 地址被用于攻击蜜罐主机(IP:172.16.134.191)。统计步骤:1. 在 Kali Linux 中执行命令:“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 > attack_ips.txt”;

2. 该命令筛选所有目标主机为蜜罐的数据包,提取源 IP 地址、去重后保存到 attack_ips.txt 文件;3. 执行 “wc -l attack_ips.txt” 统计文件行数,输出结果为 165,即攻击 IP 的总数;4. 打开 attack_ips.txt 文件可查看所有具体攻击 IP 地址。
问题 6:攻击者尝试攻击了那些安全漏洞?

回答:攻击者主要通过目标端口对应的服务尝试攻击,涉及的端口及对应服务 / 漏洞方向如下:1. TCP 端口 135:对应 RPC(Windows 远程过程调用)服务,可能尝试利用 RPC 相关漏洞(如 MS08-067)实现远程代码执行;2. TCP 端口 139/445:对应 SMB(Windows 文件共享)服务,可能尝试利用 SMB 漏洞(如永恒之蓝 MS17-010)进行远程命令执行、文件读取或横向移动;3. TCP 端口 25:对应 SMTP(简单邮件传输协议)服务,可能尝试利用 SMTP 中继漏洞发送垃圾邮件,或通过弱口令登录服务器;4. TCP 端口 4899:对应 Remote Administrator(远程控制软件)服务,可能尝试利用弱口令登录或软件本身漏洞实现远程控制;5. TCP 端口 80:对应 HTTP(网页服务),可能尝试


问题7:那些攻击成功了?是如何成功的?
回答:成功的攻击对应的端口为 TCP 445 端口、TCP 4899 端口、TCP 80 端口
1.TCP 135 端口(RPC 服务):未成功利用
操作:在 Wireshark 中输入过滤条件ip.addr==172.16.134.191 and tcp.port==135,筛选该端口相关流量

分析结果:数据包仅包含 TCP 三次握手(SYN→SYN+ACK→ACK),无后续携带恶意载荷的数据包,且客户端很快发送 FIN 请求断开连接,未执行任何 RPC 相关的恶意操作(如漏洞利用、命令执行)。
结论:仅成功建立连接,未实现攻击目的,端口未被利用。
2.TCP 139 端口(SMB 服务,NetBIOS 会话):未成功利用
操作:输入过滤条件ip.addr==172.16.134.191 and tcp.port==139,分析流量细节。

分析结果:完成 TCP 三次握手后,攻击者尝试访问共享目录\\PC0191\c,但服务器返回 RST(复位)数据包拒绝访问;后续无任何恶意数据包传输,未进行认证协商、文件操作或漏洞利用行为。
结论:连接请求被拒绝,无后续恶意操作,端口未被利用。
- TCP 25 端口(SMTP 服务):未成功利用
操作:输入过滤条件ip.addr==172.16.134.191 and tcp.port==25,查看通信过程。

分析结果:仅完成 TCP 三次握手,无后续 SMTP 指令交互(如 HELO、MAIL FROM 等),服务器很快发送 FIN+ACK 请求主动断开连接,未出现弱口令爆破、中继攻击或恶意邮件发送等行为。
结论:仅建立短暂连接,无恶意操作执行,端口未被利用。
4.TCP 445 端口(SMB 服务):攻击成功
操作:输入过滤条件ip.addr==172.16.134.191 and tcp.port==445,深度分析 SMB 协议交互。

成功过程:
① 外部主机 195.36.247.77 向蜜罐发起 TCP 三次握手,建立连接后进行 NTLMSSP(NT LAN Manager Security Support Provider)认证协商,且认证通过;
② 攻击者发起 Tree Connect 请求,尝试访问蜜罐的共享资源;同时多个源 IP 向该端口发送大量 SMB 请求,包含重复 NTLMSSP 认证、多路径 Tree Connect 请求及 SAMR/DCE/RPC 操作(疑似横向移动探测或批量扫描);
③ 最终攻击者通过 SMB 协议执行文件删除操作,成功删除蜜罐主机上路径为C:\System32\PSEXESVC.EXE的文件。该文件是 Windows 系统中 PsExec 工具的服务端组件,用于远程执行命令,删除后会导致 PsExec 无法正常工作,推测攻击者此举是为清除操作痕迹或阻止后续安全工具介入。
结论:攻击者通过 SMB 协议完成认证、资源访问,并执行破坏性操作,端口被成功利用。
5.TCP 4899 端口(Remote Administrator 服务):攻击成功
操作:输入过滤条件ip.addr==172.16.134.191 and tcp.port==4899,分析流量中的数据传输行为。



成功过程:
① 外部主机与蜜罐完成 TCP 三次握手,建立连接后发送大量标记为rbakcupl > radmin-port [PSH,ACK]的数据包;其中 PSH(Push)标志表示数据包中包含 “紧急需要立即处理的数据”,说明攻击者已建立稳定的双向通信通道;
② 后续攻击者通过该通道发送 HTTP 请求,执行目录遍历攻击,请求内容为HEAD /cgi/../../../../../winnt/system32/cmd.exe?/c+dir。该请求通过路径穿越绕过权限限制,尝试访问系统核心目录下的 cmd.exe 并执行dir命令(列出目录内容),证明攻击者已获得执行系统命令的权限。
结论:攻击者建立稳定通信通道并执行目录遍历攻击,端口被成功利用。
6.TCP 80 端口(HTTP 服务):攻击成功
操作:输入过滤条件ip.addr==172.16.134.191 and tcp.port==80,分析 HTTP 请求中的恶意载荷。


成功过程:
① 完成 TCP 三次握手后,攻击者向 80 端口发送大量由字符 “c” 组成的数据包,该数据包属于缓冲区溢出攻击载荷 —— 通过发送超长字符串溢出 HTTP 服务的缓冲区,尝试覆盖返回地址、植入恶意代码;
② 攻击包发送后,服务器未返回 RST(复位)或 ICMP 错误信息,说明服务器已接收并处理该恶意请求,未因载荷异常中断连接;
③ 后续客户端与服务器仍有正常 HTTP 通信,推测攻击者通过缓冲区溢出漏洞成功植入后门程序或获得访问权限,未导致服务崩溃是为了隐蔽维持控制,避免被快速发现。
结论:攻击者通过缓冲区溢出攻击成功渗透 HTTP 服务,可能植入后门,端口被成功利用。
7.UDP 137 端口(NetBIOS 名称服务):未成功利用
操作:输入过滤条件ip.addr==172.16.134.191 and udp.port==137,分析 NetBIOS 协议交互内容。

分析结果:流量中存在大量 NetBIOS 名称查询与响应数据包,内容均为正常的主机名探测(如查询 “WORKGROUP” 工作组内的主机),未包含任何恶意载荷(如漏洞利用代码、攻击指令),仅属于信息收集阶段的扫描行为。
结论:仅进行 NetBIOS 信息探测,无后续攻击操作,端口未被成功利用。
三.问题及解决方案
1.Wireshark 筛选 IRC 服务器通信时,过滤条件无效,显示大量无关数据包
现象:输入ip.src == 172.16.134.191 and tcp.dstport == 6667后,仍显示非 IRC 协议流量。
解决方案:1. 检查过滤条件语法,确保无空格错误(如 “ip.src” 与 “==” 间无空格);2. 先通过 “Protocol” 列筛选 “TCP”,再应用端口过滤;3. 清除之前的过滤规则(点击 “Clear”),重新输入完整条件,确认蜜罐 IP 和 IRC 端口无误。
2.Kali 中执行tcpflow命令统计僵尸网络主机数时,提示 “command not found”
现象:运行tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"时,终端提示命令未找到。
解决方案:1. 安装 tcpflow 工具(sudo apt update && sudo apt install tcpflow -y);2. 安装完成后重新执行命令,确保流量包路径正确;3. 若生成的流文件无内容,检查流量包是否完整,重新复制 botnet_pcap_file.dat 到当前目录。
四.学习感悟
本次实验不仅掌握了恶意代码文件识别、脱壳、逆向分析及取证的核心技能,更在问题解决中锤炼了思维、强化了安全意识。我深刻认识到,网络安全领域没有 “一蹴而就” 的分析,只有 “步步为营” 的严谨 —— 每一个参数、每一条命令、每一次验证,都直接影响分析结果的准确性。未来,我将继续深耕逆向分析与取证技术,积累更多样本分析经验,同时保持对新技术、新威胁的关注,努力将实验中的知识转化为应对实际安全问题的能力。

浙公网安备 33010602011771号