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
Herramientas/GitHubGitHub/salesforce/jarm
ReconocimientoRecopilación de InformaciónSeguridad de RedesInteligencia de Amenazas
GitHubsalesforce/jarm

jarm

Herramienta activa de huellas digitales TLS que envía paquetes Client Hello diseñados para generar hashes JARM únicos con el fin de identificar configuraciones de servidores, agrupar infraestructura y detectar servidores maliciosos.

Ver Repositorio
1.3k151hace 6 díasRevisado por Kitploit

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
jarm — Herramienta activa de huellas digitales TLS que envía paquetes Client Hello diseñados para generar hashes JARM únicos con el fin de identificar configuraciones de servidores, agrupar infraestructura y detectar servidores maliciosos. | Kitploit

JARM

Por favor, lee la publicación inicial del blog sobre JARM para más información.

JARM es una herramienta activa de huellas digitales de servidores de seguridad de la capa de transporte (TLS).

Las huellas digitales de JARM se pueden usar para:

  • Verificar rápidamente que todos los servidores de un grupo tengan la misma configuración TLS.
  • Agrupar servidores dispares en internet por configuración, identificando que un servidor puede pertenecer a Google vs. Salesforce vs. Apple, por ejemplo.
  • Identificar aplicaciones o infraestructura predeterminadas.
  • Identificar infraestructura de comando y control de malware y otros servidores maliciosos en Internet.

El soporte de JARM ha sido o está siendo añadido a: SecurityTrails Shodan BinaryEdge RiskIQ Palo Alto Networks Censys 360

Ejecutar JARM

python3 jarm.py [-h] [-i INPUT] [-p PORT] [-v] [-V] [-o OUTPUT] [-j] [-P PROXY] [domain/IP] Ejemplo: % python3 jarm.py www.salesforce.com Domain: www.salesforce.com Resolved IP: 23.50.225.123 JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5

Para usarlo con Python 2 necesitarás el módulo ipaddress:

pip install -r requirements.txt

Ejecutar JARM por lotes en una lista grande rápidamente

./jarm.sh <list> <output_file> Ejemplo: % ./jarm.sh alexa500.txt jarm_alexa_500.csv

Ejemplo de salida

Cómo funciona JARM

Antes de aprender cómo funciona JARM, es importante entender cómo funciona TLS. TLS y su predecesor, SSL, se utilizan para cifrar la comunicación tanto en aplicaciones comunes como los navegadores de Internet, para mantener tus datos seguros, como en malware, para que pueda esconderse entre el ruido. Para iniciar una sesión TLS, un cliente enviará un mensaje TLS Client Hello después del handshake TCP de 3 vías. Este paquete y la forma en que se genera depende de los paquetes y métodos utilizados al construir la aplicación cliente. El servidor, si acepta conexiones TLS, responderá con un paquete TLS Server Hello.

Los servidores TLS formulan su paquete Server Hello basándose en los detalles recibidos en el paquete TLS Client Hello. La forma en que se formula el Server Hello para un Client Hello dado puede variar según cómo se haya construido la aplicación o el servidor, incluyendo:

  • Sistema operativo
  • Versión del sistema operativo
  • Bibliotecas utilizadas
  • Versiones de esas bibliotecas utilizadas
  • El orden en que se llamaron las bibliotecas
  • Configuración personalizada

Todos estos factores hacen que cada servidor TLS responda de manera única. Las combinaciones de factores hacen que sea improbable que servidores desplegados por diferentes organizaciones tengan la misma respuesta.

JARM funciona enviando activamente 10 paquetes TLS Client Hello a un servidor TLS objetivo y capturando atributos específicos de las respuestas TLS Server Hello. Las respuestas agregadas del servidor TLS luego se hashean de una manera específica para producir la huella digital JARM.

