
다양한 클라우드 내부 및 클라우드 간 권한 상승 경로 식별

이 도구는 권한에 초점을 맞춰 다양한 클라우드/SaaS 애플리케이션에서 리소스를 가져와 클라우드/SaaS 구성에서 권한 상승 경로와 위험한 권한을 식별합니다. PurplePanda는 플랫폼 내의 권한 상승 경로와 플랫폼 간의 권한 상승 경로를 모두 검색한다는 점에 유의하세요.
이름은 동물 **레드 팬더(Red Panda)**에서 유래했습니다. 이 팬더는 완두콩을 먹습니다. 마찬가지로 Purple Panda는 **PEASS**가 찾은 API 키/토큰을 수집할 수 있습니다. 색상이 보라색으로 변경된 이유는 이 도구가 주로 퍼플 팀(Purple Teams)을 위해 설계되었기 때문입니다(블루 팀과 레드 팀 모두에게 매우 유용할 수 있기 때문입니다).
/intel 내의 각 폴더는 열거할 수 있는 하나의 플랫폼을 정의하며, 해당 모듈을 사용하는 방법을 설명하는 README.md 파일이 포함되어 있습니다.
**Neo4jDesktop**을 다운로드하여 데이터베이스를 생성하세요. 그런 다음 **환경 변수 PURPLEPANDA_NEO4J_URL과 PURPLEPANDA_PWD**를 neo4j 데이터베이스의 URL과 비밀번호로 설정하세요.
열거 중 발견된 공용 IP에 shodan을 사용하려면 유효한 shodan API 키를 가진 SHODAN_KEY라는 환경 변수를 내보내세요.
그런 다음 설치하고, 열거하려는 플랫폼을 쉼표로 구분하여 프로그램을 실행하면 됩니다.
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"
# Install this if you are going to use GCP
gcloud components install gke-gcloud-auth-plugin
python3 main.py -h # Get help
python3 main.py -e -p google,github,k8s --github-only-org --k8s-get-secret-values --gcp-get-secret-values # Enumerate google, github and k8s
# Consider adding the API keys in the Dockerfile
docker rm -f purplepanda
docker build --tag=purplepanda .
# Execute -h
## CHange -h for the params you want to run purplepanda with
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 is needed to see the output properly
## If you are using Neo4Desktop to connec to the DB use the domain host.docker.internal
## You might need to use the option '-v' to mount files with configurations
PurplePanda는 2가지 분석 모드를 제공합니다:
-e (열거): 주요 모드로, 데이터를 수집하고 분석합니다.-a (분석): 제공된 자격 증명에 대한 빠른 분석을 수행합니다.PurplePanda가 수집한 데이터를 사용하고 검사하는 방법을 확인하세요:
각 플랫폼에 대해 최소한 **모든 리소스에 대한 읽기 권한(admin read access)**이 있는 자격 증명을 사용하세요. 이렇게 하면 각 플랫폼 내 및 플랫폼 간 구성에서 악용될 수 있는 권한 상승 경로를 정확히 파악할 수 있습니다.
PurplePanda는 레드 팀에서도 사용할 수 있도록 설계되었습니다. 일반적으로 클라우드/SaaS 플랫폼은 모든 사람이 플랫폼 구성을 읽을 수 있는 액세스 권한을 부여하지 않기 때문에, PurplePanda는 동일한 플랫폼에 대해 여러 키를 사용하는 것을 지원합니다. 이를 통해 손상된 모든 키로 모든 것을 열거하고 플랫폼 구성을 가장 정확하게 파악할 수 있습니다.
-d 매개변수를 사용하여 디렉토리를 지정하세요. 그러면 PurplePanda는 이 디렉토리에 모든 플랫폼에서 얻은 정보에 대한 몇 가지 흥미로운 분석을 csv 형식으로 작성합니다. 권장 사항은 해당 파일에서 흥미롭고 예상치 못한 것들을 찾은 다음, 그래프로 해당 흥미로운 사례를 분석하는 것입니다.
/intel 내의 각 폴더는 열거할 수 있는 하나의 플랫폼을 정의하며, 해당 모듈을 사용하는 방법을 설명하는 README.md 파일이 포함되어 있습니다. 또한 각 폴더에는 HOW_TO_USE.md 파일과 QUERIES.md 파일이 있습니다.
HOW_TO_USE.md 파일에서는 권한 상승을 위한 조사를 수행하는 최상의 쿼리를 찾을 수 있습니다(퍼플, 블루, 레드 팀용).
QUERIES.md 파일에서는 데이터를 더 쉽게 조사하기 위한 모든 제안 쿼리를 찾을 수 있습니다.
**VISUALIZE_GRAPHS.md**에 나와 있는 지침을 따르세요.
루트 폴더와 intel/ 내의 각 폴더에는 TODO.md 파일이 있습니다. 해당 파일에서 기여할 수 있는 방법을 찾을 수 있습니다. 추가 사항이 포함된 PR을 보내주세요.
수정 사항이 포함된 PR도 환영합니다 :)
또한, TODO 파일에 없는 다른 아이디어가 있다면 자유롭게 PR을 보내주세요.
By Carlos PolopTM