Forensics: Banking Troubles

MELLAH MOULOUD Sorbonne Université - Sciences et Ingénierie
MELLAH MOULOUD Sorbonne Université - Sciences et IngénierieSTUDENT à MELLAH MOULOUD Sorbonne Université - Sciences et Ingénierie

Company X has contacted you to perform forensics work on a recent incident that occurred. One of their employees had received an email from a fellow co-worker that pointed to a PDF file. Upon opening, the employee did not seem to notice anything, however recently they have had unusual activity in their bank account. Company X was able to obtain a memory image of the employee’s virtual machine upon suspected infection. Company X wishes you to analyze the virtual memory and report on any suspected activities found. Questions can be found below to help in the formal report for the investigation.

République Algérienne Démocratique et Populaire
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université des Sciences et de la Technologie Houari Boumediene
Faculté d’Electronique et d’Informatique
Département Informatique
Rapport de projet : Sécurité Applicative
Filière: Informatique
Spécialité: M2 SSI
………………………………..
Énoncé rapide
Forensics.
À remettre avant le : 16/01/2022
Projet Proposé par:
M. A.Berbar
Réalisé par :
 Rédacteur 1 :
Nom : SAOUDI
Prénom : Yanis
Matricule : 161633040787
 Rédacteur 2 :
Nom : MELLAH
Prénom : Mouloud
Matricule : 171731019331
Date de début : 07/01/2022 Date de fin : 13/01/2022
Durée du travail : 40 heures
Table des Matières
Table des Matières 1
Synthèse Général 2
4- Réponses détaillés 5
Question 1 : 5
Réponse : 5
Question 2 : 7
Réponse : 7
Question 3 : 12
Réponse : 12
Question 4 : 19
Réponse : 19
Question 5 : 23
Réponse : 23
Question 6 : 27
Réponse : 27
Question 7 : 33
Réponse : 33
Question 8 : 37
Réponse : 37
Question 9 : 43
Réponse : 43
Question 10 : 44
Réponse : 44
1
Synthèse Général
Réponse à la question 1
● Répertorier les processus: rekall -f Memvictime.vmem psscan
● Voir l'arborescence exacte:
volatility -f Memvictime.vmem –profile=WinXPSP2x86 –output=dot –output-file
= infected_tree.dot
● Le processus le plus probablement responsable de l’exploit est : AcroRd32.exe (PID
1752)
Réponse à la question 2
● Répertorier les sockets : ./vol sockscan -f Memvictime.vmem
● Processus suspects dont les connexions sont ouvertes:
- AcroRD32.exe (PID 1752) 2 sockets qui acceptent toute connexion de
l’extérieur.
- svchost.exe (PID 880) ouvre 3 sockets qui acceptent toute connexion de
l’extérieur.
- firefox.exe (PID 888) ouvre 5 sockets et accepte toutes les connexions de
l'extérieur “0.0.0.0” via le port TCP 6.
Réponse à la question 3
➔ Par le processus AcroRd32.exe
http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0
http://search-network-plus.com/load.php?a=a&st=Internet%20Explorer%206.0&e=2
http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=1
http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=2
http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=3
➔ Par le processus firefox.exe
http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0
http://search-network-plus.com/favicon.ico
➔ Par le processus svchost.exe
http://193.104.22.71/~produkt/69825439870/73846525#N
http://193.104.22.71/~produkt/9j856f_4m9y8urb.php
http://193.104.22.71/~produkt/9j856f_4m9y8urb.php&N
2
Réponse à la question 4
les services contenant des URLs de banques sont :
wuauclt.exe (pid 232)
msiexec.exe (pid 244)
wuauclt.exe (pid 440)
winlogon.exe (pid 644)
services.exe (pid 688)
lsass.exe (pid 770)
vmacthlp.exe (pid 852)
svchost.exe (pid 880)
firefox.exe (pid 888)
svchost.exe (pid 948)
svchost.exe (pid 1040)
svchost.exe (pid 1100)
VMwareTray.exe (pid 1108)
VMwareUser.exe (pid 1116)
wscntfy.exe (pid 1132)
svchost.exe (pid 1244)
svchost.exe (pid 1384)
spoolsv.exe (pid 1460)
vmtoolsd.exe (pid 1628)
AcroRd32.exe (pid 1752)
explorer.exe (pid 1756)
VMUpgradeHelper (pid 1836)
alg.exe (pid 2024)
L’URL de la banque est :
Ahttps://onlineeast#.bankofamerica.com/cgi-bin/ias/*/GoToWelcome
Réponse à la question 5
Le nombre de fichiers extrait est de 427 dont :
jpg = 5
gif = 103
bmp = 3
htm = 3
ole = 2
zip = 6
exe = 103
png = 195
pdf = 7
L’un des 7 PDFs extrait (00601560.pdf) est apparu vulnérable car il contient du code JavaScript
malicieux. Celui-ci contient aussi 5 objets, 1 streams, 1 AA
Réponse à la question 6
l’extrait s’est fait en utilisant l’outil peepdf avec la commande suivante :
python2 peepdf.py -g /home/yanis/Desktop/output/pdf/00601560.pdf -i
une fois dans l’interface peepdf, on exécute ceci :
extract js > js_malveillant.txt
La commande précédente permet d’extraire le code JavaScript caché dans le PDF 00601560
3
Réponse à la question 7
les fichiers suspects chargés par les processus de l’ordinateur victime sont:
● sdra64.exe winlogon.exe Pid 644
● user.ds fils de winlogon.exe Pid 644
● local.ds fils de winlogon.exe Pid 644
● user.ds.lll fils de svchost.exe Pid 880
● _AVIRA_2109 fils de winlogon.exe Pid 644
Réponse à la question 8
La plupart des antivirus (53 sur 71) repèrent la suspicion comme étant un cheval de Troie
Zeus/Zbot.
Réponse à la question 9
- La clé est : SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon
- Comme valeur, zeus/bot ajoute le chemin d'accès à sdra64.exe à la valeur existante de
C:WINDOWsystem32userinit.exe
Réponse à la question 10
1. L'utilisateur s’est connecté avec un compte administrateur lui permettant d’avoir divers
privilèges.
2. Un Shellcode JavaScript a été injecté dans un fichier PDF et remis par voie Mail,
celui-ci a été ouvert avec Acrobat Reader.
3. Le code Shell réussit à exploiter une vulnérabilité sur Acrobat Reader qui permet de
télécharger un Trojan (chevaux de Troie) et l’exécuter.
4. Celui-ci récupère le bot en le téléchargeant et l’exécute à son tour.
5. Une fois le bot exécuté, il se décompresse et s'offusque dans winlogon.exe, celui-ci est
connu pour être utilisé par des keyloggers pour le vol des intéractions utilisateur-clavier.
6. Le bot met en place un mécanisme de persistance grâce à la modification des clés de
registres et génère un processus “svchost.exe” via lequel il peut communiquer avec ses
serveurs de commandes et de contrôles.
7. Le bot émigre librement entre les processus en cours d’exécution et essaye de récupérer
le maximum d’info possible (d'où sa présence dans plus de 20 processus en cours
d’exécution)
4
4- Réponses détaillés
Question 1 :
Répertorier les processus en cours d’exécution sur la machine de la victime. Quel processus
était le plus probablement responsable de l'exploit initial?
Réponse :
a- os utilisé: Parrot 4.10
b- outil: Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge)
c- commande: rekall -f Memvictime.vmem psscan
5
d- description :
En utilisant le plugin psscan de rekall, on peut lister les processus en cours d'exécution, et d’après
la description de l’incident qui énonce que l’utilisateur à reçu un mail contenant une pièce jointe
PDF, on suspecte fortement le processus AcroRd32.exe (PID 1752) qui a été lancé par le
processus firefox.exe (PID 888). Celui-ci est élu candidat pouvant être le vecteur d’attaque.
On peut voir l'arborescence exacte des processus en exécutant la commande suivante :
“ volatility -f Memvictime.vmem –profile=WinXPSP2x86 –output=dot –output-file =
infected_tree.dot “
Pour ouvrir le fichier généré on exécute la commande suivante :
xdot infected_tree.dot
Le résultat sera comme ceci:
6
Question 2 :
Répertorier les sockets ouverts sur la machine de la victime pendant l’infection.
Réponse :
Avant de lister les sockets ouverts sur la machine, on essaye de voir les connexions effectuées
depuis celle-ci d’abord.
a- os utilisé: parrot 5.0 (LTS)
b- outils:
- Rekall Memory Forensic framework 1.5.3.post1.dev67 (Furka)
- Volatility Foundation Volatility Framework 2.6
- grep (GNU grep) version 3.4
c- commande: rekall connscan -f moulou/Memvictime.vmem
On peut observer des connexions qui ont été ouvertes vers l’extérieur comme ceci :
- firefox.exe (PID 888) vers l’adresse suivante: 212.150.164.203 port 80 ce qui parait
peu normal
- AcroRD32.exe (PID 1752) vers des l’adresse suivante: 212.150.164.203 port 80 ce qui
est suspect.
- svchost.exe (PID 880) vers les adresses suivantes 193.104.22.71 port 80 ce qui parait
peu normal
7
En analysant les sockets via la commande suivante :
./vol sockscan -f Memvictime.vmem
Le résultat est reflété dans les figures suivantes:
- firefox (PID 888) ouvre 5 sockets et accepte toutes les connexions de l'extérieur “0.0.0.0” via
le port TCP 6
rekall -f moulou/Memvictime.vmem sockets | grep 888
8
- AcroRD32.exe (PID 1752) ouvre 2 sockets et accepte lui aussi toutes les connexions de
l’extérieur via le port TCP 6 et le port udp 17.. ce qui est anormal
rekall -f moulou/Memvictime.vmem sockets | grep 1752
- svchost.exe (PID 880) ouvre 3 sockets accepte à son tour toutes les connexions de l’extérieur
via le port TCP 6
rekall -f moulou/Memvictime.vmem sockets | grep 880
En cherchant ces adresses suspectes dans Whois Database, on trouve que l’adresse :
212.150.164.203 se trouve en Israel, la commande qui nous a permis de trouver ce résultat est
la suivante : whois 212.150.164.203
Son résultat est affiché comme suit :
9
Concernant l’adresse IP 193.104.22.71, celle-ci se trouve en Iran , la commande qui nous a
permis de trouver ce résultat est la suivante : whois 193.104.22.71
Son résultat est affiché comme suit :
10
-
-
11
Question 3 :
les URLs suspects pouvant se trouver dans la mémoire du processus suspect
a- os utilisé: parrot 5.0 (LTS)
b- outils : - Rekall Memory Forensic framework 1.5.3.post1.dev67 (Furka)
-GNU strings (GNU Binutils for Debian) 2.35.2
Réponse :
➔ Le processus AcroRD32.exe
c- commande: rekall -f moulou/Memvictime.vmem
après exécution de cette commande on aura ce que reflète la figure suivante:
Dans le champ de saisis fournis, on exécute: >>> memdump (pids=1752)
Ceci permet d’obtenir un dump de la mémoire adressable utilisé par le processus
AcroRD32.exe (PID 1752)
Le fichier généré par cette commande est : “1752.dmp”
12
On Utilise strings pour rechercher des adresses IP suspectes et des noms d'hôtes qu’on a trouvé
avant comme par exemple les adresses : “193.104.22.71” et “212.150.164.203”
Ceci peut se faire en exécutant la commande suivante :
strings AcroRd32.exe_1752.dmp | grep "^http://"|sort|uniq
13
En comparant avec les résultats des sockets et en cherchant dans la liste d’archives des noms
de domaines malicieux (comme https://www.malwaredomainlist.com/), on a une
correspondance pour l’adresse IP 212.150.164.203 , comme le montre la figure suivante:
Cela nous ramène donc à extraire depuis le dump précédent, les liens suivants :
http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0
http://search-network-plus.com/load.php?a=a&st=Internet%20Explorer%206.0&e=2
http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=1
http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=2
http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=3
14
Ce nom de domaine est aussi répertorié sur Symantec comme étant un risque à la sécurité
comme le montre la figure suivante:
Concernant toujours le processus AcroRd32, on remarque que celui-ci a ouvert deux sockets
en même temps le 2010-02-27 à 20:12:32, comme le montre la figure ci dessous
L’une des requêtes est une requête tcp 6 et une autre udp 17 qui ne peut être qu’une résolution
de nom dns search-network-plus.com. Ceci peut être confirmer en vérifiant l'historique
d’internet explorer avec la commande suivante :
volatility -f Memvictime.vmem –profile=WinXPSP2x86 iehistory
L résultat de la commande précédente est illustré dans la fgure suivante :
15
La commande précédente fait une reconstruction du cache/historique d’internet explorer. En
défilant cette historique, on remarque que le processus AcroRd32 lance une requête vers
search-network-plus.com le 2010-02-27 à 20:12:34 soit 2 secondes après la connexion UDP
en interne (127.0.0.1) vu dans la figure avant la précédente, comme le montre la figure
suivante :
16
Donc tout laisse à penser que la connexion udp établie en haut est bel et bien une résolution
de nom de domaine.
Remarque :
La requête http faite par le processus AcroRd32.exe a eu pour but de télécharger un fichier
exécutable “file.exe”, cette requête a fonctionné puisque la réponse du serveur a été “ 200 ok
” comme le montre la figure précédente et suivante :
➔ Le processus firefox.exe
c- commande: rekall -f moulou/Memvictime.vmem
>>>memdump (pids=888)
Cette commande permet d’obtenir un dump de la mémoire adressable du processus firefox.exe
(PID 888)
17
On utilise strings pour rechercher des adresses IP suspectes et des noms d'hôtes qu’on a
trouvés, qui sont : 193.104.22.71, 212.150.164.203, www.search-network-plus.com.
Et cela, en exécutant la commande suivante :
strings firefox.exe_888.dmp |grep "^http://"|sort|uniq| grep
"193.104.22.71|212.150.164.203|search-network-plus.com"
les URLs suspects pour le processus firefox (pid 888) sont :
● http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0
● http://search-network-plus.com/favicon.ico
➔ Le processus svchost.exe
c- commande: rekall -f moulou/Memvictime.vmem
>>>memdump (pids=880)
obtenir un dump de la mémoire adressable du processus svchost.exe (PID 880)
18
On utilise strings pour rechercher des adresses IP suspectes et des noms d'hôtes qu’on a trouvé
193.104.22.71, 212.150.164.203 ,www.search-network-plus.com.
en exécutant la commande :
strings svchost.exe_880.dmp |grep "^http://"|sort|uniq| grep
"193.104.22.71|212.150.164.203|search-network-plus.com"
les URLs suspectes pour processus svchost (pid 880):
➔ http://193.104.22.71/~produkt/69825439870/73846525#N
➔ http://193.104.22.71/~produkt/9j856f_4m9y8urb.php
➔ http://193.104.22.71/~produkt/9j856f_4m9y8urb.php&N
Question 4 :
Autres processus contenant des URL pouvant indiquer des problèmes bancaires Si oui, quels
sont ces processus et quelles sont les URLs
Réponse :
a- os utilisé: Parrot 4.10
b- outil: Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge)
Pour chercher les processus contenant des URLs bancaires , on récupère d’abord toutes les
zones mémoires utilisés par l’ensembles des processus un par un et chacun dans un fichier à
part, cela peut être fait avec la commande suivante :
c- commande: rekall -f ../Memvictime.vmem memdump
19
Le résultat de la commande précédente se reflète dans la création de tous les dumps de chaque
processus comme le montre la figure ci dessous :
20
L’étape suivante est d’écrire un script python qui fera ceci :
● une itération sur tous les fichiers résultant de la commande précédente.
● Chacun sera converti en string.
● Chercher des mots clés comme : “bank”, “banque” , “finance” et identifier les processus
contenant cela.
Le Script python écrit est présenté comme ceci:
En exécutant le script précédent, on aura les résultats suivants :
21
Comme le montre la figure précédente, les services dont l’URL de la banque apparaît dans
leurs dump sont :
wuauclt.exe (pid 232)
msiexec.exe (pid 244)
wuauclt.exe (pid 440)
winlogon.exe (pid 644)
services.exe (pid 688)
lsass.exe (pid 770)
vmacthlp.exe (pid 852)
svchost.exe (pid 880)
firefox.exe (pid 888)
svchost.exe (pid 948)
svchost.exe (pid 1040)
svchost.exe (pid 1100)
VMwareTray.exe (pid 1108)
VMwareUser.exe (pid 1116)
wscntfy.exe (pid 1132)
svchost.exe (pid 1244)
svchost.exe (pid 1384)
spoolsv.exe (pid 1460)
vmtoolsd.exe (pid 1628)
AcroRd32.exe (pid 1752)
explorer.exe (pid 1756)
VMUpgradeHelper (pid 1836)
alg.exe (pid 2024)
L’URL est la suivante comme trouvé :
22
Ahttps://onlineeast#.bankofamerica.com/cgi-bin/ias/*/GoToWelcome
Une recherche plus poussé sur les hostnames et URLs unicode peut être fait avec une règle yara
en utilisant la commande suivante :
volatility -f Memvictime.vmem yarascan -Y "/(www|http).+.(com|net|org)/"
le résultat est plus détaillé mais la conclusion est la même, on peut voir une portion du résultat
dans la figure suivante :
Question 5 :
Les fichiers qui ont pu être extraits du processus initial
Réponse :
a- os utilisé: parrot 5.0 (LTS)
b- outils:
- volatility Foundation Volatility Framework 2.6
- foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus
- Le site virustotal.com
- peepdf 0.3 r275
c- commande: ./vol -f Memvictime.vmem memdump -p 1752 --dump-dir dump_files
Le fichier PDF malveillant réside dans le processus AcroRD32.exe (PID 1752), donc en
exécutant la commande précédente, cela nous permet de récupérer l’espace mémoire qu’utilise
le processus au PID 1752, comme le montre la figure suivante :
23
À l'aide de l'outil Foremost , on peut extraire tous les fichiers du processus suspect avec
la commande : foremost 1752.dmp
La commande précédente crée un répertoire “output”, où tous les fichiers extraits sont mis
dedans, comme ceci :
24
En ouvrant le fichier “audit.txt”, on aura un sommaire des résultats de la commande
précédente, et comme le montre la figure suivante, 427 fichiers ont été extraits et parmis eux 7
fichiers PDFs (ce sont les fichiers qui nous intéresse car l’attaque s’est faite à l’aide d’un
fichier PDF).
En analysant les fichiers PDFs extrait un par un sur le site “ virustotal.com ”, un seul fichier
PDF (00601560.pdf) est détecté par 27 antivirus comme étant un virus comme le montre la
figure suivante :
25
En comparant le fichier en question (00601560.pdf) avec les autres, en remarque que celui ci a
une taille supérieur (607083 octets) et donc on peut supposer que celui-ci contient un code
malveillant injecté dedans, comme le montre la figure suivante :
L’étape suivante est d’avoir le plus d’information sur le fichier pdf malveillant et l’explorer, et
pour cela on utilise l’outil peepdf, et on execute la commande suivante :
python peepdf.py -g ../00601560.pdf
26
Comme soupçonné, le PDF précédent contient du code Javascript, ce qui est anormal.
Question 6 :
Techniques utilisées pour exécuter l'exploit.
Réponse :
a- os utilisé: Parrot 4.10
b- outil:
● Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge)
● Volatility Foundation Volatility Framework 2.6
● peepdf 0.3 r275
Notre approche se basera sur l’extraction du code Javascript enfouie dans le fichier PDF, pour
cela on utilisera l’outil “peepdf” en exécutant la commande suivante :
python2 peepdf.py -g /home/yanis/Desktop/output/pdf/00601560.pdf -i
27
En étant en interface de ligne de commande de l’outil peepdf, on extrait le code Javascript du
fichier PDF vers un fichier texte, en exécutant la commande suivante :
extract js > js_malveillant.txt
le résultat de la commande précédente est illustré comme ceci :
28
L'inspection du fichier texte contenant le code Javascript donne le résultat suivant :
29
30
Une fonction Javascript utilisé dans le code malveillant attire notre attention, celle-ci est la
fonction suivante :
HNQYxrFW(eval,VIfwHVPz(xtdxJYVm,JkYBYnxN),BGmiwYYc)
function HNQYxrFW ( KChuBWpl, aTkRRqKD, HVqLGmiA) {
KChuBWpl ( HVqLGmiA(aTkRRqKD) ); }
31
On remarque ici que la fonction HNQYxrFW précédente fait un appel indirect à la fonction
eval() de javascript par le biais de l’argument KChuBWpl, en effet :
KChuBWpl ( HVqLGmiA(aTkRRqKD) ); == eval ( HVqLGmiA(aTkRRqKD) );
puisque eval = KChuBWpl
Donc, la fonction précédente utilise une méthode d’obfuscation du code javascript pour cacher
et rendre difficilement lisible son code malveillant.
Celui-ci peut être sur la machine de l’utilisateur avec les permissions données au sites ou au
modules complémentaires et aussi ouvre une brèche pour d'éventuelles autres attaques.
Source :
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/eval
32
Jetons un œil aux privilèges des processus AcroRD32.exe et firefox.exe pour avoir une idée de
l’étendu des dégâts pouvant être causé par le code malveillant.
Lister les privilèges peut être fait en utilisant la commande suivante:
volatility -f Memvictime.vmem –profile=WinXPSP2x86 privs
On voit que AcroRD32.exe à un tas de privilèges suspects qui, dans la normal des choses, ne
lui aurait pas été affecté.
Question 7 :
Répertorier les fichiers suspects chargés par des processus sur l’ordinateur de la victime et
détecter la charge utile possible de l’exploit initial qui affecterait le compte bancaire de la
victime.
Réponse :
a- os utilisé: Parrot 4.10 et Parrot 5.0
b- outils:
● Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge)
● Volatility Foundation Volatility Framework 2.6
● grep (GNU grep) version 3.4
d- commande : rekall -f Memvictime.vmem filescan
33
En utilisant la commande précédente, on peut répertorier tous les fichiers qu’ont ouverts les
processus suspects au moment où la mémoire a été vidé.
on utilise la commande suivante pour voir ce que le processus AcroRd32.exe (PID 1752)
charge:
rekall -f Memvictime.vmem filescan | grep 1752
En rouge, il y a un fichier temporaire lié à l'URL :
http://search-networkplus.com/cache/PDF.php?st=Internet%20Explorer%206.0
il a été trouvé dans le processus Firefox, et peut être lié au téléchargement initial de logiciel
malveillant.
on récupère la zone mémoire utilisée par processus AcroRd32.exe (PID 1752)
./vol -f Memvictime.vmem memdump -p 1752 --dump-dir .
34
et on l’analyse sur virus total:
En faisant des recherches sur le comportement connu jusqu'à maintenant et aux différents
fichiers suspects présents dans la machine, on trouve que l’infection est fortement liée à Zeus
(ou Zbot).
La source suivante :
https://blogs.blackberry.com/en/2020/04/threat-spotlight-zeus-infostealer-trojan
nous donne plus d’informations sur le mécanisme d'infection possible. Zeus initialement
s'injecte dans winlogon.exe et se superpose au premier véritable processus svchost qu'il trouve.
(comme dans notre cas ces deux processus sont les deux détecté comme malicieux).
On trouve aussi que les indicateurs de compromission sont suivant :
● Noms des fichiers
◦ c:windowssystem32sdra64.exe
◦ c:windowssystem32lowseclocal.ds
◦ c:windowssystem32lowsecuser.ds
● Mutexes
◦ _AVIRA_2109
● Registry Keys
◦ SOFTWAREMicrosoftWindows NTCurrentVersionWinlogonuserinit
L’étape suivante est de vérifier l’existence des fichiers (+ mutextes + clés de registres)
malicieux précédemment cité, une manière très rapide consiste à créer un fichier nommé
malicious contenant les informations suivantes :
35
Grâce à la commande suivante :
./vol -f Memvictime.vmem handles | grep -nif malicious
on peut trouver quel programmes fonctionnent selon quel processus : et on trouve les résultats
suivants:
les fichiers sont donc:
● sdra64.exe winlogon.exe Pid 644
● user.ds fils de winlogon.exe Pid 644
● local.ds fils de winlogon.exe Pid 644
● user.ds.lll fils de svchost.exe Pid 880
● _AVIRA_2109 fils de winlogon.exe Pid 644
36
Question 8 :
Les antivirus repèrent t-il la suspicion ? quel est le résultat général
Réponse :
a- os utilisé : parrot 5.0 (LTS)
b- outils :
● Volatility Foundation Volatility Framework 2.6
● Virustotal.com
● ·Sublime text 3.3.2 Build 3211
Extraire l'exécutable de winlogon.exe se fait avec la commande suivante :
volatility -f Memvictime.vmem –profile=WinXPSP2x86 procdump -p 644 –dump-dir.
Après extraction de celui-ci on le met sur le site https://www.virustotal.com comme ceci :
Ici notre but n’est pas de l’analyser car cela a déjà été fait dans l’une des questions
précédentes, mais d’avoir plus d’information sur une quelconque analyse similaire déjà faite, et
aussi la récupération de la signature du malware en question.
Comme le montre la figure suivante, une analyse similaire de ce malware remonte à avril
2010.. et cette année est la même fournis sur volatility durant l’analyse des processus dumpés
quand la machine était infectée, donc on se rapproche du encore plus de l’identification du
malware.
37
Sur volatility on utilise le plugin “malfind” pour trouvé du code malveillant caché ou bien
injecté et cela à travers la commande suivante :
volatility -f Memvictime.vmem –profile=WinXPSP2x86 malfind –dump-dir .
38
Le résultat est le suivant :
En filtrant les dumps précédents, et en les analysant, La signature du Trojan Zeus/Zbot se
distingue et est détecter par 53 antivirus parmis 71 comme le montre la figure suivante :
39
Zeus est une variante d'un cheval de Troie connu, qui se compose de deux éléments:
● Un serveur de commande et de contrôle appelé Zeus
● Un hôte (un bot) qui doit être installé sur les ordinateurs des victimes.
La partie bot de Zeus est capable de voler les informations d'identifications des utilisateurs pour
les services en ligne (identifiants bancaires, identifiants des réseaux sociaux ..etc), il peut agir
comme un redirecteur à des fins de phishing et est également capable de modifier les sites Web
visités côté client, en injectant du code HTML dans des pages demandées.
Zeus peut être détecté en appliquant une règle Yara développé spécialement Felix Bilstein, le
début et la fin de la règle est montré dans les deux figures suivantes :
40
La règle précédente (fichier check_zeus.yara) peut être exécuté sur volatility en utilisant la
commande suivante :
volatility -f Memvictime.vmem –profile=WinXPSP2x86 yarascan
–yara-file=check_zeus.yara
le résultat de son exécution est comme suit :
41
42
Question 9 :
Les entrées de registre associées associées à la charge utile
Réponse :
a- os utilisé : parrot 5.0 (LTS)
b- outils : Volatility Foundation Volatility Framework 2.6
Comme indiqué dans la question 7, dans les indications de compromission de zeus bot, celui-ci
modifie la sous clé userinit de l'entrée du registre
SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon afin de maintenir la
persistance.
En utilisant le plugin hivelist de volatility, celui-ci affichera les décalages nécessaires pour les
conteneurs de registre SOFTWARE:
./vol -f Memvictime.vmem hivelist
dans le cas de windowssystem32configsoftware, il ya une exécution automatique du trojan
dès l'exécution de windows, la valeur d’adresse suivante 0x1526748 est imprimé dans le
registre SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon.
Pour afficher les valeurs de la clé Winlogon, on exécute la commande suivante :
./vol printkey -o 0xe1526748 -f Memvictime.vmem -K "MicrosoftWindows
NTCurrentVersionWinlogon"
43
Comme affiché : pour maintenir la persistance, zeus bot ajoute le chemin d'accès à sdra64.exe
à la valeur existante de C:WINDOWsystem32userinit.exe
Question 10 :
Quelle technique a été utilisée dans l'exploit initial pour injecter du code dans les autres
processus?
Réponse :
1. L'utilisateur s’est connecté avec un compte administrateur lui permettant d’avoir divers
privilèges.
2. Un Shellcode JavaScript a été injecté dans un fichier PDF et remis par voie Mail,
celui-ci a été ouvert avec Acrobat Reader.
3. Le code Shell réussit à exploiter une vulnérabilité sur Acrobat Reader qui permet de
télécharger un Trojan (chevaux de Troie) et l’exécuter.
4. Celui-ci récupère le bot en le téléchargeant et l’exécute à son tour.
44
5. Une fois le bot exécuté, il se décompresse et s'offusque dans winlogon.exe, celui-ci est
connu pour être utilisé par des keyloggers pour le vol des intéractions utilisateur-clavier.
6. Le bot met en place un mécanisme de persistance grâce à la modification des clés de
registres et génère un processus “svchost.exe” via lequel il peut communiquer avec ses
serveurs de commandes et de contrôles.
7. Le bot émigre librement entre les processus en cours d’exécution et essaye de récupérer
le maximum d’info possible (d'où sa présence dans plus de 20 processus en cours
d’exécution)
45

