20221915 2021-2022-2 《网络攻防实践》实践八报告

20221915 2021-2022-2 《网络攻防实践》实践八报告
恶意代码分析实践

1.实践内容

恶意代码类型

  • 后门:恶意代码将自身安装到一台计算机来允许攻击者访问。后门程序通常让攻击者只需很少的认证甚至无须认证,便可连接到远程计算机上,并可以在本地系统执行命令。
  • 僵尸网络:与后门类似,也允许攻击者访问系统。但是所有被同一个僵尸网络感染的计算机将会从一台控制命令服务器接收到相同的命令。
  • 下载器:这是一类只是用来下载其他恶意代码的恶意代码。下载器通常是在攻击者获得系统的访问时首先进行安装的。下载器程序会下载和安装其他的恶意代码。
  • 间谍软件:这是一类从受害者计算机上收集信息并发送给攻击者的恶意代码。比如嗅探器、密码哈希采集器、键盘记录器等。这类恶意代码通常用来获取E-mail、在线网银等账号的访问信息。
  • 启动器:用来启动其他恶意程序的恶意代码。
  • 内核套件:设计用来隐藏其他恶意代码的恶意代码。内核套件通常是与其他恶意代码(如后门)组合工具套装,来允许为攻击者提供远程访问,并且使代码很难被受害者发现。
  • 勒索软件:设计成吓唬受感染的用户,来勒索他们购买某些东西的恶意代码。
  • 发送垃圾邮件的恶意代码:这类恶意代码在感染用户计算机之后,便会使用系统与网络资源来发送大量的垃圾邮件。
  • 蠕虫或计算机病毒:可以自我复制和感染其他计算机的恶意代码。

恶意代码分析

  • 静态分析
    静态分析基础技术:包括检查可执行文件但不查看具体指令的一些技术。静态分析基础技术可以确认一个文件是否是恶意的,提供有关其功能的信息,有时还会提供一些信息让你能够生成简单的网络特征码。
    静态分析高级技术:主要对恶意代码内部机制的逆向工程,通过将可执行文件装载到反汇编器中,查看程序指令,来发现恶意代码到底做什么。这些指令时被CPU执行的,所以静态分析高级技术能够告诉你程序具体做了哪些事情。需要掌握汇编语言、代码结构、windows操作系统概念等专业知识。

  • 动态分析
    动态分析基础技术:涉及运行恶意代码并观察系统的行为,以移除感染,产生有效的检测特征码,或者两者。然而,在可以安全运行恶意代码之前,必须建立一个安全的环境,能够让你在避免对你的系统与网络带来的风险的前提下,研究运行的恶意代码。
    动态分析高级技术:用调试器来检查一个恶意可执行程序运行时刻的内部状态。动态分析高级技术提供了从可执行文件中抽取详细信息的另一个路径。

2.实践过程

动手实践任务一

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

1.使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
我们打开kali的终端 使用file工具 输入file RaDa20221915.exe 发现RaDa的文件类型为32位操作系统下的PE文件,有GUI界面。
在这里插入图片描述

我们使用PEiD工具,使用后可以看到rada的基本信息。发现文件的入口点为0000FD20、文件偏移为00004120、EP段为JDR1,加壳类型为UPX壳。
在这里插入图片描述

打开kali终端输入strings RaDa.exe查看RaDa.exe中的可打印字符串,发现都是乱码。
在这里插入图片描述

2.使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理。
我们打开WinXP中的超级巡警脱壳工具,对RaRa恶意文件进行脱壳。
在这里插入图片描述

我们使用字符串提取工具strings,分析脱壳后的rada恶意文件,我们可以看到rada恶意代码的作者。
输入命令strings RaDa_unpacked.exe,查看脱壳后的rada恶意文件中可打印的字符串,发现其中有很多的调用函数。
在这里插入图片描述

这时我们打开WinXP中的监控软件process explorer,运行RaDa_unpacked.exe,右键查看程序属性,可以看到作者名字为:Raul siles&David Perze,写于2004年。在这里插入图片描述

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

任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
1)使用file命令分析该恶意程序的大致信息。
首先我们使用file执行命令file crackme1.exe和file crackme2.exe查看两个文件信息,我们可以看到这两个文件都为windows系统下可运行32位程序,是命令行程序,没有图形界面。
在这里插入图片描述

2)对 crackme1.exe 进行分析。
接着我们在WinXP的cmd中输入crackme1.exe,运行程序,试探输出格式。
在这里插入图片描述

接着我们使用IDA 工具打开crackme1.exe进行分析,选择文件类型为PE。在Strings页面可以发现该程序中出现的明文字符串,我们发现了刚刚没测试得到的另外两个字符串“I know the secret”和“You know how to speak to programs, Mr.Reverse-Engineer”,初步猜测前者是我们需要的口令,后者是口输入令正确时的程序反馈信息。
在这里插入图片描述

我们进入loc_4012D2模块,判断第二个参数是否为I have an identity problem.,如果不是则输出Pardon? What did you say?,如果是,则进入loc_401310模块,并输出You know how to speak to programs, MrReverse-Engineer。
在这里插入图片描述

3)对 crackme2.exe 进行分析
我们使用IDA pro工具打开crackme2.exe文件并且查看函数调用情况。
在这里插入图片描述

在这里插入图片描述
从图中可以看到crackme2.exe的主函数与crackme1.exe相似,上来也是判断是否有两个参数。如果就一个参数,则输出I think you are missing something,如果有两个参数则跳转到loc_4012D5模块。

