PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Crypter Vorschläge



Mofo
25.08.2010, 15:39
Ich habe mich jetzt einige Zeit eingehend mit dem Pe-format auseinandergesetzt, und bin jetzt am entwickeln eines Peload-moduls, sobald das gescheit läuft ist der Crypter nicht mehr weit, deshalb brauche ich jetzt Ideen und vorschläge was ein Crypter alles können/haben sollte, denn im Nachhinein Sachen einbauen ist für mich immer ein Graus zumal meine Stubgens oft nicht so dynamisch sind :P

Schon dabei :

-Icon changen
-Fakemessage
-Eigener Key für die encryption wählbar (Rc4)
-Meltfunktion
-Pe-Realigner

/Edits
Geplant aufgrund von Vorschlägen :
- Gewünschte prozesse suspenden
- Binder (die files kann ich allerdings nicht auch über die mem starten sondern die werden im Appdatadir dann ausgeführt)
- Ein paar Antis
-Selfprotect (Ring0 werd ich nicht schaffen :P , mal sehen was sich da noch machen lässt)
- Bumper
- Eof Support


Spreadfuncs werde ich vmtl nicht einbauen..

Fixi
25.08.2010, 15:42
-Antis gegen Vmware,Virtual Pc, Wireshark, Cain & Abel, Sandboxie und und und
-P2P Spread
-Rar Spread
-Msn Spread
-Icq Spread

Sowas alles könnte man einbauen.

MFG

novedad
25.08.2010, 15:42
Was für mich wichtig wäre:

Spreading!

(USB Spreading, LAN Spreading, P2P Spreading...)

IRET
25.08.2010, 15:44
Also der Crypter sollte meiner Meinung nach einfach nur die Schleife am Anfang gegen die Emulatoren mancher AVs haben und eben die eigentliche Funktion.
Der Rest sollte im Builder sein.
Die verschiedenen Encryptions sind auch nur Platzverschwendung (außer bei Fun-in).

Ja der Builder sollte den Iconchanger (hast du schon) drin haben.
Dazu kann ich noch folgendes empfehlen:
-Fix/Realign PE
-Fix EoF
-Bind files

Ja vl wenn du DLL-Support einbaust wäre es auch gut ;).

//Edit:
Wer unbedingt einen Spreader will sollte sich find ich einen holen XD.
Das geht ja alles auf die Größe.

//Edit2:
Bei Paramter und Icon Hunter stimm ich Shadowstyle (http://free-hack.com/member.php?u=44915) zu.

Shadowstyle
25.08.2010, 15:46
Parameter Funktion.
Realign Pe Header
Change EP :D
Vielleicht sowas wie Update\ Fix Checksum
Protect Process / Hide (ein Ring 0 wäre gut :D)
Anti:
Debugger, Norman Sandboxie, Anubis, Vm, Wireshark unsw.
Evtl nen Section Adder..
Binder / Downloader, Ex-Pump.
Ein Icon Hunter.
Custom Stub.
Und vielleicht nen Kill Process.
Anti Netstat / Cmd.
Evtl Updates für Av's blocken.
Versions Information ändern z.B. Company etc.
Für nen Split Key ne Generate Funktion und das man die Länge einstellen kann.

Steiger_mp
25.08.2010, 15:47
-Antis gegen Vmware,Virtual Pc, Wireshark, Cain & Abel, Sandboxie und und und
-P2P Spread
-Rar Spread
-Msn Spread
-Icq Spread

Sowas alles könnte man einbauen.

MFG
das wär schon ein halber wurm ;)

Housecat
25.08.2010, 15:49
EOF - support
und nen exe-pumper sind auch ganz nützlich

Mofo
25.08.2010, 16:00
@shadow
Was hat der User denn von einem Sectionadder?


@fuckinhot
Ich weiß nicht genau was du mit Fix Eof meinst..
Die größe der Pe bzgl des zusätzlichen eofs korrigiere ich im Header dann schon (Realign)

Noize
25.08.2010, 16:02
Evtl.
Self Updater?

IRET
25.08.2010, 16:03
@fuckinhot
Ich weiß nicht genau was du mit Fix Eof meinst
EOF-Support wirds auch genannt.
Also du liest die EO-Daten vom zu cryptenten Programm aus und addest sie dann den gecrypteten Programm wieder.
Danach wird natürlich eine Korrektur der PE-Header (Realign PE) durchgeführt.

QpL
25.08.2010, 16:04
Mein Vorschlag:

Er schrottet RAT,Stealer und Bot "Server".

Der Rest wurde ja bereits gesagt.

Mofo
25.08.2010, 16:06
Also du liest die EO-Daten vom zu cryptenten Programm aus und addest sie dann den gecrypteten Programm wieder.Das wird allerdings sehr schwer wenn der Stealer(oder was auch immer) seine Pe-Size ebenfalls schon korrigiert hat, und seine Eofdaten anhand von Delimitern findet (Was meistens der Fall ist)
Aber das muss ich austesten ..
Wenn ein Eof vorhanden ist werd ichs berücksichtigen..

