Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hassh — Prendre l’empreinte des clients et serveurs SSH. | Kitploit
Outils/GitHubGitHub/corelight/hassh
Gestion des Indicateurs de Compromission (IOC)ReconnaissanceAnalyse ForensiqueSécurité RéseauRenseignement sur les MenacesDétection d'IntrusionDétection d'Anomalies
GitHubcorelight/hassh

hassh

Prendre l’empreinte des clients et serveurs SSH.

Voir le dépôt
126il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

"HASSH" - une méthode de profilage 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.

License: BSD 3-Clause License

À quoi HASSH peut-il servir :

  • Utilisation dans des environnements hautement contrôlés et bien maîtrisés, où toute empreinte en dehors d'un ensemble connu et approuvé est signalable.
  • Il est possible de détecter, de contrôler et d'investiguer les tentatives de mots de passe par force brute ou par Cred Stuffing avec un niveau de granularité plus fin que l'adresse IP source - qui peut être affectée par le NAT ou un comportement de type botnet. Le hassh sera une caractéristique de l'implémentation logicielle du client spécifique utilisé, même si l'IP est soumise à du NAT et donc partagée par de nombreux autres clients SSH.
  • Détecter l'exfiltration furtive de données au sein des composants des ensembles d'algorithmes du client. Dans ce cas, un client SSH spécialement codé peut envoyer des données vers l'extérieur, d'un environnement de confiance vers un environnement moins fiable, dans une série de paquets SSH_MSG_KEXINIT. Dans un scénario similaire à l'exfiltration plus connue via DNS, les données pourraient être envoyées sous la forme d'une série de connexions tentées, mais incomplètes et non journalisées, vers un serveur SSH contrôlé par des acteurs malveillants qui peuvent ensuite enregistrer, décoder et reconstituer ces morceaux de données dans leur forme d'origine. Jusqu'à présent, de telles tentatives - et encore moins le contenu des paquets en clair - n'étaient pas journalisées, même par des analyseurs de paquets matures ou sur les systèmes d'extrémité. La détection de ce style d'exfiltration peut désormais être effectuée facilement en utilisant la détection d'anomalies ou en déclenchant des alertes sur les clients SSH présentant plusieurs hassh différents
  • Utilisation en conjonction avec d'autres indicateurs contextuels, par exemple pour détecter les tentatives de découverte du réseau et de mouvements latéraux via des hassh inhabituels, comme ceux utilisés par Paramiko, Powershell, Ruby, Meterpreter, Empire.
  • Partager les hassh malveillants comme indicateurs de compromission.
  • Créer un niveau supplémentaire de contrôle des applications clientes, par exemple en bloquant la connexion à un serveur SSH pour tous les clients qui ne font pas partie d'un ensemble connu et approuvé de valeurs hassh.
  • Contribuer à la non-répudiation dans un contexte forensique - à un niveau d'abstraction plus élevé que la source IP - qui peut être affectée par le NAT, ou lorsque plusieurs sources IP sont utilisées.
  • Détecter les applications trompeuses. Par exemple, une valeur hasshServer connue pour appartenir à l'installation du serveur honeypot SSH Cowry/Kippo, qui prétend être un serveur OpenSSH courant dans la chaîne d'identification du serveur.
  • Détecter les appareils dont le hassh est connu pour appartenir à des systèmes embarqués IoT. Il peut s'agir, par exemple, de caméras, de micros, de keyloggers, d'écoutes téléphoniques qui pourraient facilement être dissimulés et communiquer discrètement sur des canaux chiffrés vers un serveur de contrôle.

Comment fonctionne HASSH :

"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 ».

Exemple 1 : Empreinte client - le "hassh"

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 :

root@kitploit:~
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

Exemple 2 : Empreinte serveur - le "hasshServer"

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 :

root@kitploit:~
c1c596caaeb93c566b8ecf3cae9b5a9e  SSH-2.0-dropbear_2016.74	  
d93f46d063c4382b6232a4d77db532b2  SSH-2.0-dropbear_2016.72	  
2dd9a9b3dbebfaeec8b8aabd689e75d2  SSH-2.0-AWSCodeCommit  
696e7f84ac571fdf8fa5073e64ee2dc8  SSH-2.0-FTP

Options

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.

root@kitploit:~
option log_raw_hasshAlgorithms = T;
option log_key_algorithm = T;

Références :

  • Blog de Salesforce Engineering
  • BSides 2019 - HASSH - une méthode de profilage des clients et serveurs SSH
  • RFC4253 Le protocole de couche transport Secure Shell (SSH)

Crédits :

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.

Télécharger l’outil
FonctionAlgorithmes 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]
Chiffrementaes128-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 messagehmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512
Compression[email protected],zlib,none
FonctionAlgorithmes observés dans les paquets SSH_MSG_KEXINIT
Méthodes d'échange de clésdiffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
Chiffrementaes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
Authentification de messagehmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
Compressionnone,[email protected]