Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
jarm — Strumento attivo di fingerprinting di server TLS che invia pacchetti Client Hello appositamente realizzati per generare hash JARM unici per identificare configurazioni del server, raggruppare infrastrutture e rilevare server malevoli. | Kitploit
Strumenti/GitHubGitHub/salesforce/jarm
RicognizioneRaccolta InformazioniSicurezza di ReteThreat Intelligence
GitHubsalesforce/jarm

jarm

Strumento attivo di fingerprinting di server TLS che invia pacchetti Client Hello appositamente realizzati per generare hash JARM unici per identificare configurazioni del server, raggruppare infrastrutture e rilevare server malevoli.

Vedi Repository
1.3k1517 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

JARM

Si prega di leggere il post originale del blog su JARM per maggiori informazioni.

JARM è uno strumento attivo di fingerprinting dei server Transport Layer Security (TLS).

Le impronte digitali JARM possono essere utilizzate per:

  • Verificare rapidamente che tutti i server in un gruppo abbiano la stessa configurazione TLS.
  • Raggruppare server disparati su Internet per configurazione, identificando ad esempio se un server appartiene a Google, Salesforce o Apple.
  • Identificare applicazioni o infrastrutture predefinite.
  • Identificare l'infrastruttura di comando e controllo dei malware e altri server dannosi su Internet.

Il supporto JARM è stato o sta per essere aggiunto a:
SecurityTrails
Shodan
BinaryEdge
RiskIQ
Palo Alto Networks
Censys
360

Eseguire JARM

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

Per utilizzarlo con Python 2 è necessario il modulo ipaddress:

pip install -r requirements.txt

Esecuzione batch di JARM su una lista numerosa in velocità

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

Esempio di output

Come funziona JARM

Prima di imparare come funziona JARM, è importante capire come funziona TLS. TLS e il suo predecessore, SSL, sono utilizzati per crittografare la comunicazione sia per applicazioni comuni come i browser Internet, per mantenere i tuoi dati al sicuro, sia per i malware, in modo che possano nascondersi nel rumore. Per avviare una sessione TLS, un client invia un messaggio TLS Client Hello dopo la stretta di mano TCP a 3 vie. Questo pacchetto e il modo in cui viene generato dipendono dai pacchetti e dai metodi utilizzati nella creazione dell'applicazione client. Il server, se accetta connessioni TLS, risponderà con un pacchetto TLS Server Hello.

I server TLS formulano il loro pacchetto Server Hello in base ai dettagli ricevuti nel pacchetto TLS Client Hello. Il modo in cui il Server Hello viene formulato per un dato Client Hello può variare in base a come è stata creata l'applicazione o il server, inclusi:

  • Sistema operativo
  • Versione del sistema operativo
  • Librerie utilizzate
  • Versioni di quelle librerie utilizzate
  • L'ordine in cui le librerie sono state chiamate
  • Configurazione personalizzata

Tutti questi fattori portano ogni server TLS a rispondere in modo unico. Le combinazioni di fattori rendono improbabile che server distribuiti da organizzazioni diverse abbiano la stessa risposta.

JARM funziona inviando attivamente 10 pacchetti TLS Client Hello a un server TLS target e catturando attributi specifici delle risposte TLS Server Hello. Le risposte aggregate del server TLS vengono quindi sottoposte a hash in modo specifico per produrre l'impronta digitale JARM.

Non è la prima volta che lavoriamo con il fingerprinting TLS. Nel 2017 abbiamo sviluppato JA3/S, un metodo di fingerprinting passivo di client/server TLS ora presente sulla maggior parte degli strumenti di sicurezza di rete. Ma mentre JA3/S è passivo, identifica client e server ascoltando il traffico di rete, JARM è uno scanner attivo di fingerprinting dei server. Puoi saperne di più sulla negoziazione TLS e sul fingerprinting passivo JA3/S qui.

I 10 pacchetti TLS Client Hello in JARM sono stati appositamente progettati per estrarre risposte uniche dai server TLS. JARM invia diverse versioni TLS, cifrari ed estensioni in ordini variabili per raccogliere risposte uniche. Il server supporta TLS 1.3? Negoziare TLS 1.3 con cifrari 1.2? Se ordiniamo i cifrari dal più debole al più forte, quale cifrario sceglierà? Questi sono i tipi di domande insolite che JARM essenzialmente pone al server per ottenere le risposte più uniche. Le 10 risposte vengono quindi sottoposte a hash per produrre l'impronta digitale JARM.

L'hash dell'impronta digitale JARM è un hash fuzzy ibrido, utilizza la combinazione di un algoritmo di hash reversibile e non reversibile per produrre un'impronta digitale di 62 caratteri. I primi 30 caratteri sono costituiti dal cifrario e dalla versione TLS scelti dal server per ciascuno dei 10 client hello inviati. Un "000" indica che il server ha rifiutato di negoziare con quel client hello. I restanti 32 caratteri sono un hash SHA256 troncato delle estensioni cumulative inviate dal server, ignorando i dati del certificato x509. Quando si confrontano le impronte digitali JARM, se i primi 30 caratteri sono gli stessi ma gli ultimi 32 sono diversi, ciò significherebbe che i server hanno configurazioni molto simili, accettando le stesse versioni e cifrari, anche se non esattamente identici poiché le estensioni sono diverse.

Dopo aver ricevuto ogni messaggio hello del server TLS, JARM chiude la connessione in modo elegante con un FIN per non lasciare i socket aperti.

È importante notare che JARM è una funzione di fingerprinting ad alte prestazioni e non deve essere considerata o confusa con una funzione crittografica sicura. Abbiamo progettato l'impronta digitale JARM per essere consumabile dall'uomo tanto quanto dalla macchina. Ciò significa che è abbastanza piccola da essere esaminata visivamente, condivisa e twittata con spazio sufficiente per dettagli contestuali.

Come JARM può essere utilizzato per identificare server dannosi

I server di comando e controllo (C2) dei malware e i server dannosi vengono configurati dai loro creatori come qualsiasi altro server e poi distribuiti nella loro flotta. Questi tendono quindi a produrre impronte digitali JARM uniche. Di seguito sono riportati esempi di malware comuni e strumenti offensivi e la sovrapposizione JARM con i primi 1 milione di siti web Alexa (a ottobre 2020):

Con una sovrapposizione da scarsa a nulla con i primi 1 milione di siti web Alexa, dovrebbe essere improbabile che un host all'interno di un'organizzazione si connetta a un server con queste impronte digitali JARM.

Team JARM

John Althouse - Idea originale, concetto e guida del progetto
Andrew Smart - Concetto e test
RJ Nunnally - Programmazione e test
Mike Brady - Programmazione e test

Riscritto in Python per uso operativo da Caleb Yu

Scarica lo strumento
DominioJARM
salesforce.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
force.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
google.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
gmail.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
facebook.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
instagram.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
oculus.com29d29d20d29d29d21c41d43d00041d741011a7be03d7498e0df05581db08a9
Server C2 dannosoImpronta digitale JARMSovrapposizione con Alexa Top 1M
Trickbot22b22b09b22b22b22b22b22b22b22b352842cd5d6b0278445702035e06875c0
AsyncRAT1dd40d40d00040d1dc1dd40d1dd40d3df2d6a0c2caaa0dc59908f0d36029430
Metasploit07d14d16d21d21d00042d43d000000aa99ce74e2c6d013c745aa52b5cc042d0
Cobalt Strike07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb10
Merlin C229d21b20d29d29d21c41d21b21b41d494e0df9532e75299f15ba73156cee38303