第一章 渗透信息之信息收集

目录

1. 收集域名信息(获取域名的注册信息,包括域名的DNS服务器信息和注册人的联系信息等)

1.1 Whois查询

1.2 备案信息查询

2. 收集敏感信息

3. 收集子域名信息

3.1 子域名检测工具

3.2 搜索引擎枚举

3.3 第三方聚合应用枚举

3.4 证书透明度公开日志枚举

4. 收集常用端口信息

扫描二维码关注公众号,回复: 13139408 查看本文章

5. 指纹识别

6. 查找真实IP

6.1 目标服务器存在CDN

6.2 判断目标是否使用了CDN

6.3 绕过CDN寻找真实IP

6.4 验证获取的IP

7. 收集敏感目录的文件


 

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

1. 收集域名信息(获取域名的注册信息,包括域名的DNS服务器信息和注册人的联系信息等)

1.1 Whois查询

whois是一个标准的互联网协议,可用于收集网络注册信息,注册的域名,IP地址等信息。

在whois查询中,得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有者的很多信息。对中小站点而言,域名所有人通常就是管理者。

1.2 备案信息查询

若网站搭建在其他国家,则不需要进行备案

查询网站:

ICP备案查询网:https://beian.miit.gov.cn/#/Integrated/index

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

2. 收集敏感信息

Google是世界上最强的搜索引擎之一,对于一位渗透测试者而言,它可以是一款黑客工具。我们可以通过构造特殊的关键字语法来搜索互联网上的一些相关敏感信息。下面列举一些常用语法及其说明:

关键字 说明
site 指定域名
inurl url中存在关键字的网页
Intext

网页正文中的关键字

Filetype 指定文件类型
Intitle 网页标题中的关键字
link link:baidu.com表示所有和baidu.com做链接的url
Info 查找指定站点的一些基本信息
cache 搜索Google里关于某些内容的缓存

