信息收集-红队

从个人的角度去简单整理下打点前的信息收集那些事。从信息收集本质上来说多数内容都是大同小异,遇到坚壁时,不用死磕,毕竟条条大路通罗马。(大佬们也可以说说看法~向各位大佬学习!!)

Tell Me


想要构建一个"上帝视野",前期的信息收集工作是必不可少的,无论是了解一个人、一项业务、还是深入一个系统等,都需要"信息"。大佬曾说过,渗透测试的本质是信息收集,而个人直观感受就是"意料之外,情理之中"。

本文就简单整理下打点前的信息收集那些事。从信息收集本质上来说多数内容都是大同小异,遇到坚壁时,不用死磕,毕竟条条大路通罗马。

红队知识点大致流程:

外网信息收集------>打点------>权限维持------>提权------>内网信息收集------>横向移动------>痕迹清理

打点关键资产数据信息:

  • 找出网站真实IP,挖掘相邻网段、绕过安全设备
  • 判断目标是否为蜜罐
  • 定位内网IP和系统
  • 定位关键的应用系统
  • 定位关键企业信息

外网信息收集


对于外网信息收集主要有几点:ip、域名、企业等资产信息以及相应端口/服务、指纹、敏感信息、社工碰撞等易受攻击面信息。

tips:

  • 挂代理池,走负载均衡,防止被锁IP。

  • 确定目标后,析缕分条,找到突破及利用点。

  • 关于打点时隐匿:

    攻击前:虚拟机做全局代理、浏览器隐私模式或Tor,脚本、账号啥的非本人

    攻击后:Rootkit......

0x00 常用工具、资源简记:


工具、网站 备注
爱站站长工具 Whois、备案号、权重、公司名称等
天眼查企查查搜狗搜索引擎 公司注册域名、微信公众号、APP、软件著作权等
ZoomEyeShodanFOFA0.Zonequake 网络空间资产搜索引擎
ENScanGoICP备案 主域名收集
OneForAllLayerRapid7的开源数据项目ctfrEyeWitness 子域名收集
KscanShuiZe_0x727ARL灯塔Goby 自动化、批量信息收集
BufferflyEhole 资产处理、信息筛选
dnsdbCloudFlair CDN相关
VirusTotal微步ip2domain C段、域名/ip情报信息
NmapMasscan 端口服务信息
Google Hacking、dirsearchURLFinder WEB站点信息、api接口等
wafw00f waf识别
云悉潮汐WhatWeb 在线CMS识别
七麦小蓝本 APP资产
ApkAnalyser App敏感信息
乌云漏洞库CNVDwaybackurls 历史漏洞、历史资产等
n0tr00t/Sreg、reg007 个人隐私信息
GitDorker 资产信息、源码泄露
theHarvesterSnov.io 邮箱信息收集
OSINT开源情报和侦擦工具 开源情报资源导航
anti-honeypotHoneypot Hunter 蜜罐识别

0x01 主域名信息

域名用来代替IP使其更容易被用户找到、记住。

对于"非用户"来说,可通过域名信息获取:主域名、存活站点、关联信息、钓鱼信息。为漏洞挖掘提供数据支撑。

1. ICP备案

国内服务器线上运营都必须先办理ICP备案后才能上线。

备案信息查询:
  • ICP备案查询

https://beian.miit.gov.cn/#/Integrated/index

  • 公安部备案查询
备案反查主域名

反查可分为备案域名查询和未备案域名查询。

备案域名查询

  • 第三方站点

    • ICP备案查询-站长工具
    • SEO综合查询
  • 公安部备案查询
  • 企业信息查询网站

未备案域名查询

  • 已知网站信息获取(如,网站站点导航可能会包含未备案的站点)
  • 网络空间引擎进行证书、图标关联搜索。例如:fofa指定搜索规则 is_domain=true,即表示只返回域名*(个人感觉国外shodan、国内fofa)*。

2. Whois

whois是用来查询域名的IP以及所有者等信息的传输协议。

通过whois信息可以获取注册人的关键信息。如注册商、联系人、联系邮箱、联系电话,也可以对注册人、邮箱、电话反查域名,也可以通过搜索引擎进一步挖掘域名所有人的信息。深入可社工、可漏洞挖掘利用。