No es la primera vez que trabajamos con huellas digitales TLS. En 2017 desarrollamos JA3/S, un método pasivo de huellas digitales de cliente/servidor TLS que ahora se encuentra en la mayoría de las herramientas de seguridad de redes. Pero mientras que JA3/S es pasivo, identificando clientes y servidores al escuchar el tráfico de red, JARM es un escáner activo de huellas digitales de servidores. Puedes obtener más información sobre la negociación TLS y las huellas digitales pasivas JA3/S aquí.

Los 10 paquetes TLS Client Hello en JARM han sido especialmente diseñados para extraer respuestas únicas de los servidores TLS. JARM envía diferentes versiones TLS, cifrados y extensiones en órdenes variables para recopilar respuestas únicas. ¿El servidor soporta TLS 1.3? ¿Negociará TLS 1.3 con cifrados 1.2? Si ordenamos los cifrados de más débil a más fuerte, ¿cuál elegirá? Estos son los tipos de preguntas inusuales que JARM le hace esencialmente al servidor para obtener las respuestas más únicas. Las 10 respuestas luego se hashean para producir la huella digital JARM.

El hash de la huella digital JARM es un hash difuso híbrido, utiliza la combinación de un algoritmo hash reversible y no reversible para producir una huella digital de 62 caracteres. Los primeros 30 caracteres están compuestos por el cifrado y la versión TLS elegidos por el servidor para cada uno de los 10 client hello enviados. Un '000' indica que el servidor se negó a negociar con ese client hello. Los 32 caracteres restantes son un hash SHA256 truncado de las extensiones acumulativas enviadas por el servidor, ignorando los datos del certificado x509. Al comparar huellas digitales JARM, si los primeros 30 caracteres son iguales pero los últimos 32 son diferentes, esto significaría que los servidores tienen configuraciones muy similares, aceptando las mismas versiones y cifrados, aunque no exactamente iguales ya que las extensiones son diferentes.

Después de recibir cada mensaje TLS server hello, JARM cierra la conexión correctamente con un FIN para no dejar los sockets abiertos.

Es importante tener en cuenta que JARM es una función de huella digital de alto rendimiento y no debe considerarse ni confundirse con una función criptográfica segura. Diseñamos la huella digital JARM para que sea consumible por humanos tanto como por máquinas. Esto significa que es lo suficientemente pequeña como para examinarla, compartirla y tuitearla con suficiente espacio para detalles contextuales.

Cómo se puede usar JARM para identificar servidores maliciosos

Los servidores de comando y control (C2) de malware y los servidores maliciosos son configurados por sus creadores como cualquier otro servidor y luego desplegados en su flota. Por lo tanto, tienden a producir huellas digitales JARM únicas. A continuación se muestran ejemplos de malware y herramientas ofensivas comunes y la superposición de JARM con los sitios web Alexa Top 1M (a octubre de 2020):

Con poca o ninguna superposición con los sitios web Alexa Top 1M, debería ser poco probable que un host dentro de una organización se conecte a un servidor con estas huellas digitales JARM.

Equipo JARM

John Althouse - Idea original, concepto y líder del proyecto Andrew Smart - Concepto y pruebas RJ Nunnally - Programación y pruebas Mike Brady - Programación y pruebas

Reescrito en Python para uso operativo por Caleb Yu

Descargar herramienta
DominioJARM
salesforce.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
force.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
google.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
gmail.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
facebook.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
instagram.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
oculus.com29d29d20d29d29d21c41d43d00041d741011a7be03d7498e0df05581db08a9
Servidor malicioso C2Huella digital JARMSuperposición con Alexa Top 1M
Trickbot22b22b09b22b22b22b22b22b22b22b352842cd5d6b0278445702035e06875c0
AsyncRAT1dd40d40d00040d1dc1dd40d1dd40d3df2d6a0c2caaa0dc59908f0d36029430
Metasploit07d14d16d21d21d00042d43d000000aa99ce74e2c6d013c745aa52b5cc042d0
Cobalt Strike07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb10
Merlin C229d21b20d29d29d21c41d21b21b41d494e0df9532e75299f15ba73156cee38303