Network-forensics:Cas-pratique-1

From aldeid
Jump to navigation Jump to search

Cas pratique 1 : Analyse d'une trace réseau

Introduction

Ce cas pratique correspond au Puzzle #1 proposé sur le site http://www.forensicscontest.com traduit ci-dessous :

L'entreprise Anarchy-R-Us, Inc. suspecte que l'un de ses employés, Ann Dercover, est un agent secret qui travaille pour
un de ses concurrents. Ann a accès au catalogue commercial de  l'entreprise, dont la  recette secrète.  Le personnel de
sécurité craint qu'Ann tente de fournir la recette secrète de l'entreprise.

Le  personnel de sécurité  a enregistré l'activité  d'Ann pendant  un certain temps,  mais n'a rien  trouvé  de suspect
jusqu'à  présent.  Lorsque soudain, un ordinateur portable est apparu sur le réseau sans fil. Le personnel pense que le
signal provient du  garage de l'entreprise, dans la mesure où personne de suspect n'a été remarqué dans l'immeuble. Des
traces de conversation IM (Instant Messaging) ont été enregistrées en provenance  de l'ordinateur d'Ann (192.168.1.158)
sur le réseau sans fil. Cet ordinateur portable a disparu peu après.

"Nous avons une capture de paquets de l'activité", a dit le personnel de sécurité ", mais nous ne comprenons pas ce qui
se passe. Pourriez-vous nous aider?  En  tant  qu'analyste  réseau,  votre  mission  consiste  à répondre aux questions
suivantes :

1. Quel est le nom d'utilisateur (IM) d'Ann ?
2. Quel est le premier commentaire dans la conversation IM capturée ?
3. Quel est le nom du fichier qu'Ann a transféré ?
4. Quel est le numéro magique du fichier que vous voulez extraire (quatre premiers octets)?
5. Quelle était la somme MD5 du fichier?
6. Quelle est la recette secrète?

Télécharger le fichier de capture (d187d77e18c84f6d72f5845edca833f5)

Analyse de la trace

Mise en évidence des hôtes (Rahosts)

L'outil rahosts nous permet de mettre en évidence les adresses IP intervenant dans le fichier de capture : Nous transformons d'abord le fichier de trace (format pcap) au format argus (ra) :

# argus -r evidence.pcap -w evidence.ra

Puis analysons le fichier obtenu par rahosts :

# rahosts -r evidence.ra
64.12.25.91: (1) 192.168.1.159
192.168.1.2: (2) 192.168.1.30, 192.168.1.157
192.168.1.10: (4) 192.168.1.30, 192.168.1.158 - 192.168.1.159, 192.168.1.255
192.168.1.30: (1) 192.168.1.10
192.168.1.157: (1) 192.168.1.255
192.168.1.158: (3) 64.12.24.50, 192.168.1.10, 239.255.255.250
192.168.1.159: (5) 10.1.1.20, 64.236.68.246, 192.168.1.158, 192.168.1.255, 205.188.13.12

Recherche Whois (Cymru)

Le serveur whois de Cymru nous indique que les adresses publiques impliquées dans la trace correspondent à des serveurs AOL

# whois -h whois.cymru.com 64.12.25.91
AS      | IP               | AS Name
1668    | 64.12.25.91      | AOL-ATDN - AOL Transit Data Network
# whois -h whois.cymru.com 205.188.13.12
AS      | IP               | AS Name
1668    | 205.188.13.12    | AOL-ATDN - AOL Transit Data Network

Il semble donc cohérent que les dialogues entre Ann et l'espion externe correspondent à du AIM (AOL Instant Messaging)

Mise en évidence d'un transfert (Tcpflow)

Découpons la trace avec tcpflow :

# tcpflow -r evidence.cap

Il apparaît alors un trafic important de 192.168.1.158 vers 192.168.1.159 :

# ls -lS
-rw-r--r-- 1 root root 26660 2009-10-12 11:03 205.188.013.012.00443-192.168.001.159.01271
-rw-r--r-- 1 root root 12264 2009-10-12 11:03 192.168.001.158.05190-192.168.001.159.01272
-rw-r--r-- 1 root root  1877 2009-10-12 11:03 064.012.025.091.00443-192.168.001.159.01221
-rw-r--r-- 1 root root  1674 2009-10-12 11:03 192.168.001.159.01273-064.236.068.246.00080
-rw-r--r-- 1 root root  1500 2009-10-12 11:03 064.012.024.050.00443-192.168.001.158.51128
-rw-r--r-- 1 root root  1255 2009-10-12 11:03 064.236.068.246.00080-192.168.001.159.01273
-rw-r--r-- 1 root root   899 2009-10-12 11:03 192.168.001.159.01221-064.012.025.091.00443
-rw-r--r-- 1 root root   525 2009-10-12 11:03 192.168.001.159.01271-205.188.013.012.00443
-rw-r--r-- 1 root root   523 2009-10-12 11:03 192.168.001.158.51128-064.012.024.050.00443
-rw-r--r-- 1 root root   512 2009-10-12 11:03 192.168.001.159.01272-192.168.001.158.05190
-rw-r--r-- 1 root root   160 2009-10-12 11:03 192.168.001.030.00022-192.168.001.002.55488
-rw-r--r-- 1 root root    48 2009-10-12 11:03 192.168.001.002.55488-192.168.001.030.00022

