web渗透之信息收集篇
信息收集
很多刚刚接触过渗透测试的人,听到的第一句话就是让你学习信息收集,可是如何真正的学习信息收集,你有真正了解过吗。很多刚入门的小白会认为,信息收集是什么,重要吗?往往很多不经意的细节能决定一场战争的成与败,信息收集在前期的重要程度,莫过于,你有枪,但是却少了子弹。
信息收集可以分为以下步骤:
1、域名信息的收集
2、网站指纹识别
3、服务器类型
4、脚本类型
5、网站容器
6、数据库类型
7、通过ping的方式查找真实ip
8、备案信息
9、浏览器语法
10、端口扫描(nmap)
一、域名信息的收集
一般我们通过收集目标的域名、子域名等信息,来确定对方的资产情况。就好比如,主站有CDN(内容分发网络)打不下来,我们可以试着通过对方的子站来突破,效果也是一样的。
接下来我们讲讲工具的使用吧,一般在渗透测试中对于域名的信息收集,我们会使用到”子域名挖掘机”,它是一款很不错的域名收集工具,集成了很多常见的域名后缀,可以通过查找顶级域名的方式找到相关联的子域名。不过使用的时候如果进程大的话,容易会被对方服务器封禁,所以要谨慎使用。
使用方法:添加上需要扫描的域名,点击”启动”就好了。
二、网站指纹识别
网站指纹识别的意思就是,有些厂商会通过一键式建站的方式来搭建自己的网站,其中CMS可以理解为一个网站的指纹,在日新月形的今天,传统式搭建网站的时代已经过去了。我们可以通过识别对方的CMS来完善我们自己的资产梳理,”指纹识别”也是很重要的一节。其中最重要的就是可以在网上搜索到已经报出来的CMS漏洞,查找是不是可以利用的版本等等。
云悉指纹就是很方便的一个指纹识别网站(https://www.yunsee.cn/)
利用火狐浏览器插件(Wappalyzer)可以识别已知CMS
三、服务器类型
服务器的类型一般分为:windows和Linux两种,最常见的服务器类型有windows server和Linux的CentOS这几种,如下图,我们使用浏览器插件,发现该网站的服务器类型是Windows server。
脚本类型
脚本类型的信息收集呢,也同样不可小觑,你要知道目标的网站是使用什么编程语言写的,方便做好下一步的打算,只有足够了解对方才会不出纰漏,我们一般收集脚本类型同样会通过浏览器插件或者指纹识别。还有其他的方式,比如通过网站URL来判断、通过浏览器语法搜索 site:xxx filetype:php等等。
一般网站会使用的脚本语言有:php 、Jsp 、Asp 、Aspx、python。
网站容器
常见的网站容器有:Apache、Nginx、IIS,就拿我们最熟悉的Apache来讲吧,一般的网站都会使用Apache来当做容器使用,因为它的优势很大,而且很稳定,不过之前曝出的Log4j也是Apache的漏洞,但这不影响我们日常使用。Nginx会出现在一键式建站上面,phpstudy大家一定不陌生,它里面的容器就有Nginx、Apache两种,可以按个人喜好来选择。
数据库类型
我们需要知道网站使用的是哪种类型的数据库,常见的数据库有:Mysql、Oracle、Mssql还是Access。虽然这几种数据库的语法大体上相同,但是还是有大致的区别。所以我们还要知道目标网站使用的是哪种类型的数据库,并且数据库是哪个版本的。
最常见的编程语言和数据库的搭配:
ASP和ASPX:ACCESS、SQL Server
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
通过ping的方式查找真实ip
有些时候,目标会使用CDN(内容分发网络)隐藏自己的真实ip,通过使用CDN,会让我们得到很多ip,从而加大我们的工作量。这里我们可以使用站长之家的ping功能 网址:www.ping.chinaz.com
备案信息
备案信息的查询也很关键,通过查询目标的备案信息,可以有效区分目标的运营模式是否正规合法化,这里我推荐使用站长之家的ICP备案查询 网址:http://icp.chinaz.com/
浏览器语法
我们在工作中使用得比较多的浏览器语法有:fofa、google、百度的语法,在语法使用结构上都基本相同。
常见的浏览器语法有:
1、intext:
把网页中的正文内容中的某个字符作为搜索条件
2、intitle:
把网页标题中的某个字符作为搜素条件
3、cache:
搜素引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息
4、filetype:
指定一个格式文件为搜索对象
5、inurl:
搜索包含指定字符url
6、site:
在指定的站点搜素相关内容
端口扫描(nmap)
端口信息的收集和ip会有关联,不同的端口对应不同的服务。在日常工作中我们会使用nmap进行端口的扫描,windows、Linux都有nmap的版本,如果你觉得安装nmap麻烦,可以使用kali的nmap,kali是一款集成了很多工具的一款Linux系统,功能十分的强大。
下面就是kali的nmap,使用方法在上面的介绍文档中就有,可以很轻松上手: