浅谈Web渗透测试的信息收集

2017-08-24 14:42郎智哲封筱宇董齐芬
计算机时代 2017年8期
关键词:网络安全

郎智哲+封筱宇+董齐芬

摘 要: Web渗透测试是当前比较主流的网站安全测试方法,其中,信息收集工作是Web渗透测试的第一步,直接关系到整个渗透测试的质量。文章首先介绍了信息收集,然后结合实验详细阐述了信息收集中的两个主要方面,一是外部的信息收集,包括whois查询、IP地址信息查询和利用搜索引擎进行信息收集;二是利用扫描工具进行深入信息收集,包括ping工具、nmap工具和其他漏洞扫描器。该研究能为Web渗透测试的信息收集工作提供有价值的参考。

关键词: 网络安全; Web渗透测试; 信息收集; 扫描工具

中图分类号:TN915.08 文献标志码:A 文章编号:1006-8228(2017)08-13-04

Abstract: Web penetration test is the most popular method of website security testing. The information gathering is the first step of Web penetration test, and it is directly related to the quality of the entire penetration test. This paper summarizes the information gathering, and then elaborates on the two main aspects of the information gathering according to the experiment. One is the external information gathering, including the whois query, IP address information query and gathering information with the search engines; the other is the deep-going information gathering by using the scanning tools, including Ping tools, nmap tools and other vulnerability scanners. This research can provide valuable reference for information gathering of Web penetration test.

Key words: network security; Web penetration test; information gathering; scanning tool

0 引言

隨着网络走进千家万户,网络安全问题也随之而来。网络木马、互联网恶意程序、DDOS攻击、网页篡改等网络安全事件层出不穷。根据国家计算机网络应急技术处理协调中心发布的2016年我国互联网网络安全态势综述数据显示,2016年我国境内被篡改的网站数量为1.7万个,其中,政府网站被篡改数量为467个;约8万余个境内网站被植入后门;约17.8万个针对我国境内网站的仿冒页面[1]。由此可见,我国的网络安全形势严峻,必须要做好网络安全防范工作,保护好网络资源。

Web渗透测试(Penetration Test)是一种现行主流安全测试与评估方法。它通过模拟黑客的攻击手段,挫败目标系统安全防御措施,最终取得访问控制权限。它可以较好的发现一个网络系统安全上的缺陷,使网站维护人员可以及时采取防御措施,防止网络安全事件发生。完整的Web渗透测试大致可分为信息收集、渗透注入、获取后台数据库数据、提权并获得webshell等过程。其中,信息收集是对网站进行渗透测试的第一步,直接关系到整个渗透测试的质量。

本文将通过分析Web渗透测试中信息收集的几种主要方法,来说明网络安全工程师和黑客在对一个网站系统进行注入、提权等步骤前,是如何收集网站主要信息的。

1 信息收集概述

对目标网络进行攻击之前,首先要收集汇总各种与目标系统相关的信息,形成对目标网络必要的轮廓认识,并为实施攻击做好准备[2]。与目标系统相关的信息主要包括业务信息、网络信息、网站域名信息、服务器信息等。其中,对于业务信息和网络信息,网络安全工程师可以通过对网站的多次浏览和尝试,然后进行自主分析得到,或者也可以和厂商沟通直接获取。但对于黑客而言,他们不可能和厂商进行沟通后再进行攻击,他们更多是进行自主分析,同时利用互联网和扫描工具进行网站信息的收集。Web渗透测试中的信息收集便是模拟黑客不与厂商沟通的情形,利用互联网和扫描工具进行网站信息收集。

信息收集,大致可以分为外部的信息收集和利用扫描工具深入信息收集两个方面,下文将分别详细阐述。

2 外部的信息收集

网站信息收集都是从较简单的和较易得到的外部信息开始的,这些信息通过互联网便可以轻易得到。外部的信息收集方法主要有Whois查询、IP地址信息查询、利用搜索引擎和社会工程学等,其中社会工程学不属于网络技术范畴,故在此不作详述。

