Optix Stealthen

Hallo,
trotz des wohl eindeutig klingenden Titels, möchte ich kein Tutorial haben wie man Trojaner Stealthen kann.
Ich habe mich im Rahmen meiner Ausbildung und weils mich interessiert ;-)
damit beschäftig, auch mit dem Stealthen.
Ich habe dafür einfach mal den guten alten Optix Pro 1.33 genommen, ihn erst mit Thermida "geschützt"(da das Prog ja eigentlich dafür da ist, Dateien vor Crackern zu schützen) ,das ging auch. Um allerdings Avira AntiVir zu täschen musste ich mit "AV Devil" ran, hab mir die Offset-Bereiche(es war eig nur einer) angeguckt und "00"-Werte in "FF"-Werte geändert bis AntiVir die Datei nicht mehr als Bedrohung ansah.
Mein Problem ist, dass wenn ich es schaffe den Hexcode so zu ändern, das Antivir ihn nicht als Trojaner ansieht und ich ihn versuche zu starten, kommt die Fehlermeldung:"Trojaner.exe ist keine zulässige Win32 Anwendung."
Ich hoffe das mir hier geholfen werden kann, ich möchte Verstehen WARUM dieser Fehler auftacht und evtl. wie man ihn umgeht.

Danke schonmal für Hilfe!

PS: Ich weiß natürlich um die Prisants dieses Themas, da man Trojaner ja eigentlich nur einsetzt um Illegale Handlungen durchzuführen. Ich möchte daher versichern, dass ich das nur aus reinem Interesse an meinem Beruf versuche und absolut KEINE Illegalen Handlungen vor habe.
Fals dies nicht genug ist und/oder meine Fragen(oder die Antworten) gegen die Regeln verstoßen bitte ich dieses Thema zu schließen und ggf. zu löschen.
Aber ich denke, dass allein das Wissen um solche Sachen nicht Strafbar ist ;-)
 
Ich muss vorausschicken, dass ich keinerlei Erfahrung mit "stealthen" und Schützen vor AV-Software, allerdings glaube ich zu wissen, was falsch ist:

Du scheinst den Header einer *.exe-Datei zu verändern und zwar solange, bis ein AV keinerlei Bedrohung feststellen kann, da es keine gültige ausführbare *.exe ist.

Wenn du diese Datei stealhten möchtest, darfst du nicht den Header ändern. Es muss erkennbar eine *.exe bleiben.

Falls ich falsch liege bitte korrigieren ;)
 
mh, kann sein. Obwohl ich habs ja nach ner Anleitung gemacht(mit dem Underground book<-- kann ich nur empfehlen) und AV Devil gibt mir ja Bereiche, inden ich was ändern muss. (z.b. 3d-200[hex]) glaube dort ist kein Header mehr, oder?
 
Schreibe einfach einen Packer, der jetzt nicht so die Standardroutinen enthaelt, die auf jeder zweiten Inetseite stehen und die nicht so einfach Generisch entpackt/erkennt werden koennen, dann sollte es kein Problem sein. Oder schreib lieber gleich deine eigene Backdoor, dass ist weniger anstrengend ;)
 
Selbstschreiben = Weniger ansträngent?
Sry, aber DAS glaub ich net. Hab schon selbst Versucht, nen Trojaner zu schreiben, nach einigen Tagen intensiven Proggen hab ichs auch geschafft(hatt zwar net viel gemacht, aber die Grundfunktion von nem Trojaner wars schonmal)
Aber sowas Komplexes wie Optix, Sub7 od CIA - dafür reichen meinen Fähigkeiten noch nicht. (betone NOCH ;-) )
Ich will ja was übers Stealthen erfahren - frei nach dem Motto: "Der Weg ist das Ziel"

Ich möchte gern wissen, warum die Art und Weiße meines Versuchs scheiterte.
Habs Stundenlang versucht, jedes mal den Hex Code anders geändert, aber nie kam das gewünschte Ergebniss.
 
Erlaube mir eine Gegenfrage: Was bewirkst du denn, wenn du mit einem Hexeditor bestimmte Bereiche einer Datei bearbeitest? Diese Frage solltest du beantworten können, denn sonst bringt dir deine ganze Arbeit (wenn ich das richtig verstanden habe änderst du wahllos irgendwelche 00en in FFs - worin liegt da der Sinn?!) nichts. Und damit meine ich nicht die Auswirkungen auf Virenscanner irgendeiner Art.

Optix Pro (2002), Sub7 (1999) haben ihre besten Jahre weit hinter sich gelassen (d.h. sehr viele Mutationen dieser Trojaner sind bereits im Umlauf und werden von den üblichen Scannern leicht erkannt), daher auch der Tipp mit dem Programmieren. Wenn dir das schon Schwierigkeiten bereitet sehe ich in deinem restlichen Vorhaben jedoch keinerlei Sinn. Ohne Grundlagen (Dateiaufbau, OS-Grundlagen, Funktionsweise von Virenscannern,...) wirst du nie auf einen grünen Zweig kommen. Man könnte auch sagen, dass alle Wege nach Rom führen, du läufst jedoch nicht nach der Karte, sondern quer durch die Gegend ;)
 
