htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm을 팔로우하세요.
- HackTricks와 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보:
{% content-ref url="../gcp-services/gcp-storage-enum.md" %} gcp-storage-enum.md {% endcontent-ref %}
이 권한을 사용하면 Cloud Storage에 저장된 파일을 다운로드할 수 있습니다. 이를 통해 권한 상승이 가능할 수 있으며, 때로는 민감한 정보가 저장됩니다. 또한, 일부 GCP 서비스는 정보를 버킷에 저장합니다:
- GCP Composer: Composer 환경을 생성할 때 모든 DAG의 코드가 버킷에 저장됩니다. 이러한 작업에는 코드 내에 흥미로운 정보가 포함될 수 있습니다.
- GCR (Container Registry): 컨테이너의 이미지가 버킷에 저장되므로, 버킷을 읽을 수 있다면 이미지를 다운로드하고 유출 및 소스 코드를 검색할 수 있습니다.
이 권한을 사용하면 이 섹션의 이전 시나리오 중 어떤 것이든 남용할 수 있습니다.
이 권한을 사용하여 권한을 수정하는 예제는 다음 페이지를 참조하세요:
{% content-ref url="../gcp-unaunthenticated-enum-and-access/gcp-storage-unauthenticated-enum/gcp-public-buckets-privilege-escalation.md" %} gcp-public-buckets-privilege-escalation.md {% endcontent-ref %}
Cloud Storage의 "상호 운용성" 기능은 AWS S3와 같은 다른 클라우드 간의 상호 작용을 위해 서비스 계정 및 사용자용 HMAC 키를 생성합니다. 공격자는 이를 악용하여 권한이 상승된 서비스 계정을 위한 HMAC 키를 생성할 수 있으며, 이를 통해 Cloud Storage 내에서 권한을 상승시킬 수 있습니다. 사용자와 연결된 HMAC 키는 웹 콘솔을 통해서만 검색할 수 있지만, 액세스 및 비밀 키는 영구적으로 접근 가능하여 잠재적인 백업 액세스 저장소로 사용할 수 있습니다. 반면, 서비스 계정과 연결된 HMAC 키는 API를 통해 액세스할 수 있지만, 생성 후 액세스 및 비밀 키를 검색할 수 없으므로 지속적인 액세스를 위해 복잡성이 추가됩니다.
# Create key
gsutil hmac create <sa-email>
# Configure gsutil to use it
gsutil config -a
# Use it
gsutil ls gs://[BUCKET_NAME]
이 방법에 대한 다른 악용 스크립트는 여기에서 찾을 수 있습니다.
버킷 내에서 새로운 객체를 생성하려면 storage.objects.create
가 필요하며, 문서에 따르면 기존 객체를 수정하려면 storage.objects.delete
도 필요합니다.
클라우드에 쓰기 권한이 있는 버킷에서 가장 일반적으로 악용되는 경우는 버킷이 웹 서버 파일을 저장하는 경우입니다. 이 경우 웹 애플리케이션이 사용할 새로운 코드를 저장할 수 있을 수도 있습니다.
Composer는 GCP 내에서 관리되는 Apache Airflow입니다. 몇 가지 흥미로운 기능이 있습니다:
- GKE 클러스터 내에서 실행되므로 Composer 내에서 실행되는 코드에서 액세스할 수 있는 SA 클러스터를 사용합니다.
- 코드를 버킷에 저장하므로 해당 버킷에 쓰기 액세스 권한이 있는 모든 사용자는 DGA 코드(코드 Apache Airflow가 실행)를 변경/추가할 수 있습니다.
따라서 코드를 저장하는 데 사용되는 버킷에 쓰기 액세스 권한이 있다면 GKE 클러스터에서 실행 중인 SA로 권한 상승할 수 있습니다.
- Cloud Functions 코드는 스토리지에 저장되므로, 이를 덮어쓰면 임의의 코드를 실행할 수 있습니다.
- App Engine 소스 코드는 버킷에 저장되며, 코드를 덮어쓰면 임의의 코드를 실행할 수 있습니다. 이는 불가능합니다.
- 컨테이너 레이어가 버킷에 저장되는 것 같습니다. 이를 변경할 수 있을까요?
- Google Container Registry는 이미지를 버킷에 저장합니다. 해당 버킷에 쓰기 권한이 있다면 해당 버킷이 실행 중인 위치로 측면 이동할 수 있습니다.
- GCR에서 사용하는 버킷의 URL은
gs://<eu/usa/asia/nothing>.artifacts.<project>.appspot.com
과 유사합니다. (상위 수준 하위 도메인은 여기에서 지정됩니다).
htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 영웅까지 AWS 해킹을 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- 독점적인 NFT 컬렉션인 The PEASS Family를 발견하세요.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter에서 저를 팔로우하세요 🐦 @carlospolopm.
- HackTricks와 HackTricks Cloud github 저장소에 PR을 제출하여 자신의 해킹 기법을 공유하세요.