【实验作业】
- 搭建环境,安装所需软件,安装虚拟机,配置主机和虚拟机的网络、防火墙,
- 使主机和虚拟机可以互相ping通
- 根据安装手册安装所需软件以及Snort
成功启动Snort 因为在rule文件中设置的测试规则,所以在MySQL中查看报警信息
- 配置主机主机和虚拟机的网络、防火墙
两个主机ping不通,需要关闭防火墙,关闭防火墙后可以ping。
- 首先配置部署木马,在主机上利用木马控制端生成被控端,在虚拟机中运行被控端,使控制端和被控端正常通信,然后通过Wireshark抓包,分析木马的通信的特征。接着编写规则,将提取的规则写入Snort规则集。最后查看结果,通过mysql数据库查看结果
本实验主要采取了三个木马,灰鸽子、上兴木马、小熊木马
- 小熊远控
控制机中打开小熊远控配置器,配置上线地址为控制机IP,然后生成服务端 将生成的服务端在被控机中运行,小熊远控检测到被控机。 同时wireshark抓取到两者之间的通信,然后跟踪流信息,发现特征值。 在snort中的local.rules中配置规则 报警提示信息msg设为“xiaoxiong”,特征字段content设为上图中框出来的十六进制数,也可以直接用后面的字符串。 然后重复上述连接过程,打开数据库,发现报警信息xiaoxiong
- 上兴远控
生成服务端 同样被控机中运行木马,wireshark抓包,跟踪流 发现特征字段 Snort中添加规则 然后重复上述木马连接过程,打开数据库发现上兴远控报警提示信息
- 灰鸽子
首先生成服务器 在控制机中打开灰鸽子程序,配置病毒,将控制机的IP地址填入到其中,修改端口为8000,然后生成服务器。 将服务器在被控机上运行,此时发现控制机中的灰鸽子检测到被控机。 在上述步骤操作之前,我们需要先打开wireshark抓取控制机与被控机之间的通信。 在它们的包中找到特征字段。 跟踪流,寻找特征字段,这里我们发现两处可以使用的特征值 另一个特征字段 找到特征字段后,我们在snort中添加规则,将两处特征值都添加入规则中 然后断开连接,重新连接,打开数据库,检测出灰鸽子
这里使用fuzz-bunch来实现利用永恒之蓝(Eternalblue)漏洞进行攻击。
- 首先配置环境
安装python,并且配置系统环境变量path 然后使用python运行fuzz-bunch中的fb.py 然后设置控制机与被控机的IP地址 接着使用永恒之蓝漏洞 选择被控制机的操作系统,因为我们的机器是XP,所以这里选择的是XP,选择fuzzbunch模式。 这样就成功了,同样整个过程需要提前打开wireshark抓包。
- 寻找特征字段
永恒之蓝利用到了Windows的建立在tcp协议上的SMB协议进行通信。在tcp三次握手建立连接后,开始协商使用SMB 协议,进行通信。我们跟踪数据流寻找特征, 第一个特征,观察smb 协议数据流 为了确保准确,我们再寻找一个特征字段 首先我们了解一下为什么会产生永恒之蓝。 永恒之蓝产生的原理是通过向Windows服务器的SMBv1服务发送精心构造的命令造成溢出,最终导致任意命令的执行。 SMB_COM_NT_TRANSACT本身是不支持FEA LIST的,产生漏洞的为SMB_COM_TRANSACTION2命令。对于TRANSACTION系列的命令如果发送的长度过大,SMB会将该请求包拆分进行发送,从PCAP分析看正常的SMB连接之后,NT Trans Request的Total Data count 为0x10016大于FEA大小0x10000,TotalDataCount”值字段在NT Trans中为DWORD,在Trans2请求中为WORD。因此,此错误使得有可能在Trans2请求中发送大于65535(0xffff)限制的payload。 所以设立规则为,检测payload大小是否大于65535(0xffff)限制,如果大于,则可以判断是永恒之蓝漏洞。 攻击机利用TRANSACTION2和NT_TRANSACT的关键区别在于后者调用的数据包是前者大小的2倍,在使用NT_TRANSACT子命令在TRANSACTION2子命令前向靶机发送伪造的消息,就会使靶机出现验证错误。一旦攻击者完成初始的溢出,就可以利用SMBv1中的第3个漏洞来进行Heap Spraying(堆喷射),导致在给定地址分配一块内存。然后,攻击者就可以写入和执行shellcode来控制系统 在获得了以上信息后设立snort规则 重想使用fuzzbunch模块运用永恒之蓝漏洞,打开数据库,发现捕获到永恒之蓝。 |