NeosLab.com
Exploitation

Comment Utiliser SQLmap pour Débutants

L’utilisation de SQLmap peut paraître difficile lorsque vous ne le connaissez pas. Ce tutorial SQLmap vise à présenter les fonctionnalités les plus importantes de cet outil d’injection SQL populaire de manière simple et rapide. Avant d’utiliser SQLmap, vous devez d’abord obtenir la dernière version de l’outil et installer un interpréteur Python. La plupart des distributions Linux ont python installé par défaut. Si ce n’est pas le cas ou si vous n’utilisez pas Linux, vous devrez télécharger et installer python. Enfin, vous aurez besoin d’un site Web vulnérable pour tester. Dans ce tutoriel, nous utilisons notre environnement de simulation (hébergé sur la machine locale et disponible sur le port 8888).

SQLmap est un outil de test de pénétration open source qui automatise le processus de détection et d’exploitation des erreurs d’injection SQL et de prise en charge des serveurs de base de données. Il comprend un puissant moteur de détection, de nombreuses fonctions de niche pour le testeur de pénétration ultime et une large gamme de commutateurs allant des empreintes de bases de données à l’extraction de données de la base de données en passant par l’accès au système de fichiers sous-jacent via les connexions de bande.

Source: sqlinjection.net

COMMENT POUVEZ-VOUS L’UTILISER ?

Tout d’abord, vous devrez le télécharger s’il n’est pas déjà installé et configuré. Vous pouvez visiter le site officiel de SQLmap pour vérifier la dernière version et le télécharger.

Une chose à garder à l’esprit est que SQLmap est un outil basé sur python, cela signifie qu’il fonctionnera généralement sur n’importe quel système d’exploitation ou python est présent mais pour notre part nous aimons Linux et plus spécifiquement Ubuntu, qui est très intuitif et permet de faire des choses incroyables. Pour commencer avec SQLmap, il faut télécharger l’outil, le dézipper et exécuter la commande avec les options nécessaires.

Si vous utilisez Microsoft Windows comme système d’exploitation principal, vous trouverez probablement l’installation d’Ubuntu Linux (ou Kali Linux) sur une machine virtuelle beaucoup plus simple et plus pratique. Vous pourrez tester SQLmap, Nmap, Nikto et Openvas avec une centaine d’autres puissants outils de sécurité en open source. Si vous souhaitez effectuer un scan à distance tel que celui fourni par Hackertarget.com vous pouvez louer un VPS sous Ubuntu à bas prix auprès d’un fournisseur, Linode est idéal pour cela, fournissant des systèmes solides et de qualité pour un prix très intéréssant.


FONCTIONNALITÉS
  • Support complet sur MySQL, Oracle, PostgreSQL, Microsoft SQL Serveur, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB et Informix systèmes de gestion de bases.
  • Développé pour fonctionner avec six techniques d’injections SQL différentes : boolean-based blind, time-based blind, error-based, UNION query-based, stacked queries et out-of-band.
  • Prise en charge de connection direct à la base de données sans passer par une injection SQL, en fournissant les informations d’identification DBMS, adresse IP, port et nom de base de données.
  • Support complet pour énumeration de utilisateurs, hash de mot de passe, privilèges, rôles, bases de données, tables et colonnes.
  • Reconnaissance automatique des formats de hachage de mot de passe et prise en charge pour les cracker à l’aide d’une attaque basée sur un dictionnaire.
  • Support pour dumper complètement les tables de base de données, une gamme d’entrées ou de colonnes spécifiques selon le choix de l’utilisateur. L’utilisateur peut également choisir de ne dumper qu’une plage de caractères de l’entrée de chaque colonne.
  • Prise en charge de la recherche de noms spécifiques de bases de données, de tables spécifiques dans toutes les bases de données ou de colonnes spécifiques dans toutes les tables de bases de données. Ceci est très utile, par exemple, pour identifier les tables contenant des informations d’identification d’application personnalisées lorsque les noms des colonnes pertinentes contiennent des chaînes telles que les identifiants et les mots de passe.
  • Support pour télécharger et charger n’importe quel fichier du système sous-jacent du serveur de base de données lorsque le logiciel de base de données est MySQL, PostgreSQL ou Microsoft SQL Server.
  • Support pour éxécuter des commandes arbitraires et recupérer les réponses standard sur le système d’exploitation sous-jacent du serveur de base de données lorsque le logiciel de base de données est MySQL, PostgreSQL ou Microsoft SQL Server.
  • Prise en charge pour établir une connexion TCP avec état hors bande entre la machine de l’attaquant et le système d’exploitation sous-jacent du serveur de base de données. Ce canal peut être un invité de commande interactive, une session Meterpreter ou une session d’interface utilisateur graphique (VNC) selon le choix de l’utilisateur.
  • Prise en charge de l’escalade des privilèges utilisateur du processus de base de données via la commande Meterpreter getsystem de Metasploit.

Source: sqlmap.org

TÉLÉCHARGEMENT

Étape 1: Obtenir un système d’exploitation basé sur Linux

Si vous voulez exécuter SQLmap sous Windows avec Python, assurez-vous que Python est installé et passez à l’étape suivante, sinon mettez votre système Linux sous tension. Installez une machine virtuelle Linux (recommandée par Ubuntu ou Kali) sur Windows (Virtualbox / VMware / Parrallels) ou démarrez votre bureau Linux.

Étape 2: Installation de SQLmap

Python est pre-installed sur Ubuntu donc la seule chose que vous ayez besoin de faire et de télécharger SQLmap depuis Sourceforge, le dézipper dans un répertoire et commencerà le tester.

