
Identifique caminhos de escalada de privilégios dentro e entre diferentes nuvens

Esta ferramenta busca recursos de diferentes aplicações cloud/saas com foco em permissões, a fim de identificar caminhos de escalada de privilégios e permissões perigosas nas configurações cloud/saas. Note que o PurplePanda pesquisa tanto caminhos de escalada de privilégios dentro de uma plataforma quanto entre plataformas.
O nome vem do animal Red Panda. Este panda come ervilhas, assim como o Purple Panda, que pode ingerir chaves/tokens de API encontrados por esses PEASS. A cor foi alterada para roxo porque esta ferramenta é destinada principalmente para Purple Teams (pois pode ser altamente útil tanto para Blue Teams quanto para Red Teams).
Cada pasta dentro de /intel define uma plataforma que pode ser enumerada e contém um arquivo README.md explicando como usar esse módulo específico.
Baixe o Neo4jDesktop e crie um banco de dados. Depois exporte as variáveis de ambiente PURPLEPANDA_NEO4J_URL e PURPLEPANDA_PWD com a URL para o banco neo4j e a senha.
Se você quiser que o shodan seja usado com IPs públicos descobertos durante a enumeração, exporte uma variável de ambiente chamada SHODAN_KEY com uma chave de API válida do shodan.
Então, basta instalar e executar o programa indicando as plataformas que deseja enumerar separadas por vírgula.
git clone https://github.com/carlospolop/PurplePanda
cd PurplePanda
python3 -m venv .
source bin/activate
python3 -m pip install -r requirements.txt
export PURPLEPANDA_NEO4J_URL="bolt://neo4j@localhost:7687"
export PURPLEPANDA_PWD="s3cr3tpassword"
# Instale isso se for usar o GCP
gcloud components install gke-gcloud-auth-plugin
python3 main.py -h # Obter ajuda
python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # Enumerar google, github e k8s
# Considere adicionar as chaves de API no Dockerfile
docker rm -f purplepanda
docker build --tag=purplepanda .
# Execute -h
## Altere -h pelos parâmetros com os quais deseja executar o purplepanda
docker run -t \
-e PURPLEPANDA_NEO4J_URL="bolt://[email protected]:7687" \
-e PURPLEPANDA_PWD="s3cr3tpassword" \
-e GOOGLE_DISCOVERY=... \
-e GITHUB_DISCOVERY=... \
-e K8S_DISCOVERY=... \
-e CONCOURSE_DISCOVERY=... \
-e CIRCLECI_DISCOVERY=... \
purplepanda python3 main.py -h
## -t é necessário para ver a saída corretamente
## Se você estiver usando o Neo4jDesktop para conectar ao BD, use o domínio host.docker.internal
## Talvez seja necessário usar a opção '-v' para montar arquivos com configurações
PurplePanda tem 2 modos de análise:
-e (enumerate): Este é o principal, tentará coletar dados e analisá-los.-a (analyze): Isso realizará uma análise rápida das credenciais fornecidas.Veja como usar e inspecionar os dados coletados pelo PurplePanda:
Use credenciais para cada plataforma com pelo menos acesso de leitura de administrador a todos os recursos da plataforma. Isso ajudará você a ver exatamente os caminhos de privesc que podem ser abusados dentro de suas configurações em cada plataforma e entre plataformas.
PurplePanda também foi projetado para ser usado por Red Teams. Em geral, plataformas cloud/saas não darão a todos acesso de leitura à configuração da plataforma, por isso o PurplePanda suporta o uso de várias chaves para a mesma plataforma, a fim de tentar enumerar tudo com todas as chaves que você comprometeu e ter a visão mais precisa da configuração da plataforma.
Use o parâmetro -d indicando um diretório. Então, o PurplePanda escreverá neste diretório várias análises interessantes no formato csv das informações obtidas de todas as plataformas. A recomendação é encontrar coisas interessantes e inesperadas nesses arquivos e depois passar a analisar esses casos interessantes com os gráficos.
Cada pasta dentro de /intel define uma plataforma que pode ser enumerada e contém um arquivo README.md explicando como usar esse módulo específico. Além disso, cada pasta também contém um arquivo HOW_TO_USE.md e um arquivo QUERIES.md.
No arquivo HOW_TO_USE.md você pode encontrar as melhores consultas para realizar uma investigação sobre como escalar privilégios (para Purple, Blue e Red Teams).
No arquivo QUERIES.md você encontrará todas as consultas propostas para investigar os dados mais facilmente.
Siga as instruções indicadas em VISUALIZE_GRAPHS.md
Na pasta raiz e em cada pasta dentro de intel/ você encontrará um arquivo TODO.md. Você pode descobrir nesses arquivos como pode ajudar. Basta enviar um PR com a adição.
PRs com correções também são bem-vindos :)
Além disso, se você tiver outras ideias que não estão nesses arquivos TODO, sinta-se à vontade para enviar um PR.
Por Carlos PolopTM