GCP - Logging Post Exploitation

Soutenez HackTricks

Informations de base

Pour plus d'informations, consultez :

GCP - Logging Enum

Pour d'autres moyens de perturber la surveillance, consultez :

GCP - Monitoring Post Exploitation

Journalisation par défaut

Par défaut, vous ne serez pas attrapé juste pour avoir effectué des actions de lecture. Pour plus d'informations, consultez la section Logging Enum.

Ajouter un Principal Excepté

Dans https://console.cloud.google.com/iam-admin/audit/allservices et https://console.cloud.google.com/iam-admin/audit, il est possible d'ajouter des principaux pour ne pas générer de journaux. Un attaquant pourrait en abuser pour éviter d'être attrapé.

Lire les journaux - logging.logEntries.list

# Read logs
gcloud logging read "logName=projects/your-project-id/logs/log-id" --limit=10 --format=json

# Everything from a timestamp
gcloud logging read "timestamp >= \"2023-01-01T00:00:00Z\"" --limit=10 --format=json

# Use these options to indicate a different bucket or view to use: --bucket=_Required  --view=_Default

logging.logs.delete

# Delete all entries from a log in the _Default log bucket - logging.logs.delete
gcloud logging logs delete <log-name>

Écrire des logs - logging.logEntries.create

# Write a log entry to try to disrupt some system
gcloud logging write LOG_NAME "A deceptive log entry" --severity=ERROR

logging.buckets.update

# Set retention period to 1 day (_Required has a fixed one of 400days)

gcloud logging buckets update bucketlog --location=<location> --description="New description" --retention-days=1

logging.buckets.delete

# Delete log bucket
gcloud logging buckets delete BUCKET_NAME --location=<location>

logging.links.delete

# Delete link
gcloud logging links delete <link-id> --bucket <bucket> --location <location>

logging.views.delete

Suppression des vues de journalisation

La suppression des vues de journalisation peut être une étape importante pour un attaquant cherchant à masquer ses traces. En supprimant les vues de journalisation, l'attaquant peut empêcher les administrateurs de voir certaines activités malveillantes.

logging.sinks.delete

Suppression des sinks de journalisation

Les sinks de journalisation sont utilisés pour exporter les journaux vers d'autres systèmes pour une analyse plus approfondie. En supprimant les sinks de journalisation, un attaquant peut empêcher l'exportation des journaux, rendant plus difficile la détection des activités malveillantes.

logging.exclusions.create

Création d'exclusions de journalisation

Les exclusions de journalisation permettent de filtrer certains types de journaux pour qu'ils ne soient pas enregistrés. Un attaquant peut créer des exclusions de journalisation pour éviter que ses actions ne soient enregistrées.

logging.exclusions.delete

Suppression des exclusions de journalisation

En supprimant les exclusions de journalisation, un attaquant peut réactiver l'enregistrement des journaux précédemment exclus, ce qui peut être utilisé pour manipuler les données de journalisation et masquer ses traces.

logging.logs.delete

Suppression des journaux

La suppression des journaux est une méthode directe pour effacer les traces d'activités malveillantes. Un attaquant peut supprimer des journaux spécifiques pour cacher ses actions.

Conclusion

La manipulation des journaux de GCP est une technique puissante pour les attaquants cherchant à masquer leurs activités. En comprenant et en surveillant ces actions, les administrateurs peuvent mieux protéger leurs environnements contre les intrusions.

# Delete a logging view to remove access to anyone using it
gcloud logging views delete <view-id> --bucket=<bucket> --location=global

logging.views.update

# Update a logging view to hide data
gcloud logging views update <view-id> --log-filter="resource.type=gce_instance" --bucket=<bucket> --location=global --description="New description for the log view"

logging.logMetrics.update

# Update log based metrics - logging.logMetrics.update
gcloud logging metrics update <metric-name> --description="Changed metric description" --log-filter="severity>CRITICAL" --project=PROJECT_ID

logging.logMetrics.delete

Suppression des métriques de journalisation

La suppression des métriques de journalisation peut être une étape importante pour masquer les activités malveillantes. Les métriques de journalisation sont utilisées pour surveiller et alerter sur des événements spécifiques dans l'environnement GCP. En supprimant ces métriques, un attaquant peut réduire les chances de détection.

