Solution de lrstx pour Disque nuagique 2/2

forensics disque linux

15 juin 2024

On reprend l’analyse laissée à la fin de la première étape en essayant de trouver plus d’information sur la partition principale. La commande fdisk nous avait donné un type crypto_luks, donc une partition chiffrée. Regardons les caractéristiques de plus près :

# losetup -o $((512*1001472)) -f  ewf/ewf1
# cryptsetup luksDump /dev/loop8 
LUKS header information
Version:        2
Epoch:          3
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           e61a1da4-b95d-4df5-ab40-bbffc505b3f2
Label:          (no label)
Subsystem:      (no subsystem)
Flags:          (no flags)

Data segments:
  0: crypt
    offset: 16777216 [bytes]
    length: (whole device)
    cipher: aes-xts-plain64
    sector: 512 [bytes]

Keyslots:
  0: luks2
    Key:        512 bits
    Priority:   normal
    Cipher:     aes-xts-plain64
    Cipher key: 512 bits
    PBKDF:      argon2i
    Time cost:  4
    Memory:     559034
    Threads:    2
    Salt:       5f 57 43 28 bd 7a 10 aa e6 a5 18 27 e7 0e 85 d8 
                8d df 02 1b 6b 54 43 1b aa ce 26 2d b6 0c 08 51 
    AF stripes: 4000
    AF hash:    sha256
    Area offset:32768 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
Tokens:
Digests:
  0: pbkdf2
    Hash:       sha256
    Iterations: 138115
    Salt:       3c 09 38 f6 1d a0 9f d7 76 f1 c7 2e cf a1 f0 43 
                0e 7d 6b 8e b5 8a 83 4f 03 e2 41 74 5e 7a 78 df 
    Digest:     3e 4e c0 1d fe bc 72 c4 14 de b6 11 79 8d 15 14 
                45 04 81 60 bd 88 be f4 37 8f 93 bd 91 54 e1 cf 

Les points importants sont LUKS v2, et chiffrement aes-xts-plain64 et conduisent à penser qu’on ne peut pas attaquer de front (par exemple en bruteforçant la passphrase). Je décide de regarder la partition de boot. Pas d’information précise en regardant les chaînes, je décide donc d’essayer de créer une VM associée à ce disque et de tenter de la démarrer.

1

On voit qu’au boot, la VM demande le mot de passe pour déchiffrer le disque. On voit également la recherche d’une adresse IP par DHCP. Ce qui a du sens, puisque l’on est en présence d’un disque d’une machine hébergée dans le cloud. En faisant un scan de port sur cette VM, on peut même identifier un serveur SSH qui est activé. C’est un exemple classique qui permet notamment de déverrouiller un disque chiffré à distance, avec le serveur dropBear.

Dans l’immédiat, profitons simplement de notre accès physique pour aller un peu plus loin. En effet, il existe un bug connu qui va nous aider : un grand nombre de saisies de mots de passe erronés va finalement nous donner un shell busybox sur le disque de boot. Voici :

2

À partir de là, on peut aller se balader dans le système de fichier pour aller à la pêche aux informations. On note notamment qu’effectivement, le serveur dropBear est lancé pour permettre l’accès réseau. Et en farfouillant dans tous les fichiers disponibles sur cette partition, on trouve le flag dans /root-LfekH8/.ssh/.authorized_keys :

3

Le flag est FCSC{0fb01eb22d4f812dcbdfcb}.