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

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

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

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

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

Категории

Все категории
Loading categories
apache__mina-sshd_CVE-2023-35887_2-9-2 — Pure Java-библиотека SSH-клиента/сервера, реализующая протокол SSH-2 с поддержкой множества шифров, обмена ключами, методов аутентификации, SFTP, SCP и проброса портов для безопасного удалённого доступа. | Kitploit
Инструменты/GitHubGitHub/shoucheng3/apache__mina-sshd_cve-2023-35887_2-9-2
Инструменты шифрования/дешифрованияАнализ уязвимостейСетевая безопасностьКриптографияТестирование на ПроникновениеУтилиты и фреймворкиАутентификацияИнструмент Удаленного Доступа

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
shoucheng3/apache__mina-sshd_cve-2023-35887_2-9-2

apache__mina-sshd_CVE-2023-35887_2-9-2

Pure Java-библиотека SSH-клиента/сервера, реализующая протокол SSH-2 с поддержкой множества шифров, обмена ключами, методов аутентификации, SFTP, SCP и проброса портов для безопасного удалённого доступа.

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

Apache MINA SSHD

Apache MINA SSHD

Apache MINA SSHD — это библиотека на 100% чистой Java, обеспечивающая поддержку протоколов SSH как на стороне клиента, так и на стороне сервера. Она не ставит целью заменить SSH-клиент или SSH-сервер операционных систем Unix, а скорее предоставляет поддержку для приложений на базе Java, которым требуется поддержка SSH.

Библиотека может использовать несколько бэкендов ввода-вывода:

  • Транспорт по умолчанию встроен и использует AsynchronousSocketChannel из Java.
  • Вместо него можно использовать Apache MINA — масштабируемую и высокопроизводительную асинхронную библиотеку ввода-вывода, или
  • также поддерживается асинхронный событийно-ориентированный сетевой фреймворк Netty.

Поддерживаемые стандарты

Документация по эталонной реализации

  • RFC 4251 - Архитектура протокола Secure Shell (SSH)
  • RFC 4252 - Протокол аутентификации Secure Shell (SSH)
  • RFC 4253 - Протокол транспортного уровня Secure Shell (SSH)
  • RFC 4254 - Протокол соединения Secure Shell (SSH)
  • RFC 4256 - Обмен аутентификацией с помощью общих сообщений для протокола Secure Shell (SSH)
  • RFC 4335 - Расширение разрыва сеансового канала Secure Shell (SSH)
  • RFC 4344 - Режимы шифрования транспортного уровня Secure Shell (SSH)
  • RFC 4345 - Улучшенные режимы Arcfour для протокола транспортного уровня Secure Shell (SSH)
  • RFC 4419 - Обмен группами Диффи-Хеллмана для протокола транспортного уровня Secure Shell (SSH)
  • RFC 4716 - Формат файлов открытых ключей Secure Shell (SSH)
  • RFC 5208 - Стандарты криптографии с открытым ключом (PKCS) № 8, версия 1.2
  • RFC 5480 - Информация об открытом ключе субъекта для криптографии на эллиптических кривых
  • RFC 5647 - Режим AES Galois Counter Mode для протокола транспортного уровня Secure Shell
  • RFC 5656 - Интеграция алгоритмов на эллиптических кривых в транспортный уровень Secure Shell
  • RFC 5915 - Структура закрытого ключа на эллиптических кривых
  • RFC 6668 - Проверка целостности данных с помощью SHA-2 для протокола транспортного уровня Secure Shell (SSH)
  • RFC 8160 - Терминальный режим IUTF8 в Secure Shell (SSH)
  • RFC 8268 - Дополнительные группы для обмена ключами Diffie-Hellman (DH) с модульным возведением в степень (MODP) для Secure Shell (SSH)
  • RFC 8308 - Согласование расширений в протоколе Secure Shell (SSH)
    • Примечание: в коде есть хуки для реализации этого RFC, а также предоставляются реализации по умолчанию для клиента и сервера для расширения server-sig-algs.
  • RFC 8332 - Использование ключей RSA с SHA-256 и SHA-512 в протоколе Secure Shell (SSH)
    • Примечание: серверная сторона поддерживает эти подписи по умолчанию. Для клиентской стороны требуется специальная инициализация — см. раздел 3.3, а также упомянутые выше хуки для RFC 8308.
  • RFC 8731 - Метод обмена ключами Secure Shell (SSH) с использованием Curve25519 и Curve448
  • Обновления и рекомендации по методам обмена ключами (KEX) для Secure Shell
  • Поддержка OpenSSH для ключей безопасности U2F/FIDO
    • Примечание: серверная сторона поддерживает эти ключи по умолчанию. Клиентская сторона требует специальной инициализации.
  • Система аутентификации OpenSSH на основе сертификатов открытых ключей для использования в SSH
  • Прыжки через SSH-прокси
  • SFTP версий 3-6 + расширения
    • supported - DRAFT 05 - раздел 4.4
    • supported2 - DRAFT 13 - раздел 5.4
    • versions - DRAFT 09 - раздел 4.6
    • vendor-id - DRAFT 09 - раздел 4.4
    • acl-supported - DRAFT 11 - раздел 5.4
    • newline - DRAFT 09 - раздел 4.3
    • md5-hash, md5-hash-handle - DRAFT 09 - раздел 9.1.1
    • check-file-handle, -
  • Бесконечная ловушка - см. раздел HOWTO(s).