@Qpl
Wie stellst du dir das vor? Das die Stub dynamisch Rats und Bots des infizierten systems aufspürt, und diese vernichtet?
Wenn ich das könnte wäre ich nicht hier sondern würde millionen mit meiner neuen Av-solution machen ;)

IRET
25.08.2010, 16:24
Hab da noch eine Anregung.
Ein Polymorphic Engine wäre auch recht rakptisch.

Und hier noch ein paar Beispiele bei denen die Leute vergessen haben dass sie einen Crypter coden und kein 1337 Ultimate Tool das nebenbei die Datei auch noch FUD macht.
-Diverse Spreads(schon gesagt worden)
-Spreading-Exploit (exploit-db einfach schaun)
-Inject into XXX
-FWB++
-UAC-Bypass
-Kill AVs
-Disable AVs Update
-Disable Taskmanager/CMD
-Anti-Codes
-Downlaod&Exec
-Autostart
-Infect PE-Files
-Infect Archives


//Edit:
Sorry für Doppel/3-fach Post ,aber die Wenigsten lesen meine 1000 Edits :P.
Und ich glaub sowas wollte er wissen.

Tix
25.08.2010, 16:44
Das wird allerdings sehr schwer wenn der Stealer(oder was auch immer) seine Pe-Size ebenfalls schon korrigiert hat, und seine Eofdaten anhand von Delimitern findet (Was meistens der Fall ist)
Aber das muss ich austesten ..
Wenn ein Eof vorhanden ist werd ichs berücksichtigen..



Weißt du was EOF ist? (End of File)
Viele Stealer,RATs nutzen EOF um die Daten (ftp daten,dns usw) an die Exe zu schreiben, sind diese Daten funktioniert die Datei logischerweiße nicht.

Deshalb EOF Daten der zu cryptenden Exe einlesen und dann an die neue Exe schreiben.


lg

BlackShooth
25.08.2010, 17:32
Ich nehme immer nur so ganz normla die schicken mir zum crypten ("wenn man es richtig macht ")

Cristhecrusader
25.08.2010, 17:32
Automatisches Stub update bitte :P

QpL
25.08.2010, 17:34
Ich nehme immer nur so ganz normla die schicken mir zum crypten ("wenn man es richtig macht ")


Was..?

bolloys
25.08.2010, 18:09
Alle Infos aus einer .exe abrufen z.B die Info Version etc, und diese dan den gecrypteten Zeug hinzufügen ;)
Sprich File Cloner.

blackberry
25.08.2010, 18:12
-Eigener Key für die encryption wählbar (Rc4)

Grund? Habe ich jetzt schon häufiger auf irgendwelchen Screenshots gesehen, aber wenn wir ehrlich sind soll das doch nur Eindruck schinden und hat keinen praktischen Nutzen.

Hey, schau mal -- mein Crypter hat einen Button mehr ist also 10x besser!!einself!!!11

Wenn man ehrlich ist wäre es doch viel besser einfach einen ANSTÄNDIGEN(!) Zufallsgenerator einzusetzen und dafür dann auch den gesamten Zeichensatz zu verwenden (alphanumeric sucks).


btw: das darf man sich auch gerne sonst mal zu Herzen nehmen.
Auf Screenshots von Cryptern sieht man teilweise nur noch irgendwelche Checkboxen bei denen man irgendwelchen Müll aktivieren, oder deaktivieren kann, obwohl man das sowieso fast immer aktiviert lassen würde.

Das trifft auch insbesondere auf Anti's zu (wobei die meißtens sowieso nur noob-Reverser abhalten würden, aber das ist ein anderes Thema): entweder man will sie, oder man will sie nicht.
Mir würde kein sinnvolles Szenario einfallen, indem man ein Anti-X will, aber kein Anti-Y.
Also entweder man aktiviert alle, oder man deaktiviert alle. Irgendwas dazwischen erscheint mir sinnlos (es sei denn die Stub wird wirklich vom Builder generiert, also je nach Wunsch zusammengebaut, wodurch dann halt je nach Auswahl auch die Größe variieren würde -- aber das bekommt hier sowieso [fast] niemand auf die Reihe, also lassen wir das Thema lieber gleich wieder).

Mofo
25.08.2010, 22:22
Ersteinmal danke für die vielen Anregungen :P



Weißt du was EOF ist? (End of File)
Viele Stealer,RATs nutzen EOF um die Daten (ftp daten,dns usw) an die Exe zu schreiben, sind diese Daten funktioniert die Datei logischerweiße nicht.

Deshalb EOF Daten der zu cryptenden Exe einlesen und dann an die neue Exe schreiben.
lg

Ich könnte keinen Crypter schreiben wenn ich das nicht wüsste :P

Ans ende der exe heist nicht das man es findet wenn man im Eof (Realsize-(pointertorawdata + SizeOfRawData) <- so suche ich dannach ) schaut, denn viele stealer korrigieren das wegen antivir und suchen sich ihr 'eof' anhand von Trennstrings.. So mache ich das auch..
Aber so eine Pe zu starten muss ich noch testen..
Wenn die letzte section dann einfach größer ist dann sollte das kein Problem sein..


