
HASSH ist ein Netzwerk-Fingerprinting-Standard, mit dem sich spezifische SSH-Client- und SSH-Server-Implementierungen identifizieren lassen. Die Fingerprints können in Form eines kleinen MD5-Fingerprints einfach gespeichert, durchsucht und geteilt werden.
„HASSH“ ist ein Netzwerk-Fingerprinting-Standard, der zur Identifizierung spezifischer SSH-Client- und Server-Implementierungen verwendet werden kann. Die Fingerabdrücke können leicht in Form eines MD5-Fingerprints gespeichert, durchsucht und geteilt werden.
HASSH wurde 2018 bei Salesforce entwickelt. Das Projekt wird jedoch nicht mehr aktiv von Salesforce gepflegt. Der ursprüngliche Entwickler Ben Reardon verwaltet den aktiven Fork bei Corelight.
„hassh“ und „hasshServer“ sind MD5-Hashes, die aus einem bestimmten Satz von Algorithmen konstruiert werden, die von verschiedenen SSH-Client- und Serveranwendungen unterstützt werden. Diese Algorithmen werden nach dem anfänglichen TCP-Drei-Wege-Handshake als Klartextpakete, sogenannte „SSH_MSG_KEXINIT“-Nachrichten, ausgetauscht und sind ein wesentlicher Bestandteil des Aufbaus des endgültig verschlüsselten SSH-Kanals. Die Existenz und Reihenfolge dieser Algorithmen ist einzigartig genug, um als Fingerabdruck zur Identifizierung der zugrunde liegenden Client- und Serveranwendung oder der spezifischen Implementierung verwendet werden zu können, unabhängig von übergeordneten offensichtlichen Identifikatoren wie „Client“- oder „Server“-Strings.
Für den SFTP-Client „Cyberduck“ (genauer: SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64)) ist der Satz unterstützter Algorithmen wie folgt:
Das Zusammenfügen dieser Algorithmen mit einem Trennzeichen „;“ ergibt die hasshAlgorithms, die für detaillierte Analysen nützlich ist.
[email protected],diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,[email protected],diffie-hellman-group15-sha256,[email protected],[email protected],diffie-hellman-group16-sha256,[email protected],[email protected],[email protected];aes128-cbc,aes128-ctr,aes192-cbc,aes192-ctr,aes256-cbc,aes256-ctr,blowfish-cbc,blowfish-ctr,cast128-cbc,cast128-ctr,idea-cbc,idea-ctr,serpent128-cbc,serpent128-ctr,serpent192-cbc,serpent192-ctr,serpent256-cbc,serpent256-ctr,3des-cbc,3des-ctr,twofish128-cbc,twofish128-ctr,twofish192-cbc,twofish192-ctr,twofish256-cbc,twofish256-ctr,twofish-cbc,arcfour,arcfour128,arcfour256;hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512;[email protected],zlib,none
Schließlich ist der hassh einfach der MD5-Wert von hasshAlgorithms und wird zum Speichern, Durchsuchen und Teilen verwendet. Einige Beispiele folgen:
de30354b88bae4c2810426614e1b6976 Powershell Renci.SshNet.SshClient.0.0.1 (verwendet von Empire-Exploit-Modulen)
fafc45381bfde997b6305c4e1600f1bf Ruby/Net::SSH_5.0.2 x86_64-linux (verwendet von Metasploit-Exploit-Modulen)
b5752e36ba6c5979a575e43178908adf Python Paramiko_2.4.1 (verwendet von Metasploit-Exploit-Modulen)
16f898dd8ed8279e1055350b4e20666c Dropbear_2012.55 (verwendet in IOT-Eingebetteten Systemen)
8a8ae540028bf433cd68356c1b9e8d5b CyberDuck Version 6.7.1 (28683)
06046964c022c6407d15a27b12a6a4fb OpenSSH_7.7p1 Ubuntu-4
Für einen Standard-SSH-2.0-OpenSSH_5.3-SSH-Server ist der Satz unterstützter Algorithmen wie folgt:
Das Zusammenfügen dieser Algorithmen mit einem Trennzeichen „;“ ergibt die hasshServerAlgorithms, die für detaillierte Analysen nützlich ist.
diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1;aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected];hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96;none,[email protected]
Schließlich ist der hasshServer einfach der MD5-Wert von hasshServerAlgorithms, einige Beispiele folgen:
c1c596caaeb93c566b8ecf3cae9b5a9e SSH-2.0-dropbear_2016.74
d93f46d063c4382b6232a4d77db532b2 SSH-2.0-dropbear_2016.72
2dd9a9b3dbebfaeec8b8aabd689e75d2 SSH-2.0-AWSCodeCommit
696e7f84ac571fdf8fa5073e64ee2dc8 SSH-2.0-FTP
hassh und hasshServer wurden konzipiert und entwickelt von Ben Reardon (@benreardon) im Detection Cloud Team bei Salesforce, mit Inspiration und Beiträgen von Adel Karimi (@0x4d31) und der JA3-Crew: John B. Althouse, Jeff Atkinson und Josh Atkins.
| Funktion | In SSH_MSG_KEXINIT-Paketen gesehene Algorithmen |
|---|
| Schlüsselaustauschverfahren | [email protected],diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,[email protected],diffie-hellman-group15-sha256,[email protected],[email protected],diffie-hellman-group16-sha256,[email protected],[email protected],[email protected] |
| Verschlüsselung | aes128-cbc,aes128-ctr,aes192-cbc,aes192-ctr,aes256-cbc,aes256-ctr,blowfish-cbc,blowfish-ctr,cast128-cbc,cast128-ctr,idea-cbc,idea-ctr,serpent128-cbc,serpent128-ctr,serpent192-cbc,serpent192-ctr,serpent256-cbc,serpent256-ctr,3des-cbc,3des-ctr,twofish128-cbc,twofish128-ctr,twofish192-cbc,twofish192-ctr,twofish256-cbc,twofish256-ctr,twofish-cbc,arcfour,arcfour128,arcfour256 |
| Nachrichtenauthentifizierung | hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512 |
| Komprimierung | [email protected],zlib,none |
| Funktion | In SSH_MSG_KEXINIT-Paketen gesehene Algorithmen |
|---|
| Schlüsselaustauschverfahren | diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 |
| Verschlüsselung | aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] |
| Nachrichtenauthentifizierung | hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 |
| Komprimierung | none,[email protected] |