ps:

  • 部分whois查询存在隐藏信息,可以在其他站点查询。
  • whois主要还是注册商、注册人、邮件、DNS 解析服务器、注册人联系电话。
  • 由于GDRP,ICANN要求所有域名注册商必须对域名whois隐私信息进行保护,所以whois信息越来越少......但还是会存在一些whois域名系统是旧缓存数据。

3. IP反查

ps:

  • 目标可能存在多个域名绑定于同一ip上,通过ip反查可以获取到其他域名信息。比如旁站。

    • 通过获取目标真实IP后,进行反查的旁站更真实。
  • 查询站点需复杂性,单一的站点会有反查不出信息的可能。

    • 大型企业不同的站点收录可能不一样
    • 个人推荐3个不同站点反查
如何查询

在线查询网站

搜索引擎

  • shodan
  • bing
  • fofa

4. HOST碰撞

信息收集过程中,往往会因为配置错误或是未及时回收等原因,存在一些隐形资产。直接访问的话会出现访问限制的问题,如下:

  • ip访问响应多为:nginx、4xx、500、503、各种意义不明的Route json提示等
  • 域名解析后到内网地址
  • 有服务器真实 IP,但找不到内网域名。

究其原因,大多数是因为中间件对ip访问做限制,不能通过ip直接访问,必须使用域名进行访问。如果域名解析记录里也找不到域名记录,这时就可以用到HOST碰撞技术,通过将域名和IP进行捆绑碰撞,一旦匹配到后端代理服务器上的域名绑定配置,就可以访问到对应的业务系统,从而发现隐形资产。

手法:

使用收集到的目标IP、爬虫或自定义的内部域名(内网host池),作为字典,通过脚本进行碰撞,脚本会自动模拟绑定ip与host进行请求交互,通过标题或响应大小判断结果。只要字典够强大,总能出一两个,爆破时最好也试下TLS,部分主机会使用TLS的。

验证结果,只需修改本机host文件绑定host与ip后,看访问变化。

自动化

5. DNS共享记录

关于DNS

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名,即保存了IP地址域名的相互映射关系。域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。也正是因为DNS的存在,访问相应服务只需记住域名,不需要记住无规则的ip地址。

  • DNS服务器端口: tcp/udp 53。

  • 常用DNS记录:

    记录类型 说明
    A 记录 将域名指向一个 IP 地址(外网地址)。
    CNAME 记录 将域名指向另一个域名,再由另一个域名提供 IP 地址(外网地址)。
    MX 记录 电子邮件交换记录,记录一个邮件域名对应的IP地址,设置邮箱,让邮箱能收到邮件。
    NS 记录 域名服务器记录,记录该域名由哪台域名服务器解析。如将子域名交给其他 DNS 服务商解析。
    AAAA 记录 将域名指向一个 IPv6 地址。
    SRV 记录 用来标识某台服务器使用了某个服务,常见于微软系统的目录管理。
    TXT 记录 对域名进行标识和说明,绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件)。
利用价值

可以通过查询共享DNS服务器的主机来获取到相关的域名,一般多是用于自建DNS服务器。如果是公开的DNS服务器,那么查询的效果将会特别差。

手法
  • 查询目标是否存在自建的NS服务器

    nslookup -query=ns baidu.com 8.8.8.8

6. Google

直接搜索目标相关关键内容来查询,比如公司名、备案、引用的特殊js等。

搜索引擎很多,这里以Google为例:

7. 配置信息

由于信息泄露问题,某些配置或文件会存储一些目标相关的域名,如子域名、代码托管平台等,一般来说存储信息有限且不应公网存在此类文件。

策略文件域名信息问题如:

  • crossdomain.xml文件

    • 通常域名直接拼接crossdomain.xml路径
  • sitemap文件

    站点地图文件,常见如:

    • sitemap.xml、sitemap.txt、sitemap.html、sitemapindex.xml、sitemapindex.xml路径

策略配置方面如

  • 内容安全策略(CSP,Content Security Policy)

