Сергей Попов

Администратор
30.12.2015
6 142
6 941
Специализация
  1. OSINT
  2. Веб-безопасность
Статус верификации
  1. ✓ Verified
Распечатанный граф OSINT-разведки на плотной бумаге с узлами поддоменов и SSL-цепочек. Латунное пресс-папье, карандаш и рукописные пометки чернильной ручкой в мягком дневном свете.


На корпоративном аудите для финтех-компании мне нужно было собрать полный OSINT-профиль за два часа: поддомены, email-адреса сотрудников, связи SSL-сертификатов, упоминания в утечках. Рабочая станция - Windows 11 Enterprise с групповой политикой, которая блокирует гипервизоры и WSL. Kali Linux отпадает, а руками обходить десятки сервисов через браузер при 200+ источниках - это не работа, это мазохизм. SpiderFoot 4.0 закрыл задачу: от клонирования репозитория до готового отчёта прошло 22 минуты. Ниже - разбор установки SpiderFoot на Windows со всеми граблями, которые типичный гайд из четырёх строк не упоминает.

Требования к окружению для SpiderFoot Windows установка​

SpiderFoot - Python-приложение со встроенным веб-сервером на CherryPy. На Windows есть нюансы, которых нет в Linux, и пропуск любого из них превратит установку в часовую отладку. Подробнее - в нашем руководстве по asset management пентест.

Минимальные требования:
  • ОС: Windows 10 (build 1903+) или Windows 11
  • Python: 3.7 и выше (рекомендую 3.9–3.11; на Python 3.12+ ряд зависимостей конфликтует из-за удалённых deprecated-модулей - проверено, не надо)
  • RAM: 2 ГБ для сканирования одной цели, 4+ ГБ при параллельных сканах
  • Диск: 1 ГБ свободного места (сам SpiderFoot ~14 МБ + зависимости + база SQLite с результатами)
  • Сеть: постоянный интернет для API-запросов к внешним сервисам
  • Порт 5001/tcp свободен (веб-интерфейс по умолчанию слушает на 127.0.0.1:5001)
  • PowerShell 5.1+ или CMD
Откройте PowerShell и выполните python --version. Python не установлен или версия ниже 3.7 - качайте с python.org. При установке обязательно отметьте галочку «Add Python to PATH» - без неё все последующие команды в PowerShell не найдут интерпретатор. Проверьте порт: netstat -ano | findstr :5001 - если занят, SpiderFoot не запустится.

Статус проекта: open source (MIT-лицензия), активная разработка с 2012 года, текущая стабильная версия - 4.0, более 200 модулей, YAML-конфигурируемый корреляционный движок с 37 предустановленными правилами. Репозиторий: github.com/smicallef/spiderfoot.

Установка SpiderFoot Python Windows: пошаговая инструкция​

Русскоязычные гайды обычно ограничиваются «скачайте, распакуйте, запустите». На практике SpiderFoot установка на Windows включает несколько этапов, и каждый может сломаться по Windows-специфичным причинам.

Подготовка окружения и загрузка​

Главный источник проблем - конфликт версий Python. Если на машине стоят Python 3.8 и 3.12 одновременно, pip может подтянуть зависимости не для той версии. Решение - виртуальное окружение, которое изолирует все пакеты SpiderFoot от системных.
Код:
mkdir C:\Tools\OSINT && cd C:\Tools\OSINT
git clone https://github.com/smicallef/spiderfoot.git
cd spiderfoot
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
PowerShell блокирует активацию venv ошибкой Execution Policy? Выполните до активации: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned. Если git недоступен из-за корпоративных ограничений - качайте ZIP-архив стабильной версии 4.0 со страницы релизов GitHub и распаковывайте вручную.

Типичные ошибки при установке на Windows​

За полтора года эксплуатации SpiderFoot в Windows-окружении я наступил на три повторяющиеся проблемы. Делюсь, чтобы вам не пришлось.

Ошибка сборки lxml. Библиотека lxml - ключевая зависимость SpiderFoot - требует компиляции C-расширений. Без Microsoft Visual C++ Build Tools pip не соберёт lxml из исходников на Windows. Для Python 3.9–3.11 pip обычно подтягивает предсобранный wheel автоматически. На Python 3.12+ wheel может отсутствовать - проще откатиться на Python 3.11, чем настраивать компилятор. Ещё момент: у lxml есть несколько исторических уязвимостей уровня XSS (GHSA-55x5-fj6c-h6m8, GHSA-jq4v-f5q6-mjqq), так что периодический pip install --upgrade -r requirements.txt внутри venv - обязательная гигиена.

