PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timelock Puzzle solver



s3rb31
11.04.2015, 22:06
Okay, hai. Das dürfte evtl. interessant sein falls man mal wieder einen Crypter schreiben will oder ähnliches.

Es geht darum ein Geheimnis (Payload / Key) so zu verschlüsseln dass man vorher bestimmen kann, wie lange dessen Entschlüsselung dauert. Beim VXen ist dies sinnvoll um zu verhindern das Antivirenprogramme den Code emulieren, da es schlicht zu lange dauert.

Hier ein tolles Paper zu dem Thema:
http://de.scribd.com/doc/32307363/Anti-Emulation-through-TimeLock-puzzles

Mein Code: https://github.com/S3RB31/TimeLockPuzzle

PS.

Hier noch das original Paper von Rivest, der diese Möglichkeit als erster Entdeckt hat:
http://people.csail.mit.edu/rivest/lcs35-puzzle-description.txt

sup3ria
11.04.2015, 22:53
Meisten Avs können das inzwischen patchen...

4ctid
12.04.2015, 08:04
Was heißt hier patchen? Das Puzzle muss zumindest einmal gelöst werden bevor die Emulation/Analyse fortfahren kann. Oder erkennen die AVs den Algorithmus und berechnen das Puzzle seperat mit einem größeren Zeitlimit?

s3rb31
12.04.2015, 15:30
Ja also ich würde auch gerne wissen was du mit patchen meinst sup3ria. Wenn man den Schadcode erst durch das lösen des Puzzles decrypten kann, wie soll sich ein AV daran vorbei patchen? Das einzige was mir einfallen würde wäre das hier: http://vxheaven.org/lib/vts00.html

Aber wer sich davon noch abhalten lässt ist wohl nicht auf der Höhe der Zeit. xD

@4ctid
AVs versuchen generell bei der Emulation die Instructions zu optimieren, grade auf x86 gibts da viel Raum. Zu groß darf das Zeitlimit trotzdem nicht sein da das AV sonst zu viele Ressourcen verschwendet. Daher ist es auch so, das viele Emulatoren einfach eine bestimmte maximale Ausführungszeit von ein paar Sekunden haben. Dass AVs Timelock Puzzle erkennen und mit verlängerung der execution Time reagieren hab ich noch nie gehört.

http://archive.hack.lu/2008/av2cid.pptx

WD40
12.04.2015, 22:12
Eine genauso effektive methode ist das self bruting, das z.b. das Password zum decrypten nur als hash vorliegt und dann z.b. ein 4stelliges passwortet gebrutet wird.
Kann man auch berechnen die benötigte zeit, ein bisschen mehr "random" aber imho genauso effektiv.
Timeleock wird mittlerweile von avs "erkannt"(es gibt eine signatur für timelock puzzles) aber mir sind auch noch keine aktiven Gegenmaßnahmen bekannt.

s3rb31
13.04.2015, 00:40
Was is dass denn für ein Blödsinn wie soll es _eine_ Signatur für Timelock Puzzles geben?
Je nachdem was für Bytecodes der benutzte Compiler gerade ausspuckt hast du immer verschiedene Signaturen für die Entschlüsselungsroutine. Natürlich ist die Rechnung zum entschlüsseln recht auffällig, aber wenn man sich seine eigene Routine (z. B. in ASM) schreibt, seh ich kein Problem die zu obfuscaten.

PS. No offense ;)

WD40
13.04.2015, 12:41
Daher "erkannt" und nich ohne Anführungszeichen. Die c&p timelock puzzles haben Signaturen zumindest manche. Ich meinte bzw nicht _eine_ signatur . Auffällig sind solche Maßnahmen immer, kenne keine Methode komplett unerkannt emulation zu umgehen.
P.S. ich fasse sowas nich als offense auf, solang du nicht beleidigend wirst alles easy ;)