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

1. 实践内容

动手实践任务一:对rada恶意代码样本进行文件类型识别、脱壳与字符串提取。具体包括:(1)使用file命令和PEiD工具识别文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机进行脱壳处理;(3)使用strings命令和IDA Pro提取字符串,找出恶意代码的编写作者。

动手实践任务二:在WinXP Attacker虚拟机中使用IDA Pro静态分析crackme1.exe和crackme2.exe,通过分析函数调用关系和字符串比对逻辑,寻找能够输出成功信息的特定输入。

分析实践任务一:对rada恶意代码样本进行深度分析,撰写分析报告,回答关于样本摘要信息、目的、特性、防逆向技术、分类、相似工具以及作者调查等七个问题。

分析实践任务二:分析Snort工具收集的蜜罐主机5天网络数据源,回答IRC协议、僵尸网络定义、IRC通信目标、主机访问数量、攻击源IP、安全漏洞以及成功攻击等七个问题。

2. 实践过程

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

2.1.1 文件类型识别

首先将rada.rar压缩包解压,得到RaDa.exe样本文件。由于在WinXP虚拟机中直接解压遇到问题,先将文件在本机解压后再复制到WinXP Attacker虚拟机中。(直接拖进去就行)

(1)使用file命令查看文件类型

在WinXP的命令行中执行file命令:

file rada.exe

image

这表明rada.exe是一个32位的Windows PE可执行文件,具有图形用户界面(GUI),适用于Intel 80386架构处理器,运行平台为Windows操作系统。

(2)使用strings命令查看可打印字符串

strings rada.exe

image

输出的内容大部分是乱码,无法获取有效信息。这说明该文件经过了加壳处理,原始代码和数据被压缩或加密,需要通过脱壳才能看到真实内容。

(3)使用PEiD检测加壳工具

将rada.exe文件拖入PEiD工具中,PEiD自动分析并显示加壳信息:
image

由此可知,该恶意代码样本使用了UPX加壳工具进行压缩加壳,加壳版本为0.89.6到2.90之间的版本,作者为Markus & Laszlo。

2.1.2 脱壳处理

使用超级巡警虚拟机自动脱壳机对rada.exe进行脱壳处理:

image

已在当前目录下生成脱壳后的文件RaDa_unpacked.exe
再次使用strings命令查看脱壳后的文件:

strings RaDa_unpacked.exe

image

此时输出的不再是乱码

2.1.3 字符串提取与作者发现

使用IDA Pro Free工具对脱壳后的文件进行深度字符串分析:

  1. 打开IDA Pro Free,点击“New”创建新项目

  2. 选择PE Executable文件类型

  3. 浏览并选择脱壳后的RaDa_unpacked.exe文件

  4. 保持默认选项,连续点击“Next”直至完成加载
    image

  5. IDA Pro自动完成代码分析后,点击顶部菜单“View” -> “Open Subviews” -> “Strings”打开字符串窗口

image

找到了作者信息

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

2.2.1 分析crackme1.exe

(1)文件类型确认

首先使用file命令查看文件类型:

file crackme1.exe

image
显示为32位Windows下的PE可执行文件。

(2)试探输入格式

在命令行中多次执行crackme1.exe,测试不同参数数量下的输出:

crackme1.exe             
crackme1.exe 1           
crackme1.exe 1 2          

image

(3)IDA Pro静态分析

使用IDA Pro Free打开crackme1.exe:

  1. 在Strings窗口中可以看到程序中出现的明文字符串:
    image

  2. 查看View -> Graphs中的Function Calls函数调用图,可以看到程序调用了printf、fprintf等输出函数

image

  1. 分析地址401280处的核心函数段,查看其汇编代码和流程图
    image
    image

通过分析流程图可以得出程序逻辑:

  • 判断argc是否等于2(即是否输入了1个参数)
  • 如果不是,输出"I think you are missing something."
  • 如果是,判断argv[1]是否等于"I know the secret"
  • 如果不相等,输出"Pardon? What did you say?"
  • 如果相等,输出"You know how to speak to programs, Mr. Reverse-Engineer"

(4)验证结果

在命令行中输入正确的参数:

crackme1.exe "I know the secret"

image

程序输出了成功信息,验证分析正确。

2.2.2 分析crackme2.exe

(1)初步测试

使用与crackme1相同的方式测试:

crackme2.exe "I know the secret"

image

即使输入了正确的密码,仍然提示错误,说明存在额外的验证条件。

(2)IDA Pro静态分析

使用IDA Pro Free打开crackme2.exe进行分析:

  1. 在Strings窗口中可以看到额外的字符串:"I have an identity problem."
    image

  2. 分析地址401280处的核心函数段,查看汇编代码和流程图
    image

通过分析发现程序逻辑:

  • 首先判断argc是否等于2
  • 如果不是,输出"I think you are missing something."
  • 如果是,判断程序文件名是否等于"crackmeplease.exe"
  • 如果不是,输出"I have an identity problem."
  • 如果是,再判断arg[1]是否等于"I know the secret"
  • 如果不是,输出"Pardon? What did you say?"
  • 如果是,输出成功信息(成功信息通过异或编码存储)

