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
mole — Un plugin per Binary Ninja che utilizza il backward slicing delle variabili come driver per l'analisi statica del taint. | Kitploit
Strumenti/GitHubGitHub/cyber-defence-campus/mole
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceExploitReverse EngineeringAnalisi di BinariReverse Engineering Assistito dall'IA
GitHubcyber-defence-campus/mole

mole

Un plugin per Binary Ninja che utilizza il backward slicing delle variabili come driver per l'analisi statica del taint.

Vedi Repository
8241 mese 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

Publish Release Release

Mole

Mole Logo

Mole è un plugin per Binary Ninja progettato per identificare percorsi di esecuzione interessanti nei binari. Esegue backward slicing sulle variabili usando il Medium Level Intermediate Language (MLIL) di Binary Ninja in forma Static Single Assignment (SSA), costituendo la base per un'analisi statica del taint.

In Mole, un percorso si riferisce al flusso di dati tra una sorgente e un sink definiti. Cosa costituisce un percorso "interessante" dipende dagli obiettivi dell'analisi. Ad esempio, quando si cercano vulnerabilità, si potrebbero cercare percorsi in cui input non fidati (sorgenti) influenzano operazioni sensibili (sink) in modi potenzialmente pericolosi.

Il seguente elenco evidenzia alcune delle caratteristiche attuali di Mole:

  • Modalità Operativa: Mole può essere eseguito sia all'interno dell'interfaccia utente di Binary Ninja che in modalità headless. La modalità headless è particolarmente utile per analisi scriptate su un gran numero di binari. Al contrario, l'uso di Mole nell'interfaccia utente è ideale per indagare da vicino sui percorsi rilevati.
  • Identificazione dei Percorsi:
    • Configurazione: Mole consente agli utenti di definire funzioni sorgente e sink attraverso l'interfaccia utente di Binary Ninja o file di configurazione (vedi Usage). Questo offre flessibilità nella selezione di sorgenti e sink in base allo scenario d'uso specifico.
    • Esplorazione: Per comprendere meglio un percorso ed esaminarne le caratteristiche, tutte le istruzioni lungo il percorso possono essere stampate o evidenziate visivamente in Binary Ninja. Inoltre, è possibile visualizzare un confronto affiancato di due percorsi per individuare rapidamente le differenze. Simile alle istruzioni, la sequenza di chiamate di funzione di un percorso può essere stampata o visualizzata come grafico.
    • Raggruppamento: Per facilitare l'identificazione di percorsi simili, Mole supporta molteplici strategie di raggruppamento. Attualmente, i percorsi possono essere raggruppati in base alla corrispondenza di funzioni sorgente e sink, o per sequenze di chiamate identiche. Nuove strategie di raggruppamento personalizzate possono essere facilmente aggiunte per estendere e personalizzare questa funzionalità (vedi Customization).
    • Persistenza: I percorsi scoperti possono essere annotati per chiarezza o rimossi se ritenuti irrilevanti. Per preservare l'avanzamento dell'analisi, i percorsi possono essere salvati direttamente nel database del binario target (formato .bndb di Binary Ninja). I percorsi possono anche essere esportati, ad esempio, quando si esegue un'analisi headless su molti binari in un filesystem, consentendo di importare successivamente i percorsi identificati per un'esplorazione più agevole all'interno di Binary Ninja.
  • Analisi dei Percorsi con AI: Mole può interagire con Large Language Models (LLMs) locali o remoti tramite l'API OpenAI (vedi Usage). I modelli vengono utilizzati per analizzare i percorsi identificati e stabilire se un dato percorso corrisponde a una vulnerabilità sfruttabile o meno. L'LLM tenta di classificare la vulnerabilità e assegnare un livello di gravità, il che può aiutare a prioritizzare quali percorsi meritano ulteriori indagini da parte di un analista. Mole fornisce un set base di strumenti che l'LLM può utilizzare per richiedere informazioni aggiuntive sul binario in analisi.
  • Slicing Inter-Procedurale di Variabili: Mole supporta il slicing delle variabili MLIL attraverso i confini delle funzioni - un compito che presenta diverse sfide. Ad esempio, determinare staticamente il/i chiamante/i effettivo/i di una funzione è spesso difficile o addirittura impossibile. Di conseguenza, l'approccio implementato è un'approssimazione. Sebbene non perfetto, si comporta ragionevolmente bene in un'ampia gamma di scenari pratici.
  • Analisi Base dei Puntatori: Mole attualmente implementa una strategia semplificata per tracciare l'uso dei puntatori. Come lo slicing inter-procedurale, questo approccio è una semplificazione con limitazioni intrinseche (ad esempio, non può tracciare variabili globali). Tuttavia, funziona bene in molti casi pratici e si prevede di migliorarlo nelle versioni future.

Esempio di Utilizzo

Vedi Mole in azione mentre espone CVE-2021-4045, una vulnerabilità di command injection non autenticata nella fotocamera IP TP-Link Tapo C200 (clicca sull'immagine qui sotto per guardare su YouTube):

Mole Usage Example

Documentazione

  1. Installation
  2. Usage
  3. Customization

Contribuisci o Condividi la Tua Esperienza

Mole è attualmente un lavoro in corso. Se incontri un bug, hai un utile nuovo test unitario che evidenzia un falso positivo o negativo, o hai un suggerimento per una nuova funzionalità, considera di aprire una issue o contribuire tramite pull request. Nota anche che gli attuali unit tests sono stati verificati solo su binari linux-x86_64 e linux-armv7 finora.

Se hai una storia di successo interessante - come trovare una vulnerabilità con l'aiuto di Mole - ci piacerebbe saperne di più! Sentiti libero di condividere la tua esperienza con noi.

Contributori

  • Damian Pfammatter, Cyber-Defence Campus (armasuisse S+T)
  • Daniel Hulliger, Cyber-Defence Campus (armasuisse S+T)
  • Sergio Paganoni
Scarica lo strumento