20242801 2024-2025-2 《网络攻防实践》第8次作业

20242801 2024-2025-2 《网络攻防实践》第8次作业

一、实验内容

  1. 学习使用超级巡警脱壳机等脱壳软件和字符串提取工具,识别rada恶意代码样本的文件类型,对其进行脱壳与字符串提取,获得rada恶意代码的编写作者。
  2. 学习使用IDA Pro,通过静态或动态分析crackme1.exe和crackme2.exe的伪代码,寻找特定的输入,使其输出特定信息。
  3. 分析一个自制恶意代码样本rada,提供二进制文件的摘要信息,解释二进制文件的目的,说明二进制文件所具有的不同特性,解释二进制文件中所采用的防止被逆向工程的技术,查找二进制文件的开发作者。
  4. 分析蜜罐主机网络数据源,分析有多少不同主机访问了,哪些ip攻击蜜罐主机,攻击的漏洞和是否攻击成功。

二、实验过程

(一)分析rada恶意代码样本

1、分析文件类型并进行脱壳

将相关文件传输到winxp attacker主机中,在这里虚拟机的共享文件夹无法(难以)使用,所以是是用了everything进行传输。

打开cmd之后使用file RaDa.exe,查看该文件的文件类型。

可以发现,这是一个运行在在32位Windows操作系统上的32位PE可执行文件。

接下来,我们使用PEiD打开RaDa.exe。

PEiD(Portable Executable Identifier)是一款主要用于Windows平台的可执行文件分析工具。它能够识别和检测出可执行文件(.exe, .dll等)是否被加壳,以及使用了哪种壳技术。

可以发现,RaDa.exe使用了0.89.6版本的UPX压缩壳。

接下来,我们使用超级巡警脱壳器进行脱壳。

可以看到,rada.exe脱壳后输出到源文件夹下的RaDa_unpacked.exe。

2、分析rada恶意代码的编写作者

直接使用ida,打开脱壳后的rada恶意代码文件。

IDA是由Hex-Rays公司开发的一款功能强大的反汇编工具,它能够将二进制文件(如可执行文件、库文件等)转换成人类可读的汇编代码,并提供丰富的调试和分析功能。IDA支持多种处理器架构和操作系统,包括x86、x64、ARM、MIPS等。

打开string window窗口,经过一番寻找,可以找到作者的名字:Raul Siles && David Perez。

(二)静态或动态分析crackme1.exe与crakeme2.exe

1、分析crackme1.exe

首先,我们运行下crackme1,在不传入参数,或者随便传入一到两个参数的情况下,观察程序的运行结果。

接下来,我们使用file命令,查看下该程序的文件类型。

可以发现,该程序也是PE类型,我们使用ida pro打开。

进行ida pro后,依次选择view-open subviews-Generate pseudocode可以打开该程序通过反汇编形成的伪代码。

在这里可以发现,如果这个程序后接“i know the secret”,才可以成功输出下面的语句。

输出成功,使用相同的方法运行crackme2。

可以看到,crackme2需要先将其文件名改为crackmeplease,再后接i know the secret,才可以输出特定内容。

(三)分析自制恶意代码样本rada

1、提供二进制文件的摘要

找一个输出md5值的在线网站,将该文件丢进去即可。

可以看到,该文件的md5值为为caaa6985a43225a0b3add54f44a0d4c7。

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

在winxp attacker中使用process explorer查看该二进制文件。

在该过程中,木马程序首先在受害者的C盘根目录下创建一个名为RaDa的文件夹。然后,它将自身复制到RaDa文件夹下的bin子目录中,以实现持久化。修改注册表中的Run键值,添加一个自启动项,指向其在bin子目录中的副本。

然后,程序会主动连接到一个预设的命令与控制(C&C)服务器,具体地址为10.10.10.10/RaDa_commands.html。使用注册表操作函数(如RegWrite、RegRead、RegDelete)来控制系统配置,并最终根据攻击者指令发动Smurf类型的DDoS攻击。

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

当Rada.exe被执行后,它会自动将自身复制到C:\Rada\bin目录中。在每次系统启动时自动运行,Rada.exe会修改注册表中的Run键值,添加一个指向C:\Rada\bin\Rada.exe的自启动项。然后,它会主动连接到一个预设的命令与控制(C&C)服务器,具体地址为10.10.10.10/RaDa_commands.html。这个网页中包含了攻击者的相关指令,程序拿到指令后对相应的IP进行DDos攻击。

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

