前言

知己知彼,百战不殆。所以我们在对一个站点进行渗透测试之前,最重要的事情就是信息收集。
在信息收集中,我们主要收集的是服务器的配置信息和网站的敏感信息。当然,所有和目标网站相关的的信息,都是我们需要收集的对象。信息越多,我们在突破时的思路也会越多。

信息收集的方式可以分为两种:主动和被动。
1、主动信息收集:通过直接访问、扫描网站等方式。
2、被动信息收集:利用第三方的服务对目标进行访问,比例:Google搜索、Shodan搜索等。

一、收集域名信息

1、Whois查询

Whois是一个标准的互联网协议,可用于收集网络注册信息,注册的域名,IP地址等信息。简单来说,Whois就是一个用于查询域名是否已经被注册以及注册域名的详细信息的数据库(如域名所有人,域名注册商)。Whois通常使用TCP协议的43端口。我们可以通过安装whois或者一些在线工具进行查询,比如站长之家
  在这里插入图片描述
  通过Whois,我们可以查询到域名服务商、域名拥有者、邮箱、电话、地址等信息,对于很多中小站点而言,这里的联系人就是管理员。
  拿到以上信息,我们可以通过Whois反查,可能还会得到其他信息。

2、查找真实IP

获得真实的IP地址,可以让我们在接下来的工作中更加有针对性,但是很多时候,服务器存在CDN,那么我们如何绕过CDN去获取真实的IP呢.
  判断是否使用CDN,我们可以通过ping的方式,如果ping之后,ip数量大于一个,那么获取的IP地址就不是服务器的真实地址。
绕过CDN:
1、分站域名/子域名
CDN价格比较昂贵,很对站点主域做了CDN、但是跟主域在同一服务器的子域或者分站并没有挂CDN,那么可以通过子域IP来查找主域的真实IP。

2、内部邮箱源
  由于邮件系统一般位于没有经过CDN解析的内部网络,所以我们可以通过ping邮件服务器的域名去获取真实目标主域IP。但是这个邮件服务器必须是网站自带的。
  
3、查询域名解析记录
  网站刚开始运营的时候可能没有使用CDN,所以可以通过网站域名解析网站来观察域名的IP历史记录。
  域名解析网站:https//:www.netcraft.com
  
4、如果目标有自己的APP,可以尝尝试使用抓包软件抓取APP的请求,从中找到目标的真实IP。抓包软件burpsuite、Fiddler等。
  
5、绕过CloudFlare CDN查找真实IP
  很多网站都使用CloudFlare提供的CDN服务,在确定目标网站使用CDN后,可以尝试通过在线网站CloudFlareWatch(http://www.crimeflare.us/cfs.html#box)对CloudFlare客户网站进行真实IP查询。
  
6、国外访问
  国内的CDN往往只针对国内的用户访问加速,而国外的CDN就不一定了,可以通过国外的在线代理网站APP Syntheic Monitor(http://asm.ca.com/en/ping.php)访问,可能得到真实的IP地址。
  
7、查询主域名
  部分网站仅针对www开头的域名进行CDN防护,所以我们可以通过ping www.baidu.com 和 ping baidu.com去判断真实ip。

3、备案信息查询

网站备案是根据国家法律法规,国内网站需要向国家有关部门进行备案进行管理。
  查询备案信息的网站:
1、天眼查:https://www.tianyancha.com/
2、ICP备案查询网:https://www.beianx.cn/

4、收集子域名信息

子域名也就是二级域名,很多时候,主域的防护比较完善,但是二级域名可能防御会相对弱一点,那么我们可以通过渗透二级域名,再想办法迂回到真正的目标。
  常用的子域名收集方法有以下几种:
  1、子域名检测工具
  主要有御剑、Layer子域名挖掘机、K8、wudomain、Sublist3r、subDomainBrute等。我们在使用工具进行子域名爆破的时候,可以多使用几款工具,这样搜索的信息会比仅使用一款工具更加全面一点。
  2、搜索引擎枚举
  我们可以利用谷歌语法搜索子域名,例如:我们在搜索百度旗下的子域名时可以使用“site:baidu.com”
  在这里插入图片描述
  3、证书透明度公开日志枚举
  证书透明度(CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书包含域名、子域名、邮箱地址等信息。我们可以通过搜索引擎搜索一些公开的CT日志获取上述信息。
  工具地址:https://crt.sh


二、收集敏感信息

1、利用Google搜索引擎

我们可以通过构造特殊的关键字语法来搜索互联网上的相关敏感信息,如数据库连接信息、邮箱密码、uc-key、泄露的源代码、敏感文件等。
Google常用黑客语法及其说明:
关键字说明举例
Site指定域名Site:www.baidu.com
InurlURL中存在关键字的网页Inurl:后台
Intext网页正文中的关键字举例
Filetype指定文件类型举例
Intitle网页标题中的关键字举例
link返回所有相链接的URL举例
Info查找指定网站的一些基本信息举例
cache搜索Google里关于某些内容的缓存举例
举例:我们尝试搜索一个学校网站的后台,语法为“site:edu.cn intext:后台管理”,意思为搜索网页正文中含有“后台管理”并且域名为“edu.cn”结尾的网站。当我们访问某一具体站点时,site后可跟具体域名。
在这里插入图片描述

2、利用shodan搜索引擎

Shodan 是一个网络空间设备搜索引擎,可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备。

命令语义举例
hostname搜索指定的主机或域名hostname:“google.com”
port搜索指定的端口port:23
city搜索指定城市city:“Beijing”
county搜索指定国家county:“China”
product搜索指定软件、服务器product:“apache”
version搜索指定版本version:“1.1.1”
net搜索指定的ip地址或者子网net:“114.11.11.0/24”
org搜索指定的公司组织org:“google”
isp搜索指定的ISP供应商isp:“China Telecom”

3、托管平台

GIthub、码云等代码托管平台。有些粗心的程序员在将代码上传至代码托管平台后,并没有对代码进行脱敏处理,导致上传的代码中有包含如数据库连接信息、邮箱密码、还有可能有泄露的源代码等。


三、收集端口信息

服务器就像一个房间,而端口就相当于房间的门,当我们拿到门的钥匙,自然就可以进入服务器,这里的钥匙,就是端口处的漏洞或者缺陷。
  常用的端口扫描工具推荐两款nmap和masscan,nmap相对准确,但是速度较慢,masscan相对较快,但是准确性不如nmap。
  每个端口有什么我们可以利用的漏洞在网络上都是可以查找到的。
  以下附一张常见端口及攻击方式:
  
  1、文件共享服务端口

端口号端口解释攻击方向
21/69FTP/tftp文件传输协议hostname:“google.com”
2049Nfs服务配置不当
139Samba服务爆破、未授权访问、远程代码执行
389Ldap注入、允许匿名访问、弱口令

2、远程连接服务端口

端口号端口解释攻击方向
22SSH远程连接爆破、SSH隧道及内网代理转发、文件传输
23Telnet远程连接爆破、嗅探、弱口令
3389Rdp远程桌面连接Shift后门(需要windows server 2003以下系统)、爆破
5900VNC弱口令包爆破
5632PyAnywhere抓密码、代码执行

3、web应用服务端口

端口号端口解释攻击方向
80/443/8080常见web服务端口Web攻击、爆破、对应服务器版本漏洞
7001/7002Weblogic控制台java反序列化、弱口令
8080/8089Jboss/Resin/Jetty/Jenkins反序列化、控制台弱口令
9090Webshere控制台Java反序列化、弱口令
4848GlassFish控制台弱口令
1352Lotus domino邮件服务弱口令、信息泄露、爆破
10000Webmin-web控制面板弱口令

4、数据库服务端口

端口号端口解释攻击方向
3389Mysql数据库注入、提权、爆破
1443MSSQL数据库注入、提权、爆破、SA弱口令
1521Oracle数据库注入、TNS爆破、反弹shell
5432PostgreSQL数据库注入、弱口令、爆破
27017 /27018MongoDB爆破、未授权访问
6379Redis数据库可尝试未授权范围、弱口令爆破
5000SysBase/DB2数据库注入、爆破’

5、邮件服务端口

端口号端口解释攻击方向
25SMTP邮件服务邮件伪造
110POP3协议爆破、嗅探
143IMAP服务爆破

6、网络常见协议端口

端口号端口解释攻击方向
53DNS域名系统允许区域传送、DNS劫持、缓存投毒、欺骗
67/68DHCP服务劫持、欺骗
161SNMP服务爆破、搜集目标内网信息

四、指纹识别

网站的指纹识别主要是指网站CMS指纹识别、计算机操作系统、web容器等的指纹识别,也就是特征识别,识别出这种特征,我们可以快速判断出网站使用了哪种cms,哪种容器等等。

1、常见的CMS(内容管理系统/整站系统)

有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。判断出CMS之后,我们可以在网上搜索相关CMS的漏洞和是否有源码泄露等。
  常见的指纹识别工具:WhatWeb、御剑web指纹识别等。

2、常见的网站容器

有Apache、Tomcat、IIS、Nginx等。 我们在探测到具体的版本时,可以在网上搜索对应版本的漏洞。

3、服务器类型(Windows、Linux)

我们可以使用nmap探测到具体的服务器类型及版本,然后搜索对应版本存在的漏洞。具体命令nmap -O ip即可

4、脚本类型(asp、jsp、php、aspx)

我们可以根据网站URL来判断,不同及脚本类型他在url中后缀不一样;使用谷歌黑客语法进行测试。

5、数据库类型及版本

常使用的数据库有Mysql、Access、Oracle、Sql Server,不同的数据库语法之间稍微有一些差异。数据库和脚本之间有一些比较常见的搭配:JSP+Oracle/Mysql、ASP/ASPX+Access/Sql Server、PHP+Mysql/Postgresql。


五、旁站和C段

1、旁站

指的是同一服务器上的其他网站,很多时候,在网站没有漏洞或者比较漏洞难已发现的时候,我们可以寻找服务器上其他站点的漏洞信息,当我们拿到其他站的漏洞,提升权限,到最后拿下服务器权限,那我们的目标站点权限也就拿下了。

2、C段

指的是同一网段的其他服务器。我们通过C段嗅探拿下同一C段下的其他服务器,在内网中,拿下一台服务器的权限,这是,我们可以再对其他C段主机进行渗透测试。
  常见的C段和旁站查询地址:
  http://www.webscan.cc


六、收集敏感目录信息

扫描Web目录结构和敏感文件,是很关键的一步,从中,我们可能获取网站后台管理页面、文件上传页面、网站源代码、编辑器、各种敏感文件、压缩包、配置文件等等。
  我们一般通过软件直接对目录进行爆破,常用的软件有Dirbuster、御剑、wwwscan等。


七、网站漏洞扫描

通过漏扫工具对网站进行漏洞探测,这个在未经授权的时候是违法的
常见的漏洞扫描工具有:appscan、awvs、burpsuite、nessus等。


八、社会工程学

社会工程学通常以交谈、欺骗、假冒或口语等方式,从合法用户中套取用户系统的秘密。熟练的社会工程师都是擅长进行信息收集的身体力行者。很多表面上看起来一点用都没有的信息都会被这些人利用起来进行渗透。比如说一个电话号码,一个人的名字,或者工作的ID号码,都可能会被利用。


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