Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hassh — Obtén la huella digital de clientes y servidores SSH. | Kitploit
Herramientas/GitHubGitHub/corelight/hassh
Gestión de Indicadores de Compromiso (IOC)ReconocimientoAnálisis ForenseSeguridad de RedesInteligencia de AmenazasDetección de IntrusionesDetección de Anomalías
GitHubcorelight/hassh

hassh

Obtén la huella digital de clientes y servidores SSH.

Ver Repositorio
12hace 2 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

"HASSH": un Método de Perfilado para Clientes y Servidores SSH.

NOTA: Este repositorio de Corelight fue creado para que pueda ser mantenido activamente, a petición de Salesforce, cuyo repositorio original no está siendo mantenido.

"HASSH" es un estándar de huellas digitales de red que se puede utilizar para identificar implementaciones SSH específicas de Cliente y Servidor. Las huellas digitales se pueden almacenar, buscar y compartir fácilmente en forma de una huella digital MD5.

License: BSD 3-Clause License

¿Con qué puede ayudar HASSH?

  • Uso en entornos altamente controlados y bien comprendidos, donde cualquier huella digital fuera de un conjunto conocido y bueno sea alertable.
  • Permite detectar, controlar e investigar intentos de fuerza bruta o de relleno de credenciales (Cred Stuffing) con un mayor nivel de granularidad que la dirección IP de origen, que puede verse afectada por NAT o comportamientos similares a los de una botnet. El hassh será una característica de la implementación específica del software Cliente que se esté utilizando, incluso si la IP está NATeada de modo que sea compartida por muchos otros clientes SSH.
  • Detectar la exfiltración encubierta de datos dentro de los componentes de los conjuntos de algoritmos del Cliente. En este caso, un Cliente SSH especialmente codificado puede enviar datos desde un entorno de confianza a otro menos confiable dentro de una serie de paquetes SSH_MSG_KEXINIT. En un escenario similar a la exfiltración más conocida mediante DNS, los datos podrían enviarse como una serie de conexiones intentadas, pero incompletas y no registradas, a un servidor SSH controlado por actores maliciosos que luego pueden registrar, decodificar y reconstituir esos fragmentos de datos a su forma original. Hasta ahora, tales intentos —mucho menos el contenido de los paquetes en texto claro— no se registran ni siquiera con analizadores de paquetes maduros ni en los sistemas finales. La detección de este estilo de exfiltración ahora se puede realizar fácilmente mediante la detección de anomalías o alertando sobre Clientes SSH con múltiples hassh diferentes.
  • Úselo junto con otros indicadores contextuales, por ejemplo, detectar intentos de descubrimiento de red y movimiento lateral mediante hassh inusuales, como los utilizados por Paramiko, Powershell, Ruby, Meterpreter, Empire.
  • Compartir hassh maliciosos como Indicadores de Compromiso.
  • Crear un nivel adicional de control de las aplicaciones Cliente; por ejemplo, se podrían bloquear todos los Clientes que se conecten a un servidor SSH y que estén fuera de un conjunto conocido y aprobado de valores hassh.
  • Contribuir al No Repudio en un contexto forense, a un nivel de abstracción mayor que el de la IP de origen, que puede verse afectada por NAT o cuando se utilizan múltiples IP de origen.
  • Detectar aplicaciones engañosas. Por ejemplo, un valor hasshServer que se sabe pertenece a la instalación del servidor honeypot SSH Cowry/Kippo, que pretende ser un servidor OpenSSH común en la cadena de Servidor.
  • Detectar dispositivos con un hassh que se sabe pertenece a sistemas embebidos IoT. Los ejemplos pueden incluir cámaras, micrófonos, keyloggers, intervenciones telefónicas (wiretaps) que podrían ocultarse fácilmente de la vista y comunicarse silenciosamente a través de canales cifrados de vuelta a un servidor de control.

¿Cómo funciona HASSH?

"hassh" y "hasshServer" son hashes MD5 construidos a partir de un conjunto específico de algoritmos soportados por diversas aplicaciones de Cliente y Servidor SSH. Estos algoritmos se intercambian después del handshake inicial de tres vías TCP como paquetes en texto claro conocidos como mensajes "SSH_MSG_KEXINIT", y son una parte integral del establecimiento del canal SSH cifrado final.
La existencia y el orden de estos algoritmos pueden ser lo suficientemente únicos como para utilizarse como una huella digital que ayude a identificar la aplicación de Cliente y Servidor subyacente o la implementación única, independientemente de identificadores ostensibles de nivel superior, como las cadenas "Client" o "Server".

Ejemplo 1: Huella digital del Cliente: el "hassh"

Para el cliente SFTP "Cyberduck" SSH-2.0-Cyberduck/6.7.1.28683 (Mac OS X/10.13.6) (x86_64) , el conjunto de algoritmos soportados es el siguiente:

Concatenar estos algoritmos con un delimitador de ";" da como resultado los hasshAlgorithms, que son útiles para un análisis detallado.
[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

Finalmente, el hassh es simplemente el MD5 de hasshAlgorithms, y se utiliza para almacenamiento, búsqueda y uso compartido. A continuación se muestran algunos ejemplos:

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

Ejemplo 2: Huella digital del Servidor: el "hasshServer"

Para un servidor SSH estándar SSH-2.0-OpenSSH_5.3, el conjunto de algoritmos soportados es el siguiente:

Concatenar estos algoritmos con un delimitador de ";" da como resultado los hasshServerAlgorithms, que son útiles para un análisis detallado.
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]

Finalmente, el hasshServer es simplemente el MD5 de hasshServerAlgorithms; a continuación se muestran algunos ejemplos:

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

Opciones

De forma predeterminada, se registran la cadena de algoritmos sin procesar y el algoritmo de clave, y se pueden controlar estableciendo estas variables booleanas en el script.

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

Referencias:

  • Blog de ingeniería de Salesforce
  • BSides 2019 - HASSH - un Método de Perfilado para Clientes y Servidores SSH
  • RFC4253 El Protocolo de la Capa de Transporte de Secure Shell (SSH)

Créditos:

hassh y hasshServer fueron concebidos y desarrollados por Ben Reardon dentro del Detection Cloud Team de Salesforce, con inspiración y contribuciones de Adel Karimi (@0x4d31) y el equipo de JA3.

Descargar herramienta
FunciónAlgoritmos vistos en los paquetes SSH_MSG_KEXINIT
Métodos de intercambio de claves[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]
Cifradoaes128-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
Autenticación de mensajeshmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-sha2-256,hmac-sha2-512
Compresión[email protected],zlib,none
FunciónAlgoritmos vistos en los paquetes SSH_MSG_KEXINIT
Métodos de intercambio de clavesdiffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
Cifradoaes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
Autenticación de mensajeshmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
Compresiónnone,[email protected]