这是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是浏览器)的行为。通过控制要启用哪些功能,以及从哪里下载内容,可以减少网站的攻击面。CSP的主要目的是防御跨站点脚本(cross-ste scripting,XSS)攻击。例如,CSP可以完全禁止内联的JavaScript,并且控制外部代码从哪里加载。它也可以禁止动态代码执行。禁用了所有的攻击源,XSS攻击变得更加困难。CSP中的关键字有default-src、img-src、object-src和script-src。其中*-src可能会存在域名信息。

关键点:

HTTP header的Content-Security-Policy属性

8. 众测

补天、漏洞银行、先知、hackerone等众测的广商提供的域名测试范围。

比如hackerone:alibaba

9. 企业资产信息

通过企业名称拓展查询目标企业的组织架构、股权信息、股权穿透图、子公司、孙公司、对外投资50%等目标信息,获取其产品业务、域名、邮箱资产范围等,扩大攻击面。大概企业资产收集点如下:

  • 企业数据:

    • 邮箱收集

    • 企业架构画像

    • 直属单位、机构设置、供应商*(相关合同、人员、系统、软件等)*、合作商等

    • 业务信息:证券、快递、专用网、院校等

  • 人员数据,如统计、职责、部门、人员历史泄露密码、浏览习性等

  • 设备信息:

    • WiFi
    • 常用密码、部门设备信息
    • OA/erp/crm/sso/mail/vpn等入口
    • 网络安全设备(waf,ips,ids,router等统计)
    • 内部使用的代码托管平台(gitlab、daocloud等)、bug管理平台、监控平台等
    • 服务器域名资产
    • site:xxx
股权投资信息

一般要求50%持股或者100% 持股都可以算测试目标。

  1. 天眼查

https://www.tianyancha.com/

  1. 企查查

https://www.qcc.com/

  1. 钉钉企典

https://www.dingtalk.com/qidian/home?spm=a213l2.13146415.4929779444.89.7f157166W6H4YZ

公众号信息
  1. 搜狗搜索引擎

https://wx.sogou.com/

  1. 企查查

https://www.qcc.com/

小程序
  1. 企查查

https://www.qcc.com/

  1. 微信app
  2. 支付宝app
应用信息
  1. 天眼查

https://www.tianyancha.com/

  1. 七麦数据

https://www.qimai.cn/

  1. 企查查

https://www.qcc.com/

  1. 小蓝本

https://www.xiaolanben.com/pc

  1. 点点数据

https://app.diandian.com/

  1. 豌豆荚

https://www.wandoujia.com/

方便获取app历史版本

关于工具
  • ENScanGo

https://github.com/wgpsec/ENScan_GO

由狼组安全团队的 Keac 师傅写的专门用来解决企业信息收集难的问题的工具,可以一键收集目标及其控股公司的 ICP 备案、APP、小程序、微信公众号等信息然后聚合导出。

0x02 子域名信息

子域名一般是父级域名的下一级。一般企业主站域名的防护都是重点,安全级别较高,突破难度较大,而企业可能会有数十个甚至更多的子域名应用,因为数量众多,安全因素和成本投入多,相应的防护也没有那么及时有效。子域名往往是攻击突破口,通过子域名发现更多的可能性或是进行迂回攻击。

子域名信息点

  • 子域名包含一些常见资产类型:办公系统,邮箱系统,论坛,商城等。而其他管理系统,网站管理后台等较少出现在子域名中。
  • 一般情况下,相同类型漏洞可能存在同一组织的不同的域名/应用程序中。
  • 子域名系统维护成本、用户群体等,一般少于主域名,会存在一些版本迭代、配置不安全、弱密码账号管理策略等。
  • 子域名探测发现更多的服务,增加漏洞发现的可能性。

1. 枚举爆破

手法介绍

要说简单粗暴还是子域名枚举爆破,通过不断的拼接字典中的子域名前缀去枚举域名的A记录进行DNS解析,如果成功解析说明子域名存在。如xxx.com拼接前缀test组合成test.xxx.com,再对其进行验证。但是域名如果使用泛解析的话,则会导致所有的域名都能成功解析,使得子域名枚举变得不精准。

nslookup验证下~

  • 泛解析域名,成功解析不存在的域名。
  • 普通解析,不存在的域名解析会失败。
关于泛解析

那么域名使用了泛解析怎么去解决呢?

