PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alles FUD machen: so gehts...



kat23
17.12.2008, 17:59
Ich seh immer wieder Themen a la "Wie mach ich meinen Trojaner ud?", etc.

Da könnt ihr noch so viele Crypter, Packer und Binder testen, eine langfristige Lösung wird das nicht sein. Genau so dumm ist es, sich sowas zu kaufen.

Ich hab eigentlich gar keinen Bock ein Tutorial für desktruktive Teenager zu schreiben, die irgendwelche nervigen Trojaner im Internet verbreiten, aber was solls, mir geht einfach dieses Kiddygefrage und dieses ständige "FUD?????ßßßß!!111crYpt0rbInd0r!!11einseinself" auf die Nerven.



Zu allererst solltet ihr euch ein wenig den Aufbau einer PE Datei anschauen:


[ PE HEADER ^ 00004550h ]

[ OPTIONALER HEADER / DATENABLAGE ]

[ SECTIONS / FLAGS ]

-- Code Section
-- Initialisierte Daten
-- Uninitialisierte Daten
-- Shared Block
-- Executable
-- Readable
-- Writable

Ein PE Datei besteht aus einem DOS-MZ-Header + DOS Stub und einem PE Header. Darauf folgt die Section Table, die beliebig viele Sections enthalten kann. Jede Section darf gewisse Flags besitzen, die ihr gewisse Dinge zuweisen.

Die Interessanten Flags sind die Flags SHARED, EXECUTABLE, READABLE und WRITABLE.

Shared Flag: Sorgt dafür, dass die Sektion mit diesem Flag nur ein mal in den Speicher geladen wird. Ist das Flag nicht gesetzt, wird sie jedes mal aufs neue in den Speicher geladen.

Readable: Erlaubt Lesezugriff.

Writable: Erlaubt Schreibzugriff (kann zu Kollisionen mit Writable kommen).


Ein PE-Header sieht kodiert standartmäßig immer so aus:


4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00
B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 E8 00 00 00
0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68
69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F
74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20
6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00

Wenn ihr nun euren Trojaner/Keylogger/Blubb undetectable haben wollt, nehmt eure PE-Datei und vertauscht die Sektionen sowie die Parts.

Beispiel:


