20242942 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.实践过程
动手实践任务一
在学习通里下载老师给的rada压缩包放在WinXP中,输人命令
file RaDa.exe查看rada.exe的文件格式,该文件有GUI界面,为32为的可执行文件,架构为Intel 80386:![img]()
输入命令
strings RaDa.exe查该文件的看字符串,发现输出的内容为乱码,是加了壳:![img]()
输入命令
RaDa.exe --authors获得作者等相关信息信息![img]()
打开WinXP自带的PEiD对恶意代码查壳为UPX 0.89.6
![img]()
打开WinXP的超级巡警虚拟机脱壳器对恶意代码脱壳,获得RaDa_unpacked.exe
![img]()
再次在命令行中查看字符串,根据输出获得正确的信息
![img]()
将上上一步骤生成脱壳的RaDa_unpacked.exe拖入PEiD,可见其编写语言为VB 5.0/6.0:
![img]()
打开WInXP中的IDA,对恶意代码进行分析,在Strings窗口中可见其作者信息,与上述一致,为"Raul Siles & David Perez"
![img]()
![img]()
动手实践任务二
在命令行中运行学习通中的crackme1.exe,输入file crackme1.exe查看其文件格式
![img]()
打开IDA对crackme1.exe进行分析,在strings中可见上述的返回信息:
![img]()
在IDA里依次选择view->graphs->function calls,可以看到打开函数调用架构图,可见控制输出的关键函数为sub_401280:
![img]()
在functions中打开sub_401280查看它的代码
![img]()
依次选择view->graphs->flow chart查看代码块调用图,结合前述输入尝试,通过比较局部变量arg_0的值和2,可见此程序需要两个参数传入,当输入参数为"I know the secret",获得正确的输出,否则返回不同的错误信息
![img]()
验证一下上述猜想 可见命令行中的验证跟上面的代码块调用图一致
![img]()
同理可得,对于crackme2.exe的分析与上述流程类似,先进行尝试,再利用IDA进行分析,得到关键函数sub_401280,查看其代码块调用,获得正确的输入参数"I know the secret"
![img]()
![img]()
![img]()
![img]()
这里要注意,对于上面的代码块调用图,我们可以看到对第一个参数也有指定字符串"crackmeplease.exe",故而要把将crackme2.exe重命名成为为crackmeplease.exe,之后在命令行输入信息,可见得到正确返回信息与上述代码块调用图保持一致
![img]()
分析实践任务一
问题1:在命令行输入命令
md5sum RaDa.exe获取其md5值如下![img]()
打开WinXP中的Process Explorer后,再打开脱壳后的RaDa_unpacked.exe程序如下
![img]()
观察其执行的字符串信息,如最右边所示
![img]()
问题2:从上述信息可以看出,该程序访问了一个特定的URL(http://10.10.10.10/RaDa),并请求了
RaDa_commands.html页面。推测该页面可能包含用于执行命令的脚本,并且程序执行了文件上传和下载操作。此外,它还创建了C:\RaDa\bin和C:\RaDa\tmp两个路径,并将RaDa.exe文件传入系统。程序还发动了DDoS Smurf攻击,对注册表进行了写入、读取和删除操作,并扫描了内网网段(如192.168.x.x、172.16.x.x、10.x.x.x等)。由此可见,该二进制文件通过与外部服务器连接,下载后门程序并将其放置在系统盘中实现开机自启动,对内网网段进行扫描,执行DDoS攻击,并通过修改注册表来删除自身痕迹。问题3:该二进制文件具备以下功能:能够修改注册表,将自身复制到系统盘以实现自启动,对内网网段进行扫描,以及发动DDoS攻击。
问题4:在动手实践一中,发现该程序使用了UPX壳进行打包,以增加逆向分析的难度。
问题5:该程序通过修改注册表、复制到系统盘等手段实现自启动,能够对内网进行扫描,通过连接服务器下载后门程序,读取系统信息等。它具备木马的典型特征,但不具备大量复制和传播感染的能力,因此可以判断该样本属于木马(后门程序)类。
问题6:Webshell管理工具包括:中国菜刀(Chopper)、中国蚁剑(AntSword)、冰蝎(Behinder)、哥斯拉(Godzilla)等。 远程控制类工具包括:灰鸽子、黑防灰鸽子等。
问题7:在动手实践一中,通过多种方式(如执行命令
RaDa.exe --authors、使用IDA分析字符串、借助Process Explorer监听字符串)获取到该程序的作者信息为“Raul Siles & David Perez”。分析实践任务二
问题1:IRC(因特网中继聊天)是一种基于客户端-服务器架构的即时通讯协议,主要用于互联网上的实时文本交流。它由芬兰人Jarkko Oikarinen在1988年首次开发。IRC服务器可以相互连接,形成一个更广泛的IRC网络,用户通过连接到某个服务器,就能访问该服务器及其连接的其他服务器上的频道。这些频道类似于聊天室,名称通常以“#”开头。 当客户端尝试加入IRC网络时,通常会发送以下几种消息:
PASS:如果需要,客户端会发送服务器密码以完成连接。
NICK:客户端请求在IRC网络中使用的昵称。
USER:客户端发送用户信息,包括用户名、主机名、服务器名和真实姓名等。
JOIN:客户端通过该命令加入特定频道,以便与其他用户交流。 IRC通常使用的TCP端口包括:
6667:这是最常用的端口,用于非加密通信。
6697:用于SSL/TLS加密的IRC连接。
问题2:僵尸网络(Botnet)是指黑客通过恶意软件感染大量计算机后,形成的一个可以集中控制的网络。这些被感染的计算机被称为“僵尸主机”,黑客可以通过特定的控制协议远程操控这些主机,执行各种恶意活动。 僵尸网络通常被用于以下几种恶意行为:
分布式拒绝服务攻击:利用大量僵尸主机向目标系统发送海量请求,导致目标系统瘫痪。
发送垃圾邮件:通过僵尸主机发送大量垃圾邮件,用于传播恶意软件或进行欺诈活动。
加密货币挖矿:利用僵尸主机的计算能力进行加密货币挖矿。
窃取敏感信息:通过键盘记录器等手段窃取用户的密码、信用卡信息等敏感数据。
在kali中使用wireshark打开学习通已给出的botnet_pcap_file.dat,并通过
ip.src == 172.16.134.191 && tcp.port == 6667和ip.src == 172.16.134.191 && tcp.port == 6697筛选数据包:![img]()
![img]()
问题3:根据上图,可见蜜罐主机与209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10和209.196.44.172IRC服务器进行了通信。
输入命令
apt-get install tcpflow安装tcpflow:![img]()
输入命令
tcpflow -r Desktop/botnet_pcap_file.dat "host 209.196.44.172 and port 6667",得到三个文件如下图所示![img]()
问题4:输入命令
at 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以计算有多少不同的主机访问了以209.196.44.172为服务器的僵尸网络,可见共有3461个![img]()
问题5:输入命令
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 >connect_host_ip.txt;wc -l connect_host_ip.txt分析哪些IP被用于攻击蜜罐主机,可见共有165台主机,详细地址输出到connect_host_ip.txt文件中:![img]()
输入命令
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和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,可见tcp开放端口为135、139、25、445、4899和80,udp开放端口137![img]()
打开wireshark,分别
tcp.port ==对上述端口进行筛选,135端口,只有tcp三次握手的数据包,无攻击行为![794d28dfafc079243c06c4476880c4e0]()
25端口,只有tcp三次握手的数据包,无攻击行为
![img]()
139端口,有TCP、SMB和NBSS类型的数据包,未发现攻击行为
![img]()
4899端口,只有tcp三次握手的数据包,无攻击行为
![img]()
udp端口137,只有NBNS包,负责在基于NetBIOS名称访问的网络上提供主机名和地址映射服务,未发现攻击行为
![img]()
在80端口
![img]()
![img]()
分析发现大量数据包有无效填充内容发送至靶机,且靶机发送大量的tcp错误传输反馈包,如TCP dup ack(重复应答)、TCP Out-Of-Order(报文乱序)等,故攻击者发起了缓冲区溢出攻击,在后续数据包中,发现有蠕虫文件
在445端口
![img]()
![img]()
在SMB协议数据包中发现PSEXESVC.EXE文件,此文件是一种通过IRC进行通信的Dv1dr32蠕虫
![img]()
可见攻击者成功拿到ADMIN和Administrator权限,此计算机被攻破。
问题6:针对80端口,攻击者尝试了缓冲区溢出攻击和蠕虫攻击;针对445端口,攻击者利用Dv1dr32蠕虫病毒进行攻击
问题7:针对445端口利用Dv1dr32蠕虫病毒进行的攻击取得了成功,获得了系统的管理员权限
3.学习中遇到的问题及解决
问题1:学习通的文件导入虚拟机WinXP里
解决方案:安装一下vmware tools,具体操作链接【把文件传入VMware虚拟机中,三种方式适应不同场景,秒传的哦!!!】https://www.bilibili.com/video/BV1gj411U7BD?vd_source=51edae522c6bf3e7eb05a733f5e61df4 (Kali可以直接拖拽,不明白WinXP我为啥拖拽不了)
问题2:超级巡警找不到已经脱壳的文件RaDa_unpacked.exe
解决方案:重启一下WInXP,怀疑是没刷新,没连接到该文件。
4.实践总结
本次实验,我对恶意代码分析和网络攻击行为有了更深入的理解。在动手实践任务一中,通过对Rada恶意代码样本的分析,我学会了如何使用文件格式识别工具确定样本的文件格式、运行平台和加壳工具。通过脱壳和字符串提取,成功获取了恶意代码的编写作者信息“Raul Siles & David Perez”,这一过程加深了我对恶意代码隐藏和逆向工程的理解。在分析Crackme程序时,我利用IDA Pro对crackme1.exe和crackme2.exe进行了静态和动态分析,寻找特定输入以获取成功信息。这一任务不仅锻炼了我的逆向工程能力,还让我对程序的逻辑结构有了更清晰的认识。我了解了僵尸网络的构成和攻击行为。通过识别蜜罐主机与IRC服务器的通信、僵尸网络的访问情况以及攻击者的IP地址和攻击漏洞,我掌握了网络攻击的常见手段和防御策略。









































浙公网安备 33010602011771号