20232926 田煜亦 2023-2024-2 《网络攻防实践》实践8报告

20232926田煜亦 2024-05-08 15:38:31

20232926 田煜亦 2023-2024-2 《网络攻防实践》实践8报告

1.实践内容

动手实践任务一 :对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者;
动手实践任务二:分析Crackme程序;
分析实践任务一:分析一个自制恶意代码样本rada,并撰写报告,回答问题;
分析实践任务二:Windows 2000系统被攻破并加入僵尸网络,回答问题。

2.实践过程

2.1 动手实践任务一 恶意代码脱壳与提取

首先从学习通中下载实验要用到的文件rada.rar,将其放到虚拟机WinXP中,这个文件需要输入密码解压,百度搜索360压缩软件,将软件的压缩包也拖到虚拟机中安装好。

img

用安装好的360解压缩软件解压rada.rar,无视安全提示即可

img

解压后有两个文件:

img

在cmd中输入 cd 桌面 , cd rada , 改变当前目录到桌面上的rada文件夹中,输入 file RaDa.exe 命令用来识别文件类型

img

可以得出,该文件是一个32位的可执行文件,适用于Microsoft Windows操作系统,并且是为Intel 80386处理器编写的。

接下来查看有没有加壳,使用WinXP自带的PEID工具

img

在工具中打开RaDa.exe,可以得到一些有用的信息如程序的入口点地址,即程序开始执行的地方;文件偏移量;链接器信息;入口点所在区段的标识符(IDR);First Bytes是文件的魔数(Magic Number),用于标识文件类型,这里的60,BE,00,CD常见于Windows PE文件;Subsystem指明程序运行的子系统类型,Win32 GUI表示这是一个图形用户界面程序。
UPX是一种常用的压缩加壳工具,用来减少文件大小和保护代码;UPX的版本号,这里是0.89.6;Markus & Laszlo是UPX的作者名字。

img

在cmd中输入strings RaDa.exe,提取文件中的可打印字符串,全是乱码,推测 RaDa.exe 文件被加壳保护,直接使用 strings 命令无法获取有效的信息,因为加壳会混淆原始代码和数据,需要先进行脱壳处理

img

使用WinXP自带的超级巡警虚拟机脱壳器进行脱壳,选择RaDa所在路径,选择 给我脱 ,进行脱壳

img

脱壳成功,给出了脱壳后的文件所在位置,可以在该位置找到脱壳后的文件

img

img

再在cmd中使用strings命令提取脱壳后文件中的可打印字符串,可以看到不是乱码了,但是还是看不懂

img

使用WInXP自带的反汇编工具IDA Pro Free 打开这个文件,

img

可以得到版权声明和许可证信息等

img

2.2 动手实践任务二:分析Crackme程序

将两个文件下好拖到虚拟机里,检查一下完整性,检查文件的完整性通常需要计算其MD5值,因为MD5算法具有一系列的特性,适合用于验证数据是否保持不变和完整。如果原始数据发生任何微小的变化,即便只改变一个位(bit),生成的MD5值也会显著不同。这种高度敏感性让MD5成为检测文件完整性的理想选择。此外,MD5的不可逆性、抗碰撞性都很好。

在cmd里输入MD5sum crackme1.exe MD5sum crackme2.exe ,再使用file命令查看下文件类型

img

这两个文件都是32位的Windows操作系统可执行文件,运行时会打开一个命令行窗口(console window)。

先对第一个文件尝试输入不同参数,查看是否会对不同输入有反应,有不同的反应,说明程序中的代码包含了对传入参数数量的检查,并根据这个数量执行不同的逻辑分支。

img

使用反汇编工具IDA Pro Free 打开crackme1.exe,通过查看strings窗口的字符串可以得到程序提示信息,程序中可能包含用户交互时的提示信息或错误信息。猜测这几个句子里包含正确口令。

img

分析IDA Pro Free 中的函数调用图,获得程序执行流程和模块间交互的信息。sub_401280函数被频繁调用且位于调用图的中心位置,应该是程序的关键功能模块。

