Web渗透之信息收集

  前言

      信息收集对于渗透测试来说,是渗透前期所要做的准备,正所谓“知己知彼百战百胜”,正因为我们掌握了目标做够多的信息,才能更好的保障其安全性。

      信息收集的方式可以分为两种:主动信息收集和被动信息收集。

 1. 主动信息收集:通过直接访问、扫描网站,这种流量将流经网站。

 2. 被动信息收集:利用第三方的服务对目标进行访问了解,比例:Google搜索、Shodan搜索等。

 

、域名信息的收集

 

       当我们确定了要渗透的目标,也就是知道了其域名,接下来我们需要收集域名对应的 ip,域名的whois信息、子域名等等一系列与域名相关的信息。

       判断域名对应的IP:首先,我们要判断该域名是否存在CDN的情况,我们可以去在线CDN查询网站:http://ping.chinaz.com/   。如果查询出的ip数量大于一个的话,则说明该ip地址不是真实的服务器地址。以我的经验来看,如果是2个或者3个,并且这几个地址是同一地区的不同运营商的话,则很有可能这几个地址是服务器的出口地址,该服务器在内网中,通过不同运营商NAT映射供互联网访问,同时采用几个不同的运营商可以负载均衡和热备份。如果是多个ip地址,并且这些ip地址分布在不同地区的话,则基本上可以断定就是采用了CDN了。

       域名的whois信息:whois是用来查询域名注册所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令行接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。

       通常,我们进行whois查询是去: 站长之家whois查询  。然后查出来信息之后,可以根据查询出来的邮箱、注册人、公司、电话等进行反查。

二、Google语法收集

 

1) intitle:表示搜索在网页标题中出现第一个关键词的网页。

2) inurl:返回网页链接中包含的第一个关键字的网页。

3) intext:返回网页文本中出现关键字的网页。

4) site:某个特定的网站中搜索。

5) filetype:搜索特定拓展名的文件(.doc .pdf .txt)

 

三、网站指纹识别

 

      在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。

常见的网站指纹识别工具有:whatweb等。

在线指纹识别网站:

BugScaner:http://whatweb.bugscaner.com/look/

云悉指纹:http://www.yunsee.cn/finger.html

WhatWeb:https://whatweb.net/

 

四、 整站分析

 

1.服务器类型(Linux/Windows)

判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。但是,通过TTL值来判断服务器类型也不是百分之百准确的,有些windows服务器的TTL值也是几十,而且有的服务器禁止ping。也可以通过Nmap进行扫描。

2.网站容器(Apache/Nginx/Tomcat/IIS)

需要知道网站用的web服务器是什么类型的:Apache、Nginx、Tomcat 还是 IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本,因为知道了网站容器是那种类型后,我们可以根据服务器版本,查询是否出现过漏洞,然后可以进行验证。

3.脚本类型(php/jsp/asp/aspx)

我们需要知道网站用的脚本类型,我们可以用一下方法。

1)可以根据网站URL来判断;

2)可以用google 语法来判断;

3)可以根据Firefox的插件来判断;

4)可以用burpsuite请求包来判断。 

4.数据库类型(Mysql/Oracle/Accees/Mqlserver)

1)根据网页编程语言去判断

ASP和.NET:Microsoft SQL Server

PHP:MySQL、PostgreSQL

Java:Oracle、MySQL

以上是常见的搭配(仅供参考)。

2)根据数据库报错判断

输入单引号报错

mysql:

error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1

这个已经很明显了,有mysql这个关键字

mssql:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1

因为mssql是微软公司的,里面出现微软的英文名字Microsoft还有ODBC也是mssql特有的。

ORA的是ORACLE。

其实发现报错丢到搜索引擎里面去搜一下就知道是什么类型了。

posted @ 2020-03-20 16:07  Underwate  阅读(816)  评论(0编辑  收藏  举报