Recommandé

Reverse Engineering d'un ransomware par
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareNinaSAMMUT
66 vues12 diapositives
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio... par
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...
Mise en place d’un laboratoire de sécurité « Scénarios d’Attaques et Détectio...Trésor-Dux LEBANDA
136 vues65 diapositives
Installation Et Configuration De Monkey Spider par
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
1.8K vues7 diapositives
Rapport des travaux par
Rapport des travauxRapport des travaux
Rapport des travauxBouras Mohamed
929 vues11 diapositives
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi par
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiCreation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiKhalid EDAIG
802 vues14 diapositives
Supervision d'un réseau informatique avec Nagios par
Supervision d'un réseau informatique avec NagiosSupervision d'un réseau informatique avec Nagios
Supervision d'un réseau informatique avec Nagioschristedy keihouad
18.8K vues54 diapositives

Contenu connexe

Similaire à Forensics: Banking Troubles

Comment analyser une machine linux compromise par
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromiseTarek MOHAMED
1.8K vues6 diapositives
Build automatique et distribution OTA avec Xcode 4.x et Jenkins par
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et JenkinsCocoaHeads France
1.6K vues51 diapositives
White paper: SSTIC 2008: Advanced CSRF par
White paper: SSTIC 2008: Advanced CSRFWhite paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRFManfred Touron
742 vues12 diapositives
Présentation de Node.js par
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.jsMickael Couzinet
1.4K vues16 diapositives
Power Shell V2 en action - avec Posh Board 2.0 par
Power Shell V2 en action - avec Posh Board 2.0Power Shell V2 en action - avec Posh Board 2.0
Power Shell V2 en action - avec Posh Board 2.0Patrick Guimonet
1.8K vues23 diapositives

