
Das AWS-Exploitation-Framework, entwickelt zum Testen der Sicherheit von Amazon Web Services Umgebungen.
Wo Sie Hilfe erhalten: dem Rhino Security Labs Discord oder Stack Overflow
Wo Sie Probleme melden können: https://github.com/RhinoSecurityLabs/pacu/issues
Gepflegt von: Rhino Security Labs
Pacu ist ein quelloffenes AWS-Exploitation-Framework, das für offensive Sicherheitstests in Cloud-Umgebungen entwickelt wurde. Es wurde von Rhino Security Labs erstellt und wird von ihnen gepflegt. Pacu ermöglicht es Penetrationstestern, Konfigurationsfehler in einem AWS-Konto auszunutzen, wobei Module die Funktionalität leicht erweitern lassen. Die aktuellen Module ermöglichen eine Reihe von Angriffen, darunter Benutzer-Privilegienerweiterung, Hintertüren für IAM-Benutzer, Angriff auf angreifbare Lambda-Funktionen und vieles mehr.
Pacu ist ein relativ leichtgewichtiges Programm, da es nur Python3.7+ und pip3 benötigt, um eine Handvoll Python-Bibliotheken zu installieren.
pip3 install -U pip
pip3 install -U pacu
pacu
Dies ist die bevorzugte Methode bei Verwendung von Kali Linux, da pip nicht mehr standardmäßig installiert ist. Dadurch wird Pacu mit den neuesten Updates installiert, die möglicherweise nicht in der offiziellen Version enthalten sind.
pipx install git+https://github.com/RhinoSecurityLabs/pacu.git
Eine ausführlichere und benutzerfreundlichere Anleitung finden Sie im Installationsleitfaden des Wikis.
docker run -it rhinosecuritylabs/pacu:latest
docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Warnung: Wenn Sie diesen Befehl ausführen, werden Ihre lokalen AWS-Konfigurationsdateien beim Start in den Docker-Container eingebunden. Das bedeutet, dass jeder Benutzer mit Zugriff auf den Container Zugriff auf die AWS-Anmeldeinformationen Ihres Host-Computers hat.
docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
Beim ersten Start von Pacu werden Sie aufgefordert, eine neue Sitzung zu starten und zu benennen. Diese Sitzung wird verwendet, um AWS-Schlüsselpaare sowie alle Daten, die durch das Ausführen verschiedener Module gewonnen wurden, zu speichern. Sie können in Pacu beliebig viele verschiedene Sitzungen haben, jede mit eigenen AWS-Schlüsseln und Daten, und eine Sitzung jederzeit fortsetzen (obwohl derzeit ein Neustart erforderlich ist, um zwischen Sitzungen zu wechseln).
Module benötigen einen AWS-Schlüssel, der Ihnen minimalen Zugriff auf eine AWS-Umgebung gewährt und aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel besteht. Um die Schlüssel Ihrer Sitzung festzulegen, verwenden Sie den Befehl set_keys und folgen Sie dann den Eingabeaufforderungen, um einen Schlüssel-Alias (Spitzname als Referenz), eine AWS-Zugriffsschlüssel-ID, einen geheimen AWS-Zugriffsschlüssel und ein AWS-Sitzungstoken (falls verwendet) anzugeben.
Wenn Sie nicht weiterkommen, zeigt help eine Liste der verfügbaren Befehle an.
list listet die verfügbaren Module für die in der aktuellen Sitzung festgelegten Regionen auf.help module_name gibt die entsprechenden Hilfeinformationen für das angegebene Modul zurück.run module_name führt das angegebene Modul mit seinen Standardparametern aus.run module_name --regions eu-west-1,us-west-1 führt das angegebene Modul gegen die Regionen eu-west-1 und us-west-1 aus (für Module, die das Argument --regions unterstützen)pacu --help zeigt das Hilfemenü anpacu --session <session name> legt die Sitzung fest, die für Befehle verwendet werden soll, die eine erfordernpacu --list-modules listet alle verfügbaren Module auf (benötigt keine Sitzung)pacu --pacu-help zeigt das Pacu-Hilfefenster an (benötigt keine Sitzung)pacu --module-name <module name> der Name eines Moduls, für das eine Aktion ausgeführt werden soll; Sie können das Modul ausführen oder Informationen darüber abrufenpacu --exec führt das in --module-name angegebene Modul auspacu --module-info ruft Informationen zu dem in --module-name angegebenen Modul abpacu --data <service name || all> fragt die lokale SQLAlchemy-Datenbank ab, um enumerierte Informationen abzurufenpacu --module-args="<arg1> <value> <arg2> <value>" übergibt optionale Modulargumente an das ausgeführte ModulPacu verwendet eine Reihe von Plug-in-Modulen, um einen Angreifer bei der Aufzählung, Privilegienerweiterung, Datenexfiltration, Dienstausnutzung und Protokollmanipulation in AWS-Umgebungen zu unterstützen. Beiträge oder Ideen für neue Module sind willkommen.
Um mit den fortlaufenden AWS-Produktentwicklungen Schritt zu halten, haben wir Pacu von Grund auf mit Erweiterbarkeit im Hinterkopf entwickelt. Eine gemeinsame Syntax und Datenstruktur erleichtern das Erstellen und Erweitern von Modulen – es müssen keine AWS-Regionen angegeben oder redundante Berechtigungsprüfungen zwischen Modulen durchgeführt werden. Eine lokale SQLite-Datenbank wird verwendet, um abgerufene Daten zu verwalten und zu manipulieren, wodurch API-Aufrufe (und zugehörige Protokolle) minimiert werden. Berichterstellung und Angriffsprüfung sind ebenfalls in das Framework integriert; Pacu unterstützt den Dokumentationsprozess durch Befehlsprotokollierung und -export und hilft, einen Zeitplan für den Testprozess zu erstellen.
Wir freuen uns jederzeit über Fehlerberichte im Pacu-Framework selbst sowie über Tests und Feedback zu verschiedenen Modulen und generell über kritisches Feedback, das zur Verbesserung des Frameworks beiträgt. Jede Unterstützung für Pacu durch Nutzung, Tests, Verbesserungen oder einfach durch Weiterempfehlung ist sehr willkommen.
Wenn Sie direkt zum Pacu-Framework beitragen möchten, lesen Sie bitte unsere Beitragsrichtlinien für Code-Konventionen und Git-Flow-Hinweise.
Wenn Sie daran interessiert sind, eigene Module für Pacu zu schreiben, schauen Sie sich unsere Wiki-Seite zur Modulentwicklung an. Bitte kontaktieren Sie uns, wenn Sie neue Fähigkeiten entwickeln – wir würden Ihre neuen Module gerne in die Kernkollektion aufnehmen, die mit Pacu ausgeliefert wird.
Für Schritt-für-Schritt-Anleitungen und vollständige Dokumentation besuchen Sie bitte das Pacu-Wiki.
Wir freuen uns, von Ihnen zu hören, aus welchem Grund auch immer. Treten Sie mit uns auf dem Rhino Security Labs Discord in Kontakt.
pacu --set-regions <region1 region2 || all> legt die in der Sitzung zu verwendenden Regionen fest; trennen Sie die Regionen durch ein Leerzeichen oder geben Sie all für alle Regionen einpacu --whoami ruft Informationen über den aktuellen Benutzer ab