使用UPX加壳对程序进行保护,通过HTTP协议和10.10.10.10进行通信。

5、对这个恶意代码样本进行分类

该程序是一个后门程序,它会自动运行并从对应的ip地址获取攻击指令并执行。

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

Zeus、Mirai和Conficker。

7、查看该文件的二进制文件的开发作者

通过给程序传入参数 --authors 来查看开发作者。

(四)取证分析实践

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

IRC是一种实时通信协议,允许用户通过网络进行文本聊天。它最初由Jarkko Oikarinen于1988年开发,广泛用于在线社区、技术支持、游戏聊天以及其他需要实时文本交流的场景。

IRC在申请加入时,首先会连接到服务器,然后发送NICK和USER消息,然后就可以发送JOIN消息加入频道。

IRC使用的服务器端口有6667、6697等。

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

僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。通常用于发送垃圾邮件、进行分布式拒绝服务攻击和账户接管和网络钓鱼。

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

使用wireshark打开botnet_pcap_file.dat文件,使用统计功能,统计不同TCP会话,可以看到不同ip。

可以发现,蜜罐主机分别和66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172和209.126.161.29这五个IRC服务器进行了通信。

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

首先,我们在kali上对数据包进行分流。指令为tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'。

可以发现,执行后生成了件172.016.134.191.01152-209.196.044.172.06667、209.196.044.172.06667-172.016.134.191.01152、report.xml三个文件。

然后,我们在209.196.044.172.06667-172.016.134.191.01152查看多少不同主机访问了服务器的僵尸网络。

使用命令如下:cat 209.196.044.172.06667-172.016.134.191.01152 | grep --text "^: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个主机访问量该僵尸网络。

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 > ipaddr.txt;wc -l ipaddr.txt

将输出的ip地址输出到ipaddr.txt文件中,然后我们可以打开ipaddr文件。

6、攻击者尝试攻击了那些安全漏洞?

首先,我们查看蜜罐主机被攻击的TCP端口,使用如下命令

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的响应端口分别是135、139、25、445、4899、80。

接下来,我们查看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的响应端口为137。

接下来我们开始逐个分析端口,首先是135端口,使用如下指令。

(tcp.dstport == 135 || tcp.dstport == 25)&& ip.dst == 172.16.134.191

可以发现,135端口只有TCP的三次握手,应该没有危害。

接下来,我们查看80端口的连接情况。

tcp.dstport==80 && ip.dst == 172.16.134.191

可以发现,24.197.194.106和蜜罐主机产生了许多数据包,有可能是缓冲区溢出攻击。

接下来,我们查看139端口。

tcp.dstport==139 && ip.dst == 172.16.134.191

可以看到有多个不同的IP在尝试和蜜罐主机通过139端口建立连接。

接下来,我们来查看445端口。

tcp.dstport==445 && ip.dst == 172.16.134.191

通过浏览数据包,我们可以发现在33280号数据包有一个psexesvc.exe记录。

psexesvc是一个强大的远程执行工具,允许用户在远程计算机上运行命令行程序或脚本。它通过使用 Windows 的服务控制管理器 (SCM) 来启动和管理远程进程。

然后我们进行观察数据包,可以在34477号发现返回信息中发现"PIPE\ntsvcs",这个消息是SCM与特定服务交互的服务控制进程之间的远程过程调用接口。

最后我们查看4899端口。

tcp.dstport==4899 && ip.dst == 172.16.134.191

通过观察数据包我们可以发现,只有210.22.204.101访问了这个端口。

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

通过上文的逐个查询,我们可以确定的攻击这是61.111.101.78,通过445端口使用蠕虫攻击。

三、学习感悟

  1. 通过本次实验,了解了恶意代码分析的基本方法,学习了像超级巡警这些用于恶意代码分析的软件如何使用。还有很重要的IDA的用法,在进行crackme那款软件分析的时候,我发现怎么弄都没法整出代码分析来,通过查阅网上资料和问同学,才发现winattacker自带的那个ida太低了,于是上网上下了pro版的,这次分析成功。
  2. 本次学习的完整录屏视频已上传至百度网盘(时间较长文件较大),通过网盘分享的文件:第八次作业
    链接: https://pan.baidu.com/s/1J9vOkLmDhYmebCdFrNBECA?pwd=1234 提取码: 1234
posted @ 2025-04-23 18:23  Shallwe741  阅读(46)  评论(0)    收藏  举报