Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/salesforce/jarm
AufklärungInformationsbeschaffungNetzwerksicherheitBedrohungsanalyse
GitHubsalesforce/jarm

jarm

Aktives TLS-Server-Fingerprinting-Tool, das maßgeschneiderte Client-Hello-Pakete sendet, um eindeutige JARM-Hashes zur Identifizierung von Serverkonfigurationen, Gruppierung von Infrastruktur und Erkennung bösartiger Server zu generieren.

Repository anzeigen
1.3k151vor 7 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

JARM

Bitte lesen Sie den ursprünglichen JARM-Blogbeitrag für weitere Informationen.

JARM ist ein aktives Tool zur Fingerabdruck-Erkennung von Transport Layer Security (TLS)-Servern.

JARM-Fingerabdrücke können verwendet werden, um:

  • Schnell zu überprüfen, dass alle Server in einer Gruppe die gleiche TLS-Konfiguration haben.
  • Unterschiedliche Server im Internet nach Konfiguration zu gruppieren und zu identifizieren, dass ein Server beispielsweise zu Google vs. Salesforce vs. Apple gehört.
  • Standardanwendungen oder -infrastruktur zu identifizieren.
  • Malware-Befehls- und Kontrollinfrastruktur und andere bösartige Server im Internet zu identifizieren.

JARM-Unterstützung wurde oder wird hinzugefügt zu: SecurityTrails Shodan BinaryEdge RiskIQ Palo Alto Networks Censys 360

JARM ausführen

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

Um es mit Python 2 zu verwenden, benötigen Sie das ipaddress-Modul:

pip install -r requirements.txt

JARM stapelweise auf einer großen Liste ausführen

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

Beispielausgabe

Wie JARM funktioniert

Bevor Sie lernen, wie JARM funktioniert, ist es wichtig zu verstehen, wie TLS funktioniert. TLS und sein Vorgänger SSL werden verwendet, um die Kommunikation sowohl für gängige Anwendungen wie Internetbrowser zu verschlüsseln, um Ihre Daten zu schützen, als auch für Malware, damit sie sich im Rauschen verstecken kann. Um eine TLS-Sitzung zu initiieren, sendet ein Client nach dem 3-Wege-Handshake eine TLS-Client-Hello-Nachricht. Dieses Paket und die Art und Weise, wie es erzeugt wird, hängt von den Paketen und Methoden ab, die beim Erstellen der Client-Anwendung verwendet werden. Der Server antwortet, wenn er TLS-Verbindungen akzeptiert, mit einem TLS-Server-Hello-Paket.

TLS-Server formulieren ihr Server-Hello-Paket basierend auf den Details, die im TLS-Client-Hello-Paket empfangen wurden. Die Art und Weise, wie das Server Hello für ein bestimmtes Client Hello formuliert wird, kann je nach Erstellung der Anwendung oder des Servers variieren, einschließlich:

  • Betriebssystem
  • Betriebssystemversion
  • Verwendete Bibliotheken
  • Versionen dieser verwendeten Bibliotheken
  • Die Reihenfolge, in der die Bibliotheken aufgerufen wurden
  • Benutzerdefinierte Konfiguration

All diese Faktoren führen dazu, dass jeder TLS-Server auf einzigartige Weise antwortet. Die Kombinationen von Faktoren machen es unwahrscheinlich, dass von verschiedenen Organisationen bereitgestellte Server die gleiche Antwort haben.

JARM funktioniert, indem aktiv 10 TLS-Client-Hello-Pakete an einen Ziel-TLS-Server gesendet und bestimmte Attribute der TLS-Server-Hello-Antworten erfasst werden. Die aggregierten TLS-Server-Antworten werden dann auf eine bestimmte Weise gehasht, um den JARM-Fingerabdruck zu erzeugen.

Dies ist nicht das erste Mal, dass wir mit TLS-Fingerprinting gearbeitet haben. Im Jahr 2017 entwickelten wir JA3/S, eine passive Methode zum TLS-Client/Server-Fingerprinting, die heute in den meisten Netzwerksicherheitstools zu finden ist. Aber während JA3/S passiv ist und Clients und Server durch das Abhören des Netzwerkverkehrs identifiziert, ist JARM ein aktiver Scanner für Server-Fingerabdrücke. Weitere Informationen zur TLS-Aushandlung und zum passiven JA3/S-Fingerprinting finden Sie hier.

