Où obtenir de l'aide : le Discord de Rhino Security Labs ou Stack Overflow
Où déposer les problèmes : https://github.com/RhinoSecurityLabs/pacu/issues
Maintenu par : Rhino Security Labs
Pacu est un framework d'exploitation AWS open source, conçu pour les tests de sécurité offensifs sur les environnements cloud. Créé et maintenu par Rhino Security Labs, Pacu permet aux testeurs d'intrusion d'exploiter les failles de configuration au sein d'un compte AWS, en utilisant des modules pour étendre facilement ses fonctionnalités. Les modules actuels permettent une gamme d'attaques, notamment l'élévation des privilèges des utilisateurs, la porte dérobée des utilisateurs IAM, l'attaque des fonctions Lambda vulnérables, et bien plus encore.
Pacu est un programme assez léger, car il ne nécessite que Python3.7+ et pip3 pour installer une poignée de bibliothèques Python.
> pip3 install -U pip > pip3 install -U pacu > pacu
Pour un ensemble d'instructions utilisateur plus détaillées et plus conviviales, veuillez consulter le guide d'installation du Wiki.
$ docker run -it rhinosecuritylabs/pacu:dernier
$ docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Avertissement : L'exécution de cette commande montera vos fichiers de configuration AWS locaux dans le conteneur Docker lors de son lancement. Cela signifie que tout utilisateur ayant accès au conteneur aura accès aux informations d'identification AWS de votre ordinateur hôte.
$ docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
Au premier lancement de Pacu, vous serez invité à démarrer et à nommer une nouvelle session. Cette session sera utilisée pour stocker les paires de clés AWS, ainsi que toutes les données obtenues lors de l'exécution de divers modules. Vous pouvez avoir n'importe quel nombre de sessions différentes dans Pacu, chacune avec ses propres ensembles de clés et de données AWS, et reprendre une session à tout moment (bien qu'un redémarrage soit actuellement nécessaire pour basculer entre les sessions).
Les modules nécessitent une clé AWS, qui vous accorde un accès minimal à un environnement AWS et comprend un ID de clé d'accès et une clé d'accès secrète. Pour définir les clés de votre session, utilisez la commande set_keys
, puis suivez les invites pour fournir un alias de clé (surnom pour référence), un ID de clé d'accès AWS, une clé d'accès secrète AWS et un jeton de session AWS (si vous en utilisez un). ).
Si jamais vous êtes bloqué, help
affichera une liste des commandes disponibles.
list
listera les modules disponibles pour les régions définies dans la session en cours.
help module_name
renverra les informations d'aide applicables pour le module spécifié.
run module_name
exécutera le module spécifié avec ses paramètres par défaut.
run module_name --regions eu-west-1,us-west-1
exécutera le module spécifié sur les régions eu-west-1 et us-west-1 (pour les modules prenant en charge l'argument --regions)
pacu --help
affichera le menu d'aide
pacu --session
définit la session à utiliser pour les commandes qui en nécessitent une
pacu --list-modules
listera tous les modules disponibles (ne nécessite pas de session)
pacu --pacu-help
listera la fenêtre d'aide de pacu (ne nécessite pas de session)
pacu --module-name
le nom d'un module sur lequel effectuer une action, vous pouvez exécuter ou obtenir des informations sur le module
pacu --exec
exécute le module fourni dans --module-name
pacu --module-info
obtient des informations sur le module fourni dans --module-name
pacu --data
interroger la base de données SQLAlchemy locale pour récupérer les informations énumérées
pacu --module-args="
fournit des arguments de module facultatifs au module en cours d'exécution
pacu --set-regions
définir les régions à utiliser dans la session, séparer les régions par un espace ou saisir all
pour toutes les régions
pacu --whoami
obtient des informations sur l'utilisateur actuel
Pacu utilise une gamme de modules de plug-in pour aider un attaquant dans l'énumération, l'élévation de privilèges, l'exfiltration de données, l'exploitation de services et la manipulation de journaux dans les environnements AWS. Les contributions ou idées de nouveaux modules sont les bienvenues.
Pour suivre le rythme des développements en cours des produits AWS, nous avons conçu Pacu dès le départ en gardant à l'esprit l'extensibilité. Une syntaxe et une structure de données communes facilitent la création et l'extension des modules : pas besoin de spécifier des régions AWS ou d'effectuer des vérifications d'autorisation redondantes entre les modules. Une base de données SQLite locale est utilisée pour gérer et manipuler les données récupérées, minimisant ainsi les appels d'API (et les journaux associés). Le reporting et l'audit des attaques sont également intégrés au cadre ; Pacu assiste le processus de documentation via la journalisation et l'exportation des commandes, aidant ainsi à établir un calendrier pour le processus de test.
Nous sommes toujours heureux de recevoir des rapports de bogues dans le framework Pacu lui-même, ainsi que des tests et des commentaires sur différents modules, et généralement des commentaires critiques pour nous aider à affiner le framework. Tout soutien à Pacu par le biais de l'utilisation, des tests, de l'amélioration ou simplement en faisant passer le message serait très apprécié.
Si vous souhaitez contribuer directement au framework Pacu lui-même, veuillez lire nos directives de contribution pour les conventions de code et les notes git-flow.
Si vous souhaitez écrire vos propres modules pour Pacu, consultez notre page wiki de développement de modules. Au fur et à mesure que vous développez de nouvelles fonctionnalités, contactez-nous. Nous serions ravis d'ajouter vos nouveaux modules à la collection de base fournie avec Pacu.
Améliorer le formatage de l'interface
Migrations ultérieures de bases de données et suivi des versions
"Attack Playbooks" pour permettre une utilisation plus facile de chaînes d'exécution de modules complexes
Sortie console colorée
Fonctionnalité de fonctionnement à sec du module
Autoriser l'utilisation de fichiers de configuration autonomes
Améliorations de l'architecture des plugins
Pacu est officiellement pris en charge sous OSX et Linux.
Pacu est un logiciel Open Source et est distribué avec une licence BSD-3-Clause.
Signalez-nous les vulnérabilités de Pacu directement par e-mail : [email protected] .
Pacu crée des journaux d'erreurs dans le dossier de chaque session, ainsi qu'un journal d'erreurs global pour les erreurs hors session qui est créé dans le répertoire principal. Si vous le pouvez, veuillez inclure ces journaux dans vos rapports de bogues, car cela simplifiera considérablement le processus de débogage.
Si vous avez une demande de fonctionnalité, une idée ou un bug à signaler, veuillez les soumettre ici.
Veuillez inclure une description suffisante pour reproduire le bogue que vous avez trouvé, y compris les étapes de traçage et de reproduction, et vérifier s'il existe d'autres rapports de votre bogue avant de déposer un nouveau rapport de bogue. Ne soumettez pas de doublons.
Pour des procédures pas à pas et une documentation complète, veuillez visiter le wiki Pacu.
Nous serions ravis d’avoir de vos nouvelles, quelle qu’en soit la raison. Contactez le Discord de Rhino Security Labs.
Au meilleur de nos connaissances, les capacités de Pacu sont conformes à la politique d'utilisation acceptable d'AWS, mais en tant qu'outil flexible et modulaire, nous ne pouvons pas garantir que cela sera vrai dans toutes les situations. Il est de votre entière responsabilité de vous assurer que la façon dont vous utilisez Pacu est conforme à la politique d'utilisation acceptable d'AWS.
En fonction des services AWS que vous utilisez et de ce qu'impliquent les tests prévus, vous devrez peut-être consulter la politique de support client AWS pour les tests d'intrusion avant d'exécuter réellement Pacu sur votre infrastructure.
Comme pour tout outil de test d’intrusion, il est de votre responsabilité d’obtenir l’autorisation appropriée avant d’utiliser Pacu en dehors de votre environnement.
Pacu est un logiciel qui ne comporte absolument aucune garantie. En utilisant Pacu, vous assumez l’entière responsabilité de tous les résultats qui en résultent.