20211914涂可新 2021-2022-2 《网络攻防实践》实践八报告

1.实践内容

恶意代码

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

恶意代码分类

不同恶意代码的特点

2.实践过程

动手实践任务一

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

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

step1
从云班课下载rada.rar解压后移植到WinXPattacker中,然后查找到RaDa.exe的路径。

step2
通过命令:cd C:\Documents and Settings\Administrator\桌面打开指定目录,在该目录下输入命令:file RaDa.exe即可查看RaDa的文件类型。


由上图可知,RaDa是一个32位的exe文件,另外PE代表Portable Executable,说明这是一个可执行文件,GUI代表Graphical User Interface,说明这个文件具有图形化窗口。
step3
找到PEiD工具,使用它查看RaDa.exe的加壳工具,点击右下方的扩展信息还可以看到检测文件为


由上图查看结果可知RaDa.exe文件的入口点、文件偏移、EP段、首字节等信息,且加壳工具为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo。
step3
输入命令:strings RaDa.exe以提取RaDa.exe文件中可打印的字符串,结果如下图所示,都是一些乱码。

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

step1
找到用超级巡警脱壳机,选择RaDa.exe对其脱壳,得到脱壳后的文件RaDa_unpacked.exe。


step2
再次输入命令:strings RaDa_unpacked.exe以提取脱壳后RaDa_unpacked.exe文件中可打印的字符串,结果如下图所示,都是调用函数。

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

step1
找到IDA Pro Free工具,选择RaDa_unpacked.exe,以对脱壳后的rada恶意代码样本进行分析。


step2
由下图分析结果可知,rada恶意代码的编写作者是Raul Siles和David Perez这两人。

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

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

(1)分析crackme1.exe

step1
从云班课下载crackme1.exe与crackme2.exe

step2
通过命令:cd C:\Documents and Settings\Administrator\桌面打开指定目录,在该目录下输入命令:file crackme1.exe即可查看crackme1.exe的文件类型为exe文件。

step3
现在进行参数猜测,分别输入1个参数、2个参数、3个参数、4个参数,发现只有输入1个参数时得到的输出结果为Pardon? What did you say?,其它个数参数的输入结果则为I think you are missing something。故猜测该程序的输入有一个以上的参数。

step4
找到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代表输出成功信息。

step5
打开函数调用图

step6
分析函数调用图,可知字符串比较函数strcmp和输出函数fprintf和printf均是sub_401280函数的子函数。

于是打开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了。

step7
由step6的分析可知,我们寻找的特定输入是I know the secret,验证一下得到了正确的输出信息You know how to speak to programs,Mr Reverse Engineer,表明我们的分析是正确的。

(2)分析crackme2.exe

step1-5
操作如(1)一致,不再赘述。
step6
分析函数调用图,可知字符串比较函数strcmp、输出函数fprintf、putchar均是sub_401280函数的子函数。

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

step7
由step6的分析可知,我们寻找的特定输入是I know the secret,且要将程序名修改为crackmeplease.exe。
那么输入命令copy crackme2.exe crackmeplease.exe将crackme2.exe改名crackmeplease.exe,然后验证一下得到了正确的输出信息We have a little secret: Chocolate(哈哈哈,有点可爱),表明我们的分析是正确的。

分析实践任务一:

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

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

输入命令md5sum Rada.exe,输出即为Rada.exe文件的md5摘要:caaa6985a43225a0b3add54f44a0d4c7

输入命令file RaDa.exe查看文件格式和操作环境等帮助识别同一样本的基本信息

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

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

step1
找到监视工具Process Explorer对脱壳后的文件RaDa_unpacked.exe进行监视

step2
与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这两人。

分析实践任务二:

