Hier folgt nach und nach eine kleine Auflistung von Begriffen wie Crypter,EOF,Stub,RunPE,Trojaner… .
Damit möchte ich eine kleine Basis an Grundbegriffen hier schaffen, welche jeder kennen sollte.
Es folgen auch Tutorials zu Fragen wie : „Warum meldet Antivir bei meinem Programm Dropper.Gen ?“,“Wie funktioniert ein Crypter“,
„Wie kann ich meine eigene Malware schreiben (Trojaner,stealer,bot,…).
Diese Tutorials werden eher weniger Code enthalten und mehr Pseudocode zur Erläuterung bieten.
Ich möchte das hier eine Basis an Wissen entsteht und würde mich freuen, wenn ich ihr Begriffe mir per pn schickt, die ihr gerne erklärt haben möchtet,
oder auch kleinere Fragen. Das soll nicht heissen, das ich hier jedem bei seinem l33t crypter helfe sondern, dass ich im Interesse der Community
Wissen und Informationen teilen möchte.
Anfangen werd ich hier mit einer kurzen Erläuterung zu den typischen Antivir Meldungen die ein „.gen“ enthalten.
Wieso taucht dieses .gen bei meinem Crypter/Tool/Trojaner oder was auch immer auf ?
Euer Programm beinhaltet Signaturen(„code“), die schon zu oft benutzt wurden und generisch erkannt werden können.
Das beste Beispiel dafür ist das übliche Builder-Stub-Prinzip.
Hier wird an das Ende der Datei( auch EOF genannt) die Stub angefügt.
Das führt zu einer Signatur die jeder Crypter-Entwickler schonmal gesehen hat und vermutlich auch ausprobiert hat.
Wenn aber die Stub geteilt wird in viele verschiedene Teile und dann an bestimmten stellen eingefügt wird wird diese
bekannte Signatur geringer und einzigartiger. Das Problem hierbei ist das „Wie?“. Das überlasse ich natürlich jedem selber.
Andere Ansätze seine Stub zu speichern sind auch bekannt wie : In den Resourcen,in Strings o.ä.. .
Aber nicht nur das führt zu dieser Meldung. Wenn ihr z.b. eine RunPE(ausführliche Erläuterung folgt nocht) von anderen Cryptern
kopiert, kopiert ihr deren Signatur mit und das kann bei zu häufiger Verwendung auch eine generische Erkennung mit sich führen.Das beste Beispiel für Aviras Meldung TR/Dropper.gen ist wenn euer Programm ein Byte Array von irgendwo einliest, dann auf der Festplatte droppt
und versucht dieses über zb. Diagnostics.Process.Start(datei.exe) zu starten.
Das führt erstens dazu, das antiviren Software euer Programm überprüfen können und zweitens, das die Signatur erkannt wird.
Was bedeutet EOF ?
Das gängige EOF was hier relevant ist, ist das Ende der Datei, was im PE Header angegeben wird.
Wenn das EOF aus dem Header nicht mit der tatsächlichen Dateigröße übereinsteimmt melden diverse
Antiviren Programme eine generische Warnung(siehe oben).
Das beste dieses zu beheben ist, den PE Header zu manipulieren.
Die meisten Malware tools machen das, indem sie die Datei öffnen ein Byte ranhängen und diese wieder schliessen.
Das ist zwar nicht der wirklich „richtige“ Weg, hilft aber bei den meisten Fällen.
Ich gehe hier auch nicht weiter auf das „fixxen“ ein, da es mit PE Header Manipulation zu tun hat und das wiederrum imho nicht
Einsteigergerecht ist.
Was ist eine „stub“ ?
Dieses wird zumeist an das Ende einer Datei geschrieben und der Einstiegspunkt wird hierhin verschoben.
Somit wird die stub gestartet und diese lädt dann das eigentliche Programm. Es gibt verschiedene Methoden um das umzusetzen(siehe EOF und .gen)
Was ist eine RunPE ? (by EasySurfer)
Das Ausführen kann auf verschiedenen Wegen erfolgen, daher ist es nötig native Sprachen (C++, Delphi, VB6) und .NET (C#) zu trennen.In nativen Sprachen startet man das Programm, welches sich im Arbeitsspeicher befindet, über eine sog. Injection. Dabei wird in einen laufen Prozess Code Injeziert, genauer gesagt ein neuer Thread gestartet. Nachdem das Programm aus dem Arbeitsspeicher in den Speicher des fremden Programms geschrieben und gemapped wurde, wird über ein Aufruf von „CreateRemoteThread“ ein Thread erzeugt, welcher das Programm dann ausführt.In .NET kann man einfach eine neue Assembly (Programm) über Assembly.Load(byte[] Data) laden und dann den Entry-Point (Einstiegspunkt der Anwendung) aufrufen.
So erstmal genug für heute ich mach Feierabend.
Der Thread wird in den nächsten Tagen/wochen öfter mal erweitert und wenn ihr auch szene Technische erläuterungen habt, schickt mir die bitte per pm.
Ich lese diese dann durch (korrigiere ggf. falls mein skill lvl das zulässt :D ) und poste das dann hier im Thread mit eueren Credits.
Somit will ich das hier alles sehr übersichtlich gestalten.
Diskussionen wünsche ich mir dieses Mal nicht im Thread sondern extern
(Pm oder neuer DiskussionsThread).
Mfg WD40 :)
Quelle : secunet.to