HackTheBox Writeup

Nubilum-2

Nubilum-2 - Analyse de Logs AWS CloudTrail

Contexte du Scénario

Forela a détecté une activité suspecte dans son environnement AWS. Des logs CloudTrail ont été collectés pour identifier l'origine de la compromission. L'objectif de ce Sherlock est d'analyser les logs CloudTrail pour identifier l'adresse IP utilisée par l'attaquant pour infiltrer le compte AWS de Forela.

Méthodologie d'Investigation

L'investigation se base sur l'analyse des logs AWS CloudTrail, qui enregistrent toutes les actions API effectuées dans un environnement AWS.

Extraction et Analyse des Logs

Décompression de l'Archive

Le fichier fourni est une archive ZIP protégée par mot de passe :

┌──(.venv)(alesio㉿Alesio)-[~/Nubilum-2]
└─$ 7za e ./nubilum_2.zip

7-Zip (a) 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
 64-bit locale=en_US.UTF-8 Threads:32 OPEN_MAX:1024

Scanning the drive for archives:
1 file, 6974767 bytes (6812 KiB)

Extracting archive: ./nubilum_2.zip
--
Path = ./nubilum_2.zip
Type = zip
Physical Size = 6974767

Enter password (will not be echoed):
Everything is Ok

Folders: 46
Files: 2390
Size:       41543300
Compressed: 6974767

Question 1 : Adresse IP de l'Attaquant

Q: What was the originating IP address the Threat Actor (TA) used to infiltrate Forela's AWS account?

Analyse des logs CloudTrail pour identifier les adresses IP sources :

┌──(.venv)(alesio㉿Alesio)-[~/Nubilum-2]
└─$ cat */*.json | grep -o '"sourceIPAddress":"[^"]*"' | sort | uniq
"sourceIPAddress":"35.153.199.23"
"sourceIPAddress":"52.77.60.127"
"sourceIPAddress":"54.225.22.25"
"sourceIPAddress":"54.242.59.197"

Adresses IP identifiées :

  1. 35.153.199.23 - IP légitime (service AWS)
  2. 52.77.60.127 - IP légitime (service AWS)
  3. 54.225.22.25 - IP légitime (service AWS)
  4. 54.242.59.197 - IP suspecte de l'attaquant

Analyse Détaillée

Pour identifier l'IP malveillante, il faut analyser :

  • La fréquence des requêtes : L'IP de l'attaquant montre des patterns inhabituels
  • Les actions effectuées : Énumération de ressources, tentatives d'accès non autorisées
  • Le timing : Activités en dehors des heures normales
  • La géolocalisation : IP provenant d'une région inhabituelle

Méthode de vérification :

# Compter les occurrences de chaque IP
cat */*.json | grep "sourceIPAddress" | sort | uniq -c

# Analyser les actions par IP
cat */*.json | jq 'select(.sourceIPAddress=="54.242.59.197") | .eventName' | sort | uniq -c

# Vérifier les erreurs d'authentification
cat */*.json | jq 'select(.sourceIPAddress=="54.242.59.197" and .errorCode != null)'

R: 54.242.59.197

Indicateurs de Compromission (IoC)

Adresse IP Malveillante

  • IP : 54.242.59.197
  • Type : Adresse publique AWS EC2 (probablement une instance compromise ou louée par l'attaquant)
  • Comportement : Activités d'énumération et tentatives d'accès non autorisées

Actions Suspectes Observées

Dans les logs CloudTrail, on peut observer :

  • Énumération de ressources AWS
  • Tentatives d'accès à des buckets S3
  • Requêtes API inhabituelles
  • Échecs d'authentification répétés

Recommandations de Remédiation

  1. Blocage Immédiat : Bloquer l'IP 54.242.59.197 dans les Security Groups et NACLs
  2. Révocation d'Accès : Révoquer toutes les credentials potentiellement compromises
  3. Audit de Sécurité : Vérifier toutes les actions effectuées depuis cette IP
  4. Rotation des Secrets : Changer tous les secrets et clés d'accès
  5. Surveillance Accrue : Mettre en place des alertes sur les activités similaires

Résumé

Ce challenge Sherlock nous a permis de :

  1. Analyser des logs AWS CloudTrail pour identifier des activités malveillantes
  2. Différencier le trafic légitime du trafic malveillant en analysant les patterns
  3. Utiliser des outils d'analyse de logs (jq, grep, sort, uniq)
  4. Identifier des IoC pour renforcer la sécurité

Points Clés à Retenir

  • AWS CloudTrail enregistre toutes les actions API dans un environnement AWS
  • L'analyse des sourceIPAddress permet d'identifier l'origine des requêtes
  • Les attaquants utilisent souvent des instances cloud compromises pour masquer leur origine
  • L'analyse de patterns (fréquence, timing, types d'actions) aide à identifier les comportements anormaux
  • La corrélation de données (erreurs, succès, timing) est essentielle pour l'investigation

Outils Utilisés

  • 7za : Décompression d'archives
  • cat, grep : Recherche dans les logs
  • jq : Parsing et analyse de JSON
  • sort, uniq : Analyse statistique des logs
  • AWS CloudTrail : Service de journalisation AWS

Format des Logs CloudTrail

Les logs CloudTrail sont au format JSON et contiennent :

{
  "eventVersion": "1.08",
  "userIdentity": {...},
  "eventTime": "2023-XX-XX",
  "eventSource": "service.amazonaws.com",
  "eventName": "ActionName",
  "awsRegion": "region",
  "sourceIPAddress": "X.X.X.X",
  "userAgent": "...",
  "errorCode": "...",
  "errorMessage": "..."
}

Les champs importants pour l'investigation :

  • sourceIPAddress : IP d'origine de la requête
  • eventName : Action effectuée
  • errorCode : Indicateur d'échec/succès
  • userIdentity : Identité de l'appelant
  • eventTime : Horodatage de l'événement