Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
SSHintel — Автономный SSH-хоніпот для перехоплення взаємодій атакуючих і перетворення їх на структуровану розвідку з кібербезпеки. | Kitploit
Инструменты/GitHubGitHub/sonitbahl/sshintel
Сетевая безопасностьРазведка угрозОбнаружение ВторженийРеагирование на ИнцидентыАнализ Журналов
GitHubsonitbahl/sshintel

SSHintel

Автономный SSH-хоніпот для перехоплення взаємодій атакуючих і перетворення їх на структуровану розвідку з кібербезпеки.

Репозиторий
3782 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

SSHintel — легковесный SSH-ханипот

License: MIT Python Last Commit Repo Size

SSHintel — это легковесный SSH-ханипот, созданный на Python с использованием Paramiko. Он имитирует фальшивую оболочку Linux для регистрации несанкционированных попыток доступа, перехвата учётных данных и анализа поведения злоумышленников в контролируемой среде.


🔧 Возможности

  • Регистрирует попытки входа по SSH с указанием IP, имени пользователя и пароля
  • Предоставляет симулированную оболочку Linux (фальшивую среду в памяти)
  • Поддерживает широкий набор команд разведки и навигации (ls, cd, pwd, cat, echo, grep, find, tree, head, tail, wc, stat, ps, df, free, env, id, whoami и др.)
  • Опциональный режим --tarpit для замедления злоумышленников с помощью задержки вывода
  • Изолированная фальшивая файловая система для каждой сессии с поддержкой создания и чтения файлов
  • Локальная веб-панель для визуализации собранной телеметрии безопасности (сессии, команды, попытки аутентификации, главные злоумышленники)
  • Представление для расследования сессий — выберите любую сессию и восстановите полную хронологию атаки, включая IP-адрес источника, результат аутентификации, каждую выполненную команду с её рабочим каталогом и длительность сессии
  • Всё симулируется — команды никогда не выполняются на хосте, не обращаются к реальной файловой системе и не выполняют сетевых запросов.

SSHintel — это не полноценная оболочка Bash/Linux. Он имитирует правдоподобное подмножество распространённых команд для сбора телеметрии о злоумышленнике. Команды обрабатываются через легковесный реестр; добавление команды означает добавление небольшой функции-обработчика.


🛠️ Установка

1. 📦 Установка зависимостей

pip install -r requirements.txt

Примечание: Ключ хоста SSH генерируется автоматически при первом запуске. Ручная генерация ключа не требуется.


🚀 Запуск ханипота

Запустите ханипот с указанием конкретного порта, имени пользователя и пароля:

python3 run.py serve --port 2222 --username user1 --password pass123

Порт по умолчанию — 2222, хост — 0.0.0.0.

При первом запуске honeypot автоматически генерирует ключ хоста SSH в static/server.key, если он не существует. Ручная генерация ключа не требуется.

Чтобы включить режим tarpit:

python3 run.py serve --port 2222 --username user1 --password pass123 --tarpit

Чтобы отключить телеметрию SQLite (только JSONL):

python3 run.py serve --port 2222 --username user1 --password pass123 --no-db

Fichiers de configuration et variables d'environnement

Настройки датчика используют порядок CLI > окружение > файл конфигурации > значения по умолчанию. Только явно переданные флаги CLI переопределяют другие источники. Это относится к serve; команды панели управления/запросов сохраняют свои собственные настройки CLI.

В Python 3.11+:

cp sshintel.toml.example sshintel.toml
chmod 600 sshintel.toml
python3 run.py serve

В Python 3.8/3.10 используйте эквивалент JSON без зависимостей:

cp sshintel.json.example sshintel.json
chmod 600 sshintel.json
python3 run.py serve

Отредактируйте скопированный файл перед развёртыванием. TOML требует Python 3.11+; в более старых версиях возникает ошибка с чётким указанием использовать JSON. Если файл явно не задан, SSHintel ищет sshintel.toml, затем sshintel.json в текущем каталоге. Используйте serve --config /path/to/settings.json или HONEYPOT_CONFIG, чтобы выбрать другой файл (приоритет у --config). Явно указанные отсутствующие файлы, файлы с ошибками формата, неизвестные ключи и недопустимые значения приводят к ошибке до запуска сервера или базы данных. Пути к файлам внутри конфигурации задаются относительно рабочего каталога процесса, а не файла конфигурации.