Découverte du fichier transféré (Xxd)

Le programme xxd (apt-get install vim-common) nous permet de décrypter le flux douteux :

# xxd 192.168.001.158.05190-192.168.001.159.01272 | more
0000000: 4f46 5432 0100 0101 0000 0000 0000 0000  OFT2............
0000010: 0000 0000 0001 0001 0001 0001 0000 2ee8  ................
0000020: 0000 2ee8 0000 0000 b164 0000 ffff 0000  .........d......
0000030: 0000 0000 0000 0000 ffff 0000 0000 0000  ................
0000040: ffff 0000 436f 6f6c 2046 696c 6558 6665  ....Cool FileXfe
0000050: 7200 0000 0000 0000 0000 0000 0000 0000  r...............
0000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c0: 7265 6369 7065 2e64 6f63 7800 0000 0000  recipe.docx.....

Nous y apprenons que :

  • Le protocole semble être OFT2
  • L'outil de transfert utilisé est Cool FileXfer
  • Le nom du fichier transféré est recipe.docx

Le site [Labs] confirme notre hypothèse : le protocole OFT (OSCAR File Transfer) est un protocole propriétaire AOL pour le transfert des fichiers via la messagerie AIM (AOL Instant Messaging).

Reconstitution du fichier transféré

L'extrait suivant issu de la [technique sur l'implémentation du protocole OFT2] nous indique que les 256 premiers bytes correspondent à l'en-tête et peuvent être ignorés pour la reconstitution du fichier.

"The OFT header contains at least 256 bytes worth of data, though most of it is not used in an OFT2 transfer"

Pour supprimer les 256 premiers bytes, nous utilisons la syntaxe -s +256. Il est ensuite nécessaire de reconstituer le fichier afin qu'il soit reconnu dans le bon format. Pour cela, nous utilisons la syntaxe -s -256 -r (-r pour opération inverse).

La commande finale de reconstitution est donc :

# xxd -s +256 192.168.001.158.05190-192.168.001.159.01272 | xxd -s -256 -r > recipe.docx

Le fichier final contient les informations suivantes :

+------------------------------------------------------------------------------+
| Recipe for Disaster:                                                         |
| --------------------                                                         |
| 1 serving                                                                    |
| Ingredients:                                                                 |
| 4 cups sugar                                                                 |
| 2 cups water                                                                 |
| In a medium saucepan, bring the water to a boil. Add sugar. Stir gently over |
| low heat until sugar is fully dissolved. Remove  the  saucepan from heat.    |
| Allow to cool completely. Pour into gas tank. Repeat as necessary.           |
+------------------------------------------------------------------------------+

Sa signature md5 peut être calculée comme suit :

# md5sum recipe.docx
8350582774e1d4dbe1d61d64c89e0ea1  recipe.docx

Extraction du "magic number"

Le numéro magique (magic number) est un identifiant permettant de déterminer la nature d'un fichier. Il est indiqué dans l'énoncé qu'il s'agit des 4 premiers bytes. La commande suivante permet donc de retrouver le numéro magique à partir du fichier :

# xxd -l 4 -ps recipe.docx
504b0304
  • Le paramètre -l permet de spécifier la longueur (en bytes) à extraire
  • Le paramètre -ps permet un affiche hexadécimal de la sortie

La signature est donc 50 4B 03 04.

Par ailleurs, le site GaryKessler.net nous fournit la table de correspondance des types de fichiers :

La signature trouvée est entre autre associée au type de fichier DOCX.

Identification du nom d'utilisateur AIM et du premier commentaire

Une analyse du flux 192.168.1.158->64.12.24.50 extrait par tcpflow :

# xxd 192.168.001.158.51128-064.012.024.050.00443
0000000: 2a05 0060 0000 2a02 0061 00b7 0004 0006  *..`..*..a......
0000010: 0000 0000 0045 3436 3238 3737 3800 0001  .....E4628778...
0000020: 0b53 6563 3535 3875 7365 7231 0002 008f  .Sec558user1....    <<<--- Nom d'utilisateur
0000030: 0501 0004 0101 0102 0101 0083 0000 0000  ................
0000040: 4865 7265 2773 2074 6865 2073 6563 7265  Here's the secre
0000050: 7420 7265 6369 7065 2e2e 2e20 4920 6a75  t recipe... I ju
0000060: 7374 2064 6f77 6e6c 6f61 6465 6420 6974  st downloaded it
0000070: 2066 726f 6d20 7468 6520 6669 6c65 2073   from the file s    <<<--- Commentaire
0000080: 6572 7665 722e 204a 7573 7420 636f 7079  erver. Just copy
0000090: 2074 6f20 6120 7468 756d 6220 6472 6976   to a thumb driv
00000a0: 6520 616e 6420 796f 7527 7265 2067 6f6f  e and you're goo
00000b0: 6420 746f 2067 6f20 2667 743b 3a2d 2900  d to go >:-).

Comments