20231905 2023-2024-2 《网络攻防实践》实践八报告

20231905 2023-2024-2 《网络攻防实践》实践八报告

1.实践内容

动手实践任务一

对提供的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.实践过程

2.1 动手实践任务一

解压下载的压缩文件,将RaDa放入虚拟机WinXP的桌面

cd 桌面 进入桌面后输入 file RaDa.exe,查看该文件类型,发现这是一个有图形化界面(GUI)的 Win32 PE(可移植可执行)程序
请添加图片描述
用执行指令strings RaDa.exe来查看该程序可打印字符串,执行指令后发现可打印的字符串为乱码,无法分析出有效信息,所以判断该程序采用了加壳防止反汇编的技术
请添加图片描述
然后需要使用PEiD工具查看RaDa.exe的基本信息,先打开PEiD工具。
请添加图片描述

把RaDa.exe文件打开。可以看到文件的入口点、偏移、文件类型、EP段、汇编程序以及加壳类型。UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo即为该程序使用的加壳工具
请添加图片描述
接下来需要对RaDa.exe进行脱壳,先打开超级巡警虚拟机脱壳器,导入RaDa.exe文件,点击给我脱,即可生成脱壳文件,脱完之后输出为RaDa_unpacked.exe
请添加图片描述
再次使用PEiD工具来查看脱壳后的程序,可以看到编写该程序所使用的语言和开发工具为Microsoft Visual Basic 5.0/6.0
请添加图片描述
再用strings查看脱壳后的RaDa_unpacked.exestrings RaDa_unpacked.exe,可以看到有很多程序的交互字符串和程序的函数调用的函数名
请添加图片描述
接下来开始反汇编,首先打开IDA Pro Free,打开RaDa_unpacked.exe
请添加图片描述
从中可以看到作者的信息DataRescue sa/nv,还有作者的邮箱ida@datarescue.com,往下是一些函数调用、汇编代码

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

2.2.1 crackme1.exe

先对crackme1.exe进行破解。尝试运行该程序,试探其输入格式
请添加图片描述
可以发现,在接受1个参数时,程序的反馈与众不同,因此猜测该程序接受一个参数。
程序有两种反馈信息。一种是“I think you are missing something.”;另一种是“Pardon? What did you say?”

使用IDA pro工具来打开文件,尝试阅读其汇编语言。打开crackme1.exe
请添加图片描述
点击Strings窗口,可以查看到该程序中出现的明文字符串,发现了前面的两种反馈信息,“I think you are missing something.” “Pardon? What did you say?”,还发现了“I know the secret”和“You know how to speak to programs, Mr. Reverse-Engineer”这两个字符串。此外,可以看到有“GCC”,可以得知该恶意程序是用C语言编写的
请添加图片描述
在主页面上点击View-Graphs-Function calls,查看函数结构
请添加图片描述
推测程序是使用strcmp函数来比较口令的,因此关键的部分在sub_401280
接下来查看sub_401280的结构
请添加图片描述
可以看到cmp [ebo+arg_0],2指令是判断程序是否有两个参数。在c语言中,main函数通常为int main(int argc,const char **argv),第一个参数argc对应argv的大小,即参数个数;第二个参数对应命令行的格式。如果argc=2,那么去往loc_4012D2进行下一步判断,否则就进入false,输出“I think you are missing something.”
查看loc_4012D2,其内容为如果输入"I know the secret",则继续前往loc_401310
如果是false就返回"Pardon? What did you say?“如果是true则返回"You know how to speak to programs, Mr.”。。。
所以直接输入字符串"I know the secret"即可。
验证如下
请添加图片描述

2.2.2 crackme2.exe

