◆巨腾飞 岳剑晖
(陕西省网络与信息安全测评中心 陕西 710065)
渗透检测是运用模拟恶意骇客的攻击方式,来评价电脑安全性的一个评价方式。这种工作过程涉及对系统的各种问题、技术问题或弱点的主动分析,通常这种方法在某个攻击者可能出现的地方来实现的,而且在这些地方可以有条件自主使用安全漏洞,信息收集作为获得企业授权之后渗透测试正式开展的第一阶段,其重要性不言而喻。
我们在外网信息收集的时候,会发现日益安全技术发展的今天,Web 系统防护愈加趋于完善,很难找到可直接利用的漏洞。因此我们会将更多的精力放在企业办公系统、邮箱、VPN 上,要实现成功渗透测试,就更加体现信息收集的重要性,信息搜集越完善,就越能为我们的渗透测试提供巨大帮助。
根据《精通Metasploit 渗透测试》一书所讲:信息收集是整个渗透测试最重要阶段之一,可任意让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间,通常这个阶段占据整个渗透测试时间的40%~60%。最终能否成功渗透进入目标网络,很大程度上取决于测试者在这个阶段的工作成果,因此信息收集是Web 系统渗透测试不可或缺的一部分。
常见的信息收集方法包括但不限于以下十三个方面:
首先whois 信息可得到所有域名申请人的基本信息,包含域名注册者、联系人、邮箱、联系电话、域名初始日期、域名到期日期、DNS 服务信息、域名状态等。然后就可以使用在联系邮件、联系人等反查相关目标解析过的历史域名。
一般企业Web 应用使用的SSL 证书、ICON 图标的主域名都是一致的,所以可以通过找SSL 证书、ICON 图标的方式找同一公司资产。然后将这些收集到的信息放入一些信息收集网站,可批量搜索目标更多的相关资产。
程序员们在进行源代码时喜欢把Github、网盘等当成代码库或者存放程序,因为Github 不但可以托管程序,而且还可以对其中的代码信息进行查询,但在上传或发布程序时,由于安全意识不够,会使一些敏感的配置信息文件暴露于众。一些网盘不仅能存储文件,还可以进行公开文件搜索,可能会导致一些敏感信息泄漏。
电子邮箱信息可以为渗透测试人员提供大量的信息,有些工具可以指定浏览器爬取的信息,能够高效地找到多个对测试人员有用的邮箱地址,有时候邮箱名字会反应一个人的密码或者命名习惯。
系统服务和网络安全也是相对应的,每多打开一个端口,就意味着渗透面也相应增加,而打开的端口越多,也就意味着系统服务器所受到的威胁也越大。现在一些主流的端口扫描工具基本都支持全端口扫描。
浏览器信息收集是使用网页搜寻强大功能,来从磅礴的网络中查找到所需要的资讯。从搜索结果可以搜索到历史遗留后门、无法直接浏览看到的系统后台入口、用户个人信息泄漏、源代码泄漏、未经授权浏览、mdb 文件下载和备份文件等漏洞信息。
开始Web 系统渗透测试前,需要明确知道系统的网络资产:域名、IP 等,而IP 和域名有着直接的解析关系,所以如何找到网站所有子域名是关键。现在有很多在线、离线工具均可进行子域名枚举,包括主动枚举与被动枚举。
有些大的公司通常会具有多个出口IP 地址,可能会位于相同的C 段,所以在进行一些大的攻防演戏时,C 段也是一种突破思路,C段上可能会有其他应用或者一些废弃的应用未及时下线,我们可以借助这些应用来进行渗透测试会有意想不到的收获。
Web 应用指纹包括但不限于:前端框架、应用框架、开发框架、CMS 类型、javascript 框架、css 文件或代码、中间件、数据库信息、网站开发语言、Web 服务器、注释掉的html 代码中的内容、cookie中的关键词、robots.txt 文件中的关键词和404 报错页面等信息。
企业在开发并发布Web 应用系统时,由于服务器配置问题,导致目录浏览功能打开,引起敏感目录信息泄漏,从而造成安全隐患。在信息收集中,需要收集的敏感信息包括但不限于:robots.txt、后台目录、目录遍历、数据库备份文件、网站备份文件、上传目录、测试页面、phpinfo、网页编辑器、DS_Store 文件、phpmyadmin 页面和crossdomin.xml 页面等信息。
一些Web 应用系统为了保证其安全性及稳定性,采用CDN 等方式进行部署,渗透测试过程中无法查看其真实IP 地址,这时候就需要一些在线工具或者网站对其历史解析信息进行查找,通过历史解析信息分析出其真实IP 并对其进行渗透测试。
通过网站邮箱、公告通知中收集的人名、身份证号、学号等信息,可进行类似社工信息汇聚,将其组合成:人名+年份、人名+特殊字符+年份、人名+生日等生成密码字典,对其网站后台、办公系统和邮箱等系统进行密码爆破或尝试会有预想不到的收获。
本文主要基于Web 系统简要介绍渗透测试中的一个重要阶段——信息收集,包括信息收集的重要性、信息收集的分类,较为全面的总结出信息收集的常用方法,帮助安全相关测试人员拓展渗透测试信息收集方法,提升渗透测试技能。