GCP - Network Docker Escape
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die đŹ Discord group of die telegram group of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Aanvangstoestand
In beide writeups waar hierdie tegniek gespesifiseer word, het die aanvallers daarin geslaag om root toegang te kry binne ân Docker kontenaar wat deur GCP bestuur is met toegang tot die host-netwerk (en die vermoĂ«ns CAP_NET_ADMIN en CAP_NET_RAW).
Verduideliking van die aanval
Op ân Google Compute Engine instansie openbaar gereelde inspeksie van netwerkverkeer talle onversleutelde HTTP-versoeke na die metadata-instansie by 169.254.169.254. Die Google Guest Agent, ân open-source diens, maak dikwels sulke versoeke.
Hierdie agent is ontwerp om veranderinge in die metadata dop te hou. Noemenswaardig is dat die metadata ân veld vir SSH openbare sleutels insluit. Wanneer ân nuwe openbare SSH-sleutel by die metadata gevoeg word, gisautoriseer die agent dit outomaties in die .authorized_key lĂȘer. Dit kan ook ân nuwe gebruiker skep en hulle indien nodig by sudoers voeg.
Die agent monitor veranderinge deur ân versoek te stuur om alle metadata-waardes rekursief op te haal (GET /computeMetadata/v1/?recursive=true). Hierdie versoek is ontwerp om die metadata-bediener te laat reageer slegs as daar enige verandering in die metadata sedert die laaste opvraging was, geĂŻdentifiseer deur ân Etag (wait_for_change=true&last_etag=). Bykomend is ân timeout parameter (timeout_sec=) ingesluit. Indien geen verandering binne die gespesifiseerde timeout plaasvind nie, antwoord die bediener met die onveranderde waardes.
Hierdie proses laat die IMDS (Instance Metadata Service) toe om nĂĄ 60 sekondes te reageer as geen konfigurasiewijziging plaasgevind het nie, wat ân potensiĂ«le venster skep om ân vals konfigurasie-antwoord in te spuit aan die guest agent.
ân Aanvaller kan dit uitbuit deur ân Man-in-the-Middle (MitM) aanval uit te voer, die reaksie van die IMDS-bediener te spooff, en ân nuwe openbare sleutel in te voeg. Dit kan ongemagtigde SSH-toegang tot die host moontlik maak.
Ontsnaptegniek
Terwyl ARP spoofing op Google Compute Engine netwerke ondoeltreffend is, kan ân gewysigde weergawe van rshijack ontwikkel deur Ezequiel gebruik word vir pakketinspuiting in die kommunikasie om die SSH-gebruiker in te spuit.
Hierdie weergawe van rshijack laat toe om die ACK- en SEQ-nommers as opdragreĂ«largumente in te voer, wat die spoofing van ân reaksie voor die werklike Metadata-bediener-reaksie vergemaklik. Bykomend word ân klein Shell script gebruik om ân spesiaal saamgestelde payload terug te gee. Hierdie payload veroorsaak dat die Google Guest Agent ân gebruiker wouter skep met ân gespesifiseerde publieke sleutel in die .authorized_keys lĂȘer.
Die script gebruik dieselfde ETag om te verhoed dat die Metadata-bediener die Google Guest Agent onmiddellik in kennis stel van verskillende metadata-waardes, en stel sodoende die reaksie uit.
Om die spoofing uit te voer, is die volgende stappe nodig:
- Hou versoeke na die Metadata-bediener dop met tcpdump:
Hou versoeke na die metadata-bediener dop met tcpdump
```bash tcpdump -S -i eth0 'host 169.254.169.254 and port 80' & ```Soek na ân reĂ«l soortgelyk aan:
HackTricks Cloud

