
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:
| 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 |
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: