Web 测试信息收集学习

本文详细介绍了Web渗透测试中的信息收集过程,包括使用Whois查询、备案信息获取、子域名检测工具、端口扫描、指纹识别等方法。通过主动和被动方式收集域名、子域名、服务器配置、敏感目录等信息,以增强对测试目标的理解,为后续的渗透测试做好准备。同时,还讨论了如何查找和验证目标服务器的真实IP,以及如何利用各种在线工具和搜索引擎进行信息挖掘。
摘要由CSDN通过智能技术生成


在Web测试(渗透测试)前,最重要的一步就是信息收集,尽可能地收集目标组织的信息。

在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息、目标网站系统、CMS指纹、目标网站真实IP ,开放的端口等。
越是了解测试目标,测试的工作就越容易。

——

分类
信息收集分为主动信息收集和被动信息收集。
主动信息收集:
指与目标主机进行直接交互,从而拿到目标信息。如向目标进行扫描、探测等。
这一阶段主要目的是看目标开放了扫描端口,主机上运行扫描服务。

被动信息收集:
不与目标主机进行交互,通过搜索引擎或者社工等方式间接获取目标主机信息。
比如我们可以查询域名或 IP 的 whois ,邮箱反查等一系列手段,可以查到域名备案人、到期时间、主机运营机构等,在不接触到目标的情况下获取一些服务信息。

——

收集域名信息

1、Whois 查询

Whois 是一个标准的互联网协议,可用于收集网络注册信息,注册的域名、IP 地址等信息。
Whois 就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库。

在 Whois 查询中,能够得到注册人的姓名和邮箱等信息,对测试个人站点很有用。对一些小站点,域名所有人就是管理员。

在 Kali 中,Whois 已经默认安装了,可以直接打开查询域名。
在命令行输入指令:

whois url

这里用 baidu.com 进行尝试。
在这里插入图片描述

还有一些在线 Whois 查询网站,也可以查询到相关信息:

爱站工具网:https://whois.aizhan.com
站长之家: https://whois.chinaz.com
VirusTotal: https://www.virustotal.com

2、备案信息查询

网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部门申请的备案,这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生,如果网站搭建在其他国家,则不需要备案。
常用的备案信息查询网站:

天眼查:http://www.tianyancha.com

——
——

收集敏感信息

Google 是世界上最强的搜索引擎之一,是一个绝佳的工具。
可以通过构造特殊的关键字语法来搜索互联网上的相关敏感信息。

Google 的常用语法:
在这里插入图片描述

举例,尝试搜索一些学校的后台,语法为“site:edu.cn intext:后他管理
即搜索网页正文中含有“后台管理”并且域名后缀为 edu.cn 的网站。
显示搜索出了 3590000 条结果。
在这里插入图片描述

Google 搜索还可以用来收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和 robots.txt 等敏感信息。
Google 搜索引擎只是其中一种,还可以用百度、雅虎、Bing、Shodan 等搜索引擎上,语法大同小异。

通过 burpsuite 的 Repeater 功能也可以获取一些服务器的信息,如运行的 Server 类型及版本、PHP 的版本信息等。针对不同的 Server ,可以利用不同的漏洞进行测试。
如 baidu.com 的一些信息。
在这里插入图片描述

此外,还可以尝试在 GitHub 上寻找相关敏感信息,如数据库连接信息、邮箱密码、uc-key、阿里的osskey ,有时还能找到泄露的源代码等。

可以通过乌云漏洞表查询历史漏洞信息

乌云漏洞: http://wy.zone.ci/bugs.php

——
——

收集子域名信息

子域名也就是二级域名,指顶级域名下的域名。

如果目标网络规模比较大,直接从主域名入手是很不理智的,因为对这种规模的目标,一般主域名是重点防护区域,所以不如先进入目标的某个子域名,然后想办法接近真正的目标。
所以,就需要搜集目标的子域名。

——

1、子域名检测工具

检测子域名的工具主要有 Layer子域名挖掘机、K8、wydomain、Sublist3r、dnsmaper、subDomainsBrute、Maltego、Maltego CE 等。

Layer 子域名挖掘机的使用方法比较简单,直接在域名框中输入域名即可直接扫描。
扫描出来的内容可以看到域名、解析IP 、CDN 列表、Web 服务器和网站状态。
是直接通过字典里的内容一个一个进行枚举,相当于暴力破解。
在这里插入图片描述
——

