20212929 2021-2022-2 《网络攻防实践》实践8报告
1.实验内容
动手实践任务一
对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:
(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;
(2)使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;
(3)使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者是谁?
动手实践任务二:分析Crackme程序
任务:在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。
分析实践任务一:
分析一个自制恶意代码样本rada,并撰写报告,回答以下问题:
1、提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
2、找出并解释这个二进制文件的目的;
3、识别并说明这个二进制文件所具有的不同特性;
4、识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
5、对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
6、给出过去已有的具有相似功能的其他工具;
7、可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
分析实践任务二:
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.实验步骤
2.1 动手实践任务一
1) rada文件格式为PE32 运行平台为MSwindows(GUI),加壳工具为UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo。
2) 恶意代码的作者为Raul Siles和David P。
(1)查看文件类型
(2)查看可打印的字符串:strings RaDa.exe
发现全是乱码,推测是加壳导致的
(3)开始查壳
(4)使用超级巡警脱壳
(5)脱壳后再次查看strings
(6)使用IDA打开脱壳后的文件
(7)显示作者信息
2.2 动手实践任务二
2.2.1分析crackme1.exe
(1)试探输入格式
(2)打开IDA查看strings显示第一个为参数不对的情况、第三个是数量对但是内容不对情况
(3)查看函数调用图
(4)查看401280字段
(5)查看其汇编代码
(6)参数数量不匹配的输出
(7)猜测其为密码,密码错误时输出
(8)密码正确时输出
(9)进行验证输入crackme1.exe “I know the secret”
验证成功
2.2.2动手实践分析cramkme2.exe
(1)试探输入参数,可能输入一个参数
(2)打开IDA发现有两个是见过的
(3)查看函数调用图
(4)重点查看401280程序段
(5)查看401280函数图
(6)参数错误时为下图
(7)接下来为程序名匹配
(8)程序名对和不对时的显示
(9)当程序名正确之后为密码正确和不正确的判别
(10)进行验证,首先改名,然后输入crackmeplease.exe “I know the secret”
发现验证成功
(11)密码不正确则输出如下
2.3 分析一恶意代码样本
问题1:提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
l caaa6985a43225a0b3add54f44a0d4c7 *RaDa.exe
l RaDa.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
问题2:找出并解释这个二进制文件的目的;
l 使用HTTP协议,发动洪水攻击,并且修改注册表信息,然后在靶机中下载了文件
问题3:识别并说明这个二进制文件所具有的不同特性;
l 这个文件会先复制自己到C盘根目录下,然后修改注册表,并发动DDOS攻击。
问题4:识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
l 该文件使用UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo进行加壳
问题5:对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
l 该文件为后门文件,只是对指定的IP地址进行DDOS攻击。
问题6:给出过去已有的具有相似功能的其他工具;
l Back Orifice, NvBackControl, DDoS/Nitol.A.1562
问题7:可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
l 应该可以,在虚拟机下通过IDA的strings可以看到作者信息为Raul Siles & David perez 2004。
(1)首先打开process monitor的filter
(2)选择process name is rada.exe
(3)如图所示
(4)打开rada.exe,发现在C盘创建目录\RaDa\bin和一些临时文件
(5)Rada还进行了很多注册表的操作
(6)查看wireshark抓包
(7)验证发现确实在C盘创建文件
(8)查看rada.exe的md5值
(9)使用file RaDa.exe识别这个程序是PE32位的GUI文件。
(10)打开process explorer中的rada.exe,点击strings,发现软件连接了了10.10.10.10这个IP的rada_commands.html网站下载和上传了一些文件。
(11)在C盘创建了一个tmp文件用于放置下载的文件。
(12)开始DDOS攻击
(13)发现对注册表进行了读写和删除
(14)注册表中无任何信息
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
(15接下来执行了上传、下载、休眠、截图的命令
(16)查看作者信息
(17)查询受害者主机上可用的网络适配器的数据库查询语句
(18)使用PEiD查壳
(19)选择超级巡警脱壳
(20)将脱壳的程序放入IDA
(21)在IDA VIEW-A中查找aAuthors和sub_405E40
(22)在Functions中找到sub_405E40,双击
(23)查看flow chart
(24)在Function calls里面查看
(25)双击上面截图中的sub_40B010在function里面
(26)然后查看flow chart
(27)看到作者信息
2.4 分析二抓包分析
问题1:IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
l 因特网中继聊天(Internet Relay Chat),简称:IRC,是一种网络聊天协议,使用客户端连接到IRC服务器,再通过中继与其他用户交流。
l 加入IRC网络发送口令、昵称、用户信息(USER、PASS、NICK),之后就可以用JOIN信息来加入频道了。
l IRC的明文传输通常在6667端口监听,也会使用6660-6669端口,SSL加密传输在6697端口。
问题2:僵尸网络是什么?僵尸网络通常用于什么?
l 僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
l 僵尸网络可以同时对某一网站进行DDOS攻击等。
问题3:蜜罐主机(IP172.16.134.191)与那些IRC服务器进行通信
发现有66.33.65.58、63.241.174.144、209.126.161.29、217.199.175.10。
问题4:查看有多少不同的主机访问了以201.196.44.172为服务器的僵尸网络。
tcpflow -r botnet_pacp_file.dat 'host 209.196.44.172 and port 6667'
查看文件vim report.xml
显示一部分是从目标服务器发送出来的,一部分是从其他主机发送到目标主机的
输入命令export LC_COLLATE='C',export LC_CTYPE='C'
再输入
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
统计主机个数为3457
问题5:那些IP被用于攻击蜜罐主机
tcpdump -n s-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
使用命令查看可能连接的主机
共有165个可能连接的主机IP
问题6:攻击者尝试攻击了那些安全漏洞
使用命令查看流量分布:sudo snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
查看响应的TCP包: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响应端口为135(rpc)、139(netbios-ssn)、25(smtp)、4899(radmin)、80(http)。
查看UDP响应的端口: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只有137(netbios-ns)端口响应,这个端口在局域网中提供计算机的IP地址查询服务,处于自动开放状态,所以访问这个端口肯定就是NetBIOS了。
打开wireshark查看TCP135和25端口:tcp.port == 135|| tcp.port == 25。
发现只进行了连接,没有数据传输。猜测只对这两个端口使用了connect扫描。
查看tcp80端口:tcp.dstport==80&&ip.dst==172.16.134.191
查看图中这条TCP流,可能是缓冲区溢出攻击。
再查看下面这条,发现为蠕虫攻击,
查看80端口是否攻击成功:tcp.srcport==80&&ip.src==172.16.134.191&&http。
然后查看TCP流发现返回默认值,所以攻击没有成功
查看TCP139端口:tcp.dstport==139&&ip.dst==172.16.134.191。
发现有很多空的会话,应该是SMB查点
问题7:哪些攻击成功了,是如何成功的。
查看TCP445端口:tcp.dstport==445&&ip.dst==172.16.134.191。
发现一个PSEXESVC.EXE文件,是一个DV1DR32蠕虫,通过IRC进行通信
找出口流量,发现每个IP地址的都有响应,并且返回信息包含\PIPE\ntsvcs,这是一个远程调用,所以成功了。
查看TCP4899端口:tcp.dstport==4899&&ip.dst==172.16.134.191
4899是远程控制软件radmin服务端的监听端口,这个软件不是木马,攻击成功后上载这个软件方便控制。并且只有一个IP访问过主机210.22.204.101,
因此可以判断SVCCTL服务漏洞攻击成功,PSEXESVC蠕虫攻击成功。
3.问题
在输入tcpdump指令的时候,一定要仔细仔细再仔细。
4.感想
本次实验通过对各种反编译软件的使用,初步了解了如何分析恶意代码的步骤。通过对wireshark抓包的分析了解了攻击的具体过程。