@blackberry
Ja ein eigener Key ist natürlich nur Augenwischerei :P
Ich werde mir das zu Herzen nehmen und die ganzen Optionen die toll aussehen nicht zum auswählen anbieten..

Wenn das weglassen von Optionen die exe kleiner machen sollte dann müsste ich linker etc mit einbinden und das vor Ort compilieren lassen ? Oder wie sonst wäre das umzusetzen ?

@fuckinghot
Was sollte denn polymorph sein..
Und wie sieht das konkret aus, ich habe mich noch nie mit polymorphie auseinandergesetzt..

nom
25.08.2010, 22:37
polymorphe stub bedeutet, dass sowohl deine encrypt routine als auch die functions positionen, der junkcode und der encryption key sich jedes mal zu 100% ändert.

Fuhs.de [Fachartikel - Verschlüsselungsgeneratoren für Computerviren Teil 2] (http://www.fuhs.de/de/fachartikel/artikel_de/enkryptgen2.shtml)

IRET
25.08.2010, 22:38
@fuckinghot
Was sollte denn polymorph sein..
Und wie sieht das konkret aus, ich habe mich noch nie mit polymorphie auseinandergesetzt..
Polymorphic code - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Polymorphic_code)
Und hier ein Opensource Virus der ein Polymorphic Engine verwendet.
http://eof-project.net/sources/DarkProphet/Wn32.Anunnaki.rar
Kleine Beschreibung vom Coder:
- Entry-Point-Obscuring, polymorphic, last section appender.
- Infects PE files in the current directory.
- Patches ExitProcess/exit/_exit functions to obscure it's entry point.
- Polymorphic engine - OPE2 (Offensive Polymorphic Engine 2).
- Anti-heuristics, anti-debug, anti-emulation.

wacked
25.08.2010, 22:38
Nein dann mußtest du nicht deinen eigenen Linker einbauen. Es würde reichen die Anti´s (oder was auch immer so gespeichert werden soll) irgendwo in der exe zu speichern (codecave? neue sektion?), je nach bedarf addressen anzupassen (zb wo ist der Eintrag im IAT in dem die Funktion IsDebuggerPresent "gespeichert" ist), und den EP so zu verändern das er zu den zusätzlich eingefügten Funktionen springt.

QpL
25.08.2010, 22:49
Ich schreib' jetzt einfach mal in Mofos Thread weil das hier gerade Thema ist.

Versteh ich das richtig, dass die ganze "Magie" hinter Polymorphic Code ist, dass ich jedesmal z.B eine Extravariable mit irgendwelchen müll erzeuge?

z.B zwischen Entschlüsselungsroutine eine Funktion, die eine Extravariable mit Zufallszahlen (rand() z.B) zubombt aber nichts an der Entschlüsselung ändert?


Grüße

Mofo
25.08.2010, 22:57
Les was nom geschrieben hat , ein bisschen mehr ist es wohl schon ;)

Und jedes mal eine neuartige encryption zu erzeugen ist schwer

IRET
25.08.2010, 23:03
Versteh ich das richtig, dass die ganze "Magie" hinter Polymorphic Code ist, dass ich jedesmal z.B eine Extravariable mit irgendwelchen müll erzeuge
Nein das ist einfach Junkcode.
Ich zitiere mal die 1. beiden Sätze aus meinen geposteten Wikipedia Link:

In computer terminology, polymorphic code is code that uses a polymorphic engine (http://en.wikipedia.org/wiki/Polymorphic_engine) to mutate while keeping the original algorithm (http://en.wikipedia.org/wiki/Algorithm) intact. That is, the code changes itself each time it runs, but the function of the code (its semantics (http://en.wikipedia.org/wiki/Semantics)) will not change at allAlso du hast jetzt zB:

mov eax,0Eine andere Variante wäre dann

xor eax,eaxIn beiden Fällen geschieht das Selbe ,aber es ist ein anderer Code.
Im Endeffekt wird eax dann 0.
Und das verändert sich bei jedem Start vom Programm.
Codevirtualisierung könnte dies möglich machen (Dizzy_D weiß dazu viel ;)).
Aber das Thema ist so komplex ,dass du ruhig einen eigenen Thread dazu aufmachen kannst.

//Edit:
Mir ist grad aufgefallen ,dass ich das 0815-Beispiel gebracht hab.
Also hier ein 2.:
Aus

mov eax,ecx
wird

mov eax,0
add eax,ecx
und draus kann wiederum

xor eax,eax
sub eax,ecx
add ecx,ecx
add eax,ecx
werden.

Und so weiter und sofort.
Natürlich sollte der Code nicht bei jedme Ausführen wachsen ,daher sollte man nicht auf die einzelnen Befehle eingehen sondern mehr auf die Segmente.
So kann der Code zB dann Original um 1 byte länger als der veränderte sein.

QpL
25.08.2010, 23:53
Na gut, hab halt in dem Wikilink nur das Beispiel unten mit der C-Variable gesehen - aber jetzt hats klick gemacht .
Danke für die Erklärung

grüße