Skip to content

pirxthepilot / wtfis Public

被动式域名、IP 和主机名查询工具,专为人类设计。

License

MIT license

1.1k stars 56 forks

pirxthepilot/wtfis

Go to file

Folders and files

| Name | Name | Last commit message | Last commit date | | :-------------------- | :-------------------- | :------------------ | :--------------- | | .github/workflows | .github/workflows | | | | imgs | imgs | | | | tests | tests | | | | wtfis | wtfis | | | | .env.wtfis.example | .env.wtfis.example | | | | .flake8 | .flake8 | | | | .gitignore | .gitignore | | | | Dockerfile | Dockerfile | | | | LICENSE | LICENSE | | | | Makefile | Makefile | | | | README.md | README.md | | | | pyproject.toml | pyproject.toml | | |

View all files

Repository files navigation

wtfis

Tests PyPI

被动式域名、IP 和主机名查询工具,专为人类设计。

WTF is it?

wtfis 是一个命令行工具,它使用各种 OSINT 服务收集关于域名、FQDN 或 IP 地址的信息。与其他同类工具不同,它是专门为人类使用而构建的,提供美观(可能因人而异)且易于阅读和理解的结果。

该工具假定您使用的是免费层级/社区级别的帐户,因此会尽可能少地进行 API 调用,以最大限度地减少达到配额和速率限制的情况。

项目名称是 "whois" 的双关语。

Data Sources

| Service | Used in lookup | Required | Free Tier | | :------------------------------------------------------------------------------------- | :------------- | :------- | :------------------------------------------------------------------------------------- | | Virustotal | All | Yes | Yes | | IP2Whois | Domain/FQDN | No | Yes | | IPWhois | IP address | No | Yes (no signup) | | Shodan | IP address | No | No | | Greynoise | IP address | No | Yes | | URLhaus | All | No | Yes (no signup) | | AbuseIPDB | IP address | No | Yes |

Virustotal

主要信息来源。检索:

IP2Whois

如果提供凭据,则可以选择使用。检索:

建议使用 IP2Whois 而不是 Virustotal 来获取 whois 数据,原因如下:

IPWhois

IP 地址的默认地理位置和 ASN 查找源。检索:

IPWhois 不应与提供域名 Whois 数据的 IP2Whois 混淆。

Shodan

/shodan/host/{ip} 端点获取数据(参见文档)。对于每个 IP,检索:

Greynoise

使用 Greynoise 的社区 API,wtfis 将显示 IP 是否在 Greynoise 的数据集中:

有关数据集的更多信息请参见此处

此外,API 还会返回 Greynoise 对 IP 的分类(如果可用)。可能的值为 benignmaliciousunknown

URLhaus

URLhaus 是一个众包的恶意 URL 报告数据库。此增强功能提供了有关查询的主机名或 IP 是否正在或曾经用于通过 HTTP 或 HTTPS 分发恶意软件的见解。提供的数据包括:

AbuseIPDB

AbuseIPDB 是一个众包的恶意 IP 地址报告数据库。通过其 API,wtfis 显示:

Install

$ pip install wtfis

要通过 conda 安装(从 conda-forge),请参见 wtfis-feedstock

要通过 brew 安装:

brew install wtfis

Setup

wtfis 使用以下环境变量:

使用您自己的方法设置这些变量。

或者,在您的主目录中创建一个文件 ~/.env.wtfis,其中包含上述声明。有关模板,请参见 .env.wtfis.example注意:不要忘记chmod 400该文件!

Usage

usage: wtfis [-h] [-m N] [-s] [-g] [-a] [-u] [-n] [-1] [-V] entity
positional arguments:
 entity        Hostname, domain or IP
optional arguments:
 -h, --help      show this help message and exit
 -m N, --max-resolutions N
            Maximum number of resolutions to show (default: 3)
 -s, --use-shodan   Use Shodan to enrich IPs
 -g, --use-greynoise  Enable Greynoise for IPs
 -a, --use-abuseipdb  Enable AbuseIPDB for IPs
 -u, --use-urlhaus   Enable URLhaus for IPs and domains
 -n, --no-color    Show output without colors
 -1, --one-column   Display results in one column
 -V, --version     Print version number

基本上:

$ wtfis FQDN_OR_DOMAIN_OR_IP

您将获得按面板组织的结果,类似于上图。

接受 Defanged 输入(例如 api[.]google[.]com)。

如果终端支持,某些字段和标题是可单击的超链接,指向相应服务的网站。

Shodan

Shodan 可用于显示 IP 的开放端口或服务,以及某些结果中的操作系统。使用 -s--use-shodan 标志调用。

如果终端支持,Services 字段是一个可单击的超链接,可将您带到 Shodan Web 界面。

Greynoise

要启用 Greynoise,请使用 -g--use-greynoise 标志调用。由于 API 配额非常低(截至 2023 年 3 月,每周 50 个请求),因此默认情况下此查找已关闭。

GreyNoise 字段名称也是一个超链接(如果终端支持),指向 Greynoise Web 界面中的 IP 条目,其中显示了更多上下文。

URLhaus

使用 -u--use-urlhaus 标志启用主机名、域名和 IP 的 URLhaus 增强功能。

Malware URLs 字段名称是一个超链接(如果终端支持),可将您带到查询的特定 URLhaus 数据库页面。

AbuseIPDB

使用 -a--use-abuseipdb 标志启用主机名、域名和 IP 的 AbuseIPDB 增强功能。

AbuseIPDB 字段名称是一个超链接(如果终端支持),可将您带到查询的特定 AbuseIPDB 数据库页面。

Display options

对于 FQDN 和域名查找,您可以使用 -m NUMBER--max-resolutions=NUMBER 来增加或减少显示的最大 IP 解析数。上限为 10。如果您根本不需要解析,请将数字设置为 0

要在一个列中显示所有面板,请使用 -1--one-column 标志。

可以使用 -n--no-color 显示没有颜色的面板。

Defaults

可以通过设置 WTFIS_DEFAULTS 环境变量来定义默认参数。例如,要默认使用 shodan 并在一个列中显示结果:

WTFIS_DEFAULTS=-s -1

如果参数在 WTFIS_DEFAULTS 中,则在命令调用期间指定相同的参数会否定该参数。因此,在上面的示例中,如果您随后运行:

$ wtfis example.com -s

则将不会使用 Shodan。

请注意,目前无法在默认值中定义最大分辨率(-m N, --max-resolutions N)。

Docker

wtfis 可以从 Docker 镜像运行。首先,构建镜像(使用包含的 Dockerfile),方法是运行:

$ make docker-image

该镜像将具有最新_标记_版本(不一定来自最新提交)的 wtfis。这确保您获得的是稳定版本。

您可以通过两种方式运行镜像:

确保 .env.wtfis 位于您的主目录中,并设置必要的 envvars。然后只需运行:

$ make docker-run

这是以下命令的别名

$ docker run --env-file=${HOME}/.env.wtfis -it wtfis

请注意,每个定义在等号前后都不能有任何空格 (FOO=bar,而不是 FOO = bar)。

或者,您可以自己设置环境变量,然后运行,例如:

$ docker run -e VT_API_KEY -e SHODAN_API_KEY -it wtfis

About

Passive hostname, domain and IP lookup tool for non-robots

Resources

Readme

License

MIT license

Activity

Stars

1.1k stars

Watchers

17 watching

Forks

56 forks

Report repository

Releases 25

v0.10.2 Latest Apr 13, 2025

+ 24 releases

Packages 0

No packages published

Contributors 6

Languages

Footer

© 2025 GitHub, Inc.

Footer navigation