Wie erstellt man einen Virus?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Erkläre es einfach nur.

Wenn du einen Virus ausführst wirds schwer den überhaupt bei seiner Arbeit zu beobachten.

Wenn du einfach nur Netzwerkverkehr mit Wireshark sehen willst, dann generiere einfach irgendeinen Trafic oder dergleichen.

Für einen wirklichen Virus musst du schon mehr oder weniger Sicherheitsmechanismen umgehen damit du das Verhalten reproduzieren kannst und das wird dir auf einen aktuellen System kaum gelingen.

Es gibt zwar Systeme wie Damn Vulnerable Linux welche daraus ausgelegt sind, dass man sie relativ einfach infizieren kann, allerdings musst du auch da genau wissen was du tust und das ganze ist wohl für ein Schulprojekt zu viel.

Wenn Du da keinerlei "programmtechnische Kenntnisse" hast, würde ich das angebliche Schulprojekt wechseln.

Ein Virus ist nur ein Virus, wenn er an andere Benutzer verbreitet werden kann. Du musst vor dem Anfangen die "Zustellmethode" herausfinden, da dies eine der Grundlagen des Programmierens von Viren ist. Zu den häufigen Mechanismen hierfür gehören:

  • Ausführbare Datei (.EXE, .BAT, .COM etc.) - diese Programme müssen vom Benutzer ausgeführt werden und werden oft als etwas anderes getarnt (z.B. ein Bild).
  • Makro (Microsoft Office) - Makros sind in ein Dokument oder eine E-Mail eingebettete Programme. Sie zielen auf Word, Outlook und andere Produkte ab, in denen Makros verarbeitet werden. Die häufigste Zustellmethode ist per E-Mail mit einem infizierten Dokument im Anhang.
  • Web Skript - dies sind Teile bösartiger Codes, die ohne das Wissen des Webmasters in Webseiten "injiziert" werden

Um einen Virus zu erstellen, brauchst du zumindest ein grundlegendes Verständnis von mindestens einer Computersprache oder einem Scripting-Tool. Komplexere Viren enthalten oft mehrere Sprachen. Für wirklich effektive Viren musst du mit Assembler-Sprachen vertraut sein.


Kelec  31.10.2023, 09:55

Mir wäre keine Virus der letzten Jahre bekannt welcher in Assembler geschrieben ist. Die Laufzeiteffizienz ist am Ende bei so einem kaum von Bedeutung.

Man findet zwar Assemblercode zu bekannten Viren allerdings ist der Assemblercode ziemlich wahrscheinlich aus dem Decompilieren des Programms entstanden und nicht die Sprache in welchem es gschrieben wurde.

0
Mark Berger  31.10.2023, 10:27
@Kelec

Du brauchst dennoch Kenntnisse in Assembler um den Virus in einer EXE-Datei einzubauen! Oder um einen Programmierfehler in einem Programm auszunutzen - zB Buffer Overflow.

1
Kelec  31.10.2023, 17:28
@Mark Berger

Nein ganz und gar nicht.

C und C++ sind Turing Komplett und können das ebenso. Die semantische Lücke fällt da auch nicht wirklich ins Gewicht weil C und C++ bestimmte definierte Memory Layouts hat wenn du also einen Bufferoverflow machst kannst du deine Payload ebenso gut da erstellen.

Assembler brauchst du maximal dann wenn du Fehler in CPU Insturctions Ausnutzen willst und selbst da wirst du nur Inline Assembler verwenden.

0
Mark Berger  31.10.2023, 17:53
@Kelec

Und wie stellst du dir vor, dass der C/C++ Code ausgeführt wird wenn du den dann zB irgendwo ein RAM-Speicher rein schreibst? An der Stelle brauchst du dann gültigen Maschinencode der ausgeführt wird - Stichwort: Shellcode!

Und wie Willst du den C/C++ Code in einer EXE-Datei einbauen so dass dieser ausgeführt wird?

Dein C-Code wird bei der Umwandlung in eine EXE-Datei zu Maschinencode den die CPU ausführen kann. Diesen Maschinencode kannst du recht einfach in Assemblercode zurückwandeln um dann an der richtigen Stelle zB eine Sprung-Anweisung zu platzieren, die Code vom Dateiende ausführt (den Virus) der nachdem er fertig ist wieder zurück zu eigentlichen Code springt...

Du kannst das Tool das dies macht gerne in C/C++ schreiben - das macht auch durchaus Sinn denn sowas in Assembler zu schreiben ist nur eine Fleißaufgabe aber dennoch musst du mit Assembler klarkommen um den Inhalt der EXE-Datei zu verstehen und so zu verändern, dass entsprechender Schadcode in die Datei eingebaut werden kann...

0
Mark Berger  31.10.2023, 18:07
@Kelec

Ich glaube wir schreiben nur an einander vorbei. Klar schreibt man keine Schadware komplett in Assembler. Das wäre einfach nur umständlich...

Ich meine man sollte trotzdem Assembler können für so ein Vorhaben!

1
Kelec  31.10.2023, 18:12
@Mark Berger

So wars gemeint ja das stimmt. Ich hab mich hier lediglich aufs schreiben des Virus bezogen, den wirst du idR nicht in Assembler schreiben. Wenn du Exploits finden willst musst du dich natürlich damit beschäftigen.

Ob das finden der Exploits jetzt dazu zählt ist natürlich eine Ansichtsfrage. Wenn ich einen bekannten Exploit nutze muss ich mich wiederum nicht mit Assembler beschäftigen.

1

Wenn du keine Erfahrung in dem Bereich hast, würde ich mich an deiner Stelle informieren, wie ein Virus funktioniert und auf welchem Wege er ein System infizieren kann und das Ganze dann anhand einer PowerPoint-Präsentation demonstrieren.

Um einen „echten“ Virus in ein System einzuspeisen und live zu demonstrieren, was da passiert und was der Virus da gerade macht, benötigst du viel mehr Fachkenntnis über die Vorgänge und Funktionsweisen, außerdem wird es schwierig in einem infizierten System gleichzeitig die Arbeitsweise eines Virus zu verfolgen, wenn er dir während der Demonstration live das System zerschießt.
Um einen echten Virus live zu beobachten, müsstest du ihn in einem isolierten System laufen lassen, aus dem er nicht ausbrechen kann, sodass du die Vorgänge des Virus von außen nachverfolgen kannst. Aber das müsste dann wohl erstmal programmiert werden..

Woher ich das weiß:eigene Erfahrung

Schau dir mal Metasploit an, das ist in Kali bereits eingebaut und kann Windows Rechner mittels einer PDF-Datei übernehmen.
Danach besteht ein uneingeschränkter Fernzugriff auf die Festplatte.
Es gibt für Metasploit sogar eine Wikipedia Seite.