Windows 2000系统被攻破并加入僵尸网络

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

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

  • IRC的全称是Internet Relay Chat,即网络聊天协议,其工作原理为用户在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上,这样一来A和B的聊天可以通过C中继服务器进行中转,方便群聊功能。代表组织有:Freenode,Libera.Chat。
  • 当IRC客户端申请加入一个IRC网络时将发送四种消息:USER、PASS、NICK、JOIN。其中注册时发送口令PASS、昵称NICK、用户信息USER;完成注册后,发送JOIN加入服务器。
  • IRC一般使用6667端口(明文传输监听)、6697端口(SSL加密传输)。

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

  • Botnet(僵尸网络)是由“robot”(机器人)和“network”(网络)两个单词组合而成(挺有意思的)。网络犯罪分子使用特殊的木马病毒破坏多台用户计算机的安全,控制每一台计算机,然后将所有受感染的计算机组成一个能够让犯罪分子远程管理的“机器人”网络。通常,网络犯罪分子会寻求感染和控制成千上万,甚至数百万台计算机,使自己成为一个大型“僵尸网络”(或者说机器人网络)的主人,进而能够发起分布式拒绝服务 (DDoS) 攻击、大规模垃圾邮件活动或其他类型的网络攻击。在某些情况下,网络犯罪分子将建立一个大型僵尸计算机网络,然后将僵尸网络的访问权限以出租或直接出售的形式卖给其他犯罪分子。垃圾邮件发送者可能租用或购买一个网络来发起一个大规模的垃圾邮件活动。
  • (1)僵尸网络通常往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件。
  • (2)僵尸网络的规模、速度和混淆归因能力使其成为有用的间谍工具。
  • (3)僵尸网络也被证明对破坏关键互联网服务相当有用。
  • (4)僵尸网络也有能力传播虚假消息。

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

用wireshark打开botnet_pcap_file.dat文件
IRC协议使用TCP连接与6667端口
输入命令ip.src==172.16.134.191 and tcp.dstport == 6667进行过滤

分析结果可知,蜜罐主机与209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172这五个IRC服务器进行了通信。

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

输入指令sudo apt-get install tcpflow安装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查看209.196.044.172.06667-172.016.134.191.01152中有多少不同的主机访问了以209.196.44.172为服务器的僵尸网络。由查看结果可知,有3461个不同的主机访问了以209.196.44.172为服务器的僵尸网络。

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 > 20211914.txt;wc -l 20211914.txt,将给蜜罐主机(IP地址:172.16.134.191)发送消息的可疑IP地址都筛选出来,输出到20211914.txt文档中。

由上图分析结果可知,有165个IP地址疑似被用于攻击蜜罐主机,打开20211914.txt可看到这些IP的详细地址。

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端口安全漏洞。由分析结果可知,攻击者尝试攻击的TCP端口安全漏洞有135、 139、 25、 80、445、 4899 。

输入指令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端口安全漏洞。由分析结果可知,攻击者尝试攻击的UDP端口安全漏洞有137。

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

端口135、端口139、端口25有很多数据包,但都是建立连接,大多是空会话,这是在SMB查点或者扫描,没有攻击。


端口80
这里发现了很大的数据包,说明说明攻击者想通过缓冲区溢出攻击来获得命令行。

这里发现了很多使用cmd.exe的信息,可能是使用攻击脚本获取蜜罐的消息。

端口445
这里发现了PSEXESVC.EXE,PSEXESVC.EXE是一种Dv1dr32蠕虫病毒的特征码,说明攻击者对系统注入了蠕虫病毒,然后远程控制主机、获取权限。

端口4899
这里发现只有IP210.22.204.101与4899端口有通信,说明4899端口是radmin服务端监听端口。

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

  • 问题1:在crackme1.exe程序中输入了分析得到的特定输入,但是提升这个命令无效。
  • 问题1解决方案:I know the secret加双引号改为"I know the secret"
  • 问题2:没有安装tcpflow。
  • 问题2解决方案:输入命令sudo apt install tcpflow安装即可。

4.实践总结

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

参考资料

posted @ 2022-05-08 22:54  20211914涂可新  阅读(4)  评论(0编辑  收藏  举报