1.3.2 渗透测试过程与攻击的手段
一般情况下,黑客在实施渗透攻击的过程中,多数采用的是从外部网络环境发起的非法的黑盒测试,对攻击的目标往往是一无所知。这时就需要先采用各种手段来收集攻击目标的详细信息,通过获取的信息制定渗透入侵的方案,从而打开进入内网的通道,再通过提升权限进而控制整个目标网络,完成渗透攻击。如图1-52 所示就是攻击者渗透入侵的几个阶段。
图1-52 渗透测试的几个阶段和步骤
1. 收集并分析信息,制定渗透入侵方案
信息的收集是非常重要的,它决定了攻击者是否能准确地定位目标网络系统安全防线上的漏洞,攻击者所收集的一切信息,一般都是目标系统中的一些小小的漏洞、开放的端口等。
信息收集主要分为如下几类。
● 边缘信息收集。在这一过程中,获取的信息内容和方式主要是目标网络系统中的一些边缘信息,如目标网络系统公司的结构、各部门职能、内部员工账号组成、邮件联系地址、QQ或MSN号码、各种社交网络账号与信息等。
● 网络信息收集。在这一过程中需要收集目标网络的各种网络信息,其最终目的是要获取目标网络拓扑结构、公司网络所在区域、子公司IP地址分布、VPN接入地址、各种重要服务器的分布、网络连接设备等信息。所使用的手段包括Google Hacking、WHOIS查询、DNS域名查询和网络扫描器等。
● 端口/服务信息收集。在这一过程中,攻击者会利用各种端口服务扫描工具,来扫描目标网络中对外提供服务的服务器,查询服务器上开放的各种服务,如Web、FTP、MySQL、SNMP等服务。
● 漏洞扫描。通过上述的信息收集,在获得目标网络各服务器开放的服务之后,就可以对这些服务进行重点扫描,扫出其所存在的漏洞。常用的扫描工具主要有:针对操作系统漏洞扫描的工具,包括X-Scan、ISS、Nessus、SSS、Retina等;针对Web网页服务的扫描工具,包括SQL扫描器、文件PHP包含扫描器、上传漏洞扫描工具,以及各种专业全面的扫描系统,如AppScan、Acunetix Web Vulnerability Scanner(如图1-53所示)等;针对数据库的扫描工具,包括Shadow Database Scanner(如图1-54所示)、NGSSQuirreL,以及SQL空口令扫描器等。另外,许多入侵者或渗透测试人员也有自己的专用扫描器,其使用更加个性化。
图1-53 Acunetix Web Vulnerability Scanner入侵渗透检测工具
图1-54 Shadow Database Scanner数据库漏洞扫描工具
● 制订渗透方案。在获取了全面的网络信息并查询到远程目标网络中的漏洞后,攻击者就可以开始制订渗透攻击的方案了。入侵方案的制订,不仅要考虑到各种安全漏洞设置信息,更重要的是利用网络管理员心理上的安全盲点,制订攻击方案。
2. 寻找突破口,进入内部网络
渗透攻击者可以结合上面扫描获得的信息,来确定自己的突破方案。例如,针对网关服务器进行远程溢出,或者是从目标网络的Web服务器入手,也可以针对网络系统中的数据库弱口令进行攻击等。寻找内网突破口常用的攻击手法有:
● 利用系统或软件漏洞进行的远程溢出攻击;
● 利用系统与各种服务的弱口令攻击;
● 对系统或服务账号的密码进行暴力破解;
● 采用Web脚本入侵、木马攻击。
最常用的两种手段是Web脚本攻击和木马欺骗。攻击者可以通过邮件、通信工具或挂马等方式,将木马程序绕过网关的各种安全防线,发送到内部诈骗执行,从而直接获得内网主机的控制权。
3. 纵向提升权限,获取目标主机的最高控制权
通过上述步骤,攻击者可能已成功入侵目标网络系统对外的服务器,或者内部某台主机,但是这对于进一步的渗透攻击来说还是不够。例如,攻击者入侵了某台Web服务器,上传了Webshell控制网站服务器,但是却没有权限安装各种木马后门或运行一些系统命令,此时就需要提升自己的权限,从而完全获得主机的最高控制权。
4. 绕过防火墙等,突破内网环境限制
在对内网进行渗透入侵之前,攻击者还需要突破各种网络环境限制,例如网络管理员在网关设置了防火墙,从而导致无法与攻击目标进行连接等。
突破内网环境限制所涉及的攻击手段多种多样,如防火墙杀毒软件的突破、代理的建立、账号后门的隐藏破解、3389远程终端的开启和连接等。
其中最重要的一点是如何利用已控制的主机,连接攻击其他内部主机。采用这种方式的原因是目标网络内的主机是无法直接进行连接的,因此攻击者往往会使用代理反弹连接到外部主机,会将已入侵的主机作为跳板,利用远程终端进行连接入侵控制。
5. 内网信息扫描与收集
在成功完成上述步骤后,攻击者就完全控制了网关或内部的某台主机,并且拥有了对内网主机的连接通道,这时就可以对目标网络的内部系统进行渗透入侵了。但是,在进行渗透攻击前,同样需要进行各种信息的扫描和收集,尽可能地获得内网的各种信息。例如,当获取了内网网络分布结构信息后,就可以确定内网中最重要的关键服务器,然后对重要的服务器进行各种扫描,寻找其漏洞,以确定进一步的入侵控制方案。
6. 横向提升权限,获取整个网络的控制权
经过上述的操作步骤,攻击者虽然获得了当前主机的最高系统控制权限,然而当前的主机在整个内部网络中的可能仅仅是一台无关紧要的客服主机,那么,攻击者要想获取整个网络的控制权,还必须横向提升自己在网络中的权限。
在横向提升自己在网络中的权限时,往往需要考虑到内网中的网络结构,确定合理的提权方案。例如:对于小型的局域网,可采用嗅探方式获得域管理员的账号密码,也可直接采用远程溢出方式获得远程主机的控制权限。对于大型的内部网络,攻击者可能还需要攻击内部网网络设备,如路由器、交换机等。总之,横向提升自己在网络中的权限,所用到的攻击手段依旧是远程溢出、嗅探、密码破解、ARP欺骗、会话劫持和远程终端扫描破解连接等。
7. 渗透入侵成功
攻击者在获得内网管理员的控制权后,整个网络就在自己的掌握之中了,渗透入侵成功。