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
mole — Ein Binary Ninja-Plugin, das das Rückwärtsslicing von Variablen als Treiber für die statische Taint-Analyse verwendet. | Kitploit
Tools/GitHubGitHub/cyber-defence-campus/mole
Statische AnalyseSchwachstellenanalyseCode-AnalyseExploitationReverse EngineeringBinäranalyseKI-gestütztes Reverse Engineering
GitHubcyber-defence-campus/mole

mole

Ein Binary Ninja-Plugin, das das Rückwärtsslicing von Variablen als Treiber für die statische Taint-Analyse verwendet.

Repository anzeigen
824vor 1 MonatVon 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

Publish Release Release

Mole

Mole Logo

Mole ist ein Binary Ninja-Plugin, das entwickelt wurde, um interessante Ausführungspfade in Binärdateien zu identifizieren. Es führt Rückwärtsslicing an Variablen mithilfe von Binary Ninjas Medium Level Intermediate Language (MLIL) in Static Single Assignment (SSA)-Form durch, was die Grundlage für eine statische Taint-Analyse bildet.

In Mole bezeichnet ein Pfad den Datenfluss zwischen einer definierten Quelle und Senke. Was einen „interessanten“ Pfad ausmacht, hängt von den Analysezielen ab. Zum Beispiel sucht man bei der Suche nach Sicherheitslücken nach Pfaden, bei denen nicht vertrauenswürdige Eingaben (Quellen) sensible Operationen (Senken) auf potenziell gefährliche Weise beeinflussen.

Die folgende Liste hebt einige der aktuellen Funktionen von Mole hervor:

  • Betriebsmodus: Mole kann entweder innerhalb der Binary Ninja-Benutzeroberfläche oder im unbeaufsichtigten Modus (Headless) ausgeführt werden. Der unbeaufsichtigte Modus ist besonders nützlich für scriptgesteuerte Analysen über eine große Anzahl von Binärdateien. Im Gegensatz dazu ist die Verwendung von Mole innerhalb der Benutzeroberfläche ideal, um erkannte Pfade detailliert zu untersuchen.

  • Pfadidentifikation:

    • Konfiguration: Mole erlaubt es Benutzern, Quell- und Senkenfunktionen über die Binary Ninja-Benutzeroberfläche oder Konfigurationsdateien zu definieren (siehe Verwendung). Dies bietet Flexibilität bei der Auswahl von Quellen und Senken basierend auf dem spezifischen Anwendungsszenario.
    • Erkundung: Um einen Pfad besser zu verstehen und seine Eigenschaften zu untersuchen, können alle Anweisungen entlang des Pfades innerhalb von Binary Ninja gedruckt oder visuell hervorgehoben werden. Zusätzlich kann ein Seitenvergleich zweier Pfade angezeigt werden, um Unterschiede schnell zu erkennen. Ähnlich wie bei Anweisungen kann die Abfolge von Funktionsaufrufen eines Pfades gedruckt oder als Graph visualisiert werden.
    • Gruppierung: Um die Identifikation ähnlicher Pfade zu erleichtern, unterstützt Mole mehrere Gruppierungsstrategien. Derzeit können Pfade basierend auf übereinstimmenden Quell- und Senkenfunktionen oder identischen Aufrufsequenzen gruppiert werden. Neue benutzerdefinierte Gruppierungsstrategien können einfach hinzugefügt werden, um diese Funktionalität zu erweitern und anzupassen (siehe Anpassung).
    • Persistenz: Entdeckte Pfade können zur Klarheit kommentiert oder als irrelevant entfernt werden. Um den Analysefortschritt zu bewahren, können Pfade direkt in der Datenbank der Zielbinärdatei gespeichert werden (Binary Ninja's .bndb-Format). Pfade können auch exportiert werden, zum Beispiel bei der unbeaufsichtigten Analyse vieler Binärdateien in einem Dateisystem, sodass identifizierte Pfade später importiert werden können, um sie innerhalb von Binary Ninja einfacher zu erkunden.
  • Pfadanalyse mit KI: Mole kann über die OpenAI API mit lokalen oder entfernten Großen Sprachmodellen (LLMs) interagieren (siehe Verwendung). Die Modelle werden verwendet, um identifizierte Pfade zu analysieren und zu beurteilen, ob ein gegebener Pfad einer ausnutzbaren Sicherheitslücke entspricht. Das LLM versucht, die Sicherheitslücke zu klassifizieren und einen Schweregrad zuzuweisen, was dabei helfen kann, Prioritäten zu setzen, welche Pfade einer weiteren Untersuchung durch einen Analysten wert sind. Mole stellt eine grundlegende Reihe von Werkzeugen bereit, die das LLM verwenden kann, um zusätzliche Informationen über die untersuchte Binärdatei anzufordern.

  • Interprozedurales Variablenslicing: Mole unterstützt das Slicing von MLIL-Variablen über Funktionsgrenzen hinweg – eine Aufgabe, die mehrere Herausforderungen mit sich bringt. Beispielsweise ist es oft schwierig oder sogar unmöglich, die effektiven Aufrufer einer Funktion statisch zu bestimmen. Daher ist der implementierte Ansatz eine Näherung. Obwohl nicht perfekt, funktioniert er in einer Vielzahl praktischer Szenarien recht gut.

  • Basis-Pointer-Analyse: Mole implementiert derzeit eine vereinfachte Strategie zur Verfolgung der Pointer-Nutzung. Wie das interprozedurale Slicing ist dieser Ansatz eine Vereinfachung mit inhärenten Einschränkungen (z. B. kann er keine globalen Variablen verfolgen). Dennoch funktioniert er in vielen praktischen Fällen gut und es ist geplant, ihn in zukünftigen Versionen zu verbessern.

Anwendungsbeispiel

Sehen Sie Mole in Aktion, wie es CVE-2021-4045 aufdeckt, eine nicht authentifizierte Befehlsinjektionslücke in der TP-Link Tapo C200 IP-Kamera (klicken Sie auf das Bild unten, um es auf YouTube anzusehen):

Mole Usage Example

Dokumentation

  1. Installation
  2. Verwendung
  3. Anpassung

Mitwirken oder Erfahrungen teilen

Mole befindet sich derzeit in der Entwicklung. Wenn Sie auf einen Fehler stoßen, einen nützlichen neuen Unit-Test haben, der einen False Positive oder False Negative aufzeigt, oder einen Vorschlag für eine neue Funktion haben, erwägen Sie bitte, ein Issue zu eröffnen oder über einen Pull-Request beizutragen. Beachten Sie auch, dass die aktuellen Unit-Tests bisher nur auf linux-x86_64- und linux-armv7-Binärdateien verifiziert wurden.

Wenn Sie eine interessante Erfolgsgeschichte haben – zum Beispiel das Finden einer Sicherheitslücke mit Hilfe von Mole – freuen wir uns, davon zu hören! Teilen Sie uns gerne Ihre Erfahrungen mit.

Mitwirkende

  • Damian Pfammatter, Cyber-Defence Campus (armasuisse S+T)
  • Daniel Hulliger, Cyber-Defence Campus (armasuisse S+T)
  • Sergio Paganoni
Tool herunterladen