20241917 2024-2025-2 《网络攻防实践》实践八报告
1.实验内容
动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
分析实践任务二:
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、那些攻击成功了?是如何成功的?
2.知识点梳理与总结
PEID
PEiD(Portable Executable iDentify)是Windows平台下广泛使用的可执行文件分析工具,主要用于检测PE格式文件(如.exe、.dll等)的加壳类型和保护机制。该工具最初由Fare开发,后经WestKing_HA等开发者完善,已成为安全研究和软件保护领域的基础工具。该工具体积小巧,界面简洁,支持插件扩展。
IDA Pro
IDA Pro(交互式反汇编专业版)是Hex-Rays公司开发的旗舰级逆向工程工具,被公认为恶意代码分析和漏洞研究领域的行业标准。它支持多种处理器架构和文件格式,能将二进制程序还原为可读的汇编代码。IDA Pro 提供静态分析功能,并通过图形化界面展示函数流程图,便于分析程序逻辑。它还支持插件扩展、脚本自动化,常与调试器结合使用,是逆向分析领域的专业级工具。
超级巡警拖壳器
超级巡警拖壳器是一款用于Windows平台的脱壳辅助工具,主要用于对加壳或加密的可执行文件进行动态脱壳处理。用户只需将目标文件拖入工具界面,它会自动运行程序并尝试在解密代码还原到内存中时进行截取,从而获取脱壳后的原始代码或导出内存镜像。该工具适用于新手进行简单壳的脱壳尝试,配合调试器使用效果更佳,但对于复杂的壳或反调试机制仍需结合人工分析。
3实践过程
3.1动手实践任务一
任务:对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者。
3.1.1使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
实验环境:WinXPattacker
实验材料:由老师提供在学习通的压缩文件,解压后获得rada
第一步查看文件类型,通过命令cd+位置找到对应文件

键入命令file Rada.exe查看文件类型,查看该文件类型,是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。其中 PE32 表示这是一个32位的运行在windows操作系统上的程序, GUI 表示这个程序是一个有图形界面的程序, intel 80386 表示处理器架构。

通过命令cat Rada.exe可以看到显示文件内容

可以看到其内容为乱码查看相关的资料发现,其可能是加壳了。使用PEiD对该文件查壳。下面为PEiD的位置

打开后选择Rada的路径,可以看到Rada.exe加了UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo壳。

3.1.2使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理。
既然有壳,就要去壳,在windows开始界面找到,超级巡警脱壳机脱壳软件

打开软件后选择路径,即可脱壳,并且其脱壳的输出路径与Rada.exe在同一目录.。


3.1.3对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
通过命令提示符对脱壳后的文件进行查看,输入strings RaDa_unpacked.exe如下


使用IDA PRO Free 工具。将脱壳后的文件直接拖入分析,可以成功找到作者信息和发布时间,还有邮箱等。

3.2动手实践任务二
实验环境:WinXPattacker
实验材料:由老师提供在学习通的crackme1.exe、crackme2.exe
实验工具:IDA Pro
实验目的:寻找特定的输入,使其能够输出成功信息。
3.2.1分析crackme1.exe
对其输入参数进行试探,分别输入1个、2个、3个参数…,直到出现重复的回复。可以看到只有在输入一个参数的时候它的回复和其他的不一致,所以猜测输入应该为一个参数。

按照实验给的提示,我们使用IDA Pro工具,进行分析。


找到代码中输出 ”I know the secret“的地方右键点击Edit function

可以发现是sub_401280中的输出。

查看这个exe执行程序他的调用函数图



从函数调用图中可以看到sub_401280函数调用的strcmp比较函数,fprintf、printf输出函数,以及sub_401510和sub_401840函数,首先查看sub_401280函数的汇编源码易知道其汇编码就是401280,如图所示。

查看sub_401280函数的流程图


比较该参数是否是”I know the secret”,是的话,输出You know how to speak to programs, Mr. ...;否则,输出Pardon? What did you say?;
如果命令行输入参数个数不为2,则输出I think you are missing something.
验证上述猜测

