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

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. 实验过程

2.1 分析rada恶意代码样本

(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;

1、通过命令file rada.exe查看文件类型。由图中可以看到,这是一个二进制文件格式,是Windows PE可执行文件,具有图形化窗口(GUI)

image-20250417093852298

2、通过命令strings rada.exe查看该文件的可打印字符串,发现是乱码,由此可以判断这个文件加壳了

image-20250417094223091

3、通过PEiD工具查看该文件。由图中可以看到,加壳工具为UPX 0.89.6-1.02/1.05-2.90->Markus&Laszlo,运行平台为Win32

image-20250417095950948

(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;

1、通过超级巡警脱壳机,对rada文件进行脱壳处理。由图中可以看到,脱壳文件会生成在原路径下

image-20250417100310365

(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

1、通过IDA Pro Free工具进行分析,选择PE

image-20250417100542357

2、选择rada的脱壳文件

image-20250417100601295

3、一直点击“继续”和“下一步”直到“完成”

image-20250417100656268

4、在Strings window中可以看到编写作者信息为(c) Raul Siles && David Perez

image-20250417101354956

2.2 分析Crackme程序

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

通过file命令查看crackme的文件类型。可以看到这两个文件都是32位Windows下的PE文件,是命令行程序

image-20250417102553976

2.2.1 分析crackeme1.exe

1、尝试对crackme1.exe进行破解。运行该程序,试探它的输入格式。由图中可以看到,该程序在接收1个参数的时候,程序的反馈是Pardon?What did you say?,在接受其他数目的参数时,程序的反馈是I think you are missing something.。所以可以推断出,该程序只允许接收一个参数,前者是参数错误的提示,后者则是参数数目不对的提示

image-20250417102724624

2、通过IDA Pro Free工具进行分析,阅读其汇编语言。由图中可以看到该程序中出现的明文字符串,这里除了之前测试得到的Pardon?What did you say?I think you are missing something.,还有I konw the secret.You konw how to speak to programs,Mr.Reverse-Engineer.这两个字符串。由此可以推断,前者是需要的口令,后者是输入该正确口令时会反馈的信息

image-20250417103327058

3、查看整个程序的function calls

image-20250417105033940

4、查看到sub_401280调用了strcmp比较函数,fprint输出函数,查看它的汇编代码,看到下面的函数,推断这个就是判断输入参数是否为1个的函数

cmp [ebo+arg_0],2 # 判断程序是否有两个参数

image-20250417105541429

5、查看sub_401280的函数流程图。由图中可以看到,如果argc=2,进行下一步判断中再输入I know the secret就会进入到true流程,如果输入了其他内容,就会进入false流程,也就是在一开始测试时返回的语句。而且如果输入的参数个数就不对,则会像一开始测试的时候,直接进入false流程,返回相应的语句

image-20250417105807238

6、尝试输入口令I know the secret。由图中可以看到,成功通过了该程序的测试

image-20250417110247383

2.2.2 分析crackme2.exe

1、按照上面的流程分析crackme2.exe文件,查看strings界面信息。出现一系列明文字符串

image-20250417110457152

2、查看sub_401280代码的流程图。由图中可以看到依旧是cmp语句判断程序参数是否为2个。如果未能通过参数个数的判断,则会返回I think you are missing something.。如果通过了参数个数的判断,则会对输入的程序名和crackmeplease.exe做判断

image-20250417110717146

3、通过程序名判断后,用户输入的口令将会和I know the secret做判断。如果未能通过口令判断,则会返回Pardon?What did you say?。如果通过口令判断,则会通过一定规则输出通过测试的信息

image-20250417111209608

4、由图中可以看到,通过口令判断后,会将unk_403080中的字符串分别与0x42h进行异或计算

image-20250417111945360

5、由上面的分析可以推断出,破解这个程序需要先更改该程序的程序名为crackmeplease.exe,再通过命令crackmeplease.exe "I know the secret",即可测试成功。下图为测试成功的页面

image-20250417112458350

2.3 分析恶意代码样本rada

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

通过命令md5sum rada.exe,可以得到该程序的md5摘要值为caaa6985a43225a0b3add54f44a0d4c7

image-20250417112743588

通过file命令可以得到基本信息为Windows32位的PE文件

image-20250417144821599

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

通过Process Explorer进行监听,运行脱壳后的rada.exe,查看Strings界面。由图中可以看出,该程序进行了如下操作:

  • 通过HTTP请求了10.10.10.10\rada
  • 下载了rada_commands.html
  • 将rada.exe放到C:\RADA\tmp文件夹下
  • 修改注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\,将rada.exe设为开机启动
  • 将rada.exe文件放到C:\RADA\bin文件夹下
  • 发动DDOS远程攻击

image-20250417152714066

可以得知这个二进制文件的目的是利用HTTP协议,修改注册表信息,使得每次开机都会发动DDOS攻击

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

不同特性在于访问了10.10.10.10\rada\rada_commands.html,且会把自己放到C盘下,通过修改注册表,让它开机启动,发动攻击

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

由图可以看到,使用了加壳技术

image-20250417153005319

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

后门程序。因为该样本可以远程发动攻击,建立连接10.10.10.10的后门

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

特洛伊木马Setiri

7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

可以。在脱壳之后,用strings分析

image-20250417153223362

2.4 分析botnet_pcap文件

任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答下列问题:

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

IRC(Internet Relay Chat,互联网中继聊天)是一种基于文本的实时通信协议。

当IRC客户端申请加入一个IRC网络时,会发送以下消息进行注册:

  • PASS消息(密码)
  • NICK消息(设置昵称)
  • USER消息(提供用户信息)

这三条消息完成基本注册后,客户端才能发送其他命令,例如加入频道JOIN

IRC一般使用以下TCP端口:

  • 6667:最常用的非加密IRC端口
  • 6660-6669:标准IRC端口范围
  • 6697:常用的SSL/TLS加密IRC连接端口

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

僵尸网络是一组被恶意软件感染并由攻击者远程控制的计算机网络。这些被感染的计算机在不知情的情况下受到黑客的指挥

僵尸网络通常被用于以下恶意活动:

  • DDOS攻击
  • 垃圾邮件传播
  • 数据窃取
  • 加密货币挖矿
  • 提供匿名通信基础设施

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

通过命令ip.src==172.16.134.191 and tcp.dstport == 6667进行过滤。从图中可以看到,蜜罐主机与五个IRC服务器进行了通信:209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172

image-20250417154257645

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

通过命令tcpflow -r botnet_pcap_file.dat 'host 209.196.44.172 and port 6667'进行分析,从图中可以看到产生了三个文件

image-20250417160820023

通过命令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为服务器的僵尸网络

image-20250417160854831

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 > 20241905.txt;wc -l 20241905.txt,将攻击蜜罐主机的IP地址筛选出输出到20241905.txt文件中

image-20250417161113778

从图中可以看到共有165个被用于攻击蜜罐主机的IP地址

image-20250417161143140

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

通过命令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(RPC)、139(NETBIOS-SSN)、25(SMTP)、445(SMB)、 4899(RADMIN)、 80(HTTP)。

image-20250417162007852

通过命令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(NetBIOS网络查点,提供计算机的IP地址查询服务)

image-20250417162025763

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

通过命令ip.addr == 172.16.134.191 && tcp.port == 135筛选135端口,从图中可以看到进行了TCP连接

image-20250417162519307

通过命令ip.addr == 172.16.134.191 && tcp.port == 139筛选139端口,从图中可以看到有TCP协议、SMB协议和NBSS协议

image-20250417162739557

通过命令ip.addr == 172.16.134.191 && tcp.port == 25筛选25端口,从图中可以看到同样只是进行了连接

image-20250417162909283

通过命令ip.addr == 172.16.134.191 && tcp.port == 445筛选445端口。由图中可以看到PSEXESVC.EXE程序。这是一种蠕虫病毒,攻击者可以通过它远程控制主机

image-20250417173741118

通过命令ip.addr == 172.16.134.191 && tcp.port == 4899筛选4899端口。由图中可以看到只是进行了连接

image-20250417174031467

通过命令ip.addr == 172.16.134.191 && tcp.port == 80筛选80端口。由图中可以看到GET了一个defalut.ida文件

image-20250417210324908

追踪TCP流可以看到访问了www.worm.com,表示攻击者进行了红色代码蠕虫病毒的攻击

image-20250417210542106

通过命令ip.addr == 172.16.134.191 && udp.port == 137筛选137端口。由图中可以看到数据内容都是一样的,验证了该端口是NetBIOS网络查点

image-20250417211002104

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

  • 问题1:从主机将rada文件复制到虚拟机出错:无法确定本地文件大小。您可能没有执行此操作的权限,或者文件可能不存在。正在取消文件复制操作。

  • 问题1解决方法:Windows安全中心把这个文件隔离了,点击还原再复制就能够成功复制过去了。WindowsXP没有解压工具,所以先在本机上把rar压缩文件解压了,再在复制出现报错的时候,打开Windows安全中心,将报错的提示进行“允许在设备上”和“还原”操作,即先还原已隔离的威胁,再进行复制。这里只截取了“允许在设备上”操作,“还原”操作是类似的

    image-20250417093429409

4. 学习感想和体会

这次实验做了很久,收获很大。通过对rada恶意代码的分析,学习到了加壳脱壳技术,如何查看到编写者的信息。通过对Crackme程序的分析,一步一步拨开了这个程序的真面目。最后则是分析Windows 2000系统被攻破并加入僵尸网络的pcap包,对僵尸网络这一攻击有了更深的理解。做完最大的体会是,攻防技术,学无止境。

参考资料

《网络攻防技术与实践》课本和学习通视频

虚拟机复制文件时,提示:无法确定本地文件类型,您可能没有执行此操作的权限。-三酷猫软件站

posted @ 2025-04-18 16:23  放放q  阅读(61)  评论(0)    收藏  举报