Vous pouvez aussi si vous avez git d’installé sur votre machine, récupérer la dernière version de SQLmap avec la commande ci-dessous. Vous pouvez également télécharger directement le dernier ZIP sur le site officiel de SQLmap.

$ git clone --depth 1 https://github.com/SQLmapproject/SQLmap.git sqlmap
Cloning into 'sqlmap'...
remote: Counting objects: 633, done.
remote: Compressing objects: 100% (602/602), done.
remote: Total 633 (delta 170), reused 171 (delta 20), pack-reused 0
Receiving objects: 100% (633/633), 7.17 MiB | 2.44 MiB/s, done.
Resolving deltas: 100% (170/170), done.

Allez dans le répertoire “sqlmap” et lancez le script python pour vous assurer que tout est bien installé correctement.

$ cd sqlmap
$ python SQLmap.py

Si vous n’obtenez pas de retour comme decrit ci-dessus, assurez-vous que python fonctionne correctement (essayez python -V) pour vérifier la version et que vous vous trouver dans le repertoire correct. Maintenant passons à la partie agréable de ce tutoriel.

Por obtenir la liste complète des options disponible vous pouvez utiliser la commande python SQLmap.py -h.

ÉXÉCUTER SQLMAP

Test basé sur HTTP GET simple

Dans ce test simple, nous utiliserons une requête HTTP GET standard par rapport à un URI avec un paramètre (?Id=5). Cela testera différentes méthodes d’injection SQL par rapport au paramètre id.

$ python SQLmap.py -u 'http://mytestsite.com/page.php?id=5'

Dans les résultats, nous pouvons voir les différentes méthodes utilisées sur ce paramètre.

Récupérer les tables de la base de données

SQLmap peut être utilisé non seulement pour tester, mais aussi pour exploiter les injections SQL, en procédant par exemple à l’extraction de données à partir de bases de données, à la mise à jour de tableaux et même à l’éclatement de shells sur des hôtes distants.

Commençons par récupérer les tables de la base de données en utilisant la vulnérabilité de l’injection SQL que nous avons confirmée ci-dessus. Comme vous le verrez dans la réponse ci-dessous, nous sommes en mesure de continuer à tester la cible sans avoir à tester à nouveau la vulnérabilité. SQLmap utilise les informations qu’il connaît sur le site pour exploiter davantage la base de données ciblé. Pour récupérer des données, nous ajoutons simplement un paramètre à la commande précédente. En ajoutant –tables nous sommes en mesure d’essayer de récupérer toutes les tables.

$ python SQLmap.py -u 'http://mytestsite.com/page.php?id=5' --columns -D DATABASE-NAME -T TABLE-NAME --dump

Extraire les données

Pour obtenir des données, nous étendons simplement notre commande. En ajoutant par exemple -T users nous nous concentrerons sur la table des utilisateurs où nous pourrions être en mesure d’obtenir des informations d’identification. L’ajout de –dump indiquera à SQLmap de récupérer toutes les données de la table des utilisateurs, en énumerant tout d’abord les colonnes puis en sauvegardant les données à partir de ces colonnes.

$ python SQLmap.py -u 'http://mytestsite.com/page.php?id=5' --tables
ASTUCES SQLMAP

Réponse Verbose

Lors de test d’injection SQL, il est souvent nécessaire de creuser les requêtes manuellement afin de déterminer les problèmes liés au test et de confirmer ou même d’exploiter davantage une injection découverte. Être capable d’augmenter la verbosité de votre réponse de SQLmap vous aidera pendant vous tests.

En augmentant la verbosité à 4 vous pouvez obtenir les requêtes HTTP, à 5 vous voyez également les en-têtes de réponse HTTP et 6 affichera la réponse HTTP complète. Évidemment, vos réponses seront beaucoup plus complètes mais cela peut être très utilise.

Obtention des informations d’identification de base de données

Cette astuce pratique vous permet de vous connecter directement à la base de données et d’exporter des données telles que des utilisateurs, des bases de données ou des tables. Le côté agréable est que vous n’avez pas besoin de vous souvenir de la syntaxe SQL pour la base de données ou d’avoir un client installé. SQLmap effectuera la lourde tâche en tant que client de base de données pour dumper les données.

Chaine de Connexion DB

MySQL, Oracle, Microsoft SQL Server, PostgreSQL.

DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME

SQLite, Microsoft Access

DBMS://DATABASE_FILEPATH

Éclatement Shells et Autres

SQLmap a un nombre inconsidérable d’options, et est un outil incroyable pour ne faire qu’un avec la base de données. En dehors des shells sur l’hôte ciblé, vous pouvez aussi envoyer des requêtes via tor, trouver des injections dans les réponses de page de manière automatique, crawler des sites et bien sûr effectuer des tests basés sur HTTP POST. Ces exemples ne sont qu’une infime partie et d’autres exemples sont disponibles sur la page wiki github.

Source: hackertarget.com

Articles Similaires

Comment Créer un Reverse Shell

neoslab

Tutoriel Injection SQL pour Débutants

neoslab

Contourner les Antivirus avec des Payloads Encryptés à l’aide de Venom

neoslab

Laisser un commentaire

* By using this form you agree with the storage and handling of your data by this website.

Hey Wait!
Did you know ? You can build your Cyber security or IT career for FREE !
Make yourself happy, join our 8,000 members and receive FREE every day our latest tutorials and webinars to your mailbox!
Yes, Send it Over!
No Thanks!
close-link