一般有两种:

  • 黑名单ip:

    • 通过获取一个不存在的子域名相应解析IP,来记录标记黑名单ip,再爆破字典时,解析到的IP在这个黑名单ip中,则跳过,不存在就继续处理。
    • 或是记录相同的,保留一到两个。
  • TTL

    • 在权威 DNS 中,泛解析记录的 TTL 肯定是相同的,如果子域名记录相同,但 TTL 不同,那这条记录可以说肯定不是泛解析记录。
  • 响应内容

    • 牺牲速度,先获取一个绝对不存在域名的响应内容,再遍历获取每个字典对应的子域名的响应内容,通过和不存在域名的内容做相似度比对,来枚举子域名。
枚举爆破常用工具:

在线查询:

其他:

  • Layer 子域名挖掘机

    • 可视化,取决于字典强度,易上手,就是容易崩溃
  • subDomainsBrute

    • 老牌DNS爆破工具,稳定快速~
    • 暂不支持批量
    • 怼泛解析:超过10个域名指向同一IP,则此后发现的其他指向该IP的域名将被丢弃,该方法可能存在误删,但简单有效。
  • OneForAll

    • 收集姿势挺全的,就是依赖多,一直再更新
    • OneForALL + ESD + JSfinder~~
    • 怼泛解析:oneforall会首先访问一个随机的并不存在的域,通过返回结果判断是否存在泛解析,确定存在泛解析以后,程序会开始不断的循环产生随机域名,去向服务器查询,将每次查询到的IP和TTL记录下来,直到大部分的IP地址出现次数都大于两次,则IP黑名单的收集结束,在得到了IP黑名单以后,oneforall接下来会将自己的字典中的每一项和要指定查询的域名进行拼接。在爆破过程中根据IP黑名单进行过滤。但这种宽泛的过滤容易导致漏报,所以oneforall将 TTL 也作为黑名单规则的一部分,评判的依据是:在权威 DNS 中,泛解析记录的 TTL 肯定是相同的,如果子域名记录相同,但 TTL 不同,那这条记录可以说肯定不是泛解析记录。
  • knock

    • 支持查询VirusTotal,速度快,结果一般
    • VirusTotal API绕过泛解析
  • ESD

    • 收集方法多,爆破速度极快,接口少
    • 怼泛解析:基于文本相似度过滤泛解析域名
  • ksubdomain

    • 无状态的子域名爆破工具,支持重放,速度不错
    • 结合其他工具,一键子域名搜集验证:

    https://cn-sec.com/archives/1178685.html

  • xray 高级版

    • 效率可以,联动很舒服
关于字典

字典这块引用下https://feei.cn/esd/

DNS服务商的字典 一般来说最准确有效,如:DNSPod公布的使用最多的子域名:dnspod-top2000-sub-domains.txt

普通字典:一些基础组合。

常用词组:常见的中英文词组。

爆破工具的字典: 可结合整理过的字典

2. DNS域传送

DNS服务器分为:主服务器、备份服务器和缓存服务器。

在主备服务器之间同步数据库,需要使用"DNS域传送"的一种DNS事务。域传送是指备份服务器从主服务器上复制数据,然后更新自身的数据库,以达到数据同步的目的,这样是为了增加冗余,一旦主服务器出现问题可直接让备份服务器做好支撑工作。

若DNS配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。

  • 错误配置:只要收到axfr请求就进行域传送,刷新数据。
检测方法:

axfr 是q-type类型的一种,axfr类型是Authoritative Transfer的缩写,指请求传送某个区域的全部记录。只要欺骗dns服务器发送一个axfr请求过去,如果该dns服务器上存在该漏洞,就会返回所有的解析记录值。

nslookup
# 查询nameserver  
nslookup -type=ns nhtc.wiki 8.8.8.8  
# 指定nameserver,列举域名信息  
nslookup  
# Server 命令参数设定查询将要使用的DNS服务器  
server cloudy.dnspod.net   
#  Ls命令列出某个域中的所有域名  
ls nhtc.wiki

无法列出域,不存在此漏洞~

Dig
# 找到NS服务器  
dig nhtc.wiki ns
# 发送axfr请求  
 dig axfr @cloudy.dnspod.net nhtc.wiki
其他

nmap:

nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=nhtc.wiki -p 53 -Pn cloudy.dnspod.net

python