Реализованная/доступная поддержка

Методы аутентификации

  • hostbased, publickey, аутентификация OpenSSH на основе открытых ключей хоста, keyboard-interactive, password

Шифры

  • aes128cbc, aes128ctr, aes192cbc, aes192ctr, aes256cbc, aes256ctr, arcfour128, arcfour256, blowfish-cbc, [email protected], [email protected], [email protected], 3des-cbc

Хеши

  • md5, sha1, sha224, sha256, sha384, sha512

MAC-алгоритмы

  • hmacmd5, hmacmd596, hmacsha1, hmacsha196, hmacsha256, hmacsha512, [email protected] , [email protected], [email protected]

Обмен ключами

  • diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256 , diffie-hellman-group15-sha512, diffie-hellman-group16-sha512, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512 , ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, curve25519-sha256, [email protected], curve448-sha512
    • На версиях Java до Java 11 для curve25519-sha256, [email protected] или curve448-sha512 требуется Bouncy Castle.

Сжатие

  • none, zlib, [email protected]

Подписи/ключи

  • ssh-dss, ssh-rsa, rsa-sha2-256, rsa-sha2-512, nistp256, nistp384, nistp521 , ssh-ed25519 (требуется дополнительный модуль eddsa), [email protected], [email protected] , [email protected], [email protected], [email protected] , [email protected], [email protected], [email protected]

Примечание: приведённый выше список содержит все поддерживаемые параметры безопасности в коде. Однако в соответствии с последними рекомендациями в конфигурации клиента и сервера по умолчанию используются только те параметры безопасности, которые в настоящее время считаются безопасными. Пользователи, желающие использовать небезопасные параметры, должны сделать это явно. Следующие параметры устарели и больше не входят в конфигурацию по умолчанию:

  • RFC 8758 - Устаревание RC4 в Secure Shell (SSH)
  • RFC 8429 - Устаревание Triple-DES (3DES) и RC4 в Kerberos
    • Хотя документ относится к Kerberos, в нём также упоминаются слабости DES.
  • Примечания к выпускам OpenSSH - обычно хороший показатель фактически применяемых практик
  • Обмен ключами и подписи на основе SHA-1
  • Алгоритмы HMAC на основе MD5 и усечённые HMAC
  • RFC 8270 - Увеличение минимального рекомендуемого размера модуля Диффи-Хеллмана для Secure Shell до 2048 бит Примечание: использование 1024 бит по-прежнему возможно при инициализации значения программно или через системное свойство — см. Настройка поставщиков безопасности. В коде по-прежнему присутствуют модули для 1024 бит, и они будут использоваться, если пользователь явно снизит минимальное значение по умолчанию до этого уровня.

Предостережение: согласно RFC 8332 - раздел 3.31

Опыт внедрения показал, что существуют серверы, которые применяют штрафы при аутентификации клиентов, пытающихся использовать алгоритмы открытых ключей, не поддерживаемые SSH-сервером.