Similaire à Forensics: Banking Troubles(20)

Comment analyser une machine linux compromise par Tarek MOHAMED
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
Tarek MOHAMED1.8K vues
Build automatique et distribution OTA avec Xcode 4.x et Jenkins par CocoaHeads France
Build automatique et distribution OTA avec Xcode 4.x et JenkinsBuild automatique et distribution OTA avec Xcode 4.x et Jenkins
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
CocoaHeads France1.6K vues
White paper: SSTIC 2008: Advanced CSRF par Manfred Touron
White paper: SSTIC 2008: Advanced CSRFWhite paper: SSTIC 2008: Advanced CSRF
White paper: SSTIC 2008: Advanced CSRF
Manfred Touron742 vues
Power Shell V2 en action - avec Posh Board 2.0 par Patrick Guimonet
Power Shell V2 en action - avec Posh Board 2.0Power Shell V2 en action - avec Posh Board 2.0
Power Shell V2 en action - avec Posh Board 2.0
Patrick Guimonet1.8K vues
Scénarios d'exploitation Metasploit - FR : Scénario 1 par Eric Romang
Scénarios d'exploitation Metasploit - FR : Scénario 1Scénarios d'exploitation Metasploit - FR : Scénario 1
Scénarios d'exploitation Metasploit - FR : Scénario 1
Eric Romang838 vues
TD_complet_reseau__CISCO__Packet Tracer.pdf par Ines Ben Hassine
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
Ines Ben Hassine646 vues
Comment relire du code pourri sans se fatiguer par Damien Seguy
Comment relire du code pourri sans se fatiguerComment relire du code pourri sans se fatiguer
Comment relire du code pourri sans se fatiguer
Damien Seguy506 vues
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 par Khalid EDAIG
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4
Khalid EDAIG1.6K vues
Fiche de TD 1 de préparation au Baccalauréat (littéraire et scientifique) du ... par ATPENSC-Group
Fiche de TD 1 de préparation au Baccalauréat (littéraire et scientifique) du ...Fiche de TD 1 de préparation au Baccalauréat (littéraire et scientifique) du ...
Fiche de TD 1 de préparation au Baccalauréat (littéraire et scientifique) du ...
ATPENSC-Group1.8K vues
Fascicule de tp atelier développement web par Houda TOUKABRI
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
Houda TOUKABRI2.6K vues
Principes de fonctionnement unix par webreaker
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
webreaker1.3K vues
Scénarios d'exploitation Metasploit - FR : Scénario 3 par Eric Romang
Scénarios d'exploitation Metasploit - FR : Scénario 3Scénarios d'exploitation Metasploit - FR : Scénario 3
Scénarios d'exploitation Metasploit - FR : Scénario 3
Eric Romang1.3K vues

