20253903 2025-2026-2 《网络攻防实践》第8次作业

1.实践内容

本次实验主要围绕恶意代码分析、逆向工程和网络攻击流量分析展开实践。学习内容包括 PE 文件格式识别、恶意代码脱壳、字符串信息提取、IDA Pro 静态分析、Process Monitor 和 Process Explorer 动态行为观察、Wireshark 网络流量分析,以及僵尸网络通信特征识别等。

实践过程中,首先对 RaDa 恶意代码样本进行文件类型识别、脱壳和字符串分析,确定其为加 UPX 壳的 Windows 32 位 PE 文件,并定位到作者信息。随后使用 IDA Pro 分析 crackme1.exe 和 crackme2.exe,梳理程序判断逻辑,找到触发成功提示的输入条件。接着结合 Process Monitor、Process Explorer 和网络连接信息,对 RaDa 的运行行为进行分析,发现其具有自启动、远程取指令、执行命令、文件传输和截屏等后门功能。最后利用 Wireshark 分析 Windows 2000 蜜罐流量,追踪 IRC 僵尸网络通信和攻击过程,识别攻击源、利用漏洞及成功入侵行为。

2.实践过程

2.1 动手实践任务一:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者

  1. 使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
    首先可以在kali中使用file命令来快速查看文件信息:

image

可以看到是兼容Windows NT系列的PE格式的32位可执行图形界面程序
在WinXPattacker中使用PEiD软件详细查看(在开始->所有程序->PE里可以找到,后面所有的工具也都这么找):

image

  1. 使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
    直接把东西拖到脱壳工具里就可以

image

  1. 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
    直接拖到ida里,alt + t搜索字符串copyright就能看到作者信息

image

image

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

首先分别运行两个程序,都提示缺少一些东西

image

  1. crackme1.exe
    先把crack1.exe拖到ida里,在IDA View-A窗口里能看到整体的程序流程

image

选中最上面的框,f5直接看反编译代码

image

首先看第一个if判断的是参数个数,如果参数个数等于1则进入分支(argc == 2是因为程序名本身也占用一个参数),尝试随便传入参数

image

可以看到输出不同了,再看第二个if判断的是传入的参数是否为I know the secret,直接传参

image

可以看到正确输出

  1. crackme2.exe
    同样的操作,直接看伪代码

image

首先第一个if还是判断是否带一个参数,我们传参

image

输出不一样了,下一个if是判断文件名是不是crackmeplease.exe,我们改文件名再传参

image

输出不一样了,第三个if是判断参数是否为I know the secret,直接传参

image

成功输出结果

2.3 分析实践任务一:分析一个自制恶意代码样本rada

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

image

  1. 找出并解释这个二进制文件的目的;
    首先在winXPattacker中开启wireshark和process monitor

image

在process monitor上方工具栏中找到filter,选择process name contains RaDa来进行筛选

image

经过查看可以看到rada将子集复制到了RaDa\bin目录下,并新建了temp目录

image

再打开process explore找到rada,双击后查看strings栏

image

可以看到恶意程序使用http连接到目标为10.10.10.10的主机下的一个名为rada_commands的网页上,然后分别下载和上传某些文件,推测是一个后门工具

  1. 识别并说明这个二进制文件所具有的不同特性
    通过查看strings以及process monitor的相关日志,可以知道RaDa.exe被执行时,它会将自身安装到系统中,并通过修改注册表的方式使得每次系统启动,它都能够被启动,启动后循环执
    行以下操作:
    ⑴从指定的web服务器请求指定的web页面;
    ⑵解析获得的web页面,获取其中的指令
    ⑶执行解析出来的指令
    ⑷等待一段时间
    ⑸返回第⑴步
    启动后,RaDa一直在后台运行,不会弹出任何窗口。它支持以下指令:
    exe:在宿主主机中执行指定的命令
    put:将宿主主机中的指定文件上传到服务器
    get:将服务器中的指定文件下载到宿主主机中
    screenshot:截取宿主主机的屏幕并保存到tmp文件夹
    sleep:停止活动一段时间

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

image

通过peid工具可以看到加了一层UPX壳

  1. 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
    由前面的分析可以得出该工具是一个后门工具,理由是可以常驻在宿主机内,主动外联攻击者,执行攻击者的命令

  2. 给出过去已有的具有相似功能的其他工具;
    Bobax – 2004年发现的木马,也是使用HTTP协议从指定的服务器下载命令文件,然后解析并执行其中的指令。

  3. 可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
    可以,在非VMware虚拟机上使用--authors参数运行就可以看到这个二进制文件的作者

2.4 分析实践任务二:分析Windows 2000系统被攻破并加入僵尸网络流量包

任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。
下面开始逐问题分析,按照tcp流编号来作为分析依据:

2.4.1 IRC是什么?客户端加入IRC网络会发什么消息?IRC常用哪些TCP端口?

  • IRC是基于客户端/服务器的实时文本聊天协议,常被正常聊天系统使用,也常被早期僵尸网络拿来做C2通道

  • 蜜罐在流1539里先发了:

NICK rgdiuggac
USER rgdiuggac localhost localhost :rgdiuggac

image

这是注册/加入IRC网络的消息。随后同一流里又发了:JOIN #x... :sex0r这对应加入IRC频道的消息。

  • IRC常见TCP端口是6667加密IRC常见6697

2.4.2 僵尸网络是什么?通常用于什么?

  • 僵尸网络是由大量被植入恶意程序的主机组成、并由攻击者集中控制的网络。

  • 常见用途:

  • DDoS攻击

  • 扫描/继续传播蠕虫

  • 下载并执行更多恶意程序

  • 垃圾邮件

  • 数据窃取或远控

