Dónde obtener ayuda : Rhino Security Labs Discord o Stack Overflow
Dónde presentar problemas : https://github.com/RhinoSecurityLabs/pacu/issues
Mantenido por : Laboratorios de seguridad de Rhino
Pacu es un marco de explotación de AWS de código abierto, diseñado para pruebas de seguridad ofensivas en entornos de nube. Creado y mantenido por Rhino Security Labs, Pacu permite a los probadores de penetración explotar fallas de configuración dentro de una cuenta de AWS, utilizando módulos para expandir fácilmente su funcionalidad. Los módulos actuales permiten una variedad de ataques, incluida la escalada de privilegios de usuario, puertas traseras de usuarios de IAM, ataques a funciones Lambda vulnerables y mucho más.
Pacu es un programa bastante liviano, 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
Para obtener un conjunto de instrucciones de usuario más detalladas y fáciles de usar, consulte la guía de instalación de Wiki.
$ docker ejecutar -it rhinosecuritylabs/pacu:latest
$ docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Advertencia: Al ejecutar este comando, se montarán sus archivos de configuración locales de AWS en el contenedor Docker cuando se inicie. Esto significa que cualquier usuario con acceso al contenedor tendrá acceso a las credenciales de AWS de su computadora host.
$ ventana acoplable ejecutar -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
La primera vez que inicie Pacu, se le pedirá que inicie y nombre 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. Puede tener cualquier cantidad de sesiones diferentes en Pacu, cada una con sus propios conjuntos de claves y datos de AWS, y reanudar una sesión en cualquier momento (aunque actualmente es necesario reiniciar para cambiar entre sesiones).
Los módulos requieren una clave de AWS, que le otorga un 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 configurar las claves de su sesión, utilice el comando set_keys
y luego siga las instrucciones para proporcionar un alias de clave (apodo como 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á utilizando uno). ).
Si alguna vez te quedas atascado, help
mostrará una lista de comandos disponibles.
list
enumerará los módulos disponibles para las regiones que se configuraron 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 en las regiones eu-west-1 y us-west-1 (para módulos que admitan el argumento --regions)
pacu --help
mostrará el menú de ayuda
pacu --session
establece la sesión que se utilizará para los comandos que requieren uno
pacu --list-modules
enumerará todos los módulos disponibles (no requiere sesión)
pacu --pacu-help
mostrará la ventana de ayuda de pacu (no requiere sesión)
pacu --module-name
el nombre de un módulo sobre el que realizar una acción, puede ejecutar u obtener información sobre el módulo
pacu --exec
ejecuta el módulo proporcionado en --module-name
pacu --module-info
obtiene información sobre el módulo proporcionado en --module-name
pacu --data
consultar la base de datos SQLAlchemy local para recuperar información enumerada
pacu --module-args="
proporciona argumentos de módulo opcionales al módulo que se está ejecutando
pacu --set-regions
establece las regiones a usar en la sesión, separa las regiones por un espacio o ingresa all
para todas las regiones
pacu --whoami
obtiene información sobre el usuario actual
Pacu utiliza una variedad de módulos complementarios para ayudar a un atacante en la enumeración, la escalada de privilegios, la exfiltración de datos, la explotación de servicios y la manipulación de registros dentro de los entornos de AWS. Se aceptan contribuciones o ideas para nuevos módulos.
Para mantener el ritmo de los desarrollos continuos de productos de AWS, hemos diseñado Pacu desde cero teniendo en cuenta la extensibilidad. Una sintaxis y una estructura de datos comunes hacen que los módulos sean fáciles de construir y ampliar, sin necesidad de especificar regiones de AWS ni realizar comprobaciones de permisos redundantes entre módulos. Se utiliza una base de datos SQLite local para administrar y manipular los datos recuperados, minimizando las llamadas API (y los registros asociados). Los informes y la auditoría de ataques también están integrados en el marco; Pacu ayuda en el proceso de documentación mediante el registro y la exportación de comandos, lo que ayuda a crear un cronograma para el proceso de prueba.
Siempre estamos felices de recibir informes de errores en el propio marco de Pacu, así como pruebas y comentarios sobre diferentes módulos y, en general, comentarios críticos para ayudar a perfeccionar el marco. Cualquier apoyo a Pacu mediante el uso, las pruebas, la mejora o simplemente haciendo correr la voz será muy apreciado.
Si está interesado en contribuir directamente al propio Pacu Framework, lea nuestras pautas de contribución para convenciones de código y notas de git-flow.
Si está interesado en escribir sus propios módulos para Pacu, consulte nuestra página wiki de Desarrollo de módulos. A medida que desarrolle nuevas capacidades, comuníquese con nosotros; nos encantaría agregar sus nuevos módulos a la colección principal que viene con Pacu.
Mejorar el formato de la interfaz
Migraciones hacia adelante de bases de datos y seguimiento de versiones
"Libros de estrategias de ataque" para permitir un uso más sencillo de cadenas de ejecución de módulos complejas
Salida de consola en color
Funcionalidad de ejecución en seco del módulo
Permitir el uso de archivos de configuración independientes
Mejoras en la arquitectura de complementos
Pacu tiene soporte oficial en OSX y Linux.
Pacu es un software de código abierto y se distribuye con una licencia BSD-3-Clause.
Informe las vulnerabilidades en Pacu directamente a nosotros por correo electrónico: [email protected].
Pacu crea registros de errores dentro de la carpeta de cada sesión, así como un registro de errores global para errores fuera de sesión que se crea en el directorio principal. Si puede, incluya estos registros con sus informes de errores, ya que simplificarán drásticamente el proceso de depuración.
Si tiene una solicitud de función, una idea o un error que informar, envíelos aquí.
Incluya una descripción suficiente para reproducir el error que encontró, incluidos los rastreos y los pasos de reproducción, y verifique otros informes de su error antes de presentar un nuevo informe de error. No envíe duplicados.
Para obtener tutoriales y documentación completa, visite la wiki de Pacu.
Nos encantaría saber de usted, sea cual sea el motivo. Comuníquese con Rhino Security Labs Discord.
Hasta donde sabemos, las capacidades de Pacu cumplen con la Política de uso aceptable de AWS, pero como herramienta flexible y modular, no podemos garantizar que esto sea cierto en todas las situaciones. Es enteramente su responsabilidad asegurarse de que la forma en que utiliza Pacu cumpla con la Política de uso aceptable de AWS.
Dependiendo de los servicios de AWS que utilice y de lo que impliquen las pruebas planificadas, es posible que deba revisar la Política de soporte al cliente de AWS para las pruebas de penetración antes de ejecutar Pacu en su infraestructura.
Al igual que con cualquier herramienta de prueba de penetración, es su responsabilidad obtener la autorización adecuada antes de utilizar Pacu fuera de su entorno.
Pacu es un software que no tiene garantía alguna. Al utilizar Pacu, usted asume la responsabilidad total de todos y cada uno de los resultados resultantes.