(3)验证结果

首先将crackme2.exe重命名为crackmeplease.exe,然后执行:

crackmeplease.exe "I know the secret"

image

程序输出成功信息,验证分析正确。

2.3 分析实践任务一:rada恶意代码深度分析报告

2.3.1 二进制文件摘要信息

找一个输出md5值的在线网站,将该文件丢进去即可。
image

MD5摘要结果为唯一标识该样本的哈希值,可用于样本识别和比对。

使用file命令获取基本信息:

file rada.exe

image

:PE32可执行文件,32位Windows平台,GUI界面程序。

2.3.2 二进制文件的目的

使用Process Explorer进程监视软件对脱壳后的RaDa_unpacked.exe进行行为监控:
image

通过分析strings窗口中的字符串和监控到的行为,可以确定该恶意代码的目的:

  1. 远程连接与控制:程序主动访问http://10.10.10.10/RaDa,下载RaDa_commands.html文件作为命令和控制(C&C)指令的来源

  2. 文件操作

    • 在C盘根目录下创建C:\RaDa\tmp文件夹
    • 将自身(rada.exe)复制到C:\RADA\bin目录中
    • 通过“get”命令从远程服务器下载文件
    • 通过“put”命令将本地文件上传到远程服务器
  3. 持久化机制:修改注册表,将rada.exe设置为开机自动启动

  4. 执行恶意指令:支持多种命令包括:

    • put:上传文件
    • get:下载文件
    • screenshot:截取屏幕图像
    • sleep:休眠指定时间
    • DDoS攻击指令

2.3.3 二进制文件的特性

该恶意代码样本具有以下特性:

  1. 加壳保护:采用UPX加壳技术压缩可执行文件,增加静态分析的难度

  2. 自我复制与持久化

    • 将自身复制到C:\RADA\bin目录
    • 修改注册表项实现开机自启动
  3. C&C远程控制:通过HTTP协议定期访问C&C服务器获取指令

  4. 后门功能完善

    • 文件上传下载能力
    • 远程命令执行
    • 屏幕截图功能
    • DDoS攻击能力
  5. API调用丰富:调用了user32.dll(图形界面操作)和kernel32.dll(进程和文件操作)等多个系统DLL

2.3.4 防逆向工程技术

image

该样本采用的防止被分析或逆向工程的技术是UPX加壳技术

  1. UPX(Ultimate Packer for eXecutables)是一种开源的可执行文件压缩工具
  2. 加壳后,原始的机器代码和数据被压缩和加密
  3. 文件头部添加了用于解压和解密的“外壳”代码
  4. 脱壳前直接使用strings命令查看字符串会显示乱码
  5. 脱壳后需要使用超级巡警脱壳机等工具才能还原原始代码

2.3.5 恶意代码分类

该恶意代码样本应分类为后门程序(Backdoor)

理由如下:

  • 程序在后台隐蔽运行,用户不易察觉
  • 通过HTTP协议主动连接远程C&C服务器
  • 能够接收和执行攻击者下达的各种命令
  • 不具备自我复制感染其他文件的能力(区分于病毒)
  • 不具备自动网络传播能力(区分于蠕虫)
  • 不具有伪装性(区分于特洛伊木马)
    总的来说RaDa_unpacked.exe 是一个功能完善的后门程序,其主要目的是:通过 HTTP 协议与远程 C&C 服务器通信,接收攻击者下发的命令,实现以下功能:
    文件上传与下载(get / put)
    截取屏幕(screenshot)
    发起 DDoS Smurf 攻击
    执行远程系统命令(通过 cmd 或 WScript.Shell)
    浏览器自动交互(可能用于凭证窃取)
    持久化(修改注册表实现开机自启动)
    自我复制与卸载控制

2.3.6 相似功能的其他工具

具有相似功能的其他工具包括:

  • Gatslag:僵尸程序,可进行DDoS攻击
  • Setiri:特洛伊木马,具有远程控制功能
  • Poison Ivy:著名的远程控制后门工具
  • Gh0st RAT:开源远程控制工具
  • Netcat:可作为反向Shell的后门工具

2.3.7 作者调查

可以调查出该二进制文件的开发作者

调查方法和条件:

  1. 分析环境:需要在隔离的虚拟机环境中进行分析(如WinXP或Kali Linux)
  2. 主要工具:需要脱壳工具(超级巡警脱壳机)和字符串分析工具(strings、IDA Pro)
  3. 限定条件
    • 必须对文件进行脱壳处理,去除UPX加壳保护
    • 需要将IDA Pro的字符串编码格式设置为Unicode
    • 需要确保字符串窗口完整加载所有字符串信息
      image
      本次分析成功在脱壳后的文件中找到了Authors: Raul Siles & David Perez, 2004的字符串,确认了作者身份。

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

2.4.1 IRC基础知识

IRC(Internet Relay Chat,互联网中继聊天):一种实时文本通信协议,采用客户端-服务器架构,支持群组聊天和私聊功能。