2.4.3 蜜罐主机172.16.134.191与哪些IRC服务器通信?

有实际IRC应用层通信的服务器:
63.241.174.144:6667

image

217.199.175.10:6667

image

209.196.44.172:6667

image

2.4.4观察期间,多少不同的主机访问了以 209.196.44.172 为服务器的僵尸网络?

按IRC频道里在观察期内出现过的不同主机hostmask统计共5563台
我们按照IRC协议的JOIN/QUIT/PART消息里的@host来统计不同主机,在wireshark中的筛选器语法为:

ip.addr == 209.196.44.172 && tcp.port == 6667 &&
irc.response.prefix contains "@" &&
(irc.response.command == "JOIN" || irc.response.command == "QUIT" || irc.response.command == "PART")

image

导出分组结果为纯文本写个python脚本分析也可以,直接交给大模型去重也可以,本质上就是找x@209.196.44.172的不同的x的个数

2.4.5 哪些IP地址被用于攻击蜜罐主机?

能明确看到发起漏洞利用以及入侵行为的来源有:
210.22.204.101
IIS NULL.IDA漏洞利用

image

24.197.194.106
大规模IIS目录遍历扫描

image

另外还有NULL.ida利用:

image

218.25.147.83
.ida 攻击:

image

195.36.247.77
SMB/LSASS控制:

image

66.139.10.15
SMB/LSASS控制:

image

80.181.116.202
SMB/NTLM/\PIPE\ntsvcs控制:

image

209.45.125.69
SMB/LSASS控制:

image

129.116.182.239
SMB/LSASS:

image

61.111.101.78
SMB/服务控制/投递文件:

image

66.8.163.125
SMB/NTLM/管理员共享尝试:

image

2.4.6 攻击者尝试攻击了哪些安全漏洞?

结合负载内容,可以识别出这些攻击面:
IIS Index Server/ISAPI溢出(Code Red/.ida/.idq)

image

IIS Unicode/目录遍历到cmd.exe的远程命令执行

image

ColdFusion Administrator探测/利用尝试

image

HTR/HTW/IDC/FrontPage/IIS样例目录等旧IIS漏洞面探测

image

SMB/NTLM/IPC$/管理员共享滥用,随后通过 \PIPE\ntsvcs 远程创建服务

image

2.4.7 哪些攻击成功了?是如何成功的?

能明确确认成功的有两次:

  1. 210.22.204.101 成功安装并使用了远控服务
    攻击者安装了远控服务(C:\WINNT\System32\r_server.exe /service)

image

随后成功连上蜜罐的RAdmin端口,随后建连并长时间交互:image

  1. 61.111.101.78成功投递并执行恶意程序,随后蜜罐变成IRC Bot
    攻击者先进行NTLM/SMB认证与服务控制:

image

之后投递文件:

attrib.exe -r inst.exe
attrib.exe -r Devlr32.exe

image

后续清除共享:

share /delete C$ /y:35092
share /delete D$ /y:35280
share /delete ADMIN$ /y:35672

image

紧接着蜜罐开始主动外连IRC:

image

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

由于之前做Web比较多,对于逆向工具的使用,例如ida等等使用还不是很熟练,通过网上查询资料等方式我逐渐掌握了工具的使用

4.实践总结

通过本次实践,我对恶意代码分析和网络攻击取证流程有了更加系统的认识。相比单纯阅读理论知识,实际操作让我更直观地理解了恶意程序从文件结构、静态特征、运行行为到网络通信的完整分析思路。

在 RaDa 样本分析中,我掌握了 PE 文件识别、脱壳和字符串分析的基本方法。通过工具分析可以发现,恶意代码往往会使用加壳技术隐藏真实内容,因此在进行静态分析前,需要先判断样本是否加壳,并在必要时进行脱壳处理。同时,字符串信息在恶意代码分析中非常重要,URL、文件路径、注册表项、命令参数和作者信息都可能成为判断样本功能的重要线索。

在 crackme 程序分析中,我进一步熟悉了 IDA Pro 的使用方法。通过查看程序流程图和反编译伪代码,可以较快理解程序的判断逻辑。这让我认识到,逆向分析并不只是阅读汇编代码,还需要结合程序输入、输出和控制流进行综合判断。

在动态行为分析部分,我学会了使用 Process Monitor、Process Explorer 和 Wireshark 从不同角度观察恶意程序行为。文件创建、注册表修改、进程字符串、网络连接等信息能够相互印证,从而更准确地判断恶意程序的目的。RaDa 样本表现出的自启动、后台运行、远程命令执行和文件传输等特征,说明它具有典型后门程序的功能。

在僵尸网络流量分析中,我认识到网络流量取证需要关注协议特征和攻击链条。通过 IRC 的 NICK、USER、JOIN 等消息,可以判断主机加入僵尸网络的过程;通过 TCP 流和数据包内容,可以还原攻击者利用漏洞、投递文件、执行命令和建立远控连接的过程。这部分实践让我理解了蜜罐数据分析在发现攻击行为和追踪入侵路径中的重要作用。

总体来说,本次实践提高了我对恶意代码分析、逆向工程和网络安全取证的综合理解。虽然在实验初期对 IDA Pro、Process Monitor 等工具还不够熟悉,但通过查阅资料和反复操作,逐渐掌握了基本使用方法。后续还需要继续加强对汇编语言、Windows 系统机制、常见漏洞利用方式以及网络协议分析的学习,以便在面对更复杂样本和真实攻击流量时能够更加准确、高效地完成分析。

posted @ 2026-04-27 15:10  nakaii  阅读(74)  评论(0)    收藏  举报