20242903 2024-2025-2 《网络攻防实践》实践8报告

20242903 2024-2025-2 《网络攻防实践》实践8报告

1.实践内容

1.对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:

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

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

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

2.在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恶意代码样本

首先创建rada文件夹,将资源中提供的rada文件解压缩后拖入到虚拟机中

进入cmd界面,使用windows自带的file指令分析文件类型

给出的信息可以得到为一个32位Windows的有GUI图形界面可执行文件

打开WinXP自带的脱壳软件自动脱壳器

脱壳后的输出文件路径为C:\rada\RaDa_unpacked.exe

随后打开Process Explorer软件监视解压后的RaDa_unpacked.exe,打开Strings选项对其进行分析,发现作者是Raul Siles & David Perez,2004

同时打开反汇编工具IDA Pro Free进行反汇编,在string项目找到作者Raul Siles && David Perez,写于September 2004

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

2.2.1 Crackme1分析

首先下载crackme1和2程序到虚拟机中

使用file指令分析文件类型,这里可以看到为PE32文件

打开IDA free软件选择PE Executable,这里进行反汇编以后没有找到过多的信息,于是尝试调用1-4各参数输入程序

可以看到在传入一个参数1或hello的时候这里输出的pardon?Whatdidyou say?和i think you are missing something

于是打开view-graphs-function calls查看函数调用整体流程,这里发现sub_401280函数的逻辑层数更深,合理猜测与最终输出结果有关

于是找到函数sub_401280,使用F12按键查看该函数的逻辑图

可以看到出现pardon?Whatdidyou say?这一句话

这里看到i think you are missing sonething这句信息,于是怀疑i know the secret为正确的输入答案,正确输出则为You know how to speak to programs,Mr."

验证该结果发现推测正确

2.2.2 Crackme2分析

同理对于Crackme2进行分析

输入一些参数,包括输入crackme1的正确输入得到的回答都是错误的,关键信息为I have an identity problem.和i think you are missing something

打开整体函数调用图,这里关键仍然在于函数sub_401280,对该函数进行分析

可以看到这里出现了关键信息i think you are missing something,这里的逻辑判断首先有一个对于文件名是否为crackmeplease.exe

在这之后才是输入回答i know the secret

进行验证后发现是正确的

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

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

使用md5sum语句可以看到RaDa文件的摘要

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

使用Process Explorer软件监视RaDa_unpacked.exe,打开Strings选项对其进行分析

这里查看sting,可以看到程序首先先访问http://10.10.10.10/RaDa,创建了文件C:\\RaDa\\tmp并将RaDa_commands.html复制到C:\\RaDa\\tmp中,然后进行了Ddos攻击,并访问注册表判断是否有网段10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16,这是三个常见网段

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

在判断网段后采取了exe、value、put、get等操作,然后用screenshot截图,最后sleep

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

使用PEiD检测RaDa程序,可以看到防止被分析或逆向工程的技术为UPX 0.89.6-1.02/1.05-2.90 ->Markus & Laszlo

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

这段恶意代码没有病毒和木马的特征;整个程序的主要作用在于从网络上下载软件并进行DDos,由此判断为僵尸网络

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

2004年的开源IRC僵尸网络SDBot、2007年的Cutwail,模块化银行木马Zeus

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

作者为Raul Siles & David Perez,2004

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

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

IRC(Internet Relay Chat)​ 是一种实时文本通信协议,主要用于群组聊天和私聊,用户通过客户端连接至服务器参与频道交流

客户端发送 ​JOIN #频道名 命令(例如 JOIN #tech)。

RC常用的TCP端口:​

​默认端口:​6667​(明文通信)。

​其他常见端口:

6660-6669:传统端口范围。

6697:SSL/TLS加密通信端口。

7000、8000:部分服务器的备用端口

(需先通过 NICK 昵称 和 USER 用户名 模式 * :真实姓名 完成身份注册。)

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

僵尸网络是由攻击者通过恶意软件控制的感染设备(如电脑、手机、IoT设备)组成的网络。

通常用于:

发起DDoS攻击​(瘫痪目标网络)。

发送垃圾邮件/钓鱼邮件。

窃取敏感数据​(如账户密码)。

分发勒索软件/其他恶意软件。

进行加密货币挖矿​(消耗受害者资源牟利)。

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

因为IRC常规的通信端口是从6665-6669,默认端口为6667

进行筛选,可以发现只有6667端口有数据通信

由此条件为tcp.port == 6667 && ip.addr == 172.16.134.191,依次与ip地质为209.126.161.29 、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172服务器进行了通信

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

使用tcpflow工具对监听包进行分析,进入桌面后使用tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667命令在桌面得到report.xml

打开后可以看到相关信息如上

输入管道指令grep -a "^:irc5.aol.com 353 " 209.196.044.172.06667-172.016.134.191.01152

| sed 's/.*:#x[ ]* 😕/; s/\r//g'

| awk -v RS=' ' '!/^$/'

| sort -u

| wc -l后可以看到有3463个主机进行了通信

2.4.5 哪些IP地址被用于攻击蜜罐主机?

利用tcpdum工具输入指令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 > yx.txt;wc -l yx.txt 后发现的IP存入到yx.txt中

一共有165个ip地址

2.4.6 攻击者尝试攻击了那些安全漏洞?哪些攻击成功了?是如何成功的?

使用tcpdump工具输入指令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和UDP端口为135、139、445、4899、80、UDP端口为137

依次对端口进行分析,输入过滤条件tcp.dstport80 && ip.dst172.16.134.191,端口80遭到了缓冲区溢出攻击

输入过滤条件tcp.dstport135,可以发现只进行了扫描,没有成功

输入过滤条件udp.port137,可以看到没有发动攻击

输入过滤条件tcp.dstport139,可以看到攻击者尝试建立了多次连接,但都被识别出并发送了RST指令

输入过滤条件tcp.dstport445,可以看到PSEXESVC.EXE字符串出现,说明遭到了蠕虫入侵并且攻击成功

输入过滤条件tcp.dstport4899 && ip.dst172.16.134.191,可以发现端口4899是Radmin远程控制工具控制蜜罐主机的默认段端口

3.实践总结

本次实验中第一次尝试使用了进程监视器Process Explorer,超级脱壳器、逆向工程软件IDA Pro等等,使用了tcpdump和flie、md5sum等命令工具,这些工具和指令的使用让我深化了对于恶意代码行为机理与网络威胁检测的技术认知。成功溯源到攻击者姓名,分析到攻击者采用了何种攻击方式对于哪一些端口展开了哪种攻击,其中逆向工程让我体会到在编写一个应用程序时的逻辑运用的重要性,同时也意识到我们需要加强对于主机安全的保护,防止被黑客采取各种多样的攻击方式掌握到主机的控制权。

4.参考文献

https://blog.csdn.net/qq_34529750/article/details/130524471#