当进入到loc_4012D5模块,会判断第一个参数也就是程序命是不是“crackmeplease.exe”如果不是,将会输出I have an identity problem.如果是,则会进入loc_401313模块。

继续进入loc_401313模块,会判断第二个参数是不是”I know the secret“如果不是,则输出"Pardon? What did you say?"如果是,则进入loc_401351模块。

继续进入loc_401351模块后,程序进入一个循环,设置变量ebp+var_4的值为0,我们让ebp+var_4与21h比较,如果不大于则输出一串字符,具体是 unk_403080 中的字符串分别与0x42h 进行异或运算。
在这里插入图片描述

分析实践任务一:

分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息:
我们在kali中输入命令md5sum Rada.exe,得到md5摘要为“caaa6985a43225a0b3add54f44a0d4c7”
在这里插入图片描述

在这里插入图片描述

使用我们打开WinXP中的Process Explorer软件监视脱壳后的RaDa_unpacked.exe,打开Strings选项对其进行分析
我们发现首先访问的是http://10.10.10.10/RaDa将RaDa_commands.html复制到C:\RaDa\tmp
在这里插入图片描述
在这里我们看出进行了Ddos攻击,并且在这里修改了注册表,把rada.exe设置到了启动项。
在这里插入图片描述
在这里我们发现了作者的信息Raul Siles & David Perez,2004
在这里插入图片描述

1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
文件的摘要是caaa6985a43225a0b3add54f44a0d4c7,这是一个PE可以执行文件,同时这也是一个UPX加壳
2、找出并解释这个二进制文件的目的;
这个二进制文件是一个后门程序,攻击者可以利用其完全控制该系统,当然只要用户上网,攻击者就可以随意玩弄。
3、识别并说明这个二进制文件所具有的不同特性;
当RaDa.exe被执行时,会在C盘下创建一个RaDa目录,并创建一个bin文件夹,一个tmp文件夹,tmp文件夹用来临时存储从目标主机下载到受害主机的文件和从受害主机获取的文件信息,bin文件夹中安装了一个RaDa.exe可执行文件。
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
UPX 加壳
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
是一种后门程序,因为没有传播性,也没有实际性的伤害,所以断定为后门程序
6、给出过去已有的具有相似功能的其他工具;
Bobax
7、可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可以调查出 作者于2004年,由Raul siles和David Perze二人编写,脱壳后用strings就能看到。

分析实践任务二

分析实践任务二:
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端口?
IRC是一种互联网上中继聊天的协议。
申请加入的时候要发送口令、昵称和用户信息:USER 、PASS 、NICK 。
明文传输时使用6667端口,ssl加密时用6697端口。
2、僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
僵尸网络主要用于,发动DDOS攻击、发送垃圾邮件、监听用户敏感信息、记录键盘输入信息、扩散新的恶意软件和伪造点击量等。
3、蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
我们在kali中打开botnet_pcap_file.dat,输入命令ip.src == 172.16.134.191 && tcp.dstport == 6667,因为IRC通过6667端口进行监听。从筛查结果中可以找到五个IRC服务器,分别为:209.126.161.29 66.33.65.58 63.241.174.144 217.199.175.10 209.196.44.172
在这里插入图片描述
在这里插入图片描述
4、在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
我们打开终端使用tcpflow工具然后输入tcpflow -r botnet_pcap_file.dat’host 209.196.44.172 and port 6667’获取209.196.44.172与172.016.134.191之间的所有的 IRC 数据包,得到了三个文件,172.016.134.191.01152-209.196.044.172.06667、209.196.044.172.06667-172.016.134.191.01152和report.xml,report.xml

在这里插入图片描述
在这里插入图片描述
5、哪些IP地址被用于攻击蜜罐主机?
我们输入命令tcpdump -n -nn -r /home/kali//botnet_pcap_file.dat ‘dst host 172.016.134.191’ | grep -v ‘reply’ | cut -d ‘.’ -f 10 | cut -d ‘:’ -f 1 | sort | uniq | more >1.txt; wc -l 1.txt,可以看到有36个被攻击的端口。在这里插入图片描述

  1. 攻击者尝试攻击了那些安全漏洞?
    我们使用tcpdump筛选出蜜罐主机有哪些端口为响应的。
    输入指令tcpdump -r /home/kali/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打开文件botnet.pcap,分析端口,wireshark中输入命令tcp.dstport80 && ip.dst == 172.16.134.191进行筛选,这些是目标地址为172.16.134.191、目标端口为80的数据包。在这里插入图片描述

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

在这里插入图片描述
输入tcp.dstport445 && ip.dst == 172.16.134.191来看TCP 445端口,发现一个PSEXESVC.EXE字符串,是由61.111.101.78发起的。
在这里插入图片描述
我们输入ip.dst==210.22.204.101,通过字符串信息可以知道主机210.22.204.101对蜜罐使用了LAN Manager口令猜测,并且成功攻击
在这里插入图片描述

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

问题1:kali中没有tcpflow
问题1解决方案:输入apt-get install tcpflow
问题2:kali中的wireshark出了点问题
问题2解决方案:使用windows10 的wireshark

4.实践总结

这个实践让我们把之前用过的工具都复习了一遍,并且学到了新的东西。总的来说这次实践还是比较复杂的,但是最终完成了本次实践

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值