SSH MITM-прокси для аудита безопасности SSH-инфраструктуры. Перехватывает SSH-сессии, поддерживает аутентификацию по публичному ключу через agent-forwarding, записывает терминальные сессии и передаваемые файлы (SCP/SFTP). Позволяет выполнять инъекции команд в активную сессию, собирать учётные данные и анализировать SSH-трафик без разрыва соединения. Имеет плагин-архитектуру на Python.
# pip pip install ssh-mitm # pipx pipx install ssh-mitm # Из исходников (GitHub — основной репо) git clone https://github.com/ssh-mitm/ssh-mitm cd ssh-mitm pip install -e . # Запуск (перехват подключений к целевому серверу) ssh-mitm server --remote-host target.host --listen-port 10022 # Прозрачный режим (требует CAP_NET_ADMIN) sudo ssh-mitm server --transparent --listen-port 10022
Интерактивный инструмент для перехвата SSH, предназначенный для авторизованного аудита безопасности.
Перехват сессий, мониторинг сетевого трафика в реальном времени, инъекция команд и управление передачей файлов — всё в реальном времени.
Юридическое уведомление: SSH-MITM предназначен исключительно для авторизованного аудита безопасности, тестирования на проникновение и исследований. Не используйте его против систем, которыми вы не владеете или для тестирования которых у вас нет явного письменного разрешения. Несанкционированный перехват SSH-трафика может быть незаконным в вашей юрисдикции.
ssh-mitm tutorial
Открывает пошаговое руководство на основе браузера — целевой сервер не требуется. Пять глав следуют авторизованной оценке Logfile Inc., охватывая перехват паролей, аутентификацию по открытому ключу, передачи SFTP, выполнение команд и зеркальное отображение активных сессий.

Размещённый между клиентом и его SSH-сервером, SSH-MITM перехватывает соединение — независимо завершает обе стороны и пересылает весь трафик, давая аудитору полную видимость и контроль:
SSH-MITM не требует установки. Скачайте AppImage, и вы готовы к работе:
wget https://github.com/ssh-mitm/ssh-mitm/releases/latest/download/ssh-mitm-x86_64.AppImage
chmod +x ssh-mitm-x86_64.AppImage
Для других вариантов установки (pip, Flatpak, Snap) смотрите руководство по установке.
⚡ Получите последнюю версию
Релиз в PyPI может отставать. Установите напрямую из GitHub, чтобы получить интерактивное обучение и все последние улучшения:
bash pip install git+https://github.com/ssh-mitm/ssh-mitm.git
Укажите SSH-MITM ваш целевой хост — используйте систему, тестирование которой вам разрешено:
./ssh-mitm-x86_64.AppImage server --remote-host <target-host>
Настройте SSH-клиент на подключение через SSH-MITM на порту 10022:
ssh -p 10022 user@mitm-host
SSH-MITM перехватывает сессию и немедленно записывает учётные данные:
INFO Remote authentication succeeded
Remote Address: <target-host>:22
Username: alice
Password: secret
Agent: no agent

Для каждого перехваченного соединения SSH-MITM открывает зеркальную оболочку на локальном порту:
INFO ℹ created mirrorshell on port 34463. connect with: ssh -p 34463 127.0.0.1
Подключитесь к ней из отдельного терминала:
ssh -p 34463 127.0.0.1
Зеркальная оболочка отражает сессию в реальном времени. Аудитор может наблюдать за активностью пользователя и инжектировать команды независимо, не влияя на исходное соединение.
| Функция | Описание |
|---|---|
| Интерактивный мониторинг сессий | Подключение к любой перехваченной сессии через зеркальную оболочку — наблюдение и инъекция команд в реальном времени |
| Управление передачей файлов | Перехват передач SCP/SFTP, сохранение копий или замена файлов на лету |
| Перехват перенаправления портов | Перехват TCP-туннелей и динамического перенаправления SOCKS 4/5 |
| Фишинг токенов FIDO2 | Перехват аутентификации аппаратных токенов через атаку тривиальной аутентификации (информация OpenSSH) |
| Перехват аутентификации | Захват паролей; приём того же открытого ключа, что и целевой сервер, с автоматическим откатом к аутентификации паролем |
| Мониторинг сессий MOSH | Перехват и дешифровка UDP-сессий MOSH (Mobile Shell); просмотр активного терминала через встроенный эмулятор VT100/ANSI |
| Удалённый PowerShell (PSRP) | Перехват удалённых сессий PowerShell через SSH; логирование команд, вывода, ошибок и переходов состояний; запись стенограмм для каждой сессии |
| Аудит клиентов | Идентификация известных уязвимостей в подключающихся SSH-клиентах только на основе поведения согласования ключей |
| Поддержка плагинов | Расширение и настройка всего поведения перехвата с помощью плагинов |
SSH-MITM был изначально разработан для исследования фундаментальной уязвимости в том, как SSH-клиенты обрабатывают аутентификацию аппаратных токенов. Исследование выявило, что токены FIDO2 — часто используемые как второй фактор — могут быть подвергнуты фишингу с помощью техники, называемой тривиальной аутентификацией.
Атака эксплуатирует тот факт, что SSH-клиенты могут быть вынуждены использовать тривиальный метод аутентификации — например, клавиатурно-интерактивный без запросов — что фактически предоставляет доступ без реальной аутентификации. Это полностью обходит защиту аппаратных токенов, поскольку токен никогда не запрашивается. SSH-MITM может смоделировать это для любого клиента, который явно не отвергает этот метод:
ssh-mitm server --enable-trivial-auth
Работа из позиции «Человек посередине» (MitM) позволяет наблюдать поведение SSH-клиента, невидимое с любой из конечных точек. SSH-MITM был использован для обнаружения 7 ранее неизвестных уязвимостей в широко распространённом SSH-программном обеспечении:
Последняя: CVE-2026-60000 — Аутентификация GSSAPI в OpenSSH нарушала RFC 4462 такими способами, которые позволяли злоумышленнику полностью обходить
MaxAuthTries, вызывая отказ в обслуживании до аутентификации. Тот же корневой привёл также к оракулу действительности имени пользователя и аварийному завершению привилегированного процесса, все исправлено в OpenSSH 10.4.
Доклад на DeepSec 2021 — полное объяснение атаки:
Нажмите, чтобы посмотреть на vimeo.com
Не каждый результат этого исследования является уязвимостью — смотрите Вклад в upstream для исправлений по усилению безопасности, внесённых непосредственно в OpenSSH.
(наверх)
Приглашаем к участию! Пожалуйста, прочитайте CONTRIBUTING.md для получения подробной информации о настройке среды разработки, стиле кода и способах отправки pull request.
(наверх)
(наверх)