Forensics: Banking Troubles

  • 1. République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université des Sciences et de la Technologie Houari Boumediene Faculté d’Electronique et d’Informatique Département Informatique Rapport de projet : Sécurité Applicative Filière: Informatique Spécialité: M2 SSI ……………………………….. Énoncé rapide Forensics. À remettre avant le : 16/01/2022 Projet Proposé par: M. A.Berbar Réalisé par :  Rédacteur 1 : Nom : SAOUDI Prénom : Yanis Matricule : 161633040787  Rédacteur 2 : Nom : MELLAH Prénom : Mouloud Matricule : 171731019331 Date de début : 07/01/2022 Date de fin : 13/01/2022 Durée du travail : 40 heures
  • 2. Table des Matières Table des Matières 1 Synthèse Général 2 4- Réponses détaillés 5 Question 1 : 5 Réponse : 5 Question 2 : 7 Réponse : 7 Question 3 : 12 Réponse : 12 Question 4 : 19 Réponse : 19 Question 5 : 23 Réponse : 23 Question 6 : 27 Réponse : 27 Question 7 : 33 Réponse : 33 Question 8 : 37 Réponse : 37 Question 9 : 43 Réponse : 43 Question 10 : 44 Réponse : 44 1
  • 3. Synthèse Général Réponse à la question 1 ● Répertorier les processus: rekall -f Memvictime.vmem psscan ● Voir l'arborescence exacte: volatility -f Memvictime.vmem –profile=WinXPSP2x86 –output=dot –output-file = infected_tree.dot ● Le processus le plus probablement responsable de l’exploit est : AcroRd32.exe (PID 1752) Réponse à la question 2 ● Répertorier les sockets : ./vol sockscan -f Memvictime.vmem ● Processus suspects dont les connexions sont ouvertes: - AcroRD32.exe (PID 1752) 2 sockets qui acceptent toute connexion de l’extérieur. - svchost.exe (PID 880) ouvre 3 sockets qui acceptent toute connexion de l’extérieur. - firefox.exe (PID 888) ouvre 5 sockets et accepte toutes les connexions de l'extérieur “0.0.0.0” via le port TCP 6. Réponse à la question 3 ➔ Par le processus AcroRd32.exe http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0 http://search-network-plus.com/load.php?a=a&st=Internet%20Explorer%206.0&e=2 http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=1 http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=2 http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=3 ➔ Par le processus firefox.exe http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0 http://search-network-plus.com/favicon.ico ➔ Par le processus svchost.exe http://193.104.22.71/~produkt/69825439870/73846525#N http://193.104.22.71/~produkt/9j856f_4m9y8urb.php http://193.104.22.71/~produkt/9j856f_4m9y8urb.php&N 2
  • 4. Réponse à la question 4 les services contenant des URLs de banques sont : wuauclt.exe (pid 232) msiexec.exe (pid 244) wuauclt.exe (pid 440) winlogon.exe (pid 644) services.exe (pid 688) lsass.exe (pid 770) vmacthlp.exe (pid 852) svchost.exe (pid 880) firefox.exe (pid 888) svchost.exe (pid 948) svchost.exe (pid 1040) svchost.exe (pid 1100) VMwareTray.exe (pid 1108) VMwareUser.exe (pid 1116) wscntfy.exe (pid 1132) svchost.exe (pid 1244) svchost.exe (pid 1384) spoolsv.exe (pid 1460) vmtoolsd.exe (pid 1628) AcroRd32.exe (pid 1752) explorer.exe (pid 1756) VMUpgradeHelper (pid 1836) alg.exe (pid 2024) L’URL de la banque est : Ahttps://onlineeast#.bankofamerica.com/cgi-bin/ias/*/GoToWelcome Réponse à la question 5 Le nombre de fichiers extrait est de 427 dont : jpg = 5 gif = 103 bmp = 3 htm = 3 ole = 2 zip = 6 exe = 103 png = 195 pdf = 7 L’un des 7 PDFs extrait (00601560.pdf) est apparu vulnérable car il contient du code JavaScript malicieux. Celui-ci contient aussi 5 objets, 1 streams, 1 AA Réponse à la question 6 l’extrait s’est fait en utilisant l’outil peepdf avec la commande suivante : python2 peepdf.py -g /home/yanis/Desktop/output/pdf/00601560.pdf -i une fois dans l’interface peepdf, on exécute ceci : extract js > js_malveillant.txt La commande précédente permet d’extraire le code JavaScript caché dans le PDF 00601560 3
  • 5. Réponse à la question 7 les fichiers suspects chargés par les processus de l’ordinateur victime sont: ● sdra64.exe winlogon.exe Pid 644 ● user.ds fils de winlogon.exe Pid 644 ● local.ds fils de winlogon.exe Pid 644 ● user.ds.lll fils de svchost.exe Pid 880 ● _AVIRA_2109 fils de winlogon.exe Pid 644 Réponse à la question 8 La plupart des antivirus (53 sur 71) repèrent la suspicion comme étant un cheval de Troie Zeus/Zbot. Réponse à la question 9 - La clé est : SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon - Comme valeur, zeus/bot ajoute le chemin d'accès à sdra64.exe à la valeur existante de C:WINDOWsystem32userinit.exe Réponse à la question 10 1. L'utilisateur s’est connecté avec un compte administrateur lui permettant d’avoir divers privilèges. 2. Un Shellcode JavaScript a été injecté dans un fichier PDF et remis par voie Mail, celui-ci a été ouvert avec Acrobat Reader. 3. Le code Shell réussit à exploiter une vulnérabilité sur Acrobat Reader qui permet de télécharger un Trojan (chevaux de Troie) et l’exécuter. 4. Celui-ci récupère le bot en le téléchargeant et l’exécute à son tour. 5. Une fois le bot exécuté, il se décompresse et s'offusque dans winlogon.exe, celui-ci est connu pour être utilisé par des keyloggers pour le vol des intéractions utilisateur-clavier. 6. Le bot met en place un mécanisme de persistance grâce à la modification des clés de registres et génère un processus “svchost.exe” via lequel il peut communiquer avec ses serveurs de commandes et de contrôles. 7. Le bot émigre librement entre les processus en cours d’exécution et essaye de récupérer le maximum d’info possible (d'où sa présence dans plus de 20 processus en cours d’exécution) 4
  • 6. 4- Réponses détaillés Question 1 : Répertorier les processus en cours d’exécution sur la machine de la victime. Quel processus était le plus probablement responsable de l'exploit initial? Réponse : a- os utilisé: Parrot 4.10 b- outil: Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge) c- commande: rekall -f Memvictime.vmem psscan 5
  • 7. d- description : En utilisant le plugin psscan de rekall, on peut lister les processus en cours d'exécution, et d’après la description de l’incident qui énonce que l’utilisateur à reçu un mail contenant une pièce jointe PDF, on suspecte fortement le processus AcroRd32.exe (PID 1752) qui a été lancé par le processus firefox.exe (PID 888). Celui-ci est élu candidat pouvant être le vecteur d’attaque. On peut voir l'arborescence exacte des processus en exécutant la commande suivante : “ volatility -f Memvictime.vmem –profile=WinXPSP2x86 –output=dot –output-file = infected_tree.dot “ Pour ouvrir le fichier généré on exécute la commande suivante : xdot infected_tree.dot Le résultat sera comme ceci: 6
  • 8. Question 2 : Répertorier les sockets ouverts sur la machine de la victime pendant l’infection. Réponse : Avant de lister les sockets ouverts sur la machine, on essaye de voir les connexions effectuées depuis celle-ci d’abord. a- os utilisé: parrot 5.0 (LTS) b- outils: - Rekall Memory Forensic framework 1.5.3.post1.dev67 (Furka) - Volatility Foundation Volatility Framework 2.6 - grep (GNU grep) version 3.4 c- commande: rekall connscan -f moulou/Memvictime.vmem On peut observer des connexions qui ont été ouvertes vers l’extérieur comme ceci : - firefox.exe (PID 888) vers l’adresse suivante: 212.150.164.203 port 80 ce qui parait peu normal - AcroRD32.exe (PID 1752) vers des l’adresse suivante: 212.150.164.203 port 80 ce qui est suspect. - svchost.exe (PID 880) vers les adresses suivantes 193.104.22.71 port 80 ce qui parait peu normal 7
  • 9. En analysant les sockets via la commande suivante : ./vol sockscan -f Memvictime.vmem Le résultat est reflété dans les figures suivantes: - firefox (PID 888) ouvre 5 sockets et accepte toutes les connexions de l'extérieur “0.0.0.0” via le port TCP 6 rekall -f moulou/Memvictime.vmem sockets | grep 888 8
  • 10. - AcroRD32.exe (PID 1752) ouvre 2 sockets et accepte lui aussi toutes les connexions de l’extérieur via le port TCP 6 et le port udp 17.. ce qui est anormal rekall -f moulou/Memvictime.vmem sockets | grep 1752 - svchost.exe (PID 880) ouvre 3 sockets accepte à son tour toutes les connexions de l’extérieur via le port TCP 6 rekall -f moulou/Memvictime.vmem sockets | grep 880 En cherchant ces adresses suspectes dans Whois Database, on trouve que l’adresse : 212.150.164.203 se trouve en Israel, la commande qui nous a permis de trouver ce résultat est la suivante : whois 212.150.164.203 Son résultat est affiché comme suit : 9
  • 11. Concernant l’adresse IP 193.104.22.71, celle-ci se trouve en Iran , la commande qui nous a permis de trouver ce résultat est la suivante : whois 193.104.22.71 Son résultat est affiché comme suit : 10
  • 13. Question 3 : les URLs suspects pouvant se trouver dans la mémoire du processus suspect a- os utilisé: parrot 5.0 (LTS) b- outils : - Rekall Memory Forensic framework 1.5.3.post1.dev67 (Furka) -GNU strings (GNU Binutils for Debian) 2.35.2 Réponse : ➔ Le processus AcroRD32.exe c- commande: rekall -f moulou/Memvictime.vmem après exécution de cette commande on aura ce que reflète la figure suivante: Dans le champ de saisis fournis, on exécute: >>> memdump (pids=1752) Ceci permet d’obtenir un dump de la mémoire adressable utilisé par le processus AcroRD32.exe (PID 1752) Le fichier généré par cette commande est : “1752.dmp” 12
  • 14. On Utilise strings pour rechercher des adresses IP suspectes et des noms d'hôtes qu’on a trouvé avant comme par exemple les adresses : “193.104.22.71” et “212.150.164.203” Ceci peut se faire en exécutant la commande suivante : strings AcroRd32.exe_1752.dmp | grep "^http://"|sort|uniq 13
  • 15. En comparant avec les résultats des sockets et en cherchant dans la liste d’archives des noms de domaines malicieux (comme https://www.malwaredomainlist.com/), on a une correspondance pour l’adresse IP 212.150.164.203 , comme le montre la figure suivante: Cela nous ramène donc à extraire depuis le dump précédent, les liens suivants : http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0 http://search-network-plus.com/load.php?a=a&st=Internet%20Explorer%206.0&e=2 http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=1 http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=2 http://search-network-plus.com/load.php?a=a&st=Internet Explorer 6.0&e=3 14
  • 16. Ce nom de domaine est aussi répertorié sur Symantec comme étant un risque à la sécurité comme le montre la figure suivante: Concernant toujours le processus AcroRd32, on remarque que celui-ci a ouvert deux sockets en même temps le 2010-02-27 à 20:12:32, comme le montre la figure ci dessous L’une des requêtes est une requête tcp 6 et une autre udp 17 qui ne peut être qu’une résolution de nom dns search-network-plus.com. Ceci peut être confirmer en vérifiant l'historique d’internet explorer avec la commande suivante : volatility -f Memvictime.vmem –profile=WinXPSP2x86 iehistory L résultat de la commande précédente est illustré dans la fgure suivante : 15
  • 17. La commande précédente fait une reconstruction du cache/historique d’internet explorer. En défilant cette historique, on remarque que le processus AcroRd32 lance une requête vers search-network-plus.com le 2010-02-27 à 20:12:34 soit 2 secondes après la connexion UDP en interne (127.0.0.1) vu dans la figure avant la précédente, comme le montre la figure suivante : 16
  • 18. Donc tout laisse à penser que la connexion udp établie en haut est bel et bien une résolution de nom de domaine. Remarque : La requête http faite par le processus AcroRd32.exe a eu pour but de télécharger un fichier exécutable “file.exe”, cette requête a fonctionné puisque la réponse du serveur a été “ 200 ok ” comme le montre la figure précédente et suivante : ➔ Le processus firefox.exe c- commande: rekall -f moulou/Memvictime.vmem >>>memdump (pids=888) Cette commande permet d’obtenir un dump de la mémoire adressable du processus firefox.exe (PID 888) 17
  • 19. On utilise strings pour rechercher des adresses IP suspectes et des noms d'hôtes qu’on a trouvés, qui sont : 193.104.22.71, 212.150.164.203, www.search-network-plus.com. Et cela, en exécutant la commande suivante : strings firefox.exe_888.dmp |grep "^http://"|sort|uniq| grep "193.104.22.71|212.150.164.203|search-network-plus.com" les URLs suspects pour le processus firefox (pid 888) sont : ● http://search-network-plus.com/cache/PDF.php?st=Internet%20Explorer%206.0 ● http://search-network-plus.com/favicon.ico ➔ Le processus svchost.exe c- commande: rekall -f moulou/Memvictime.vmem >>>memdump (pids=880) obtenir un dump de la mémoire adressable du processus svchost.exe (PID 880) 18
  • 20. On utilise strings pour rechercher des adresses IP suspectes et des noms d'hôtes qu’on a trouvé 193.104.22.71, 212.150.164.203 ,www.search-network-plus.com. en exécutant la commande : strings svchost.exe_880.dmp |grep "^http://"|sort|uniq| grep "193.104.22.71|212.150.164.203|search-network-plus.com" les URLs suspectes pour processus svchost (pid 880): ➔ http://193.104.22.71/~produkt/69825439870/73846525#N ➔ http://193.104.22.71/~produkt/9j856f_4m9y8urb.php ➔ http://193.104.22.71/~produkt/9j856f_4m9y8urb.php&N Question 4 : Autres processus contenant des URL pouvant indiquer des problèmes bancaires Si oui, quels sont ces processus et quelles sont les URLs Réponse : a- os utilisé: Parrot 4.10 b- outil: Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge) Pour chercher les processus contenant des URLs bancaires , on récupère d’abord toutes les zones mémoires utilisés par l’ensembles des processus un par un et chacun dans un fichier à part, cela peut être fait avec la commande suivante : c- commande: rekall -f ../Memvictime.vmem memdump 19
  • 21. Le résultat de la commande précédente se reflète dans la création de tous les dumps de chaque processus comme le montre la figure ci dessous : 20
  • 22. L’étape suivante est d’écrire un script python qui fera ceci : ● une itération sur tous les fichiers résultant de la commande précédente. ● Chacun sera converti en string. ● Chercher des mots clés comme : “bank”, “banque” , “finance” et identifier les processus contenant cela. Le Script python écrit est présenté comme ceci: En exécutant le script précédent, on aura les résultats suivants : 21
  • 23. Comme le montre la figure précédente, les services dont l’URL de la banque apparaît dans leurs dump sont : wuauclt.exe (pid 232) msiexec.exe (pid 244) wuauclt.exe (pid 440) winlogon.exe (pid 644) services.exe (pid 688) lsass.exe (pid 770) vmacthlp.exe (pid 852) svchost.exe (pid 880) firefox.exe (pid 888) svchost.exe (pid 948) svchost.exe (pid 1040) svchost.exe (pid 1100) VMwareTray.exe (pid 1108) VMwareUser.exe (pid 1116) wscntfy.exe (pid 1132) svchost.exe (pid 1244) svchost.exe (pid 1384) spoolsv.exe (pid 1460) vmtoolsd.exe (pid 1628) AcroRd32.exe (pid 1752) explorer.exe (pid 1756) VMUpgradeHelper (pid 1836) alg.exe (pid 2024) L’URL est la suivante comme trouvé : 22
  • 24. Ahttps://onlineeast#.bankofamerica.com/cgi-bin/ias/*/GoToWelcome Une recherche plus poussé sur les hostnames et URLs unicode peut être fait avec une règle yara en utilisant la commande suivante : volatility -f Memvictime.vmem yarascan -Y "/(www|http).+.(com|net|org)/" le résultat est plus détaillé mais la conclusion est la même, on peut voir une portion du résultat dans la figure suivante : Question 5 : Les fichiers qui ont pu être extraits du processus initial Réponse : a- os utilisé: parrot 5.0 (LTS) b- outils: - volatility Foundation Volatility Framework 2.6 - foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus - Le site virustotal.com - peepdf 0.3 r275 c- commande: ./vol -f Memvictime.vmem memdump -p 1752 --dump-dir dump_files Le fichier PDF malveillant réside dans le processus AcroRD32.exe (PID 1752), donc en exécutant la commande précédente, cela nous permet de récupérer l’espace mémoire qu’utilise le processus au PID 1752, comme le montre la figure suivante : 23
  • 25. À l'aide de l'outil Foremost , on peut extraire tous les fichiers du processus suspect avec la commande : foremost 1752.dmp La commande précédente crée un répertoire “output”, où tous les fichiers extraits sont mis dedans, comme ceci : 24
  • 26. En ouvrant le fichier “audit.txt”, on aura un sommaire des résultats de la commande précédente, et comme le montre la figure suivante, 427 fichiers ont été extraits et parmis eux 7 fichiers PDFs (ce sont les fichiers qui nous intéresse car l’attaque s’est faite à l’aide d’un fichier PDF). En analysant les fichiers PDFs extrait un par un sur le site “ virustotal.com ”, un seul fichier PDF (00601560.pdf) est détecté par 27 antivirus comme étant un virus comme le montre la figure suivante : 25
  • 27. En comparant le fichier en question (00601560.pdf) avec les autres, en remarque que celui ci a une taille supérieur (607083 octets) et donc on peut supposer que celui-ci contient un code malveillant injecté dedans, comme le montre la figure suivante : L’étape suivante est d’avoir le plus d’information sur le fichier pdf malveillant et l’explorer, et pour cela on utilise l’outil peepdf, et on execute la commande suivante : python peepdf.py -g ../00601560.pdf 26
  • 28. Comme soupçonné, le PDF précédent contient du code Javascript, ce qui est anormal. Question 6 : Techniques utilisées pour exécuter l'exploit. Réponse : a- os utilisé: Parrot 4.10 b- outil: ● Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge) ● Volatility Foundation Volatility Framework 2.6 ● peepdf 0.3 r275 Notre approche se basera sur l’extraction du code Javascript enfouie dans le fichier PDF, pour cela on utilisera l’outil “peepdf” en exécutant la commande suivante : python2 peepdf.py -g /home/yanis/Desktop/output/pdf/00601560.pdf -i 27
  • 29. En étant en interface de ligne de commande de l’outil peepdf, on extrait le code Javascript du fichier PDF vers un fichier texte, en exécutant la commande suivante : extract js > js_malveillant.txt le résultat de la commande précédente est illustré comme ceci : 28
  • 30. L'inspection du fichier texte contenant le code Javascript donne le résultat suivant : 29
  • 31. 30
  • 32. Une fonction Javascript utilisé dans le code malveillant attire notre attention, celle-ci est la fonction suivante : HNQYxrFW(eval,VIfwHVPz(xtdxJYVm,JkYBYnxN),BGmiwYYc) function HNQYxrFW ( KChuBWpl, aTkRRqKD, HVqLGmiA) { KChuBWpl ( HVqLGmiA(aTkRRqKD) ); } 31
  • 33. On remarque ici que la fonction HNQYxrFW précédente fait un appel indirect à la fonction eval() de javascript par le biais de l’argument KChuBWpl, en effet : KChuBWpl ( HVqLGmiA(aTkRRqKD) ); == eval ( HVqLGmiA(aTkRRqKD) ); puisque eval = KChuBWpl Donc, la fonction précédente utilise une méthode d’obfuscation du code javascript pour cacher et rendre difficilement lisible son code malveillant. Celui-ci peut être sur la machine de l’utilisateur avec les permissions données au sites ou au modules complémentaires et aussi ouvre une brèche pour d'éventuelles autres attaques. Source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/eval 32
  • 34. Jetons un œil aux privilèges des processus AcroRD32.exe et firefox.exe pour avoir une idée de l’étendu des dégâts pouvant être causé par le code malveillant. Lister les privilèges peut être fait en utilisant la commande suivante: volatility -f Memvictime.vmem –profile=WinXPSP2x86 privs On voit que AcroRD32.exe à un tas de privilèges suspects qui, dans la normal des choses, ne lui aurait pas été affecté. Question 7 : Répertorier les fichiers suspects chargés par des processus sur l’ordinateur de la victime et détecter la charge utile possible de l’exploit initial qui affecterait le compte bancaire de la victime. Réponse : a- os utilisé: Parrot 4.10 et Parrot 5.0 b- outils: ● Rekall Memory Forensic framework 1.7.2.rc11 (Hurricane Ridge) ● Volatility Foundation Volatility Framework 2.6 ● grep (GNU grep) version 3.4 d- commande : rekall -f Memvictime.vmem filescan 33
  • 35. En utilisant la commande précédente, on peut répertorier tous les fichiers qu’ont ouverts les processus suspects au moment où la mémoire a été vidé. on utilise la commande suivante pour voir ce que le processus AcroRd32.exe (PID 1752) charge: rekall -f Memvictime.vmem filescan | grep 1752 En rouge, il y a un fichier temporaire lié à l'URL : http://search-networkplus.com/cache/PDF.php?st=Internet%20Explorer%206.0 il a été trouvé dans le processus Firefox, et peut être lié au téléchargement initial de logiciel malveillant. on récupère la zone mémoire utilisée par processus AcroRd32.exe (PID 1752) ./vol -f Memvictime.vmem memdump -p 1752 --dump-dir . 34
  • 36. et on l’analyse sur virus total: En faisant des recherches sur le comportement connu jusqu'à maintenant et aux différents fichiers suspects présents dans la machine, on trouve que l’infection est fortement liée à Zeus (ou Zbot). La source suivante : https://blogs.blackberry.com/en/2020/04/threat-spotlight-zeus-infostealer-trojan nous donne plus d’informations sur le mécanisme d'infection possible. Zeus initialement s'injecte dans winlogon.exe et se superpose au premier véritable processus svchost qu'il trouve. (comme dans notre cas ces deux processus sont les deux détecté comme malicieux). On trouve aussi que les indicateurs de compromission sont suivant : ● Noms des fichiers ◦ c:windowssystem32sdra64.exe ◦ c:windowssystem32lowseclocal.ds ◦ c:windowssystem32lowsecuser.ds ● Mutexes ◦ _AVIRA_2109 ● Registry Keys ◦ SOFTWAREMicrosoftWindows NTCurrentVersionWinlogonuserinit L’étape suivante est de vérifier l’existence des fichiers (+ mutextes + clés de registres) malicieux précédemment cité, une manière très rapide consiste à créer un fichier nommé malicious contenant les informations suivantes : 35
  • 37. Grâce à la commande suivante : ./vol -f Memvictime.vmem handles | grep -nif malicious on peut trouver quel programmes fonctionnent selon quel processus : et on trouve les résultats suivants: les fichiers sont donc: ● sdra64.exe winlogon.exe Pid 644 ● user.ds fils de winlogon.exe Pid 644 ● local.ds fils de winlogon.exe Pid 644 ● user.ds.lll fils de svchost.exe Pid 880 ● _AVIRA_2109 fils de winlogon.exe Pid 644 36
  • 38. Question 8 : Les antivirus repèrent t-il la suspicion ? quel est le résultat général Réponse : a- os utilisé : parrot 5.0 (LTS) b- outils : ● Volatility Foundation Volatility Framework 2.6 ● Virustotal.com ● ·Sublime text 3.3.2 Build 3211 Extraire l'exécutable de winlogon.exe se fait avec la commande suivante : volatility -f Memvictime.vmem –profile=WinXPSP2x86 procdump -p 644 –dump-dir. Après extraction de celui-ci on le met sur le site https://www.virustotal.com comme ceci : Ici notre but n’est pas de l’analyser car cela a déjà été fait dans l’une des questions précédentes, mais d’avoir plus d’information sur une quelconque analyse similaire déjà faite, et aussi la récupération de la signature du malware en question. Comme le montre la figure suivante, une analyse similaire de ce malware remonte à avril 2010.. et cette année est la même fournis sur volatility durant l’analyse des processus dumpés quand la machine était infectée, donc on se rapproche du encore plus de l’identification du malware. 37
  • 39. Sur volatility on utilise le plugin “malfind” pour trouvé du code malveillant caché ou bien injecté et cela à travers la commande suivante : volatility -f Memvictime.vmem –profile=WinXPSP2x86 malfind –dump-dir . 38
  • 40. Le résultat est le suivant : En filtrant les dumps précédents, et en les analysant, La signature du Trojan Zeus/Zbot se distingue et est détecter par 53 antivirus parmis 71 comme le montre la figure suivante : 39
  • 41. Zeus est une variante d'un cheval de Troie connu, qui se compose de deux éléments: ● Un serveur de commande et de contrôle appelé Zeus ● Un hôte (un bot) qui doit être installé sur les ordinateurs des victimes. La partie bot de Zeus est capable de voler les informations d'identifications des utilisateurs pour les services en ligne (identifiants bancaires, identifiants des réseaux sociaux ..etc), il peut agir comme un redirecteur à des fins de phishing et est également capable de modifier les sites Web visités côté client, en injectant du code HTML dans des pages demandées. Zeus peut être détecté en appliquant une règle Yara développé spécialement Felix Bilstein, le début et la fin de la règle est montré dans les deux figures suivantes : 40
  • 42. La règle précédente (fichier check_zeus.yara) peut être exécuté sur volatility en utilisant la commande suivante : volatility -f Memvictime.vmem –profile=WinXPSP2x86 yarascan –yara-file=check_zeus.yara le résultat de son exécution est comme suit : 41
  • 43. 42
  • 44. Question 9 : Les entrées de registre associées associées à la charge utile Réponse : a- os utilisé : parrot 5.0 (LTS) b- outils : Volatility Foundation Volatility Framework 2.6 Comme indiqué dans la question 7, dans les indications de compromission de zeus bot, celui-ci modifie la sous clé userinit de l'entrée du registre SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon afin de maintenir la persistance. En utilisant le plugin hivelist de volatility, celui-ci affichera les décalages nécessaires pour les conteneurs de registre SOFTWARE: ./vol -f Memvictime.vmem hivelist dans le cas de windowssystem32configsoftware, il ya une exécution automatique du trojan dès l'exécution de windows, la valeur d’adresse suivante 0x1526748 est imprimé dans le registre SOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon. Pour afficher les valeurs de la clé Winlogon, on exécute la commande suivante : ./vol printkey -o 0xe1526748 -f Memvictime.vmem -K "MicrosoftWindows NTCurrentVersionWinlogon" 43
  • 45. Comme affiché : pour maintenir la persistance, zeus bot ajoute le chemin d'accès à sdra64.exe à la valeur existante de C:WINDOWsystem32userinit.exe Question 10 : Quelle technique a été utilisée dans l'exploit initial pour injecter du code dans les autres processus? Réponse : 1. L'utilisateur s’est connecté avec un compte administrateur lui permettant d’avoir divers privilèges. 2. Un Shellcode JavaScript a été injecté dans un fichier PDF et remis par voie Mail, celui-ci a été ouvert avec Acrobat Reader. 3. Le code Shell réussit à exploiter une vulnérabilité sur Acrobat Reader qui permet de télécharger un Trojan (chevaux de Troie) et l’exécuter. 4. Celui-ci récupère le bot en le téléchargeant et l’exécute à son tour. 44
  • 46. 5. Une fois le bot exécuté, il se décompresse et s'offusque dans winlogon.exe, celui-ci est connu pour être utilisé par des keyloggers pour le vol des intéractions utilisateur-clavier. 6. Le bot met en place un mécanisme de persistance grâce à la modification des clés de registres et génère un processus “svchost.exe” via lequel il peut communiquer avec ses serveurs de commandes et de contrôles. 7. Le bot émigre librement entre les processus en cours d’exécution et essaye de récupérer le maximum d’info possible (d'où sa présence dans plus de 20 processus en cours d’exécution) 45