\x44\x00\xE8\x3F\x24\x01\x00\x83\xC4\x04\x81
\x06\xFC\xEF\xFF\xFF\xC3\x50\x8B\xCE\xE8\xB7
\xF2\xFF\xFF\x81\x06\xFC\xEF\xFF\xFF\xC3\x8B
\x57\x18\x83\xEC\x10\x83\xFA\x10\x53\x55\x56
\x8D\x77\x04\x72\x04\x8B\x06\xEB\x02\x8B\xC6
\x8B\x4F\x14\x8D\x2C\x01\x85\xED\x74\x20\x83
\xFA\x10\x72\x04\x8B\x06\xEB\x02\x8B\xC6\x3B
\xC5\x77\x11\x83\xFA\x10\x72\x04\x8B\x06\xEB
\x02\x8B\xC6\x03\xC8\x3B\xE9\x76\x05\xE8\xBE
\x22\x01\x00\x8B\x4F\x18\x83\xF9\x10\x72\x04
\x8B\x1E\xEB\x02\x8B\xDE\x85\xDB\x74\x1F\x83
\xF9\x10\x72\x04\x8B\x06\xEB\x02\x8B\xC6\x3B
\xC3\x77\x10\x83\xF9\x10\x72\x02\x8B\x36\x8B
\x47\x14\x03\xC6\x3B\xD8\x76\x05\xE8\x88\x22
\x01\x00\x55\x57\x53\x57\x8D\x4C\x24\x20\x51
\x57\xE8\x15\x00\x00\x00\x5E\x5D\x5B\x83\xC4
\x10\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC
\xCC\xCC\xCC\xCC\xCC\x53\x55\x56\x8B\x74\x24
\x10\x8B\x4E\x18\x83\xF9\x10\x57\x8D\x5E\x04
\x72\x04\x8B\x3B\xEB\x02\x8B\xFB\x85\xFF\x74
\x23\x83\xF9\x10\x72\x04\x8B\x03\xEB\x02\x8B
\xC3\x3B\xC7\x77\x14\x83\xF9\x10\x72\x04\x8B
\x03\xEB\x02\x8B\xC3\x8B\x4E\x14\x03\xC8\x3B
\xF9\x76\x05\xE8\x1F\x22\x01\x00\x83\x7C\x24
\x20\x00\x8B\x6C\x24\x1C\x75\x04\x33\xF6\xEB
\x18\x83\xFD\xFE\x74\x0D\x85\xED\x74\x04\x3B
\xEE\x74\x05\xE8\xFE\x21\x01\x00\x8B\x74\x24
\x20\x2B\xF7\x8B\x7C\x24\x28\x85\xFF\x75\x04
\x33\xC0\xEB\x1C\x8B\x44\x24\x24\x83\xF8\xFE
\x74\x0D\x85\xC0\x74\x04\x3B\xC5\x74\x05\xE8
\xD6\x21\x01\x00\x2B\x7C\x24\x20\x8B\xC7\x8B
\x6C\x24\x14\x50\x56\x8B\xCD\xE8\x1F\x6C\xFF
\xFF\x8B\x4D\x18\x83\xF9\x10\x72\x04\x8B\x03
\xEB\x02\x8B\xC3\x03\xF0\x8B\x7C\x24\x18\xC7
\x07\x00\x00\x00\x00\x74\x23\x83\xF9\x10\x72
\x04\x8B\x03\xEB\x02\x8B\xC3\x3B\xC6\x77\x14
\x83\xF9\x10\x72\x04\x8B\x03\xEB\x02\x8B\xC3
\x8B\x55\x14\x03\xD0\x3B\xF2\x76\x05\xE8\x7F
\x21\x01\x00\x89\x2F\x89\x77\x04\x8B\xC7\x5F
\x5E\x5D\x5B\xC2\x18\x00\xCC\xCC\xCC\xCC\xCC
\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\xFF\x68
\x86\xB5\x43\x00\x64\xA1\x00\x00\x00\x00\x50
\x53\x56\x57\xA1\xC0\xCC\x44\x00\x33\xC4\x50
\x8D\x44\x24\x10\x64\xA3\x00\x00\x00\x00\x8B
\x7C\x24\x20\x33\xDB\x8D\x77\x1C\x53\xC7\x46
\x18\x07\x00\x00\x00\x89\x5E\x14\x68\x04\x3C
\x44\x00\x66\x89\x5E\x04\xE8\x0B\x6C\xFF\xFF
\x89\x5C\x24\x18\x8D\x77\x38\x53\xC7\x46\x18
\x07\x00\x00\x00\x89\x5E\x14\x68\x04\x3C\x44
\x00\x66\x89\x5E\x04\xE8\xEB\x6B\xFF\xFF\xB8
\x01\x00\x00\x00\x88\x44\x24\x18\x8B\x4C\x24
\x24\x89\x0F\x89\x47\x18\xC7\x44\x24\x18\xFF
\xFF\xFF\xFF\x8B\xC7\x8B\x4C\x24\x10\x64\x89
\x0D\x00\x00\x00\x00\x59\x5F\x5E\x5B\x83\xC4
\x0C\xC2\x08\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC
\xCC\xCC\xCC\x55\x8B\xEC\x83\xE4\xF8\x6A\xFF
\x68\x08\xC0\x43\x00\x64\xA1\x00\x00\x00\x00
\x50\x83\xEC\x28\xA1\xC0\xCC\x44\x00\x33\xC4
\x89\x44\x24\x20\x53\x56\x57\xA1\xC0\xCC\x44
\x00\x33\xC4\x50\x8D\x44\x24\x38\x64\xA3\x00
\x00\x00\x00\x8B\x45\x08\x89\x44\x24\x10\x33
\xDB\x8B\xC1\xC7\x44\x24\x2C\x0F\x00\x00\x00
\x89\x5C\x24\x28\x88\x5C\x24\x18\x8D\x70\x01
\x8A\x10\x83\xC0\x01\x84\xD2\x75\xF7\x2B\xC6
\x50\x51\x8D\x4C\x24\x1C\xE8\xE5\x69\xFF\xFF
\x89\x5C\x24\x40\x8B\x4C\x24\x2C\x83\xF9\x10
\x8B\x54\x24\x18\x8B\xC2\x73\x04\x8D\x44\x24
\x18\x8B\x74\x24\x28\x8D\x3C\x30\x3B\xFB\x74
\x20\x83\xF9\x10\x8B\xC2\x73\x04\x8D\x44\x24
\x18\x3B\xC7\x77\x11\x83\xF9\x10\x8B\xC2\x73
\x04\x8D\x44\x24\x18\x03\xC6\x3B\xF8\x76\x0D
\xE8\x12\x20\x01\x00\x8B\x4C\x24\x2C\x8B\x54
\x24\x18\x83\xF9\x10\x8D\x5C\x24\x14\x0F\x82
\x99\x00\x00\x00\x85\xD2\x8B\xF2\x74\x24\x83
\xF9\x10\x8B\xC2\x73\x04\x8D\x44\x24\x18\x3B
\xC6\x77\x15\x83\xF9\x10\x8B\xC2\x73\x04\x8D
\x44\x24\x18\x8B\x4C\x24\x28\x03\xC1\x3B\xF0
\x76\x05\xE8\xCE\x1F\x01\x00\x8B\x54\x24\x10
\x57\x53\x56\x8D\x44\x24\x20\x50\x8B\x44\x24
\x20\x52\x83\xC0\x1C\xE8\x71\x7E\xFF\xFF\xC7
\x44\x24\x40\xFF\xFF\xFF\xFF\x83\x7C\x24\x2C
\x10\x72\x0D\x8B\x44\x24\x18\x50\xE8\x5A\x22
\x00\x00\x83\xC4\x04\xC7\x44\x24\x2C\x0F\x00
\x00\x00\xC7\x44\x24\x28\x00\x00\x00\x00\xC6
\x44\x24\x18\x00\x8B\x4C\x24\x38\x64\x89\x0D
\x00\x00\x00\x00\x59\x5F\x5E\x5B\x8B\x4C\x24
\x20\x33\xCC\xE8\x68\x1A\x01\x00\x8B\xE5\x5D
\xC2\x04\x00\x8D\x74\x24\x18\xE9\x64\xFF\xFF
\xFF\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\xFF\x68

