Au mois de juin, le SANS a proposé sur son site un
challenge d'investigation numérique sur une capture de traffic réseau. Ce challenge n'est pas le premier que le SANS organise, mais c'était d'après eux l'un des plus compliqué.
Le but de ce challenge était donc de répondre a un peu plus de 10 questions en analysant le fichier evidence06.pcap. Dans cette capture, seulement 2 machines intéragissent entre elles, l'une est victime (10.10.10.70) d'une attaque similaire à "
l'opération Aurora" et l'autre (10.10.10.10) est la machine contrôlée par l'attaquant.
Si vous souhaitez faire ce challenge, ne lisez pas la suite avant d'avoir cherché, car je vais vous donner les réponses et indiquer les erreurs que j'ai commis.
1) What was the full URI of Vick Timmes' original web request? (Please include the port in your URI.)
Answer : http://10.10.10.10:8080/index.php
2) In response, the malicious web server sent back obfuscated JavaScript. Near the beginning of this code, the attacker created an array with 1300 elements labeled "COMMENT", then filled their data element with a string. What was the value of this string?
Answer : vEI
3) Vick's computer made a second HTTP request for an object.
a) What was the filename of the object that was requested?
Answer : index.phpmfKSxSANkeTeNrah.gif
b) What is the MD5sum of the object that was returned?
Answer : df3e567d6f16d040326c7a0ea29a4f41
4) When was the TCP session on port 4444 opened? (Provide the number of seconds since the beginning of the packet capture, rounded to tenths of a second. ie, 49.5 seconds)
Answer : 1.3 seconds
5) When was the TCP session on port 4444 closed? (Provide the number of seconds since the beginning of the packet capture, rounded to tenths of a second. ie, 49.5 seconds)
Answer : 87.6 seconds
6) In packet 17, the malicious server sent a file to the client.
a) What type of file was it? Choose one:
- Windows executable
- GIF image
- PHP script
- Zip file
- Encrypted data
Answer : Windows executable
b) What was the MD5sum of the file?
Answer : b062cb8344cd3e296d8868fbef289c7c
7) Vick's computer repeatedly tried to connect back to the malicious server on port 4445, even after the original connection on port 4444 was closed. With respect to these repeated failed connection attempts:
a) How often does the TCP initial sequence number (ISN) change? (Choose one.)
- Every packet
- Every third packet
- Every 10-15 seconds
- Every 30-35 seconds
- Every 60 seconds
Answer : Every third packet
b) How often does the IP ID change? (Choose one.)
- Every packet
- Every third packet
- Every 10-15 seconds
- Every 30-35 seconds
- Every 60 seconds
Answer : Every packet
c) How often does the source port change? (Choose one.)
- Every packet
- Every third packet
- Every 10-15 seconds
- Every 30-35 seconds
- Every 60 seconds
Answer : Every 10-15 seconds
8) Eventually, the malicious server responded and opened a new connection. When was the TCP connection on port 4445 first successfully completed? (Provide the number of seconds since the beginning of the packet capture, rounded to tenths of a second. ie, 49.5 seconds)
9) Subsequently, the malicious server sent an executable file to the client on port 4445. What was the MD5 sum of this executable file?
Answer : b062cb8344cd3e296d8868fbef289c7c
10) When was the TCP connection on port 4445 closed? (Provide the number of seconds since the beginning of the packet capture, rounded to tenths of a second. ie, 49.5 seconds)
Answer : 198.4
J'ai donc commis 2 erreurs : l'une à la question 2 et l'autre à la question 7a.
Pour la seconde question, j'avais indiqué une chaine de caractères commençant par "\u0c0f\u0c0d..." car au début, le tableau est bien initialisé avec "vEI" mais plus loin dans le code javascript cette chaine de caractère est remplacée par celle que je croyais être la bonne réponse.
Concernant la question 7a), Wireshark m'indiquait "Sequence number : 0 (relative sequence number) ce qui m'a induis en erreur. Pour trouver le numéro de séquence correct, il fallait que je regarde le contenu du paquet au format héxadécimal puis que je convertis en décimal, la valeur correspondant au numéro de séquence recherché. Une autre solution plus intuitive aurait été de désactiver l'option "Relative sequence numbers and window scaling" en faisant un clic droit dans la partie affichant une vue détaillée du paquet puis en allant dans le sous-menu "Protocol Preferences".
J'ai trouvé ce petit challenge très intéressant et j'espère que d'autres suivront, afin que cette fois-ci je sois dans les finalistes :)