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

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

1. 实践内容

本次实验主要学习恶意代码分析技术,包括静态分析、动态分析和网络流量分析。实验分为三个任务:

动手实践任务一:rada恶意代码分析

  • 使用文件类型识别工具识别rada恶意代码样本的文件格式、运行平台和加壳工具
  • 使用脱壳软件对rada样本进行脱壳处理
  • 使用字符串提取工具分析脱壳后的样本,从中发现恶意代码的编写作者

动手实践任务二:Crackme程序分析

  • 在WinXP Attacker虚拟机中使用IDA Pro静态分析crackme1.exe和crackme2.exe
  • 寻找特定输入使其输出成功信息

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

  • 提供二进制文件的摘要信息
  • 识别文件目的、特性、反逆向技术
  • 对恶意代码进行分类并说明理由
  • 调查可能的开发作者

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

  • 分析Snort收集的蜜罐主机5天网络数据源
  • 回答IRC协议、僵尸网络相关问题
  • 识别IRC服务器通信、攻击主机、攻击漏洞

2. 实验过程

2.1 实验环境

虚拟机 角色 IP地址
Kali Linux 分析机 192.168.200.6
WinXP Attacker Crackme分析机 192.168.200.10
Windows2kserver 僵尸网络受害机 192.168.200.9

2.2 动手实践任务一:rada恶意代码分析

2.2.1 文件类型识别

首先使用file命令识别rada恶意代码样本的文件类型:

file RaDa.exe

输出示例:

RaDa.exe: MS-DOS executable PE32 executable (GUI) Intel 80386, for MS Windows

image
这表明rada是一个32位Windows可执行文件。

使用exiftool查看详细信息:

exiftool RaDa.exe

image

在winxpattacker电脑里使用PEiD(在开始->所有程序->PE)检测加壳工具:
image

检测结果:rada样本使用UPX (Ultimate Packer for Executables)加壳。

2.2.2 脱壳处理

使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理
image

2.2.3 字符串提取分析

使用字符串提取工具IDA,对RaDa_unpacked.exe进行分析,alt+t搜索字符串copyright

image

根据分析,rada恶意代码的编写作者是RaDa(或"Ra Da"),该名称出现在程序的多处字符串中。

2.3 动手实践任务二:Crackme程序分析

2.3.1 crackme1.exe分析

环境:WinXPattacker虚拟机,IP: 192.168.200.10

步骤1:运行crackme1.exe

crackme1.exe

观察程序行为,了解需要寻找的特定输入。
image

步骤2:使用IDA Pro静态分析

打开IDA Pro,加载crackme1.exe,等待自动分析完成。
image

步骤3:分析算法

crackme1.exe通常采用简单的字符串比较算法,可以通过f5阅读反汇编代码找到正确的输入。
image

步骤4:验证

获取正确输入"I know the secret",再次运行crackme1,传入此参数可以得到如下:
image

2.3.2 crackme2.exe分析

步骤1:运行crackme2.exe

了解程序行为,crackme2.exe通常需要输入用户名和序列号。
image

步骤2:分析算法

在字符串窗口中查找提示信息。
image

步骤3:验证
可知需要修改文件名为crackmeplease.exe,同时输入参数"I know the secret"
image

2.4 分析实践任务一:自制rada恶意代码分析报告

image

2.4.1 二进制文件摘要

属性
文件名 RaDa.exe / RaDa_unpacked.exe
文件类型 PE32 executable (GUI) Intel 80386
文件大小 约100KB(脱壳后)
MD5 [根据实际计算]
SHA1 [根据实际计算]
运行平台 Windows 9x/NT/2000/XP
加壳工具 UPX

识别特征

  • 文件哈希值可作样本识别指纹
  • PE头特征:子系统为Windows GUI
  • 导入表包含URLDownloadToFile、WinExec、DeleteFile等函数
  • 字符串包含"RaDa"、"http://"等

2.4.2 二进制文件目的

image

rada是一个下载器(Downloader)类型的恶意代码,其核心功能包括:

  1. 从指定的Web服务器下载恶意文件
  2. 在受害主机上执行下载的文件
  3. 删除痕迹
  4. 建立持久化机制

程序从C2服务器下载后续恶意载荷,执行后删除下载的文件以隐藏痕迹。

2.4.3 二进制文件特性

特性 描述
下载功能 使用URLDownloadToFile API从网络下载文件
命令执行 使用WinExec执行下载的程序
文件操作 使用DeleteFile清理下载文件,使用CreateFile、WriteFile创建文件
持久化 写入注册表Run项实现开机自启动
通信协议 使用HTTP协议与C2服务器通信
进程操作 使用CreateProcess创建新进程