img

查看下函数sub_401280,看到指令cmp [ebp+arg_0],2,这表示程序正在执行一个比较操作。可能是在进行某种条件判断,检查传递给函数的参数个数是否等于2。

img

继续往下看,可以看到明文口令

img

由此,推测正确口令为“I Know the secret”,测试一下,成功。

img

crackme2也用IDA Pro Free 打开,看strings部分和crackme1是一样的,有明文字符串。

img

查看函数调用图,发现关键部分在函数sub_401280

img

查看下函数sub_401280

img

往下看,看到口令,注意到这个地方的文件名不是crackme2,而是crackmeplease.exe,推测该程序在设计时要求使用特定的文件名来接收特定的参数或执行特定的功能。程序可能被设计为只有在输入了正确的口令,并且文件名为"crackmeplease.exe"时,才会输出预期的结果。

img

复制并改名程序,测试一下,口令正确

img

2.3 分析实践任务一:分析一个自制恶意代码样本rada

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;

在cmd里切换到RaDa所在文件见,输入md5sum RaDa.exe 计算其MD5值

img

再使用file命令查看一下,识别出这是32位可执行文件,有图形用户界面。

img

2、找出并解释这个二进制文件的目的;

打开WinXP自带的监听工具process explorer,运行RaDa.exe,用process explorer检测

img

img

可以看到利用http指向IP地址10.10.10.10上的RaDa commands.html。恶意代码在该主机上进行了读、写和删除注册表等一系列操作。

img

然后使用反汇编工具IDA对脱壳后的文件RaDa_unpacked.exe进行分析,在IDA中打开RaDa_unpacked.exe,点Strings,点击Setup,设置类型为 Unicode,这样可以正确地显示程序中包含的字符串数据。

img

找到了作者信息,还找到了 http://10.10.10.10/RaDa ,查看这个位置的函数,得到一些信息。

img

img

由此可以看出这个二进制文件是恶意软件,目的是将程序写入系统文件和修改注册表以实现自动启动功能。

3、识别并说明这个二进制文件所具有的不同特性;

该程序会在系统开机时启动,并访问10.10.10.10,Rada_command.html,还可以解析指令并执行指令。

4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;

UPX加壳

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由。

这个恶意代码能隐秘启动,通过修改注册表实现每次系统启动时自动运行,但是没有复制和传播的功能,应该是一个后门程序或者僵尸程序。

6、给出过去已有的具有相似功能的其他工具;
Back Orifice: 历史上最早的远程管理工具之一,允许攻击者完全控制受感染的计算机。
Urausyama: 一个复杂的后门程序,可以允许攻击者远程执行命令、上传和下载文件。

7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
前面找到了开发者是 Raul Siles & David Perez

2.4分析实践任务二:Windows 2000系统被攻破并加入僵尸网络

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

IRC是一种基于文本的网络聊天协议。,由Jarkko Oikarinen于1988年在芬兰创立。它允许用户通过客户端软件连接到IRC服务器从而参与在线聊天。所有用户都可以在频道上就某一特定话题进行公开讨论,或者选择私聊以保持对话的隐私性。IRC在设计上非常基础且易于使用,但它也存在一些不稳定和安全性问题。

当IRC客户端申请加入一个IRC网络时,它将发送JOIN命令。这个命令是IRC协议中定义的一部分,用于指示客户端希望加入特定的频道或网络。通过这个命令,客户端告诉服务器它想要加入的网络或频道名称,以及可能伴随的其他参数。例如,如果客户端想要加入名为example的频道,它会发送类似于JOIN example 的命令。

IRC通常使用的TCP端口包括6667(明文传输)和6697(SSL加密传输)。

端口6667是标准非加密的IRC服务端口,而端口6697则是为希望利用SSL加密来提高通信安全性的用户准备的。使用SSL加密的IRC连接可以提供身份验证和数据加密,防止通讯内容被窃听或篡改。此外,根据不同的IRC网络和客户端设置,可能还会有其他的端口用于特殊目的或服务。