# DNS库  
xfr = dns.query.xfr(where=server, zone=self.domain, timeout=5.0, lifetime=10.0)  
zone = dns.zone.from\_xfr(xfr) 

一般情况下,DNS服务器配置都正常,关闭了域传送或设置白名单,利用率低。推荐交给自动化。

3. 证书透明度收集子域

证书透明度(Certificate Transparency)是谷歌力推的一项拟在确保证书系统安全的透明审查技术。其目标是提供一个开放的审计和监控系统,可以让任何域名的所有者,确定CA证书是否被错误签发或恶意使用。TLS的缺点是你的浏览器隐性包含了一个大型受信任CA列表。如果任何这些CA恶意为域创建新证书,则你的浏览器都会信任它。CT为TLS证书信任提供了额外的安全保障:即公司可以监控谁为他们拥有的域创建了证书。此外,它还允许浏览器验证给定域的证书是否在公共日志记录中。

------------------------Google 的证书透明度项目

因为证书透明性是开放架构,可以检测由证书颁发机构错误颁发的 SSL 证书,也可以识别恶意颁发证书的证书颁发机构,且任何人都可以构建或访问,CA证书又包含了域名、子域名、邮箱等敏感信息,价值就不言而喻了。

收集方法:

一般使用 CT 日志搜索引擎进行域名信息收集,因为是日志收集,只增不减,可能会有一些失效域名。

在线查询:
浏览器查询

点击浏览器网站小锁-->安全连接-->更多信息-->查看证书-->查看主题替代名称处,有时候会有主域名和子域名信息。

工具:

4. 公开数据集

利用已有公开的全网扫描数据集,对子域名信息进行收集。

收集方法:

5. 第三方聚合服务

通过第三方平台提供的一些服务,快速发现子域名信息。

VirusTotal会运行DNS复制功能,通过存储用户访问URL时执行的DNS解析来构建数据库。

6. 搜索引擎

介绍

搜索引擎是用于查找和排名与用户搜索匹配的 Web 内容的工具。

搜索引擎通过"蜘蛛"对全网进行大量爬行并处理后,建立索引*(索引是将抓取页面中的信息添加到叫做搜索索引的大型数据库中。)*。在此期间往往收集了大量的域名信息,需要对应的语法,即可从这数据库中获取想要的信息。

搜索方法:
主流搜索引擎

一份国外调查表:

Goolge:

俗称Google Hacking 大法,有十几种语法,混合使用可以更加准确地查找信息。

搜索子域名信息

site:360.cn

搜索一个域名后台信息

site:xx.com inurl:id=1  intext:后台 
网络空间引擎
fofa

FOFA是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。

逻辑连接符 具体含义
\= 匹配,=""时,可查询不存在字段或者值为空的情况
\=\= 完全匹配,==""时,可查询存在且值为空的情况
&&
| 或者
!\= 不匹配,!\=""时,可查询值为空的情况
~\= 正则语法匹配专用(高级会员独有,不支持body)
() 确认查询优先级,括号内容优先级最高

目前FOFA支持了多个网络组件的指纹识别,包括建站模块、分享模块、各种开发框架、安全监测平台、项目管理系统、企业管理系统、视频监控系统、站长平台、电商系统、广告联盟、前端库、路由器、SSL证书、服务器管理系统、CDN、Web服务器、WAF、CMS等等,详细信息见https://fofa.info/library

常用语法可通过"查询语法"功能获取:

https://fofa.info/

例句(点击可去搜索)用途说明注

