信息收集

学习学习

Posted by lll-yz on April 8, 2021

收集域名信息

知道目标的域名之后,我们要做的第一件事就是获取域名的注册信息,包括该域名的DNS服务器信息和注册人的联系信息等。

whois查询

whois是一个标准的互联网协议,可用于收集网络注册信息,注册的域名、IP地址等信息。简单来说,whois就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。在whois查询中,得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。对中小站点而言,域名所有人往往就是管理员。

在Kali系统中,whois已经默认安装,只需要输入要查询的域名即可:

whois xxx(要查询的域名)

58U5jO.png

在线whois查询的常用网站有爱站工具网(https://whois.aizhan.com)、站长之家(http://whois.chinaz.com) 和 VirusTotal(https://www.virustotal.com),通过这些网站可以查询域名的相关信息,如域名服务商、域名拥有者,以及他们的邮箱、电话、地址等。

备案信息查询

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

常用的网站:

收集敏感信息

Google是世界上最强的搜索引擎之一,我们可以通过构造特殊的关键字语法来搜索互联网上的相关敏感信息。Google常用的语法及其说明: (其他网站也可以 都差不多)

58arGt.png

例如:我们尝试搜索一些学校网站的后台,语法为site: edu.cn intext: 后台管理,意思是搜索网页正文中含有 “后台管理” 并且域名后缀是 edu.cn 的网站。

58dmWt.png

我们可以利用它来获取我们想要的信息,还可以用它来收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和robots.txt等敏感信息。

burp的repeater功能同样可以获取一些服务器的信息,如运行的server类型及版本、PHP的版本信息等。针对不同的server,可以利用不同的漏洞进行测试(这个应该都会)。

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

然后可以通过乌云漏洞表(http://wy.zone.ci/) 查询历史漏洞信息。

收集子域名信息

子域名也就是二级域名,是指顶级域名下的域名。假设我们的目标网络规模比较大,直接从主域名入手显然很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先加入目标子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择。

子域名检测工具

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

推荐:

  • Layer子域名挖掘机:

使用比较简单,在域名对话框中直接输入域名即可进行扫描,它的显示界面比较细致,有域名、解析IP、CDN列表、web服务器和网站状态。

  • subDomainBrute:

特点是可以用小字典递归发现三级域名、四级域名,甚至五级域名等不容易被探测到的域名。

命令:

python subDomainsbrute.py xxx.com
  • Subllist3r:

它能列举多种资源,如在Google、Yahoo、Bing、百度和Ask等搜索引擎中可查到的子域名,还可以列出Netcraft、VirusTotal、ThreatCrowd、DNSdumpster和Reverse DNS查到的子域名。 Kali1

//枚举目标子域
python sublist3r.py -d 域名

//枚举子域并且显示开放 80 和 443 端口的子域
python sublist3r.py -d 域名 -p 80,443

//枚举目标子域并保存
python sublist3r.py -d 域名 -o filename.txt 

582cQJ.png

搜索引擎枚举

利用语法搜索子域名,如要搜索百度旗下的子域名就可以使用 “site: baidu.com” 语法。

第三方聚合应用枚举

DNSdumpster网站:https://dnsdumpster.com/

证书透明度公开日志枚举

证书透明度(Certificate Transparency, CT) 是证书授权机构(CA) 的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索一些公开的CT日志。

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

收集常用端口信息

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

  • 文件共享服务端口

5Geo4J.png

  • 远程连接服务端口

5GeH3R.png

  • web应用服务端口

5Geqjx.png

  • 数据库服务端口

5GeXDK.png

  • 邮件服务端口

5Gmivt.png

  • 网络常见协议端口

5GmkKP.png

  • 特殊服务端口

5GmADf.png

指纹识别

指纹由于其终身不变性、唯一性和方便性,几乎已成为生物特征识别的代名词。而这里我们说的是指网站CMS指纹识别、计算机操作系统及web容器的指纹识别等。

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

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

CMS(Content Management System) 有称整站系统或文章系统。常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。

代表工具有:御剑web指纹识别、WhatWeb、WebRobo等。

在线网站:

查找真实IP

在渗透测试过程中,目标服务器可能只有一个域名,那么如何通过这个域名来确定目标服务器的真实IP对渗透测试来说就很重要。如果目标服务器不存在CDN,可以直接通过www.ip138.com获取目标的一些IP及域名信息。

CDN简介

CDN即内容分发网络(Content Delivery Network)的简称,是建立在承载网基础上的虚拟分布式网络,能够将源站内容(包括各类动静态资源)智能缓存到全球各节点的服务器上。依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

cYdMuD.png

但在安全测试过程中,若目标存在CDN服务,将会影响到后续的安全测试过程。

判断目标是否存在CDN服务

  • 超级Ping:通过超级ping查看返回的IP,若在多个地区都为为一个IP地址,则说明没有开启CDN服务;若有多个IP,则说明开启了CDN服务。

还有其它方法,但这个就不错。

常见的CDN的绕过方法

子域名查询

子域名可能与主域名在同一服务器,也可能不在同一服务器但在同一网段或不在同一网段。

在同一服务器和同一网段都比较方便,同一网段可以扫描网段与端口来判断子域名IP。

子域名上面绕过CDN小技巧(不一定存在):

  • 在超级ping一个域名时,如 ping www.xueersi.com时,ping xueersi.com很可能可以绕过CDN服务。

原理:

cYfgud.png

也可以理解为:直接URL访问xiaodi8.com会时自动跳转到www.xiaodi8.com所以xiaodi8.com不会有很多的流量访问,就不需要做CDN服务,从而造成了这个绕过。

  • 在访问的网站前方加上m,例如:访问sp910.com时,在前面加上m,成为m.sp910.com。这个意思是从电脑端变为手机端访问。我们再通过识别手机站点来得到其真实IP。

  • 第三方查询网站(可以参考):get-site-ip.com

邮件服务查询

邮箱服务器一般不开启CDN服务(因为其访问人员少,且需要特定账户,不存在需要CDN服务),可以通过邮件发送来得到目标IP。

通过目标网站用户注册或者RSS订阅功能,查看邮件,寻找邮件头中的邮件服务器域名IP,ping 这个邮件服务器的域名,就可以获得目标真实的IP。(注意:必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的)

网页可以查看其源码:看是否存在我们想要得到的目标IP。

具体直接百度就好了。

国外地址请求

有一些网站,国外访问很少,不需要开启CDN服务。

我们可以查找一些偏远冷门,访问量少的国家来获得其服务器IP,因为当访问量少了便不需要去做CDN服务了。查询网站–>asm.ca.com

遗留文件,扫描全网

扫全网工具:fuckcdn、w8fuckcdn、zmap等。

黑暗引擎搜索特定文件

搜索引擎:

撒旦

钟馗之眼

fofa

dns历史记录,以量打量(流量攻击)

第三方接口查询:上方的–>get-site-ip.com

  • x.threatbook.cn 这个可能花钱
  • dnsdb.io
  • https://securitytrails.com/domain/查询网址/history/a
绕过CloudFlare CDN查找真实IP

很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以尝试通过在线网站 http://www.crimeflare/cfs.html#box

当我们通过各种方法得到的IP不同时判断

首先查询其IP地址,然后查看目标网站上的备案地址信息或其他信息:

cYLRtH.md.png

对比。一般与其相同的地址则为正确的IP。

还有一个好用的网站:https://tools.ipip.net/cdn.php

可以利用它来查找目标的真实IP地址。(选择一些偏远访问少的地方来查询)

验证获取IP

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

收集敏感目录文件

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

可以用工具扫描。

或在线工具网站如:WebScan (http://www.webscan.cc/)

社会工程

假设攻击者对一家公司进行渗透测试,正在收集目标的真实IP阶段,此时就可以利用收集到的这家公司的某位销售人员的电子邮箱。首先,给这位销售人员发送邮件,假装对某个产品很感兴趣,显然销售人员会回复邮件。这样攻击者就可以通过分析邮件头来收集这家公司的真实IP地址及内部电子邮件服务器的相关信息。

通过进一步应用社会工程学,假设现在已经收集了目标人物的邮箱、QQ、电话号码、姓名、以及域名服务商,也通过爆破或者撞库的方法获取邮箱的密码,这时就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持。

除此之外,还可以利用”社工库”查询想要得到的信息。社工库是用社会工程学进行攻击时累计的各方数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录。利用收集到的邮箱,可以在社工库中找到以及泄露的密码。还可以通过搜索引擎搜索到社交帐号等信息,然后通过利用社交和社会工程学得到的信息构造密码字典,对目标用户的邮箱和OA账号进行爆破或者撞库。

架构、搭建、WAF等

站点搭建分析

sti.blcu-bbs-目录型站点分析

可能会存在两个页面不是同一(cms),可以理解为两套程序,会有两个目标,我们可以任意攻击一个来达到目的。

端口搭建分析

同上目录分析,不同的端口分属不同应用,但还是属于同一服务器中,任意一个受到攻击都会使同一服务下的程序受到危害。

子域名两套CMS

主站可能有子域名在同一网段,这样可以借子域名网站来进行渗透。

各种常用域名后缀

通过查询目标站点的其他域名后缀来突破(src类网站存在的可能性大)。

旁注,c段站点

旁注: 同服务器不同站点。

前提: 多站点服务器。

192.168.1.100
	www.a.com
	www.b.com
	......

比如访问www.a.com时找不到漏洞,那么通过访问www.b.com来查找漏洞来间接的渗透进去。(有旁注查询网站)

c段: 同网段不同服务器不同站点。

前提: 独立站点服务器。

192.168.1.100
	www.a.com
	www.b.com
	......
192.168.1.101
	www.c.com
	www.d.com
	......

在一服务器中找不到漏洞时,去其同一网段服务器查找,在通过其来间接渗透。

搭建软件特征站点

如:用phpstudy搭建的网站,会有默认的在IP后加/phpmyadmin,会跳转到管理员界面,默认的账户密码是root。如果目标网站为phpstudy搭建可以尝试一下(毕竟万一没改,爽歪歪)。

//当然基本账户密码都改了
101.132.101.116/phpmyadmin
103.237.75.30/phpmyadmin

caMy01.md.png

当然其他软件也有其安全问题,这只是个例子。

识别WAF

WAF简介

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

快速识别WAF

可以用工具来识别,如–>wafw00f。

(如果有WAF不要直接开扫,否则基本上直接被发现禁掉。)

还可以查看网站的响应头信息,如果里面有X-Powered-By: WAF,就说明有WAF。(当然不是所有,有的WAF不会显示在这里)

APP及其他资产收集

可以抓包手机的流量包,再去之前钟馗之眼之类的查询网站找找目标其他不同端口,协议等网站,查找漏洞,进行渗透。

45.33.42.112:628,直接尝试了admin就可以登录进去。(奸笑)(当然我什么都木有干,害怕)

cDiNvR.png

类似这样,有的目标站点可能会在其他端口有漏洞,我们可以通过其来逐渐渗透到目标站点。

实例

一个测试例子,通过它来练习信息收集(听说是一个传x网站):www.caredaily.com

子域名查询

首先我们用之前说的撒旦,钟馗之眼,fofa来查询一些信息。

我们查询的时候直接查询caredaily.com,因为就像我们之前说的,这样还可以查询一些其子域名结果。

可以访问一些其他子域名站点看看,或查看其搜索IP得到的内容来进行审查:

cDVcu9.md.png

访问不到其他子域名站点的话,看看其IP查询得到的内容:

cDVh4K.md.png

可以通过查询到的服务器协议等进一步查询是否存在漏洞:

cDZ5aq.png

通过查询其漏洞来利用测试。

又如从其他方向来查询漏洞利用:

cDeALd.md.png

这里显示了数据库,我们猜测可能存在爆破可能,在网上查询是否有可利用的漏洞: cDe0lF.png

还可能存在其他方面的漏洞利用,总之我们可以多方面查询,查找一些被忽略的漏洞。

当然我们也可以用nmap来扫描,通过得到的信息来查询漏洞,进行渗透。当然查询的方法很多,要多试试,比如还有子域名查询网站,我们可以在上面找找,还有利用搜索引擎技巧,使用site:来搜索,还有端口扫描等。

最好还是多管齐下,毕竟黑暗引擎搜索的不一定正确,我们还是要相互对比。

旁注/c段查询

这里就用旁注来测试:

通过之前得到的IP地址,去旁注查询网站来查询(直接在网上搜索旁注/c段查询即可):

cDufpV.md.png

多去几个网站查询一下,毕竟有的查询不到。

然后同上步骤查询漏洞,得不到继续同上(就是个循环),若能找到就可以通过这个网站来对目标站点渗透。

……

资产监控扩展

GitHub监控

便于收集整理最新的exp或poc 便于发现相关测试目标的资产

来个IP定位网址:https://www.opengps.cn/Data/IP/LocHighAcc.aspx 免费滴(当然不一定准 openGPS.cn)