PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Reconstruction d’un fichier depuis un enregistrement PCAP

mardi 9 décembre 2014 à 10:00

I. Présentation

Lorsque l’on fait une analyse réseau et que l’on capture les paquets qui passent par une ou plusieurs interfaces, les informations que nous récupérons peuvent être de toute sorte. Lorsqu’il s’agit de protocole non chiffré comme le FTP ou l’HTTP, nous sommes alors capables de reconstruire des fichiers entiers depuis un enregistrement réseau. Dans cet article, nous verrons comment reconstruire des fichiers à partir d’enregistrement réseau au format PCAP.

Notons que dans ce tutoriel, nous utiliserons des fichiers au format pcap que nous lirons avec Wireshark.

II. Importation du fichier Pcap

L’importation d’un fichier PCAP sous Wireshark est assez simple. Il faut commencer par aller dans “File” puis sur “Open” :

tcpdump pcap fichier

Accès à l’ouverture d’un fichier sous Wireshark

On va ensuite aller chercher notre fichier au format PCAP :

tcpdump pcap fichier

Ouverture d’un fichier PCAP

Le contenu de l’enregistrement réseau va alors être affiché dans Wireshark.

Note : Si vous n’êtes pas dans la possibilité d’effectuer une capture réseau via Wireshark car vous ne disposez pas d’interface graphique, je vous recommande d’utiliser TCPdump, un outil en ligne de commande.

Dans le cadre du tutoriel, je m’assure bien sûr que dans ma capture réseau, un ou plusieurs fichiers aient été transférés via le protocole ciblé.

III. Reconstruction d’un fichier à partir d’un enregistrement HTTP

Commençons par une analyse réseau contenant du trafic HTTP. Pour mettre en place cet exemple, j’ai simplement effectué une capture réseau pendant que j’étais sur un site web quelconque. Voici comment procéder une fois que la capture réseau est faite. On va commencer par aller dans “File” puis dans “Export Objects”. On choisira alors “HTTP” si nous souhaitons extraire du contenu venant de paquets HTTP :

reconstruire fichier pcap wireshark

Accès à l’export des objets HTTP

Nous aurons alors une liste de tous les fichiers qui ont été transférés durant notre capture réseau, on peut trouver des scripts PHP, des scripts Javascript, des images, des fichiers HTML … :

reconstruire fichier  pcap wireshark

Objet HTTP capturé

Il nous suffit alors de sélectionner un ou plusieurs de ces éléments puis de cliquer sur “Save As…”. Selon le type de fichier dont il s’agit, il faudra lui donner la bonne extension, par exemple pour une image au format “JPG” :

reconstruire fichier pcap wireshar

Exportation d’un objet HTTP capturé

Je vais alors pouvoir voir l’image dans le répertoire sélectionné pour la sauvegarde de l’objet récupéré :

reconstruire-fichier-pcap-wireshark-04

Image reconstruite une capture lue sous Wireshark

Nous avons ici utilisé la prise en compte automatique de l’HTTP dans Wireshark pour la reconstruction de fichier à partir d’une capture réseau. Nous allons voir par la suite que d’autres fichiers transitant par d’autres protocoles non chiffrés peuvent être reconstruit.

IV. Reconstruction d’un fichier à partir d’un enregistrement FTP

Nous allons voir un second exemple de reconstruction de fichier à partir d’une capture de réseau, cette fois-ci via un échange par le protocole FTP qui, pour rappel, n’est pas chiffré. On va donc dans notre capture réseau faire un clic droit sur un paquet ayant pour protocole “FTP-DATA” puis cliquer sur “Follow TCP Stream” :

reconstruire fichier pcap wireshark

Accès au follow TCP Stream depuis un paquet

Nous allons alors voir l’ensemble des charges utiles des paquets FTP de cette session TCP. Plus clairement, le contenu de chaque paquet de l’échange TCP va être mis bout à bout, voilà ce que cela va donner :

reconstruire fichier pcap wireshark

Vue Follow TCP Stream sur Wireshark

Vu comme cela, on ne peut pas en tirer grand-chose. Néanmoins le fait que le paquet sur lequel nous avons fait le “Follow TCP Stream” soit en “FTP-DATA” au niveau du protocole indique bien qu’il s’agit d’un échange de fichier et que l’ensemble des charges utiles de cette session FTP représente le contenu d’un fichier échangé. Notre problème ici et que nous ne savons pas quel type de fichier et cela pose donc problème pour le nommer et le lire. On peut alors utiliser un petit utilitaire sous Linux qui se nomme “file” et qui permet de deviner le type d’un fichier. Pour un fichier au format inconnu que j’ai nommé “capturedfile”, voici comment utiliser la commande “file” sous Linux :

file capturedfile

Voici le résultat que nous pourrons avoir dans notre terminal :

reconstruire fichier pcap wireshark

Détection du type de fichier via la commande file

On voit alors que la commande file détecte que notre fichier est un fichier “JPEG”. Il nous suffit donc d’ouvrir ce fichier avec un lecteur ou éditeur d’image pour voir son contenu !

L’utilisation de cette seconde méthode ne se limite pas qu’au FTP, tous les protocoles faisant transiter des fichiers et étant non chiffrés peuvent être analysés de la sorte. Pensez donc au chiffrement des échanges !