l+f: Monomorph - ein MD5-Hashwert für alles
Zur Identifizierung von Malware setzen einige Forscher auf MD5-Hashes. Ein Exploit-Entwickler liefert ein Tool, das Shellcode mit stets gleichem Hash verpackt.
Der IT-Sicherheitsforscher und Exploit-Entwickler David Buchanan hat das Tool Monomorph entwickelt, das beliebigen, bis zu vier kByte großen komprimierten Shellcode in eine Datei von 4 MByte Größe umwandelt. Und die hat stets denselben MD5-Hash. Buchanan erläutert seine Motivation folgendermaßen: "Einige Leute bestehen noch immer darauf, MD5 zur Referenzierung von Datei-Samples zu verwenden. Aus diversen Gründen, die mir keinen Sinn ergeben wollen." Würde einer dieser Leute am Ende Code analysieren, der mit Monomorph gepackt wurde, würde sie das schließlich sehr verwirren.
MD5-Monomorph ist als quelloffenes Projekt auf GitHub verfügbar. Während frühere Beispiele eine einzelne MD5-Kollision nutzten, um für eine "gute" und eine "böse" Anwendung denselben Hash zu erzeugen, hieve der "MD5-Monomorphic Shellcode Packer" das Konzept auf das nächste Level.
Die Funktionsweise des python-Skripts erläutert Buchanan so: Für jedes zu kodierende Bit habe er einen kollidierenden MD5-Block mit dem Tool FastColl vorberechnet. Jede Kollision erzeuge ein Paar von Blöcken, die sich austauschen lassen, ohne dass sich der gesamte MD5-Hash ändere. Der Loader prüft, welcher Block zur Laufzeit gewählt wurde, um das Bit zu dekodieren. Daher benötige Monomorph 4*1024*8 Kollisionen für 4 kByte Daten, die sich auf 4 MByte in der Ausgabedatei summierten.
Durch die vorberechneten MD5-Blöcke sei Monomorph sehr schnell beim Kodieren von Shellcode in eine ausführbare Datei. Die bislang lediglich unter 64-Bit-x86-Linux laufende Software liefere stets den MD5-Wert 3cebbe60d91ce760409bbe513593e401
zurück. Eine Portierung auf andere Plattformen sollte einfach sein, dort jedoch eine andere (aber ebenfalls stets gleiche) MD5-Prüfsumme erzeugen.
lost+found
Die heise-Security-Rubrik für Kurzes und Skurriles aus der IT-Security.
Alle l+f Meldungen in der Übersicht
(dmk)