客户端加入IRC网络时发送的消息

  • 注册阶段:发送NICK(设置昵称)和USER(设置用户信息)消息
  • 加入频道:发送JOIN消息,格式为JOIN #频道名

IRC常用TCP端口

  • 标准端口:6667
  • 备用端口:6660-6669
  • SSL加密端口:6697
  • 僵尸网络常用规避端口:7000、8000、8080

2.4.2 僵尸网络

僵尸网络(Botnet):由攻击者控制的被感染主机(僵尸节点/Bots)组成的大型网络,攻击者可通过命令与控制(C&C)服务器统一操控这些主机。

僵尸网络的常见用途

  1. 分布式拒绝服务攻击(DDoS)
  2. 发送垃圾邮件和钓鱼邮件
  3. 加密货币挖矿
  4. 窃取敏感数据(键盘记录、凭证窃取)
  5. 勒索软件传播
  6. 点击欺诈和广告欺诈

2.4.3 蜜罐主机通信的IRC服务器

使用Wireshark过滤条件筛选蜜罐主机(172.16.134.191)与IRC服务器的通信:

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

image

分析得出蜜罐主机通信的IRC服务器共有5个:

  • 209.126.161.29
  • 66.33.65.58
  • 63.241.174.144
  • 217.199.175.10
  • 209.196.44.172

2.4.4 访问僵尸网络的不同主机数量

使用tcpflow命令提取与服务器209.196.44.172的通信流量:

tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'

image

然后分析IRC频道内的用户列表:

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

image

统计结果显示:共有3461台不同的主机访问了以209.196.44.172为服务器的僵尸网络。

2.4.5 攻击蜜罐主机的IP地址

使用tcpdump命令提取所有向蜜罐主机发送数据包的源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 > attack_ips.txt
wc -l attack_ips.txt

image

统计结果显示共有165个不同的IP地址被用于攻击蜜罐主机。

2.4.6 攻击者尝试攻击的安全漏洞

使用tcpdump查看蜜罐主机有响应的TCP和UDP端口:

# 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

image
image

分析结果如下:

端口 协议 服务/漏洞
135 TCP RPC(远程过程调用)- 可能用于DCOM漏洞利用
139 TCP NetBIOS-SSN - 可能用于SMB空会话查询
25 TCP SMTP - 可能用于邮件中继测试
445 TCP SMB - 可能用于MS06-040等漏洞利用
4899 TCP Radmin远程控制 - 可能用于远程管理入侵
80 TCP HTTP/IIS - 可能用于Web服务器漏洞利用
137 UDP NetBIOS-NS - 可能用于网络发现

2.4.7 成功攻击分析

在Wireshark中对各端口逐一分析:

端口135
image

仅进行了TCP连接,没有数据交互,攻击未成功。

端口139
image

攻击者多次尝试建立连接,但被蜜罐识别并发送RST指令拒绝,攻击未成功。

端口25
image

仅为TCP连接,无后续攻击行为,攻击未成功。

端口445
image

在分析第33280号数据包时,发现了PSEXESVC.EXE程序,表明使用了PsExec工具进行远程命令执行,这是Dv1dr32蠕虫的特征,攻击成功。

端口4899
image

检测到Radmin远程控制工具尝试连接,但未建立完整的控制会话,攻击未成功。

端口80
image

  • 发现攻击者尝试通过缓冲区溢出漏洞获取命令行
  • 发现c:\notworm特征字符串,这是红色代码(Red Code)蠕虫的特征
  • 通过分析蜜罐主机80端口向外的HTTP响应,发现返回的都是IIS默认页面,说明漏洞利用失败

端口137
image

仅用于NetBIOS网络查点,获取用户信息,未造成实质性攻击成功。

结论:唯一成功的攻击来自IP地址61.111.101.78,通过TCP 445端口利用SMB服务漏洞,使用PsExec工具执行了远程命令,成功将蜜罐主机纳入僵尸网络。

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

问题1:crackme2.exe的额外验证条件一开始没看到,初始分析时只关注了参数输入,忽略了程序本身可能对文件名进行校验。

解决方案

  • 在IDA Pro中仔细分析函数调用关系,注意比较指令的目标
  • 关注到程序对argv[0]进行了strcmp比较
  • 发现比较目标为“crackmeplease.exe”
  • 将程序重命名后重新测试,验证了分析结果

问题2:部分攻击成功与否的判断标准不确定,端口4899的Radmin连接被检测到,但不确定是否攻击成功。

解决方案

  • 在Wireshark中追踪完整的TCP流
  • 检查是否有认证成功的数据包
  • 检查是否有后续的命令交互数据
  • 确认只有连接尝试,没有实际的控制命令传输,判定为攻击未成功

4. 学习感想和体会

在这次实验中,印象最深的是用超级巡警脱壳机对rada样本脱壳的过程:一开始直接用strings查看加壳文件全是乱码,但用脱壳机处理完后再次运行strings,一下子就看到了“Authors: Raul Siles & David Perez”等可读信息,那一刻真切体会到了“脱壳”在恶意代码分析中的关键作用,非常有成就感。

posted @ 2026-05-20 16:33  yuzzz11111  阅读(15)  评论(0)    收藏  举报