
HashDB API Hash-Lookup-Plugin für IDA Pro
Plugin zur Suche nach Malware-String-Hashes für IDA Pro. Dieses Plugin verbindet sich mit dem OALABS HashDB Lookup Service.
Die Datenbank der Hash-Algorithmen ist Open Source und neue Algorithmen können hier auf GitHub hinzugefügt werden. Pull-Requests sind größtenteils automatisiert, und solange unsere automatisierten Tests bestehen, ist der neue Algorithmus innerhalb weniger Minuten auf HashDB nutzbar.
HashDB kann verwendet werden, um nach Strings zu suchen, die in Malware gehasht wurden, indem man mit der rechten Maustaste auf die Hash-Konstante in der IDA-Disassemblierungsansicht klickt und den HashDB Lookup-Client startet.
Bevor das Plugin zum Nachschlagen von Hashes verwendet werden kann, müssen die HashDB-Einstellungen konfiguriert werden. Das Einstellungsfenster kann über das Plugins-Menü Edit->Plugins->HashDB geöffnet werden.
Klicken Sie auf Refresh Algorithms, um eine Liste der unterstützten Hash-Algorithmen von der HashDB-API abzurufen, und wählen Sie dann den Algorithmus aus, der in der von Ihnen analysierten Malware verwendet wird.
Es gibt auch die Option, XOR mit jedem Hash-Wert zu aktivieren, da dies eine gängige Technik ist, die von Malware-Autoren verwendet wird, um Hashes weiter zu verschleiern.
Die Standard-API-URL für den HashDB Lookup Service ist https://hashdb.openanalysis.net/. Wenn Sie Ihren eigenen internen Server verwenden, kann diese URL geändert werden, um auf Ihren Server zu verweisen.
Wenn ein neuer Hash von HashDB identifiziert wird, werden der Hash und der zugehörige String zu einem enum in IDA hinzugefügt. Dieses Enum kann dann verwendet werden, um Hash-Konstanten in IDA in ihren entsprechenden Enum-Namen umzuwandeln. Der Enum-Name kann in den Einstellungen konfiguriert werden, falls es einen Konflikt mit einem vorhandenen Enum gibt.
Sobald die Plugin-Einstellungen konfiguriert sind, können Sie mit der rechten Maustaste auf eine beliebige Konstante im IDA-Disassemblierungs- oder Pseudocode-Fenster (Hex-Rays) klicken und die Konstante als Hash nachschlagen. Das Rechtsklick-Menü bietet auch eine schnelle Möglichkeit, den XOR-Wert bei Bedarf festzulegen.
Wenn ein Hash Teil eines Moduls ist, werden Sie in einer Eingabeaufforderung gefragt, ob Sie alle Hashes aus diesem Modul importieren möchten. Dies ist eine schnelle Möglichkeit, Hashes in großen Mengen abzurufen. Wenn beispielsweise einer der identifizierten Hashes Sleep aus dem Modul kernel32 ist, kann HashDB alle gehashten Exporte aus kernel32 abrufen.
Nachdem ein Hash aufgelöst (oder ein Modul massenimportiert) wurde, scannt HashDB die aktuelle Funktion und wandelt jede übereinstimmende Konstante in ihren Enum-Namen um – über Operanden 0–2 hinweg, mit einem 32-Bit-Masken-Fallback für vorzeichenerweiterte Werte. Die Disassemblierungs- und Hex-Rays-Ansichten werden automatisch aktualisiert. Bereits importierte Module werden für die Sitzung zwischengespeichert, sodass Sie nicht bei jedem neuen Hash erneut aufgefordert werden, kernel32 (usw.) zu importieren.
HashDB enthält auch eine einfache Algorithmus-Suche, die versucht, den Hash-Algorithmus basierend auf einem Hash-Wert zu identifizieren. Die Suche gibt alle Algorithmen zurück, die den Hash-Wert enthalten; es liegt am Analysten, zu entscheiden, welcher (falls überhaupt) Algorithmus korrekt ist. Um diese Funktion zu nutzen, klicken Sie mit der rechten Maustaste auf die Hash-Konstante und wählen Sie HashDB Hunt Algorithm.
Alle Algorithmen, die diesen Hash enthalten, werden in einem Auswahlfeld angezeigt. Das Auswahlfeld kann verwendet werden, um den Algorithmus direkt auszuwählen, den HashDB verwenden soll. Wenn Cancel ausgewählt wird, wird kein Algorithmus ausgewählt.
Anstatt API-Hashes einzeln aufzulösen (inline im Code), erstellen einige Malware-Entwickler einen Speicherblock mit Import-Hashes. Diese Hashes werden dann alle innerhalb einer einzigen Funktion aufgelöst, wodurch eine dynamische Import-Adresstabelle erstellt wird, auf die später im Code verwiesen wird. In diesen Szenarien kann die Funktion HashDB Scan IAT verwendet werden.
Wählen Sie einfach den Import-Hash-Block aus, klicken Sie mit der rechten Maustaste und wählen Sie HashDB Scan IAT. HashDB wird versuchen, jeden einzelnen Integer-Typ (DWORD/QWORD) im ausgewählten Bereich aufzulösen.
HashDB benötigt das Python-Modul requests. Installieren Sie es von einer Shell außerhalb von IDA mit pip install requests.
Sie können das Plugin dann auf eine von zwei Arten installieren:
hashdb.py in Ihr IDA plugins-Verzeichnis.Das HashDB-Plugin zielt auf IDA 7.5+ (einschließlich IDA 9.0) mit Python 3 ab und ist nicht abwärtskompatibel.