MSSQL

MSSQL - Guide Complet avec Commandes SQL Fondamentales

⚠️ Avertissement : Ce contenu est strictement destiné à un usage éducatif et éthique dans le domaine de la cybersécurité. Toute utilisation illégale ou malveillante est interdite et engage la seule responsabilité de l’utilisateur.


Introduction

Microsoft SQL Server (MSSQL) est un système de gestion de bases de données relationnelles largement utilisé dans les environnements professionnels. Lors d’un pentest, MSSQL peut être une cible intéressante pour découvrir des données sensibles, des vulnérabilités ou des configurations faibles. Ce guide fournit une méthodologie détaillée pour énumérer, interagir et exploiter MSSQL dans un cadre légal et éthique.


🚀 Étape 1 : Préparer l'Accès à MSSQL

1.1 Identifier le Port MSSQL

Par défaut, MSSQL utilise le port 1433 (TCP). Utilisez Nmap pour détecter les services MSSQL actifs :

nmap -p 1433 -sV <target>

Exemple de sortie :

1433/tcp open  ms-sql-s Microsoft SQL Server 2019

Explications :

  • 1433 : Port par défaut pour MSSQL.

  • ms-sql-s : Service MSSQL identifié.


1.2 Tester l’Accès avec des Identifiants

Si des identifiants sont disponibles, connectez-vous via sqlcmd (client MSSQL) ou mssqlclient.py d’Impacket.

Avec sqlcmd :

Exemple :

Avec mssqlclient.py :

Exemple :


1.3 Brute-Force des Identifiants

Si les identifiants sont inconnus, utilisez des outils comme Hydra ou Medusa pour brute-forcer les comptes.

Avec Hydra :

Avec Medusa :


🔍 Étape 2 : Énumération des Bases et Utilisateurs

2.1 Lister les Bases de Données

Après vous être connecté, utilisez cette commande pour afficher toutes les bases disponibles :

Exemple de sortie :


2.2 Explorer les Tables d’une Base

Sélectionnez une base de données et affichez ses tables :

Exemple :


2.3 Lister les Colonnes d’une Table

Pour examiner la structure d’une table, utilisez :

Exemple :

Exemple de sortie :


2.4 Lister les Utilisateurs MSSQL

Interrogez la table syslogins pour identifier les utilisateurs :

Exemple de sortie :


2.5 Vérifier les Privilèges des Utilisateurs

Pour voir les permissions d’un utilisateur spécifique :

Exemple :


🛠️ Étape 3 : Exploitation et Recherche de Données Sensibles

3.1 Lire les Données d'une Table

Pour afficher les données contenues dans une table, utilisez :

Exemple :


3.2 Rechercher des Données Critiques

  • Identifiants ou mots de passe :

  • Emails :


3.3 Exécution de Commandes Système

Si vous disposez des privilèges sysadmin, activez le mode xp_cmdshell pour exécuter des commandes système :

  1. Activer xp_cmdshell :

  2. Exécuter une commande système :


3.4 Lire des Fichiers Locaux

Utilisez OPENROWSET pour lire un fichier local si les permissions le permettent :


🔧 Étape 4 : Exporter et Sauvegarder les Données

4.1 Exporter une Table avec BCP

Si vous avez accès au serveur MSSQL, utilisez l’outil bcp pour exporter des données :

Exemple :


4.2 Sauvegarder une Base

Créez une sauvegarde de la base si vous avez les permissions :


🔒 Étape 5 : Contre-Mesures et Sécurisation

5.1 Restreindre les Privilèges

Révoquez les permissions inutiles pour les utilisateurs :


5.2 Désactiver xp_cmdshell

Désactivez xp_cmdshell pour éviter les exécutions de commandes système :


5.3 Activer un Pare-feu

Filtrez les connexions au port 1433 et limitez les accès aux IP autorisées.


5.4 Auditer et Surveiller les Activités

Activez l’audit MSSQL pour surveiller les activités suspectes :


Résumé des Commandes Clés

Commande SQL
Description

SELECT name FROM master.dbo.sysdatabases;

Liste toutes les bases de données.

SELECT * FROM information_schema.tables;

Liste les tables d’une base.

SELECT COLUMN_NAME, DATA_TYPE FROM ...;

Affiche les colonnes d’une table.

SELECT * FROM users LIMIT 10;

Affiche les 10 premières lignes d'une table.

EXEC xp_cmdshell '<commande>';

Exécute une commande système (si activé).

BACKUP DATABASE <database_name> ...;

Sauvegarde une base MSSQL.


Conclusion

Ce guide couvre les étapes nécessaires pour énumérer, interagir et exploiter MSSQL dans un cadre de pentest. Il inclut également des techniques pour protéger les serveurs MSSQL contre les abus. Utilisez toujours ces connaissances de manière éthique et légale pour sécuriser les systèmes et améliorer leur résilience.


Liens utiles :

Mis à jour