ZHPDIAG ist ein Tool zur Erstellung eines Systemberichts bei der manuellen Suche nach Malware. Das Tool wird vor allen Dingen im französischsprachigen Bereich genutzt, findet aber teilweise auch in anderen Ländern Anwendung bei der Systemanalyse in Onlineforen.
Ein Einblick in die Software
Bedienbarkeit und Auswertbarkeit der Daten
Das Tool ist leider nur schlecht dokumentiert (etwas umfangreicher nur in Französisch). Zur Entfernung ist ein weiteres Tool nötig, das noch schlechter dokumentiert ist. In der Anwendung ist das Tool trotz der schlechten Dokumentation recht einfach - es dauert aber etwas, bis man wirklich erkannt hat, wie das Tool zum Beispiel Signaturen, Ressourcen oder Ähnliches darstellt.
Gut finde ich, dass das Tool Signaturen überhaupt auswertet (oder sie scheinbar auswertet) und bei den Ressourcen auch die Dateibeschreibung (Description) mit listet.
Wichtige interne (programmiertechnische) Sachen über das Tool
- Das Tool ist in der Programmiersprache Autoit programmiert:
- In Autoit existiert das hier beschriebene "Sicherheitsproblem":
Nicht nur für Programmierer! Vorsicht bei der Verwendung bestimmter Registryfunktionen in Autoit!
Das Tool ist scheinbar an mehreren Stellen für diese Sache anfällig. Malware kann mittels dieser Technik Autostarteinträge vor dem Tool verstecken. - Autoit Programme sind komplett in den Quelltext hinein dekompilierbar. Für Malwareschreiber ist evtl. leicht ersichtlich, wie das Tool genau Sachen listet und intern funktioniert. Ich habe im Augenblick aber den starken Verdacht, dass das Tool durch einen Trick eine komplette Dekompilierung verhindert:
https://www.hybrid-analysis.com/sample/5ea4e4e…ca3e12a8378e0cd
- In Autoit existiert das hier beschriebene "Sicherheitsproblem":
- Scheinbar tut das Tool einige Sachen, die zu einem Sicherheitsproblem werden könnten:
- Das Tool startet nach dem Scan einen mitgelieferten Browser zum Anzeigen der Ergebnisse. Dieser Browser ist Teil der Anwendung und läuft mit Adminrechten!
- Ruft man über die Schaltfläche Bericht den erstellten Bericht auf, wird dieser im Internetbrowser angezeigt. Auch dieser Internetbrowser läuft mit Adminrechten, da das Tool mit Adminrechten gestartet wird.
- Das Tool gibt es nur in einer 32Bit version. Es läuft im WOW64 Emulator, berücksichtigt aber die Umleitungen des WOW64 Emulators.
- Zum Listen des prozesserzeugenden Moduls scheint das Tool die API GetModuleFileNameEx zu verwenden. Microsoft schreibt hier über diese API aus gutem Grund Folgendes:
- To retrieve the name of the main executable module for a remote process, use the GetProcessImageFileName or QueryFullProcessImageName function. This is more efficient and more reliable than calling the GetModuleFileNameEx function with a NULL module handle
- Das Programm erstellt einen Ordner %APPDATA%\ZHP. Dort sind folgende Daten abgelegt:
- Eine Kopie der EXE.
- Eine Kopie des LOGs ZHPDIAG.txt.
- Eine Kopie der Hosts-Datei des Rechners.
- Eine Datei License.txt mit Infos über die Windowsinstallation.
- Eine Datei BCDReport.txt mit Infos über weitere auf dem Rechner installierte Betriebssysteme.
- Eine Datei TraceZHPDiag.txt mit Debuginfos über den Scan.
- Eine Datei ZHPDIAG.html, die die im Browser angezeigte LOG-Datei enthält.
- Das Programm baut scheinbar während des Scanvorgangs Kontakt zu einem Server im Netz auf. Manche Virenscanner flaggen das Tool als Malware aus:
https://www.virustotal.com/de/file/5ea4e4…sis/1532856890/
Funktionsumfang
Sehr schlecht finde ich, dass das Tool selbst keine Entfernungsfunktion mitbringt. Einige bekannte Autostartmöglichkeiten scheint das Tool nicht zu listen. Scans sind (wenn ich es richtig sehe) nicht durch den User einfach erweiterbar. Die allerwichtigsten Sachen scheint das Tool aber auszuwerten. Da es das Tool nur in einer 32Bit Version gibt, kann es unter anderem den Kommandozeilenbefehl, der zum Ausführen eines Prozesses geführt hat, nicht auslesen. Der fehlt mir bei der Analyse etwas. Geladene DLLs listet das Tool leider gar nicht. Auch Erweiterungen des Browsers Edge scheint das Tool nicht wirklich zu scannen.
Wie sicher sind die Ergebnisse?
Neben den oben schon beschriebenen Möglichkeiten, Autostarteinträge durch das Problem in Autoit unsichtbar zu machen, testet das Tool beim Auslesen auch nicht aus, ob irgendein Wert aufgrund von fehlenden Zugriffsrechten nicht gelesen werden kann. Auch darüber lassen sich Einträge vor dem Tool sehr leicht verstecken. Durch die Verwendung der API GetModuleFileNameEx zum Auslesen des Prozesserzeugers lassen sich, wie es zur Zeit aussieht, auf sehr einfache Art Prozesse für das Tool unsichtbar machen.
Ich habe auch den starken Eindruck, dass die Auswertung von Signaturen nicht immer korrekt durchgeführt wird. Des Weiteren scheint es so zu sein, dass die Firmeninfos gar nicht aus der Signatur gelesen werden. Um das genauer sagen zu können, bräuchte ich aber eine bessere Dokumentation des Tools.
Fazit
Aufgrund dessen, dass der User unter Umständen mit Adminrechten surfen könnte, wenn er das Tool genutzt hat, würde ich persönlich das Tool nicht zur Anwendung in Foren für die Analyse fremder Rechner empfehlen. Was das Tool listet, ist mir persönlich bei weitem zu mager und auch zu unsicher, um es wirklich bei Fremdgeräten zu nutzen. Auch aufgrund der schlechten Dokumentation sind die LOGs, die das Tool erstellt, nur relativ schwer zu durchschauen. Warum LOGs unbedingt in einem Internetbrowser mit Adminrechten geöffnet werden müssen, ist mir persönlich schleierhaft.
Daten zum Tool
Autor / Homepage: Nicolas Coolman
System: Ab WindowsXP bis Windows10
Sprache: Mehrsprachig - erkennt scheinbar automatisch die Systemsprache
Lizenz: Freeware
Download: https://www.nicolascoolman.com/download/zhpdiag/