Die 10 TLS-Client-Hello-Pakete in JARM wurden speziell entwickelt, um einzigartige Antworten von TLS-Servern zu erhalten. JARM sendet verschiedene TLS-Versionen, Chiffren und Erweiterungen in unterschiedlicher Reihenfolge, um einzigartige Antworten zu sammeln. Unterstützt der Server TLS 1.3? Wird er TLS 1.3 mit 1.2-Chiffren aushandeln? Wenn wir Chiffren von der schwächsten zur stärksten ordnen, welche wird er wählen? Dies sind die Arten ungewöhnlicher Fragen, die JARM dem Server im Wesentlichen stellt, um die einzigartigsten Antworten zu erhalten. Die 10 Antworten werden dann gehasht, um den JARM-Fingerabdruck zu erzeugen.

Der JARM-Fingerabdruck-Hash ist ein hybrider Fuzzy-Hash, der eine Kombination aus einem reversiblen und einem nicht-reversiblen Hash-Algorithmus verwendet, um einen 62-stelligen Fingerabdruck zu erzeugen. Die ersten 30 Zeichen bestehen aus der Chiffre und der TLS-Version, die der Server für jedes der 10 gesendeten Client-Hello-Pakete gewählt hat. Ein "000" zeigt an, dass der Server die Aushandlung mit diesem Client-Hello abgelehnt hat. Die restlichen 32 Zeichen sind ein abgeschnittener SHA256-Hash der kumulativen Erweiterungen, die vom Server gesendet wurden, unter Ignorierung der x509-Zertifikatsdaten. Beim Vergleich von JARM-Fingerabdrücken: Wenn die ersten 30 Zeichen gleich sind, die letzten 32 jedoch unterschiedlich, bedeutet dies, dass die Server sehr ähnliche Konfigurationen haben und dieselben Versionen und Chiffren akzeptieren, aber aufgrund unterschiedlicher Erweiterungen nicht exakt identisch sind.

Nach dem Empfang jeder TLS-Server-Hello-Nachricht schließt JARM die Verbindung ordnungsgemäß mit einem FIN, um die Sockets nicht offen zu lassen.

Es ist wichtig zu beachten, dass JARM eine leistungsstarke Fingerabdruck-Funktion ist und nicht mit einer sicheren Kryptofunktion verwechselt werden sollte. Wir haben den JARM-Fingerabdruck so konzipiert, dass er sowohl für Menschen als auch für Maschinen lesbar ist. Das bedeutet, dass es klein genug ist, um es zu überfliegen, zu teilen und zu twittern, mit genügend Platz für kontextuelle Details.

Wie JARM zur Identifizierung bösartiger Server verwendet werden kann

Malware-Befehls- und Kontrollserver (C2) und bösartige Server werden von ihren Erstellern wie jeder andere Server konfiguriert und dann in ihrem Netzwerk bereitgestellt. Diese neigen daher dazu, einzigartige JARM-Fingerabdrücke zu erzeugen. Im Folgenden finden Sie Beispiele für gängige Malware und offensive Tools sowie die JARM-Überschneidung mit den Alexa Top 1M Websites (Stand Oktober 2020):

Da es nur geringe oder keine Überschneidungen mit den Alexa Top 1M Websites gibt, sollte es unwahrscheinlich sein, dass ein Host innerhalb einer Organisation eine Verbindung zu einem Server mit diesen JARM-Fingerabdrücken herstellt.

JARM-Team

John Althouse - Ursprüngliche Idee, Konzept und Projektleitung Andrew Smart - Konzept und Tests RJ Nunnally - Programmierung und Tests Mike Brady - Programmierung und Tests

Für den betrieblichen Einsatz von Caleb Yu in Python umgeschrieben

Tool herunterladen
DomainJARM
salesforce.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
force.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
google.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
gmail.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
facebook.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
instagram.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
oculus.com29d29d20d29d29d21c41d43d00041d741011a7be03d7498e0df05581db08a9
Bösartiger Server C2JARM-FingerabdruckÜberschneidung mit Alexa Top 1M
Trickbot22b22b09b22b22b22b22b22b22b22b352842cd5d6b0278445702035e06875c0
AsyncRAT1dd40d40d00040d1dc1dd40d1dd40d3df2d6a0c2caaa0dc59908f0d36029430
Metasploit07d14d16d21d21d00042d43d000000aa99ce74e2c6d013c745aa52b5cc042d0
Cobalt Strike07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb10
Merlin C229d21b20d29d29d21c41d21b21b41d494e0df9532e75299f15ba73156cee38303