20232328 2025-2026-1《网络与系统攻防技术》实验四实验报告

1.实验内容

  • 1.1对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取
  • 1.2使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息
  • 1.3分析一个自制恶意代码样本rada
  • 1.4取证分析实践

2.实验目的
掌握恶意代码分析技术

3.实验过程
3.1恶意代码文件类型标识、脱壳与字符串提取
首先在学习通平台下载RaDa.exe文件,提取码为rada,下载完成后记得关闭防火墙,否则下载完成后会被杀毒软件删除,或者无法从windows传输到Linux。

屏幕截图 2025-11-03 155227

然后在kali虚拟机中使用file RaDa.exe命令来查看RaDa.exe的类型特征:

屏幕截图 2025-11-03 155518
得到结果:PE32 executable for MS Windows 4.00 (GUI), Intel i386, 3 sections
说明RaDa.exe是一个 带有图形化界面的PE32 可执行文件,运行平台在Intel x86架构的32位Windows系统上。
在学习通下载PEID后,在windows主机上运行PEID.exe,文件选择RaDa.exe

屏幕截图 2025-11-03 155741
得出RaDa.exe被UPX 加压缩壳,压缩壳的作者是Markus&Laszlo
在学习通下载脱壳解压后,使用超级巡警之虚拟机自动脱壳机 V1.3软件对RaDa.exe进行脱壳处理,结果如下:

屏幕截图 2025-11-03 160140

得到RaDa_unpacked.exe
然后使用IDA Pro软件对脱壳后的程序进行逆向分析。打开IDA Pro,选择PE Executable,选择RaDa_unpacked.exe进行分析,如图所示:

屏幕截图 2025-11-03 160951
得到RaDa的编写作者为Raul Siles &&David Perez

屏幕截图 2025-11-03 161100
得到编写日期为2004年9月

3.2使用IDA Pro静态或动态分析要求的两个恶意软件
通过IDA打开crackme1.exe后,选择View->Graphs->Function calls查看函数调用图,然后选择sub_401280函数。
屏幕截图 2025-11-04 091707

屏幕截图 2025-11-04 091745
然后分析该函数调用图,画出流程图如下:

屏幕截图 2025-11-04 081742
然后对流程图进行验证,验证如下:

屏幕截图 2025-11-03 161623

  • 如果只输入一个参数,但这个参数不是 "I know the secret" 输出Pardon? What did you say?
  • 如果输入的参数数量不为1,输出I think you are missing something.
    屏幕截图 2025-11-03 162245
  • 如果只输入一个参数且是 "I know the secret",输出 You know how to speak to programs, Mr. Reverse-Enginee

同理,对crackme2.exe进行静态分析

屏幕截图 2025-11-03 161831
分析该函数调用图,画出流程图:

屏幕截图 2025-11-04 082441
然后对流程图进行验证,验证如下:

屏幕截图 2025-11-03 163908

  • 验证结果符合流程图

3.3恶意代码样本rada并撰写报告
输入以下指令:

file RaDa.exe 
md5sum RaDa.exe   
exiftool RaDa.exe | grep "Time Stamp"  

3.3.1分析rada基本信息
分析RaDa文件的基本信息如下:

屏幕截图 2025-11-03 164343

  • RaDa.exe 是 PE32 格式的 Windows 可执行文件
  • 哈希值为 caa0b958a43225a0b3add54f4a40d4c7
  • 编译于2004-10-30 07:59:58

3.3.2分析rada目的
使用IDA Pro分析脱壳后的RaDa文件,选择函数sub_404FB0作为被分析的函数

屏幕截图 2025-11-04 102044
命令将地址http://10.10.10.10/RaDa加载到edx寄存器中,是恶意软件中常见的 “C&C 配置” 环节,所以很可能是一个恶意的服务器

屏幕截图 2025-11-04 102406

  • RaDa_commands.html是用于拉取控制命令的网页文件,程序会通过该页面获取指令。
  • cgi-bin是存放脚本的通用目录
  • download.cgi是用于下载新指令或恶意模块的脚本
  • upload.cgi是用于更新窃取数据的脚本
  • C:\RaDa\tnp是临时文件存储路径
  • HKLM\Software\Microsoft\Windows\Current...是指向 Windows 系统的注册表路径

