查看原文
其他

【资料】OSINT工具CENSYS的使用方法

dingba 丁爸 情报分析师的工具箱 2022-11-11

CENSYS和SHODAN一样被认为是世界上最危险的搜索引擎。CENSYS是由密歇根大学的一组研究人员开发的,目的是让互联网更安全。通过整个公共IPv4地址空间定期进行internet范围内的端口扫描,可以用来识别易受攻击的设备和网络,并生成关于特定协议或证书使用模式的统计数据。可以通过高级全文搜索或通过API检索结果。


Censys -伴随理论

类似的搜索服务侧重于主机发现,而CENSYS采取的是执行完整的协议握手和分析记录数据的路径。这可以在不牺牲准确性的情况下实现更高的命中率。


CENSYS的后端由高度并行的应用程序扫描器ZGrab(开源项目ZMap的一部分)组成,它目前检测和分析许多其他应用程序握手,除了StartTLS、Heartbleed和SSLv3,并使它们作为JSON对象可用。ZMap标识感兴趣的主机,ZGrab发起握手并提供相应的结构化数据。


使用简单的搜索,如

443.https.heartbleed.vulnerable: true

例如,可以通过心脏出血漏洞发现易受攻击的主机。过滤器还可以用于搜索Poodle脆弱主机或过时的SHA-1 SSL证书。


有了这个新方法和这个项目的开源特性,就有了一个透明的平台来揭露和发现全球和当地的不足。所有扫描数据均可在https://scans.io/获取。ZMap和ZGrab的源代码可以在GitHub https://github.com/zmap上找到。


第一步

CENSYS提供了复杂的web界面和详细的过滤选项。网站的中心部分包括一个搜索字段(图1),


它将搜索分为三个独立的区域:

•IPv4主机

•网站

•证书


搜索是基于经典的布尔搜索查询。下一节将解释关键字系统以及三个搜索区域之间的区别。

输入搜索行结果后,将显示基于此搜索找到的结果。在右上角,可以找到查看结果的各种选项。


查看它的第一种方法是Results选项卡(图2),它将搜索结果输出为一个列表。

(这里,例如,类别IPv4主机搜索协议:“80/http”)(图3)。

在它旁边会有一个标签页Map(图4)。点击它,输出结果会显示在一个地图上,如下图所示:

切换到 Metadata 选项卡页面(图 5),可以获得结果集的概览。

它右侧的选项卡的名称为“报告”。此工具可以生成关于请求返回的主机上存在的价值细分的报告。

最后一个和最右边的选项卡 Docs 包含有关 CENSYS 语法的重要信息、查询和数据定义的示例,例如:

• 时间戳(更新于)

• 标签(tags)

• 位置数据(location)和自治系统数据(autonomous system)。

在左栏中有一个快速过滤器的提示,下方是协议和所谓的标签的数量(图 6)。


标签

标签是可以附加到某些主机的特定值。CENSYS 包括尝试根据横幅响应和其他因素识别感兴趣的主机的启发式方法。然后使用标签根据特定因素捆绑主机。标签包括,例如:

• “相机” - 公共相机

• "nas" - 网络附加存储

•"raspberry pi"



要查看完整的标签列表,请访问 URL https://censys.io/ipv4/report 必须在浏览器中打开(图 7)。

必须在搜索字段中输入命令 tags.raw。然后应打开完整列表(图 8)。


IPv4

hosts CENSYS的主要目的是扫描IPv4空间,寻找开放服务,收集banner。

图 9 显示了 IPv4 结果页面的示例。主机有两个开放的服务:80/HTTP 和 443/HTTPS。CENSYS 允许按协议特定字段进行过滤。例如,您可以同时过滤 80/http 的 HTTP 响应状态代码和 22/ssh 的公钥。

例如,要显示标签和特定协议:

((195.37.1.142) AND tags.raw:"ssh") AND protocols:"22/ssh"

进一步的例子:

搜索查询的创建方式如下:


上面的查询(图10)表示为GET“/”返回状态代码404的主机。几个键-值对可以与“AND”或“OR”组合,例如:
打开SSH和Telnet的主机:
ports:22 AND ports:23
斯洛伐克标记为摄像机的主机:
location.country_code: SK AND tags.raw: ”camera”
在整个欧洲的Debian上运行的OpenSSH服务器:
22.ssh.v2.metadata.product: ”OpenSSH”AND metadata.os: ”Debian”AND location.continent: ”Europe”


也可以打开显示所有密钥名称的主机的 JSON 输出。CENSYS 还提供指定范围的能力。

示例:自 5 月以来已更新并返回 5xx HTTP 代码的主机。

updated_at:[2018-05-01 TO *] AND 80.http.get.status_code:[500 TO 600]

也可以使用正则表达式和占位符

示例:”name.first”: ”s.*y”