例句(点击可去搜索) 用途说明
title="beijing" 从标题中搜索"北京" -
header="jboss" 从http头中搜索"jboss" -
body="Hacked by" 从html正文中搜索abc -
domain="qq.com" 搜索根域名带有qq.com的网站。 -
icon_hash="-247388890" 搜索使用此icon的资产。 仅限高级会员使用
host=".gov.cn" 从url中搜索".gov.cn" 搜索要用host作为名称
port="443" 查找对应"443"端口的资产 -
ip="1.1.1.1" 从ip中搜索包含"1.1.1.1"的网站 搜索要用ip作为名称
ip="220.181.111.1/24" 查询IP为"220.181.111.1"的C网段资产 -
status_code="402" 查询服务器状态为"402"的资产 -
protocol="https" 查询https协议资产 搜索指定协议类型(在开启端口扫描的情况下有效)
city="Hangzhou" 搜索指定城市的资产。 -
region="Zhejiang" 搜索指定行政区的资产。 -
country="CN" 搜索指定国家(编码)的资产。 -
cert="google" 搜索证书(https或者imaps等)中带有google的资产。 -
banner=users && protocol=ftp 搜索FTP协议中带有users文本的资产。 -
type=service 搜索所有协议资产,支持subdomain和service两种。 搜索所有协议资产
os=windows 搜索Windows资产。 -
server=="Microsoft-IIS/7.5" 搜索IIS 7.5服务器。 -
app="HIKVISION-视频监控" 搜索海康威视设备 -
after="2017" && before="2017-10-01" 时间范围段搜索 -
asn="19551" 搜索指定asn的资产。 -
org="Amazon.com, Inc." 搜索指定org(组织)的资产。 -
base_protocol="udp" 搜索指定udp协议的资产。 -
is_ipv6=true 搜索ipv6的资产 搜索ipv6的资产,只接受true和false。
is_domain=true 搜索域名的资产 搜索域名的资产,只接受true和false。
ip_ports="80,161" 搜索同时开放80和161端口的ip 搜索同时开放80和161端口的ip资产(以ip为单位的资产数据)
port_size="6" 查询开放端口数量等于"6"的资产 仅限FOFA会员使用
port_size_gt="3" 查询开放端口数量大于"3"的资产 仅限FOFA会员使用
port_size_lt="12" 查询开放端口数量小于"12"的资产 仅限FOFA会员使用
ip_country="CN" 搜索中国的ip资产(以ip为单位的资产数据)。 搜索中国的ip资产
ip_region="Zhejiang" 搜索指定行政区的ip资产(以ip为单位的资产数据)。 搜索指定行政区的资产
ip_city="Hangzhou" 搜索指定城市的ip资产(以ip为单位的资产数据)。 搜索指定城市的资产
ip_after="2019-01-01" 搜索2019-01-01以后的ip资产(以ip为单位的资产数据)。 搜索2019-01-01以后的ip资产
ip_before="2019-07-01" 搜索2019-07-01以前的ip资产(以ip为单位的资产数据)。 搜索2019-07-01以前的ip资产

基础了解后,可以试试规则专题,官方有提供相应的指纹、组件查找,包含"数据库专题"、"工控专题"和"区块链专题"。也可以自己提交。

  • 查询"致远互联-OA"系统:
Shodan

Shodan是一个搜索接入互联网的设备的搜索引擎,2009年由约翰·马瑟利发布。学生会员可以每个月下载1w条数据,黑五可能会有优惠价格。

ps:Shodan 侧重于主机设备

0.zone

它是一个免费的外部攻击面管理SaaS平台,供红蓝队使用,为防御者提供攻击者视角下的企业外部攻击面数据,减少攻防信息差,以促进企业攻击面的收敛和管理。

搜索企业名称示例(需要会员才能获取企业黄页)

可查看此公司下匹配到的信息系统、移动端应用、敏感目录、邮箱、文档、代码、人员信息数据。这个功能定向查找单位资产非常方便好用。

不同于fofa,该平台做了收录信息归纳,感觉还不错。

hunter

全球鹰是奇安信的一款产品。通过网络空间测绘技术,全球鹰测绘平台可以提供IP、域名、开放端口、应用/组件、所属企业等关键安全信息,同时结合攻防场景绘制了资产画像与IP画像,实现互联网资产的可查、可定位、操作可识别的检索,助力企业日常的安全运营工作,例如未知资产发现、风险识别、漏洞修复等。目前全球鹰网络空间测绘平台已有3亿独立IP,资产(剔除历史重复数据)总数超过20亿,已实现全端口覆盖。在全球我们已覆盖了261个国家,96% ASN域。国内web资产最快4天更新,最慢7天更新。

语法参考

其他

还有一些不错的检索平台,就不一一介绍,可以去官网瞧瞧语法和规则这块,这块还是api用得多。(没会员没法爽玩。。)

关于搜索引擎详细可以参考下:

7. 工具自动化