首先,对crackme2.exe进行破解。尝试运行该程序,试探其输入格式,猜测该程序同样是接受一个参数
请添加图片描述
使用IDA pro工具来打开文件,尝试阅读其汇编语言。进入String界面,发现明文字符串“I know the secret”和“crackmeplease.exe”
请添加图片描述
查看整个程序的call flow
请添加图片描述
关键的部分还是在sub_401280这里,查看代码结构
请添加图片描述
cmp [ebp+arg_0],2判断程序参数是否为两个
通过参数个数的判断后,接着去loc_4012D5用strcmp函数对argc里面的第一个字符串,即程序名“crackme2.exe”和“crackmeplease.exe”进行判断。通过判断后,前往loc_401313将用户输入的口令与”I know the secret”判断。
测试验证:
输入 copy crackme2.exe crackmeplease.exe,接着输入crackmeplease.exe “I know the secret”
请添加图片描述

2.3 分析实践任务一

在winXP虚拟机进行,使用实验一中的rada,使用MD5对该恶意程序进行摘要信息分析。利用md5sum RaDa.exe指令得到其md5摘要值为caaa6985a43225a0b3add54f44a0d4c7。
请添加图片描述
使用命令file RaDa.exe分析该恶意程序的运行环境,结果为win32位程序,有图形界面
请添加图片描述
打开监视工具process explorer
双击运行恶意程序RaDa_unpacked.exe,打开process explorer
在进程监控里点击该恶意程序,右键选择Properties查看详细信息
请添加图片描述
可以发现该恶意程序对主机的注册表进行了读写和删除操作,恶意程序还在宿主主机中执行指定的命令,get下载,put上传,screenshot截屏,sleep休眠
请添加图片描述
还可以看到更准确详细的作者姓名Raul siles和David Perze
请添加图片描述
打开扫描工具wireshark,双击运行RaDa_unpacked.exe,设定搜索条件ip.addr==10.10.10.10,可以看到受害主机向目标主机 10.10.10.10 发送了大量的数据包
请添加图片描述

问题回答

(1)提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;
MD5摘要值:caaa6985a43225a0b3add54f44a0d4c7
基本信息:PE32 executable for MS Windows(GUI) Intel 80386 32-bit
(2)找出并解释这个二进制文件的目的;
是一个后门程序。可以进行http请求,使攻击者远程连接被控主机并进行一些指令操作,同时还修改了注册表使得文件具有开机自启动功能。
(3)识别并说明这个二进制文件所具有的不同特性;
程序被执行时会将自身安装到系统C盘中,并创建文件夹用来存放从攻击主机下载到受控主机的文件和从受控主机获取的文件;同时通过修改注册表的方式使得程序能够开机自启动;具有一定的隐蔽性。启动后主要就是以下过程:从指定的web服务器请求指定的web页面;解析获得的web页面,获取其中的指令;执行解析出来的指令,主要的指令上面给出;等待一段时间后继续按照这个循环执行。
(4)识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;
使用0.89.6版本的UPX壳进行加壳处理;通查看网卡地址判断系统是否运行在虚拟机上,若是则隐藏作者信息。
(5)对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;
后门程序。因为该程序不能自主传播,且没有伪装成正常功能的程序,可以供攻击者远程连接并用指令操纵被控主机。
(6)给出过去已有的具有相似功能的其他工具;
Bobax – 2004、Windows Update、海阳顶端等后门。
(7)可能调查处这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?
可能。通过Process Explorer查看strings可以找到作者名字是Raul Siles & David Perze,写于2004年。

2.4 分析实践任务二

回答问题

