Forensic – PhishingBoat : analyse de fichiers Mbox et PDF

I .Présentation

Dans cette suite d'articles, je vous propose de suivre les exercices du CTF du FIC 2021 proposés par l'école EPITA afin de découvrir certains outils et méthodes de forensic (investigation numérique). Ces éléments peuvent être utilisés dans un grand nombre de contextes pour effectuer des recherches sur des évènements du quotidien, mais aussi afin de sensibiliser sur les bonnes et mauvaises pratiques, tant en matière de sécurité que de réponse à incident.

Je profile de ce premier article pour remercier les personnes qui ont créé ces challenges qui permettent de travailler sur des contextes d'attaques réalistes, ce qui est un vrai plus lorsque l'on aborde ce domaine.

Cette enquête est découpée en 5 articles, voici la liste des articles :

II. Contexte : Panic on board - PhishingBoat

Le contexte de l'incident sur lequel nous intervenons est le suivant : Un bateau de croisière de la compagnie maritime ArMor a subi une panne et se retrouve bloqué en pleine mer.

Le 30 août 2020, lors d’une traversée reliant Marseille à Pointe-à-Pitre, le ‘Sea Castle’, navire pouvant embarquer jusqu’à 8030 passagers, a subi une avarie de propulsion et s’est retrouvé bloqué à plus de 150 kilomètres de sa destination. Après avoir effectué des vérifications mécaniques et matérielles, l’équipage pense que la panne provient de l’informatique. Dans le doute, des investigations préalables sont menées chez RH Pro, un contractant offrant une solution de gestion RH.

La première simulation du challenge est la suivante : PhishingBoat -  Le poste de Christian Deloin, consultant junior fraîchement arrivé chez RH Pro, est peut-être compromis. Passez au peigne fin la boîte de réception de Monsieur Deloin afin de déterminer si elle constitue le point d’entrée d’une attaque.

Le challenge nous propose de mener une investigation afin de répondre aux questions suivantes :

  • date de réception du mail ;
  • adresse source de l'email malveillant ;
  • la CVE qui semble être utilisée.

Pour investiguer, deux fichiers nous sont fournis :

  • boite_de_reception.mbox
    • b2sum : 5fb763e2194378582f31ed2ea2274943c121511fa813b787cab548a5a374e0b3a2a779602e32e70334389f9b1b6e3e05962539fd11344cdf6817196fd4393314
  • documents.zip
    • b2sum : bff804323f4803665ad9f020a2a57a1cc26781f1627cc6eec57feb764efe6214cb639d43e0ef11c3f768619fb0139a6264a621b0ab16a36a40cfb64083fe86ce

Un hash est une empreinte numérique unique d'un fichier. Les hashs sont systématiquement utilisés en forensic afin de s'assurer qu'un fichier n'a pas été altéré entre le moment de son acquisition et le moment de son analyse. Cette vérification permet de s'assurer de l'intégrité des objets contenant les preuves récoltées. Ce qui évite que les conclusions de l'investigation ne soient remises en cause.

On commence donc par vérifier l'intégrité des fichiers récupérés à l'aide de la commande b2sum qui utilise l'algorithme de hachage BLAKE2  :

$ b2sum boite_de_reception.mbox 
5fb763e2194378582f31ed2ea2274943c121511fa813b787cab548a5a374e0b3a2a779602e32e70334389f9b1b6e3e05962539fd11344cdf6817196fd4393314 boite_de_reception.mbox

$ b2sum documents.zip
bff804323f4803665ad9f020a2a57a1cc26781f1627cc6eec57feb764efe6214cb639d43e0ef11c3f768619fb0139a6264a621b0ab16a36a40cfb64083fe86ce documents.zip

Maintenant que nous sommes sûrs de travailler sur des fichiers non altérés, nous pouvons continuer notre investigation.

Une seconde phase importante est la récolte et la compréhension des éléments de contexte, qui sont utiles pour orienter nos recherches et notre méthodologie. Ici, on nous indique qu'un navire de croisière a subi une attaque informatique, visiblement par l'intermédiaire d'une solution de gestion RH et de la boite mail d'un certain Mr Deloin. Les fichiers PDF fournis dans l'archive documents.zip nous permettent d'ailleurs de comprendre l'organisation de l'entreprise ainsi que d'obtenir la liste des adresses mail des utilisateurs.

