
Prendre l’empreinte des clients et serveurs SSH.
NOTE : Ce dépôt Corelight a été créé afin qu'il puisse être activement maintenu, à la demande de Salesforce, dont le dépôt d'origine n'est plus maintenu.
"HASSH" est un standard d'empreinte réseau qui peut être utilisé pour identifier des implémentations SSH spécifiques de clients et de serveurs. Les empreintes peuvent être facilement stockées, recherchées et partagées sous la forme d'une empreinte MD5.
"hassh" et "hasshServer" sont des hachages MD5 construits à partir d'un ensemble spécifique d'algorithmes pris en charge par diverses applications clientes et serveurs SSH. Ces algorithmes sont échangés après la poignée de main TCP à trois voies initiale sous forme de paquets en clair appelés messages « SSH_MSG_KEXINIT », et font partie intégrante de la mise en place du canal SSH chiffré final. L'existence et l'ordre de ces algorithmes peuvent être suffisamment uniques pour être utilisés comme empreinte afin d'identifier l'application cliente ou serveur sous-jacente, ou une implémentation unique, indépendamment d'identifiants apparents de plus haut niveau tels que les chaînes « Client » ou « Server ».
Pour le client SFTP « Cyberduck » SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64) , l'ensemble des algorithmes pris en charge est le suivant :
La concaténation de ces algorithmes avec un délimiteur « ; » donne le hasshAlgorithms, utile pour une analyse détaillée.
[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
Enfin, le hassh est simplement le MD5 de hasshAlgorithms, utilisé pour le stockage, la recherche et le partage. Voici quelques exemples :
de30354b88bae4c2810426614e1b6976 Powershell Renci.SshNet.SshClient.0.0.1 (used by Empire exploit modules)
fafc45381bfde997b6305c4e1600f1bf Ruby/Net::SSH_5.0.2 x86_64-linux (used by Metasploit exploit modules)
b5752e36ba6c5979a575e43178908adf Python Paramiko_2.4.1 (used by Metasploit exploit modules)
16f898dd8ed8279e1055350b4e20666c Dropbear_2012.55 (used in IOT embedded systems)
8a8ae540028bf433cd68356c1b9e8d5b CyberDuck Version 6.7.1 (28683)
06046964c022c6407d15a27b12a6a4fb OpenSSH_7.7p1 Ubuntu-4
Pour un serveur SSH standard SSH-2.0-OpenSSH_5.3, l'ensemble des algorithmes pris en charge est le suivant :
La concaténation de ces algorithmes avec un délimiteur « ; » donne le hasshServerAlgorithms, utile pour une analyse détaillée.
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]
Enfin, le hasshServer est simplement le MD5 de hasshServerAlgorithms ; voici quelques exemples :
c1c596caaeb93c566b8ecf3cae9b5a9e SSH-2.0-dropbear_2016.74
d93f46d063c4382b6232a4d77db532b2 SSH-2.0-dropbear_2016.72
2dd9a9b3dbebfaeec8b8aabd689e75d2 SSH-2.0-AWSCodeCommit
696e7f84ac571fdf8fa5073e64ee2dc8 SSH-2.0-FTP
Par défaut, la chaîne d'algorithmes brute et l'algorithme de clé sont journalisés ; ils peuvent être contrôlés en définissant ces variables booléennes dans le script.
option log_raw_hasshAlgorithms = T;
option log_key_algorithm = T;
hassh et hasshServer ont été conçus et développés par Ben Reardon au sein de l'équipe Detection Cloud de Salesforce, avec l'inspiration et les contributions d'Adel Karimi (@0x4d31) et de l'équipe JA3.
| Fonction | Algorithmes observés dans les paquets SSH_MSG_KEXINIT |
|---|
| Méthodes d'échange de clés | [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] |
| Chiffrement | 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 |
| Authentification de message | hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512 |
| Compression | [email protected],zlib,none |
| Fonction | Algorithmes observés dans les paquets SSH_MSG_KEXINIT |
|---|
| Méthodes d'échange de clés | diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 |
| Chiffrement | aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] |
| Authentification de message | hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 |
| Compression | none,[email protected] |