如下图搜索出以域名后缀为edu.cn 网页正文中由“后台管理” 的网站;(用burpsuite工具也可以获取网站的敏感信息

3. 收集子域名信息

子域名也是二级域名,是指顶级域名下的域名。当目标网络规模较大时,直接从主域入手显然不理智,这时就可以先进入目标的某个子域。如何尽可能多地搜集目标的高价值子域呢?如下:

3.1 子域名检测工具

主要有:K8、wydomain、Sublist3r、dnsmaper、subDomainsBrute、Maltego CE等。

3.2 搜索引擎枚举

可以利用Google语法搜索子域名,如下图所示:

3.3 第三方聚合应用枚举

很多第三方服务汇聚了大量DNS(Domain Name System 域名系统)数据集,可通过他们检索某个给定域名的子域名。只需要在搜索栏中输入域名,就可检索到相关的域名信息。

可以利用DNSdumpster网站 https://dnsdumpster.com/ 、在线DNS侦查和搜索工具挖掘出指定域潜藏的大量子域。

3.4 证书透明度公开日志枚举

证书透明度(certificate transparency CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名、邮件地址。查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索公开的CT日志。

https://crt.sh/

https://censys.io/

上面两个网站可以进行子域名枚举,ctr.sh效果如下图

此外,还有一些在线网站查询子域名,如子域名爆破网站(https://phpinfo.me/domain),IP反查绑定域名网站(http://dns.aizhan.com)等。

4. 收集常用端口信息

在渗透测试的过程中,对端口信息的收集是个重要过程,通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,可以便于我们渗透目标服务器。

所以我们需要关注常见应用的默认端口和在端口上运行的服务。

常见的端口扫描工具:Nmap,无状态端口扫描工具Masscan,ZMap和御剑高速TCP端口扫描工具。

常见的端口及其说明,以及攻击方向汇总如下:

文件共享服务端口
端口号 端口说明 攻击方向
21/22/69 ftp/tftp文件传输协议 允许匿名的上传、下载、爆破和嗅探操作
2049 Nfs服务 配置不当
139 Samba服务 爆破、未授权访问、远程代码执行
389 Ldap目录访问协议 注入、允许匿名访问、弱口令
远程连接服务端口
端口号 端口说明 攻击方式
22 SSH远程连接 爆破、SSH隧道及内网代理转发、文件传输
23 Telnet远程连接 爆破、嗅探、弱口令
3389 Rdp远程桌面连接

shift后门(需要Windows Server 2003以下的系统)、爆破

5900 VNC 弱口令爆破
5632 PyAnywhere服务 抓密码、代码执行
Web应用服务端口
端口号 端口说明 攻击方向
80/443/8080 常见的Web服务端口 Web攻击、爆破、对应服务器版本漏洞
7001/7002 WebLogic控制台 Java反序列化、弱口令
8080、8089 Jboss/Resin/Jetty/Jenkins 反序列化、控制台弱口令
9090 WebSphere控制台 Java反序列化、弱口令
4848 GlassFish控制台 弱口令
1352 Lotus domino邮件服务 弱口令、信息泄露、爆破
10000

Webmin-Web

弱口令
数据库服务端口
端口号 端口说明 攻击方向
3306 Mysql 注入、提权、爆破
1433 MSSQL数据库 注入、提权、SA弱口令、爆破
1521 Oracle数据库 TNS爆破、注入、反弹shell
5432 PostgreSQL数据库 爆破、注入、弱口令
27017/27018 MongoDB 爆破、未授权访问
6379 Redis数据库 可尝试未授权访问、弱口令爆破
5000 SysBase/DB2数据库 爆破、注入
邮件服务端口
端口号 端口说明 攻击方向
25 SMTP邮件服务 邮件伪造
110 POP3协议 爆破、嗅探
143 IMAP协议 爆破
网络常见协议端口
端口号 端口说明 攻击方向
53 DNS域名系统 允许区域传送、DNS劫持、缓存投毒、欺骗
67/68 DHCP服务 劫持、欺骗
161 SNMP协议 爆破、搜集目标内网信息
特殊服务端口
端口号 端口说明 攻击方向
2181 Zookeeper服务 未授权访问
8069 Zabbix服务 远程执行、SQL注入
9200/9300 Elasticsearch服务 远程执行
11211 Memcache服务 未授权访问
512/513/514 Linux Rexec服务 爆破、Rlogin登录
873 Rsync服务 匿名访问、文件上传
3690 Svn服务 Svn泄露、未授权访问
50000 SAP Management Console 远程执行

5. 指纹识别

这里的指纹是指网站CMS(Content Management System 内容管理系统)指纹识别、计算机操作系统及Web容器的指纹识别等。

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

在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的WEB容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。

CMS又称整站系统或文章系统。以前的网站内容管理一般靠手工维护,但应用CMS的话,开发者只需要给客户一个软件包,客户自己安装配置好,就可以定期更新数据来维护网站,节省了大量的人力物力。

常见的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/

云悉指纹:https://www.yunsee.cn/

WhatWeb:https://www.whatweb.net/

6. 查找真实IP

在渗透测试过程中,目标服务器可能只有一个域名,那么如何通过这个域名来确定目标服务器的真实IP对渗透测试来说就很重要。如果目标服务器不存在内容分发网络CDN(Content Delivery Network)。可以直接通过www.ip138.com获取目标的一些IP及域名信息。这里主要讲解在以下几种情况下,如何绕过CDN寻找目标的真实IP。

6.1 目标服务器存在CDN

CDN即内容分发网络,主要解决因传输距离和不同运营商结点造成的网络速度性能低下的问题。说的简单点,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(如静态的html、css、js图片等文件)直接缓存到节点服务器上,当用户再次请求的时候,会直接分发到离用户近的结点服务器上响应给用户,当用户有实际数据交互时才会从远程web服务器上响应,这样可以大大提高网站的响应速度及用户体验。

所以如果渗透目标购买了CDN服务,就可以直接ping目标的域名,但得到的并非真正的目标web服务器,只是离我们最近的一台目标节点的CDN服务器,这就导致了我们没法直接得到目标的真实IP段范围。

6.2 判断目标是否使用了CDN

通常会通过ping目标主域,观察域名解析情况,以此来判断是否使用了CDN。

还可以利用在线网站17CE(https://www.17ce.com/)进行全国多地区的ping服务器操作,然后对比每个地区ping出的IP结果:一致极有可能不存在CDN;如果大多不太一样或者规律性很强,可以尝试查询IP的归属地,判断是否存在CDN。

6.3 绕过CDN寻找真实IP

在确认目标确实使用了CDN后,就需要绕过CDN寻找目标的真实IP,下面介绍常规的方法:

  • 内部邮箱源。一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS【RSS简易信息聚合(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用】订阅功能,查看邮件、寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,就可以获得目标的真实IP(必须是目标自己的邮件服务器,第三方或者公共邮件服务器是没有用的)。
  • 扫描网站测试文件,如phpinfo、test等,从而找到目标的真实IP。
  • 分站域名。很多网站主站的访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以通过ping二级域名获取分站IP,可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能够判断出目标的真实IP段。
  • 国外访问。国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此。通过国外在线代理网站App Synthetic Monitor(https://asm.ca.com/en/ping.php)访问,可能会得到真实的IP。
  • 查询域名的解析记录。也许目标很久以前并没有用过CDN,所以可以通过网站NETCRAFT(https://www.netcraft.com/)来观察域名的IP历史记录,也可以大致分析出目标的真实IP段。
  • 如果目标网站有自己的APP,可以尝试利用Fiddle或Burpsuite抓取App的请求,从里面找到真实的IP地址。
  • 绕过CloudFlare CDN查找真实IP。现在很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过在线网站CloudFlareWatch(http://ww7.crimeflare.us/#box)对 CloudFlare客户网站进行真实IP查询。

6.4 验证获取的IP

找到目标的真实IP后,如何验证其真实性呢?——如果是web,最简单的验证方法就是直接尝试用IP访问,看看响应的页面是否和访问域名返回的一样;或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开了80、443、8080端口的IP,然后逐个尝试IP访问,观察响应结果是否为目标站点。

7. 收集敏感目录的文件

在渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理界面、文件上传界面,甚至可以扫描出网站的源代码。

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

DirBuster下载链接:https://pan.baidu.com/s/1FNtmKUzwoGpmwsjzGWF7Aw 提取码: b7gv 

除此之外,还有一些在线工具站,如WebScan(https://www.webscan.cc/

猜你喜欢

转载自blog.csdn.net/weixin_47982238/article/details/115104264
今日推荐