所以这个程序很有可能是后门程序。可以进行http请求,使攻击者远程连接被控主机并进行一些指令操作。

3.3.3识别并说明这个二进制文件所具有的不同特性
这个程序将请求连接 http://10.10.10.10/ 网页,获得来自攻击者的指令。会在主机C盘自动创建文件夹,修改注册表,添加自启动项。

3.3.4识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
使用UPX进行加壳处理

3.3.5对这个恶意代码样本进行分类,并给出你的理由;
由于该恶意代码没有传播性、伪装性、欺骗性,没有隐藏恶意目标,所以不是病毒,木马,蠕虫。此程序可以获得控制权限,比如开机自启动,文件操作等权限,所以是后门程序。

3.3.6给出过去已有的具有相似功能的其他工具
msfvenom

3.3.7可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以,作者是Raul Siles&&David Perez。将加壳的文件先脱壳后,使用IDA对函数调用图和函数调用工具进行分析

3.3.8给出至少5种检测该恶意软件的方法,例如基于特征码的方法,需要详细介绍每种方法。

  • 1.基于特征码的检测
    提取样本的 “唯一特征”比如特征字符串、函数调用组合、数据段特征,生成特征码规则,通过杀毒软件的静态或者动态扫描匹配

  • 2.基于行为的检测
    监控程序运行时的行为,比如文件操作、注册表操作、网络通信等,匹配 RAT 的典型行为模式

  • 3.基于系统调用分析的检测
    后门通常会调用敏感系统 API,比如如CreateProcess执行命令、RegSetValue修改注册表、Socket建立网络连接等,通过监控这些 API 的调用序列识别异常

  • 4.基于注册表与启动项的检测
    后门常通过修改注册表或添加计划任务实现持久化,通过扫描这些位置识别异常项

  • 5.基于网络流量分析的检测
    后门与 C&C 服务器通信时会产生特征流量,比如如特定 IP、端口、HTTP 路径等,通过监控网络流量识别异常

3.4取证分析实践

3.4.1IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口
IRC(互联网中继聊天)是1988年诞生的实时聊天协议,通过“服务器-客户端”架构实现多用户群聊/私聊,用户用昵称标识身份,可加入频道交流。客户端加入IRC网络时,需先发送指定昵称和提供用户信息两条消息,昵称可用则收服务器欢迎应答。
IRC常用TCP端口: 6667 进行明文传输, 6697 进行 SSL 加密传输

3.4.2僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络,通常被黑客用来发起大规模的网络攻击

3.4.3蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
通过Wireshark打开在学习通平台下载的botnet_pcap_file.dat文件,对蜜罐主机172.16.134.191的6667端口和6697端口进行筛选,得到:

屏幕截图 2025-11-04 183102

屏幕截图 2025-11-04 183658

屏幕截图 2025-11-04 183740

屏幕截图 2025-11-04 183859
得出蜜罐主机和5个IRC服务器通信,这些服务器IP分别是

  • 209.126.161.29
  • 66.33.65.58
  • 66.241.174.144
  • 217.199.175.10
  • 209.196.44.172

3.4.4在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
在kali上输入以下命令下载tcpflow:

sudo apt update 
sudo apt-get install tcpflow
tcpflow --version

屏幕截图 2025-11-04 185127
开始进行筛选目的ip为209.196.44.172 目的端口6667的主机,输入以下命令:
tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"

屏幕截图 2025-11-04 185400

屏幕截图 2025-11-04 190407

屏幕截图 2025-11-04 190548

生成了

  • 209.196.044.172.06667-172.016.134.191.01152
  • 172.016.134.191.01152-209.196.044.172.06667
  • report.xml

三个文件
输入以下命令:
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
说明有3462个不同的主机访问了以209.196.44.172为服务器的僵尸网络