Sowie ich das bisher Verstanden habe, erkennt der Virenscanner den Trojaner anhand bestimmter Signaturen, diese Signaturen ändere ich indem ich die "00"s in "FF"s ändere
wo ich das tun muss sag mir ein anderes Prog, welches (scheinbar) den code aus der exe kopiert und sobald das AV prog ne Wahrung bringt, merkt der sich diesen Bereich.(den Bereich indem ich "00" ändern muss)

Zu dem Grundwissen, ich habe Grundwissen(ja hab ich ;-) ), natürlich weiß ich net alles und ehrlich gesagt, hab ich kaum Lust dazu ewig lange Texte zu lesen, die mir den Aufbau von z.b *.exe`n erklären(selbsverständlich ist auch das wichtig), nur lehrne ich sowas gern "nebenbei" wenn ich ein "interessanters" Ziel verfolge.
Und wie in meinem ersten Text geschrieben, mache ich das um was zu lehrnen und nicht um am Ende irgentwelche PCs zu infizieren und mich daran aufzugeilen(sry, für die Wortwahl)

Also wenndu mir sagst, dass ich für sowas unbedingt den Aufbau von *.exe`n lehrnen muss, werd ich gleich mal mein Lehrbuch aufschlagen(bin für Kritik immer offen)

Original von .doc
Man könnte auch sagen, dass alle Wege nach Rom führen, du läufst jedoch nicht nach der Karte, sondern quer durch die Gegend ;)

Bin eben ein Querdenker ;-)
 
Das Problem an der Sache ist, dass man nicht einfach wahllos in einer .exe rumpfuschen kann. Was ist wenn du eine Stelle änderst, die wichtig für den Programmablauf ist? Ein Funktionsaufruf kann dann mal ganz schnell ins Nirvana führen und bum die .exe crasht. Ohne genaustens zu wissen welche Stellen du ändern musst, wird das nie was.
 
war ja nicht wahlos, ich hab mich nach der Aleitung im Undergroundbook gerichtet. außerdem ist mir aufgefallen, dass das Symbol der *.exe sich änderte, wenn ich einzelne "00"s änderte, die hab ich dann so gelassen(weil ich dachte, dass diese Änderungen eben den Programmablauf stören) und mich durch den definierten Bereich durchgearbeitet.

Zitat aus dem Buch:

Jetzt die Datein mit einem Hex-editor öffnen und zur Positon "3D" gehen, dies ist der anfang des Offset bereichs. Hier müssen nun "00"-Werte in "FF"s oder "22" geändert werden.
Ändern sie einen Wert und fals Antivir die datei immernoch erkennt ändern sie ein weiteren werd, solange bis die datei nicht mehr als gefährlich erkannt wird.

Zitat Ende

Das ist ja eigentlich nicht wahlos. Oder schreiben die vlt was falsches?

Ich Versuche ja nach besten Wissen und Gewissen zu handeln.
 
Also:
1) nach diesem Buch sind bestimmt schon paar tausend Leute vorgegangen, so dass alle möglichen Kombos schon "blacklistet" sind.
2) 3d bis 200 sollte eigentlich ziemlich genau der PE-Header sein. Den ändert man im Hexeditor nur mit einer guten PE-Referenz ;). Oder einem PE-Editor.
http://www.ntcore.com/exsuite.php

es gibt sehr viele Werte, die komplett frei geändert werden können. (von nun an beziehe ich mich auf die Bezeichnung der einzelnen Werte im CFF Explorer, allerdings sollte auch der Klassiker LordPE nicht anders sein - nur bietet dieser nicht so viele Optionen ;) )
Da wären erstmal im DOS Header alle Werte außer e_magic und e_lfanew. Im FileHeader wären das TimeDateStamp, Checksum sowie NumberOfSymbols (sofern PointerToSymbolTable gleich 0 ist)
Im Optional Header sind es Major/MinorLinkerVersion, SizeOfCode, SizeOfInitializedData, SizeOfUninitializedData, BaseOfCode, BaseOfData, Checksum.
Im DataDirectorys kann man DebugDirectory Sachen löschen sowie Configuration, Exception Directorys.
Bei den SectionHeaders kann man die Namen komplett freiwählen (eventuell aber an "realistische" Namen halten - dazu einfach paar andere Exen mit CFF öffnen und Namensgebung der Section schauen).
Je nach dem kann man auch VirtualSize Eingräge gleich mitändern (nur einen kleinen Wert hinzuaddieren, es muss aber gelten: neuer VirtualSize Wert+VirtualAddress <= VirtualAddress der nächsten Section.
Bei Importdirectorys kann man Groß/Kleinschreibung der DLL Namen ändern.

Wie gesagt, diese Sachen sind praktisch frei wählbar. Und das meiste davon steht üblicherweise im Bereich ab 0x3d bis 0x400. Fast alle anderen Werte kann man auch ändern - es braucht allerdings schon das Lesen einer ewig langen PE-Doku ;). Sonst kommt man sehr schnell an eine "invalid PE-File" - dazu braucht man z.B nur eine 00 in FileAlignment, ImageSize, Sectionalignment und vielen anderen Werten zu ändern.

