GCP - Network Docker Escape
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Početno stanje
U oba writeup‑a u kojima je ova tehnika opisana, napadači su uspeli da dobiju root pristup unutar Docker kontejnera koji je upravljan od strane GCP i koji ima pristup host mreži (i privilegije CAP_NET_ADMIN i CAP_NET_RAW).
Objašnjenje napada
Na Google Compute Engine instanci, uobičajena inspekcija mrežnog saobraćaja otkriva mnoge plain HTTP zahteve ka instanci metapodataka na 169.254.169.254. Google Guest Agent, open‑source servis, često pravi takve zahteve.
Ovaj agent je dizajniran da prati promene u metapodacima. Posebno, metapodaci sadrže polje za SSH public keys. Kada se novi javni SSH ključ doda u metapodatke, agent ga automatski autorizuje u fajlu .authorized_key. Takođe može kreirati novog korisnika i dodati ga u sudoers ako je potrebno.
Agent prati promene tako što šalje zahtev da preuzme sve vrednosti metapodataka rekurzivno (GET /computeMetadata/v1/?recursive=true). Ovaj zahtev je osmišljen da natera metadata server da pošalje odgovor samo ako je došlo do neke promene u metapodacima od poslednjeg preuzimanja, koja se identifikuje Etag‑om (wait_for_change=true&last_etag=). Dodatno, uključen je i parametar timeout (timeout_sec=). Ako se promena ne dogodi u okviru zadanog timeout‑a, server odgovara sa nepromenjenim vrednostima.
Ovaj proces omogućava IMDS‑u (Instance Metadata Service) da odgovori nakon 60 sekundi ako nije došlo do promene konfiguracije, čime se stvara potencijalni prozor za injektovanje lažnog odgovora konfiguracije ka guest agentu.
Napadač bi to mogao iskoristiti izvođenjem Man-in-the-Middle (MitM) attack, spoof‑ovanjem odgovora sa IMDS servera i ubacivanjem novog public ključa. To bi moglo omogućiti neautorizovan SSH pristup hostu.
Tehnika bekstva
Iako je ARP spoofing neefikasan na Google Compute Engine mrežama, modifikovana verzija rshijack koju je razvio Ezequiel može se koristiti za injektovanje paketa u komunikaciji kako bi se ubacio SSH korisnik.
Ova verzija rshijack‑a dozvoljava unošenje ACK i SEQ brojeva kao argumente komandne linije, što olakšava spoof‑ovanje odgovora pre nego što stigne pravi odgovor od Metadata servera. Dodatno, koristi se i mali Shell skript koji vraća posebno kreirani payload. Taj payload pokreće Google Guest Agent da kreira korisnika wouter sa određenim public ključem u fajlu .authorized_keys.
Skript koristi isti ETag kako bi sprečio Metadata server da odmah obavesti Google Guest Agent o različitim vrednostima metapodataka, čime se odlaže odgovor.
Za izvođenje spoofinga potrebno je sprovesti sledeće korake:
- Pratiti zahteve ka Metadata serveru koristeći tcpdump:
Pratite zahteve ka metadata serveru pomoću tcpdump
```bash tcpdump -S -i eth0 'host 169.254.169.254 and port 80' & ```Pronađite liniju sličnu:
HackTricks Cloud

