20222810 2022-2023-2 《网络攻防实践》第8周作业

1.实验内容

恶意代码

恶意代码(Unwanted Code)是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。

恶意代码分类

不同恶意代码的特点 

2.实践过程 

2.1 动手实践任务一

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

(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?

实验过程如下:

解压下载压缩文件,然后将RaDa复制粘贴放入虚拟机WinXpattacker的C盘中。

 打开终端,输入file RaDa.exe,查看该文件类型,这是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序。

 使用 PEiD 工具查看文件加壳类型。加壳的目的是为了增加逆向难度。

可以看到这个是一个版本为 0.89.6 的 UPX 壳(压缩壳)。

 

 输入strings RaDa.exe,查看 RaDa.exe 中可打印字符串,发现全是乱码,这说明被加壳了。

 使用超级巡警进行脱壳,选择相应的路径,发现支持脱壳。

 

点击“给我脱”,显示脱壳成功,并显示脱壳之后的文件RaDa_unpacked.exe的存储路径。 

 

 打开C:\Documents and Settings\Administrator文件夹,可以看到这个文件。

 再用 strings RaDa_unpacked.exe查看脱壳后的RaDa_unpacked.exe,发现了脱壳后的恶意程序的可打印字符串

 使用XP自带的IDA Pro反汇编工具进行反汇编,一打开脱壳之后的文件就能看到恶意代码的程序编写的时间等信息。

 可以在字符串这一栏中看到作者为Raul Siles 和David Perze。

2.2 分析Crackme程序

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

实验过程如下:

下载crackme1.exe与crackme2.exe,放入新建的文件夹,将文件夹复制粘贴到WinXPattacker的文件夹C:\Documents and Settings\Administrator中

进入crackme文件夹 

 

 使用命令:md5sum 文件名,检查一下两个文件的完整性,计算其 md5 值。

 使用命令:file 文件名,查看其文件类型,可以看到这两个文件都是32位 windows 下 PE 文件

 对 crackme1.exe 进行分析,可以发现,在一个参数6时,程序的输出为“Pardon? What did you just say?”,在输入的参数个数大于1时,输出的都是“I think you are missing something.”。所以我们猜测该程序的输入为一个数。

 找到IDA Pro Free工具,选择crackme1.exe,对该程序进行分析。
放大string窗口进一步分析:

发现有刚才的输出Pardon? What did you say?与I think you are missing something,同时还有刚才没有的输出I know the secret与You know how to speak to programs,Mr Reverse Engineer。故猜测I know the secret与You know how to speak to programs,Mr Reverse Engineer代表输出成功信息。

接下来我们分析代码逻辑,在IDA Pro中调出对话框IDA View-A和Hex View-A,可以看到左边是汇编代码右边是二进制代码,红色框处实际是可以看到代码的函数调用关系,但这并不是特别清楚。 

 接下来看函数调用图(Function Call)可以发现:关键的部分在sub_401280这里,程序是使用strcmp函数来输入的,然后利用print和fprint函数输出

打开sub_401280函数的函数调用图进一步分析,可以发现cmp [ebp+arg_0],2为判断程序是否有两个参数,若没有则false输出I think you are missing something,若有则true进入下一个判断,调用strcmp函数,将输入与I know the secret进行匹配,若匹配失败则false输出Pardon? What did you say?,若匹配成功则true就输出You know how to speak to programs,Mr Reverse Engineer了。

 在命令行中输入crackeme1 "I know the secret"进行验证,输出的结果正是“You know how to speak to program, Mr. Reverse-Engineer”。

 接下来分析crackme2.exe
  和carckme1.exe类似,在一个参数6时,程序的输出为“I have an identity problem.”,在输入的参数个数大于1时,输出的都是“I think you are missing something.”。所以我们猜测该程序的输入为一个数。

 通过 Strings 窗口可以查看到该程序中出现的明文字符串,可以看到“I think you are missing something.” ,“I have an identity problem.”,“I know the secret”和“Pardon? What did you say?”,还有一个“crackmeplease.exe”。

 打开函数调用图(Function Call)可以发现:strcmp函数位于sub_401280程序段中,和crackme1.exe是一致的。

 

 回到sub_401280程序段中进行分析,发现strcmp函数位于两个程序段中。接着分析两个含有strcmp函数的程序段发现俩有一条命令不一样,add eax,4。猜测如果“I know the secret”是第1个参数那么回退到程序调用的上一段减4就是第0个参数,也就是程序名(从主调用程序段中可知ebp+arg_4为程序名)。

 复制crackme2.exe并将复制的版本命名为crackmeplease.exe。

 执行命令crackmeplease.exe,crackmeplease.exe 1和crackmeplease.exe 1 2根据提示信息可知已经执行过了第一个strcmp函数所在的程序段即已经过了loc_4012D5程序段(crackmeplease.exe所在程序段)在命令行中使用命令crackmeplease.exe “I know the secret”验证通过;至此两个恶意代码分析结束。

2.3 分析实践任务一

分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:

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

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

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

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

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

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

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

实验过程如下:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
输入命令md5sum Rada.exe,输出即为Rada.exe文件的md5摘要:caaa6985a43225a0b3add54f44a0d4c7

 输入命令file RaDa.exe识别出这是32位GUI文件。

通过PEiD工具可以得到帮助识别同一样本的基本信息——加壳工具:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo。

 2、找出并解释这个二进制文件的目的;
找到监视工具Process Explorer对脱壳后的文件RaDa_unpacked.exe进行监视

 

 与10.10.10.10建立tcp连接

 C:\RaDa\tmp和C:\RaDa\bin代表这个二进制文件下载了文件保存在此路径下
![](https://img2022.cnblogs.com/blog/2781896/202205/2781896-20220509085314829-1083973779.png)

发起DDoS攻击

 RegWrite代表这个二进制文件对注册表文件的读;RegRead代表注册表文件的写;RegDelete代表注册表文件删除

 这个二进制文件查询了靶机上可用的网络适配器

综上,这个二进制文件首先在靶机中下载保存了后门程序,然后发动DDoS攻击,远程获取指令并执行。
3、识别并说明这个二进制文件所具有的不同特性;
RaDa.exe存放在宿主的C盘的RaDa文件夹下,然后通过修改注册表,让它开机启动,使得每当宿主主机启动就能发起DDOS攻击。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
防止分析的技术:UPX压缩加壳技术。

5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
可以远程发起攻击,不能自主进行传播和感染不是病毒、蠕虫,没有将自己伪装成其它程序不是木马,主要是对特定IP地址发起DDoS攻击,远程获取指令并执行。综上所述,这个恶意代码样本分类是一个后门程序。
6、给出过去已有的具有相似功能的其他工具;
msfvenom、Setiri、oBobax。
7、可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可能,前提是通过Process Explorer或IDA分析脱壳后文件RaDa_unpacked.exe的strings字符串,IDA分析分析上面已经做过,图为Process Explorer分析,可调查出这个二进制文件的开发作者是Raul Siles和David Perez这两人。

2.4 分析实践任务二

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、那些攻击成功了?是如何成功的?

 实验过程如下:

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

  • 因特网中继聊天(Internet Relay Chat),简称 IRC。IRC 的工作原理非常简单,只需要在自己的 PC 上运行客户端软件,然后通过因特网以IRC 协议连接到一台 IRC 服务器上即可。IRC 特点是通过服务器中继与其他连接到这一服务器上的用户交流。

  • IRC客户端申请加入一个IRC网络时即需要注册,注册时需要发送的消息有三种,分别是口令,昵称和用户信息。

  • IRC 服务器明文传输通常在 6667 端口监听,也会使用 6660—6669 端口。SSL 加密传输在 6697 端口。

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

  • 僵尸网络是指攻击者(称为botmaster)出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
  • 僵尸网络主要用于:发动DDOS攻击、发送垃圾邮件、 监听用户敏感信息、记录键盘输入信息、 扩散新的恶意软件 和 伪造点击量,骗取奖金或操控网上投票和游戏,同时黑客控制的这些计算机所保存的信息也都可被黑客随意“取用”。

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

  • 通过Wireshark打开数据文件,并设置过滤条件ip.src == 172.16.134.191 && tcp.dstport == 6667,因为我们知道 IRC 服务通过6667端口,可以找到所有与蜜罐主机进行通信的 IRC 服务器,分别为:209.126.161.29、66.33.65.5863.241.174.144217.199.175.10209.196.44.172

 

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

  首先安装使用命令sudo apt-get install tcpflow在kali攻击机中安装tcpflow

 输入指令tcpflow -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"对其进行分析

得到了两个数据文件:209.196.044.172.06667-172.016.134.191.01152、172.016.134.191.01152-209.196.044.172.06667,一个报告文件:report.xml。

 

  输入命令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
  可以看到共有3462个主机访问过以209.196.44.172为服务器的僵尸网站

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

由于蜜罐即得特殊作用,所有发送到蜜罐得数据包都很可疑。
使用wireshark得统功能,将目的地址设置为172.016.134.191,查看都有哪些IP给蜜罐发送过数据包。

 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
可以看到有135、139、25、445、4899、80。使用wireshark筛选出源地址为172.16.134.191,tcp端口为135、139、25、445、4899、80的数据包,一次分析。

 端口135、139、25上虽有很多数据包但是没有什么数据传输,多为在建立连接,可能是在查点或者扫描

 ​ 端口80上的数据包比较复杂了,其中210.22.204.101发送了三个很大的的数据包,大概是在做缓冲区溢出攻击

 此外在80端口上,还发现24.197.194.106发送的消息包好像已经进入了主机,使用了cmd.exe,可能正在输入什么命令获得蜜罐的机密消息。

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

 端口445上的数据包即发现了,61.111.101.78向蜜罐放了PSEXESVC.EXE,这是一种蠕虫病毒的特征码,攻击者对系统注入了蠕虫病毒并成功获取了远程调用。

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

这次实验总体来说比较顺利,没有遇到问题

4.实践总结

 本次实践是网络攻防实践课程的第八次实践,主要是通过分析工具分析恶意代码,以获取利于我们远离风险的信息。通过本次实践,我学会了如何使用PEiD、IDA等工具,同时对针对一些端口的攻击命令也更敏感了。希望在接下来的大作业中,能将这八次实践的收获学以致用,为今后的进一步学习铺路架桥。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值