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

实践八 恶意代码分析实践

1.实践内容

(1)动手实践任务一

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

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

(2)动手实践任务二

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

(3)分析实践任务一:

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

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

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

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

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

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

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

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

(4)分析实践任务二:

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

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

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

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

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

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

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

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

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

2.实践过程

(1)动手实践任务一

本实验在WinXPattacker虚拟机上进行,首先下载给定的恶意代码文件,并放到虚拟机中
在这里插入图片描述
使用PEiD工具对RaDa.exe进行分析,如下所示,可以看到,UPX外壳是0.89.6的版本,运行平台为32位windows系统
在这里插入图片描述
接下来使用超级巡警脱壳器打开RaDa.exe进行脱壳处理

在这里插入图片描述
打开IDA for free软件,对脱壳后产生的文件RaDa_unpacked.exe文件进行分析。从Strings Window查找表示人名的字符串,可以看到该代码的作者为Raul Siles和Davad Perez

在这里插入图片描述在这里插入图片描述

(2)动手实践任务二

下载提供的两个文件crackme1.exe和crackme2.exe,放到WinXPattacker中,尝试运行,无法输出成功结果

在这里插入图片描述
使用IDA软件打开crackme1.exe文件,通过string window查找类似输出信息的语句,并找到其在汇编代码中的位置,可以看到代码分别为四个字符串定义了四个变量
在这里插入图片描述

这四个字符串中其中两个在之前的试运行中可知是错误信息。打开函数调用关系图,可以看到函数sub_401280调用了strcmp、printf、fprintf等与字符串操作相关的函数

在这里插入图片描述
打开function窗口,找到sub_401280函数并跳转到所在代码的位置,可以看到代码将之前定义的字符串"I know the secret"和输入的字符串压栈并调用strcmp,strcmp函数将两个字符串参数进行比较,相同时使用jz语句跳转到401310代码,可以看到,401310代码就是输出另一个字符串“You know how to speak to programs, Mr.”

在这里插入图片描述
回到cmd窗口,输入"I know the secret",程序的输出果然改变了

在这里插入图片描述
用上述方法再分析crackme2.exe,首先得到两个非目标输出
在这里插入图片描述
同样在string窗口中找到相应字符串,此程序定义了5个字符串

在这里插入图片描述
查看函数调用关系图,锁定关键函数sub_401280

在这里插入图片描述
从function窗口中找到该函数并跳转到相应的代码,发现该代码首先将ebp-4地址处的字符串与"crackmeplease.exe"进行比较,若相同则跳转到401313进入下一步,否则回复"I have an identity problem."

在这里插入图片描述
接下来,程序将输入参数与"I know the secret"进行比较,若相同则跳转到401351进行下一部,否则回复"Pardon?What did you say"

在这里插入图片描述
查看最后一部分的代码,由jmp short loc_401358语句可以看出这一部分是一个循环语句,每一次循环实现的操作是将403080地址下的一个字节与42H异或并输出

在这里插入图片描述

查看403080地址下的内容,如下所示,可以看到是一段加密的信息,与42h进行异或运算或许就是解密的方法

在这里插入图片描述
根据代码分析,首先修改程序名为"crackmeplease.exe",然后输入"I know the secreat",此时输出了目标结果

在这里插入图片描述

(3)分析实践任务一:

首先使用md5sum RaDa.exe指令得到其md5摘要为caaa6985a43225a0b3add54f44a0d4c7

在这里插入图片描述

打开 IDA软件对RaDa_unpacked.exe进行分析,再string框中打开edit菜单中的setup选项,设置unicode类型,可以找到程序的作者为Raul Siles & David Perez

在这里插入图片描述
找到一个IP地址"10.10.10.10",可以看到其对应的函数为sub_404FB0。

在这里插入图片描述
找到参数的位置,发现其被40C030替换。找到该位置可以看到,其对应的函数为sub_4052C0

在这里插入图片描述
找到函数的位置,打开流程图,可以看到看到三个私有网段分别为192.168.、172.16.、10