(1)IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?
IRC指的是因特网中继聊天(Internet Relay Chat)。IRC用户使用特定的用户端聊天软件连接到IRC服务器,通过服务器中继与其他连接到这一服务器上的用户交流。申请时需要发送口令,昵称和用户信息。格式如下:USER 、PASS 、NICK 。IRC服务器明文传输通常在6667端口监听,也会使用6660—6669端口。SSL加密传输在6697端口。
(2)僵尸网络是什么?僵尸网络通常用于什么?
僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。
可以一对多地执行相同的恶意行为,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,使得攻击者能够以极低的代价高效地控制大量的资源为其服务。
(3)蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信?
使用Wireshark打开数据文件
由第一问可知,IRC服务器明文传输通常在6667端口监听,所以设置的过滤条件ip.src == 172.16.134.191 and tcp.dstport == 6667 and tcp.flags.syn == 1
请添加图片描述
筛选之后,可以找到五个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 -r botnet_pcap_file.dat "host 209.196.44.172 and port 6667"读取文件进行筛选
请添加图片描述
接着执行export LC_COLLATE='C’和export LC_CTYPE='C’避免出现字符编码问题
然后进行搜索(grep搜索获取昵称输出行sed去除前缀,g表示全局,tr将空格转换为换行,tr -d删除\r,grep -v就是NOT指令,去除空行,sort -u排序并去除重复,wc -l输出行数)
得到结果是3457
请添加图片描述
(5)哪些IP地址被用于攻击蜜罐主机?
使用如下指令找出所有连接主机的IP地址(cut -d是指定字段的分隔符,uniq命令用于删除文本文件中重复出现的行),将结果输出到2.txt文件中,wc -l 2.txt显示行数
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 > 2.txt;wc -l 2.txt
请添加图片描述查找到165个被攻击的端口
(6)攻击者尝试攻击了那些安全漏洞?
使用snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii指令查看网络流分布情况
可以看到大部分都是TCP包,极少部分是UDP包。
请添加图片描述

接下来进一步筛选出响应的TCP和UDP包,命令如下(注意TCP包的筛选指令多了响应0x12的条件)
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包
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包

请添加图片描述
可以看到TCP响应端口为135、139、25、445、4899、80
UDP响应端口为137

wireshark打开pcap文件,首先查看TCP的135和25端口,设定筛选条件
tcp.port == 135 || tcp.port == 25
请添加图片描述
可以看到这两个端口只是进行了连接,并没有数据的交互,猜测攻击者对这两个端口进行了connect扫描
接下来分析445端口,445端口是SMB端口,设置过滤条件ip.dst == 172.16.134.191 and tcp.dstport == 445
请添加图片描述
在61.111.101.78发起的请求中发现了PSEXESVC.EXE,这是一种Dv1dr32蠕虫,通过IRC进行通信。发现每个IP地址连入的连接都有响应的回应,并且返回信息中含有\PIPE\ntsvcs,这是一个远程调用,所以攻击者肯定是获得了权限,攻击是成功的。
然后看80端口,设置筛选条件ip.addr == 172.16.134.191 and tcp.port == 80 and http,看到210.22.204.101向蜜罐发送了很多的C,可能在进行缓冲区溢出攻击。此外,24.197.194.106发起了很多次连接,这是不停地使用脚本在攻击IIS服务器的漏洞,从而获取系统权限。
218.25.147.83也访问了80端口,下方信息中发现了C:\notworm,这是一个红色代码蠕虫攻击。
请添加图片描述

接下来分析UDP的137端口,这个端口是NetBIOS相关协议,ip.dst == 172.16.134.191 and udp.port == 137
可以看到这里的所有IP地址进行访问的负载都是相同的,都是KAAAAA…AA的形式,这里推测应该是在进行NetBIOS查点
请添加图片描述
(7)那些攻击成功了?是如何成功的?
来自61.111.101.78的PSEXESVC.EXE,即Dv1dr32蠕虫攻击成功了。是通过向对TCP445端口发送含有PSEXESVC.EXE的数据包,且将PSEXESVC.EXE地址改到系统目录下攻击成功的。攻击成功后通过利用SVCCTL漏洞获取目标主机服务。

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

  • 问题1:kali上没有安装snort
  • 问题1解决方案:仍然在seed上执行命令
  • 问题2:在winXP虚拟机无法运行文件
  • 问题2解决方案:发现没有进入桌面

4.实践总结

本次实验内容多,难度大,恶意程序分析需要对编译原理有一定的了解,对函数的调用关系进行分析,既有专业知识,也需要大胆地猜想验证。分析pcap文件的难点在于筛选命令、分析思路和恶意代码的逻辑特征。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值