Vous trouverez le challenge en question et les fichiers utilisés dans cet article ici : Panic On Board - PhishingBoat

III. Analyse de la boite mail

Dans un premier temps, nous allons nous intéresser à la boite mail fournie. Le format du fichier (.mbox) n'est qu'un simple fichier texte.

La boite mail contenant plusieurs dizaines de mails avec chacun leur en-tête, contenu et pièces jointes, cela rend la recherche peu agréable. D'après cette source, il est possible d'utiliser Thunderbird pour interpréter ce fichier .mbox, puis de parcourir les mails de l'utilisateur de façon un peu plus visuelle.

Il faut pour cela créer un nouveau profil dans Thunderbird, puis déposer dans le répertoire /home/<user>/.thunderbird/<profileID>.default-release/Mail/Local Folders notre fichier .mbox, et enfin redémarrer Thunderbird. Suivre cette procédure pour plus détails. Au redémarrage, un fichier local contiendra nos mails :

Affichage des mails du fichier .mbox dans ThunderBird
Affichage des mails du fichier .mbox dans Thunderbird

La difficulté principale ici est de différencier les mails légitimes, des mails suspects. Nous pouvons, dans un premier temps, regarder les adresses émettrices des mails. À première vue, rien ne saute aux yeux, pas de [email protected] ;). Pour trouver des idées d'attaques et d'éléments sur lesquels investiguer, nous pouvons nous pencher sur la matrice ATT&CK du MITRE, qui contient une section sur les attaques par phishing (technique T1566.01) :

Extrait de la technique T1566.01 du MITRE ATT&CK
Extrait de la technique T1566.01 du MITRE ATT&CK


La matrice ATT&CK du MITRE est une base de connaissance reconnue et utilisée pour référencer les techniques d'attaques, décrire ces techniques ainsi que les moyens de détection et de protections associés. Il s'agit d'une source d'information très intéressante pour un grand nombre de métiers (informatique/cybersécurité), que l'on soit du côté "attaquant" ou du côté "défense". La matrice est maintenue à jour en fonction des attaques et scénarios réels observés et contient notamment des références, pour chaque technique présentée, de cas réels d'utilisation, par exemple :

Exemples de cas réels d'attaque par des APT utilisant des techniques de phishing
Exemples de cas réels d'attaque par des APT utilisant des techniques de phishing

Nous pouvons dans un premier temps effectuer une recherche sur les e-mails contenant une pièce jointe, principal vecteur d'intrusion :

Visualisation des mails contenants une pièce jointe
Visualisation des mails contenant une pièce jointe

L'une des recommandations présentées dans le MITRE ATT&CK concerne le fait de former les utilisateurs à reconnaitre des mails de phishing :

Section "Mitigations" contre les techniques d'attaque par Phishing proposées par le MITRE
Section "Mitigations" contre les techniques d'attaque par Phishing proposée par le MITRE

Je m'oriente donc sur une lecture plus fine des adresses émettrices. On peut notamment partir à la recherche des noms de domaine de type homoglyphe (description dans cet article: Protéger son domaine contre le Phishing : techniques basées sur l’OSINT) c'est-à-dire les noms de domaine qui remplacent une lettre par une autre afin de tromper la vigilance de l'utilisateur (www.it-comnect.fr au lieu de www.it-connect.fr).

Pour cela, je décide de récupérer tous les noms de domaine des adresses émettrices et de comparer leurs hashs, ce qui sera bien plus fiable qu'une lecture à l'œil nu par un cerveau pouvant être berné :), j'utilise pour cela ce petit script fait pour l'occasion :

#!/bin/bash

for domain in `cat boite_de_reception.mbox |grep "From:" | cut -d "@" -f 2 | sort -u`; do
echo "- $domain"
domain_hash=$(echo $domain |md5sum |cut -d " " -f 1)
echo -e "\t$domain_hash"
done

Lors de son exécution, j'obtiens la sortie suivante :

$ ./domain_hash.sh 
- armor.com
4ea5e9ee234d4420dadc3c3f28eca790
- arnor.com
565f995d816506104313e12fbccea1fe
- delivrou.fr
fb0f6649ac0210437cd01594892328d3
- gmail.com
d3f00fb2602559aa8dbe7d7877a9532b
- labriseventee.fr
e69367e71948378d23bbd44bc329aca1
- rhpro.fr
6121b72d7433512bff4df25c82ffda5c
- xtramuscle.fr
815e32e51b2a182e8db879e3093b8a01