3.4.5哪些IP地址被用于攻击蜜罐主机?
输入以下命令将IP信息保存在20232328.txt中:
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 > 20232328_test.txt

image
输入more 20232328_test.txt查看

屏幕截图 2025-11-04 191318

3.4.6攻击者尝试攻击了那些安全漏洞?
在Wireshark中打开botnet_pcap_file.dat文件,选择点统计->协议分级

屏幕截图 2025-11-04 191759
得出:
99.7%是TCP传输,0.3%通过UDP传输

然后在kali中输入

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

来分析tcp攻击端口,结果如下:

屏幕截图 2025-11-04 192052

  • 135:用于进程间通信,漏洞有MS08-067远程代码执行、RPC信息泄露
  • 139:实现局域网文件/打印机共享,漏洞有空会话未授权访问、SMBv1协议远程代码执行风险
  • 25:用于邮件服务器间数据传输,漏洞有开放中继、弱口令登录、EXIM等软件远程代码执行
  • 445:Windows文件/打印机共享核心端口,漏洞有永恒之蓝、SMBv1漏洞、弱口令/空口令登录
  • 4899:用于Windows远程控制,漏洞有弱口令暴力破解、旧版本缓冲区溢出
  • 80:提供网页访问服务,漏洞有弱口令、SQLi/XSS/命令注入、敏感文件泄露、服务器软件漏洞

输入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分析UDP攻击的端口,结果如下:

屏幕截图 2025-11-04 192823

  • 137:用于局域网内计算机名与IP的解析,漏洞有未授权信息泄露、早期系统NetBIOS协议缓冲区溢出

3.4.7那些攻击成功了?是如何成功的?
在wireshake打开botnet_pcap_file.dat文件,设置过滤条件分析各端口

  • 135端口:ip.src==172.16.134.191 and tcp.port==135

屏幕截图 2025-11-04 193305
发送[FIN, ACK]包主动断开连接,说明135端口没有成功

  • 139端口:ip.src==172.16.134.191 and tcp.port==139

屏幕截图 2025-11-04 211809
IP 为172.16.134.191的主机向多个目标 IP发起 139 端口连接时,主机主动发送RST包中断连接,说明139端口没有成功

  • 25端口:ip.src==172.16.134.191 and tcp.port==25

屏幕截图 2025-11-04 212010
发送[FIN, ACK]包主动断开连接,不断重复,说明25端口没有成功

  • 445端口:ip.src==172.16.134.191 and tcp.port==445

屏幕截图 2025-11-04 212219
已经被成功攻击,流量中出现DCERPC的Bind_ack响应,以及SRVSVC的NetShareEnumAll调用。出现了NT Create AndX(文件创建)、Write AndX(数据写入)等操作,说明445端口成功

  • 4899端口:ip.src==172.16.134.191 and tcp.port==4899

屏幕截图 2025-11-04 212445

4899端口被成功攻击,流量中出现大量[PSH, ACK]包,说明4899端口成功

  • 80端口:ip.src==172.16.134.191 and tcp.port==80

屏幕截图 2025-11-04 212643
80端口被成功入侵,成功的 HTTP 数据交互,说明80端口成功

  • 137端口:ip.src==172.16.134.191 and udp.port==137

屏幕截图 2025-11-04 212846
对目标网络进行前期的信息侦察,说明137端口没有成功

4.实验遇到的问题及解决
4.1在windows端的学习通下载好文件后,选择文件进行复制在kali中, 会出现报错

屏幕截图 2025-11-03 155227
解决方案:
一开始把电脑的防火墙和电脑管家之类的杀毒软甲关闭后,可以传输exe类型的文件,但后面的wireshark抓包就传输不过来,于是在虚拟机上登录学习通进行抓包结果的下载

5.实验感悟及总结
这次实验加深了我对恶意代码的理解,也学习到了简单的恶意代码分析技术,比如文件类型识别,脱壳与字符串提取等,掌握了如何静态分析exe文件,如何对wireshark抓的包进行简单的分析。

posted @ 2025-11-04 09:40  马泽逸  阅读(7)  评论(0)    收藏  举报