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

1.实验内容

一、对Rada恶意代码进行基础分析;
二、对两个Crackme程序逆向破解;
三、对Rada恶意代码进行深度分析;
四、对取证流量包进行分析实践。

2.实验过程

1.恶意代码文件类型标识、脱壳与字符串提取,对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。

(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具。

首先使用file指令查看文件类型,可以看见是一个PE32格式的可执行文件。
image
接下来使用PEiD工具查看RaDa.exe的基本信息,可以看到文件的入口点、偏移、文件类型、EP短、汇编程序以及加壳类型为upx。
image
再使用strings命令查看RaDa.exe中可打印字符串,由于加壳结果是一团乱码。
image

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

可以看见超级巡警脱壳机支持该upx脱壳,省去了人工脱壳的麻烦。
image
image

(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析。

脱壳成功后再次使用strings命令查看,现在可以看见正常的字符串。
image
查看分析可知rada恶意代码的编写作者为Raul Siles与David Perez。
image

2.使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。

(1)查看crackme的文件类型,进行初步破解。

使用file命令查看crackme文件类型,可以看见都是32位windows下PE文件。
image
尝试运行程序,发现crackme1.exe和crackme2.exe都是在输入一个参数下,有不同反映,可以初步认为crackme1.exe和crackme2.exe需要参数数量为1。
image
image

(2)用IDA pro工具破解crackme1.exe文件,进行破解。

查看字符串,发现“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer\n”两个未见字符串,初步猜测“You know how to speak to programs, Mr. Reverse-Engineer\n”为正确输出信息。
image
查找“I know the secret”的调用,根据函数调用,猜测对“I know the secret”进行了比较,正确则输出正确输出信息,即“I know the secret”为密码。
image
验证猜想,符合预期,破解成功。
image

(3)用IDA pro工具破解crackme2.exe文件,进行破解。

crackme2.exe结构与crackme1.exe相似,查看main函数调用,发现进行了两次比较,第一次对“crackmeplease.exe”,第二次对“I know the secret”。
image
具体查看main函数,寻找比较的具体对象。可以发现比较的具体对象为argc参数,并且是2个。推测“crackmeplease.exe”作为文件名被比较,“I know the secret”作为密码被比较。
image
将crackme2.exe复制一份名为crackmeplease.exe的副本,验证猜想,符合预期,破解成功。
image

3.分析自制恶意代码样本rada。

(1)计算对这个二进制文件的摘要,以及帮助识别同一样本的基本信息。

计算哈希值。
image
查看文件类型和头信息。
image

(2)找出这个二进制文件的目的。

查看函数调用图发现函数sub_404FB0,sub_4045D0,sub_404A20都调用了大量函数。
image
image
逐一排查,在函数sub_404FB0中发现可疑代码,具体分析后发现这段代码将定期连接C&C服务器http://10.10.10.10/RaDa,并进行文件窃取与上传,持久化驻留与本地文件操作,即为此恶意文件的目的
image

(3)识别这个二进制文件所具有的不同特性。

它的特性包括定期连接C&C服务器,并进行文件窃取与上传,持久化驻留与本地文件操作。

(4)识别这个二进制文件中所采用的防止被分析或逆向工程的技术。

其采用了UPX加壳技术。

(5)对这个恶意代码样本进行分类。

该恶意代码样本无自我复制或主动传播的能力,主要行为是在攻击主机上建立一个远程访问通道,应当属于后门程序。

(6)给出过去已有的具有相似功能的其他工具。

后门程序有灰鸽子,相关工具有Metasploit Meterpreter。

(7)调查出这个二进制文件的开发作者。

在第一部分实验中已完成破解,作者为Raul Siles与David Perez,调查开发作者需要其主动留下相关信息。

(8)给出至少5种检测该恶意软件的方法。

  1. 基于特征码的检测,通过比对已知恶意软件的独特标识(特征码)来识别威胁。
  2. 启发式分析,通过分析程序的行为特征和代码模式来识别潜在的恶意行为。
  3. 行为分析,在隔离环境中执行程序并监控其实际行为。
  4. 机器学习检测,使用机器学习算法从大量样本中学习恶意软件的特征模式。
  5. 内存分析检测,通过分析运行时的内存状态来检测隐藏的恶意代码。

4.取证分析实践。

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

IRC是一种实时文本通信协议。在僵尸网络中,常被用作攻击者与僵尸主机之间的命令与控制信道。当IRC客户端申请加入一个IRC网络时将发送加入消息:USER和NICK命令,用于注册用户名和昵称。之后使用JOIN命令加入特定频道。常用端口有6667(传统端口),6660-6669,7000,6697(常为SSL加密的IRC)。

(2)回答僵尸网络是什么?僵尸网络通常用于什么?

僵尸网络:由攻击者通过恶意软件控制的、大量受害主机组成的网络。这些主机被称为“僵尸”。
常用用途:

  1. 分布式拒绝服务攻击。
  2. 发送垃圾邮件。
  3. 窃取敏感信息。
  4. 点击欺诈。
  5. 挖矿。

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

采取过滤器ip.addr == 172.16.134.191 and tcp.port == 6667 and irc对流量进行过滤,可以看出蜜罐主机同63.241.174.144、66.33.65.58、217.199.175.10、209.126.161.29四个IRC服务器进行了通信。
image

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

在kali虚拟机中通过tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"筛选出与IP为209.196.44.172且端口为6667的主机相关的所有TCP流量数据。
image
由于僵尸主机会主动去连接服务器。因此,此处需要查找源IP为209.196.44.172的流量,通过命令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个不同的主机访问了以209.196.44.172为服务器的僵尸网络。
image

(5)找出哪些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 > 20232411.txt;wc -l 20232411.txt从流量中分离出来所有向主机172.16.134.191发送数据包的源IP地址,并统计它们的具体数值。
image
具体ip统计如下图,共165个。
image

(6)找出攻击者尝试攻击了那些安全漏洞。

使用Wireshark分析流量中协议分布,发现主要协议为TCP,还有少量UDP。
image
使用命令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端口,使用命令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端口。
image
image
可以看到TCP连接的端口有:

  • 135(用于Windows系统中进程间的远程通信)
  • 139(早期Windows文件和打印机共享的主要端口)
  • 25(用于邮件服务器之间发送电子邮件)
  • 445(用于Windows文件共享、打印机共享)
  • 4899(用于远程维护设备)
  • 80(网页浏览的默认端口)
    UDP连接的端口有:
  • 137(帮助设备在局域网中找到目标主机)

(7)找出哪些攻击成功了?是如何成功的?

  1. 135端口
    image
    135端口只有三次握手协议,且很快断开,没有后续包。攻击未成功。
  2. 139端口
    image
    通过139端口,攻击者试图访问共享目录\PC0191\c,但被服务器拒绝。未进行攻击。
  3. 25端口
    image
    25端口同样具有三次握手协议包,无后续恶意包,且很快断开。攻击未成功。
  4. 445端口
    image
    攻击者通过445端口试图访问共享目录\172.16.134.191\IPC$,访问成功,并出现了大量文件读写操作,可以判断攻击成功。
  5. 4899端口
    image
    4899端口流量中有大量[PSH, ACK]包,这是远程控制工具传输指令或数据的典型特征,说明攻击者已通过 4899 端口建立控制信道,且攻击者通过4899端口实施了系统命令,可以判断攻击成功。
  6. 80端口
    image
    攻击者在80端口建立连接后,发送了大量包含c字符的流量包,进行缓冲区溢出,可以看见流量包被正常接收,攻击成功。
  7. 137端口
    image
    137端口的流量包都处于正常范围内。未进行攻击。

3.问题及解决方案

  • 问题1:使用powershell破解crackme2.exe时失败
  • 问题1解决方案:crackme2.exe破解需从命令行验证文件名信息,powershell执行命令需要使用“./”导致验证失败,使用cmd破解即可解决。
    image

4.学习感悟、思考

通过本次恶意代码分析与逆向破解实验,我不仅掌握了多种逆向工程与网络取证工具的实操技巧,更对网络安全领域的技术逻辑与防护理念有了深层次的认知,收获颇丰且感悟良多。此次实验也让我意识到网络安全领域“攻防对抗”的本质。攻击者会通过加壳、隐蔽通信等手段躲避检测,而防御者则需要不断提升分析能力、掌握多样化工具,才能实现“魔高一尺,道高一丈”。未来,我将继续深入学习逆向工程、恶意代码分析、网络取证等核心技术,不仅要熟练掌握工具的使用,更要理解技术背后的原理逻辑;同时,会更加关注网络安全领域的最新动态,了解新型恶意代码与攻击手段,不断提升自身的技术储备与应急响应能力。我深刻认识到,网络安全是一场持久战,只有持续学习、不断精进,才能为保障网络空间的安全稳定贡献自己的力量。

posted @ 2025-11-10 10:42  20232411董琰祥  阅读(5)  评论(0)    收藏  举报