Contents

Censys文档

Contents

censys https://search.censys.io 堪称神器, 翻译了一下帮助文档

Search Language

全文搜索

当没有指定字段时,Censys会尝试对所有字段进行全文搜索。

例如,搜索Dell将返回location.city为 “Dell Rapids “的主机,以及service.software.vendor为 “Dell “的主机。如果你对戴尔制造的设备感兴趣,你会希望指定存储该信息的字段。

指定字段和值

有效的搜索将指定一个属性所存储的字段。为此,你需要知道你要搜索的数据集中的字段。

数据定义标签下查看字段及其价值类型的完整列表,或者选择在详情页上查看原始数据,例如谷歌公共DNS的[主机表视图](https://search.censys.io/hosts/8.8.8.8/data/table)。

一个典型的搜索至少提供一个字段–它反映了使用点符号的JSON模式的嵌套(例如,services.http.response.headers.server.headers) — 和一个值。如果值的类型是文本,将返回一个模糊匹配的结果;如果值的类型是关键词,只返回一个精确的匹配。

例如,你可以通过指定字段和值来搜索所有有HTTP服务返回HTTP状态码的主机。services.http.response.status_code: 500 .

Wildcards 通配符

默认情况下,Censys搜索的是完整的值。例如,搜索 “Del “不会返回包含 “Dell “的记录。通配符可以用来扩大搜索范围,以便在结果中包括部分匹配。

有两个通配符。

  • ? - 这个通配符表示一个字符。
  • * - 这个通配符表示零个或多个字符。

组合通配符也是非常有用的。

下面的查询利用CPE软件格式的知识,搜索运行微软IIS webservers的服务,其主要版本<10(因为? 只代表一个字符)和确定的次要版本(因为存在句号)。*通配符占CPE格式的其余部分:

services.software.uniform_resource_identifier: cpe:2.3:a:microsoft:iis:?.*

*通配符的另一个用途是检查一个字段是否存在,这对服务未知的主机很有帮助。例如,这个查询将返回至少有一个服务已经与Censys完成TLS握手的主机:services.tls: *

网络协议和端口

使用CIDR符号搜索IP地址块(例如,ip:23.20.0.0/14)或通过提供一个范围:ip:[23.20.0.0 to 23.20.5.34/]。通过搜索服务名称字段来搜索运行特定协议的主机: services.service_name: S7 。通过搜索端口字段来搜索具有特定端口的主机:services.port: 3389

用布尔逻辑组合搜索条件

使用 “AND”、“OR”、“NOT “和括号来组合多个搜索条件。布尔是不区分大小写的。

默认情况下,由布尔表达式组合的条件是针对主机整体进行评估的。

1
AND

搜索services.port: 8880 and services.service_name: HTTP将返回打开8880端口的主机(上面运行着任何服务)和运行在任何端口的HTTP服务。

要搜索运行在8880端口的HTTP服务,请使用same_service()函数。same_service(services.port: 8880 and services.service_name: HTTP) .

1
OR

搜索services.port: 21 or services.service_name: FTP将返回任何打开21号端口(在其上运行任何服务)和在任何端口运行FTP服务的主机。

1
NOT

搜索not same_service(service_name: HTTP and port: 443)将返回那些没有在443上运行HTTP的主机。

搜索[same_service(service_name: "HTTP" and not port:443)](https://search.censys.io/search?q=same_service(service_name%3A+"HTTP “+and+not+port%3A443)&resource=hosts)将返回任何有HTTP服务但不在443端口运行的主机。这可以包括在443上有HTTP的主机,只要有一个不同端口号的其他HTTP服务。

范围

搜索数字的范围,用[]表示包容范围,用{}表示排他范围。例如,services.http.response.status_code:[500 to 503] 。日期应使用以下语法进行格式化[2012-01-01 to 2012-12-31]。也可以指定单边限制[2012-01-01 to *] . to操作符不区分大小写。

正则表达式

正则表达式仅限于付费客户使用。完整的重新编码语法是可在此获得

注意 Censys的正则搜索是不区分大小写的,除非使用精确匹配操作符=

例如,services.software.vendor:/De[l]+/将返回该词大写或小写的结果,而services.software.vendor=/De[l]+/将只返回大写词的结果。

###Unicode 转义序列

以下序列将被解释为unicode转义序列,以使用户能够在它们经常出现的地方搜索这些特殊字符,如服务标语和HTTP正文。

Escape Sequence Character Represented
\a Alert
\b Backspace
\e Escape character
\f Formfeed / Page break
\n Newline
\r Carriage return
\t Horizontal tab
\v Vertical tab

例如,services.banner="Hello\nWorld"将把\n解释为换行,而不是转义的n

保留字符

以下字符将被解释为控制字符,除非它们被反斜杠转义(即前面)或被封装在一个由反斜杠包围的字符串中。

1
= > < ) } ] " * ? : \ /

