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

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

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

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

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

Категории

Все категории
Loading categories
SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker | Kitploit
Инструменты/GitHubGitHub/mr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker
РазведкаСканеры уязвимостейЭксплуатацияСбор информацииСетевая безопасностьТестирование на Проникновение
GitHubmr-whiskerss/ssh-terrapin-prefix-truncation-weakness-cve-2023-48795-checker

SSH-Terrapin-Prefix-Truncation-Weakness-CVE-2023-48795-Checker

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
12 месяцев назадЕщё не проверено

terrapin_check.py

Легковесный Python-сканер для CVE-2023-48795 — уязвимости SSH Terrapin Prefix Truncation.

Terrapin — это уязвимость на уровне протокола SSH, которая позволяет атакующему, выполняющему активную MitM-атаку, усекать согласованную информацию о расширениях, снижая безопасность соединения — наиболее критично отключая ext-info (используется для серверных алгоритмов подписи) и ping (используется расширением OpenSSH no-auth).


📋 Содержание

  • Об уязвимости
  • Как это работает
  • Требования
  • Установка
  • Использование
  • Вывод
  • Условия уязвимости
  • Устранение
  • Отказ от ответственности

Об уязвимости

ПолеДетали
CVECVE-2023-48795
CVSS5.9 (Medium)
ТипПротокол SSH — усечение префикса / обход целостности
РаскрытиеДекабрь 2023
ЗатронутыOpenSSH < 9.6, PuTTY < 0.80, libssh < 0.10.6 и многие другие
Ссылкиterrapin-attack.com

Уязвимость существует из-за того, что определённые комбинации шифров/MAC в SSH — а именно chacha20-poly1305 и шифры CBC-режима с Encrypt-then-MAC — позволяют активному MitM-атакующему внедрять и удалять порядковые номера SSH во время рукопожатия, усекая согласованные данные расширений без обнаружения.

Исправление вводит строгое расширение KEX (kex-strict-*[email protected]), которое должны объявлять и клиент, и сервер, чтобы быть защищёнными.


Как это работает

Скрипт выполняет только пассивный захват баннера и разбор KEXINIT — никакого полного SSH-рукопожатия, аутентификации или эксплуатации:

  1. Открывает TCP-соединение к целевому SSH-порту
  2. Обменивается идентификационными баннерами SSH
  3. Получает и разбирает пакет SSH_MSG_KEXINIT сервера
  4. Проверяет объявленные списки алгоритмов на наличие уязвимых комбинаций
  5. Проверяет наличие расширения strict-KEX для смягчения
  6. Закрывает соединение

Поскольку проверка происходит полностью в фазе обмена ключами, она неинтрузивна и не оставляет значимых следов, кроме обычной попытки TCP-соединения.


Требования

  • Python 3.8+
  • Без сторонних зависимостей — только стандартная библиотека (socket, struct, argparse, concurrent.futures)

Установка

root@kitploit:~
git clone https://github.com/Mr-Whiskerss/terrapin_check
cd terrapin_check
chmod +x terrapin_check.py

Использование

Одиночный хост

root@kitploit:~
python3 terrapin_check.py <host> [port]
root@kitploit:~
python3 terrapin_check.py 192.168.1.10
python3 terrapin_check.py 192.168.1.10 2222

Массовое сканирование из файла

Одна цель на строку — принимается формат host или host:port.

root@kitploit:~
python3 terrapin_check.py -f targets.txt
python3 terrapin_check.py -f targets.txt --threads 20 --timeout 3

Только сводный вывод (полезно для больших сканирований)

root@kitploit:~
python3 terrapin_check.py -f targets.txt --summary

Полные опции

root@kitploit:~
usage: terrapin_check.py [-h] [-f FILE] [-p PORT] [--threads THREADS] [--timeout TIMEOUT] [--summary] [host] [port]

positional arguments:
  host                  Target host
  port                  SSH port (default: 22)

options:
  -h, --help            Show this help message and exit
  -f, --file FILE       File containing hosts (host or host:port per line)
  -p, --port-flag PORT  Default port when using -f (default: 22)
  --threads THREADS     Concurrent threads for bulk scan (default: 10)
  --timeout TIMEOUT     Socket timeout in seconds (default: 5.0)
  --summary             Print one-line summary per host only

Коды выхода

КодЗначение
0Уязвимые хосты не найдены
1Обнаружен один или несколько уязвимых хостов

Это позволяет использовать скрипт в конвейерах и автоматизированных процессах.


Вывод

Одиночный хост (подробный)

root@kitploit:~
────────────────────────────────────────────────────────────
  Target : 192.168.1.10:22
  Banner : SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
  Status : VULNERABLE

  Strict-KEX : No
  ✗ ChaCha20-Poly1305 advertised → prefix-truncation possible
  ✗ CBC+ETM combination advertised
      CBC ciphers : aes128-cbc, aes256-cbc
      ETM MACs    : [email protected], [email protected]

  KEX algorithms:
    curve25519-sha256
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
────────────────────────────────────────────────────────────

Массовое сканирование (сводка)

root@kitploit:~
  [VULN]  192.168.1.10:22                  VULNERABLE (CVE-2023-48795)
  [SAFE]  192.168.1.20:22                  Not vulnerable
  [MIT]   192.168.1.30:22                  Algorithms present but strict-KEX mitigates
  [?]     192.168.1.99:22                  ERROR: Connection refused

Условия уязвимости

Скрипт помечает хост как VULNERABLE, если выполняется любое из следующих условий, и расширение strict-KEX не объявлено:

1. ChaCha20-Poly1305

Сервер объявляет [email protected] в любом направлении шифрования.

2. Комбинация CBC-шифра + ETM MAC

Сервер объявляет любой CBC-режим шифра и любой ETM MAC вместе:

Проверяемые CBC-шифры: aes128-cbc, aes192-cbc, aes256-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, idea-cbc, arcfour, arcfour128, arcfour256, [email protected]

Проверяемые ETM MAC: [email protected], [email protected], [email protected], [email protected] и варианты

Смягчение — Strict KEX

Если сервер объявляет [email protected] в своём списке алгоритмов KEX, соединение защищено независимо от того, какие шифры и MAC предлагаются. В этом случае скрипт сообщит MITIGATED, а не VULNERABLE.


Устранение

Действие
root@kitploit:~
# /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
MACs hmac-sha2-256,hmac-sha2-512

Удаление алгоритмов снижает гибкость шифров. Обновление всегда является предпочтительным способом устранения.


Отказ от ответственности

Этот инструмент предназначен только для авторизованных оценок безопасности. Используйте его только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение. Автор не несёт ответственности за неправомерное использование.


Часть набора инструментов для пентеста Mr-Whiskerss.

Скачать инструмент
Детали
Обновить OpenSSHОбновитесь до ≥ 9.6 и на клиенте, и на сервере. Strict KEX включён по умолчанию.
Обновить другие реализацииPuTTY ≥ 0.80, libssh ≥ 0.10.6, Paramiko ≥ 3.4.0, AsyncSSH ≥ 2.14.2
Удалить уязвимые алгоритмыЕсли обновление невозможно немедленно, удалите chacha20-poly1305 и CBC-шифры + ETM MAC из sshd_config: