1. 指纹识别
指纹由于其终身不变性、唯一性和方便性,几乎已成为生物特征识别的代名词。通常我们说的指纹就是人的手指末端正面皮肤上凹凸不平的纹线,纹线规律的排列形成不同的纹型。而本节所讲的指纹是指网站CMS指纹识别、计算机操作系统及Web容器的指纹识别等。
应用程序一般在html、js、css等文件中多多少少会包含一些特征码。
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
CMS(Content Management System)又称整站系统或文章系统。
常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。
代表工具有御剑Web指纹识别、WhatWeb、WebRobo、椰树、轻量WEB指纹识别等,可以快速识别一些主流CMS。
除了这些工具,读者还可以利用一些在线网站查询CMS指纹识别,如下所示。
- BugScaner:/look/。
- 云悉指纹:/。
- 和WhatWeb:/。
Web应用框架(Web application framework)是一种开发框架。
2.查找真实IP
1. 目标服务器存在于CDN
CDN(Content Delivery NetWork)及内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。
2 .判断目标是否使用了CDN
通常会通过ping目标主域,观察域名的解析情况,以此来判断是否使用了CDN。
还可以利用在线网站17CE(http://)进行全国多地区的ping服务操作,然后对比每个地区ping出的IP结果,查看这些IP是否一致,如果都是一样的,极有可能不存在CDN。如果IP太多不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN。
3 .绕过CDN寻找真实IP
常规方法:
- 内部邮箱源。
- 扫描网站测试文件,如phpinfo、test等,从而找到目标的真实IP。
- 分站域名。
- 国外访问。通过国外在线代理网站App Synthetic Monitor(/en/)访问,可能会得到真实IP。
- 查询域名的解析记录。也许目标很久以前并没有用过CDN,所以可以通过网站NETCRAFT(/)来观察域名的IP历史记录,也可以大致分析出目标的真实IP段。
- 如果目标网站有自己的App,可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP段。
- 绕过CloudFlare CDN查找真实IP。
4 .验证获取的IP
如果是Web,最简单的验证方法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样;或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开了80、443、8080端口的IP,然后逐个尝试IP访问,观察响应结果是否为目标站点。
3.收集敏感目录文件
在渗透测试中,探测Web目录结构和隐藏你给的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理页面、文件上传界面,甚至可能扫描出网站的源代码。
针对网站目录的扫描主要有DirBuster、御剑后台扫描珍藏版、wwwscan、、Sensitivefilescan、Weakfilescan等工具。
DirBuester是OWASP开发的一款基于Java编写的、专门用于探测Web服务器的目录和隐藏文件。
在Target URL 输入框中输入要扫描的网址,扫描时将请求方法设置为“AutoSwitch (HEAD and GET)”选项。
设置线程的数值,推荐在20~30之间。太大了容易引起系统死机。
选择扫描类型,如果使用个人字典扫描,则选择“List based force”选项。
单击“Browse”选择字典,可以选择工具自带的字典,也可以选择自己的字典。
在Select starting options中选择“URL Fuzz”方式进行扫描。设置fuzzing时需要注意,在URL to fuzz里输入“、{dir}”.这里的{dir}是一个变量,用来代表字典中的每一行。
如果你扫描的目标是/admin/,那么就要在URL to fuzz里填写”/admin/{dir}”,意思是在”{dir}”的前后可以随意拼接你想要的目录或者后缀,例如输入”:/admin/{dir}.php”就表示扫描admin目录下的所有php文件。
除此之外,读者还可以利用很多在线工具站,效果也相当不错,这里推荐一个:WebScan(/)。