Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pwncat — Post-Exploitation-Plattform, die Aufzählung, Privilegieneskalation, Persistenz und C2-Operationen über Reverse/Bind-Shells automatisiert, mit plattformübergreifender Unterstützung für Linux und Windows. | Kitploit
Tools/GitHubGitHub/calebstewart/pwncat
Privilege EscalationPersistenzmechanismenPost-ExploitationPenetrationstestsCommand and ControlRed Teaming
GitHubcalebstewart/pwncat

pwncat

Post-Exploitation-Plattform, die Aufzählung, Privilegieneskalation, Persistenz und C2-Operationen über Reverse/Bind-Shells automatisiert, mit plattformübergreifender Unterstützung für Linux und Windows.

Repository anzeigen
2.9k292vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

pwncat

asciicast

pwncat ist eine Post-Exploitation-Plattform für Linux-Ziele. Es begann als Wrapper um einfache Bind- und Reverse-Shells und hat sich seitdem weiterentwickelt. Es optimiert gängige Red-Team-Operationen, indem es Code von Ihrem Angreifer-Rechner aus bereitstellt, nicht vom Ziel.

pwncat unterstützte früher nur Linux, aber in letzter Zeit wurde viel Arbeit investiert, um mehrere Plattformen zu unterstützen. Derzeit gibt es eine Alpha-Unterstützung für Windows-Ziele. Bitte lesen Sie die neueste Dokumentation für Details zur Verwendung von pwncat mit einem Windows-Ziel.

pwncat fängt die rohe Kommunikation mit einer entfernten Shell ab und ermöglicht es dem Benutzer, automatisierte Aktionen auf dem entfernten Host durchzuführen, einschließlich Enumeration, Implant-Installation und sogar Privilegieneskalation.

Nach dem Empfang einer Verbindung richtet pwncat einige gängige Konfigurationen für die Arbeit mit entfernten Shells ein.

  • Deaktivieren der History in der entfernten Shell
  • Normalisieren der Shell-Eingabeaufforderung
  • Auffinden nützlicher Binärdateien (mit which)
  • Versuch, ein Pseudo-Terminal (pty) für eine vollständige interaktive Sitzung zu erzeugen

pwncat weiß, wie man Pty's mit verschiedenen Methoden erzeugt, und gleicht die Methoden mit den zuvor aufgefundenen ausführbaren Dateien ab. Nach dem Erzeugen eines Pty's wird das Steuerterminal in den Rohmodus versetzt, so dass Sie ähnlich wie bei ssh interagieren können.

pwncat synchronisiert auch die entfernten Pty-Einstellungen (z. B. Zeilen, Spalten, Umgebungsvariable TERM) mit Ihren lokalen Einstellungen, um sicherzustellen, dass sich die Shell korrekt mit interaktiven Anwendungen wie vim oder nano verhält.

John Hammond und ich haben pwncat auf der GRIMMCon vorgestellt. Unsere Präsentation, die auf YouTube hier zu finden ist. Dieses Video zeigt eine frühe Version der API und der Oberfläche. Bitte beachten Sie die Dokumentation für die aktuelle Verwendung und API-Dokumentation!

Die pwncat Dokumentation wird auf Read the Docs aufgebaut. Schauen Sie dort für die neueste Anwendungs- und Entwicklungsdokumentation vorbei!

pwncat benötigt Python 3.9+ auf Linux

Installation

pwncat hängt nur von einer funktionierenden Python-Entwicklungsumgebung unter Linux ab. Um einige der mit pip benötigten Pakete zu installieren, benötigen Sie wahrscheinlich das "Python Development"-Paket Ihrer Distribution. Auf Debian-basierten Systemen ist dies python-dev. Für Arch werden die Entwicklungsdateien mit dem Haupt-Python-Repository ausgeliefert. Für Enterprise Linux heißt das Paket python-devel.

pwncat wird unter dem Namen pwncat-cs auf PyPI veröffentlicht und kann mit pip wie folgt installiert werden:

root@kitploit:~
pip install pwncat-cs

Es wird jedoch empfohlen, pwncat aus einer virtuellen Umgebung heraus zu installieren.

root@kitploit:~
python3 -m venv pwncat-env
source pwncat-env/bin/activate
pip install pwncat-cs

Für eine Entwicklungsumgebung verwendet pwncat Python Poetry. Sie können das Repository lokal klonen und poetry verwenden, um eine Entwicklungsumgebung einzurichten.

root@kitploit:~
# Setup pwncat inside a poetry-managed virtual environment
git clone [email protected]:calebstewart/pwncat.git
cd pwncat
poetry install

# Enter the virtual environment
poetry shell

Namensänderungen

Aufgrund des Namenskonflikts mit Cytopia's pwncat habe ich beschlossen, das Paket in pwncat-cs umzubenennen. Dies beinhaltet die Umbenennung des Einstiegspunkts, so dass es keine direkten Konflikte mit Cytopias Projekt gibt. Wenn Sie von v0.4.* aktualisieren, hat sich der Befehlsname geändert, und die Varianten pcat und pc wurden entfernt. Weitere Details finden Sie in den neuesten Versionshinweisen.

