Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
apache__mina-sshd_CVE-2023-35887_2-9-2 — Reine Java SSH-Client/Server-Bibliothek, die das SSH-2-Protokoll implementiert und mehrere Verschlüsselungsverfahren, Schlüsselaustausche, Authentifizierungsmethoden, SFTP, SCP sowie Portweiterleitung für sicheren Fernzugriff unterstützt. | Kitploit
Tools/GitHubGitHub/shoucheng3/apache__mina-sshd_cve-2023-35887_2-9-2
Verschlüsselungs-/EntschlüsselungstoolsSchwachstellenanalyseNetzwerksicherheitKryptographiePenetrationstestsDienstprogramme & FrameworksAuthentifizierungRemote-Access-Tool

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
shoucheng3/apache__mina-sshd_cve-2023-35887_2-9-2

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

Reine Java SSH-Client/Server-Bibliothek, die das SSH-2-Protokoll implementiert und mehrere Verschlüsselungsverfahren, Schlüsselaustausche, Authentifizierungsmethoden, SFTP, SCP sowie Portweiterleitung für sicheren Fernzugriff unterstützt.

Repository anzeigen
2vor 1 JahrNoch nicht geprüft

Apache MINA SSHD

Apache MINA SSHD

Apache MINA SSHD ist eine zu 100% reine Java-Bibliothek zur Unterstützung der SSH-Protokolle sowohl auf Client- als auch auf Serverseite. Sie ist nicht als Ersatz für den SSH-Client oder SSH-Server von Unix-Betriebssystemen gedacht, sondern bietet Unterstützung für Java-basierte Anwendungen, die SSH benötigen.

Die Bibliothek kann mehrere I/O-Backends nutzen:

  • Der standardmäßige Transport ist integriert und verwendet die AsynchronousSocketChannels von Java.
  • Apache MINA, eine skalierbare und leistungsstarke asynchrone I/O-Bibliothek, kann stattdessen verwendet werden, oder
  • das asynchrone ereignisgesteuerte Netzwerk-Framework Netty wird ebenfalls unterstützt.

Unterstützte Standards