总的来说,信息收集有很多重复性查询筛选,手工相对费时费力,因此可以借助半自动化工具来达到事半功倍的效果。

OneForAll

https://github.com/shmilylty/OneForAll

解决大多传统子域名收集工具不够强大、不够友好、缺少维护和效率问题的痛点,是一款集百家之长,功能强大的全面快速子域收集终极神器。

subfinder

https://github.com/projectdiscovery/subfinder

brew install subfinder

Subfinder 是一个子域发现工具,它通过使用被动在线资源来发现网站的有效子域。它具有简单的模块化架构,并针对速度进行了优化。 subfinder 是为只做一件事而构建的------被动子域枚举,它做得很好。

ksubdomain

https://github.com/knownsec/ksubdomain

ksubdomain是一款基于无状态子域名爆破工具,支持在Windows/Linux/Mac上使用,它会很快的进行DNS爆破,在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。

JSINFO-SCAN

https://github.com/p1g3/JSINFO-SCAN

递归爬取域名(netloc/domain),以及递归从JS中获取信息的工具

URLFinder

https://github.com/pingc0y/URLFinder

URLFinder是一款用于快速提取检测页面中JS与URL的工具。

功能类似于JSFinder,但JSFinder好久没更新了。

Layer子域名挖掘机

https://github.com/euphrat1ca/LayerDomainFinder

Layer子域名挖掘机是一款子域名收集工具,拥有简洁的界面和简单的操作模式,支持服务接口查询和暴力枚举获取子域名信息,同时可以通过已获取的域名进行递归爆破。

ESD

https://github.com/FeeiCN/ESD

支持泛解析功能较全的枚举子域工具

EyeWitness

https://github.com/FortyNorthSecurity/EyeWitness

Eyewitness可自动查询URL对应网站的截图、RDP服务、Open VNC服务器以及一些服务器title、甚至是可识别的默认凭据等,最终会生成一个详细的html报告。

0x03 IP信息收集

通过ip或域名获取到一些基本信息(端口、服务、架构、目录等)后,也可以通过ip段目标扩大攻击面,也有可能找到一些未分配的边缘资产。

1. 绕过CDN获取真实ip

简述

CDN是IP信息探测或打点必不可绕过的一个话题。当目标使用了CDN加速,获取到的目标ip不一定是真实ip。所以通常在实施端口、漏扫等测试之前,需判断下是否真实IP,是否使用了CDN或其他代理等等,避免无效操作、蜜罐、非目标点。

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

常见CDN服务商

一、国内 CDN 服务商

  • 阿里云 CDN
  • 百度云 CDN
  • 七牛云 CDN
  • 又拍云 CDN
  • 腾讯云 CDN
  • Ucloud
  • 360 CDN
  • 网宿科技
  • ChinaCache
  • 帝联科技

二、国外 CDN 服务商

  • CloudFlare
  • StackPath
  • Fastly
  • Akamai
  • CloudFront
  • Edgecast
  • CDNetworks
  • Google Cloud CDN
  • CacheFly
  • Keycdn
  • Udomain
  • CDN77
CDN判断

确定CDN加速解析后,那就要考虑如何绕过来获取真实ip,以进一步攻击利用。

0x01 多ping

通过多地ping目标域名,如果没有使用CDN,只会显示一个IP地址,或者双线接入情况的两个不同运营商ip。

多ping在线站点:

如图,不同地区访问有不同ip,一般存在CDN:

0x02 nslookup

获取到的DNS域名解析结果中返回多个ip的,一般都是存在CDN服务。

0x03 header头信息
  • 请求响应包header头中是否存在cdn服务商信息
  • 报错信息
  • 若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到 CDN
0x04 在线检测工具
获取真实IP
0x01 dns历史绑定记录

查询域名历史解析记录,可能会存在未使用cdn之前的真实ip记录:

CDN判断:

存在CDN,利用微步查询获取历史记录,然后将每个ip都测试一篇

通过源代码获取,确定真实ip

0x02 网络空间测绘搜索引擎

网络空间测绘,一般都会定时把全网资产扫一遍存在数据库里。

通过网络空间测绘搜索引擎搜索其收录的目标相关信息,有概率获取到目标真实IP。

大概从以下几个关键因素去搜索验证:

  • ip
  • 域名
  • title
  • logo
  • icp
  • body
  • js/css/html等静态特征值

