Onde obter ajuda : Rhino Security Labs Discord ou Stack Overflow
Onde registrar problemas : https://github.com/RhinoSecurityLabs/pacu/issues
Mantido por : Rhino Security Labs
Pacu é uma estrutura de exploração AWS de código aberto, projetada para testes de segurança ofensivos em ambientes de nuvem. Criado e mantido pelo Rhino Security Labs, o 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 bastante leve, pois requer apenas Python3.7+ e pip3 para instalar algumas bibliotecas Python.
> pip3 install -U pip > pip3 install -U pacu > pacu
Para obter um conjunto de instruções de usuário mais detalhado e fácil de usar, consulte o guia de instalação do Wiki.
$ docker run -it rhinosecuritylabs/pacu:mais recente
$ docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Aviso: a execução deste comando montará seus arquivos de configuração locais da AWS 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 na execução de 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 da AWS, e retomar uma sessão a qualquer momento (embora atualmente seja necessário reiniciar 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 os prompts para fornecer um alias de chave (apelido para referência), um ID de chave de acesso da AWS, uma chave de acesso secreta da AWS e um token de sessão da AWS (se você estiver usando um ).
Se você tiver dúvidas, 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 module_name
retornará as informações de ajuda aplicáveis para o módulo especificado.
run module_name
executará o módulo especificado com seus parâmetros padrão.
run module_name --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 ajuda
pacu --session
define a sessão a ser usada para comandos que requerem um
pacu --list-modules
listará todos os módulos disponíveis (não requer sessão)
pacu --pacu-help
listará a janela de ajuda do pacu (não requer sessão)
pacu --module-name
o nome de um módulo no qual executar uma ação, você pode executar ou obter informações sobre o módulo
pacu --exec
executa o módulo fornecido em --module-name
pacu --module-info
obtém informações sobre o módulo fornecido em --module-name
pacu --data
consulte o banco de dados SQLAlchemy local para recuperar informações enumeradas
pacu --module-args="
fornece argumentos de módulo opcionais para o módulo que está sendo executado
pacu --set-regions
defina as regiões a serem usadas na sessão, separe as regiões por um espaço ou insira all
para todas as regiões
pacu --whoami
obtém informações sobre o usuário atual
Pacu usa uma variedade de módulos de plug-in para auxiliar um invasor 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 o desenvolvimento contínuo de produtos da AWS, projetamos o Pacu desde o início com a extensibilidade em mente. Uma sintaxe e uma estrutura de dados comuns mantêm os módulos fáceis de construir e expandir - sem necessidade de especificar regiões da AWS ou fazer verificações de permissão redundantes entre módulos. Um banco de dados SQLite local é usado para gerenciar e manipular os dados recuperados, minimizando chamadas de API (e logs associados). Relatórios e auditoria de ataques também estão integrados à estrutura; Pacu auxilia no processo de documentação por meio de registro e exportação de comandos, ajudando a construir um cronograma 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, geralmente, feedback crítico para ajudar a refinar o framework. Qualquer apoio ao Pacu através do uso, teste, melhoria ou apenas divulgação, seria muito apreciado.
Se você estiver interessado em contribuir diretamente para o próprio Pacu Framework, leia nossas diretrizes de contribuição para convenções de código e notas de fluxo do git.
Se você estiver interessado em escrever seus próprios módulos para Pacu, confira nossa página wiki de Desenvolvimento de Módulos. À medida que você desenvolve novos recursos, entre em contato conosco – adoraríamos adicionar seus novos módulos à coleção principal que vem com o Pacu.
Melhorar a formatação da interface
Migrações futuras de banco de dados e rastreamento de versão
"Manuais de ataque" para permitir o uso mais fácil de cadeias complexas de execução de módulos
Saída de console colorida
Funcionalidade de simulação do módulo
Permitir o uso de arquivos de configuração independentes
Melhorias na arquitetura do plugin
Pacu é oficialmente suportado em OSX e Linux.
Pacu é um software de código aberto e é distribuído com uma licença BSD-3-Clause.
Relate vulnerabilidades no Pacu diretamente para nós por e-mail: [email protected].
Pacu cria logs de erros dentro da pasta de cada sessão, bem como um log de erros global para erros fora da sessão que é criado no diretório principal. Se puder, inclua esses logs em seus relatórios de bugs, pois isso simplificará drasticamente o processo de depuração.
Se você tiver uma solicitação de recurso, uma ideia ou um bug para relatar, envie-os aqui.
Por favor inclua uma descrição suficiente para reproduzir o bug que você encontrou, incluindo rastreamentos e etapas de reprodução, e verifique se há outros relatórios do seu bug antes de preencher um novo relatório de bug. Não envie duplicatas.
Para orientações e documentação completa, visite o wiki do Pacu.
Adoraríamos ouvir sua opinião, seja qual for o motivo. Entre em contato com o Discord do Rhino Security Labs.
Até onde sabemos, os recursos do Pacu estão em conformidade com a Política de uso aceitável da AWS, mas como uma ferramenta flexível e modular, não podemos garantir que isso será verdadeiro em todas as situações. É inteiramente sua responsabilidade garantir que a forma como você usa o Pacu esteja em conformidade com a Política de Uso Aceitável da AWS.
Dependendo dos serviços da AWS que você usa e do que os testes planejados envolvem, talvez seja necessário revisar a Política de suporte ao cliente da AWS para testes de penetração antes de realmente executar o Pacu em sua infraestrutura.
Como acontece com qualquer ferramenta de teste de penetração, é sua responsabilidade obter a autorização adequada antes de usar o Pacu fora do seu ambiente.
Pacu é um software que não oferece absolutamente nenhuma garantia. Ao usar o Pacu, você assume total responsabilidade por todo e qualquer resultado resultante.