
Hermes — эфемерный OSINT-фреймворк на базе Docker для тестирования, экспериментов и безопасной автоматизации расследований.
# Hermes OSINT v3.0 🏛️🧠 > **Агентный OSINT-аналитик** > Расследования на основе разговорного ИИ. Естественный язык. Экспертные результаты. 🤖✨ [](https://github.com/Expert21/hermes-osint/releases) [](https://www.gnu.org/licenses/agpl-3.0) [](https://www.python.org/downloads/) [](https://www.docker.com/) [](https://ollama.ai/) --- ## Что нового в v3.0 🎉 **Hermes 3.0** представляет собой полную смену парадигмы: от оркестрации инструментов на основе конвейеров к **платформе для расследований на базе разговорного ИИ**. Работая на локальных LLM через Ollama, Hermes теперь понимает запросы на естественном языке, автономно выбирает и выполняет инструменты и синтезирует результаты в связные аналитические отчёты. ### 🧠 Агентный интеллект - **Интерфейс на естественном языке** — задавайте вопросы вроде «Найди всё о @johndoe» вместо запоминания флагов CLI - **Паттерн ReAct** — цикл «Думай → Действуй → Наблюдай» для интеллектуальных итеративных расследований - **Автономный выбор инструментов** — LLM решает, какие инструменты запускать, исходя из контекста - **Отчёты с цитированием** — каждый результат привязан к источнику-инструменту ### 💬 Интерактивный TUI - **Диалоговый REPL** — общайтесь с Hermes в терминале в стиле пентестера - **Сохранение сессий** — сохраняйте и возобновляйте расследования командами `/save` и `/load` - **Управление контекстом** — автоматическое суммаризирование предотвращает переполнение токенов в длинных сессиях - **Строка состояния в реальном времени** — модель, использование контекста и stealth-режим на виду ### 🔄 Гибкие режимы выполнения - **Режим TUI** (по умолчанию) — полноценный диалоговый интерфейс с Ollama - **Головной режим** — `--headless --query "..."` для скриптов и автоматизации - **Устаревший режим** — `hermes sherlock <user>` для прямого доступа к инструментам без LLM --- ## Обзор 🎯 Hermes — это **универсальная платформа оркестрации OSINT**, объединяющая лучшие opensource-инструменты разведки в единый рабочий процесс на базе ИИ. Вместо того чтобы вручную запускать Sherlock, TheHarvester, Holehe и другие инструменты по отдельности, **тратя драгоценное время на расследование** ⏰—агентное ядро Hermes понимает вашу цель, интеллектуально оркеструет инструменты, коррелирует результаты из разных источников и формирует профессиональные отчёты. 📊 **Что делает Hermes особенным:** 🌟 - 🧠 **Агентный ИИ** с паттерном ReAct — позвольте LLM управлять вашим расследованием - 💬 **Запросы на естественном языке** — никаких флагов, просто опишите, что вам нужно - 🔒 **Безопасная плагинная архитектура** со статическим анализом кода — доверие нужно заслужить - 🐳 **Изоляция Docker** для выполнения инструментов с нулевым доверием — песочница для всего - ⚡ **Параллельная обработка** с интеллектуальным управлением ресурсами — в 2 раза быстрее последовательного - 🧩 **Движок кросс-инструментальной корреляции** для построения связей — соединяйте точки автоматически - 🔧 **Расширяемый дизайн** — добавляйте новые инструменты без изменения основного кода --- ## Возможности 💎 ### Агентное ядро 🤖 - **Цикл агента ReAct** с циклом «Думай → Действуй → Наблюдай» - **Интеграция с Ollama** для вывода локальных LLM (Llama 3, Mistral и др.) - **Реестр инструментов** с определениями схем JSON для вызова функций - **Менеджер контекста** с прокручивающимися сводками (лимит 24k символов для моделей 8B) - **Хранилище сессий** для сохранения/загрузки состояния расследования ### Интерактивный TUI 💻 - **REPL на prompt_toolkit** с постоянной историей (`~/.hermes_history`) - **Стилизация в стиле пентестера** с зелёными/голубыми/оранжевыми акцентами - **Динамическая строка состояния** с отображением модели, % контекста и режима - **Слэш-команды**: `/help`, `/tools`, `/status`, `/save`, `/load`, `/export`, `/clear`, `/exit` ### Оркестрация инструментов 🎼 - **6 встроенных OSINT-инструментов** из коробки (Sherlock, TheHarvester, h8mail, Holehe, PhoneInfoga, Subfinder) 🛠️ - **Плагинная архитектура** для бесшовной интеграции сторонних инструментов 🔌 - **Статический сканер безопасности** проверяет код плагина перед выполнением — никаких сюрпризов! 🛡️ - **Многомодовое выполнение**: контейнеры Docker, нативные бинарники или гибридное автоопределение 🎭 - **Принудительный stealth-режим** — блокирует активные инструменты зондирования, когда включен 🥷 ### Производительность 🚀 - **Параллельное выполнение** даёт **2-кратное ускорение** по сравнению с последовательным запуском ⚡ - **Умное масштабирование ресурсов** автоматически определяет ядра CPU и память 💻 - **Эфемерные контейнеры** создаются, выполняются и уничтожаются автоматически 🌪️ - **Настраиваемые воркеры** через флаг `--workers` для точной настройки конкурентности 🎛️ ### Интеллект 🧠 - **Кросс-инструментальная корреляция** выявляет связи между разнородными источниками данных 🔍 - **Нечёткая дедупликация** интеллектуально удаляет повторяющиеся результаты 🎯 - **Унифицированная схема сущностей** нормализует вывод всех инструментов 📐 - **Атрибуция источника** отслеживает, какой инструмент обнаружил каждый результат 📝 - **Оценка достоверности** количественно определяет надёжность результатов ⭐ --- ## Быстрый старт 🏃♂️💨 ### Предварительные требования ✅ - Python 3.10 или выше 🐍 - Docker (для выполнения инструментов в контейнерах) 🐳 - Ollama с установленной моделью (для TUI/агентного режима) 🧠 ### Установка 📦 ```bash # Клонирование и установка git clone https://github.com/Expert21/hermes-osint.git cd hermes-osint pip install -r requirements.txt pip install . # Установка Ollama и загрузка модели curl -fsSL https://ollama.com/install.sh | sh ollama pull llama3.1:8b # Проверка работоспособности hermes --doctor # 🏥 Убедитесь, что всё готово! ``` ### Базовое использование 🎮 ```bash # 🧠 Режим TUI (по умолчанию) — диалоговый интерфейс ИИ hermes # Затем общайтесь естественно: "Найди соцсети для johndoe" # 📜 Головной режим — для скриптов и автоматизации hermes --headless --query "Исследуй домен example.com" # 🔧 Устаревший режим — прямой доступ к инструментам (LLM не требуется) hermes sherlock johndoe hermes theharvester example.com hermes holehe [email protected] ``` ### Команды TUI 💬 ```bash /help # Показать все команды /tools # Список доступных инструментов расследования /status # Показать статус текущей сессии /save # Сохранить сессию в файл /load # Загрузить предыдущую сессию /sessions # Список всех сохранённых сессий /export FILE # Экспорт отчёта (md, pdf, html, csv, stix) /stealth # Переключить stealth-режим /clear # Очистить диалог /exit # Выйти из Hermes ``` ### Продвинутое использование 🎯 ```bash # Stealth-режим — только пассивные инструменты hermes --stealth # Блокирует: sherlock, holehe, phoneinfoga # Разрешает: theharvester, subfinder, h8mail # Выбор конкретной модели hermes --model mistral:7b # Головной режим с выводом hermes --headless --query "Найди поддомены для target.com" --output report.md ``` --- ## Доступные инструменты 🛠️ | Инструмент | Назначение | Тип ввода | Stealth | Статус | |------------|------------|-----------|---------|--------| | **Sherlock** 🕵️ | Поиск用户名 на 300+ сайтах | Имя пользователя | ❌ | ✅ | | **TheHarvester** 🌾 | Поиск email/поддоменов из OSINT-источников | Домен | ✅ | ✅ | | **h8mail** 📧 | Корреляция и поиск утечек данных | Email | ✅ | ✅ | | **Holehe** 🔍 | Определение аккаунтов по email на 120+ платформах | Email | ❌ | ✅ | | **PhoneInfoga** 📱 | OSINT по номеру телефона и определение оператора | Телефон | ❌ | ✅ | | **Subfinder** 🗺️ | Пассивный поиск поддоменов | Домен | ✅ | ✅ | --- ## Архитектура 🏗️ ### Агентная архитектура v3.0 ``` Ввод пользователя → CLI (cli.py) ├── Режим TUI → AgentLoop → Ollama → ToolExecutor → Адаптеры ├── Головной → AgentLoop → Одиночный запрос → Отчёт └── Устаревший → ToolExecutor напрямую (без LLM) ``` ### Поток компонентов ``` ┌─────────────┐ │ Запрос │ 💬 "Найди информацию о johndoe" │ пользователя│ └──────┬──────┘ │ ▼ ┌─────────────────┐ │ AgentLoop │ 🧠 ReAct: Думай → Действуй → Наблюдай │ (agent_loop.py)│ └────────┬────────┘ │ ├──────────────────┬────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌───────────────┐ ┌─────────────┐ │ ToolRegistry │ │ContextManager │ │ SessionStore│ │(tool_registry)│ │(context_mgr.py)│ │(session_store)│ └──────┬───────┘ └───────────────┘ └─────────────┘ │ ▼ ┌──────────────────────┐ │ ToolExecutor │ 🔧 Проверяет + Выполняет │ (tool_executor.py) │ └──────────┬───────────┘ │ ▼ ┌─────────────────────────┐ │ ExecutionStrategy │ 🎭 Docker/Нативный/Гибрид │ (execution_strategy.py) │ └──────────┬──────────────┘ │ ▼ ┌──────────────┐ │ Адаптеры │ 🔌 Sherlock, TheHarvester и т.д. └──────┬───────┘ │ ▼ ┌─────────────┐ ┌──────────────┐ │ Сырые │─────▶│ Дедупликация │ ✨ │ результаты │ └──────┬───────┘ └─────────────┘ │ │ ▼ ┌─────────────┐ │ Отчёт │ 📊 │ (exporter) │ └─────────────┘ ``` ### Ключевые компоненты 🔑 #### Слой агента (`src/agent/`) - **AgentLoop** 🧠: паттерн ReAct с вызовом функций Ollama - **ToolRegistry** 📋: определения схем JSON для использования инструментов LLM - **ToolExecutor** 🔧: проверяет входные данные, применяет stealth, связывает с адаптерами - **ContextManager** 📊: прокручивающиеся сводки, предотвращает переполнение токенов - **SessionStore** 💾: JSON-сохранение для функциональности save/load - **TUI** 💻: REPL на prompt_toolkit в стиле пентестера #### Слой оркестрации (`src/orchestration/`) - **ExecutionStrategy** 🎭: выбор режима Docker/нативный/гибрид - **DockerManager** 🐳: эфемерные контейнеры с верификацией SHA256 - **TaskManager** ⚡: параллельное выполнение с ограничением ресурсов #### Слой безопасности (`src/security/`) - **PluginSecurityScanner** 🛡️: статический анализ на основе AST - **InputValidator** ✅: предотвращение инъекций, защита от path traversal - **SecretsManager** 🔐: зашифрованное хранение учётных данных --- ## Безопасность 🔐 ### Безопасность агента 🛡️ - **Правила привязки** предотвращают спекуляции LLM — цитируйте источники или молчите - **Принудительный stealth-режим** блокирует активные инструменты зондирования, когда включен - **Проверка ввода** всех параметров инструментов перед выполнением - **Лимиты контекста** предотвращают инъекции через переполнение токенов ### Изоляция контейнеров 🐳🔒 - **Фиксация дайджеста SHA256** предотвращает подмену образа ✅ - **Эфемерный жизненный цикл** — контейнеры уничтожаются сразу после выполнения 🌪️ - **Лимиты ресурсов** (768 МБ RAM, 50% CPU, 64 PID) 🚦 - **Сетевая изоляция** с настраиваемой поддержкой DNS и прокси 🌐 - **Выполнение не от root** (UID/GID 65534:65534) 👥 ### Безопасность плагинов 🛡️ - **Статический анализ** обнаруживает `eval()`, `exec()`, `os.system()` и инъекции в shell 🚨 - **Двухуровневая модель доверия** разделяет плагины инструментов и плагины ядра 🏛️ - **Объявления возможностей** явно определяют необходимые разрешения 📋 --- ## Форматы вывода 📄 Hermes генерирует отчёты в нескольких форматах через `/export` — **ваши данные, как вам удобно!** 🎨 📦 **JSON** — структурированные данные для программного использования 📝 **Markdown** — чистый, совместимый с GitHub формат с таблицами 🌐 **HTML** — адаптивный дизайн со встроенными CSS и статистикой 📄 **PDF** — профессиональное форматирование с исполнительным резюме 📊 **CSV** — простой табличный формат для импорта в электронные таблицы 🔒 **STIX 2.1** — отраслевой стандарт формата киберразведки --- ## Лицензия ⚖️ ### AGPL-3.0 (Community Edition) 🆓 Hermes OSINT распространяется под лицензией **GNU Affero General Public License v3.0**. **Что это значит:** 💡 - ✅ Бесплатно для личного и коммерческого использования - ✅ Открытый исходный код — просматривайте, изменяйте и распространяйте код - ✅ Copyleft — модификации также должны быть с открытым исходным кодом под AGPL-3.0 - ⚠️ **Использование в сети = Распространение** — если вы запускаете Hermes как сервис, вы **должны** делиться своим исходным кодом Полные условия см. в файле [LICENSE](https://github.com/expert21/hermes-osint/blob/master/LICENSE). --- ## Варианты использования 💼 🔍 **Исследования в области безопасности** — расследуйте угрозы с помощью запросов на естественном языке 🤝 **Дью-дилидженс** — «Расскажи мне всё об этом человеке/компании» 👣 **Анализ цифрового следа** — поймите, насколько ваша организация раскрыта 📈 **Конкурентная разведка** — изучайте конкурентов в диалоге 🎯 **Киберразведка** — собирайте индикаторы с помощью ИИ-триажа 📰 **Журналистские расследования** — пусть Hermes соединяет точки --- ## Юридическое и этическое предупреждение ⚖️ **Только для авторизованной OSINT-деятельности.** ⚠️ Пользователи несут полную ответственность за получение надлежащего разрешения, соблюдение применимых законов и этичное использование этого инструмента. **Разрешённое использование:** ✅ - Сбор общедоступной информации - Авторизованные оценки безопасности - Анализ личного цифрового следа - Соблюдение местных законов и нормативных актов **Запрещённое использование:** 🚫 - Преследование, слежка или запугивание - Попытки несанкционированного доступа - Нарушение законов о конфиденциальности - Нарушение условий использования платформ **Разработчики не несут ответственности за неправомерное использование этого инструмента.** 🙅♂️ --- ## Вклад 🤝 Вклад приветствуется! 🎉 Пожалуйста, ознакомьтесь с [PLUGIN_DEVELOPMENT.md](https://github.com/expert21/hermes-osint/blob/master/PLUGIN_DEVELOPMENT.md) для получения рекомендаций по созданию плагинов и [USAGE.md](https://github.com/expert21/hermes-osint/blob/master/USAGE.md) для подробной документации по использованию. **Есть идеи? Нашли баги? Хотите добавить инструмент?** Откройте issue или отправьте PR! 💪 --- ## Автор ✍️ **Isaiah Myles** ([@Expert21](https://github.com/Expert21)) *Начинающий специалист по кибербезопасности | Мышление пентестера | Создатель значимых инструментов* 🛠️⚡ - 🐛 **Проблемы**: [GitHub Issues](https://github.com/Expert21/hermes-osint/issues) - 📧 **Email**: [email protected] --- <div align="center"> **Hermes v3.0** 🏛️🧠 *Агентный OSINT-аналитик* --- **Разговорный ИИ. Экспертные инструменты. Единая разведка.** Сделано с 💪 и ☕ тем, кто верит, что OSINT должен быть **интеллектуальным, безопасным и доступным**. </div>