ybh724

导航

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

1.实践内容

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、那些攻击成功了?是如何成功的?

一、动手实践任务核心知识点
(一)恶意代码样本分析(rada)
文件类型识别核心
核心目的:确认文件格式(如 PE、ELF)、运行平台(Windows/Linux)、是否加壳
关键工具:file命令(基础识别)、ExifTool(详细元数据)、PEiD/Detect It Easy(加壳类型检测,如 UPX、ASPack、壳的特征码匹配)
关键指标:文件头标识(如 PE 文件 0x4D5A)、区段特征(加壳文件通常有异常区段名,如 “UPX0”“UPX1”)
脱壳核心知识点
脱壳本质:去除加壳程序的保护壳,还原原始可执行代码(加壳目的:隐藏恶意行为、防逆向)
常用工具:超级巡警脱壳机(自动脱壳)、UPX -d(手动脱壳 UPX 壳)、OllyDbg(动态脱壳,对付手动壳)
关键步骤:先识别加壳类型→选择对应脱壳工具→验证脱壳成功(脱壳后可正常反汇编、字符串可提取)
字符串提取核心
工具:strings命令(命令行提取)、IDA Pro 字符串窗口(可视化筛选)
关键筛选方向:作者标识(邮箱、昵称、备注)、恶意行为相关字符串(IP、域名、命令、函数名)
注意事项:需区分有效字符串(作者信息、恶意指令)与无效垃圾字符串
(二)Crackme 程序分析(IDA Pro)
核心分析思路
静态分析:通过反汇编查看程序逻辑,定位 “正确输入” 的判断条件(如比较指令cmp、跳转指令jz/jnz)
动态分析:调试跟踪程序执行流,观察输入与寄存器 / 内存值的对应关系,爆破或推导正确输入
IDA Pro 关键操作
静态功能:反汇编窗口(查看main函数逻辑)、字符串窗口(定位成功 / 失败提示,反向找判断逻辑)、交叉引用(跟踪关键函数调用)
动态功能:设置断点(F9运行,F7单步步入)、查看寄存器(EAX/EBX等存储输入 / 计算结果)、栈窗口(跟踪局部变量与参数)
破解核心原理
关键逻辑:程序通过 “输入→处理(加密 / 校验)→与预设值比较” 判断是否成功
破解方法:①直接修改跳转指令(绕过校验,如将jnz改为jz);②推导校验算法(根据反汇编代码还原正确输入)
二、分析实践任务核心知识点
(一)恶意代码样本分析报告
文件摘要核心
关键信息:文件哈希值(MD5/SHA256,唯一标识样本)、文件格式 / 平台、加壳状态、大小、编译时间
作用:用于样本同源性比对、威胁情报检索
恶意代码核心分析维度
目的识别:窃取信息、远程控制、破坏系统、传播自身等(通过字符串、函数调用、行为分析判断)
特性识别:是否持久化(如写入注册表、创建自启动项)、是否通信(C2 服务器 IP / 域名)、是否免杀(加壳、混淆)
反逆向技术:加壳(压缩壳 / 加密壳)、代码混淆(变量名乱码、控制流平坦化)、反调试(检测调试器进程、修改调试寄存器)
恶意代码分类标准
病毒:需依附其他文件传播,自我复制
蠕虫:独立文件,无需依附,自动传播(如利用漏洞扩散)
木马:伪装正常软件,窃取信息或提供远程控制(无自我复制能力)
僵尸网络客户端:受 C2 服务器控制,参与分布式攻击(如 DDoS)
作者溯源条件
可行场景:样本中残留作者标识(邮箱、昵称、注释)、编译环境信息(编译器版本、路径)、网络通信中暴露真实 IP
限定条件:需结合威胁情报库、网络日志溯源,且作者未清除痕迹(如无混淆、未使用匿名工具)
(二)僵尸网络与 IRC 协议分析
IRC 协议基础
定义:互联网中继聊天协议(Internet Relay Chat),用于实时文本通信
关键细节:加入 IRC 网络的核心消息是JOIN(格式:JOIN #频道名);常用 TCP 端口:6667(默认)、6668、6669
僵尸网络核心概念
定义:由攻击者控制的大量被感染主机(僵尸机)组成的网络,通过 C2 服务器统一指挥
主要用途:发起 DDoS 攻击、发送垃圾邮件、窃取敏感信息、挖矿
网络日志分析核心
通信识别:筛选蜜罐(172.16.134.191)与 IRC 服务器的 TCP 连接(基于端口 6667 等)
攻击源识别:提取访问僵尸网络服务器(209.196.44.172)的不同 IP,统计独立主机数
漏洞攻击分析:通过攻击流量特征(如特定端口扫描、漏洞利用 payload)识别目标漏洞(如缓冲区溢出、SQL 注入)
攻击成功判定:蜜罐与攻击源建立连接、出现异常进程 / 端口、向 C2 服务器发送注册消息(如 IRC 的NICK/USER消息)

2.实践过程

2.1 动手实践任务一

下载rada.rar文件到kali中,使用命令file RaDa.exe查看信息
eaeddbaf20f62da9dea2c9e2b3a36c0c
RaDa.exe是一个可执行文件,采用 PE32 格式,适用于Intel i386架构的处理器,用于MS Windows操作系统的图形用户界面程序,被分成了3个部分。
使用命令strings RaDa.exe查看RaDa.exe文件恶意代码字符串
a9e1395a6dac7ee2477cd47b6aacc776
下载rada.rar文件到WinXPattacker中
c523b27980cb46442be6daf1d08aae62
使用命令rada --authors和RaDa.exe --authors查看作者信息
5e46dcc7dacfe87d81e8d9d8e79403d2
使用命令upx -l RaDa.exe查壳
af9239416bf71d8f41d361ba007c0250
打开超级巡警脱壳机
fb888d87d0ab73e14f0f724318dd6b4d
选择要脱壳的文件,点击给我脱
eb94133e3a1256ffe077416bd77e8f5a
使用命令strings RaDa_unpacked.exe对脱壳后的文件RaDa_unpacked.exe进行字符串分析,发现大量的函数调用信息,但是不够详细,需要反汇编来分析
da40e1152444b55085b0237e0a3d089d
打开IDA Pro Free并导入文件
55da80312c49b03af803db50af4c7c06
IDA自动完成完整反汇编分析
1ed2305b081ce3e24406f2f97efd90ec
点击IDA顶部菜单栏:Options->ASCII string style->Unicode
fb16f10b77f99ec3dcd5c7861498aba6
找到作者信息
585355bdcca6a6ab81b09a2e5ef9dff7
与之前查看的作者信息相同,均为Raul Siles & David Perez
9df1efd5e5cad25de9c5b2c13f36a09a

2.2 动手实践任务二

下载crackmel.exe文件到WinXPattacker中
e4d88a9b0af14dc957f13032ba63fe04
使用命令md5sum crackme1.exe和md5sum crackme2.exe计算MD5值查看其完整性
使用命令file crackme1.exe和file crackme2.exe查看文件类型
d55021b3009cd7278f529ce2a89c688d
用IDA Pro Free打开crackme1.exe进行分析
f235e88b87fb0b1841f486e2c6a48117
打开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”
dfa66df6b7eaab2387eb062e63a773cf
双击I know the secret这一行,自动跳转到.rdata段里的字符串定义位置,点击view–Graghs–Function calls查看该程序函数调用图,发现关键的部分在sub_401280这里
b3302d7058c59ab067a1c2f3ad7be588
在Flow chart中查看sub_401280的汇编代码以及函数调用图,左侧参数个数不匹配的输出,右侧正确的输出。
57b5cfbfdff1e415a64e14372ea13a27
判断是否输入“I know the secret”,如果是,就true,输出You know how to speak to programs
使用命令验证分析
crackme1.exe
crackme1.exe 1
crackme1.exe 1 2
crackme1.exe 1 2 3
crackme1.exe “I know the secret”
7133717bf451e448bdbe67c17eff2f07
用相同的方法打开crackme2.exe进行分析,查看代码流程图及函数调用图
08bbbae1bdc5b56ae52792ba73074e38
b4665d76da00d3bd10ba1776daeaf438
分支语句部分比crackme1.exe多了一个分支来判断是否输入正确,先判断是否输入了“crackmeplease.exe”,再判断是否输入了"I know the secret"
6b19244f4030ff2d2c5ba784d31acfc1
使用命令验证分析
crackme2.exe “I know the secret”
copy crackme2.exe crackmeplease.exe
crackmeplease.exe “I know the secret”
b561ea024111a3946aa9a4544909bfa6

2.3 分析实践任务一

分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:

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

使用命令md5sum RaDa.exe获取MD5摘要
3be981607968bc5549d63cab3b0d5e1c

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

程序会自动连接到目标为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、给出过去已有的具有相似功能的其他工具;

Setiri、GatSlag

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

作者是Raul Siles & David Perez, 2004
打开Process Explorer软件
4e7bb91c17f52c77541253d12a7640da
查看监听信息,发现该恶意软件先访问了http://10.10.10.10/RaDa这个网站,将RaDa_commands.html下载到了C:\RaDa\tmp
7256c1c7b4671fbd647dc99d1d186f98
在C:\RaDa\tmp下创建了用于保存下载文件的文件夹,还修改了注册表
7256c1c7b4671fbd647dc99d1d186f98
可以在主机执行put、screenshot、get等命令
a05f90516090370c736e1629213f6892
修改注册表后将RaDa设置为了开机启动项,还攻击了三大内网192.168、172.16、10。
6a8880bae8c0f03d8561dda46c0be037
可以看到作者的信息Raul Siles & David Perez,2004
93cf6e9ce2a63ce82c26d07b3d034436

2.4 分析实践任务二

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

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

IRC是互联网中的即时聊天协议。将发送一条消息称为NICK消息,其中包含用户选择的昵称。IRC一般使用TCP端口6667。

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

僵尸网络是由一组受控制的计算机组成的网络,这些计算机通常在未经用户授权的情况下被黑客或恶意软件控制。可以被用来进行各种恶意活动,如发送垃圾邮件、发动DDoS攻击、进行网络钓鱼等。

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

下载botnet_pcap_file.dat文件并用wireshark打开
设置过滤条件ip.src == 172.16.134.191 and tcp.dstport == 6667
400be429f6f731f90f204559b6d66948
打开statistics–ipv4statistics–all addresses,输入过滤条件ip.src == 172.16.134.191 and tcp.dstport == 6667 and tcp.flags.syn == 1
2b4deefd6a6ba22a3187cd6d18c48b78
五个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为服务器的僵尸网络?

使用命令sudo apt-get install tcpflow安装TCPflow工具
使用命令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"进行wireshark日志进行分析,生成report.xml文件
2f2191d47781dfc57586a68e42af2dc5
389e289d8f165c01fa8dad35af151697
使用命令grep过滤查看该文件,得到主机数量为3461个
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
2f2191d47781dfc57586a68e42af2dc5

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

使用命令利用tcpflow来进行分析,生成一个文件,文件中是被用于攻击蜜罐主机的所有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
383a5d4de73c1bb382088926a65071d6
打开IP.txt,共165个IP被用于攻击蜜罐主机
ab6ccd50d03bd5e1db2136841b6e9f83

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

使用命令统计TCP SYN泛洪DDoS攻击流量
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
9cf91535398f692b30834138cd05029d
使用命令统计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
83d90f3b541fa06782b6a1c0a8a3b7a7
TCP响应端口为135、139、25、445、4899、80;UDP响应端口为137

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

使用命令ip.addr == 172.16.134.191 && tcp.port ==135在wireshark中查询,没有交互
bdc0c5ee7f79e6e74252c31f6e6d1864
使用命令ip.addr == 172.16.134.191 && tcp.port ==139在wireshark中查询,发现了一些数据包,但是没有下文
40abb94a9aa2fdcb51c170eb69af0c4c
使用命令ip.addr == 172.16.134.191 && tcp.port ==25在wireshark中查询,没有交互
069973dcb023a1826331de2a0a3cc618
使用命令ip.addr == 172.16.134.191 && tcp.port ==445在wireshark中查询
1b1411aa0922efae9af529ae35af5f54
看到了PSEXESVC.EXE这一可疑的exe可执行文件,是一个恶意远控程序,也是蠕虫病毒。
攻击者逐步拿下权限,先是admin,再是administrato
2cd3eeaca7fcc3c4ca21d187f5c8a8b3
5c0d9d2537d1e469fc4f62c15f93f2e7
e724adfe35ac884a1f79f3fa4de0c709
使用命令ip.addr == 172.16.134.191 && tcp.port ==4899在wireshark中查询,没有交互
065d142fc07cdb8a4506a72fa055e664
使用命令ip.addr == 172.16.134.191 && tcp.port ==80,没有异常
11eb758eb0a6ff18df64aa7ca6823fd0
使用命令ip.addr == 172.16.134.191 && udp.port ==137,没有异常
3dd651aeee905f2a8d2930893d8abba0

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

  • 问题1:安装VMware Tools始终不成功,无法将所需文件拖入虚拟机内
  • 问题1解决方案:借用yuzzz11111同学的电脑完成实验

4.实践总结

本次实验核心围绕恶意代码分析、Crackme 破解与僵尸网络溯源三大模块,关键知识点可概括为:恶意代码分析需遵循 “文件类型识别(依赖 PEiD、file 命令)→ 针对性脱壳(UPX -d、OllyDbg)→ 有效字符串提取(strings、IDA)” 的流程;Crackme 破解核心是用 IDA Pro 的静动态分析结合,定位校验逻辑、推导正确输入;僵尸网络分析则需掌握 IRC 协议关键(JOIN 消息、6667 默认端口),通过网络日志筛选通信流量、识别攻击源与漏洞利用情况。三者均需以理论为基础、工具为支撑,细节把控是分析成功的关键。

posted on 2026-05-25 19:23  闫炳宏  阅读(44)  评论(0)    收藏  举报