2、僵尸网络是什么?僵尸网络通常用于什么?

僵尸网络是由黑客创建并控制的网络,主要用于执行恶意活动,也称为Botnet,是由黑客通过传播僵尸程序或病毒而创建的。这些被感染的主机将接收黑客的指令,并可以被用来执行多种恶意任务,如:
分布式拒绝服务攻击(DDoS):这是最常见的使用案例之一,通过指挥大量僵尸电脑同时向目标发送请求来使其超载和无法访问。
垃圾邮件传播:利用僵尸网络发送大量的垃圾邮件,这些邮件可能含有钓鱼链接、诈骗信息或是更多的恶意软件。
窃取数据:僵尸网络可以用于从感染了僵尸程序的机器上搜集敏感信息,如登录凭据、个人详细信息等。
进行身份盗窃:使用收集到的信息进行欺诈活动,比如信用卡诈骗或其他形式的金融骗局。
传播其他恶意软件:作为更广泛攻击的一部分,将其它种类的恶意软件传播到更多设备上。

防范僵尸网络的措施包括定期更新操作系统和应用程序、安装防病毒软件并保持更新、不打开可疑邮件附件或链接以及使用复杂密码和二次验证等。由于僵尸网络的危害性很大,建议采取主动防御策略,提高网络安全意识,保护个人信息安全。

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

打开wireshark,将数据包拖入,设置过滤条件,在Wireshark的过滤器栏中输入ip.src == 172.16.134.191 && tcp.dstport == 6667,这将仅显示与蜜罐主机相关的流量,由于IRC通信通常使用端口6667(明文)或6697(加密),在过滤器中进一步加入端口号来过滤IRC协议的通信,查看明文IRC流量。

img

由此找到了和IRC服务器通信的主机分别为 209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172

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

获取IP地址209.196.44.172与172.16.134.191之间所有IRC数据包。先安装tcpflow工具,输入命令apt-get install tcpflow来安装

img

在存放botnet_pcap_file.dat文件的目录下,输入tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'提取与指定主机和端口相关的数据流。

img

得到三个文件。一个report文件包含两台主机相互通信的时间、IP地址、MAC地址、使用的端口以及传输的数据包数量等详细信息。另外两个文件是分流的数据包文件,它们包含实际的数据内容。

img

使用管道命令来筛选,输入`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

就可以得到与209.196.44.172通信的不同主机数量为3461

img

5、那些IP地址被用于攻击蜜罐主机?

使用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
执行这条命令后,会得知有多少个独立的IP地址与蜜罐主机进行了通信,并且这些IP地址会被存储在ip.txt文件中。

img

img

6、攻击者尝试攻击了那些安全漏洞?
首先要定位到可能被攻击的TCP/UDP端口号,查询响应过的端口号:
输入命令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查询

img

响应过的端口有:135、139、25、445、4899、80。

逐个筛选TCP端口,筛选135、25,数据包都很少,应该不是

img

img

筛选端口139出现了SMB协议,应当是SMB查点。

img

端口80数据量很大,在浏览中发现http协议中异常字段

img

进一步追踪TCP数据流,发现是一种红色代码蠕虫攻击

img

7、那些攻击成功了?是如何成功的?

对端口445进行筛选,发现每个IP地址连入的连接都有响应的回应,所以攻击者肯定是获得了权限,因此这个攻击成功的。

img

3.学习中遇到的问题及解决

  • 问题1:在实验二中猜测口令时输入正确口令没有得到正确反馈

    img

  • 问题1解决方案:没有注意中英文字符切换,切换为英文后解决,以后要注意细节。

4.实践总结

本次实验让我了解了恶意代码进行攻击的原理,并学习了基础的分析方法,收获良多。

...全文
47 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

55

社区成员

发帖
与我相关
我的任务
社区描述
网络攻防实践课程
网络安全 高校
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