服务器端信息测试主要是从服务器对客户端开发的信息角度来测试服务器被攻击的可能性,以 及被攻击的难易程度。主要需要测试以下几方面的信息: 服务器允许运行账号权限测试。 Web 服务器端口测试。 Web 服务器版本信息测试。 HTTP 方法测试。 HTTP DELETE 方法测试。 HTTP PUT 方法测试。 HTTP TRACE 方法测试。
HTTP MOVE 方法测试。 HTTP COPY 方法测试。 (1)服务器允许运行账号权限测试。 一般地,运行 Web 服务器所在的操作系统所开放的账号权限越高,那么 Web 服务器遭到攻击 的可能性越大,并且产生的危害也越大。因此,不应使用 Root、Administrator 等特权账号或高级 别权限的操作系统账号来运行 Web 系统,应该尽可能地使用低级别权限的操作系统账号,以此降 低 Web 服务器被攻击的风险。 测试时登录 Web 服务器操作系统,查看运行 Web 服务器的操作系统账号,确定操作系统的账 号是否为 Root、Administrator 等特权账号或高级别权限账号,如果是,则存在漏洞。 对于 Windows 操作系统:打开 Windows 任务管理器,选择“进程”选项卡,选中“显示所有 用户的进程”复选框,检查运行 Web 服务器的账号。 对 UNIX 或 Linux 系统:运行“ps–ef|grep java”命令,返回结果第一列的操作系统用户就是 运行 Web 服务器的账号。例如以下运行信息: root 4035 4010 0 17:13 pts/2 00:00:00 grep java
(2)Web 服务器端口测试。 有时 Web 服务器除业务端口外还会开放一些默认端口(如 JBoss 开放的 8083),这些默认端口 对最终用户是不需要开放的,而且也不会维护,容易被攻击,本测试的目的在于发现服务器上未使用的 Web 端口。 可以使用端口扫描工具对 Web 服务器域名或 IP 地址(如 IP 地址为 192.168.1.103)进行扫描, 检查未开放业务不需要使用的 Web 服务端口。常用的端口扫描工具有 NetScanTools、WinScan、 SuperScan、NTOScanner、WUPS、NmapNT 和 Winfingerprint。 以扫描工具 SuperScan 3.00 为例,SuperScan 是一款基于 TCP 协议的端口扫描器、Pinger 和主 机名解析器。可以针对任意的 IP 地址范围的 Ping 和端口扫描,并且能同时扫描多个任意端口;解 析和反向解析任意 IP 地址或范围;使用内建编辑器修改端口列表及端口定义;使用用户自定义的 应用程序与任何被发现打开的端口进行连接;查看被连接主机的回应;保存扫描列表到文本文件中。 在主界面中的 IP 组的 Start 文本框中输入开始的 IP,在 Stop 文本框中输入结束的 IP,在 Scan type 组中选择 All list ports from 单选项,并指定扫描端口范围(1~65535),如图 12-6 所示。
单击 Scan 组中的 Start 按钮,就可以在选择的 IP 地址段内扫描不同主机开放的端口。扫描 完成后,选中扫描到的主机 IP,单击 Expand all 按钮会展开每台主机的详细扫描结果,如图 12-7 所示。(3)Web 服务器版本信息测试。 为了防止黑客攻击,在很多情况下,通过获取 Banner 的信息可以获取 HTTP 指纹识别方法。 通常会将 Web 服务器的信息进行隐藏或者通过配置、增加插件来更改或模糊服务器的 Banner 信息。 HTTP 指纹识别现在已经成为应用程序安全中一个新兴的话题,指纹识别可以分为两步:一是 对指纹进行收集和分类;二是将未知的指纹同被存储在数据库中的指纹进行比较,从而找出最符合 的指纹。
操作系统指纹识别在网络评估中是一件常见的工作,现在已有很多操作系统指纹识别技术,操 作系统指纹识别为什么能成功呢?因为每个操作系统实现 TCP/IP 协议时有微小的差别,当前比较 流行的是利用 TCP/IP 堆栈进行操作系统识别。 HTTP 指纹识别的原理大致也是如此,记录不同服务器对 HTTP 协议执行中的微小差别进行识 别,HTTP 指纹识别比 TCP/IP 堆栈指纹识别复杂许多,因为定制 HTTP 服务器的配置文件、增加 插件或组件使得更改 HTTP 的响应信息变得更复杂。 在测试过程中可以使用一些工具进行渗透测试,来获取 Web 服务器的相关版本信息。Httprint 就是一个 Web 服务器指纹工具,通过该工具可以对 Web 服务器进行渗透测试。尽管可以通过改变 服务器的旗帜字符串(server bannerstrings),或通过类似mod_security或servermask的插件混淆事实, 但 Httprint 工具依然可以依赖Web 服务器的特点去准确地识别 Web 服务器。Httprint 也可用于检测 没有服务器旗帜字符串的网络功能设备,如无线接入点、路由器、交换机、电缆调制解调器等。 运行 Httprint_gui.exe,在 Host 列中输入主机域名(如果没有域名则输入 IP 地址),在端口列 中输入端口号。如果为 HTTPS,则要选择锁图标列的复选框,如图 12-8 所示。 单击程序下方的运行按钮,查看相关报告,确定报告中是否存在 Web 服务器准确的版本信息, 如图 12-9 所示。 (4)HTTP 方法测试。 HTTP 方法测试主要是测试 HTTP 开发的方法,有些 Web 服务器默认情况下开放了一些不必 要的 HTTP 方法(如 DELETE、PUT、TRACE、MOVE、COPY),这样就增加了受攻击面。 HTTP 请求常见的方法有(所有的方法必须为大写):GET、POST、HEAD、PUT、DELETE、 TRACE、CONNECT 和 OPTIONS,详细见表 12-7。