其他问题回答:

  • 找出并解释这个二进制文件的目的
    利用其完全控制系统
  • 识别并说明这个二进制文件所具有的不同特性
    会自动安装到C盘中,并修改注册表跟随系统开机启动:访问http://10.10.10.10/Rada/Rada_command.html,还可以解析指令并执行指令
  • 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
    UPX加壳技术
  • 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
    不具有传播和感染的性质,故不属于病毒和蠕虫,同时也未将自己伪装成良性程序以,不是特洛伊木马,排除各种可能后这应该是一个后门程序
  • 给出过去已有的具有相似功能的其他工具
    木马Bobax、海阳顶端、木马Setiri

(4)分析实践任务二:

  • IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
    因特网中继聊天(Internet Relay Chat),简称IRC。IRC的工作原理非常简单,只需要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。IRC特点是通过服务器中继与其他连接到这一服务器上的用户交流。
    注册时需要发送的消息有三种,分别是口令,昵称和用户信息
    IRC服务器明文传输通常在 6667 端口监听,也会使用 6660—6669 端口。SSL加密传输在 6697 端口。
  • 僵尸网络是什么?僵尸网络通常用于什么?
    僵尸网络是指攻击者(称为botmaster)出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
    僵尸网络主要用于:发动DDOS攻击、发送垃圾邮件、监听用户敏感信息、记录键盘输入信息、扩散新的恶意软件和伪造点击量,骗取奖金或操控网上投票和游戏,同时黑客控制的这些计算机所保存的信息也都可被黑客随意"取用"。
  • 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
    打开kali,使用wireshark打开文件,由于IRC 服务是通过6667端口,过滤条件设置为ip.src == 172.16.134.191 && tcp.dstport == 6667,可以找到所有与蜜罐主机进行通信的IRC服务器:分别为209.126.161.29、66.33.65.58、63.241.174.144、217.199.175.10、209.196.44.172

在这里插入图片描述

  • 在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络?
    安装tcpflow,输入tcpflow -r botnet_pcap_file.dat ‘host 209.196.44.172 and port 6667’,得三个文件,172.016.134.191.01152-209.196.044.172.06667、209.196.044.172.06667-172.016.134.191.01152和report.xml,report.xml

在这里插入图片描述
使用grep过滤并计算可得,主机数为3461
在这里插入图片描述

  • 哪些IP地址被用于攻击蜜罐主机?
    输入tcpdump -n -nn -r botnet_pcap_file.dat ‘dst host 172.16.134.191’ | grep -v ‘reply’ | cut -d ‘.’ -f 10 | cut -d ‘:’ -f 1 | sort | uniq | more >1.txt; wc -l 1.txt查找到总共148个端口并输出到1.txt中

在这里插入图片描述

  • 攻击者尝试攻击了那些安全漏洞?
    输入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中筛选tcp.dstport==80 && ip.dst == 172.16.134.191

在这里插入图片描述
在来自218.25.147.83的数据包中追踪tcp数据流,可以看到代表蠕虫攻击的c:\notworm

在这里插入图片描述

过滤条件设置为tcp.dstport==445 && ip.dst == 172.16.134.191查看tcp445端口,追踪tcp流发现一个字符串PSEXESVC.EXE,这是一个类似于telnet的远程控制程序。通过字符串信息可以知道主机210.22.204.101对蜜罐使用了LAN Manager口令猜测,并且成功攻击。

在这里插入图片描述

  • 那些攻击成功了?是如何成功的?
    通过上面的分析可知,成功的攻击发起者是218.25.147.83(蠕虫攻击)和 61.111.101.78( LAN Manager 口令猜测)。

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

  • 问题1:反汇编工具IDA不会使用
  • 问题1解决方案:通过查阅资料教程学习IDA的功能使用

4.实践总结

本次实验流程较长,且具有一定的难度,实验需要掌握对各种分析工具甚至反汇编工具的使用。通过本实验我对这些工具有了一定的了解和使用,也提高了我的学习能力

参考资料

  • [《网络攻防技术与实践》诸葛建伟著]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值