网站
网站主要提供与Ipv4主机相同的视图。CENSYS目前扫描Alexa访问次数最多的100万个网站中的所有域名。有关证书和DNS的信息(例如,AXFR检查)被添加到通常的主机扫描中。


在此处找到了 google.com 网站的搜索结果(图 11)。

可以选择“结果”和“报告”作为显示结果的选项。


证书

在CENSYS中,您也可以直接搜索证书(图12)。CENSYS中仅有20%的证书来自IPv4地址空间中的SSL扫描。其余部分直接来自证书透明度(CT)协议。

创建证书透明度项目是为了获得 CA 颁发证书的概览。该过程如下所示(图 13):

这意味着在 CENSYS 中,证书在颁发后立即可用(几乎是实时的)。CENSYS 不必依赖 IPv4 扫描来查找证书。


特别是在搜索证书时,CENSYS 提供了当前可用的最佳服务之一。

CENSYS 为证书搜索提供了几个新的密钥,例如

• 证书字段(已解析),

• 证书元数据(元数据),

• 信任链(验证),

• 证书透明度(ct.)

要查看完整的证书列表,必须在浏览器中打开 URL https://censys.io/certificates. 应出现证书列表(图 14)。

www.example.com 的证书:

parsed.names:”www.example.com”

来自 Apple 的有效证书,但不是来自 Mozilla NSS 的证书:

validation.apple.valid:true AND validation.nss.valid:false

在 SSL 搜索期间看到的由赛门铁克颁发的证书:

parsed.issuer.organization.raw:”Symantec Corporation”AND metadata.seen_in_scan:true

Let's Encrypt 2018年颁发的证书:

parsed.issuer.organization.raw:”Let’s Encrypt”AND parsed.validity.start:[2018-01-01 TO *]

CENSYS 还提供有趣的枢轴/发现技术。因此,可以搜索几个共同因素。要打开它,请单击右上角的“浏览”选项卡(图 15)。

Censys API
练习1(获取CENSYS API密钥)
CENSYS还提供API接口。这可以按如下方式设置。
1.请先访问以下页面:https://censys.io/(图16)。


2.现在选择项目API(图17):


3.记下您的API ID和对应的密码。该API是一个简单的REST API。这意味着可以使用固定地址进行呼叫。使用Linux控制台甚至可以实现简单的客户端。一个简单的Python客户端如下所示(图18):

练习2(设置CENSYS API客户端)。
当然,也提供了现成的客户端供您自己使用和进一步开发。它是一个Python客户端。Python客户端的开发人员页面位于以下URL:


https://github.com/censys/censys-python

但是,它是受约束的,可以作为自身发展的起点。因此,在本练习中,您将使用客户端的第三方实现。可从以下地址获得:

https://github.com/gelim/censys

客户提供了多种可能性。客户端的语法如下(图19):

在以前使用的虚拟机中可以相对容易地设置客户端。

1. 打开终端窗口并输入以下命令,其中您的 API 数据必须替换 xxxx 和 yyyy:

(a) git clone https://github.com/gelim/censys.git

(b) cd censys

(c) pip install -r requirements.txt 

(d) export CENSYS_API_ID=xxxx; export CENSYS_API_SECRET=yyyy 

(e) echo ”export CENSYS_API_ID=xxxx” > > ~/. zshrc; echo ”export CENSYS_API_SECRET=yyyy” > > ~/. zshrc;

2. 输入并成功运行命令后,您现在应该位于程序目录中。使用以下命令启动程序:

./censys_io.py -h

3. 现在,您应该能够读取如上图所示的输出。设置成功后就可以使用客户端了。

选定的控制台查询示例

示例 1

您想计算有多少服务器在其服务器标头中有 SAP。发出以下请求(图 20):

./censys_io.py -S SAP -count

示例 2

搜索打开 SSH 和 Telnet 的主机由(图 21)给出:

./censys_io.py ports:22 AND ports:23

示例 3

搜索在欧洲 Debian 上运行的 OpenSSH 服务器(图 22)

./censys_io.py 22.ssh.v2.metadata.product:”OpenSSH” AND metadata.os:”Debian” AND location.continent:”Europe”

速率限制

可以在帐户设置中查看速率限制。以下是 CENSYS 帐户的速率限制示例(图 23):

总结

在当今的动态IT环境中,许多组织努力在攻击者之前找到处于风险中的每个系统和应用程序。CENSYS为防御者提供了自动化的可见性,他们需要真正理解并提前应对这些风险,即使是小的安全团队也能产生巨大的影响。因此,重要的是要有经过培训的操作员,他们有必要的专业知识,并能有效地使用这个工具。

本著作中创建的课程为参与者提供了开源情报主题的全面概述。它允许他们独立使用新教授的工具,从免费来源收集数据,并将其汇总成调查结果。为此目的,这些任务是为几个实验室练习设计的。


关联阅读:【资料】OSINT工具RiskIQ PassivTotal的使用


原文及机器翻译文档已上传小编知识星球,

可长按二维码识别加入下载







您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存