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

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

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

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

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

Категории

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

SSHintel

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

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

Популярное

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

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

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

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

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

SSHintel — Легковесный SSH-хоніпот

License: MIT Python Last Commit Repo Size

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


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

  • Регистрирует попытки входа по SSH с указанием IP, имени пользователя и пароля
  • Предоставляет имитированную Linux-оболочку (фейковое, in-memory окружение)
  • Поддерживает широкий набор команд разведки и навигации (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.

Хоніпот автоматически генерирует 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

🛡️ Лимиты подключений и таймауты

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. Сначала запустите хоніпот, чтобы телеметрия собиралась, затем запустите панель и наблюдайте, как она заполняется.

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

  • Карточки KPI — общее количество сессий, уникальные исходные IP-адреса, попытки аутентификации, успешные/неудачные аутентификации и выполненные команды
  • График активности — подключения с течением времени, сгруппированные по часам
  • Топ команд — наиболее часто выполняемые команды атакующих
  • Целевые имена пользователей — какие имена пользователей пытаются использовать атакующие
  • Недавние сессии — нажмите на любой ID сессии для её расследования
  • Недавняя активность — последние события телеметрии в таблице с поиском

Расследование сессии

Нажмите на ID сессии (или перейдите по адресу /session/<session_id>), чтобы открыть просмотр расследования сессии, который восстанавливает одну атаку в хронологическом порядке:

  • Сводка сессии — исходный IP, имя пользователя, время начала/окончания, продолжительность, результат аутентификации, причина отключения
  • Хронология атаки — каждое событие (подключение, попытки аутентификации, команды, отключение) в хронологическом порядке
  • Последовательность команд — компактный вид $ команда всего, что вводил атакующий, с рабочими директориями

Пример рабочего процесса

# Терминал 1: запуск хоніпота
python3 run.py serve --port 2222 --username user1 --password pass123

# Терминал 2: запуск панели
python3 run.py dashboard

# Терминал 3: имитация атакующего
ssh user1@localhost -p 2222
# (выполните несколько команд, затем выйдите)

Затем откройте http://localhost:5000, чтобы просмотреть захваченную активность.

Панель поддерживает живую телеметрию — она опрашивает хоніпот каждые 2 секунды и обновляется автоматически. Новые сессии, команды и события появляются в реальном времени без обновления страницы. Индикатор Live (● Live) показывает статус подключения.


🔐 Тестирование из другого терминала

Откройте второй терминал и попробуйте подключиться:

ssh user1@localhost -p 2222

Если учетные данные совпадают, вы попадёте в эмулированную оболочку.


🚑 Опционально: Очистка известных хостов (при повторном подключении)

Чтобы удалить устаревшие SSH-отпечатки:

notepad "%USERPROFILE%\.ssh\known_hosts"

Удалите соответствующую строку, содержащую localhost или IP хоніпота.


📝 Регистрируемая информация

  • Учетные данные регистрируются в creds_logger
  • Команды оболочки регистрируются через funnel_logger
  • Структурированные события безопасности записываются в log_files/events.jsonl в формате JSON Lines (JSONL) — один корректный JSON-объект на строку

Каждое событие JSONL включает UTC ISO-8601 timestamp, event_type, уникальный session_id и source_ip. Подключения, попытки/результаты аутентификации, выполнение команд, активация tarpit и отключения — всё регистрируется как структурированные события.

Каждое входящее SSH-подключение отслеживается как независимая сессия со своим session_id. Сессия записывает исходный IP, время подключения/отключения, результат аутентификации и продолжительность подключения, и каждое событие, сгенерированное в рамках этого подключения, несёт тот же session_id (поэтому попытки аутентификации, команды и отключения можно связать с одним подключением). Сессии изолированы для каждого подключения — состояние не разделяется между одновременными клиентами.

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