Dokumentation zur Referenzimplementierung

  • RFC 4251 - The Secure Shell (SSH) Protocol Architecture (Architektur des Secure Shell (SSH) Protokolls)
  • RFC 4252 - The Secure Shell (SSH) Authentication Protocol (Authentifizierungsprotokoll für Secure Shell (SSH))
  • RFC 4253 - The Secure Shell (SSH) Transport Layer Protocol (Transportschichtprotokoll für Secure Shell (SSH))
  • RFC 4254 - The Secure Shell (SSH) Connection Protocol (Verbindungsprotokoll für Secure Shell (SSH))
  • RFC 4256 - Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) (Generische Nachrichtenaustausch-Authentifizierung für das Secure Shell Protokoll (SSH))
  • RFC 4335 - The Secure Shell (SSH) Session Channel Break Extension (Erweiterung für Session-Channel-Unterbrechung für Secure Shell (SSH))
  • RFC 4344 - The Secure Shell (SSH) Transport Layer Encryption Modes (Verschlüsselungsmodi der Transportschicht für Secure Shell (SSH))
  • RFC 4345 - Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol (Verbesserte Arcfour-Modi für das Transportschichtprotokoll von Secure Shell (SSH))
  • RFC 4419 - Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol (Diffie-Hellman-Gruppenaustausch für das Secure Shell (SSH) Transportschichtprotokoll)
  • RFC 4716 - The Secure Shell (SSH) Public Key File Format (Format öffentlicher Schlüsseldateien für Secure Shell (SSH))
  • RFC 5208 - Public-Key Cryptography Standards (PKCS) #8 - version 1.2 (Public-Key Cryptography Standards (PKCS) #8 - Version 1.2)
  • RFC 5480 - Elliptic Curve Cryptography Subject Public Key Information (Informationen zu öffentlichen Schlüsseln für Elliptische-Kurven-Kryptografie)
  • RFC 5647 - AES Galois Counter Mode for the Secure Shell Transport Layer Protocol (AES Galois Counter Mode für das Secure Shell Transportschichtprotokoll)
  • RFC 5656 - Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer (Integration von Elliptische-Kurven-Algorithmen in die Secure Shell Transportschicht)
  • RFC 5915 - Elliptic Curve Private Key Structure (Struktur privater Schlüssel für Elliptische Kurven)
  • RFC 6668 - SHA-2 Data Integrity Verification for the Secure Shell (SSH) Transport Layer Protocol (SHA-2-Datenintegritätsprüfung für das Secure Shell (SSH) Transportschichtprotokoll)
  • RFC 8160 - IUTF8 Terminal Mode in Secure Shell (SSH) (IUTF8-Terminalmodus in Secure Shell (SSH))
  • RFC 8268 - More Modular Exponentiation (MODP) Diffie-Hellman (DH) Key Exchange (KEX) Groups for Secure Shell (SSH) (Weitere Modular-Exponentiation (MODP) Diffie-Hellman (DH) Schlüsselaustausch (KEX)-Gruppen für Secure Shell (SSH))
  • RFC 8308 - Extension Negotiation in the Secure Shell (SSH) Protocol (Aushandlung von Erweiterungen im Secure Shell (SSH) Protokoll)
    • Hinweis: - der Code enthält Hooks zur Implementierung des RFC und stellt auch Standard-Client- und Server-Implementierungen für die server-sig-algs-Erweiterungen bereit.
  • RFC 8332 - Use of RSA Keys with SHA-256 and SHA-512 in the Secure Shell (SSH) Protocol (Verwendung von RSA-Schlüsseln mit SHA-256 und SHA-512 im Secure Shell (SSH) Protokoll)
    • Hinweis: - die Serverseite unterstützt diese Signaturen standardmäßig. Die Client-Seite erfordert eine spezifische Initialisierung - siehe Abschnitt 3.3 und auch die oben genannten Hooks für RFC 8308.
  • RFC 8731 - Secure Shell (SSH) Key Exchange Method Using Curve25519 and Curve448 (Schlüsselaustauschmethode für Secure Shell (SSH) mit Curve25519 und Curve448)
  • Key Exchange (KEX) Method Updates and Recommendations for Secure Shell (Aktualisierungen und Empfehlungen für Schlüsselaustausch (KEX)-Methoden für Secure Shell)
  • OpenSSH support for U2F/FIDO security keys (OpenSSH-Unterstützung für U2F/FIDO-Sicherheitsschlüssel)
    • Hinweis: die Serverseite unterstützt diese Schlüssel standardmäßig. Die Client-Seite erfordert eine spezifische Initialisierung.
  • OpenSSH public-key certificate authentication system for use by SSH (OpenSSH Public-Key-Zertifikat-Authentifizierungssystem zur Verwendung durch SSH)
  • SSH-Proxy-Sprünge
  • SFTP Version 3-6 + Erweiterungen
    • supported - DRAFT 05 - section 4.4
    • supported2 - DRAFT 13 section 5.4
    • versions - DRAFT 09 Section 4.6
    • vendor-id - DRAFT 09 - section 4.4
    • acl-supported - DRAFT 11 - section 5.4
    • newline - DRAFT 09 Section 4.3
    • md5-hash, md5-hash-handle - DRAFT 09 - section 9.1.1
    • check-file-handle, -
  • Endless Tarpit - siehe HOWTO(s) Abschnitt.

Implementierte/verfügbare Unterstützung

Authentifizierungsmethoden

  • hostbased, publickey, OpenSSH hostbasiertes Public-Key, keyboard-interactive, password

Chiffren

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

Digests

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

MACs

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