Windows Firewall блокирует порт. SpiderFoot поднимает веб-сервер на CherryPy, и Firewall может зарезать входящее соединение. Добавьте правило: netsh advfirewall firewall add rule name="SpiderFoot" dir=in action=allow protocol=TCP localport=5001. Без этого при попытке открыть http://127.0.0.1:5001 в браузере - пустая страница.

Кодировки в консоли. Результаты сканирования с кириллическими данными (имена в WHOIS, русскоязычные домены) превращаются в кракозябры в PowerShell. Перед запуском SpiderFoot установите кодировку: [Console]::OutputEncoding = [System.Text.Encoding]::UTF8.

Первый запуск SpiderFoot web интерфейса​

После установки зависимостей запустите SpiderFoot из активированного виртуального окружения:
Код:
cd C:\Tools\OSINT\spiderfoot
.\venv\Scripts\Activate.ps1
python sf.py -l 127.0.0.1:5001
В консоли появится Serving on http://127.0.0.1:5001. Открываете браузер - SpiderFoot web интерфейс содержит три раздела: New Scan (создание скана), Scans (результаты) и Settings (конфигурация модулей и API-ключей).

Нужен доступ с другой машины в локальной сети? Запускайте с привязкой к 0.0.0.0: python sf.py -l 0.0.0.0:5001. Но тут важный момент: open source версия SpiderFoot не имеет встроенной аутентификации - любой в сети сможет создавать сканы. Для командной работы ставьте reverse proxy с basic auth или смотрите в сторону SpiderFoot HX (облачная коммерческая версия с 2FA и мультипользовательским доступом).

SpiderFoot работает и без веб-интерфейса - через CLI. Команда python sf.py -s example.com -t DOMAIN_NAME -u passive запустит пассивное сканирование домена с выводом в консоль. Формат вывода переключается флагом -o: tab (по умолчанию), csv, json.

SpiderFoot настройка: API-ключи и модули для OSINT-автоматизации​

Без API-ключей SpiderFoot использует только модули, не требующие авторизации - а это примерно 20–30% возможностей. По сути, голый SpiderFoot без ключей - чуть лучше ручного googling. Для полноценной OSINT-автоматизации на Windows настройте ключи хотя бы для приоритетных сервисов.

Приоритетные API-ключи с бесплатным доступом​

В SpiderFoot web интерфейсе идём в Settings. Каждый модуль имеет отдельную вкладку с полем для ключа. Вот сервисы, которые дают максимальный прирост данных на бесплатном плане:

Shodan - открытые порты, сервисы, баннеры на IP-адресах цели. Бесплатный план: 100 запросов в месяц. При масштабном сканировании лимит сгорает быстро; для постоянной работы нужен Shodan Pro. Модуль: sfp_shodan.

Have I Been Pwned - проверка email-адресов и доменов в базах утечек. Для понимания масштабов: база HIBP содержит данные крупнейших утечек - 31 млн аккаунтов Internet Archive (сентябрь 2024), 7.4 млн аккаунтов стриминга START (2021), 6.2 млн записей Instagram (январь 2026). Модуль: sfp_haveibeenpwned.

VirusTotal - репутация IP-адресов, доменов, хешей файлов. Бесплатный план: 4 запроса в минуту (медленно, но работает). Модуль: sfp_virustotal.

AbuseIPDB - проверка IP по базе злоупотреблений (порт-сканирование, brute force, спам). Бесплатный план: 1000 запросов в день - для большинства задач хватает за глаза. Confidence Score выше 75 - обоснованный порог для блокировки. Модуль: sfp_abuseipdb.

Дополнительно стоит настроить SecurityTrails (DNS-история), Censys (сертификаты), AlienVault OTX (threat intelligence). Все ключи хранятся локально в конфигурации SpiderFoot и экспортируются/импортируются через Settings - удобно при переносе между рабочими станциями.

Выбор режима сканирования под задачу​

SpiderFoot предлагает четыре предустановленных режима: all (все модули), footprint (цифровой след организации), investigate (расследование подозрительных индикаторов) и passive (только пассивная разведка без прямых запросов к цели).

Для OSINT без Kali Linux начинайте с passive - он не шлёт запросы напрямую к целевой инфраструктуре и минимизирует вероятность обнаружения. Режим footprint добавляет DNS-резолвинг и проверку SSL-сертификатов - это уже оставляет следы в логах цели. Выбор зависит от контекста: при внешнем пентесте с разрешением заказчика - footprint; при разведке без авторизации - только passive. Разница принципиальная.

