O framework de exploração da AWS, projetado para testar a segurança de ambientes Amazon Web Services.
Onde obter ajuda: o Discord do Rhino Security Labs, ou Stack Overflow
Onde reportar problemas: https://github.com/RhinoSecurityLabs/pacu/issues
Mantido por: Rhino Security Labs
Pacu é um framework de exploração AWS de código aberto, projetado para testes de segurança ofensivos em ambientes de nuvem. Criado e mantido pela Rhino Security Labs, Pacu permite que testadores de penetração explorem falhas de configuração em uma conta AWS, usando módulos para expandir facilmente sua funcionalidade. Os módulos atuais permitem uma série de ataques, incluindo escalonamento de privilégios de usuário, backdoor de usuários IAM, ataque a funções Lambda vulneráveis e muito mais.
Pacu é um programa relativamente leve, pois requer apenas Python3.7+ e pip3 para instalar algumas bibliotecas Python.
pip3 install -U pip
pip3 install -U pacu
pacu
Este é o método preferido ao usar Kali Linux, já que pip não é mais instalado por padrão. Isso instalará o Pacu com as atualizações mais recentes que podem não estar incluídas na versão oficial.
pipx install git+https://github.com/RhinoSecurityLabs/pacu.git
Para instruções de uso mais detalhadas e amigáveis, consulte o guia de instalação da Wiki.
docker run -it rhinosecuritylabs/pacu:latest
docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Aviso: Executar este comando montará seus arquivos de configuração AWS locais no contêiner Docker quando ele for iniciado. Isso significa que qualquer usuário com acesso ao contêiner terá acesso às credenciais AWS do seu computador host.
docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
Na primeira vez que o Pacu for iniciado, você será solicitado a iniciar e nomear uma nova sessão. Esta sessão será usada para armazenar pares de chaves AWS, bem como quaisquer dados obtidos ao executar vários módulos. Você pode ter qualquer número de sessões diferentes no Pacu, cada uma com seus próprios conjuntos de chaves e dados AWS, e retomar uma sessão a qualquer momento (embora atualmente seja necessária uma reinicialização para alternar entre sessões).
Os módulos exigem uma chave AWS, que concede acesso mínimo a um ambiente AWS e é composta por um ID de chave de acesso e uma chave de acesso secreta. Para definir as chaves da sua sessão, use o comando set_keys e siga as instruções para fornecer um alias de chave (apelido para referência), um ID de chave de acesso AWS, uma chave de acesso secreta AWS e um token de sessão AWS (se estiver usando um).
Se você estiver em dúvida, help exibirá uma lista de comandos disponíveis.
list listará os módulos disponíveis para as regiões que foram definidas na sessão atual.help nome_do_módulo retornará as informações de ajuda aplicáveis para o módulo especificado.run nome_do_módulo executará o módulo especificado com seus parâmetros padrão.run nome_do_módulo --regions eu-west-1,us-west-1 executará o módulo especificado nas regiões eu-west-1 e us-west-1 (para módulos que suportam o argumento --regions)pacu --help exibirá o menu de ajudapacu --session <nome da sessão> define a sessão a ser usada para comandos que exigem umapacu --list-modules listará todos os módulos disponíveis (não requer sessão)pacu --pacu-help exibirá a janela de ajuda do pacu (não requer sessão)pacu --module-name <nome do módulo> o nome de um módulo para realizar uma ação, você pode executar ou obter informações sobre o módulopacu --exec executa o módulo fornecido em --module-namepacu --module-info obtém informações sobre o módulo fornecido em --module-namepacu --data <nome do serviço || all> consulta o banco de dados local do SQLAlchemy para recuperar informações enumeradaspacu --module-args="<arg1> <value> <arg2> <value>" fornece argumentos de módulo opcionais para o módulo sendo executadopacu --set-regions <região1 região2 || all> define as regiões a serem usadas na sessão, separe as regiões por um espaço ou digite all para todas as regiõespacu --whoami obtém informações sobre o usuário atualPacu usa uma variedade de módulos plug-in para ajudar um atacante na enumeração, escalonamento de privilégios, exfiltração de dados, exploração de serviços e manipulação de logs em ambientes AWS. Contribuições ou ideias para novos módulos são bem-vindas.
Para acompanhar os desenvolvimentos contínuos de produtos AWS, projetamos o Pacu desde o início com extensibilidade em mente. Uma sintaxe e estrutura de dados comuns mantêm os módulos fáceis de construir e expandir - não é necessário especificar regiões AWS ou fazer verificações de permissão redundantes entre módulos. Um banco de dados SQLite local é usado para gerenciar e manipular dados recuperados, minimizando chamadas de API (e logs associados). A geração de relatórios e auditoria de ataques também está incorporada ao framework; o Pacu auxilia o processo de documentação por meio de registro e exportação de comandos, ajudando a construir uma linha do tempo para o processo de teste.
Estamos sempre felizes em receber relatórios de bugs no próprio framework Pacu, bem como testes e feedback sobre diferentes módulos, e, de forma geral, feedback crítico para ajudar a refinar o framework. Qualquer suporte ao Pacu por meio de uso, teste, melhoria ou apenas divulgando a palavra seria muito apreciado.
Se você estiver interessado em contribuir diretamente para o framework Pacu, leia nossas diretrizes de contribuição para convenções de código e notas sobre git-flow.
Se você estiver interessado em escrever seus próprios módulos para Pacu, consulte nossa página da wiki de Desenvolvimento de Módulos. Conforme você desenvolve novas capacidades, entre em contato conosco - adoraríamos adicionar seus novos módulos à coleção principal que acompanha o Pacu.
Para tutoriais e documentação completa, visite a wiki do Pacu.