一、实验内容
1.恶意代码文件类型标识、脱壳与字符串提取
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
2.使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。
3.分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
(2)找出并解释这个二进制文件的目的;
(3)识别并说明这个二进制文件所具有的不同特性;
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
(6)给出过去已有的具有相似功能的其他工具;
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
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)那些攻击成功了?是如何成功的?
二、实验过程
2.1恶意代码文件类型标识、脱壳与字符串提取
2.1.1在kali中使用fike查看文件类型
2.1.2使用Stud_PE工具查看rada
2.1.3使用超级巡警工具对文件进行脱壳,提示存在壳的样本库,对程序进行自动脱壳
2.1.4在kali中使用strings命令查看脱壳后的程序RaDa_unpacked.exe,可以看到一些字符串和乱码
2.1.5执行RaDa_unpacked.exe程序,在Win10中使用ProcessExplorer查看程序的Properties
2.2使用IDA Pro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息
2.2.1 检查两个文件的完整性,计算其md5的值
在kali中输入md5sum和file命令查看md5值和文件类型
2.2.2 尝试对crackme1.exe进行分析
调整输入参数个数,查看输出
2.2.3 用IDA pro进行分析
进行反汇编,查看汇编代码
根据代码猜测程序会通过判断参数个数,如果参数不为1,则会输出i think you are missing something
如果为1的话会进行进一步判断
如果输入参数为"I know the secret"
则会跳转到函数loc_401310
输出:You know how to speak to programs, Mr.
否则会接着运行,输出:Pardon? What did you say?
通过view→Graphs→function calls 查看函数调用图,验证猜想
查看crackme2.exe
其结构与1相似
首先是判断参数个数
接着会判断自己的程序名是否为:"crackmeplease.exe"。
如果不是的话,会输出:"I have an identity problem.\n"
如果是的话会跳转到下面的代码
与1相同,判断输入参数是否是"I know the secret"
验证:
2.3分析一个自制恶意代码样本rada
2.3.1 提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
在kali生成md5摘要
可以得到MD5值为:caaa6985a43225a0b3add54f44a0d4c7
2.3.2 找出并解释这个二进制文件的目的;
使用process explorer监听脱壳后的RaDa程序
发现会
1.与10.10.10.10建立连接
2.访问RaDa_commands.html文件
3.将自己复制到C:\Rada\bin中
4.将自己加入自启项
5.可以发动DDos攻击
2.3.3 识别并说明这个二进制文件所具有的不同特性;
可以自我复制,修改系统设置
主动向外部建立网络连接,绕过入站规则,建立后门
2.3.4 识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
使用了加壳工具,需要脱壳才能查看其中内容
2.3.5 对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
应该是后门程序,后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。
程序可以通过与10.10.10.10的网站进行通信,获取指令对计算机进行控制。所以它应该是后门程序。
2.3.6 给出过去已有的具有相似功能的其他工具;
Bobax、GatSlag等,可以从外部获取指令在宿主机中执行。
2.3.7 可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
通过PE程序可以查看到
2.4取证分析实践
Windows 2000系统被攻破并加入僵尸网络
问题: 数据源是Snort收集的蜜罐主机5天的网络数据源,并去除了一些不相关的流量,同时IP地址和其他敏感信息被混淆。回答下列问题:
2.4.1 IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
因特网中继聊天,一般称为互联网中继聊天,简称:IRC。它是一种网络聊天协议。只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为"Channel"(频道)的地方就某一话题进行交谈或密谈。每个IRC的使用者都有一个Nickname(昵称)。
2.4.2 僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
僵尸网络通常被用来发起大规模的网络攻击,如DDos攻击。
2.4.3 蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
可以将过滤规则设为:ip.src == 172.16.134.191 && tcp.dstport == 6667 || tcp.dstport == 6697进行搜索
从上图可以找到五个IRC服务器,地址分别为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为服务器的僵尸网络?
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
2.4.5 哪些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 > 1.txt;wc -l 20192416.txt
2.4.6 攻击者尝试攻击了那些安全漏洞?
查看网络流的分布情况
snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
可以看到由多数TCP包和少数UDP包组成
输入
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端口
tcp端口有135、139、25、445、489、80
udp端口有137
使用wireshark查看tcp的135、139端口,udp的139端口
tcp.dstport == 135 && ip.dst == 172.16.134.191
tcp.dstport == 25 && ip.dst == 172.16.134.191
tcp.dstport == 139 && ip.dst == 172.16.134.191
可以看到135和29端口只建立了tcp连接
在139端口中发现了跟netbios有关的NBSS和SMB包
查看445端口
tcp.dstport == 445 && ip.dst == 172.16.134.191
发现涉及到PSEXESVC.EXE文件,该文件可以让黑客获取宿主机的权限从而进行控制
查看80端口
tcp.dstport == 80 && ip.dst == 172.16.134.191
在tcp流中发现存在蠕虫
2.4.7 那些攻击成功了?是如何成功的?
218.25.147.83对172.16.134.191的蠕虫攻击成功实现了
三、问题及解决方案
问题一:win10环境下运行不了IDA
解决方案:以兼容模式运行
属性->兼容性->兼容性->winxp(sp3)
四、学习感悟、思考等
本次实验内容非常多,花了几天才算是断断续续做完。在此次实验中我们首先尝试着对恶意代码进行分析,通过各种工具,我们可以得到恶意代码的各种各样的信息。在此次实验中我也发现了自己的许多不足,由于对于汇编语言不够熟悉,在crackme文件的分析时,需要反复搜索汇编语言的用法,对于代码一些功能只能靠猜。总的来说,本次实验让我学到了很多。