---
header-includes:
- \usepackage{xcolor}
---
<!---
*************************************
Original author: Bertanier J
Educational use only for CNAM SEC102
If you need to use this file for another practice :
formationforensics@gmail.com
*************************************
Install first in Linux:
pandoc
texlive-latex-base
texlive-fonts-recommended
texlive-fonts-extra
*************************************
Before writing your analysis try to generate PDF file by use :
pandoc -s -o BRTxxxxxx-SEC102.pdf BRTxxxxxx-SEC102.md
*************************************
To generate your PDF final report :
pandoc -s -o BRTxxxxxx-SEC102.pdf BRTxxxxxx-SEC102.md
*************************************
-->
{width=70%}
\begin{center}
{\Large CONSERVATOIRE NATIONAL DES ARTS ET MÉTIERS \\
CENTRE RÉGIONAL DE BRETAGNE \\
ANNÉE UNIVERSITAIRE 20XX/ 20XX}
\end{center}
\begin{center}
\textbf{ Code UE: SEC102} \\
\textbf{ Menaces informatiques et codes malveillants : analyse et lutte}
\end{center}
**1ère session**
**Examen non surveillé distant**
**Date :**
**Votre devoir est à rendre dans le temps imparti et à déposer sur votre enseignement à l’endroit où vous avez pris connaissance de ce sujet d’examen.**
**- Renommez votre /vos document(s) avec \textcolor{red}{votre code auditeur breton (BRT)} indiqué sur votre convocation et le code UE»Exemple : BRT425868-SEC102.md**
**- \textcolor{red}{Convertissez votre document md au format PDF} via la commande**
**pandoc -s -o BRTxxxxxx-SEC102.pdf BRTxxxxxx-SEC102.md**
**- Déposez votre fichier PDF à l’endroit dédié :**
**• Cliquez sur : « AJOUTER UN TRAVAIL »**
**• Glissez déposer votre document et cliquez sur** **« ENREGISTRER »**
**- Assurez-vous d’avoir bien \textcolor{red}{remis l’intégralité de vos documents \underline{AVANT} d’envoyer} votre devoir.**
**– Pour terminer, cliquez sur le bouton « ENVOYER LE DEVOIR » et \textcolor{red}{confirmez votre remise}.**
Nom de l’enseignant : *BERTANIER Jessie*
<!---
complete with your personal informations
-->
**Code auditeur CNAM : BRT537951-SEC102,BRT536612-SEC102,BRT536435-SEC102,BRT559048-SEC102**
(À renseigner à partir de votre convocation. Votre copie doit rester anonyme)
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# Note
Note du dossier sur 100 points :
Note du dossier sur 20 points :
# Consignes
*Note importante: ne pas modifier le format et la structure du fichier.*
*Les réponses peuvent être multiples et devront être séparées par une virgule*
# Analyse mémoire RAM
## Synthèse de l'analyse
5 points
| n° |Question | Réponses |
| ------------- |:--------------------------| ------------------------------------------------------|
02-001 | *Date d'exécution du malware (YYYY-MM-DD HH:MM)* | 2020-10-20 17:15:38 UTC+0000
02-002 | *Vecteur de compromission* | Le vecteur de compromission est l'utilisateur
02-003 | *Nom d'utilisateur de la machine* | whiterose
02-004 | *Profile d'analyse * | Win7SP1x64_23418
02-005 | *PID(s) du processus vérolé* | 3064
02-006 | *IP du CC* | 192.168.1.6
02-007 | *PID du processus père du processus vérolé*| 3032
02-008 | *Emplacement du malware* | /Device/HarddiskVolume1/Users/whiterose/Downloads/skype.exe
02-009 | *Ip du serveur de téléchargement* | 192.168.40.46 : http://192.168.40.6:/Software/Windows/Communications/skype.exe
02-010 | *Nombre de pages RWX du malware* | 0
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
## Méthodologie d'analyse
*Veuillez décrire les étapes de vos analyses qui vous ont permis de trouver des preuves numériques.*
*Veuillez ne pas dépasser une page d’écriture.*
15 points
Pour cette étape de l’analyse, nous avons un fichier vmem, qui est un dump de la mémoire d’une machine virtuelle. Afin de poursuivre notre analyse, l’outil indispensable que l’on va utiliser est volatility.
Pour commencer, il est impératif de détecter le profil d’analyse, pour cela rien de plus simple, on va venir exécuter la commande suivante :
````bash
vol.py -f Windows\ 7\ x64-Snapshot3.vmem imageinfo
`````
On retrouve donc le profile : "Win7SP1x64_23418"
Suite aux autres analyses, on connais le nom de notre malware "skype.exe", grâce à la commande pslist, la date d'exécution a pu être déterminée : 2020-10-20 17:15:38 UTC
Le vecteur de compromission est l'utilisateur lui-même, puisqu'il a voulu télécharger des outils de communication provenant d'une source qu'il ne connaissait pas.
Le nom d'utilisateur de la machine est whiterose, il est connu grâce notamment à la commande hivelist qui nous donne en sortie les registres, dont le ntuser avec le PATH de notre utilisateur : ``\C:\Users\whiterose\ntuser.dat``
En exécutant la commande volatility avec comme argument pstree, cela nous liste tous les processus avec leurs PID respectifs et leur PID parent, celui qui nous intéresse est "skype.exe", on trouve donc sont PID propre à lui qui est **3064**, et son PID parent qui est **3032**.
Pour continuer, afin de connaître l'emplacement du malware, il a fallu passer en argument à notre commande "filescan", suivie d'un grep sur skype.exe, cela nous a donc donné : ``\Device\HarddiskVolume1\Users\whiterose\Downloads\skype.exe``
le malware a été téléchargé depuis une IP du même sous-réseau comme en atteste l'historique d'Internet Explorer (arg iehistory) soit 192.168.40.46 : ``http://192.168.40.6:/Software/Windows/Communications/skype.exe``
Un argument bien pratique pour connaître les pages en RWX est malfind, cependant suite à l'exécution de ce dernier, aucune page en RWX sur notre malware n’a été découverte.
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# Analyse dump disque dur
\textcolor{red}{\textbf{\underline{Attention}} :}
Ne pas prendre en compte les fichiers présents dans les répertoires des utilisateurs admin et admindom
## Synthèse de l'analyse
5 points
| n° |Question | Réponses |
| ------------- |:--------------------------| ------------------------------------------------------|
03-001 | *sha256 du malware* | db27fd09303a4b73f0635e779269c53938425b7f63 1345b5f2a96739f2185df7
03-002 | *Que retrouve-t-on comme information sur le malware dans le fichier NTUSER.DAT* | L’horaire d’écriture sur le disque de Skype.exe : 2020-10-20 17:12:04 UTC
03-003 | *Peut-on trouver le hash du mdp du user connecté (si oui, donnez le hash)* | 6f50ed6a0c799d3fc3f2d593d37890ca
03-004 | *Peut-on lire les documents ?* | Non, les fichiers ne sont plus en clair. Des dll de chiffrement et hachage sont appelés à l'exécution du malware.
03-005 | *Dans le fichier manifest du malware, l'architecture du malware y est notée. Quel est-il* | L'architecture du malware est en x86.
03-006 | *Type de partition* | La partition est en NTFS et le type en GPT;
03-007 | *Nombre de User ayant utilisés la machine* | Selon le dump SAM nous retrouvons 5 utilisateurs, 3 comptes locaux et 2 comptes du domaine DARKARMY.ORG
03-008 | *Nombre de fichiers téléchargés* | Selon le registre NTUSER.DAT dans /Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/OpenSavePIDIMRU il s'avère que 6 fichiers ont été téléchargés
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
## Méthodologie d'analyse
*Veuillez décrire les étapes de vos analyses qui vous ont permis de trouver des preuves numériques.*
*Veuillez ne pas dépasser une page d’écriture.*
15 points
Cette étape consiste à récupérer le contenu du disque dur du système puis d’en réaliser une analyse, afin de parer à toute modification éventuelle des données nous agissons sur le système éteint.
Nous avons pour cela en notre possession une image disque vmdk qui est donc le format de disque dur virtuel, il a été choisi dans un premier temps de l’analyser avec Autopsy. Afin de rendre ce fichier compatible avec Autopsy il a été nécessaire de le convertir au format .raw : `qemu-img convert Dump.vmdk -p -O raw Dump.raw.`
À la suite de l’analyse mémoire, et après investigation des répertoires utilisateurs, il s’apparente qu’un exécutable “Skype.exe” ait été téléchargé depuis internet, il se trouve très exactement dans le dossier de téléchargements de l’utilisateur whiterose : C:/Users/whiterose/Downloads/Skype.exe le checksum sha256 de ce dernier est: db27fd09303a4b73f0635e779269c53938425b7f631345b5f2a96739f2185df7
Afin d’analyser le registre NTUSER.DAT de l’utilisateur whiterose nous avons utilisé l’outil Registry Explorer d’Eric Zimmerman, les informations sur les fichiers téléchargés se trouvent dans Software/Microsoft/Windows/CurrentVersion/ComDlg32/OpenSavePidlMRU nous pouvons constater l’horaire d’écriture de Skype.exe sur le disque : 2020-10-20 17:12:04 UTC.
Puis, avec l’outil issu de la suite impackets : secretsdump, le hash du mot de passe de l’utilisateur whiterose a pu être déterminé moyennant la commande suivante : `secretsdump.py LOCAL -sam SAM -security SECURITY -system SYSTEM` :
DARKARMY.ORG/whiterose:$DCC2$10240#whiterose#6f50ed6a0c799d3fc3f2d593d37890ca
Pour cela, il a fallu extraire à partir d’Autopsy les fichiers SAM, SECURITY et SYSTEM ayant pour chemin d’accès : C:/Windows/System32/config/.
Les documents des répertoires de l’utilisateur ne sont plus en clair, après une investigation plus approfondie il s’avère que des dll de chiffrement sont appelés à l’exécution du malware, d’après le fichier manifest du malware ce dernier possède une architecture x86.
Le format de partition est en NTFS et son type est en GPT nous pouvons constater cela à la présence du fichier bootmgr.efi. Selon le dump SAM nous retrouvons 5 utilisateurs, dont 3 comptes locaux, et 2 comptes membres du domaine DARKARMY toujours avec la commande : `secretsdump.py LOCAL -sam SAM -security SECURITY -system SYSTEM`.
Afin de savoir quels fichiers ont été téléchargés par l’utilisateur whiterose nous nous sommes appuyés sur le registre NTUSER.DAT de ce dernier, après vérification dans /Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/OpenSavePIDIMRU il s’avère que 6 fichiers ont été téléchargés.
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# Analyse réseau
## Synthèse de l'analyse
5 points
| n° |Question | Réponses |
| ------------- |:--------------------------| ------------------------------------------------------|
04-001 | *Combien(s) d'adresse(s) IP privées (hors broadcast)* | 6
04-002 | *IP du serveur de téléchargement du malware* | 192.168.1.3
04-003 | *Nombre de protocoles en clair* | 11 (SMBv1, SMBv2, LDAP, Kerberos, HTTP, ARP, IGMP, NTP, DCERPC, DHCP, CLDAP)
04-004 | *Quel est le nom du Domaine* | DarkArmy.org
04-005 | *Nom des fichiers utilisés par le malware* | key, key.hex, start, uid.txt
04-006 | *Adresse IP du serveur NTP* | 192.168.40.1
04-007 | *Adresse IP du serveur de contrôle du malware* | 192.168.40.3
04-008 | *Quel est le nom du serveur de domaine* | darkserver
04-009 | *Fichier manquant que le malware souhaite utiliser* | stop
04-010 | *Le serveur du contrôle de malware ainsi que le serveur de téléchargement fait il partit du domaine de la machine piratée ?* | Non
Questions bonus (5 points):
Quels utilisateurs ainsi que leurs adresses IP sont actuellement connectés sur le réseau ?
Nous avons trois utilisateurs connectés : whiterose, elliot et darlene. Nous pouvons l'observer dans les trames d'erreurs de KERBEROS
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
## Méthodologie d'analyse
*Veuillez décrire les étapes de vos analyses qui vous ont permis de trouver des preuves numériques.*
*Veuillez ne pas dépasser une page d’écriture.*
15 points
Toute l'analyse réseau s'est déroulée sur WireShark. Pour trouver le nombre d'ip privées, nous avons été dans les statistiques des adresses [IPV4](#IPv4) afin de toutes les retrouver.
Le serveur du téléchargement du malware se retrouve facilement lorsque nous filtrons les trames HTTP et que nous observons la destination de [la requête GET](#Serveur-de-téléchargement-du-malware) vers skype.exe (2020-10-20 17:11:59 UTC).
Pour le nombre de [protocoles en clair](#Hierarchie-des-protocoles), l'affichage des statistiques sur les protocoles permet de facilement afficher l'ensemble de ces derniers.
Le nom de domaine se trouve dans les statistiques des [adresses IP résolues](#Adresses-IP-résolues) ou nous trouvons "darkserver.darkarmy.org", on déduit facilement que le domaine est donc "darkarmy.org" et que le serveur de domaine se nomme "darkserver".
Le malware est skype.exe, une fois téléchargé le malware [accède à la page](#Fichier-auquels-le-malware-tente-d''accéder) "?uid=56831da9-2f7f-433d-aa31-be7149ddc795&key=993753902beabc7b2c0[...]478", en exportant cette page, nous obtenons la liste des fichiers auquel le malware accédera(5).
Nous observons ensuite sur les trames HTTP que le malware tente d'atteindre "/stop" mais que [le fichier est inexistant](#Fichier-non-accessible-par-le-malware) (erreur 404).
En filtrant les trames NTP, nous observons que [le serveur NTP est à l'adresse 192.168.40.1.](#Adresse-IP-du-serveur-NTP)
L'adresse ip 192.168.40.3 n'est jamais résolue, nous considérons donc qu'elle n'appartient pas au domaine "darkarmy.org".
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# Analyse statique du malware
## Synthèse de l'analyse
5 points
| n° |Question | Réponses |
| ------------- |:--------------------------| ------------------------------------------------------|
04-001 | Langage de programmation utilisé pour coder le malware| Python
04-002 | Date de compilation du malware (YYYY-MM-DD HH:MM) | 2020-08-08 12:29 UTC
04-003 | Combien de DLL importées| 3
04-004 | Nombre de section | 6
04-005 | Entropy du malware | 7.993
04-006 | Nombre de fonctions importées | 94 système et 7 python
04-007 | Version du logiciel de programmation | Visual studio 2015 - 14.0.3
04-008 | Le logiciel supporte t'il les sockets | Oui
04-009 | Architecture du malware (ex :x86) | x86
04-010 | Taille du code en octet | 6395253
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
## Méthodologie d'analyse
*Veuillez décrire les étapes de vos analyses qui vous ont permis d'analyser le malware.*
*Veuillez ne pas dépasser une page d’écriture.*
15 points
L'objectif d'une analyse statique est d'obtenir des informations essentielles très rapidement sur un logiciel. Le second intérêt est d'analyser sans risque pour la machine, en effet le malware n'est pas exécuté, la machine ne sera donc pas infectée.
Dans un premier temps, nous avons déterminé l'architecture du malware. Avec l'analyse de disque, nous avions déjà une idée grâce au manifeste du fichier skype.exe, il se trouve que le malware est au format x86, nous avons pu confirmer cette information grâce à l'outil [pestudio](https://www.winitor.com/download). Une fois l'architecture déterminée nous avons cherché le langage de programmation utilisé. D'après les [fonctions importées](#python) nous en avons déduit que le malware a été développé en Python. D'après pestudio le malware a été [compilé](#date-de-compilation) le 08 août à 12h29 heures UTC, avec le logiciel [Visual studio 2015 en version 14.0.3](#visual-studio-version).
Enfin, nous pouvons nous attaquer plus précisément au contenu du malware. Avec l'analyse, nous avons pu trouver [94 DLL système](#Système) et 7 [fonctions en python](#python). En comparant avec la dernière version en date de skype, skype possède 122 [dll systèmes](#dll-système) et ne contient pas d'import de fonction. On note donc bien une différence entre l'outil légitime et le malware. En analysant rapidement le code on s'aperçoit que le malware utilise des [sockets](#socket).
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# TimeLine and conclusion
## Timeline
1,5 points
| n° |Question | Réponses |
| ------------- |:--------------------------| ------------------------------------------------------|
05-001 | *Date de dépose du malware (YYYY-MM-DD HH:MM)* | 2020-10-20 17:11:59 UTC
05-002 | *Date de la première exécution du malware (YYYY-MM-DD HH:MM)* | 2020-10-20 17:15:38 UTC
05-003 | *Sur quel type de réseau est la machine infectée* | Réseau LAN de l'entreprise
## Conclusion
3,5 points
| n° |Question | Réponses |
| ------------- |:--------------------------| ------------------------------------------------------|
06-001 | *Sévérité du malware* | 8/10
06-002 | *Nombre de machine(s) infectée(s)* | 1
06-003 | *Système d'exploitation affecté* | Windows
06-004 | *Type de malware (eg:keylogger)* | Cryptolocker
06-005 | *Méthode de récupération des clés* | <!--- uncomment and tape your response here -->
06-006 | *Quel(s) répertoire(s) infecté(s)* | Documents
06-007 | *Méthode utilisée par le malware pour démarrer* | Ouverture par l'utilisateur
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# Recommandations
*Veuillez décrire les recommandations que vous proposeriez*
*Veuillez ne pas dépasser une page d'écriture.*
15 points
Pour éviter ce type d'incident par la suite, nous conseillons de toujours télécharger les logiciels sur le site officiel de l'éditeur. En effet la probabilité qu'un exécutable comme Skype soit vérolé sur le site de Microsoft est minime.
En amont, il faudrait faire en sorte que les applications téléchargeables par les employés soient centralisées. En effet, cela limiterait les risques et offre une plus grande liberté dans la gestion des exécutables.
Chaque utilisateur devrait posséder des droits limiter, en effet, si l'utilisateur ne possède que des droits restreints, il ne pourra pas exécuter d'outil non géré par le SI.
Ensuite, il faudrait tenir à jour les OS des utilisateurs, comme on a pu le constater, Windows détecte le programme comme étant un ransomware, si l'utilisateur avait eu ce pop-up, il n'aurait peut-être pas exécuté le malware.
La mise en place d'un EDR peut être envisagée. Assurément, sur ce type de malware déjà connu par signature, la détection se fait sans souci, mais s'il s'agit d'un malware encore inconnu par les bases virales, alors Windows l'aurait exécuté, contrairement à l'EDR qui aurait détecté un comportement inhabituel de la part du programme.
Il est possible d'installer une sonde réseau comme Darktrace. Cette dernière aurait détecté le téléchargement d'un exécutable vérolé et aurait remonté l'information aux équipes du SI.
Du côté des administrateurs, il est important de vérifier si d'autres postes de travail ont téléchargé ce même malware et s'il y a un risque de propagation du cryptolocker sur d'autres appareils via le réseau. Une rétroingénieurie du programme permettrait peut-être de récupérer une clé de déchiffrement des données, mais il reste vivement préférable de réinstaller le système infecté.
La meilleure solution pour la récupération des données chiffrées reste la sauvegarde régulière des données. En effet, il est préconisé de suivre la règle de sauvegarde 321 : trois sauvegardes différentes, sur deux supports différents, dont un externalisé.
<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>
# Annexes
<!--
Si vous souhaitez utiliser des images :
<div align="center">

</div>
Si vous souhaitez ajouter du code de programmation :
```
If you need copy and paste code
Enter code here
Else remove line in back quotes
```
-->
## Analyse de la mémoire vive
### Profile d'analyse

### Date d'exécution

### Ip du serveur de téléchargement

### Emplacement du malware

## Analyse de disque
### Analyse du NTUSER.DAT (whiterose)

### Analyse SAM SECURITY SYSTEM

### Présence du bootloader efi Windows (UEFI+GPT)

## Analyse réseau
### IPv4

### Serveur de téléchargement du malware

### Hierarchie des protocoles

### Adresses IP résolues

### Fichier auquels le malware tente d'accéder

### Fichier non accessible par le malware

### Adresse IP du serveur NTP

## Analyse statique
### Malware
#### Date de compilation

#### Visual studio version

#### DLL importées

#### Fonctions importées
##### Système

##### Python
```sh
strings skype.exe | grep -i import
import sys; sys.stdout.flush(); (sys.__stdout__.flush if sys.__stdout__ is not sys.stdout else (lambda: None))()
import sys; sys.stderr.flush(); (sys.__stderr__.flush if sys.__stderr__ is not sys.stderr else (lambda: None))()
importlib)
importlib._bootstrap)
importlib._bootstrap_external)
importlib.abc)
importlib.machinery)
importlib.resources)
importlib.util)
```
#### Ransomware Windows
#### socket
```sh
strings skype.exe | grep -i socket
socket)
socketserver)
b_socket.pyd
```
### Skype
#### Import
```sh
tsurugi@tsurugi-VirtualBox:~/Desktop$ strings Skype-8.90.0.407.exe | grep -i import
tsurugi@tsurugi-VirtualBox:~/Desktop$
```
#### DLL système

## Windows

<div style="page-break-after: always; visibility: hidden">
\pagebreak
</div>