20241916 2024-2025-2《网络攻防实践》实验八

一、实践内容
1.动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

2.动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。

3.分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
(2)找出并解释这个二进制文件的目的;
(3)识别并说明这个二进制文件所具有的不同特性;
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
(6)给出过去已有的具有相似功能的其他工具;
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

4.分析实践任务二:
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)那些攻击成功了?是如何成功的?

二、实践过程
1.动手实践任务一
(1)将学习通下载的RaDa.exe文件移动至虚拟机中(问题1),输入cmd,在窗口中可查看到RaDa.exe是一个适用于32位Windows操作系统的PE32可执行程序,设计用于具有图形用户界面的Intel 80386兼容处理器。

(2)输入命令strings RaDa.exe查看字符串,发现存在乱码现象,大概率是加壳导致。

(3)打开PEid对恶意代码查壳,观察到看到文件的入口点为0000FD20、文件偏移为00004120、EP段为JDR1,加壳类型为UPX壳。

(4)使用超级巡警虚拟机脱壳器对恶意代码脱壳,获得RaDa_unpacked.exe:

(5)在cmd窗口中打开RaDa_unpacked.exe,可查看到正确信息

(6)打开IDA Pro Free,选择脱壳后的文件rada_unpacked.exe,可查看到详细信息,可查看到作者为"Raul Siles & David Perez

2.动手实践任务二
(1)查看crackme1.exe和crackme2.exe的文件类型,发现这两个文件都是32位windows下PE文件。

(2) 为了验证两个文件的完整性,计算他们 md5 值。

(3)打开IDA对crackme1.exe进行分析,在strings中可见上述的返回信息:

(4)选择view->graphs->function calls,打开函数调用架构图,注意到了一个关键函数sub_401280,在sub_401280中,程序使用strcmp函数来比较输入的参数。strcmp是标准的字符串比较函数,这表明程序可能在此检查用户输入的口令是否与预设的口令匹配。随后,根据比较的结果,程序利用print和fprint函数输出相应的信息给用户。
这样的分析结果支持了之前的推测,即"I know the secret"很可能是正确的口令,而"You know how to speak to programs, Mr. Reverse-Engineer"则是输入正确口令后程序给出的反馈。

(5)在functions中打开sub_401280查看其代码:

(6)猜测正确的口令应该是"I know the secret",输入命令运行改口令,可以得到这样一条回复"You know how to speak to programs,Mr.Reverse-Engineer"。

(7)在运行窗口中输入“I know the secret”,猜想正确

(8)分析crackme2与分析crackme1过程类似;打开Function call函数调用图,观察到关键的部分在sub_401280这里。

(9)sub_401280内容与上一个文件基本一致,大致可以判断出关键口令为I know the secret,只是从下图可以看到,代码逻辑中的程序名称改变了,变成了:crackmelpease.exe。因此需要对程序名称进行修改。

(10)输入指令后得到正确结果

3.分析实践任务一:
(1)输入命令md5sum RaDa.exe获取其md5值caaa6985a43225a0b3add54f44a0d4c7。接着,通过运行file RaDa.exe命令,确定该文件是一个针对32位操作系统带有图形用户界面(GUI)的可执行文件。

(2)启动破壳后的恶意软件RADA_unpacked并用process explorer软件进行监测。

(3)双击此程序,观察其执行的字符串信息:这个恶意程序采用了HTTP协议去连入IP地址为10.10.10.10的服务器上托管的RaDa网页。在受害的计算机上,它创建了一个目录路径C:\RaDa\tmp用来存放从服务器下载的文件。此外,该恶意程序还执行了分布式拒绝服务(DDoS)攻击,并且将RaDa.exe文件复制到了C:\RaDa\bin目录下,以便于可能的进一步操作或攻击活动。发现该恶意程序对主机注册表进行了读写和删除操作。其次,该程序还进行了DDos攻击,对注册表进行读写删除等操作;同时该程序还在主机进行了下载、上传、截图、休眠等操作。


