
El framework de explotación de AWS, diseñado para probar la seguridad de los entornos de Amazon Web Services.
Dónde obtener ayuda: the Rhino Security Labs Discord, o Stack Overflow
Dónde reportar problemas: https://github.com/RhinoSecurityLabs/pacu/issues
Mantenido por: Rhino Security Labs
Pacu es un framework de explotación de AWS de código abierto, diseñado para pruebas de seguridad ofensiva en entornos de nube. Creado y mantenido por Rhino Security Labs, Pacu permite a los probadores de penetración explotar fallos de configuración dentro de una cuenta de AWS, utilizando módulos para expandir fácilmente su funcionalidad. Los módulos actuales habilitan una gama de ataques, que incluyen escalada de privilegios de usuario, puertas traseras en usuarios de IAM, ataque a funciones Lambda vulnerables y mucho más.
Pacu es un programa bastante ligero, ya que solo requiere Python3.7+ y pip3 para instalar un puñado de bibliotecas de Python.
pip3 install -U pip
pip3 install -U pacu
pacu
Este es el método preferido cuando se usa Kali Linux, ya que pip ya no viene instalado por defecto. Esto instalará Pacu con las últimas actualizaciones que pueden no estar incluidas en la versión oficial.
pipx install git+https://github.com/RhinoSecurityLabs/pacu.git
Para obtener un conjunto de instrucciones de usuario más detallado y fácil de usar, consulta la guía de instalación de la Wiki.
docker run -it rhinosecuritylabs/pacu:latest
docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Advertencia: Ejecutar este comando montará tus archivos de configuración locales de AWS dentro del contenedor Docker cuando se inicie. Esto significa que cualquier usuario con acceso al contenedor tendrá acceso a las credenciales de AWS de tu computadora anfitriona.
docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
La primera vez que se ejecuta Pacu, se te pedirá que inicies y nombres una nueva sesión. Esta sesión se utilizará para almacenar pares de claves de AWS, así como cualquier dato obtenido al ejecutar varios módulos. Puedes tener cualquier número de sesiones diferentes en Pacu, cada una con su propio conjunto de claves y datos de AWS, y reanudar una sesión en cualquier momento (aunque actualmente se requiere un reinicio para cambiar entre sesiones).
Los módulos requieren una clave de AWS, que te otorga acceso mínimo a un entorno de AWS y se compone de un ID de clave de acceso y una clave de acceso secreta. Para establecer las claves de tu sesión, usa el comando set_keys y luego sigue las indicaciones para proporcionar un alias de clave (apodo para referencia), un ID de clave de acceso de AWS, una clave de acceso secreta de AWS y un token de sesión de AWS (si estás usando uno).
Si alguna vez te quedas atascado, help mostrará una lista de comandos disponibles.
list listará los módulos disponibles para las regiones que se establecieron en la sesión actual.help module_name devolverá la información de ayuda aplicable para el módulo especificado.run module_name ejecutará el módulo especificado con sus parámetros predeterminados.run module_name --regions eu-west-1,us-west-1 ejecutará el módulo especificado contra las regiones eu-west-1 y us-west-1 (para módulos que admitan el argumento --regions)pacu --help mostrará el menú de ayudapacu --session <session name> establece la sesión a usar para los comandos que requieran unapacu --list-modules listará todos los módulos disponibles (no requiere sesión)pacu --pacu-help listará la ventana de ayuda de pacu (no requiere sesión)pacu --module-name <module name> el nombre de un módulo para realizar una acción, puedes ejecutar u obtener información sobre el módulopacu --exec ejecuta el módulo proporcionado en --module-namepacu --module-info obtiene información sobre el módulo proporcionado en --module-namepacu --data <service name || all> consulta la base de datos local de SQLAlchemy para recuperar información enumeradapacu --module-args="<arg1> <value> <arg2> <value>" proporciona argumentos de módulo opcionales al módulo que se está ejecutandopacu --set-regions <region1 region2 || all> establece las regiones a usar en la sesión, separa las regiones con un espacio o escribe all para todas las regionespacu --whoami obtiene información sobre el usuario actualPacu utiliza una gama de módulos complementarios para ayudar a un atacante en la enumeración, escalada de privilegios, exfiltración de datos, explotación de servicios y manipulación de registros dentro de entornos de AWS. Las contribuciones o ideas para nuevos módulos son bienvenidas.
Para mantener el ritmo de los desarrollos continuos de productos de AWS, hemos diseñado Pacu desde cero con la extensibilidad en mente. Una sintaxis y estructura de datos comunes facilitan la creación y expansión de módulos, sin necesidad de especificar regiones de AWS ni realizar verificaciones de permisos redundantes entre módulos. Se utiliza una base de datos SQLite local para gestionar y manipular los datos recuperados, minimizando las llamadas a la API (y los registros asociados). La generación de informes y la auditoría de ataques también están integradas en el framework; Pacu ayuda en el proceso de documentación mediante el registro y exportación de comandos, ayudando a construir una línea de tiempo para el proceso de prueba.
Siempre estamos felices de recibir informes de errores en el propio framework de Pacu, así como pruebas y comentarios sobre diferentes módulos, y en general, comentarios críticos para ayudar a refinar el framework. Cualquier apoyo a Pacu mediante su uso, prueba, mejora, o simplemente corriendo la voz, será muy apreciado.
Si estás interesado en contribuir directamente al framework de Pacu, por favor lee nuestras pautas de contribución para conocer las convenciones de código y las notas de git-flow.
Si estás interesado en escribir tus propios módulos para Pacu, consulta nuestra página wiki de Desarrollo de Módulos. A medida que desarrolles nuevas capacidades, por favor contáctanos; nos encantaría agregar tus nuevos módulos a la colección principal que viene con Pacu.
Para ver tutoriales y documentación completa, visita la wiki de Pacu.