Nous détectons ici un nom de domaine qui diffère des autres, bien que visuellement similaire, je ne l'avais en effet pas vu lors de la vérification sous Thunderbird : arnor.com. Il semble donc que l'émetteur ait ici souhaité tromper sa cible avec un nom de domaine homoglyphe, ce qui semble suspect dans notre contexte. Nous avons mis la main sur un vecteur d'intrusion probable.

$ grep "arnor.com" -C 4 boite_de_reception.mbox 
X-Mozilla-Status: 0009
X-Mozilla-Status2: 00000000
Content-Type: multipart/mixed; boundary="===============8406457186411689544=="
MIME-Version: 1.0
From: [email protected]
To: [email protected]
Subject: Support VPN
cc:
Date: Thu, 30 Jul 2020 18:32:00 -0000

Nous pouvons répondre aux deux premières questions :

  • Date de réception du mail : 30/07/2020
  • Adresse source de l'email malveillant : [email protected]

IV. Analyse d'une pièce jointe malveillante

Nous avons identifié un vecteur d'intrusion, il nous faut maintenant déterminer sa charge utile. Nous allons à présent nous intéresser à la pièce jointe de ce mail, il s'agit d'un fichier PDF semblant être une documentation relative à un VPN : 

Pièce jointe du mail suspect identifié
Pièce jointe du mail suspect identifié

Les fichiers PDF ont un format structuré simple (venant du PostScript) mais peuvent intégrer de nombreux autres types de fichiers, langages et fonctionnalités (JavaScript, fichiers exécutables, actions à l'ouverture du fichier, chiffrement, etc.), le tout pouvant rendre leur analyse complexe.

Nous allons utiliser différents outils et commandes afin de tenter d'évaluer la dangerosité de ce fichier PDF, voire d'y trouver du contenu malveillant. À commencer par l'outil pdfid.py, qui va nous donner un aperçu des objets contenus dans ce fichier PDF.  

Analayse des objets contenus dans un fichier PDF par pdfid.py
Analyse des objets contenus dans un fichier PDF par pdfid.py

Nous voyons ici plusieurs éléments qui peuvent nous alerter. Le fichier PDF semble contenir du JavaScript (/JavaScript, /JS) ainsi que des instructions permettant le lancement d'actions à l'ouverture du fichier (/OpenAction, /Launch et /AA).  L'outil pdf-parser.py nous permettra de lire et décomposer le contenu du fichier PDF.

$ pdf-parser.py doc_vpn.pdf 

En parcourant le contenu du fichier PDF, on remarque l'objet portant l'identifiant 279 : 

Celui-ci tente de lancer un cmd.exe. Dans le cadre du challenge, plusieurs CVE sont proposées et nous devons indiquer laquelle est exploitée par ce fichier PDF. Dans le cas présent, seule la CVE-2010-1240 concerne les fichiers PDF. La question est donc vite répondue 🙂

Cette vulnérabilité concerne Acrobat 9.x avant la version 9.3.3, et 8.x avant la version 8.2.3, elle est due à un manque de restriction concernant un champ texte de la boite de dialogue d'avertissement : CVE-2010-1240

J'espère que ce premier article vous aura mis l'eau à la bouche, je compte bien continuer cette série afin d'explorer avec vous d'autres attaques, méthodologies et outils permettant d'investiguer des cas d'attaques que tout le monde peut croiser. Le prochain article portera sur l'analyse d'une trace réseau afin de déterminer l'activité d'un attaquant.

Je vous invite en attendant à vous rendre sur le site du MITRE afin de découvrir la matrice ATT&CK : https://attack.mitre.org/

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 526.Voir tous les posts

2 thoughts on “Forensic – PhishingBoat : analyse de fichiers Mbox et PDF

  • super article, encore ! Mais tu as supprimé ton blog ?

    Répondre
  • Merci. 🙂 Oui j’ai décidé de migrer tous mes articles de mon ancien blog dédié à la sécurité ici, je n’avais plus assez de temps pour y maintenir une activité régulière :). Etant le co-fondateur d’IT-Connect à la base, je reviens un peu aux sources et y apporte quelques articles sur la cybersécurité de temps en temps.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.