(4)
①提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
答:
②找出并解释这个二进制文件的目的;
答:见步骤(3)
③识别并说明这个二进制文件所具有的不同特性;
答:对该二进制文件的分析揭示了其具有自我复制到C盘、创建后门、修改注册表以实现自启动以及发起DDoS攻击的特性。
④识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
答:该二进制文件采用了UPX加壳技术来防止被分析或逆向工程,这种技术通过混淆和加密程序的机器指令来增加分析的难度。
⑤对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
答:根据该样本的行为特征,它更类似于一个后门程序,因为它没有显示出病毒或蠕虫的传播和自我复制特性,而是通过加壳绕过安全防护并阻止反汇编分析。
⑥给出过去已有的具有相似功能的其他工具;
答:与该恶意代码样本具有相似功能的其他工具包括Bobax,它也使用HTTP协议从指定服务器下载命令文件并执行其中的指令。
⑦可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
答:可以通过在命令行中执行Rada.exe --authors命令来调查该二进制文件的开发作者。

4.分析实践任务二:
问题1:IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
答:IRC是因特网中继聊天(Internet Relay Chat)的简称,它允许客户端通过因特网连接到IRC服务器上进行交流。当一个IRC客户端申请加入一个IRC网络时,它会先进行注册,并发送USER、PASS和NICK消息。注册完成后,客户端会使用JOIN信息来加入频道。IRC通常使用TCP端口6667进行明文传输,也会使用6660-6669端口。如果使用SSL加密传输,则会在6697端口监听。

问题2:僵尸网络是什么?僵尸网络通常用于什么?
答:僵尸网络是由攻击者控制的一群计算机组成的网络,这些计算机被用来执行恶意活动,如分布式拒绝服务攻击(DDoS)和发送垃圾邮件。黑客可以通过控制这些计算机来获取存储在其上的信息。

问题3:蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
(1)在kali中使用wireshark打开学习通下载的botnet_pcap_file.dat文件,并通过ip.src == 172.16.134.191 && tcp.port == 6667(由问题一得知端口号)筛选数据包:

答:蜜罐主机与209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10和209.196.44.172IRC服务器进行了通信。

问题4:在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
(1)安装tcpfollow

(2)输入tcpflow -r Desktop/botnet_pcap_file.dat "host 209.196.44.172 and port 6667"去tcpflow分流筛选指定host与端口6667产生了三个文件,分别是:209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06,667、report.xml

(3)输入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
得到结果一共有3461台主机访问了僵尸网络。

答:一共有3461台主机访问了僵尸网络。

问题5:哪些IP地址被用于攻击蜜罐主机?
(1)蜜罐主机作为诱导主机,进入其流量一般都应当是攻击行为,因此使用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 | more > ip.txt;wc -l ip.txt,通过snort获取所有可能链接的主机ip地址写入ip.txt,执行命令统计。共有165台主机,可打开ip.txt查看具体内容。

问题6:攻击者尝试攻击了哪些安全漏洞
(1)输入命令 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端口。

可以看到,筛出的TCP端口有:
5、135(rpc)、139(netbios-ssn)、25(smtp)、445(smb)、4899(radmin)、80(http),
(2)将命令协议部分更改为udp,查询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
可以看到,udp端口能查到5,137(netbios-ns),137端口是NetBIOS查点。

问题7:那些攻击成功了?是如何成功的?
使用wireshark,逐一对筛选出的tcp端口进行排查。
(1)135端口,为tcp协议过程,无实际数据交互,猜测是在探测

(2)25端口:和135端口类似,只进行了TCP连接,并没有数据的交互

(3)139端口,出现SMB协议,没有攻击操作

(4)4899端口,还是TCP连接,无攻击操作

(5)137端口 ,有NBNS包,无攻击操作

4.12
(6)80端口,可以看到有大量TCP连接,猜测是缓冲区溢出攻击,还发现了蠕虫文件


(7)445端口,发现名为PSEXESVC.EXE的二进制文件,这个文件被识别为Dv1dr32蠕虫的一部分,这是一种恶意软件,它通过IRC(Internet Relay Chat)网络进行通信和传播。

且发现已经成功获取管理员权限

三、学习中遇到的问题及解决

  • 问题1:无法将学习通文件导入虚拟机
  • 问题1解决方案:在朱天宇同学的帮助下,更新vmware tools与iso文件,成功导入

四、实践总结
在这次的实验中,亲自动手进行了恶意代码文件类型的识别、去壳操作。此外,还实践了对Crackme程序的分析,探究了它的启动机制和内部信息。同时,也对一些恶意软件样本进行了深入分析,了解了数字取证分析的更多细节。通过这些实践活动,学习了新软件的使用方法,强化了对抓包数据的分析能力。

posted @ 2025-04-22 12:34  渡雪  阅读(8)  评论(0)    收藏  举报