Schlüsselaustausch

  • 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
    • Auf Java-Versionen vor Java 11 ist Bouncy Castle für curve25519-sha256, [email protected] oder curve448-sha512 erforderlich.

Kompressionen

  • none, zlib, [email protected]

Signaturen/Schlüssel

  • ssh-dss, ssh-rsa, rsa-sha2-256, rsa-sha2-512, nistp256, nistp384, nistp521 , ssh-ed25519 (erfordert das optionale Modul eddsa), [email protected], [email protected] , [email protected], [email protected], [email protected] , [email protected], [email protected], [email protected]

Hinweis: Die obige Liste enthält alle im Code unterstützten Sicherheitseinstellungen. In Übereinstimmung mit den neuesten Empfehlungen enthält die Standard-Client-/Server-Konfiguration jedoch nur die Sicherheitseinstellungen, die derzeit als sicher gelten. Benutzer, die die unsicheren Einstellungen einbeziehen möchten, müssen dies explizit tun. Die folgenden Einstellungen wurden als veraltet eingestuft und sind nicht mehr in der Standardkonfiguration enthalten:

  • RFC 8758 - Deprecating RC4 in Secure Shell (SSH) (Veralten von RC4 in Secure Shell (SSH))
  • RFC 8429 - Deprecate Triple-DES (3DES) and RC4 in Kerberos (Veralten von Triple-DES (3DES) und RC4 in Kerberos)
    • Obwohl es sich auf Kerberos bezieht, werden darin auch Schwachstellen von DES erwähnt.
  • OpenSSH-Versionshinweise - normalerweise ein guter Indikator für die tatsächliche Praxis
  • SHA-1-basierte Schlüsselaustausche und Signaturen
  • MD5-basierte und abgeschnittene HMAC-Algorithmen
  • RFC 8270 - Increase the Secure Shell Minimum Recommended Diffie-Hellman Modulus Size to 2048 Bits (Erhöhen der empfohlenen Mindestgröße des Diffie-Hellman-Moduls für Secure Shell auf 2048 Bits) Hinweis: Es ist weiterhin möglich, 1024 zu verwenden, indem der Wert programmatisch oder über eine Systemeigenschaft initialisiert wird - siehe Sicherheitsanbieter-Konfiguration. Der Code enthält weiterhin Moduli für 1024 und wird diese verwenden, wenn der Benutzer den Standard-Mindestwert explizit auf diesen herabsetzt.

Einschränkung: Gemäß RFC 8332 - Abschnitt 3.31

Die Implementierungserfahrung hat gezeigt, dass es Server gibt, die Authentifizierungsstrafen für Clients verhängen, die Public-Key-Algorithmen verwenden, die der SSH-Server nicht unterstützt.

Bei der Authentifizierung mit einem RSA-Schlüssel gegenüber einem Server, der die Erweiterung "server-sig-algs" nicht implementiert, können Clients standardmäßig eine "ssh-rsa"-Signatur verwenden, um Authentifizierungsstrafen zu vermeiden. Wenn die neuen rsa-sha2-* Algorithmen weit genug verbreitet sind, um die Deaktivierung von "ssh-rsa" zu rechtfertigen, können Clients standardmäßig einen der neuen Algorithmen verwenden.

Das bedeutet, dass Benutzer, die auf dieses (und verwandte) Probleme stoßen, die unterstützten Sicherheitseinstellungen explizit ändern müssen, um das Problem zu vermeiden.

Besonderer Hinweis: ssh-rsa wurde als Teil der Standardkonfiguration beibehalten, da es immer noch viele Systeme/Benutzer gibt, die es verwenden. In einer zukünftigen Version wird es jedoch aus dem Standard entfernt. Wir empfehlen daher dringend, so bald wie möglich auf andere Schlüssel (z. B. ECDSA, ED25519) umzusteigen.

Versionshinweise

Fehlermeldungen

Fehlerberichte sowie Verbesserungs- oder Funktionsanfragen können im GitHub Issue Tracker oder im Apache Issue Tracker eingereicht werden.

Sensible Probleme wie Sicherheitslücken müssen über private Kanäle gemeldet werden, nicht über einen der Issue-Tracker.

Kernanforderungen

  • Java 8+ (ab Version 1.3)

  • Slf4j

Der Code benötigt nur das abstrakte Kernmodul slf4j-api. Die tatsächliche Implementierung der Protokollierungs-API kann aus den vielen vorhandenen Adaptern ausgewählt werden.

Grundlegende Artefaktstruktur

  • sshd-common - enthält grundlegende Klassen, die im gesamten Projekt verwendet werden, sowie Code, der keine Client- oder Server-Netzwerkunterstützung benötigt.

  • sshd-core - enthält den grundlegenden SSH-Client-/Server-Code, der Verbindung, Transport, Kanäle, Weiterleitung usw. implementiert.

    • sshd-mina, sshd-netty - Ersatz für den standardmäßigen NIO2-Connector zur Herstellung und Verwaltung von Netzwerkverbindungen unter Verwendung der MINA- bzw. Netty-Bibliotheken.
  • sshd-sftp - enthält das serverseitige SFTP-Subsystem und den SFTP-Client-Code.

    • sshd-spring-sftp - enthält einen Spring Integration-kompatiblen SFTP-Adapter
  • sshd-scp - enthält den serverseitigen SCP-Befehlshandler und den SCP-Client-Code.

  • sshd-ldap - enthält serverseitige Passwort- und Public-Key-Authentifikatoren, die einen LDAP-Server verwenden.

  • sshd-git - enthält Ersatz für die JGit-SSH-Session-Factory.

  • sshd-osgi - enthält ein Artefakt, das sshd-common und sshd-core kombiniert, sodass es in OSGi-Umgebungen bereitgestellt werden kann.

  • sshd-putty - enthält Code zum Parsen von PUTTY-Schlüsseldateien.

  • sshd-openpgp - enthält Code zum Parsen von OpenPGP-Schlüsseldateien (mit einigen Einschränkungen - siehe entsprechender Abschnitt)

  • sshd-cli - enthält einfache Vorlagen für kommandozeilenbasierte Clients/Server - dient dazu, ein ähnliches Erscheinungsbild wie die Linux-Befehle ssh/sshd zu bieten.

  • sshd-contrib - experimenteller Code, der derzeit geprüft wird und möglicherweise in eines der anderen Artefakte aufgenommen wird (oder ein völlig neues Artefakt wird - z. B. ist sshd-putty auf diese Weise entstanden).

Optionale Abhängigkeiten

Kurzreferenz

Erstellen des Codes

Einschließlich Tests:

root@kitploit:~
mvn clean install

Ohne Tests:

root@kitploit:~
mvn -Pquick clean install

Einrichten eines SSH-Clients in 5 Minuten

Einbetten einer SSHD-Serverinstanz in 5 Minuten

Aufschlüsselung der SSH-Funktionalität

Konfiguration der Sicherheitsanbieter

Befehlsinfrastruktur

SCP

SFTP

Portweiterleitung

Interne Unterstützungsklassen

Ereignis-Listener und -Handler

Kommandozeilen-Clients

GIT-Unterstützung

Parsen von Konfigurations-/Datendateien

Erweiterungsmodule

HOWTO(s)

Technische Dokumentation

SSH-Schlüsselaustausch

TCP/IP-Portweiterleitung

Globale Anfragen

Tool herunterladen
check-file-name
DRAFT 09 - section 9.1.2
  • copy-file, copy-data - DRAFT 00 - sections 6, 7
  • space-available - DRAFT 09 - section 9.2
  • filename-charset, filename-translation-control - DRAFT 13 - section 6 - nur Client-Seite
  • Mehrere OpenSSH SFTP-Erweiterungen