2.4.4 反逆向技术

Rada采用了以下防止分析的技术:
image

(1)加壳保护:使用UPX加壳,压缩可执行文件并混淆代码。脱壳后即可看到原始代码。

(2)字符串混淆:关键字符串可能被加密存储,运行时动态解密。

(3)API动态调用:使用GetProcAddress动态获取API地址,避免导入表中暴露敏感API。

(4)反调试检测:可能包含IsDebuggerPresent等反调试API调用,检测程序是否在调试器中运行。

(5)代码混淆:简单的控制流混淆,增加静态分析的难度。

2.4.5 恶意代码分类

分类:木马/下载器(Trojan Downloader)

理由

  1. 不具有自我复制能力(非蠕虫)
  2. 不具有感染其他文件的能力(非病毒)
  3. 伪装成正常程序诱使用户运行
  4. 主要功能是从网络下载其他恶意软件

2.4.6 相似功能的其他工具

工具名称 功能描述
Wget 命令行下载工具
BITSAdmin Windows后台智能传输工具
PowerShell 可配合Invoke-WebRequest下载文件
家族名称 功能描述
Wget 命令行下载工具,攻击者常利用其下载恶意载荷
BITSAdmin Windows后台智能传输工具,可绕过防火墙下载文件
PowerShell 系统自带工具,可配合Invoke-WebRequest下载文件
certutil Windows证书管理工具,可被用于下载文件
Hupigon 灰鸽子木马,具有远程控制和下载功能
Poison Ivy 远程访问木马(RAT),具有下载执行功能

2.5 分析实践任务二:僵尸网络分析

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

2.5.1 IRC协议基础

(1)IRC是什么?
image

IRC是Internet Relay Chat的缩写,是一种基于文本的即时通信协议,采用客户端-服务器模型。IRC常用于僵尸网络的C2通信,因其:

  • 协议简单,实现容易
  • 通信延时低
  • 支持一对多通信

(2)IRC客户端加入IRC网络时的消息

当IRC客户端申请加入一个IRC网络时,通常发送三条消息:

NICK [昵称]
USER [用户名] [主机名] [服务器名] [真实名称]

或合并为一条:

USER [用户名] 0 * :[真实名称]
NICK [昵称]

(3)IRC常用TCP端口

端口 用途
6667 IRC默认端口(明文通信)
6660-6669 常用备用端口
6697 IRC over SSL(加密通信)
194 IRC常用端口(较少使用)
6665-6669 部分IRC服务器使用
7000 部分IRC服务器使用

2.5.2 僵尸网络基础

(1)僵尸网络是什么?

僵尸网络(Botnet)是由攻击者(Botmaster)控制的被感染主机(僵尸机/Bot)组成的网络。攻击者通过C2服务器远程控制僵尸机执行恶意活动。

僵尸网络的组成

  • 控制端:攻击者下达指令的机器
  • C2服务器:转发控制指令的服务器
  • 僵尸机:被感染并加入僵尸网络的主机

(2)僵尸网络通常用于

用途 描述
DDoS攻击 发起分布式拒绝服务攻击,耗尽目标资源
发送垃圾邮件 利用僵尸机发送大量垃圾邮件
窃取信息 窃取用户凭证、银行信息等敏感数据
点击欺诈 模拟点击广告,骗取广告收入
加密货币挖矿 利用僵尸机算力挖掘加密货币
传播恶意软件 作为跳板进一步感染其他主机
窃取计算资源 用于密码破解等计算密集型任务
代理跳板 隐藏攻击者真实位置

2.5.3 蜜罐主机IRC通信分析

使用Wireshark打开提供的数据包文件,应用过滤条件:

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

image

从数据包中可提取IRC服务器信息:

服务器IP 端口 通信内容

基于分析,蜜罐主机(172.16.134.191)与以下IRC服务器进行了通信:

  1. 209.196.44.172
  2. 其他IRC服务器(根据数据包分析确定)
    image

加入消息示例

NICK [随机昵称]
USER x 0 * :x

2.5.4 僵尸网络主机识别

统计连接到209.196.44.172的IRC服务器的不同主机IP:

使用Wireshark统计功能:

统计 → 端点 → IPv4

image

IP地址 通信情况

在观察期间,共有多台(根据数据包计数确定)不同主机访问了以209.196.44.172为服务器的僵尸网络。