3.2.2分析crackme2.exe
和上一步类似,我们先对crackme2.exe输入的参数个数进行测试,可以看到仍然是输入一个参数的时候,和输入其他数量的参数时不一致,因此还是猜测输入的参数是1个。

与上一步类似依旧使用IDA Pro工具分析可以发现Strings窗口发现五个字符串,其中 I think you are missing something.和I have an identity problem.在进行参数猜测时出现过

查看i know the secret的来源可以发现,还是在函数sub_401280中。

和之前一样,查看sub_401280的汇编值,可以发现仍为401280。

查看sub_401280函数的流程图

验证猜想

3.3分析实践任务一:分析一个自制恶意代码样本rada
通过学习md5sum命令用于生成和校验文件的md5值,是一种逐位校验文件内容的算法。故这里使用md5sum命令查看Rada.exe文件摘要

运行RaDa.exe,使用监视工具 process explorer 和 wireshark 开启监听,分析该恶意代码的目的IDA 对RaDa_unpacked.exe进行分析

在Strings 对话框,在菜单栏中的Edit中点击Setup,设置类型为 Unicode:

查看Strings信息参数:可以看到作者和日期信息

分析其程序运行详细信息:

这个恶意程序采用了HTTP协议去连入IP地址为10.10.10.10的服务器上托管的RaDa网页。在受害的计算机上,它创建了一个目录路径C:\RaDa\tmp用来存放从服务器下载的文件。
该恶意程序还执行了分布式拒绝服务(DDoS)攻击,并且将RaDa.exe文件复制到了C:\RaDa\bin目录下,以便于可能的进一步操作或攻击活动。发现该恶意程序对主机注册表进行了读写和删除操作。
该程序还进行了DDos攻击,对注册表进行读写删除等操作;同时该程序还在主机进行了下载、上传、截图、休眠等操作。
答案总结:
1.提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息:
摘要为caaa6985a43225a0b3add54f44a0d4c7; 使用了UPX加壳工具进行了加壳处理,加壳方式: UPX
0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
2.找出并解释这个二进制文件的目的:
这个二进制文件通过网络获取指令,连接互联网时,该恶意程序就会通过http请求连接到指定主机,进行接受攻击者指令操作,并且攻击者可以完全控制该系统,所以这应该是一个后门程序。
3.识别并说明这个二进制文件所具有的不同特性:
该程序启动之后将自己复制到c盘之中,并且每过一段时间就会尝试与10.10.10.10建立tcp连接
4.识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术:
UPX加壳; 通过查看网卡的 MAC 地址以及查看 VMware Tools 的注册表项 来判断操作系统是否运行在 VMware 虚拟机上,如果是,则使用–authors参数时将不会输出作者信息;
一些干扰字符串Starting DDoS Smurf remote attack,让分析者误认为是程序执行 DDoS 攻击,实际上并没有。
5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由:
这个样本不具有传播和感染属性,所以不是病毒或者蠕虫; 没有将自己伪装成有用的程序以欺骗用户运行,所以他也不属于木马; 所以应该是一个后门程序,如果是多对一控制,还可能是 HTTP
Bot(僵尸程序)
6.给出过去已有的具有相似功能的其他工具:
Bobax——2004也是使用HTTP协议从指定的服务器下载命令文件,然后解析并执行其中的指令
7.可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
作者为Raul siles 和 David Perze。使用ida或strings能查看,或者在非vmware环境下执行–authors参数。
3.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台主机访问了以209.196.44.172为服务器的僵尸网络。
问题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包,无攻击操作

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


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


三、学习中遇到的问题及解决
问题1:在问题4中,在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络,查看访问主机为0
问题1解决方案:需要注意先要cd到桌面文件系统。
四、实践总结
本次实验内容较多,但同时收获也非常丰厚,亲自动手进行了恶意代码文件类型的识别、去壳操作。同时,也对一些恶意软件样本进行了深入分析。通过本次实验学习了更多的新工具的使用,增强了自己在这方面的能力与兴趣。
浙公网安备 33010602011771号