Практический кейс: автоматическая разведка OSINT домена на Windows​

Разберём типовой сценарий - OSINT-сканирование домена в рамках легального аудита.

В SpiderFoot web интерфейсе жмём New Scan. В поле Scan Name задаём осмысленное имя (например, audit-target-2025). В Seed Target вводим целевой домен. SpiderFoot автоматически определит тип цели. Выбираем режим Footprint, жмём Run Scan.

SpiderFoot начнёт последовательно опрашивать модули: WHOIS-данные, DNS-записи и Passive DNS, email-адреса сотрудников, IP-адреса инфраструктуры, упоминания в поисковиках и соцсетях, записи в базах Shodan и Censys. Время сканирования зависит от количества включённых модулей и API-лимитов. Типичный footprint-скан домена средней компании с 10+ настроенными ключами занимает 15–40 минут.

После завершения открываем результаты в разделе Scans. Данные разложены по категориям: поддомены, email-адреса, IP-диапазоны, SSL-сертификаты, упоминания в утечках. Корреляционный движок 4.0 сам находит паттерны - связанные домены через общий SSL-сертификат, email сотрудника в нескольких утечках. Начинаешь с одного домена - через полчаса видишь всю паутину. Результаты экспортируются в CSV, JSON или GEXF - последний формат полезен для визуализации графов связей в Gephi.

Место SpiderFoot в цепочке разведки и MITRE ATT&CK

SpiderFoot - инструмент фазы Reconnaissance по модели MITRE ATT&CK. Он автоматизирует сбор информации о цели до любого взаимодействия с инфраструктурой - первый этап kill chain, предшествующий initial access.

Техника MITRE ATT&CKЧто делает SpiderFoot
Search Engines (T1593.002, Reconnaissance)Поиск упоминаний цели в Google, Bing
Social Media (T1593.001, Reconnaissance)Обнаружение аккаунтов на 500+ платформах
DNS/Passive DNS (T1596.001, Reconnaissance)Перечисление DNS-записей и поддоменов
WHOIS (T1596.002, Reconnaissance)Данные регистрации доменов и IP-блоков
Scan Databases (T1596.005, Reconnaissance)Запросы к Shodan, Censys, BinaryEdge
Email Addresses (T1589.002, Reconnaissance)Сбор email-адресов сотрудников
IP Addresses (T1590.005, Reconnaissance)Определение IP-инфраструктуры цели

На практике собранные данные - поддомены с открытыми admin-панелями, email-адреса для фишинговых кампаний, утёкшие пароли из HIBP - становятся входом для следующих фаз: social engineering, exploitation, foothold. Я часто использую SpiderFoot для массового сбора, а потом импортирую ключевые находки в Maltego для визуального анализа связей. По данным Verizon DBIR 2025, 26% подтверждённых нарушений связаны с веб-атаками - и каждая из них начинается с разведки, которую SpiderFoot автоматизирует.

Ограничения SpiderFoot и сравнение OSINT-инструментов на Windows​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме


Ключевое архитектурное отличие SpiderFoot - publisher/subscriber-модель: результат одного модуля автоматически становится входом для другого. theHarvester работает линейно - запросил источник, получил ответ, вывел. Maltego требует ручного запуска каждого трансформа. Для разведки по открытым источникам на Windows SpiderFoot - оптимальный баланс автоматизации и покрытия.

Полтора года работы со SpiderFoot на Windows привели меня к выводу, который противоречит стандартному совету с Reddit «ставьте OSINT-инструменты только на Linux». Разница между ОС для Python-based OSINT в 2025 году почти стёрта: wheel-пакеты собираются для всех платформ, venv решает конфликты зависимостей, CherryPy работает одинаково. Настоящий барьер - не ОС, а отсутствие настроенных API-ключей: SpiderFoot без ключей выдаёт данные на уровне ручного googling.

Что реально тревожит - тенденция API-провайдеров ужесточать бесплатные планы. Shodan урезал бесплатный лимит, HIBP ввёл платный API, SecurityTrails ограничивает запросы. Если тренд продолжится, через пару лет open source OSINT-инструменты рискуют стать обёрткой над 403 Forbidden - 200+ модулей, большинство из которых упираются в paywall. Пока этого не случилось, имеет смысл настроить ключи, прогнать десяток целевых сканирований и понять, какие модули дают максимум данных конкретно под ваши задачи. Если хочется отработать сбор разведданных в контролируемой среде - на HackerLab есть задачи, где OSINT-навыки нужны для построения полной цепочки от разведки до захвата.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab