Skip to content
shellcodes

Shellcode erzeugen (3 Wege im Vergleich)

Wege zum Erzeugen von Shellcode im Vergleich — msfvenom, handgeschriebenes Assembly und ein browserbasierter Generator — mit den Abwägungen und wann man welchen nutzt.

Veröffentlicht am 2 Min. Lesezeit

"Shellcode erzeugen" kann drei sehr unterschiedliche Workflows bedeuten. Sie tauschen Kontrolle gegen Geschwindigkeit und legen unterschiedlich viel Vertrauen in fremde Bytes. Wenn du noch nicht sicher bist, was Shellcode ist, beginne mit dem Leitfaden.

Option 1: handgeschriebenes Assembly

Du schreibst das Assembly, assemblierst es, extrahierst die Bytes.

  • Pro: volle Kontrolle, kleinste Ausgabe, du verstehst jedes Byte.
  • Contra: langsam, architekturspezifisch, leicht baut man versehentlich Bad Bytes ein.
  • Wann nutzen: wenn die Größe knapp ist, du eine exotische Primitive brauchst oder lernst. Siehe Linux-Shellcode.

Option 2: ein Framework (msfvenom)

Das Framework templatet einen Payload und kodiert ihn für dich.

  • Pro: schnell, viele Payload-/Encoder-Kombinationen.
  • Contra: größere Ausgabe, von Verteidigern signiert, und es lebt auf einer geteilten Jump Box, von der du vielleicht nicht abhängig sein willst. Diesen Workflow von der Jump Box zu lösen ist ein eigenes Thema: Browser-nativ vs. msfvenom.
  • Wann nutzen: wenn du schnell einen Standard-Payload brauchst und Signatur kein Thema ist.

Option 3: ein browserbasierter Generator

Ein client-seitiger Generator assembliert und kodiert in deinem Browser — nichts verlässt die Maschine.

  • Pro: keine Installation, nichts wird hochgeladen, schnelles Iterieren über Format und Bad-Char-Sets. Was lokal bleibt und was nicht, ist im Threat Model dokumentiert.
  • Contra: du musst die Ausgabe trotzdem selbst verifizieren (gilt für jede Option).
  • Wann nutzen: wenn du Geschwindigkeit ohne Tooling-Aufbau willst oder von einer eingeschränkten Workstation arbeitest.

Format und Encoder wählen

Welchen Weg du auch nimmst, zwei Entscheidungen folgen: das Ausgabe-Format (\x, 0x, raw, base64) passend zu dem Ort, an dem die Bytes leben werden, und die Encoder, um verbotene Bytewerte zu umgehen. Die Encoder-Reihenfolge zählt — siehe Reihenfolge der Encoder-Pipeline.

Jetzt Shellcode erzeugen

Baue, kodiere und exportiere einen Payload vollständig client-seitig im Shellcodes-Builder — wähle die Architektur, ein Preset, setze deine Bad Chars und exportiere im benötigten Format. Disassembliere ihn dann, um die Bytes zu bestätigen, bevor du irgendetwas ausführst. Nur autorisiertes Testen: verantwortungsvolle Nutzung.

Verwandte Artikel

Rohe Shellcode-Bytes zurück in Assembly verwandeln — Hex- und Escape-Formate dekodieren, mit Capstone disassemblieren und Bad Chars finden, bevor du ihn ausführst.
Kommentierte Shellcode-Beispiele für Linux x86 und x64 — execve /bin/sh und Reverse TCP — mit den Bytes, der Disassemblierung und den Fallstricken.
Wie Linux-Shellcode funktioniert — Syscalls, Register und positionsunabhängiger Code — und wie man ihn sicher assembliert, kodiert und testet.