Der zusätzliche Vorteil dieses Schrittes ist, dass das Projekt nun auf PyPI veröffentlicht wird, was die Installation/Aktualisierung in Zukunft erleichtert.

Windows-Unterstützung

pwncat unterstützt ab v0.4.0a1 nun Verbindungen von Windows-Zielen. Die Windows-Plattform verwendet eine .Net-basierte C2-Bibliothek, die automatisch geladen wird. Windows-Ziele sollten sich mit einer cmd.exe- oder powershell.exe-Shell verbinden, und pwncat kümmert sich um den Rest.

Die Bibliotheken, die das C2 implementieren, sind unter pwncat-windows-c2 zu finden. Die DLLs für das C2 werden automatisch von der angegebenen Version für Sie heruntergeladen. Wenn Sie auf Ihrem Zielrechner keine Internetverbindung haben, können Sie pwncat anweisen, die DLLs vorab zu laden, indem Sie das Argument --download-plugins verwenden. Wenn Sie eine Release-Version von pwncat ausführen, können Sie auch ein Tarball aller integrierten Plugins von der Release-Seite herunterladen.

Die Plugins werden standardmäßig in ~/.local/share/pwncat gespeichert, dies ist jedoch über die Konfiguration plugin_path einstellbar. Wenn Sie das gepackte Plugin-Set von der Release-Seite herunterladen, sollten Sie es in den Pfad entpacken, auf den plugin_path zeigt.

Neben den Haupt-C2-DLLs können auch andere Plugins verfügbar sein. Derzeit sind die einzigen bereitgestellten Standard-Plugins das C2 und eine Implementierung von BadPotato. pwncat kann .Net-Binärdateien reflektiv laden, um sie als Plugins für das C2 zu verwenden. Weitere Informationen zu Windows-C2-Plugins finden Sie in der Dokumentation.

Module

Kürzlich wurde die Architektur des pwncat-Frameworks neu gestaltet, um eine generische "Modul"-Struktur zu integrieren. Die gesamte Funktionalität ist nun als Module implementiert. Dies umfasst Enumeration, Persistenz und Privilegieneskalation. Die Interaktion mit Modulen ähnelt den meisten anderen Post-Exploitation-Plattformen. Sie können die vertrauten run-, search- und info-Befehle verwenden und mit dem Befehl use in Modulkontexte wechseln. Weitere Informationen finden Sie in der Dokumentation.

BlackArch-Paketierung

Packaging status

Die Installation unter BlackArch ist so einfach wie:

root@kitploit:~
pacman -Syu pwncat-caleb

Verbinden mit einem Opfer

Die Kommandozeilenparameter von pwncat versuchen, flexibel zu sein und eine Vielzahl gängiger Verbindungssyntaxen zu akzeptieren. Insbesondere wird versucht, gängige netcat- und ssh-ähnliche Syntaxen zu akzeptieren. Die folgenden sind alle gültig:

root@kitploit:~
# Connect to a bind shell
pwncat-cs connect://10.10.10.10:4444
pwncat-cs 10.10.10.10:4444
pwncat-cs 10.10.10.10 4444
# Listen for reverse shell
pwncat-cs bind://0.0.0.0:4444
pwncat-cs 0.0.0.0:4444
pwncat-cs :4444
pwncat-cs -lp 4444
# Connect via ssh
pwncat-cs ssh://user:[email protected]
pwncat-cs [email protected]
pwncat-cs user:[email protected]
pwncat-cs -i id_rsa [email protected]
# SSH w/ non-standard port
pwncat-cs -p 2222 [email protected]
pwncat-cs [email protected]:2222
# Reconnect utilizing installed persistence
#   If reconnection fails and no protocol is specified,
#   SSH is used as a fallback.
pwncat-cs reconnect://[email protected]
pwncat-cs reconnect://user@c228fc49e515628a0c13bdc4759a12bf
pwncat-cs [email protected]
pwncat-cs c228fc49e515628a0c13bdc4759a12bf
pwncat-cs 10.10.10.10

Standardmäßig geht pwncat davon aus, dass die Zielplattform Linux ist. Um eine Verbindung zu einer Windows-Reverse- oder Bind-Shell herzustellen, müssen Sie das Argument --platform/-m übergeben:

root@kitploit:~
pwncat-cs -m windows 10.10.10.10 4444
pwncat-cs -m windows -lp 4444

Weitere Informationen zur Syntax und Argumentbehandlung finden Sie in der Hilfe mit pwncat-cs --help oder besuchen Sie die Dokumentation.

Docker-Image

Die empfohlene Installationsmethode ist eine Python-Virtualenv. Dies bietet die einfachste tägliche Nutzung von pwncat. Es gab jedoch Interesse daran, pwncat aus einem Docker-Image zu verwenden, daher habe ich ein Dockerfile bereitgestellt, das eine funktionierende pwncat-Installation ermöglicht. Um das Image zu bauen, verwenden Sie:

