Skip to content
shellcodes

Glossary

Shellcode

Shellcode ist ein kleines Stück positionsunabhängiger Maschinencode, das als Payload eines Exploits dient — klassisch zum Starten einer Shell, daher der Name.

Shellcode ist ein kleines Stück positionsunabhängiger Maschinencode, das als Payload eines Exploits dient. Sobald eine Schwachstelle dir Kontrolle über die Ausführung gibt, ist der Shellcode das, was tatsächlich läuft. Der Name stammt vom ursprünglichen Zweck: dem Starten einer Kommando-Shell.

Ein minimales Linux-x86-Beispiel, das execve("/bin/sh") aufruft, ist 25 Bytes groß:

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80

Shellcode muss in der Regel bestimmte Bytes vermeiden (oft 0x00), unabhängig von seiner Position im Speicher laufen und klein sein. Moderne Payloads tun weit mehr, als eine Shell zu öffnen — Reverse-TCP-Verbindungen, Befehlsausführung, Staged Loader — aber der Begriff ist geblieben.

Den vollständigen Leitfaden lesen: Was ist Shellcode?