通过获取logo icon指纹哈希特征,搜索其相同的主机结果,进一步探测真实IP:

未找到~

0x03 子域名

考虑到CDN成本问题,一些重要站点会采用cdn加速,而一些子域名则没有使用。一般情况下,一些子域名与主站的真实ip在同一c段或同一台服务器上,这时就可以通过发现子域名c段ip、端口信息,逐个探测定位主站真实ip地址。

常见查找方法和工具:

0x04 异地ping

部分国内cdn广商只做了国内的线路,而没有铺设对国外的线路,这时就可以通过海外解析直接获取到真实IP。

可以使用:

0x05 SSL证书

证书颁发机构 (CA) 必须将他们发布的每个 SSL/TLS 证书发布到公共日志中,SSL/TLS 证书通常包含域名、子域名和电子邮件地址。因此可以利用 SSL/TLS 证书来发现目标站点的真实 IP 地址。

CDN在提供保护的同时,也会与服务器之间进行加密通信(SSL)。当通过服443端口去访问服务器ip或域名时,就会暴露其SSL证书,也就可以通过证书比对发现服务器的真实IP地址。

在线:

通过 https://crt.sh 进行快速证书查询收集

  • Censys 引擎

    Censys 搜索引擎能够扫描整个互联网,每天都会扫描 IPv4 地址空间,以搜索所有联网设备并收集相关的信息,可以利用 Censys 进行全网方面的 SSL 证书搜索,找到匹配的真实 IP 。

通过Censys引擎搜索证书信息,发现多个有效或无效的证书:

https://search.censys.io/certificates?q=www.roken-niji.jp

ps: 并不是有效的证书才是有价值的,无效的证书中也会有很多服务器配置错误依然保留着的信息。

精准定位有效SSL证书:

parsed.names: xxx.com and tags.raw: trusted

逐个打开,根据sha1签名反查主机

无果~~~

命令行
工具:

CloudFlair

项目地址:https://github.com/christophetd/CloudFlair

使用来自 Censys 的全网扫描数据查找 CloudFlare 背后网站的源服务器。

0x06 敏感文件泄露

包括但不限于:

  • 服务器日志文件
  • 探针文件,例如 phpinfo
  • 网站备份压缩文件
  • .DS_Store
  • .hg
  • .git
  • SVN
  • Web.xml
0x07 CDN配置问题

某些站点只做了www cname到CDN上,导致www.xxx.com和xxx.com是两条独立的解析记录,所以可以通过直接ping域名xxx.com获取到未加入cdn的真实IP,同理http协议和https协议配置也是有可能出现这种问题。

0x08 漏洞
  • 网站本身存在一些漏洞时,如XSS/SSRF/XXE/命令执行等,通过带外服务器地址注入,使服务器主动连接,被动获取连接记录。
  • 部分本身功能,如url采集、远程url图片、编辑器问题等。
  • 异常信息、调式信息等都有可能泄露真实IP或内网ip的。
  • ThinkPHP 报错/SpringBoot变量/phpinfo
0x09 邮件头信息

一般邮件系统都在内部,没有经过CDN解析,通过邮件发送、RSS订阅等sendmail功能去获取到服务器与邮箱系统交互的邮件源码,在源文件头信息或者源代码中就会包含服务器真实ip。但需注意该ip是否第三方邮件服务器(如腾讯企业邮件、阿里企业邮箱),一般只有应用与网站在同一服务器上时,才获取到当前服务器的真实ip。

常见交互功能点:

  • RSS 订阅
  • 邮箱注册、激活处
  • 邮箱找回密码处
  • 产品更新的邮件推送
  • 某业务执行后发送的邮件通知
  • 员工邮箱、邮件管理平台等入口处的忘记密码
相关推荐
海绵波波10728 分钟前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
热爱跑步的恒川3 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面4 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
hikktn6 小时前
如何在 Rust 中实现内存安全:与 C/C++ 的对比分析
c语言·安全·rust
音徽编程6 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零8 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon8 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon8 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录8 小时前
RPC核心实现原理
网络·网络协议·rpc
昔我往昔9 小时前
阿里云文本内容安全处理
安全·阿里云·云计算