⬅ Retour à Starting Point · 🏠 Accueil du repo
Machine 12 — Archetype¶
MSSQL + xp_cmdshell + credentials réutilisés — Ports 445, 1433, 5985
| Tier | 2 |
| OS | Windows Server 2019 |
| Services | SMB (445) · MSSQL (1433) · WinRM (5985) |
Concept¶
Première machine Windows de la série. Un partage SMB anonyme expose un fichier de configuration contenant un mot de passe en clair, permettant une connexion authentifiée à MSSQL. L'activation de xp_cmdshell donne l'exécution de commandes, qui révèle à son tour (via l'historique PowerShell) le mot de passe Administrator, réutilisé pour un accès complet via WinRM.
flowchart LR
A["nmap -sC -sV"] --> B["SMB 445<br/>MSSQL 1433 · WinRM 5985"]
B --> C["smbclient -N<br/>partage backups"]
C --> D["prod.dtsConfig<br/>sql_svc : M3g4c0rp123"]
D --> E["impacket-mssqlclient<br/>-windows-auth"]
E --> F["xp_cmdshell activé<br/>whoami → sql_svc"]
F --> G["ConsoleHost_history.txt<br/>mdp Administrator en clair"]
G --> H["evil-winrm administrator<br/>→ root flag"]
Méthodologie¶
Scan de ports¶
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1433/tcp open ms-sql-s
5985/tcp open wsman
OS : Windows Server 2019, nom NetBIOS : ARCHETYPE.
Énumération SMB (session anonyme)¶
backups n'est pas un partage administratif standard — on l'inspecte :
Connexion MSSQL authentifiée¶
Activation de xp_cmdshell¶
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
Fuite du mot de passe Administrator (historique PowerShell)¶
xp_cmdshell type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
→ mot de passe Administrator en clair : MEGACORP_4dm1n!!.
Accès complet via WinRM¶
Points clés¶
- Un partage SMB accessible en session anonyme (
-N) peut contenir des fichiers de configuration avec des identifiants en clair. - Les fichiers
.dtsConfig(SSIS / SQL Server Integration Services) stockent fréquemment des chaînes de connexion avec mot de passe en clair. impacket-mssqlclientpermet une connexion authentifiée à MSSQL directement depuis Linux.xp_cmdshellest une procédure stockée étendue MSSQL permettant d'exécuter des commandes système — désactivée par défaut, réactivable avec les droits sysadmin.- L'historique PowerShell (
ConsoleHost_history.txt, via PSReadLine) conserve toutes les commandes tapées, y compris les mots de passe passés en argument. - La réutilisation du même mot de passe entre différents comptes/services est une faille humaine récurrente.
- WinRM (port 5985) est le pendant Windows de SSH pour l'administration à distance ;
evil-winrmen est le client offensif de référence.
Leçon retenue¶
La chaîne complète (partage SMB ouvert → fichier de config avec mot de passe → accès SQL → xp_cmdshell → historique PowerShell → mot de passe admin) montre que sur Windows, l'énumération de fichiers de configuration et d'historiques de commandes est aussi cruciale que l'exploitation technique pure.
⬅ Précédent : Oopsie · ⬆ Index Starting Point · Suivant : Unified ➡