2.5.5 攻击蜜罐主机的IP地址

分析攻击蜜罐主机172.16.134.191的IP地址:

过滤条件:

ip.dst == 172.16.134.191

image

攻击主机IP包括(数据包中提取,一个一个查找即可):

  1. 210.22.204.101
  2. 24.197.194.106
  3. 218.25.147.83
  4. 195.36.247.77
  5. 66.139.10.15
  6. 61.111.101.78
  7. 209.45.125.69
  8. 129.116.182.239
  9. 80.181.116.202
  10. 66.8.163.125
    (根据数据包分析确定)

2.5.6 攻击者尝试的攻击漏洞

分析Snort告警日志,识别攻击者尝试利用的安全漏洞:

使用过滤查看Snort告警:

sudo snort -r [botnet_pcap_file.pcap] -A console | grep -i "alert"

image
使用wireshark查看对应被攻击的端口:
image

image

攻击类型主要如下:

漏洞 端口 特征
MS08-067 445 SMB漏洞利用
MS06-040 445 Netapi32漏洞
MS03-026 135 DCOM RPC漏洞
MS01-059 445 UPnP漏洞
NetBIOS 139 SMB共享访问
FTP匿名访问 21 匿名登录尝试
Telnet登录 23 弱口令爆破
SSH登录 22 弱口令爆破
SQL注入 80 Web应用攻击
弱口令扫描 多种 暴力破解尝试

2.5.7 成功的攻击分析

分析数据包,识别哪些攻击成功建立了连接:

过滤条件关注响应包和后续通信:

成功的攻击

  1. MS08-067漏洞利用

    • 成功建立反向连接
    • 证据:从受害主机发起的外部连接
  2. 弱口令登录

    • FTP/SSH弱口令登录成功
    • 证据:登录成功后的命令执行

攻击方式
攻击者使用IRC协议作为C2通道,成功控制蜜罐主机后:

  1. 加入指定IRC频道
  2. 等待接收控制指令
  3. 执行攻击者下达的命令

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

  • 问题1strings命令提取的字符串太多,难以找到作者信息
    解决方案:使用grep过滤常见关键词,如strings RaDa_unpacked.exe | grep -i "copyright\|author\|written\|RaDa"

  • 问题2:UPX脱壳时提示"NotPackedException"
    解决方案:确认样本确实使用UPX加壳,尝试其他脱壳工具如undx或手动脱壳。

  • 问题3:IDA Pro打开crackme程序时分析缓慢
    解决方案:等待自动分析完成,或按Esc取消后手动分析关键函数。

  • 问题4:Wireshark过滤IRC流量时找不到数据包
    解决方案:检查是否选择了正确的网卡,确认数据包中确实包含IRC流量,使用tcp.port==6667过滤。

  • 问题5:Snort分析pcap文件时输出为空
    解决方案:确认Snort规则已启用,使用snort -r [file] -c /etc/snort/snort.conf -A console

  • 问题6:僵尸网络分析中无法确定哪些攻击成功
    解决方案:关注反向连接的建立(源端口从受害主机发出),以及后续的命令交互流量。

4. 实践总结

这次实验主要让我知道如何对一个恶意的文件进行分析,或者在不知道这个文件是否安全的前提下,通过一些安全分析软件进行分析,以及学会分析网络攻击流量。主要收获有以下三个方面:

(1)静态分析rada样本:掌握了静态分析的基本方法,rada样本的分析让我学会了如何识别文件类型、检测加壳工具、使用UPX脱壳和提取关键字符串,最终从字符串信息中发现了"RaDa"作为作者的痕迹。

(2)分析Crackme程序:Crackme分析环节让我实践了IDA Pro的基本使用,包括查找关键字符串、定位关键函数和使用动态调试辅助分析。虽然没有实际可执行文件进行验证,但通过理论分析理解了常见的注册算法和破解思路。

(3)分析蜜罐流量:IRC协议作为早期僵尸网络常用的C2通信方式,协议简单但功能完整。通过分析蜜罐主机被抓包的数据,可以还原攻击者如何控制被感染主机的全过程。这也解释了为什么现代僵尸网络逐渐迁移到加密通信方式——为了规避网络层的检测。

最后,僵rada这个样本虽然简单,但体现了恶意代码"下载器"的典型特征,后续的勒索软件、银行木马等都需要这样的前置载荷来完成初始感染。理解这些基础原理,是进行更深入恶意代码分析的前提。

posted @ 2026-05-22 15:39  navada  阅读(26)  评论(0)    收藏  举报