Builder coden, Techniken Payload an Stub zu binden
Hi, hab in letzter Zeit einen einfachen Crypter in C++ geschrieben.
Der Builder zerlegt den Payload in 200KB große Stücke und fügt sie als Ressourcen in den Stub ein.
Kleine Dateien unter 500KB werden gecryptet nur von Avira als Dropper erkannt, größere aber von ziemlich vielen AVs.
Welche anderen Techniken gibt es, um den Stub FUD zu kriegen?
AW: Builder coden, Techniken Payload an Stub zu binden
Ich würde damit anfangen, einzelne Funktionen Schritt für Schritt rauszunehmen (bzw einfach den Code durch leere returns zu ersetzen um so rauszufinden, welcher Teil von deinem Code detected wird. Dann kannst du den umschreiben
AW: Builder coden, Techniken Payload an Stub zu binden
Du dropst den Krämpel aber nicht einfach oder?
AW: Builder coden, Techniken Payload an Stub zu binden
Ne hat schon ne RunPe.
Allerdings ist da auch das Problem, dass ich beim Stub im Linker die gleiche Base Adresse einstellen muss die der Payload hat, ansonsten kommt die Meldung "Anwendung konnte nicht gestartet werden 0x05".
Der Stub selbst wird nur von Avira detected, von etlichen anderen AVs nur wenn über ca. 3 200 KB Ressourcen eingefügt sind.
AW: Builder coden, Techniken Payload an Stub zu binden
womit verschlüsselst du denn den Payload? Ich kann dir in ner PM mal nen paar Ansätze schrieben
AW: Builder coden, Techniken Payload an Stub zu binden
Hast du schonmal probiert ne Section hinzuzufügen anstatt das ganze als Ressource einzubinden? Du hast ja dann über den PE Header die Adressen, kannste zum Testen ja auch hardcoded probieren.
AW: Builder coden, Techniken Payload an Stub zu binden
Zitat:
Zitat von
gORDon_vdLg
Hast du schonmal probiert ne Section hinzuzufügen anstatt das ganze als Ressource einzubinden? Du hast ja dann über den PE Header die Adressen, kannste zum Testen ja auch hardcoded probieren.
Meiner Erfahrung nach wird eine zusätzliche Section öfters als schädlich spezifiziert als eine zu große Ressource.
@TE: Welche Detection kriegst du? Schon mal probiert eine eigene RunPE zu schreiben?
AW: Builder coden, Techniken Payload an Stub zu binden
Von Avira ist die Detection TR/Dropper.Gen.
AW: Builder coden, Techniken Payload an Stub zu binden
Haste die üblichen Sachen überprüft?
Hier ein vielleicht nützlicher Link: http://itsecuritylab.eu/index.php/20...for-beginners/
AW: Builder coden, Techniken Payload an Stub zu binden
Zitat:
Zitat von
0ilZ
Von Avira ist die Detection TR/Dropper.Gen.
Ist die Detection auch ohne Payload (also nur die Stub) existent?
AW: Builder coden, Techniken Payload an Stub zu binden
Ja aber bei den anderen 7 AVs von denen es detected wird nur mit Payload.
AW: Builder coden, Techniken Payload an Stub zu binden
Zitat:
Zitat von
0ilZ
Ja aber bei den anderen 7 AVs von denen es detected wird nur mit Payload.
Ich würde erstmals die Dropper-Detection behandeln. Die ist halt sehr generell und kann von vielen Sachen kommen (u.A. auch zu große Ressourcen, aber auch von RunPEs usw). Leider beantwortest du essentielle Fragen nicht, wie ob du eine eigene RunPE verwendest und somit sind Fragen wie ob du "API-Encryption" verwendest, welche Calls du verwendest, welche Encryption du verwendest, usw. auch eher sinnlos.
Bei der Speichermethode kannst du auf die Sections zugreifen. Natürlich geht es mit .data, allerdings wird das höchstwahrscheinlich auch eine Detection auslösen. Du könntest den Payload aber in die Code-Section einfügen (PE-Header nachträglich ändern). Auch kannst du deine RunPE zu Shellcode umschreiben. Wenn in der IAT "LoadLibrary" und "GetProcAddr" steht, führt das auch öfters zur Dropper-Detection. Praktisch hierbei wäre, dass du deine RunPE dann komplett verschlüsseln könntest und diese dann einfach an Ort und Stelle entschlüsseln und direkt aufrufen. Sollte es am Ende dann tatsächlich nach all den Versuchen am Payload scheitern, kannst du dieses auch in der .code-Section speichern und mittels push auf den Stack schieben (und dann die RunPE aufrufen). Eine Weiterentwicklung davon wäre dass du dann zu den Pushes verschiedene Jumps einfügst und ein wenig Trashcode (nur Berechnungen). Das würde dein Payload allerdings auf das 2- bis 4-fache aufblasen.
AW: Builder coden, Techniken Payload an Stub zu binden
Danke, werde versuchen einige deiner Vorschläge umzusetzen.