
ssh-mitm v6.0.0
SSH-MITM - аудит SSH стал простым
SSH-MITM — аудит SSH стал проще
Интерактивный инструмент перехвата SSH для авторизованных аудитов безопасности.
Перехватывайте сеансы, отслеживайте трафик в реальном времени, внедряйте команды и управляйте передачей файлов — всё в реальном времени.
Правовое уведомление: SSH-MITM предназначен только для авторизованных аудитов безопасности, тестирования на проникновение и исследований. Не используйте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения. Несанкционированный перехват SSH-трафика может быть незаконным в вашей юрисдикции.
🎓 Новичок в SSH-MITM? Начните с интерактивного учебника
ssh-mitm tutorial
Открывает пошаговое руководство в браузере — целевой сервер не требуется. Пять глав описывают авторизованную оценку Logfile Inc., охватывая перехват паролей, аутентификацию по открытому ключу, передачу файлов по SFTP, выполнение команд и зеркалирование живого сеанса.
Быстрый старт
Расположенный между клиентом и его SSH-сервером, SSH-MITM перехватывает соединение — независимо завершая обе стороны и пересылая весь трафик, предоставляя аудитору полную видимость и контроль:
1. Установка
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, чтобы получить интерактивный учебник и все последние улучшения:
pip install git+https://github.com/ssh-mitm/ssh-mitm.git
2. Запуск SSH-MITM
Укажите SSH-MITM целевой хост — используйте систему, которую вы уполномочены тестировать:
./ssh-mitm-x86_64.AppImage server --remote-host <target-host>
3. Направьте клиентское соединение
Заставьте 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
4. Подключение к живому сеансу
Для каждого перехваченного соединения SSH-MITM открывает зеркальную оболочку на локальном порту:
INFO ℹ created mirrorshell on port 34463. connect with: ssh -p 34463 127.0.0.1
Подключитесь к ней из отдельного терминала:
ssh -p 34463 127.0.0.1
Зеркальная оболочка отражает сеанс в реальном времени. Аудитор может наблюдать за действиями пользователя и независимо внедрять команды, не влияя на исходное соединение.
Возможности SSH-MITM
| Функция | Описание |
|---|---|
| Интерактивный мониторинг сеансов | Подключайтесь к любому перехваченному сеансу через зеркальную оболочку — наблюдайте и внедряйте команды в реальном времени |
| Управление передачей файлов | Перехватывайте передачи SCP/SFTP, сохраняйте копии или заменяйте файлы на лету |
| Перехват переадресации портов | Перехватывайте TCP-туннели и динамическую переадресацию SOCKS 4/5 |
| Фишинг токенов FIDO2 | Перехватывайте аутентификацию аппаратных токенов через атаку тривиальной аутентификации (информация OpenSSH) |
| Перехват аутентификации | Захватывайте пароли; принимайте тот же открытый ключ, что и целевой сервер, и автоматически переходите к аутентификации по паролю |
| Мониторинг сеансов MOSH | Перехватывайте и расшифровывайте UDP-сеансы MOSH (Mobile Shell); просматривайте живой терминал через встроенный эмулятор VT100/ANSI |
| Удалённое управление PowerShell (PSRP) | Перехватывайте сеансы удалённого управления PowerShell через SSH; регистрируйте команды, вывод, ошибки и переходы состояний; записывайте транскрипты для каждого сеанса |
| Аудит клиентов | Выявляйте известные уязвимости подключающихся SSH-клиентов только по поведению при согласовании ключей |
| Поддержка плагинов | Расширяйте и настраивайте всё поведение перехвата с помощью плагинов |
Варианты использования
- Тестирование на проникновение — активно аудируйте SSH-клиенты и серверы в авторизованных проектах; перехватывайте, изменяйте и воспроизводите сеансы
- Исследования безопасности — интерактивно анализируйте поведение SSH-клиентов, потоки аутентификации и уязвимости на уровне протокола
- Учебные среды — демонстрируйте методы MITM и захват сеансов в контролируемых лабораторных условиях
- Анализ вредоносного ПО — отслеживайте SSH-сеансы подозрительных клиентов и взаимодействуйте с ними в изолированных средах
Исследования безопасности
SSH-MITM изначально был разработан для исследования фундаментальной слабости в том, как SSH-клиенты обрабатывают аутентификацию аппаратных токенов. Исследование выявило, что токены FIDO2 — часто используемые как второй фактор — могут быть скомпрометированы с помощью техники, называемой тривиальной аутентификацией.
Атака использует тот факт, что SSH-клиентов можно принудить к тривиальному методу аутентификации — например, keyboard-interactive без запросов — что фактически предоставляет доступ без какой-либо реальной аутентификации. Это полностью обходит защиту аппаратных токенов, поскольку токен никогда не подвергается проверке. SSH-MITM может имитировать это против любого клиента, который явно не отклоняет такой метод:
ssh-mitm server --enable-trivial-auth
Действуя с позиции «человек посередине», можно наблюдать поведение SSH-клиента, которое невидимо ни с одной из конечных точек. SSH-MITM использовался для обнаружения 7 ранее неизвестных уязвимостей в широко распространённом SSH-программном обеспечении:
Последнее: CVE-2026-60000 — GSSAPI-аутентификация OpenSSH нарушала RFC 4462 таким образом, что позволяла атакующему полностью обойти
MaxAuthTries, вызывая отказ в обслуживании до аутентификации. Та же первопричина также породила оракул валидности имени пользователя и сбой привилегированного процесса — всё исправлено в OpenSSH 10.4.
Доклад на DeepSec 2021 — полное объяснение атаки:
Нажмите, чтобы посмотреть на vimeo.com
Не каждый результат этого исследования является уязвимостью — см. Вклад в вышестоящие проекты для исправлений, укрепляющих безопасность, внесённых непосредственно в OpenSSH.
(наверх)
Участие в разработке
Вклад приветствуется! Пожалуйста, прочитайте CONTRIBUTING.md для получения подробной информации о настройке среды разработки, стиле кода и о том, как отправить pull request.
(наверх)
Контакты
- E-Mail: [email protected]
- Трекер проблем
(наверх)

