Network-forensics:Cas-pratique-1
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 >:-).