Commande gcloud

gcloud logging metrics delete [METRIC_NAME]

Remplacez [METRIC_NAME] par le nom de la métrique que vous souhaitez supprimer.

Exemple

gcloud logging metrics delete my-metric

logging.sinks.delete

Suppression des sinks de journalisation

Les sinks de journalisation dirigent les journaux vers des destinations spécifiques comme BigQuery, Cloud Storage ou Pub/Sub. En supprimant ces sinks, un attaquant peut empêcher les journaux d'être stockés ou analysés ailleurs, rendant plus difficile la détection des activités malveillantes.

Commande gcloud

gcloud logging sinks delete [SINK_NAME]

Remplacez [SINK_NAME] par le nom du sink que vous souhaitez supprimer.

Exemple

gcloud logging sinks delete my-sink

logging.logs.delete

Suppression des journaux

La suppression des journaux est une méthode directe pour effacer les traces d'activités. Cependant, cette action est souvent très suspecte et peut déclencher des alertes de sécurité.

Commande gcloud

gcloud logging logs delete [LOG_NAME]

Remplacez [LOG_NAME] par le nom du journal que vous souhaitez supprimer.

Exemple

gcloud logging logs delete my-log

Conclusion

La manipulation des journaux et des métriques de journalisation est une technique puissante pour les attaquants cherchant à masquer leurs activités. Cependant, ces actions peuvent elles-mêmes être détectées et doivent être utilisées avec prudence.

# Delete log based metrics - logging.logMetrics.delete
gcloud logging metrics delete <metric-name>

logging.sinks.delete

Cette permission permet de supprimer des sinks de logging. La suppression des sinks de logging peut être utile pour masquer les activités malveillantes en empêchant l'envoi des logs vers des destinations externes.

logging.sinks.update

Cette permission permet de mettre à jour des sinks de logging. En mettant à jour les sinks de logging, un attaquant peut rediriger les logs vers une destination contrôlée par lui, facilitant ainsi la dissimulation de ses actions.

logging.sinks.create

Cette permission permet de créer de nouveaux sinks de logging. Un attaquant peut créer un nouveau sink pour rediriger les logs vers une destination de son choix, ce qui peut l'aider à surveiller les activités du système sans être détecté.

logging.logEntries.list

Cette permission permet de lister les entrées de log. En accédant aux entrées de log, un attaquant peut obtenir des informations précieuses sur les activités du système, les configurations et les éventuelles vulnérabilités.

logging.logEntries.delete

Cette permission permet de supprimer des entrées de log. La suppression des entrées de log peut être utilisée pour effacer les traces d'activités malveillantes, rendant plus difficile la détection de l'attaque.

logging.logEntries.create

Cette permission permet de créer de nouvelles entrées de log. Un attaquant peut créer de fausses entrées de log pour induire en erreur les administrateurs système ou pour masquer ses propres actions.

# Delete sink - logging.sinks.delete
gcloud logging sinks delete <sink-name>

logging.sinks.update

# Disable sink - logging.sinks.update
gcloud logging sinks update <sink-name> --disabled

# Createa filter to exclude attackers logs - logging.sinks.update
gcloud logging sinks update SINK_NAME --add-exclusion="name=exclude-info-logs,filter=severity<INFO"

# Change where the sink is storing the data - logging.sinks.update
gcloud logging sinks update <sink-name> new-destination

# Change the service account to one withuot permissions to write in the destination - logging.sinks.update
gcloud logging sinks update SINK_NAME --custom-writer-identity=attacker-service-account-email --project=PROJECT_ID

# Remove explusions to try to overload with logs - logging.sinks.update
gcloud logging sinks update SINK_NAME --clear-exclusions

# If the sink exports to BigQuery, an attacker might enable or disable the use of partitioned tables, potentially leading to inefficient querying and higher costs. - logging.sinks.update
gcloud logging sinks update SINK_NAME --use-partitioned-tables
gcloud logging sinks update SINK_NAME --no-use-partitioned-tables
Soutenez HackTricks

Last updated