渗透测试——网络服务渗透攻击

网络服务渗透攻击指的是:在以前的博客中描述的内存攻击中,以远程主机运行的某个网络服务程序为目标,向该目标服务开放端口发送内嵌恶意内容并符合该网络服务协议的数据包,利用网络服务程序内部的安全漏洞,劫持目标程序控制流,实施远程执行代码等行为,最终达到控制目标系统的目的。
以 Windows 系统平台为例,根据网络服务攻击面的类别来区分,可将网络服务渗透攻击分为如下三类:web

  • 针对 Windows 系统自带网络服务的渗透攻击
  • 针对 Windows 系统上微软网络服务的渗透攻击
  • 针对 Windows 系统上第三方网络服务的渗透攻击

针对 Windows 系统自带的网络服务渗透攻击

在针对网络服务渗透攻击中,因为 Windows 系统的流行程度,使得针对 Windows 系统上运行的网络服务程序成了高危对象。尤为是那些 Windows 系统自带的默认安装、启用的网络服务,如:SMB、RPC等。甚至有些服务对于特定服务器来讲是必须开启的,如一个网站主机的 IIS 服务。其中的经典案例包括:MS06-040、MS07-02九、MS08-06七、MS11-05八、MS12-020等。数据库

在 Windows 系统自带的网络服务中,常常受到攻击的主要包括如下几个:安全

① NetBIOS 网络服务
NetBIOS (Network Basic Input/Output System,网络基本输入输出) 为局域网内 Windows 系统上的应用程序实现会话层之间的通讯提供基本支持。
NetBIOS 以运行在 TCP/IP 体系中的 NBT (NetBIOS over TCP/IP) 协议来实现。具体包括在 UDP 137 端口上监听的 NetBIOS 名字服务,UDP 138 端口上的 NetBIOS 数据报服务、TCP 139 端口上的 NetBIOS 会话服务。
针对该服务的著名攻击包括:利用 MS000-047 安全漏洞 (NetBIOS Name Server Protocol Spoofing),攻击者经过发送一个恶意构造的名字冲突数据报,形成该服务崩溃,造成拒绝服务攻击;利用 MS03-034 安全漏洞,攻击者发送恶意构造的名字服务请求,经过得到的响应数据包来图案侧到内存中的敏感信息。服务器

② SMB 网络服务
SMB (Server Message Block,服务器消息块) 首先提供了 Windows 网络中最经常使用的远程文件与打印机共享网络服务;其次,SMB 的命名管道是 MSRPC 协议认证和调用本地服务的承载传输层。
SMB 做为应用层协议,既能够直接运行在 TCP 445 端口上,也能够经过调用 NBT 的 TCP 139 端口来接收数据。SMB 的文件与打印机共享服务中已被发现的安全漏洞达到数十个之多,其中能够致使远程代码执行的高危性漏洞也有十多个,包括:MS10-05四、MS10-012 等。网络

③ MSRPC 网络服务
MSRPC (MicroSoft Remote Procedure Call,微软远程过程调用) 是对 DCE/RPC 在 Windows 系统下的从新改进和实现,用以支持 Windows 系统中的应用程序可以无缝地经过网络调用远程主机上服务进程中的过程。
DCE/RPC 独立运行于网络传输层协议之上,采用的网络传输层协议包括 ncacn_ip_tcp (TCP 135 端口)、ncadg_ip_udp (UDP 135 端口)、ncacn_np (TCP 13九、445 端口) 等。其中,主要使用的是 ncacn_np (SMB 命名管道传输协议),也就是利用 SMB 命名管道机制做为 RPC 的承载传输协议 (MSRPC over SMB)。
在 MSRPC 自身可能存在安全漏洞 (如 MS09-026) 的同时,做为调用大量本地服务进程的网络接口,也经常被利用来出发这些本地服务中存在的安全漏洞。由此不少本地服务安全漏洞以 MSRPC over SMB 为通道进行攻击,MS05-039 安全漏洞就是其中之一。攻击者经过发送数据到远程主机上的 SMB 协议的 445 端口,经过 MSRPC 调用远程主机的即插即用 (Plug and Play Service) 服务,溢出该服务进程的栈缓冲区,达到控制主机的目的;而 Server 服务路径规范化处理不当漏洞 (MS08-067) 也是经过 MSRPC 协议,通过 SMB 服务通道,利用 Server 服务的 NetPathCanonicalize 方法中存在的安全漏洞。tcp

④ RDP 远程桌面服务
RDP (Remote Desktop Protocol,远程桌面协议) 由微软开发,提供给远程的客户端用户一个登录服务器的图形界面接口,服务默认运行于 TCP 3389 端口。
因为服务器的管理人员常常须要远程管理主机,因此服务器基本都会启用 RDP 服务。针对该服务的攻击也时有发生,除了口令猜想、破解等试图绕过认证的攻击以外,内存攻击也时有发生。2012 年爆出的 MS12-020 漏洞就是其中的典型例子。该漏洞存在于 RDP 服务的底层驱动文件 Rdpwd.sys 中,属于内核级漏洞。攻击者经过向远程主机的 3389 端口发送恶意数据包,形成服务程序使用一个不存在的指针,致使远程主机崩溃,达到拒绝服务攻击的目的。svg


针对 WIndows 操做系统上微软网络服务的渗透攻击

微软公司提供的网络服务产品常见的又:IIS Internet 服务、MS SQL Server 服务、Exchange 电子邮件服务、MSDTC 服务、DNS 域名服务、WINS 服务等。这些网络服务中存在着各类各样的安全漏洞,其中最多见的是针对 IIS Internet 服务和 MS SQL 数据库服务的攻击。测试

IIS Internet 服务集成了 HTTP、FTP、SMTP 等诸多网络服务。IIS 6.0 以前的版本包含大量的安全漏洞,其类型包括 信息泄露、目录遍历、缓冲区溢出等。在 IIS 6.0 推出后,安全性有较大提高,但仍然有很多高等级的安全漏洞,如 IPP 服务整数溢出漏洞 MS08-062、致使 FTP 服务远程代码执行漏洞 MS09-053、IIS 认证内存破坏漏洞 MS10-040 等。网站

MS SQL Server 服务时微软公司提供的数据库管理服务产品。使用 TCP 143三、UDP 1434 端口。针对该服务最著名的攻击是 2003 年 1 月爆发的 SQL Slammer 蠕虫。攻击者利用该服务中的一个安全漏洞 MS02-039,导致服务进程的缓冲区溢出。操作系统


针对 Windows 操做系统上第三方网络服务的渗透攻击

在操做系统中运行的非系统厂商提供的网络服务均可称之为第三方网络服务,与系统厂商提供的网络服务没有本质区别,比较常见的包括:提供 HTTP 服务的 Apache、IBM WebSphere、Tomcat 等;提供 SQL 数据库服务的 Oracle、MySQL;以及提供 FTP 服务的 Serv-U、FileZilla等。

攻击者一班在尝试攻击默认系统服务未果以后,每每会经过扫描服务的默认端口,来探测用户系统是否使用一些常见的第三方服务,尝试利用这些服务的弱点渗透对方系统。常见的此类攻击有针对 Serv-U 服务的空口令认证绕过及缓冲区溢出,攻击者可远程执行代码,控制目标服务器;以及针对 Oracle 服务的远程渗透攻击,形成目标服务的栈溢出,执行恶意代码。

摘自:《Metasploit渗透测试魔鬼训练营》