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 — HASSH is a network fingerprinting standard which can be used to identify specific Client and Server SSH implementations. The fingerprints can be easily stored, searched and shared in the form of a small MD5 fingerprint. | Kitploit
Outils/GitHubGitHub/salesforce/hassh
Indicator of Compromise (IOC) ManagementIoT SecurityForensicsNetwork SecurityThreat IntelligenceIntrusion DetectionIncident ResponseAnomaly DetectionArchived
GitHubsalesforce/hassh

hassh

HASSH is a network fingerprinting standard which can be used to identify specific Client and Server SSH implementations. The fingerprints can be easily stored, searched and shared in the form of a small MD5 fingerprint.

55477il y a 1 anVérifié par Kitploit

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
Voir le dépôt

« HASSH » — une méthode de profilage pour clients et serveurs SSH.

« HASSH » est une norme d’empreinte réseau qui permet d’identifier des implémentations SSH spécifiques, côté client et côté serveur. Les empreintes peuvent être facilement stockées, recherchées et partagées sous la forme d’une empreinte MD5.

HASSH a été inventé chez Salesforce en 2018. Cependant, le projet n’est plus activement maintenu par Salesforce. Son créateur original, Ben Reardon, maintient le fork actif chez Corelight.

License: BSD 3-Clause License

À quoi HASSH peut-il servir ?

  • Être utilisé dans des environnements hautement contrôlés et bien compris, où toute empreinte en dehors d’un ensemble connu de valeurs sûres est alarmante.
  • Permettre de détecter, contrôler et enquêter sur les tentatives de force brute ou de credential 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 spécifique du client utilisé, même si l’IP est NATée et 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 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 via DNS, des données pourraient être envoyées sous forme de tentatives de connexion avortées et non journalisées vers un serveur SSH contrôlé par des acteurs malveillants, qui peuvent ensuite enregistrer, décoder et reconstituer ces données dans leur forme originale. Jusqu’à présent, de telles tentatives — encore moins le contenu des paquets en clair — ne sont pas journalisées, même par des analyseurs de paquets matures ou sur les systèmes d’extrémité. La détection de ce type d’exfiltration peut désormais être effectuée facilement en utilisant la détection d’anomalies ou en alertant sur les clients SSH présentant plusieurs hassh différents.
  • Être utilisé conjointement avec d’autres indicateurs contextuels, par exemple pour détecter la découverte réseau et les mouvements latéraux via des hassh inhabituels tels que ceux utilisés par Paramiko, Powershell, Ruby, Meterpreter, Empire.
  • Partager des hassh malveillants comme indicateurs de compromission.
  • Créer un niveau supplémentaire de contrôle des applications clientes, par exemple en bloquant tous les clients qui se connectent à un serveur SSH en dehors 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 l’adresse IP source, qui peut être affectée par le NAT ou lorsque plusieurs IP sources sont utilisées.
  • Détecter les applications trompeuses. Par exemple, une valeur hasshServer connue pour appartenir à l’installation du pot de miel Cowrie/Kippo, qui se fait passer pour un serveur OpenSSH classique dans la chaîne de caractères du serveur.
  • Détecter des appareils ayant un hassh connu pour appartenir à des systèmes embarqués IoT. Des exemples peuvent inclure des caméras, micros, enregistreurs de frappe, écoutes téléphoniques qui pourraient facilement être dissimulés et communiquer silencieusement via 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 client et serveur SSH. Ces algorithmes sont échangés après la poignée de main TCP initiale en trois étapes 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 sont suffisamment uniques pour pouvoir être utilisés comme une empreinte afin d’identifier l’application cliente ou serveur sous-jacente ou son implémentation spécifique, indépendamment des identifiants apparents de plus haut niveau tels que les chaînes « Client » ou « Serveur ».

Exemple 1 : Empreinte client — le « hassh »

Pour le client SFTP « Cyberduck » (plus précisément 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, et est utilisé pour le stockage, la recherche et le partage. Voici quelques exemples :

de30354b88bae4c2810426614e1b6976 Powershell Renci.SshNet.SshClient.0.0.1 (utilisé par les modules d’exploitation Empire) fafc45381bfde997b6305c4e1600f1bf Ruby/Net::SSH_5.0.2 x86_64-linux (utilisé par les modules d’exploitation Metasploit) b5752e36ba6c5979a575e43178908adf Python Paramiko_2.4.1 (utilisé par les modules d’exploitation Metasploit) 16f898dd8ed8279e1055350b4e20666c Dropbear_2012.55 (utilisé dans les systèmes embarqués IoT) 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 : c1c596caaeb93c566b8ecf3cae9b5a9e SSH-2.0-dropbear_2016.74 d93f46d063c4382b6232a4d77db532b2 SSH-2.0-dropbear_2016.72 2dd9a9b3dbebfaeec8b8aabd689e75d2 SSH-2.0-AWSCodeCommit 696e7f84ac571fdf8fa5073e64ee2dc8 SSH-2.0-FTP

Références :

  • RFC4253 The Secure Shell (SSH) Transport Layer Protocol
  • Blog Salesforce Engineering

Crédits :

hassh et hasshServer ont été conçus et développés par Ben Reardon (@benreardon) au sein de l’équipe Detection Cloud chez Salesforce, avec l’inspiration et les contributions d’Adel Karimi (@0x4d31) et de l’équipe JA3 : John B. Althouse, Jeff Atkinson et Josh Atkins.

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]