Ihr splittet das ganze und setzt es ihm Nachhinein wieder aneinander. Das würde euren Trojaner Scantime 100%ig undetectable machen, wenn er auch Runtime undetectable sein soll, müsst ihr die Speichersegmente einzeln in den Puffer laden.

Das wäre Methode eins, die 100%ig funktioniert und bei einer Stack Randomization dazu führt, dass euer Trojaner/Keylogger/Blubb zumindest bis zur Heuristik Erkennung dauerhaft undetectable bleibt.

Die zweite Methode ist noch simpler, aber ein wenig uneffektiver. Ihr schreibt einfach euren eigenen "Packer", dazu empfehle ich den Lempel Ziv Welch (LZW) Algorithmus, ihr könnt aber gerne verschiedene Algorithmen durchprobieren. Diese sind mit Sicherheit noch "FUD". Dazu schreibt ihr ein kleines Tool, welches den Datensatz verschlüsselt und im Code wieder entschlüsselt (Loader). FSG z.B. fußt auf dasselbe Prinzip.

Also dann, viel Spaß beim hax0rn... Wer jetzt noch einmal das Wort "FUD" in den Mund nimmt wird kastriert.

Korni22
17.12.2008, 18:19
wie wärs mit genaueren erklärung beim vertauschen?
wie kommt es dazu, das es hinterher so aussieht?

Sirect
17.12.2008, 18:20
Genau das habe ich mich auch gefragt, obwohl dass ja der Kernpunkt des Tutorials ist hast du das garnicht erklärt xD

kat23
17.12.2008, 18:20
wie wärs mit genaueren erklärung beim vertauschen?
wie kommt es dazu, das es hinterher so aussieht?

Was gibt es denn da genauer zu erklären? Du anagrammierst den Code - ende.

Sirect
17.12.2008, 18:22
ACHSOOOOO, dann ist ja alles geklärt, vielen Dank xD ( Ja das war Ironie ;) )

kat23
17.12.2008, 18:41
Nochmal für die, die gar nichts gecheckt haben: Ich hab euch noch ein kleines Tool zum anagramieren von Code geschrieben... Langsam reichts aber mal, wer jetzt nichts verstanden hat, sollte es lieber gleich lassen:


#!/usr/bin/perl -w
# Crap Anagramator
# www.katharsis.x2.to

use strict;
use List::Util qw(shuffle);

my $in = shift; # Input file

if (!$in) {
print "\nUsage: code-angrm.pl <file>\n";
exit;
}

open(F, "<$in") or die $!;
my $file = join('', <F>);
close(F);

my @anagr = split(/\n/,$file);

@anagr = shuffle(@anagr);


for (@anagr) {
print $_."\n";
}

GregorSamsa
17.12.2008, 19:10
Also, wer sich hier Hacker schimpft, sollte das durchaus verstehen können - ist nicht soo schwer wenn man etwas nachdenkt...

Cr4ckEye
17.12.2008, 19:13
*Schleim Mode an* Du bist Gott *Schleim Mode Off* :-D Also ich finds gut und verständlich, wenn man sich mal einen Moment einliest. Microsoft selebr hat eine ausführliche Dokumentation über das PE format.

MfG

I3iLLiG
17.12.2008, 19:24
toll das das jetzt pub ist -.-"
naja die hälfte raffts eh net..

aber btw Heuristik musst ich in wikipedia eingeben xD

kat23
17.12.2008, 19:33
toll das das jetzt pub ist -.-"
naja die hälfte raffts eh net..

Genau deswegen hab ich's veröffentlicht. Dass ich ein Tool zur Anagrammierung geschrieben hab ist eine absolute Ausnahme, diese Methodik sollen nur jene verwenden, die es auch peilen.

Darkraiser
17.12.2008, 19:35
:) ja Kat du kennst mich ja und ich kann immer wieder sagn Respekt ..

du hast eigendlich, dass einzigst richtige gemacht...

du hast allen ne möglichkeit geboten ihre Rats .. etc Fud zu bekommen .. aber dabei so geschrieben, dass es nicht jeder anfänger kapiert .. ^^

ich hoffe ich finde es auch als Paper auf deiner seite ;)

mfg

till7
17.12.2008, 19:55
gehts euch noch? es kann doch net jeder zweite um hilfe bitten und die icq nummer hinterlassen... wenn dass so weitergeht könnten 80% der free hack user hier die nummer hin schreiben weil es eben nicht ganz leicht ist aber für mich absolout verständlich!

sn0w
17.12.2008, 20:11
entweder ihr versteht es, oder ihr lasst es bleiben!
Natürlich muss man sich erst einlesen, um es zu verstehen, aber genau darum geht es doch...

Mfg

Rhodos
17.12.2008, 20:23
Wenn ihr was nicht versteht, steig tiefer in die Materie des Themas und lest es dann einfach noch mal.Gibt genug Erklärungen im WWW.

till7
17.12.2008, 20:28
naja die, dies nicht verstehen spielen auf cool und meinen dass es für anfänger ist.. klar wenn man selbst nicht draus schlau kommt..

RobinoStylez
17.12.2008, 20:29
Welcher Anfänger Versteht das den bitte? @ till7? Erst Denken
Dan Schreiben Danke :)

bibo
17.12.2008, 20:32
also das mit dem pe code hab ich jetzt hinbekommen!!

aber ich versteh nicht, wie der umgewandelt wird?

I3iLLiG
17.12.2008, 20:41
Hier ist das Tutorial:

http://kat.110mb.com/manifest.htm

dette
17.12.2008, 21:01
Eine Frage: Wie finde ich die Sektionen im Code?

Assassina
17.12.2008, 21:02
Hier ist das Tutorial:

http://kat.110mb.com/manifest.htm

Ähm, ist noch alles klar bei dir???

Sirect
17.12.2008, 21:09
Hier ist das Tutorial:

http://kat.110mb.com/manifest.htm

Ähm, ist noch alles klar bei dir???

Genau das habe ich mich auch gerade gefragt - Alter was geht bei dir ab?
Ich persönlich finde das Manifest übrigens ziemlich gut :P