前言:渗透测试之前,信息收集这个步骤特别重要,了解目标系统的信息越多,后面的渗透才会越轻松,文章会从Web网站的组成层面进行分析,读者可以将信息收集和后面的漏洞探测,漏洞利用结合起来学习,说白了,信息收集也是为了后续的漏洞探测和漏洞利用打基础。
信息收集主要可以分为两种:主动(直接)和被动(间接)
主动(直接)信息收集:直接对目标系统/网站进行操作,例如漏扫扫描,直接访问,流量会直接经过目标系统。
被动(间接)信息收集:通过搜索引擎对目标系统/网站进行访问,例如GooGle/ShoDan搜索,Whois查询等
网络层面
网络层面是信息收集的第一步,主要目的是掌握目标系统的域名,子域名,真实地址,这一步主要目的是知道目标系统是什么,可为后面的CDN绕过,旁站攻击等攻击思路提供基础信息。
操作系统层面
这个步骤主要是掌握目标系统所使用的是windows还是linux系统或其他的系统,不同的系统对应后续洞发现和漏洞利用过程也是不同的。
中间件层面
掌握目标系统/网站的中间件是什么,什么版本有利于我们判断目标系统是否存在已知漏洞方便后续利用,例如IIS6.0版本存在解析漏洞,可利用于文件上传漏洞中。
数据库层面
了解目标系统所使用的数据库是什么,是什么版本,方便后续使用什么数据库语言去进行Sql注入漏洞的判断和利用,这个步骤是特别重要的。
开发语言层面
目标系统/网站前端,后端使用的开发语言是什么,这取决于我们后续利用的基础语言是什么,例如PHP环境下利用文件上传漏洞上传后缀为.PY(python文件后缀名)的文件到目标系统,那也是无法执行的,文件包含漏洞和RCE漏洞等也会需要我们提前知道系统的开发语言是什么。
开发框架层面
了解目标系统的开发框架,CMS(内容管理系统)有助于我们判断是否存在已知公开的漏洞,方便进行后续的漏洞利用。