在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息﹑目标网站系统﹑CMS指纹﹑目标网站真实IP﹑开放的端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。
Part1收集域名信息
1Whois查询
Whois是一个标准的互联网协议,可用于收集网络注册信息,注册的域名﹑IP地址等信息。简单来说,Whois就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
在Kali系统中,Whois已经默认安装,只需输入要查询的域名即可;在线Whois查询的常用网站有爱站工具网(https://whois.aizhan.com)、站长之家(http://whois.chinaz.com)和VirusTotal(https://www.virustotal.com)。
2备案信息查询
这个主要针对国内网站,如果网站搭建在其他国家,则不需要进行备案。常用的网站有以下这两个:
-
ICP备案查询网:http://www.beianbeian.com -
天眼查:http://www.tianyancha.com
Part2收集敏感信息
Google是世界上最强的搜索引擎之一,对一位渗透测试者而言,它可能是一款绝佳的黑客工具。
关键字 | 说明 | 实例 |
---|---|---|
Site | 指定域名 | dns site:blog.csdn.net |
Inurl | URL中存在关键字的网页 | site:blog.csdn.net inurl:admin |
Intext | 网页正文中的关键字 | intext:dns |
Filetype | 指定文件类型 | filetype:doc intext:dns |
Intitle | 网页标题中的关键字 | intitle:关键字 intext:dns |
link | link:baidu.com即表示返回所有和 baidu.com做了链接的URL | link:zhihu.com |
info | 查找指定站点的一些基本信息 | info:zhihu |
cache | 搜索google里关于某些内容的缓存 | cache:zhihu.com |
另外,通过Burp Suite的Repeater功能同样可以获取一些服务器的信息,如运行的Server类型及版本、PHP的版本信息等。针对不同的Server,可以利用不同的漏洞进行测试。
除此之外,也可以尝试在GitHub上寻找相关敏感信息,如数据库连接信息、邮箱密码、uc-key、阿里的osskey,有时还可以找到泄露的源代码等。
还有一些历史漏洞查询平台:https://www.cnvd.org.cn/(国家信息安全漏洞共享平台)、http://cve.scap.org.cn/
Part3收集子域名信息
子域名也就是二级域名,是指顶级域名下的域名。假如我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择。
1子域名检测工具
用于子域名检测的工具主要有Layer子域名挖掘机、K8、wydomain、Sublist3r、dnsmaper、subDomainsBrute、Maltego CE等。重点推荐Layer子域名挖掘机、Sublist3r和subDomainsBrute。
Layer子域名挖掘机
Layer子域名挖掘机的使用方法比较简单,在域名对话框中直接输入域名就可以进行扫描,它的显示界面比较细致,有域名、解析IP、CDN列表、Web服务器和网站状态。
Sublist3r
Sublist3r也是一个比较常用的工具,它能列举多种资源,如在Google、Yahoo、Bing、Baidu和Ask等搜索引擎中可查到的子域名,还可以列出Netcraft、VirusTotal、ThreatCrowd、DNSdumpster和Reverse DNS查到的子域名。
subDomainsBrute
subDomainsBrute的特点是可以用小字典递归地发现三级域名、四级域名,甚至五级域名等不容易被探测到的域名。
2搜索引擎枚举
例如:google语法site:url
3第三方聚合应用枚举
利用DNSdumpster网站(https://dnsdumpster.com/)、在线DNS侦查和搜索的工具挖掘出指定域潜藏的大量子域。
4证书透明度公开日志枚举
证书透明度(Certificate Transparency,CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址。
查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索一些公开的CT日志。推荐crt.sh:https://crt.sh和censys:https://censys.io这两个网站。
Part4收集常用端口信息
通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,就可以对症下药,便于我们渗透目标服务器。需要关注常见应用的默认端口和在端口上运行的服务。最常见的扫描工具就是Nmap,无状态端口扫描工具Masscan、ZMap和御剑高速TCP端口扫描工具。
Part5指纹识别
指纹是指网站CMS指纹识别、计算机操作系统及Web容器的指纹识别等。
组件是网络空间最小单元,Web应用程序、数据库、中间件等都属于组件。指纹是组件上能标识对象类型的一段特征信息,用来在测试信息收集环节中快速识别目标服务。互联网随时代的发展逐渐成熟,大批应用组件等产品在厂商的引导下走向互联网,这些应用程序因功能性、易用性被广大用户所采用。大部分应用组件存在足以说明当前服务名称和版本的特征,识别这些特征获取当前服务信息,也即表明该系统采用那个公司的产品,例如论坛常用Discuz!来搭建,通过其robots.txt等可以识别网站程序是采用 Discuz。
常见的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://whatweb.net/
Part6查找真实IP
CDN:CDN(Content Delivery Network)是指内容分发网络,也称为内容传送网络。基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
可以利用在线网站17CE(https://www.17ce.com)进行全国多地区的ping服务器操作,然后对比每个地区ping出的IP结果,查看这些IP是否一致,如果都是一样的,极有可能不存在CDN。
-
内部邮箱源。一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名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,如图1-11所示。 -
查询域名的解析记录。也许目标很久以前并没有用过CDN,所以可以通过网站NETCRAFT(https://www.netcraft.com/)来观察域名的IP历史记录,也可以大致分析出目标的真实IP段。 -
如果目标网站有自己的App,可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP。 -
绕过CloudFlare CDN查找真实IP。现在很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过在线网站Cloud FlareWatch(http://www.crimeflare.us/cfs.html#box)对CloudFlare客户网站进行真实IP查询,结果如图1-12所示。
找到目标的真实IP以后,如何验证其真实性呢?
如果是Web,最简单的验证方法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样;或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开了80、443、8080端口的IP,然后逐个尝试IP访问,观察响应结果是否为目标站点。
Part7收集敏感文件目录
在渗透测试中,探测Web目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理页面﹑文件上传界面,甚至可能扫描出网站的源代码。
针对网站目录的扫描主要有DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py(轻量级快速单文件目录后台扫描)、Sensitivefilescan(轻量级快速单文件目录后台扫描)、Weakfilescan(轻量级快速单文件目录后台扫描)等工具。
还可以利用很多在线工具站,效果也相当不错,这里推荐一个:WebScan(http://www.webscan.cc/)。
Part8社会工程学
可以利用“社工库”查询想要得到的信息。社工库是用社会工程学进行攻击时积累的各方数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录。利用收集到的邮箱,可以在社工库中找到已经泄露的密码,其实还可以通过搜索引擎搜索到社交账号等信息,然后通过利用社交和社会工程学得到的信息构造密码字典,对目标用户的邮箱和OA账号进行爆破或者撞库。
这里提供一些关于社工的思路:
1搜索引擎搜索
直接搜索
-
模式 1-1: 搜索 qq 号:该模式主要针对次腾讯时代的群体,主要对象为学生。 -
搜索不大众化的网络昵称:大多数使用网络的人有两个坏习惯:1、昵称在所有网站都一样;2、所有的密码都一样 -
搜索姓名或学号:这个主要针对在校或刚离校两年内的在校大学生,需要知道在读的学校,名字或学号任意。
通过人人网搜索
这条主要针对在校大学生、高中生。很多大学社团在招新的时候会通过人人网拉关注,大多数人就是在这个时候才把丢了好多年的人人网捡起来。
通过其他社交网络搜索
-
github 搜索:主要针对计算机专业的已工作人士和一些冒尖的大学生 -
v2ex 搜索:主要针对对互联网感冒的人和移动互联网的已工作人士
2硬技术手段 (核心)
网站群非对称共享用户授权
例如一般高校存在的共享授权逻辑错误:
-
通过学号姓名查询系统可以得到指定学号的拥有人。 -
图书馆默认登陆账户为学号,默认密码为学号,完成学号-> 姓名认证后可以得到用户的身份证号。 -
教务系统默认登陆密码为身份证号。 -
智慧校园默认登陆密码为身份证号后 6 位,可以获取用户每天的消费记录。
开发者部署后用弱密码测试帐号测试过系统
这种情况可遇不可求,不过很多的情况下,不是开发者使用的测试帐号,而是使用者为了验证系统可靠创建的一个临时账号忘记删除。
另外,还有两个很有意思的网站:https://www.reg007.com/(查询每个手机号注册了哪些网站,包括keep、微博等热门网站) https://iknowwhatyoudownload.com/(监测对方下载了什么)
·END·
▼
谨记责任,高歌向前
▼
文案 | Crispitol
排版 | A Robot
审核 | Crispitol
指导老师| Hard Target
本文始发于微信公众号(蝰蛇安全实验室):信息收集
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论