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

一、实验内容

1.1 实验要求

动手实践任务

  • 一、对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
    • (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
    • (2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
    • (3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
  • 二、分析Crackme程序
    • 任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。

分析实践任务

  • 一、分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
    • 1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
    • 2、找出并解释这个二进制文件的目的;
    • 3、识别并说明这个二进制文件所具有的不同特性;
    • 4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
    • 5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
    • 6、给出过去已有的相似功能的其他工具;
    • 7、能否调查出这个二进制文件的开发作者?如果可以,在什么样的环境和限定条件下?
  • 二、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.1 恶意代码基础与文件类型识别

恶意代码是指故意编制或在计算机程序中插入的破坏计算机功能、毁坏数据、影响计算机正常使用并能够自我复制的一组计算机指令或程序代码,常见类型包括病毒、蠕虫、木马、后门程序、僵尸程序等。

Windows 平台下可执行文件多为PE 格式,是恶意代码最主要的载体。文件类型识别是恶意代码分析的第一步,通过专业识别工具可判定样本的文件格式、运行架构(32 位 / 64 位)、操作系统平台、编译器版本以及是否存在加壳、加壳器类型等关键信息。通过文件特征、PE 头部字段、特征签名匹配等方式,能够快速对 Rada 这类未知恶意样本进行基础画像,为后续脱壳、逆向分析提供依据。

2.2 软件加壳与脱壳技术

2.2.1 加壳原理

加壳是程序员或恶意代码作者利用专用加壳工具,对可执行程序进行压缩、加密和代码变形的技术。加壳后的程序运行时,先执行壳代码对原程序进行解密、解压,再跳转执行原始程序逻辑。恶意代码普遍采用加壳手段,目的是隐藏真实程序代码、规避杀毒软件查杀、增加逆向分析难度。

2.2.2 脱壳技术

脱壳是加壳的逆过程,分为手动脱壳和自动脱壳。超级巡警脱壳机属于自动化脱壳工具,可针对常见商业壳、简易恶意壳进行自动识别与剥离,还原出未加密、未压缩的原始 PE 程序。只有完成脱壳,才能正常进行字符串提取、反汇编、代码逻辑分析等后续逆向工作,是 Rada 恶意样本分析的必备前置步骤。

2.3 恶意代码静态分析与字符串提取

静态分析是指在不运行恶意样本的前提下,对程序文件进行结构、资源、字符串、导入导出函数等信息的分析,安全性高、风险低。

字符串提取是静态分析核心手段之一,程序中包含的网址、IP 地址、开发者签名、版本信息、命令关键字、通信字段等都会以明文字符串形式存在。对脱壳后的 Rada 样本进行字符串提取,可直接挖掘出程序编写作者标识、通信地址、功能特征等关键线索,是溯源恶意代码作者、分析程序用途的重要方法。

同时静态分析还可获取文件哈希值(MD5/SHA1)、文件大小、时间戳、节区特征等摘要信息,用于恶意样本同源比对、威胁情报匹配。

2.4 Crackme 程序与 IDA Pro 逆向分析

2.4.1 Crackme 程序概念

Crackme 是专门用于逆向工程练习的小程序,作者会设置注册码校验、字符比对、算法加密等逻辑,不提供官方密钥,需要学习者通过静态或动态逆向分析,找出校验算法、破解逻辑,构造正确输入使其输出成功提示。本次实验的 crackme1.exe、crackme2.exe 属于典型入门级逆向练习样本。

2.4.2 IDA Pro 工具原理

IDA Pro 是业界主流的静态逆向工程工具,支持 PE、ELF 等多种文件格式,可对程序进行反汇编、函数划分、流程图生成、字符串定位、交叉引用分析。通过 IDA 可查看程序汇编代码、跳转逻辑、条件判断分支,定位关键校验代码,分析输入比对规则,从而推导出能够通过验证的特定输入,完成 Crackme 破解分析。

2.5 蜜罐技术与 Snort 网络流量分析

2.5.1 蜜罐技术

蜜罐是一种主动安全防御技术,通过部署伪装成真实业务的主机、服务,诱骗攻击者进行扫描、漏洞攻击、入侵渗透。蜜罐本身不承载真实业务,所有访问和攻击行为都是可被记录、监控、分析的,主要用于收集攻击手法、漏洞利用方式、恶意样本传播路径、僵尸网络通信行为等安全数据。本次实验中 Windows 2000 蜜罐主机用于捕获真实网络攻击与僵尸网络行为流量。

2.5.2 Snort 流量分析

Snort 是开源入侵检测工具,具备网络流量捕获、规则匹配、日志记录、协议解析能力。可长时间监听蜜罐网络流量,将原始网络数据包保存为二进制日志文件,支持后期离线回放、流量筛选、协议解析、攻击行为溯源。通过编辑整理 Snort 日志,可剥离无关流量,聚焦攻击者扫描、漏洞攻击、远程控制、IRC 通信等行为,为后续网络安全分析提供原始数据源。

2.6 IRC 协议与僵尸网络基础

2.6.1 IRC 协议

IRC(互联网中继聊天)是一种基于 TCP 的即时通信协议,采用客户端 / 服务器架构。客户端向 IRC 服务器发送连接、加入频道、聊天、控制等指令,默认常用 TCP 端口为6667、6668、6669。客户端接入 IRC 网络时,会发送用户昵称、主机信息、加入频道(JOIN)等注册消息,完成身份登记与频道加入。

2.6.2 僵尸网络原理

僵尸网络是由大量被恶意代码入侵、被攻击者远程控制的主机(肉鸡 / 僵尸主机)组成的受控网络。攻击者常利用 IRC 服务器作为中控服务器,所有僵尸主机主动连接 IRC 服务器,加入指定频道,接收攻击者下发的控制指令。

僵尸网络主要用途包括:DDoS 攻击、垃圾邮件分发、漏洞扫描、挖矿、隐私信息窃取、内网横向渗透等。通过分析蜜罐流量日志,可溯源 IRC 服务器地址、受控主机数量、攻击 IP、利用的系统漏洞以及攻击成功方式,掌握僵尸网络的通信特征与攻击链路。

2.7 系统漏洞与网络攻击基础

Windows 2000 等老旧系统存在大量高危未修复漏洞,常见类型包括远程代码执行漏洞、缓冲区溢出漏洞、服务弱口令漏洞、共享服务漏洞等。攻击者通常通过端口扫描探测主机开放服务,针对已知漏洞利用攻击载荷进行渗透,获取系统权限并植入僵尸程序,使主机主动连接 IRC 中控服务器,沦为僵尸网络节点。流量分析可识别攻击目标端口、漏洞利用特征、攻击源 IP,区分扫描试探与实际成功入侵行为。

三、实验过程

2.1 动手实践任务一

  1. 使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
  • 下载学习通中的rada.rar到kali中,输入命令:
#解压文件
unrar x rada.rar
#输入解压密码
rada
#检查是否解压成功
ls
实验步骤
  • 执行file RaDa.exe命令
实验步骤

作用:
在渗透测试或恶意软件分析中,file命令是第一步信息收集:
快速确认文件真实类型(避免被.exe后缀误导,比如有些文件可能伪装成 exe 实际是其他格式)
确定目标平台(Windows/Linux)、位数(32/64 位)和程序类型(GUI / 控制台),为后续工具选择提供依据:
32 位程序:可使用 32 位 IDA、x32dbg 等工具分析
64 位程序:对应使用 64 位工具
节的数量可以初步判断是否加壳:正常编译的程序通常有 5 个以上的节,数量过少(如这里的 3 个)很可能是被加壳、压缩或自定义节处理过,后续需要脱壳再分析。

经分析,如下。

字段 含义说明
PE32 executable 这是 32 位 Windows PE 格式可执行文件(Portable Executable,Windows 标准可执行格式)
for MS Windows 4.00 目标平台为 Windows 系统(兼容 Windows 95/NT 4.0 及以上版本)
(GUI) 程序类型为图形界面(GUI)程序,而非控制台命令行程序
Intel i386 指令集架构为 32 位 x86(i386),即 32 位程序
3 sections PE 文件仅包含 3 个节(Sections),通常标准 PE 程序会有 `.text`(代码)、`.data`(数据)、`.rdata`(只读数据)等多个节,数量较少可能表示程序很简单,或经过加壳 / 精简处理
  • 输入strings RaDa.exe,查看RaDa.exe文件恶意代码字符串,看到输出的字符串为一堆乱码,猜测是因为加壳的原因。此外,出现了几个dll文件的名称,还出现了一些调用的函数等信息。
实验步骤
┌──(kali㉿kali)-[~/Desktop]
└─$ strings RaDa.exe
!This program is the binary of SotM 32..
Rich
JDR0
JDR1
.rsrc
9.99
JDR!
6B@>CEC
YMOM@./
RmR].G^
^@n/
h^ry
N[5M
;yaO
W81b'#
ORaDa
=LVB5!
*#~t
;x@S
7l;uM'
$;4=}
 _'H
2Hw4'
33lS
'4L;5\S
B;!/KL
l'+x
/X(`
'$;w
Form1
Module1
pA/{K
q.OPw
\mpu]s
ieYa
SUf3w!r\
iaMs
CYrX
G)yZ
t]A7yk
J=%}
Command_instal
833q
You c  
ot play/g fun
ny securit
ch@e
usag
exit
conf
Label
237go
keyb
2+SIe
;V'EzroWb
,08H+d;e
v-aWBY
1Qk2X
bY')79w
xS2FrKPw
=y.E7
/5dq
k0['25I
>mU=a
 )C{
SDpk 
$0 a
[kraQ
L pa
/;k8$
oAEO
P{M}
N/BK
        -_U
M1[tEw
p]7S
w>+3
 iC7t
gocm
7q+U
oyl!
xc8<
#5M%T*
CH]]
n#b=
"'#[
[mMhB
/56N
wV`$
arTstN
UI1I4i
leClosePut3C
Idiz
=ulkLt7An
%Sub
StrErr
Open;L
BKrg
gIexLoad
kore'
Ref?2Vec"#
wNtt
Sy em
IniAryDe
mmME
MXr {diV
BNof
n/ck
Each
oC@V
NmpG
 E;a
.an!
K#Va
NoBool
3Y{     c
mOc!l
rfaw
*@NJ|@E-
Bs+@
&dkN
eO h
7Ph,B
        fc[
h`4u
[t7f
/R      "
R%R@
$Wrj
ftQ*
t*t$|
B~G[
\q6$
Qqhv
)&(H
S1#h,
xW,     x
V~]A[)
VDs(V
;TLv
OAO8
MCuZb
|X`O
ov8T
:5!Ss
R]{q
A`h$
 _H~M
QH@L
*0HG>
W)x^
^W2e
CIcos
adj_fptan D<
HA\
bDL>
/Ary
_m64
?m19r$"&+
RS{@
q16i-B
"r#'
la6$g
\sinL3
dx"k)k7
EVENT
_SINK_R
-gEq
FunSion
H|dn
v("L-
]H)i
No44
a@ad
h$a 
[vFA
'.t!
.rsr%
KERNEL32.DLL
MSVBVM60.DLL
LoadLibraryA
GetProcAddress
ExitProcess
  1. 使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理
  • rada.rar文件下载到WinXPattacker中
  • 由于xp系统没有自带的解压,所以我使用kali开启一个建议的HTTP文件服务器,让XP访问下载。
#kali:启动服务器
python3 -m http.server 8080
#XP:访问http服务器
192.168.200.6:8080
实验步骤
实验步骤
  • 建议移动到这个文件夹,这样打开cmd就不用进入专门的目录了,方便后续操作。
实验步骤
  • 输入命令查看作者信息
#查看作者信息
rada --authors
RaDa.exe --authors

该程序被加壳保护,脱壳后才能正常查看作者信息,且通过命令行参数 --authors 和脱壳后提取字符串 / 运行输出的方式,能验证作者为 Raul Siles 和 David Perez,两种方式的信息完全一致。

实验步骤
  • 输入命令:upx -l RaDa.exe 来查壳
实验步骤

原生 UPX 查壳失败,说明:
1、这个程序的壳是修改过的 UPX 壳,目的就是阻止直接用原生 UPX 脱壳,增加逆向分析的难度。
2、这类早期恶意代码常通过魔改 UPX 壳,规避静态分析和自动化脱壳工具,需要手动动态调试才能完成脱壳。

  • 使用超级巡警之虚拟机自动脱壳器对其进行脱壳。

具体流程:

  1. 在工具中选择目标文件 RaDa.exe;
  2. 点击「给我脱」按钮,工具自动运行脱壳流程;
  3. 脱壳成功后,生成脱壳文件 RaDa_unpacked.exe,并显示输出路径。

脱壳生成的 RaDa_unpacked.exe 就是程序的原始版本,接下来可以验证脱壳效果:

  1. 命令行验证作者信息:运行 RaDa_unpacked.exe --authors,此时能正常输出 Raul Siles & David Perez 的作者信息,与程序原始版权信息一致。
  2. 静态字符串提取:使用 strings 工具提取脱壳文件的可读字符串,也能找到完整的版权、作者信息,确认脱壳未破坏程序原始数据。
  3. 功能验证:脱壳后的程序可以正常运行,实现其原始的远程控制功能,说明脱壳过程未损坏程序代码。
实验步骤
  1. 使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
  • 把这个脱壳后的文件移动到这个文件夹。
实验步骤
实验步骤
  • 使用strings RaDa_unpacked.exe命令,对脱壳后的文件RaDa_unpacked.exe进行字符串分析,可以发现大量的函数调用信息,但是仍然不够详细,需要反汇编来分析,字符串分析是不够的。
实验步骤
  • 使用IDA Pro Free,选择PE Exe对脱壳后文件RaDa_unpacked.exe进行反汇编分析。
实验步骤
实验步骤
  • 打开目标文件,IDA 自动完成完整反汇编分析(代码、函数、字符串全部解析完成)。

    实验步骤
    • 点击 IDA 顶部菜单栏:Options->ASCII string style...->Unicode
    实验步骤
  • 找到作者信息与上述命令RaDa.exe --authors查看的作者信息相同,均为Raul Siles & David Perez

    实验步骤

    2.2 动手实践任务二

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

    • crackmel.exe文件拖到WinXPattacker中。
    实验步骤

    先检查一下两个文件的完整性,计算其 md5 值(md5sum 是 Linux/Unix 系统中基于 MD5 哈希算法的文件校验工具,核心作用是计算文件的 MD5 校验值、校验文件完整性,通过比对文件的 MD5 哈希值,快速判断文件是否被篡改、损坏或传输错误,是文件校验、数据一致性验证的常用命令。),再用file命令查看文件类型,可以看到这两个文件都是32位windows下PE文件。

    # 计算MD5哈希值,校验文件是否被篡改/损坏(完整性验证)
    md5sum crackme1.exe
    md5sum crackme2.exe
    # 查看文件类型,确认是32位Windows PE可执行文件
    file crackme1.exe
    file crackme2.exe
    
    实验步骤
    • 用IDA Pro Free打开crackme1.exe进行分析。
    实验步骤
    • 打开strings窗口查看字符串,可以看到“I think you are missing something.” “Pardon? What did you say?”“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer\n”。
    实验步骤
  • 双击 I know the secret 这一行,会自动跳转到 .rdata 段里的字符串定义位置。

    点击view–Graghs–Function calls查看该程序函数调用图,分析可以得出,关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用print和fprint函数输出。

    实验步骤
  • 再查看代码流程图,在Flow chart中查看sub_401280的汇编代码以及函数调用图。可以看到,左侧参数个数不匹配的输出,右侧正确的输出。

    实验步骤

    图中是双重校验逻辑:

    1. 第一层校验:参数个数判断
      函数首先对命令行参数个数进行校验,判断参数个数是否等于 2。
      若参数个数不等于 2,直接执行错误分支,输出提示语I think you are missing something.,随后结束函数执行。
      若参数个数等于 2,跳转至下一校验环节。
    2. 第二层校验:预设字符串比对
      取出用户输入的额外参数,与程序预设的密钥字符串"I know the secret"进行比对。
      若字符串不匹配,执行对应错误分支,输出提示语Pardon? What did you say?,随后结束函数执行。
      若字符串完全匹配,执行成功分支,输出预设的成功提示语,完成校验流程。
  • 在cmd里输入命令,验证上述分析。

    crackme1.exe
    crackme1.exe 1
    crackme1.exe 1 2
    crackme1.exe 1 2 3
    crackme1.exe “I know the secret”
    
    实验步骤
  • 用上述相同的方法打开crackme2.exe进行分析,查看代码流程图及函数调用图。

    实验步骤
    实验步骤
  • 着重分析分支语句部分的汇编代码,可以看到,它比crackme1.exe多了一个分支来判断是否输入正确,它先判断是否输入了“crackmeplease.exe”,再判断是否输入了”I know the secret“,因此是两个参数.

    实验步骤
    实验步骤
  • 在cmd里输入命令,验证上述分析。

    crackme2.exe "I know the secret"
    copy crackme2.exe crackmeplease.exe
    crackmeplease.exe "I know the secret"
    
    实验步骤

    2.3 分析实践任务一

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

    • 该二进制文件的md5摘要caaa6985a43225a0b3add54f44a0d4c7我们也知道了这是一个PE可执行文件,同时也是一个UPX加壳文件。
    • 通过md5sum RaDa.exe进行MD5摘要的获取

    实验步骤

      2、找出并解释这个二进制文件的目的;

    • 双击运行脱壳后的RaDa_unpacked.exe文件,打开监视工具Process Explorer监听RaDa_unpacked.exe,选中该进程,右键点击Properties→Strings查看监听到的字符串信息。

      进行监听查看,打开String,看监听信息可知,该恶意软件先访问了http://10.10.10.10/RaDa 这个网站,将RaDa_commands.html下载到了C:\RaDa\tmp,应该是下载了一个恶意软件或其他东西进行执行,留下了后门。判断当前环境是否是在虚拟环境下,如果不是,就进行DDos泛洪攻击,占据目标主机的资源,然后还修改了注册表,用Wscript.Shell对象读写 Wscript.Shell有三个方法,分别是RegWrite、RegRead、RegDelete,这里它均用到了。

      在c盘C:\RaDa\tmp目录下创建用于保存下载文件的文件夹,恶意软件还修改了注册表(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)将rada设置为开机启动。

    实验步骤
    实验步骤
    • 该文件运行时会在主机执行put、screenshot、get等命令。put表示将目标主机的文件上传至攻击者指定的主机;screenshot表示对当前屏幕内容截图;get表示将指定主机的文件下载至目标主机。
    • 实验步骤
    • 修改注册表后将RaDa设置为了开机启动项,最后它还攻击了三大内网,即192.168、172.16、10三个网段。此外,还能在这里看到作者的信息,即Raul Siles & David Perez,于2004年编写了此恶意软件。
    • 实验步骤
    • 查询了数据库相关信息、对应Mac地址等等。
    • 实验步骤
      • 该程序会自动连接到目标为10.10.10.10/RaDa的主机下一个名为RaDa_commands.html的网页上;分别下载和上传某些文件,并且在受害主机C盘目录下创建一个文件夹“C:/RaDa/tmp”来保存其下载的文件;在注册表编辑器中,增加了bin/目录下的RaDa.exe,说明该程序已经成为自启动项,还试图从一个HTML页面获取并解析命令;最后还可以发现该恶意程序中可执行DDos拒绝服务攻击;故猜测这应该是一个后门程序或僵尸网络程序。攻击了三大内网,即192.168、172.16、10三个网段。
      • 实验步骤

      3、识别并说明这个二进制文件所具有的不同特性;

      • 会在初次运行时,下载文件到C盘下,留下后门,启动DDos攻击.初次运行时,修改注册表实现自己的开机自启

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

      • UPX 加壳技术

      5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;

      • 该文件通过修改注册表实现开机自启,通过连接网站下载文件,留下后门,并实现DDos攻击可以知道,它的目的是让主机瘫痪,无法提供服务。此外,它不复制感染,不属于病毒和蠕虫,且没有伪装成可用程序欺骗用户运行,因此不属于木马,所以是一个后门程序

      6、给出过去已有的具有相似功能的其他工具;

      与本次脱壳、文件识别、字符串提取、逆向分析功能相似的经典工具:

      • PEview:查看 PE 文件结构,用于文件类型与格式识别
      • OllyDbg:手动脱壳、动态调试,替代 IDA Pro 做逆向分析
      • LordPE:PE 文件查壳、脱壳与结构编辑
      • Hex Workshop:十六进制查看,提取程序明文字符串
      • Import REC:脱壳后修复程序导入表,配合脱壳使用

      7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

      可以调查出,作者为Raul Siles & David Perez(2004 年)。

      分析环境:Windows XP 虚拟机、Kali Linux,使用超级巡警脱壳机、strings、IDA Pro 工具。

      限定条件:

      • 必须先完成脱壳(样本为魔改 UPX 壳);
      • 样本自身内置明文字符串版权信息;
      • 用 32 位逆向工具,在虚拟机中合规分析。

      2.4 分析实践任务二

      Windows 2000系统被攻破并加入僵尸网络

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

      2.4.1 问题解答

      1、IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?

        IRC 定义
        IRC 全称互联网中继聊天(Internet Relay Chat),是一种基于 C/S 架构的实时群组通信协议,常被僵尸网络用作控制与通信通道。

        接入消息
        客户端接入 IRC 网络首先发送 NICK(设置昵称) 和 USER(登记用户信息) 完成注册,之后发送 JOIN 消息申请加入指定 IRC 频道。

        常用 TCP 端口
        默认端口 6667,还有常用备用端口 6668、6669、7000。

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

        僵尸网络定义
        僵尸网络是攻击者通过恶意程序,批量入侵控制大量 Windows 等主机,被控制的主机俗称 “肉鸡 / 僵尸机”,统一受黑客命令调度形成的受控网络集群。

        主要用途

        • 发起大规模 DDoS 网络攻击
        • 批量发送垃圾邮件、网络钓鱼
        • 窃取主机隐私数据、账号密码
        • 恶意挖矿、远程操控被控主机
        • 作为攻击跳板,渗透内网其他设备

      3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?

        在学习通下载botnet_pcap_file.dat文件并用wireshark打开 ,IRC服务器明文传输通常在6667端口监听;
        所以我们设置过滤条件ip.src == 172.16.134.191 and tcp.dstport == 6667

        可见蜜罐主机与以下IRC服务器进行了通信
        209.126.161.2966.33.65.5863.241.174.144217.199.175.10209.196.44.172

        实验步骤

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

      3462

      先使用命令sudo apt update && sudo apt install tcpflow -y安装TCPflow工具。(我遇到了dns配置问题和下载过慢问题,建议换国内源)

      使用命令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"进行wireshark日志进行分析,它将生成report.xml文件。

      实验步骤
    • 打开report.xml文件。

      实验步骤

      使用grep过滤查看该文件,得到主机数量。

      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
      
      实验步骤

      可以看到有3462个主机进行通信

      5、那些IP地址被用于攻击蜜罐主机?

      165个IP地址

      使用指令重新利用tcpflow来进行分析,它将生成一个名为IP.txt的文件,里面是所有被用于攻击蜜罐主机的所有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 > IP.txt;wc -l IP.txt
      
      实验步骤
      实验步骤

      6、攻击者尝试攻击了那些安全漏洞?

      被攻击的端口TCP:135、139、25、445、4899、80,UDP:137。

      #分析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
      ##分析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
      
      实验步骤

      7、那些攻击成功了?是如何成功的?

      在80端口发现了cmd的字眼

      攻击者针对 Windows 2000 IIS 服务器发起的路径穿越攻击,试图调用系统 cmd.exe 执行 dir 命令以验证远程命令执行权限,为植入僵尸程序、攻陷主机并加入僵尸网络做准备。

      实验步骤
      实验步骤

      445端口发现一个PSEXESVC.EXE字符串,是由61.111.101.78发起的。

      攻击者在获取了目标主机 172.16.134.191(Windows 2000 系统)的 Administrator 凭据后,通过 NTLM 认证连接到目标的隐藏管理共享 ADMIN$,并上传了名为 PSEXESVC.EXE 的远程执行服务程序;流量随后的二进制指令显示,攻击者利用该服务远程调用了 attrib.exe 工具,试图去除恶意程序 inst.exe 的只读属性,这标志着攻击者已成功从远程控制转向了本地恶意载荷的植入与执行。

      实验步骤
      实验步骤

      四、遇到的问题以及解决方案

      问题1:在XP解压不了文件

      实验步骤

      解决方案:将kali中的文件,通过XP访问http临时文件服务器来下载。

      问题2:访问服务器不成功,也ping不通

      后来发现是上个实验网络设置成NAT模式了,这两台主机没有在一个网段中。

      实验步骤

      解决方案:将两台网络都设置成仅主机模式。

      实验步骤

      问题解决。

      实验步骤

      问题3:查看作者出现提示异常

      实验步骤

      解决方案:不用理会,后面会跳出来正确的。

      问题4:工具安装失败

      实验步骤

      ping 8.8.8.8成功,但ping http.kali.org失败,说明是DNS 解析问题

      实验步骤
      #编辑 DNS 配置文件
      sudo nano /etc/resolv.conf
      #添加如下内容
      nameserver 8.8.8.8
      nameserver 114.114.114.114
      
      实验步骤

      解析成功。

      实验步骤

      后面正常执行下载指令,成功解决问题。

      五、实验收获以及心得体会

      本次实验围绕恶意代码逆向分析与僵尸网络流量溯源两大模块展开,完成了 RaDa 后门程序的逆向分析,以及 Windows 2000 主机被攻陷过程的流量包解析,让我对网络攻击与恶意代码分析的完整流程有了具象且深刻的认知。

      在逆向分析模块,我通过脱壳、字符串提取、程序行为分析,溯源到了 RaDa 后门的开发者信息,也理解了加壳保护对逆向分析的阻碍,以及虚拟机环境对恶意程序行为的影响。过程中也遇到了不少实际问题:比如最初只回答了作者信息,忽略了分析所需的环境与限定条件;脱壳失败导致无法提取有效字符串;安装tcpflow工具时遇到网络解析错误,通过更换国内软件源、调整虚拟机网络配置、查阅工具文档,最终逐一解决了这些问题,也养成了排查环境问题、严谨补全分析逻辑的习惯。

      在僵尸网络流量分析模块,通过 Wireshark 追踪 TCP 流,我识别出了攻击者利用 IIS 路径穿越漏洞执行系统命令的攻击载荷,也理解了 IRC 协议作为早期僵尸网络控制通道的原理,清晰还原了从漏洞利用、命令执行到主机被植入僵尸程序的完整攻击链路,直观感受到了早期系统与服务漏洞的严重危害。

      这次实验让我明白,网络安全分析不仅需要熟练掌握工具,更需要理解攻击背后的原理与逻辑,同时严谨的分析过程和问题排查能力也至关重要。后续我会继续学习逆向工程与流量分析的进阶知识,同时也更深刻地认识到了及时修复漏洞、做好主机加固的必要性。

      posted @ 2026-05-02 02:00  神探12312312  阅读(36)  评论(0)    收藏  举报