Ключ файлаПеременная окруженияЗначение по умолчанию
hostHONEYPOT_HOST0.0.0.0
portHONEYPOT_PORT (устаревший псевдоним: PORT)2222
usernameHONEYPOT_USERNAMEuser1
passwordHONEYPOT_PASSWORDpass123
tarpitHONEYPOT_TARPITfalse
tarpit_max_secondsHONEYPOT_TARPIT_MAX_SECONDS120
max_connectionsHONEYPOT_MAX_CONNECTIONS50
auth_timeoutHONEYPOT_AUTH_TIMEOUT60
session_idle_timeoutHONEYPOT_SESSION_IDLE_TIMEOUT300
sensor_idHONEYPOT_SENSOR_IDне задано
db_pathHONEYPOT_DB_PATHdata/sshintel.db
no_dbHONEYPOT_NO_DBfalse
fetch_payloadsHONEYPOT_FETCH_PAYLOADSfalse (зарезервировано)

Булевы значения в переменных окружения принимают true/false, 1/0, yes/no и on/off. HONEYPOT_PORT имеет приоритет над PORT. Порты должны быть в диапазоне 1–65535, а лимиты и тайм-ауты должны быть положительными целыми числами. Используйте --no-tarpit, --db-enabled или --no-fetch-payloads, чтобы переопределить значение true из настройки с более низким приоритетом. Пути к базе данных задаются существующим флагом CLI --db. Загрузка полезной нагрузки не реализована: включение fetch_payloads отклоняется, а не игнорируется молча.

Локальные файлы sshintel.toml/sshintel.json игнорируются Git и исключаются из сборок Docker, поскольку могут содержать учётные данные. Вместо этого смонтируйте файл конфигурации в контейнер только для чтения. Docker использует переменные окружения напрямую (без подстановки учётных данных через оболочку); его существующие значения по умолчанию ENV имеют приоритет над смонтированным файлом. Переопределяйте эти переменные по мере необходимости или используйте явные флаги CLI.

🛡️ Ограничения подключений и тайм-ауты

SSHintel защищает от исчерпания ресурсов из-за множества одновременных подключений или подключений, удерживаемых бесконечно. Их можно настроить через CLI:

ФлагПо умолчаниюНазначение
--max-connections50Максимальное число одновременных активных подключений; лишние подключения отклоняются и регистрируются как событие connection_rejected
--auth-timeout60 (с)Время, отведённое на завершение SSH-рукопожатия/аутентификации; зависшие клиенты отключаются
--session-idle-timeout300 (с)Тайм-аут неактивности для аутентифицированной оболочки; неактивная сессия завершается, но активно печатающий атакующий никогда не отключается

Пример:

python3 run.py serve --port 2222 --username user1 --password pass123 \
  --max-connections 25 --auth-timeout 30 --session-idle-timeout 300

Когда открыто слишком много соединений, лишнее соединение немедленно закрывается, а в журнал JSONL записывается событие безопасности connection_rejected (с reason: connection_limit). Зависшая аутентификация фиксируется как отключение с reason: auth_timeout; простаивающая оболочка завершается с reason: idle_timeout.

Режим tarpit намеренно отправляет вывод медленно, чтобы удерживать атакующего, поэтому цикл баннера tarpit не подпадает под тайм-аут неактивности — но сессии tarpit учитываются в лимите соединений.


📊 Панель управления

SSHintel включает локальную веб-панель, которая визуализирует телеметрию безопасности, хранящуюся в SQLite.

Запуск панели управления

python3 run.py dashboard

Затем откройте http://localhost:5000 в браузере.

По умолчанию панель управления читает данные из базы данных SQLite по пути data/sshintel.db. Сначала запустите honeypot, чтобы начался сбор телеметрии, а затем запустите панель управления, чтобы наблюдать за её наполнением.

Что она отображает

Скачать инструмент