2.1 Whois查询

Whois是用来查询域名IP,以及所有者等信息的传输协议。Whois可用来查询域名是否已经被注册,以及被注册域名的详细信息(如域名所有人、域名注册商)。进行Whois查询比较常用的是站长之家,阿里云等网站。利用阿里云(https://whois.aliyun.com)对www.qq.com进行Whois查询,直接在查询栏中输入域名,点击查询便会返回查询结果。

如图1所示为www.qq.com的Whois查询结果的英文原始注册信息。在查询结果中返回了www.qq.com的注册商,创建、更新和过期时间,注册人,管理员,邮箱,联系电话等信息。Whois查询中的邮箱、联系电话等都是真实有效的信息,可以被黑客轻易利用并开展攻击,最为常见的就是利用这些信息进行域名过期抢注和社会工程学攻击。

2.2 IP地址信息查询

有很多网站(比如站长之家)可以查询网站的IP地址信息。例如,在站长之家IP地址查询的页面(http://ip.chinaz.com/)里输入“www.qq.com”,便得到腾讯首页的IP地址信息,如图2所示。由于一个网站有多个镜像,也就是同样的服务器备份在不同的地方,所以分配的IP地址不一样,但这些IP地址所使用的域名都是一样的,因此有些网站会有多个IP地址。故当任何一个地方的服务器损坏,还可以访问另一个服务器。

2.3 利用搜索引擎进行信息收集

百度、必应等搜索引擎作为现今人们广泛使用的网络工具,它们增强了网络的丰富性、便捷性和服务性,但其强大的爬虫功能和索引功能,为黑客提供了很大的便利。如想要查询一个网站的后台管理地址,在搜索框中输入“网站名+intitle:admin”,便可查找网站后台管理地址;在搜索框中输入:“网站名+filetype:sql”可以查询某网站有没有sql数据库直接放在互联网上;在搜索框中输入“关键字+site:域名”,可以搜索该域名下所有含有关键字的页面。搜索常用的指令和含义如表1所示。

比如想查询FreeBuf网站中,关于TP link信息的页面可以在百度或者必应的搜索栏中输入“TP link site:www.freebuf.com”。如图3所示,在百度的搜索结果中可以看到,搜索返回了所有在FreeBuf网站中关于TP link信息的网页,这样大大减少了对一个网站逐步进行查看和搜集有用信息的时间。同样的道理,也可以用同样的方法搜索一个网站是否有对外开放的后台管理地址等安全隐患更大的敏感页面。

3 利用扫描工具进行深入信息收集

外部信息收集只能收集到网站表面的信息,信息也略显简单,具有一定的局限性。利用扫描工具可以收集目标主机或网络的详细信息,进而发现目标系统的漏洞或脆弱点,再根据脆弱点的位置展开攻击。网络安全工程师可以根据扫描工具的扫描结果信息,及时发现系统漏洞,并采取相应的补救措施,免受入侵者攻击。因此检测和消除系统中存在的弱点成为安全研究人员的重要课题[3]。

目前,网络扫描工具多种多样,本文主要对Ping工具,Nmap工具和常用的漏洞扫描器进行阐述。

3.1 Ping工具

Ping工具是Windows自带的十分常用、简单的工具,常用来检查网络是否通畅,但作为网络安全工程师更关心的是Ping工具下TTL值。TTL(Time To Live,生存时间),是IP协议包中的一个值,指数据包被路由器丢弃之前允许通过的网段数量,数据包每经过路由器转发一次TTL至少减一,TTL值通常反应包在被丟弃前最多能经过的路由器个数。通过TTL值,可初步判断目标服务器类型。以百度为例,在CMD命令行中输入“ping www.baidu.com”,结果如图4所示。

一般来说,Linux系统的TTL值为64,Windows2000/NT系统的TTL值为128,Solaris/AIX系统的TTL值为254。上图中,可以返回来的数据包TTL值为54,接近64,因此初步断定百度使用的是Linux操作系统,中间经过8个路由器到达本机因此TTL变为56。

3.2 Nmap工具

主机端口扫描工具有很多,其中Nmap最为常用,它提供了基本的TCP和UDP扫描能力,集成大量扫描技巧,如端口扫描,目标版本侦测,目标服务器系统侦测等功能。Nmap常用命令和含义如表2所示。Nmap工具使用命令为:nmap+命令+目标地址。

另外,在一条nmap命令语句中,多个命令是可以同时使用的,仍旧以百度为例,在搭建好nmap环境的DOS命令界面输入命令:nmap -v -O www.baidu.com,可得到如图5所示结果。从扫描结果可以看出,百度开放了80端口和443端口,并将http服务放在了80端口,https服务放在的443端口。

3.3 常用的漏洞扫描器

漏洞扫描器是用来自动检查一个本地或者远程主机安全漏洞的工具,它根据所定义的漏洞列表对目标系统的弱点信息进行收集、比较和分析,查看是否有满足条件的漏洞存在。一旦发现目标有漏洞便提交报告给用户,并说明如何利用该漏洞以及如何对该漏洞进行修补。目前国外常用的扫描器可以分为两类,一类是主机扫描器,如Nessus扫描器、Nexpose扫描器等;另一类是Web应用扫描器,如AWVS,IBM APPScan、HP WebInspect等。国内很多厂商提供的漏洞扫描器也可以扫描出网站的大部分漏洞,性能不劣于国外早已成名的扫描器,目前被普遍使用。

以AWVS扫描器为例,对本地自己搭建的一个实验网站进行扫描。在AWVS中建立一个新的扫描任务——New Scan,把网站地址输入以后会进行自动化扫描,扫描结果如图6所示。

扫描后会显示大量扫描器自动捕捉到的漏洞,如图6中红色的高危漏洞中有SQL盲注漏洞、XSS跨站脚本漏洞等。由于扫描器是根据既定的扫描策略进行自动化扫描的,扫描结果未必一定准确,所以要再对这些漏洞进行手工验证。如果漏洞确实存在,就可以及时进行修补,起到对网站的保护作用,也防范了黑客利用这些漏洞进行攻击。

漏洞扫描工具通过对整个网站目录的扫描,以及对每个页面的扫描,可以发现网站中存在的一些在扫描器漏洞列表中的漏洞,省去了人工手动查找一些较明显漏洞的时间,提高了渗透的效率。但扫描器扫描过程略显暴力,可能会发生后台服务器宕机的现象,所以不能盲目和依赖使用扫描器。网络安全工程师在进行渗透测试,渗透扫描时一定要得到对方授权,并事先通知扫描时间,以防意外发生。

4 结束语

本文阐述了Web渗透测试中信息收集的相关技术。通过技术分析,可以较为全面的收集到一个网站的信息。信息收集完成之后需要对数据进行整理和分析,为后期测试做好准备工作,主要工作有以下三个方面:

⑴ 根据系统版本,确定系统可能存在的漏洞;

⑵ 根据获取到的电话号码、单位缩写制作密码字典等;

⑶ 针对目标系统的防护设备,制定相应的漏洞扫描策略[2]。

参考文献(References):

[1] CNCERT/CC.2016年中国互联网网络安全报告 [EB/OL].http://www.cert.org.cn/publish/main/upload/File/2016_cncert_report.pdf,2017-05-27.

[2] 宋超臣,王希忠,黄俊强等.Web渗透测试流程研究[J].电子设计工程,2014.22(17):165-167

[3] 谈进,李涛,伍良富等.网络安全扫描工具的分析与比较[J].计算机应用研究,2003.20(9):77-78

猜你喜欢
网络安全
网络安全知多少?
新形势下的特种设备网络安全防护探讨
新量子通信线路保障网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
网络安全与执法专业人才培养探索与思考
设立网络安全专项基金 促进人才培养
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月