pfSuspense...

Bilal-Rayane M., Nolan D., Louca G., Rayan C., Gabin R., Robin V.

← pfSuspense... · Mais que s’est il passé ? / 2e étape / Entrez, la porte est ouverte ! / Ouvre ce mail… si tu l’oses !

2e étape

En découvrant de quelle machine provenait la fuite, **l'IAA** vous fournit un dump de celle-ci, afin d'identifier comment elle a été compromise.

Félicitations ! Vous avez trouvé grâce à l'exercice précédent que la fuite provenait directement du routeur **pfSense** de l'IAA.

En découvrant cela, l'entreprise vous fournit un dump de la machine.

Votre mission est maintenant d'identifier comment elle s'est fait compromettre.

Cela ne vous paraît pas un mince affaire, pfSense n'étant pas basé sur un système d'exploitation classique...

Cote 28 pts

Indices

Un certain antoine a fait un blog sur la compatibilité volatility - freebsd.
Le contenu du fichier exfiltré pourrait vous aider...

Faire son rapport

Nous attendons seulement deux dates : date d'installation et de mise à jour

Résolution

1 — Ouverture et compréhension du fichier.

On constate que nous avons deux fichiers:

  • Un fichier de dump mémoire.
  • Un fichier de dump de disque.

1.1 — Traitement de l'image mémoire.

Lors de l'ouverture avec volatility, on constate qu'il n'est pas possible d'analyser le fichier avec volatility 2 ni 3.

Avec un peu de recherche sur internet, il est possible de trouver le blog d'Antoine Brodin qui explique comment analyser un dump mémoire de FreeBSD avec volatility 3.

Plus bas dans son blog, il référence ces deux dépôts github, l'un avec son plugin volatility, et l'autre avec sa version de dwarf2json permettant d'exporter les symboles du noyau FreeBSD 14.

On peut donc suivre les étapes suivantes :

Cloner le dépôt volatility 3 d'Antoine Brodin :

git clone https://github.com/ant1/volatility3 -b freebsd-support

En lisant la documentation de volatility, le joueur devrait savoir qu'il doit placer le fichier ISF dans le bon répertoire (volatility3/symbols/).

1.2 — Traitement de l'image disque.

On constate que le dump de disque est un fichier .qcow2.

Il suffit donc de monter le système de fichiers avec qemu:

sudo qemu-nbd --connect=/dev/nbd0 vm2008_stripped.qcow2

En essayant de monter le système de fichiers, on constate que le système de fichier n'est pas standard et utilise zfs.
Il suffit d'activer le module du noyau et de l'importer correctement.

sudo apt install zfsutils-linux
sudo modprobe zfs
sudo zpool import
sudo zpool import -f -o readonly=on -o altroot=/mnt/vm pfSense

Notre système de fichier est monté sur /mnt/vm.

2 - Récupérer le nom de l'archive

Comme nous avons récupéré l'archive grâce au flag précédent, il est possible de calculer le checksum et donc de chercher le fichier avec celui-ci avec un find.

Condensat archive

3 - Récupérer le nom du processus

Grâce au volatility d'Antoine Brodin, il est possible de voir quel processus utilise l'archive.

Analyse de l'utilisation de l'archive

4 - Date à laquelle le paquet a été installé et mis à jour

Il faut pour cela connaître où est-ce que pfsense logs les installations / mises à jour de paquets, ou bien de faire un grep -r sur tout le disque.

Le dossier en question est /var/log/system.log.

Analyse de l'installation du paquet

5 - En déduire le type d'attaque

On en déduit que cela correspond à une attaque par chaîne d'approvisionnement, puisque le paquet était installé le 2 octobre et que l'exfiltration a été relevée après la mise à jour du paquet, soit le 10 octobre.