root@kitploit:~
docker build -t pwncat .

Dies erstellt das pwncat-Docker-Image mit dem Tag "pwncat". Das Arbeitsverzeichnis innerhalb des Containers ist /work. Der Einstiegspunkt des Containers ist die pwncat-Binärdatei. Es kann wie folgt verwendet werden:

root@kitploit:~
# Connect to a bind shell at 10.0.0.1:4444
docker run -v "/some/directory":/work -t pwncat 10.0.0.1 4444

In diesem Beispiel werden nur die Dateien in /some/directory dem Container zur Verfügung gestellt. Offensichtlich kann der Container beim Hoch-/Herunterladen nur die Dateien sehen, die über eingehängte Verzeichnisse verfügbar gemacht werden.

Funktionen und Merkmale

pwncat bietet zwei Hauptfunktionen. Im Kern besteht sein Ziel darin, automatisch ein entferntes Pseudo-Terminal (pty) einzurichten, das die Interaktion mit dem entfernten Host ähnlich einer vollständigen SSH-Sitzung ermöglicht. Beim Arbeiten in einem pty können Sie gängige Funktionen Ihrer entfernten Shell wie Verlauf, Zeilenbearbeitung und grafische Terminalanwendungen nutzen.

Die andere Hälfte von pwncat ist ein Framework, das Ihre entfernte Shell verwendet, um automatisierte Aufgaben zur Enumeration, Persistenz und Privilegieneskalation durchzuführen. Die lokale pwncat-Eingabeaufforderung bietet eine Reihe nützlicher Funktionen für standardmäßige Penetrationstests, darunter:

  • Datei-Upload und -Download
  • Automatisierte Aufzählung von Privilegieneskalationen
  • Automatisierte Ausführung von Privilegieneskalationen
  • Automatisierte Installation/Entfernung von Persistenz
  • Automatisierte Nachverfolgung von geänderten/erstellten Dateien
    • pwncat bietet auch die Möglichkeit, diese entfernten "Tamper" automatisch rückgängig zu machen

Das zugrundeliegende Framework für die Interaktion mit dem entfernten Host zielt darauf ab, die zugrundeliegende Shell und Verbindungsmethode so weit wie möglich zu abstrahieren, so dass Befehle und Plugins nahtlos mit dem entfernten Host interagieren können.

Sie können mehr über die Interaktion mit pwncat und das zugrundeliegende Framework in der Dokumentation erfahren. Wenn Sie eine Idee für eine neue Privilegieneskalations- oder Persistenzmethode haben, werfen Sie bitte einen Blick auf die API-Dokumentation. Pull-Requests sind willkommen!

Geplante Funktionen

pwncat möchte ein Taschenmesser für Red Teams werden. Hoffentlich werden bald weitere Funktionen hinzugefügt.

  • Weitere Privilegieneskalationsmethoden (sudo -u#-1 CVE, LXD-Container usw.)
  • Persistenzmethoden (Bind-Shell, Cronjobs, SSH-Zugriff, PAM-Missbrauch usw.)
  • Aggressionsmethoden (Zufallsnachrichten an Terminals senden, Firewall leeren usw.)
  • Meme-Methoden (terminal-parrot, cowsay, wall usw.)
  • Netzwerkmethoden (Portweiterleitung, Internetzugriff über Host usw.)

Bekannte Probleme

Da pwncat versucht, abstrakt mit jeder Shell mit minimalen Abhängigkeiten des entfernten Systems zu interagieren, gibt es einige Randfälle, die wir gefunden haben. Wo wir sie finden, tun wir alles, um sie zu berücksichtigen und vor dem Benutzer zu verbergen. Einige sind jedoch durch die Maschen geschlüpft und in der freien Wildbahn beobachtet worden. Wenn dies passiert, wird pwncat alles tun, um Ihr Terminal zu schützen, aber Sie könnten mit eigenartigen Ausgaben oder Befehlsfehlern begrüßt werden.

BSD-Unterstützung

Obwohl BSD ein Unix-basierter Kernel ist, unterscheiden sich seine Userland-Tools in der Praxis deutlich von ihren Linux-Pendants. Aus diesem Grund werden viele der automatisierten Funktionen von pwncat nicht funktionieren oder bei einem BSD-basierten Ziel einfach fehlschlagen. Ich habe versucht, alle Fehler oder Randfälle abzufangen, aber es gibt wahrscheinlich einige Hürden, die noch nicht vollständig gegen BSD getestet wurden. In jedem Fall sollte die stabilisierte Shell in einer BSD-Umgebung funktionieren, aber ich gebe keine Garantie.

Wenn ich später etwas Zeit finde, könnte ich versuchen, pwncat auf BSD zu stabilisieren, aber im Moment liegt mein Fokus auf Linux-basierten Distributionen. Wenn Sie dazu beitragen möchten, dass sich pwncat auf BSD besser verhält, können Sie sich gerne melden oder das Repository forken. Wie immer sind Pull-Requests willkommen!

Tool herunterladen