gcpwn은 GCP를 배우면서 최신 GRPC 클라이언트 라이브러리를 활용하면서 직접 만든 도구였습니다. 이는 제가 작성한 수많은 열거 모듈과 GCP 테스트를 위한 원스톱 상점을 만들기 위한 노력의 일환으로 GCPBucketBrute와 같은 기존의 알려진 독립 실행형 도구와 함께 공간에서 다른 사람들(예: Rhino Security)이 수행한 연구를 활용하는 익스플로잇 모듈로 구성됩니다. . 다른 익스플로잇 스크립트는 일반적으로 일회성으로 사용되지만 GCPwn은 데이터를 구성하는 모듈을 통해 실행하면서 데이터와 권한을 모두 저장 하고 이를 재사용하여 침투 테스트/추적 권한 측면에서 더 쉽게 사용할 수 있습니다.
작성자: Scott Weston(@webbinroot), NetSPI
필수 종속성:Requirements.txt + Wiki 설치 가이드를 참조하세요.
종속성 참고: 주로 Kali Linux에서 테스트되었습니다. Dockerfile을 통해 Docker 설치 가능
이 도구는 주로 침투 테스터, GCP 보안을 배우는 사람, 일반적인 보안 연구원을 위한 것입니다.
침투 테스터의 경우 위에 설명된 것처럼 이 도구는 일반적으로 실행하는 많은 스크립트를 자동화하고 데이터를 저장하여 공격 모듈을 실행하기 쉽게 만듭니다.
GCP 보안을 막 배우는 사람들을 위해 도구는 개별 서비스를 자세히 살펴보면서 Pull 요청을 통해 자신의 모듈을 쉽게 추가할 수 있도록 설정되어 있습니다.
보안 연구원의 경우 이 도구를 사용하면 수많은 GCP API 호출을 실행할 수 있으며 Burp Suite와 같은 로컬 도구를 통해 백그라운드에서 도구를 프록시하는 방법을 문서화했습니다. 따라서 모든 요청을 기록하는 Burp Suite를 사용하여 enum_all
실행하면 하나의 명령으로 다양한 Python 라이브러리 전체의 다양한 API 엔드포인트에 대한 가시성을 얻을 수 있습니다. 적어도 그것이 희망입니다. 누군가가 코드 크래킹을 완료할 수 있다면 부분적으로 env 변수를 사용하여 작업할 수 있게 되었습니다. :)
https://github.com/NetSPI/gcpwn/wiki에서 다음 내용에 대한 Wiki를 검토하세요.
설치 지침 및 폴더 설정 : 최초 사용을 위한 도구 설정 방법 및 사용되는 기본 폴더
인증 관리 및 토큰 정보 : 자격 증명 설정을 위해 사용자 및/또는 서비스 자격 증명을 로드합니다.
프로젝트 관리 및 리소스 데이터 검색 : 프로젝트 ID를 관리하는 방법과 SQLite 테이블에서 열거된 데이터를 검색하는 방법.
모듈 가이드 : 모듈 호출 방법 + 각 모듈에 대한 심층 분석
모듈 생성 : 풀 요청을 통해 자신만의 모듈을 추가하는 방법(진행 중 - 목표 날짜 2024년 9월 15일)
Research Head Scratchers : 연구 주제/공개 질문(진행 중 - 목표 날짜 2024년 9월 22일)
이 도구는 자동으로 "테이블" 표준 출력을 기본값으로 설정합니다. 도구는 테이블, txt 및 csv를 지원합니다. 테이블에 문제가 있는 경우 다음을 사용하여 전역 구성을 변경할 수 있습니다.
# See global configs global_configs # Set global configs for preferred output global_configs set std-output txt
또는 각 modules run
명령과 함께 --txt
, --table
및/또는 --csv
전달하여 stdoutput을 변경할 수 있습니다.
modules run enum_buckets --txt
열거된 데이터는 GCPwn의 로컬 테이블에 저장됩니다. 테이블 출력 실행을 보려면
# See all tables data tables # See all table columns data tables--columns # Get all data back and export to CSV file data --columns column1,column2 --csv [OUTPUT_FILE]
새로 열거된 권한을 보려면 enum_all
모듈과 creds info
실행하십시오. 그런 다음 process_iam_bindings
모듈은 정책 바인딩이 열거 가능한 경우 TXT/CSV 요약을 제공하고 analyze_vulns
잘못된 역할/권한에 플래그를 지정하려고 시도합니다. 아래의 공통 플래그를 참조하세요.
모든 것을 열거하십시오 (가장 적합한 것을 선택하십시오)
# Quickest: Run all enumeration modules + testIAM Permissions modules run enum_all --iam # Longer: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org modules run enum_all --iam --all-permissions # Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting modules run enum_all --iam --all-permissions --download
enum_all 또는 위의 다른 모듈에서 모든 IAM 정책 바인딩을 가져와서 요약/취약성 분석을 반환합니다.
# Review Permissions User Has Thus Far creds info # Return Policy Summary from IAM Bindings if Applicable modules run process_iam_bindings [--txt] [--csv] # Analyze IAM Bindings + Other Items (like allUsers) if Applicable modules run analyze_vulns [--txt] [--csv]
fwd:cloudsec 2024: https://www.youtube.com/watch?v=opvv9h3Qe0s("GCPwn: GCP용 침투 테스트 도구 - Scott Weston")
데프콘 32 구름마을: https://www.youtube.com/watch?v=rxXyYo1n9cw
https://www.netspi.com/blog/technical-blog/cloud-pentesting/introduction-to-gcpwn-part-1/
나는 멋진 새 물건에 대한 이슈/풀을 지켜볼 것입니다. 즉, 제가 본업을 가지고 있으므로 적어도 24시간 정도 시간을 주세요 :)
작은 문제인 경우 빠른 수정을 위해 문제 탭을 통한 문제를 선호합니다.
거인의 어깨 위에 구축된 일부 코드 및 아이디어/연구에 대한 크레딧은 다음에서 영감을 받았습니다.
Rhino 보안(https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/)
GCPBucketBrute (https://github.com/RhinoSecurityLabs/GCPBucketBrute)
다양한 Google 문서(https://cloud.google.com/python/docs/reference)