GCP - Compute Post Exploitation
Compute
Więcej informacji o Compute i VPC (Networking) znajdziesz tutaj:
GCP - Compute EnumEksportuj i sprawdzaj obrazy lokalnie
To pozwoliłoby atakującemu na dostęp do danych zawartych w już istniejących obrazach lub tworzenie nowych obrazów działających VM i dostęp do ich danych bez dostępu do działającej VM.
Możliwe jest wyeksportowanie obrazu VM do bucketu, a następnie pobranie go i zamontowanie lokalnie za pomocą polecenia:
Przed wykonaniem tej akcji atakujący może potrzebować uprawnień do koszyka storage i na pewno uprawnień do cloudbuild, ponieważ to usługa, która będzie poproszona o wykonanie eksportu.
Ponadto, aby to zadziałało, codebuild SA i compute SA muszą mieć uprzywilejowane uprawnienia.
Cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com
potrzebuje:
roles/iam.serviceAccountTokenCreator
roles/compute.admin
roles/iam.serviceAccountUser
A SA <project-id>-compute@developer.gserviceaccount.com
potrzebuje:
roles/compute.storageAdmin
roles/storage.objectAdmin
Eksportuj i sprawdzaj migawki i dyski lokalnie
Nie jest możliwe bezpośrednie eksportowanie migawek i dysków, ale można przekształcić migawkę w dysk, dysk w obraz i zgodnie z poprzednią sekcją, wyeksportować ten obraz, aby sprawdzić go lokalnie
Inspekcja obrazu poprzez utworzenie VM
W celu uzyskania dostępu do danych przechowywanych w obrazie lub wewnątrz działającej VM, z której atakujący utworzył obraz, możliwe jest przyznanie zewnętrznemu kontu dostępu do obrazu:
a następnie utwórz z niego nową VM:
Jeśli nie możesz przyznać dostępu do swojego zewnętrznego konta nad obrazem, możesz uruchomić VM używając tego obrazu w projekcie ofiary i sprawić, by metadane wykonały reverse shell w celu uzyskania dostępu do obrazu, dodając parametr:
Inspect a Snapshot/Disk attaching it to a VM
W celu uzyskania dostępu do danych przechowywanych na dysku lub migawce, możesz przekształcić migawkę w dysk, dysk w obraz i postępować zgodnie z wcześniejszymi krokami.
Lub możesz przyznać zewnętrznemu kontu dostęp do dysku (jeśli punktem wyjścia jest migawka, przyznaj dostęp do migawki lub utwórz z niej dysk):
Podłącz dysk do instancji:
Zamontuj dysk wewnątrz VM:
SSH do VM:
Zidentyfikuj Dysk: Po zalogowaniu się do VM, zidentyfikuj nowy dysk, wylistowując urządzenia dyskowe. Zazwyczaj można go znaleźć jako
/dev/sdb
,/dev/sdc
, itp.Sformatuj i Zamontuj Dysk (jeśli to nowy lub surowy dysk):
Utwórz punkt montowania:
Zamontuj dysk:
Jeśli nie możesz dać dostępu do zewnętrznego projektu do migawki lub dysku, może być konieczne wykonanie tych działań wewnątrz instancji w tym samym projekcie co migawka/dysk.
Last updated