例如,星号在CPE软件标识符中很常见,而转义每个星号是很繁琐的,所以URI周围的反引``号将转义其中所有的星号。

1
(services.software.uniform_resource_identifier: `cpe:2.3:a:cloudflare:cloudflare_load_balancer:*:*:*:*:*:*:*:*`)

例子

在该范围内的主机 23.0.0.0/8 or 8.8.8.0/24:

1
ip: {"23.0.0.0/8", "8.8.8.0/24"}

在德国运行 FTP 或 Telnet 的主机:

1
location.country_code: DE and services.service_name: {"FTP", "Telnet"}

HTTP 正文中带有 powershell.exe 的主机:

1
services.http.response.body: powershell.exe

“Sitting on the Dock of the Bay”的准确 SNMP 位置值:

1
services.snmp.oid_system.location = "Sitting on the Dock of the Bay"

带有短语“Schneider Electric”或 Dell 在 23.20.0.0/14 范围内的主机:

1
("Schneider Electric" OR Dell) AND ip:23.20.0.0/14

打开以下任何一个端口的主机:22、23、24、25:

1
services.port: {22, 23, 24, 25}

没有运行 HTTP 服务的主机:

1
NOT services.service_name: HTTP

主机出示任何证书:

1
services.tls.certificates.leaf_fp_sha_256: *

呈现字符串 “hello “的主机由任何值继承(正则表达式)。

1
/hello.*/

提出名称为foo1, foo2, foo3…foo100的主机,由任何数值(常规表达式)继承。

1
services.tls.certificates.leaf_data.names=/foo<1-100>.*/

指定范围内的主机:

1
ip: [1.12.0.0 TO 1.15.255.255]

在端口 22 和 2222 以外的端口上运行 SSH 服务的主机:

1
same_service(services.service_name: "SSH" AND NOT (services.port: 22 OR services.port: 2222))

在端口 443 上运行 elasticsearch 的主机:

1
same_service(services.service_name: "ELASTICSEARCH" AND services.port: 443)

有服务的主机,最后一次被NTT ISP内的Censys扫描器扫描过的。

1
services.perspective_id: "PERSPECTIVE_NTT"

在NTT或TELIA ISP内,具有Censys扫描器最后扫描的服务的主机。

1
services.perspective_id: "PERSPECTIVE_NTT" OR services.perspective_id: "PERSPECTIVE_TELIA"

在HTTP服务上有一个包含 “dashboard “一词的页面标题的主机。

1
services.http.response.html_title: dashboard

具有响应服务器错误状态代码的 HTTP 服务的主机:

1
services.http.response.status_code: 500

具有特定 HTTP 标头-值对的 HTTP 服务的主机:

1
services.http.response.headers.connection: close AND services.http.response.headers.content_type: text/plain

具有提供证书的 RDP 服务的主机:

1
same_service(services.service_name: RDP AND services.certificate: *)

具有任何运行SSLv3的服务的主机。

1
services.tls.version_selected: SSLv3

具有在 subject_dn 中提供带有字符串“localhost”的 TLS 证书的服务的主机:

1
services.tls.certificates.leaf_data.subject_dn: "localhost"

具有运行微软IIS 7.5的服务的主机。

1
services.software.product: IIS AND services.software.vendor: Microsoft AND services.software.version: 7.5

具有呈现操作系统和应用软件特定组合的服务的主机:

1
same_service(services.software.uniform_resource_identifier: `cpe:2.3:o:canonical:ubuntu_linux:18.04:*:*:*:*:*:*:*` AND services.software.uniform_resource_identifier: `cpe:2.3:a:openbsd:openssh:7.6p1:*:*:*:*:*:*:*`)

运行 Raspberry Pi 产品的主机:

1
services.software.product: "Raspberry Pi"

包含单词 University 的 ASes 中的主机:

1
autonomous_system.description: University

字段定义

https://search.censys.io/search/definitions?resource=hosts