
Пассивный инструмент поиска hostname, доменов и IP-адресов для не-роботов
Инструмент пассивного поиска hostname, доменов и IP-адресов для людей, а не роботов


wtfis — это инструмент командной строки, который собирает информацию о домене, FQDN или IP-адресе с помощью различных OSINT-сервисов. В отличие от других подобных инструментов, он создан специально для восприятия человеком и выдаёт результаты, которые красивы (субъективно) и легко читаются и понимаются.
Инструмент предполагает, что вы используете учётные записи бесплатного тарифа / уровня community, и поэтому совершает как можно меньше API-вызовов, чтобы свести к минимуму превышение квот и ограничений скорости.
Название проекта — игра слов на основе «whois».
| Сервис | Используется в поиске | Обязателен | Бесплатный тариф |
|---|---|---|---|
| Virustotal | Все | Нет | Да |
| AbuseIPDB | IP-адрес | Нет | Да |
| Greynoise | IP-адрес | Нет | Да |
| IP2Location | IP-адрес | Нет | Да |
| IP2Whois | Домен/FQDN | Нет | Да |
| IPinfo | IP-адрес | Нет | Да (без регистрации) |
| IPWhois | IP-адрес | Нет | Да (без регистрации) |
| Shodan | IP-адрес | Нет | Нет |
| URLhaus | Все | Нет | Да |
Основной источник информации. Получает:
AbuseIPDB — краудсорсинговая база данных сообщений о вредоносных IP-адресах. Через её API wtfis показывает:
Альтернативный источник данных о геолокации и ASN для IP-адресов (по умолчанию используется IPWhois). Получает:
IP2Whois и IP2Location — разные функции одного и того же сервиса, поэтому регистрироваться нужно только один раз. Затем один и тот же API-ключ можно использовать для обоих типов поиска.
Используется опционально, если предоставлены учётные данные. Получает:
IP2Whois рекомендуется вместо Virustotal для получения whois-данных по ряду причин:
Ещё один альтернативный источник данных о геолокации и ASN для IP-адресов. Получает:
Источник данных о геолокации и ASN для IP-адресов по умолчанию. Получает:
IPWhois не следует путать с IP2Whois, который предоставляет whois-данные о домене.
Используя community API Greynoise, wtfis показывает, входит ли IP в один из наборов данных Greynoise:
Подробнее о наборах данных здесь.
Кроме того, API также возвращает классификацию IP от Greynoise (если доступна). Возможные значения: benign, malicious и unknown.
Получает данные из эндпоинта /shodan/host/{ip} (см. документацию). Для каждого IP получает:
URLhaus — краудсорсинговая база данных сообщений о вредоносных URL. Эта функция обогащения позволяет понять, используется или использовался ли запрошенный hostname или IP для распространения вредоносного ПО через HTTP или HTTPS. Предоставляемые данные включают:
$ pip install wtfis
Для установки через conda (из conda-forge) см. wtfis-feedstock.
Для установки через brew:
brew install wtfis
wtfis использует следующие переменные окружения (все необязательны):
VT_API_KEY - API-ключ VirustotalABUSEIPDB_API_KEY - API-ключ AbuseIPDBIP2LOCATION_API_KEY - API-ключ IP2LocationIP2WHOIS_API_KEY - API-ключ IP2WhoisGREYNOISE_API_KEY - API-ключ GreynoiseSHODAN_API_KEY - API-ключ ShodanURLHAUS_API_KEY - API-ключ URLhausWTFIS_DEFAULTS - Булевы аргументы по умолчаниюGEOLOCATION_SERVICE - Сервис геолокации / ASN для использованияЗадайте их любым удобным способом.
В качестве альтернативы создайте в домашнем каталоге файл ~/.env.wtfis с указанными выше параметрами. Шаблон см. в .env.wtfis.example. ПРИМЕЧАНИЕ: не забудьте выполнить chmod 400 для этого файла!
usage: wtfis [-h] [-A] [-s] [-g] [-a] [-u] [-m N] [-n] [-1] [-V] [--geolocation-service {ip2location,ipinfo,ipwhois}] entity
positional arguments:
entity Hostname, domain or IP
options:
-h, --help show this help message and exit
-A, --all Enable all possible enrichments
-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
-m N, --max-resolutions N
Maximum number of resolutions to show (default: 3)
-n, --no-color Show output without colors
-1, --one-column Display results in one column
-V, --version Print version number
--geolocation-service {ip2location,ipinfo,ipwhois}
Geolocation service to use (default: ipwhois)
Проще говоря:
$ wtfis FQDN_OR_DOMAIN_OR_IP