2、用搜索引擎枚举子域名

利用 Google 语法搜索子域名,如搜索百度下的子域名:
site:baidu.com
在这里插入图片描述

——

3、第三方聚合应用枚举子域名

很多第三方服务汇聚了大量 DNS 数据集,可以通过它们检索某个给定域名的子域名。
就是一些工具里可能有这个功能。

也可以利用 DNSdumpster 网站:

https://dnsdumpster.com

在线 DNS 侦查和搜索的工具挖掘出指定域潜藏的大量子域。

——

4、证书透明度公开日志枚举

证书透明度(Certificate Transparency,CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个 SSL/TLS 证书发布到公共日志中。
一个 SSL/TLS 证书通常包含域名、子域名和邮件地址。
可以直接用搜索引擎查找某个域名所属证书的一些公开的 CT 日志。

一些证书搜索网站:

crt.sh :https://crt.sh
censys:https://censys.io

还有一些查询子域名的在线网站
子域名爆破网站:https://phpinfo.me/domain
IP 反查绑定域名网站: http://dns.aizhan.com

——
——

收集常用端口信息

在端口渗透信息的收集过程中,需要关注常见应用的默认端口和在端口上运行的服务。
最常见的扫描工具是 Nmap ,无状态端口扫描工具 Masscan 、ZMap 和御剑高速 TCP 扫描工具。

——

常见端口及其说明,以及攻击方向

文件共享服务端口

在这里插入图片描述
——

远程连接服务端口

在这里插入图片描述
——

Web 应用服务端口

在这里插入图片描述
——

数据库服务端口

在这里插入图片描述
——

邮件服务端口

在这里插入图片描述
——

网络常见协议端口

在这里插入图片描述
——

特殊服务端口

在这里插入图片描述
——
——

指纹识别

指纹具有终身不变性、唯一性和方便性,几乎成为生物特征识别的代名词。
这里说的指纹指网站 CMS 指纹识别、计算机操作系统及 Web 容器的指纹识别等。

应用程序一般在 html、js、css 等文件中包含一些特征码,如 WordPress 在 robots.txt 中会包含 wp-admin 、首页 index.php 中会包含 generator=wordpress 3.xx ,这个特征就是这个 CMS 的指纹,那么当碰到其他网站也存在此特征时,就可以快速识别出该 CMS ,所以叫指纹识别。

CMS( Content Management System,内容管理系统)
又称整站系统或文章系统。信息爆炸的时代,网站内容管理靠手工完成会相当痛苦。
所以出现了 CMS ,开发者只需要给客户一个软件包,直接安装配置好,就可以定期更新数据对网站进行维护,节省了大量人力和物力。

CMS 具有许多基于模板的优秀设计,功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档案。

对网站内容管理是该软件的最大优势,它流程完善、功能丰富,可把稿件分门别类并授权给合法用户编辑管理,而不需要用户去理会那些难懂的SQL语法。

常见的 CMS 有 Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。

代表工具有御剑 Web 指纹识别、WhatWeb、WebRobo、椰树、轻量 WEB 指纹识别等,可以快速识别一些主流 CMS 。

除了那些工具,还有一些查询 CMS 指纹识别的在线网站

BugScaner:http://whatweb.bugscaner.com/look
云悉指纹:http://www.yunsee.cn/finger.html
和WhatWeb:https://wahtweb.net

——
——

查找真实 IP

目标服务器可能只有一个域名,但是我们可以通过这个域名确定目标服务器的真实 IP,

——

1、目标服务器存在 CDN

CDN
即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能地下的问题。

就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(如静态的 html、css、js 图片等文件)直接缓存到节点服务器上,当用户再次请求时,会直接分发到在离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程服务器上响应,就可以大大提高网站的响应速度及用户体验。

在访问一些国外网站时,就需要使用代理节点,我们想访问的东西先会发送到代理的节点服务器上。

如果目标购买了 CDN 服务,可以直接 ping 目标的域名,但得到的不是真正的目标 Web 服务器,而是离我们最近的一台目标节点的 CDN 服务器,导致无法直接得到目标的真实 IP 段范围。

如果目标服务器不存在 CDN ,可以直接在在线查询网站获取目标的一些 IP 及域名信息:

www.ip138.com

——

2、判断目标是否使用了 CDN

通常直接在命令行 ping 目标主域,观察域名的解析情况,以此来判断其是否使用了 CDN 。
在这里插入图片描述

还可以利用在线网站,进行多地区的 ping 服务器操作。

17CE:https://www.17ce.com

然后对比每个地区 ping 出的 IP 结果,查看这些 IP 是否一致,如果都是一样的,极有可能是不存在 CDN 的。
如果 IP 大多不一样或者有规律性,可以尝试查询这些 IP 的归属地,判断是否存在 CDN 。

——

3、绕过 CDN 寻找真实 IP

确认目标使用了 CDN 之后,就需要绕过 CDN 寻找目标的真实 IP。
一些常规方法:

(1)内部邮箱源。

一般邮件系统都在内部,没用经过 CDN 解析,通过目标网站用户注册或者 RSS 订阅功能,查看邮件、寻找邮件头中的邮件服务器域名 IP ,ping 这个邮件服务器的域名,就可以获取目标的真实 IP。
(必须是目标自己的邮件服务器)

(2)扫描网站测试文件

如 phpinfo 、test 等,从而找到目标的真实 IP 。

(3)分站域名。

很多网站主站的访问量比较大会挂 CDN ,但是分站可能没有挂 CDN ,可以通过 ping 二级域名获取分站 IP 。可能会出现分站和主站不是同一个 IP 但在同一个 C 段下面的情况,从而判断目标的真实 IP 段。

(4)国外站点访问。

国内的 CDN 往往只对国内用户的访问加速,而国外的 CDN 就不一定了。
可以通过国外在线网站访问,可能得到真实 IP。

WebPageTest : http://www.webpagetest.org/
Website Speed Test : https://dnscheck.pingdom.com/
HOST-TRACKER : http://host-tracker.com/
在这里插入图片描述

(5)查询域名的解析记录。

目标可能以前没用过 CDN ,可以通过在线网站观察域名的 IP 历史记录,
可以大致分析出目标的真实 IP 段。

NETCRAFT:https://www.netcraft.com
在这里插入图片描述

(6)绕过目标网站有自己的 App

可以尝试用 burp 抓取 App 的请求,从数据包里找到目标的真实 IP 。

绕过 CloudFlare CDN 查找真实 IP 。
很多网站都使用 CloudFlare 提供的 CDN 服务。可以先尝试用在线网站对 CloudFlare 客户网站进行真实 IP 查询。

CloudFlare :http://www.crimeflare.us/cfs.html#box

——

4、验证获取的 IP

找到真实 IP 后,在网站通过 IP 访问,看响应页面是不是和访问域名返回的一样。
或者在目标段较大的情况下,借助类似 Masscan 的工具扫描对应 IP 段中所有开了 80、443、8080 端口的 IP ,观察响应结果是否为目标站点。

——
——

收集敏感目录文件

探测 Web 目录结构和隐藏的敏感文件,从中可以获取网站的后台管理系统、文件上传界面,甚至可能扫描出网站的源代码。

网站目录扫描的工具有 DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py(轻量级快速单文件目录后台扫描)、Sensitivefilescan(轻量级快速单文件目录后台扫描)、Weakfilescan(轻量级快速单文件目录后台扫描)等工具。

这里以 DirBuster 为例。
DirBuster 是 OWASP 开发的一款基于 Java 编写的,专门用于探测 Web 服务器的目录和隐藏文件。

DirBuster官网下载:https://sourceforge.net/projects/dirbuster/

下载之后,打开 .jar 程序运行。
在这里插入图片描述

  • 在Target URL 输入框中输入扫描的网址,扫描请求方法设置为 “Auto Switch(HEAD and GET)”选项。
  • 设置线程数值,推荐 20~30 之间。(太大任意引起系统死机)
  • 选择扫描类型,如果使用个人字典,选择“List based brute force”。
  • 在 Select starting options 中选择 “URL Fuzz”方式进行扫描。
  • 设置 fuzzing 时需要注意,在 URL to fuzz 中输入“/{dir}”是一个变量,用来代表字典中的每一行。
  • 如果扫描的目标是 http://www.xxx.com/admin/ ,就在 URL to fuzz 中填写“/admin/{dir}”,意思是在 {dir} 前后可以随意拼接想要的目录或者后缀,如输入 “:/admin/{dir}.php”表示扫描 admin 目录下的所有 .php 文件。
    在这里插入图片描述

除了那些工具,还有很多在线站点提供扫描。

WebScan:http://www.webscan.cc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goodric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值