При аутентификации с помощью ключа RSA на сервере, который не реализует расширение "server-sig-algs", клиенты МОГУТ по умолчанию использовать подпись "ssh-rsa", чтобы избежать штрафов при аутентификации. Когда новые алгоритмы rsa-sha2-* получат достаточно широкое распространение, чтобы оправдать отключение "ssh-rsa", клиенты МОГУТ по умолчанию использовать один из новых алгоритмов.

Это означает, что пользователи, столкнувшиеся с этой (и связанными с ней) проблемами, должны изменить поддерживаемые параметры безопасности явно, чтобы избежать этой проблемы.

Особое уведомление: ssh-rsa остался в конфигурации по умолчанию, поскольку многие системы и пользователи до сих пор используют его. Однако в будущей версии он будет удалён из конфигурации по умолчанию. Поэтому мы настоятельно рекомендуем пользователям переходить на другие ключи (например, ECDSA, ED25519) как можно скорее.

Примечания к выпускам

Сообщение о проблемах

Отчёты об ошибках, запросы на улучшение или новые функции можно отправлять в систему отслеживания проблем GitHub или в систему отслеживания проблем Apache.

Чувствительные вопросы, такие как уязвимости безопасности, должны сообщаться через приватные каналы, а не через указанные выше системы отслеживания.

Основные требования

  • Java 8+ (начиная с версии 1.3)

  • Slf4j

Код требует только базовый модуль slf4j-api. Конкретная реализация API журналирования может быть выбрана из множества существующих адаптеров.

Структура основных артефактов

  • sshd-common - содержит базовые классы, используемые во всём проекте, а также код, не требующий поддержки сети на стороне клиента или сервера.

  • sshd-core - содержит основной код SSH-клиента/сервера, реализующий соединение, транспорт, каналы, переадресацию и т. д.

    • sshd-mina, sshd-netty - замена стандартного коннектора NIO2 для установления и управления сетевыми соединениями с использованием библиотек MINA и/или Netty соответственно.
  • sshd-sftp - содержит серверную подсистему SFTP и клиентский код SFTP.

    • sshd-spring-sftp - содержит адаптер SFTP, совместимый с Spring Integration
  • sshd-scp - содержит серверный обработчик команды SCP и клиентский код SCP.

  • sshd-ldap - содержит серверные аутентификаторы по паролю и открытому ключу, использующие LDAP-сервер.

  • sshd-git - содержит замены для фабрики SSH-сессий JGit.

  • sshd-osgi - содержит артефакт, объединяющий sshd-common и sshd-core, чтобы его можно было развертывать в средах OSGi.

  • sshd-putty - содержит код для разбора файлов ключей PUTTY.

  • sshd-openpgp - содержит код для разбора файлов ключей OpenPGP (с некоторыми ограничениями - см. соответствующий раздел)

  • sshd-cli - содержит простые шаблоны для командной строки клиента/сервера - используется для обеспечения внешнего вида и поведения, аналогичного командам Linux ssh/sshd.

  • sshd-contrib - экспериментальный код, который в настоящее время находится на рассмотрении и может попасть в один из других артефактов (или стать совершенно новым артефактом - например, sshd-putty развился именно так).

Необязательные зависимости

Краткий справочник

Сборка кода

С включением тестов

root@kitploit:~
mvn clean install

Без тестов

root@kitploit:~
mvn -Pquick clean install

Настройка SSH-клиента за 5 минут

Встраивание экземпляра SSHD-сервера за 5 минут

Разбивка функциональности SSH

Настройка поставщиков безопасности

Инфраструктура команд

SCP

SFTP

Проброс портов

Внутренние вспомогательные классы

Обработчики и слушатели событий

Клиенты командной строки

Поддержка GIT

Поддержка разбора конфигурационных файлов и файлов данных

Модули расширений

HOWTO(s)

Техническая документация

Обмен ключами SSH

Проброс TCP/IP портов

Глобальные запросы

Скачать инструмент
check-file-name
DRAFT 09 - раздел 9.1.2
  • copy-file, copy-data - DRAFT 00 - разделы 6, 7
  • space-available - DRAFT 09 - раздел 9.2
  • filename-charset, filename-translation-control - DRAFT 13 - раздел 6 - только клиентская сторона
  • Несколько расширений SFTP от OpenSSH