loader

Angriffe auf SSHv2

Angriffe auf SSHv2

Die Ausbesserung der Designfehler von SSHv1 auf SSHv2 bedeutet nicht, dass das Protokol sicher implementiert wurde. Viele Implementierungen erlauben eine SSHv1/SSHv2 Kompatibilität, um flexibler zu sein und dies führt zu gewissen Schwächen.

Banner Hack:

Das SSH Protokoll sieht vor, dass sowohl Client als auch Server einen sogenannten „banner“ austauschen mit den Informationen der SSH Version, bevor der Schlüsselaustausch durchgeführt wird. Solch ein Banner sieht zum Beispiel folgendermaßen aus:

SSH-1.99-OpenSSH_2.2.0p1

SSH-1.99 bedeutet, dass der Client sowohl mittels SSHv1 als auch mittels SSHv2 mit dem Server kommunizieren kann. Abhängig von der Client Konfiguration bevorzugt er entweder Version 1 oder Version 2. Daraufhin kann der Angreifer als Antwort auf diese Protokollanfrage jeweils nur die nicht bevorzugte Protokollversion anbieten. Wenn der Client Version 1 bevorzugt sieht das zum Beispiel so aus:

SSH-2.00-TESO-SSH

Da Der Client normalerweise aber nur die Server – Authentifikation der anderen Protokollversion kennt, kommt statt einer Angriffswarnung nur eine Standardmeldung zum Akzeptieren des angeblich unbekannten RSA Schlüssels.

Enabling compatibility mode for protocol 2.0
The authenticity of host 'klein-lukas (192.168.0.1)' can't be established.
DSA key fingerprint is ab:8a:18:15:67:04:18:34:ec:c9:ee:9b:89:b0:da:e6.
Are you sure you want to continue connecting (yes/no)?

Nun ist es viel einfach für den User „yes“ einzugeben. Nach der „yes“ – Eingabe kann der SSH Server des Angreifers den Benutzernamen und das Passwort erfassen und leitet die SSH – Verbindung zum eigentlichen Server weiter, damit der Benutzer nichts von dem Angriff mitbekommt.
Sobald der Client nur ein Protokoll (im besten Fall SSHv2) unterstützt, kann dieser Angriff nicht durchgeführt werden. Denn sobald der Trick mit dem „Banner“ nicht durchgeführt werden kann, erhält der Benutzer eine, aus der Sicht des Angreifers, viel problematischere Warnung.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA1 host key has just been changed.
The fingerprint for the RSA1 key sent by the remote host is
f3:cd:d9:fa:c4:c8:b2:3b:68:c5:38:4e:d4:b1:42:4f.
Please contact your system administrator.

Bei dem oben erklärten Angriff, wo die Versionskompatibilität des SSH Protokolls ausgenutzt wird kommt man als Angreifer relativ leicht ans Ziel. Jedoch wäre ein weiterer Angriff auf SSHv2, wo Client und Server nur eine Version unterstützen aus der Sicht des Angreifers wünschenswert.

Key Hack:

SSHv2 verwendet den Host – Key nicht zum Verschlüsseln, so wie bei Version 1, sondern SSHv2 verwendet den Host – Key zum Prüfen ob die ausgetauschten Pakete manipuliert wurden. Dies macht es, indem es den „Message Authentication Code – MAC“ des Servers und den Hash des Clients vergleicht. Der „MAC“ wird erstellt, indem der Server einen Hash aus den ausgetauschten Paketen erstellt und signiert diesen mit dem privaten Schlüssel des Verschlüsselungsalgorithmus. SSHv2 ist flexibel mit der Auswahl des Algorithmus und die beiden Kommunikationspartner machen sich den zu Verwendenden Algorithmus aus. Das sieht Beispielsweise so aus:

Lukas@lukasPC:~> telnet 192.168.0.1 22
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
SSH-1.99-OpenSSH_2.2.0p1
SSH-2.0-client
`$es??%9?2?4D=?)??ydiffie-hellman-group1-sha1ssh-dss...

Hierbei ist das “ssh-dss” am Schluss sehr essentiell, da dies das bevorzugte Protokoll ist. Daraufhin sendet der Angreifer sein bevorzugtes Protokoll, und zwar immer das jeweils andere, in diesem Fall RSA. Nun erscheint wieder eine Standardmeldung zum Akzeptieren des unbekannten RSA Schlüssels (da der Client den RSA Schlüssel nicht kennt) und keine Warnung eines Angriffes.

Padding-/Timing – Attack:

Es gibt noch zwei weitere Schwachstellen im SSH Protokoll. Zum ersten werden die zu sendenden Pakete nur bis zu einer Größe von acht Byte mit Zufallsdaten aufgestockt. Dies ermöglicht es die ungefähre Größe der eigentlichen Daten zu ermitteln. Solch ein Angriff wird auch Padding – Attack bezeichnet. Zum zweiten bietet das SSH Protokoll den sogenannten „interactive mode“ als Übertragungsmodus an und dabei wird jeder einzelne Tastendruck sofort verschlüsselt und gesendet. Dabei kann man wiederum die Zeiträume zwischen zwei Tasteninteraktionen des Benutzers ermitteln, dies ist bekannt als Timing – Attack. Diese beiden Schwächen können ausgenutzt werden, sodass gezielte Pakete mit sensitiven Daten (z.B. Benutzername und Passwort) aus dem Strom der gesendeten Informationen herausgefiltert werden und durch Analyse das Passwort entschlüsselt werden kann.

Nähere Informationen: https://freeworld.thc.org/papers/ffp.html

Jetzt mitreden

Die E-Mail Adresse wird nicht veröffentlicht.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Loading...

Name*

E-Mail*

Betreff

Zeichenfolge bitte eingeben captcha