Сергей Попов
Администратор
- 30.12.2015
- 6 142
- 6 941
- Специализация
- OSINT
- Веб-безопасность
- Статус верификации
- ✓ Verified
На корпоративном аудите для финтех-компании мне нужно было собрать полный 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
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
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-навыки нужны для построения полной цепочки от разведки до захвата.