OT und BTW:
Habs Stundenlang versucht, jedes mal den Hex Code anders geändert, aber nie kam das gewünschte Ergebniss.
. Da muss ich an eine bekannten Spruch denken: "2 hours of try and error can save 10 minutes of manual reading" . Die Zeit wäre echt besser in PE-Tutorial/Paper Lesen investiert :)
 
AVs scannen nicht nur nach Signaturen, da gibt es auch andere Ansaetze, zb kann es gucken, ob bestimmte API-Calls in einer definierten Reinfolge in der Bin vorkommen. Was dein rumfuchteln mit dem Hexeditor angeht, wenn du zb iwo in deiner Exe etwas in der Richtung B9 00 00 00 00 (mov ecx, 0) stehen hast und dann das aenderst in B9 01 00 00 00 (mov ecx, 1), aendert das natuerlich den Programmablauf.

Und AV-Devil ist sowieso veraltet, du wirst mit Programmen, die selbst viele Jahre alt sind nicht gegen moderne AVs bestehen. Wenn du unbedingt son Ding UD haben willst, kannst du auch in irgendein skriptkiddie forum gehn und dort mal rumfragen ob die dir n Packer verkaufen wollen. Mit ein bisschen Glueck findest du vllt einen, der noch nicht von erkannt wird. Ansonsten stealth ich dir deinen Trojaner so fuer 100 Euro :)
 
Original von CDW


Da wären erstmal im DOS Header alle Werte außer e_magic und e_lfanew. Im FileHeader wären das TimeDateStamp, Checksum sowie NumberOfSymbols (sofern PointerToSymbolTable gleich 0 ist)
Im Optional Header sind es Major/MinorLinkerVersion, SizeOfCode, SizeOfInitializedData, SizeOfUninitializedData, BaseOfCode, BaseOfData, Checksum.
Im DataDirectorys kann man DebugDirectory Sachen löschen sowie Configuration, Exception Directorys.
ok, danke dafür, ich glaube ich muss mich wirklich mit dem Dateiaufbau beschäftigen, weil alles versteh ich nicht was du schreibst ;-)

Original von CDW
Da muss ich an eine bekannten Spruch denken: "2 hours of try and error can save 10 minutes of manual reading" . Die Zeit wäre echt besser in PE-Tutorial/Paper Lesen investiert :)
Ja da hast du wahrscheinlich Recht. Dachte halt die Anleitung funzt. Werde mich gleich dran setzten.

Original von xrayn
Ansonsten stealth ich dir deinen Trojaner so fuer 100 Euro :)

Danke fürs Angebot, aber wo bleibt da der Spaß?
Außerdem: "Gib einem hungerden einen Fisch und er wird einmal satt, bringst du ihn aber bei zu Fischen ernährst du ihn sein ganzes Leben. "


So danke für alle Antworten. Wenn ichs mal bis hierher Zusammenfassen darf:
Ich habe das ganze mit veralteten Programmen versucht, die nahazu jedes AV Prog erkennt und ich hab im Header der Datei Rumgepfuscht so das es am Ende keine ausführbare *.exe war.
 
Donar,
Du hast Dir für den Anfang ein komplexes Thema heraus gesucht. Wenn Du vernünftig stealthen möchtest, ist detailliertes Wissen über PE Exe Dateien sowie Assembler-Kenntnisse ebenso unerlässlich wie das intensive Lesen entsprechender Dokus über den Dateiaufbau. Es ist eben viel mehr als nur mal schnell ein paar Bytes einer Datei zu modifizieren. Besser wäre erst mal grundlegende Themen und das Programmieren z.B. in Ansi C zu erlernen, bevor Du Dich einer schwierigen Thematik widmest, die aufgrund Deiner geringen Erfahrung eher zu Frust als zum Erfolg führen könnte.

Wie bereits erwähnt wurde, wäre es sinnvoll das Ganze deterministisch anzugehen, alles Andere verschwendet Zeit und führt nicht zum gewünschten Erfolg. Irgend welche Bytes mit irgend welchen Programmen zu ändern, bringt, wie Du selbst beschreibst, nichts, und selbst wenn dies dieses eine Mal zum Erfolg geführt hätte, so hättest Du davon keinen Nutzen, denn lt. Deiner initialen Beschreibung ist Deine Ambition das Lernen solcher technischen Dinge. Ein solcher Lerneffekt tritt nur dann ein, wenn Du selbst im Stande bist das Warum zu verstehen um schlussendlich zu wissen wie Du welche Bytes modifizieren musst, um den gewünschten Effekt zu erzielen. Wenn Du i.d. Stealth-Themen geübt bist, kannst Du Dich eines Tages mit Polymorphismus befassen, doch bis dahin ist es generell ein langer Weg.

Für den Anfang tut's der Klassiker:
http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx

Greetz
Hackse
 
Zurück
Oben