GCP - Logging Enum
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Podstawowe informacje
Usługa ta umożliwia użytkownikom przechowywanie, wyszukiwanie, analizowanie, monitorowanie i alertowanie na podstawie danych i zdarzeń logów z GCP.
Cloud Logging jest w pełni zintegrowany z innymi usługami GCP, zapewniając scentralizowane repozytorium dla logów ze wszystkich zasobów GCP. Automatycznie zbiera logi z różnych usług GCP takich jak App Engine, Compute Engine i Cloud Functions. Możesz również używać Cloud Logging dla aplikacji działających lokalnie lub w innych chmurach, korzystając z agenta Cloud Logging lub API.
Kluczowe cechy:
- Centralizacja danych logów: Agreguj dane logów z różnych źródeł, oferując całościowy widok na swoje aplikacje i infrastrukturę.
- Zarządzanie logami w czasie rzeczywistym: Strumieniuj logi w czasie rzeczywistym dla natychmiastowej analizy i reakcji.
- Potężna analiza danych: Użyj zaawansowanych możliwości filtrowania i wyszukiwania, aby szybko przeszukiwać duże ilości danych logów.
- Integracja z BigQuery: Eksportuj logi do BigQuery w celu szczegółowej analizy i zapytań.
- Metryki oparte na logach: Twórz niestandardowe metryki z danych logów do monitorowania i alertowania.
Przepływ logów
 (1) (1).png)
https://betterstack.com/community/guides/logging/gcp-logging/
Zasadniczo zlewy i metryki oparte na logach określają, gdzie log powinien być przechowywany.
Konfiguracje wspierane przez GCP Logging
Cloud Logging jest wysoce konfigurowalny, aby dostosować się do różnych potrzeb operacyjnych:
- Kosze logów (Przechowywanie logów w sieci): Zdefiniuj kosze w Cloud Logging, aby zarządzać retencją logów, zapewniając kontrolę nad tym, jak długo Twoje wpisy logów są przechowywane.
- Domyślnie tworzone są kosze
_Defaulti_Required(jeden rejestruje to, czego nie rejestruje drugi). - _Required to:
```bash
LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency")
```
- Okres przechowywania danych jest konfigurowany dla każdego koszyka i musi wynosić co najmniej 1 dzień. Jednak okres przechowywania _Required wynosi 400 dni i nie może być modyfikowany.
- Zauważ, że koszyki logów są niewidoczne w Cloud Storage.
- Skrzynki logów (Log router w sieci): Twórz skrzynki, aby eksportować wpisy logów do różnych miejsc docelowych, takich jak Pub/Sub, BigQuery lub Cloud Storage na podstawie filtru.
- Domyślnie skrzynki dla koszyków
_Defaulti_Requiredsą tworzone: -
_Required logging.googleapis.com/projects/
- **Filtry wykluczające:** Możliwe jest skonfigurowanie **wykluczeń, aby zapobiec wchłanianiu konkretnych wpisów logów**, co pozwala na oszczędności kosztów i redukcję niepotrzebnego szumu.
3. **Metryki oparte na logach:** Skonfiguruj **niestandardowe metryki** na podstawie treści logów, co pozwala na alertowanie i monitorowanie na podstawie danych logów.
4. **Widoki logów:** Widoki logów dają zaawansowaną i **szczegółową kontrolę nad tym, kto ma dostęp** do logów w twoich koszykach logów.
- Cloud Logging **automatycznie tworzy widok `_AllLogs` dla każdego koszyka**, który pokazuje wszystkie logi. Cloud Logging tworzy również widok dla koszyka `_Default` o nazwie `_Default`. Widok `_Default` dla koszyka `_Default` pokazuje wszystkie logi z wyjątkiem logów audytowych dostępu do danych. Widoki `_AllLogs` i `_Default` nie są edytowalne.
Możliwe jest zezwolenie na to, aby podmiot **mógł korzystać tylko z konkretnego widoku logów** za pomocą polityki IAM, takiej jak:
```json
{
"bindings": [
{
"members": ["user:username@gmail.com"],
"role": "roles/logging.viewAccessor",
"condition": {
"title": "Bucket reader condition example",
"description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
"expression": "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
}
}
],
"etag": "BwWd_6eERR4=",
"version": 3
}
Domyślne logi
Domyślnie operacje Admin Write (znane również jako logi audytowe aktywności administratora) są tymi, które są rejestrowane (zapisują metadane lub informacje konfiguracyjne) i nie mogą być wyłączone.
Następnie użytkownik może włączyć logi audytowe dostępu do danych, które obejmują Admin Read, Data Write i Data Write.
Więcej informacji na temat każdego typu logu można znaleźć w dokumentacji: https://cloud.google.com/iam/docs/audit-logging
Należy jednak zauważyć, że oznacza to, iż domyślnie działania GetIamPolicy i inne działania odczytu nie są rejestrowane. Tak więc, domyślnie atakujący próbujący zenumerować środowisko nie zostanie wykryty, jeśli administrator systemu nie skonfigurował generowania większej liczby logów.
Aby włączyć więcej logów w konsoli, administrator systemu musi przejść do https://console.cloud.google.com/iam-admin/audit i je włączyć. Istnieją 2 różne opcje:
- Domyślna konfiguracja: Możliwe jest utworzenie domyślnej konfiguracji i rejestrowanie wszystkich logów Admin Read i/lub Data Read i/lub Data Write oraz dodanie zwolnionych podmiotów:
.png)
- Wybierz usługi: Lub po prostu wybierz usługi, dla których chcesz generować logi oraz typ logów i zwolniony podmiot dla tej konkretnej usługi.
Należy również zauważyć, że domyślnie generowane są tylko te logi, ponieważ generowanie większej liczby logów zwiększy koszty.
Enumeracja
Narzędzie wiersza poleceń gcloud jest integralną częścią ekosystemu GCP, umożliwiając zarządzanie zasobami i usługami. Oto jak możesz użyć gcloud, aby zarządzać konfiguracjami logowania i uzyskiwać dostęp do logów.
# List buckets
gcloud logging buckets list
gcloud logging buckets describe <bucket-name> --location <location>
# List log entries: only logs that contain log entries are listed.
gcloud logging logs list
# Get log metrics
gcloud logging metrics list
gcloud logging metrics describe <metric-name>
# Get log sinks
gcloud logging sinks list
gcloud logging sinks describe <sink-name>
# Get log views
gcloud logging views list --bucket <bucket> --location global
gcloud logging views describe --bucket <bucket> --location global <view-id> # view-id is usually the same as the bucket name
# Get log links
gcloud logging links list --bucket _Default --location global
gcloud logging links describe <link-id> --bucket _Default --location global
Przykład sprawdzenia logów cloudresourcemanager (używanego do BF uprawnień): https://console.cloud.google.com/logs/query;query=protoPayload.serviceName%3D%22cloudresourcemanager.googleapis.com%22;summaryFields=:false:32:beginning;cursorTimestamp=2024-01-20T00:07:14.482809Z;startTime=2024-01-01T11:12:26.062Z;endTime=2024-02-02T17:12:26.062Z?authuser=2&project=digital-bonfire-410512
Nie ma logów testIamPermissions:
 (1) (1) (1).png)
Post Exploitation
GCP - Logging Post Exploitation
Persistence
References
- https://cloud.google.com/logging/docs/logs-views#gcloud
- https://betterstack.com/community/guides/logging/gcp-logging/
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

