Oracle TNS
Oracle TNS - Guide Complet avec Commandes 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
Le protocole TNS (Transparent Network Substrate) est utilisé par les bases de données Oracle pour la communication entre les clients et les serveurs. Ce protocole peut être mal configuré, rendant les bases vulnérables à des attaques comme la falsification, l’énumération ou l’exploitation directe. Ce guide explore les techniques pour interagir avec Oracle via TNS, effectuer des tests de sécurité, et identifier des vulnérabilités.
🚀 Étape 1 : Préparer l'Environnement
1.1 Identifier le Port TNS
Par défaut, le service Oracle TNS écoute sur le port 1521 (TCP). Pour détecter les services TNS actifs, utilisez Nmap :
Exemple de sortie :
Explications :
1521
: Port standard pour Oracle TNS.oracle-tns
: Service TNS détecté.
1.2 Pré-requis
Un système Linux avec Python et les outils associés (comme tnscmd ou ODAT).
Les permissions root pour exécuter certaines commandes réseau.
🛠️ Étape 2 : Énumération avec Oracle TNS
2.1 Utiliser tnscmd (Oracle TNS Commands)
tnscmd est un outil spécialisé pour interroger les services TNS. Il est utile pour énumérer les services, tester la configuration, et découvrir des informations sur la base.
Installer tnscmd : Téléchargez tnscmd depuis le dépôt GitHub :
Découvrir les Services Disponibles : Pour énumérer les services disponibles sur un serveur Oracle :
Exemple :
Sortie attendue :
Tester une Injection TNS : Certaines configurations permettent des attaques d’injection TNS :
2.2 Utiliser ODAT (Oracle Database Attacking Tool)
ODAT est un outil plus complet pour interagir avec les bases Oracle via TNS.
Installer ODAT : Téléchargez et installez ODAT :
Lister les Services Oracle : Pour découvrir les services Oracle :
Exemple :
🔍 Étape 3 : Accès à la Base Oracle
3.1 Brute-Force des SIDs (System Identifiers)
Les bases Oracle sont identifiées par des SIDs. Si le SID n’est pas connu, utilisez ODAT pour brute-forcer :
Exemple :
3.2 Brute-Force des Comptes
Une fois le SID identifié, brute-forcez les identifiants :
Exemple :
3.3 Connexion à la Base avec SQLPlus
SQLPlus est le client officiel pour interagir avec une base Oracle :
Exemple :
🛠️ Étape 4 : Exploitation de la Base Oracle
4.1 Énumération des Tables
Après connexion, affichez les tables disponibles :
4.2 Lecture des Données
Pour lire les données sensibles (par exemple, les utilisateurs et les mots de passe) :
4.3 Exécution de Commandes Système
Si vous disposez de permissions suffisantes, utilisez DBMS_SCHEDULER pour exécuter des commandes système :
Créez une tâche programmée :
Activez la tâche :
🔒 Étape 5 : Contre-Mesures et Sécurisation
5.1 Restreindre l'Accès TNS
Configurez un pare-feu pour restreindre l'accès au port 1521 uniquement aux IP autorisées.
5.2 Désactiver les SIDs par Défaut
Modifiez la configuration Oracle pour éviter l'exposition des SIDs par défaut comme XE ou ORCL.
5.3 Activer l’Audit TNS
Surveillez les connexions et les requêtes suspectes via les outils d’audit Oracle.
5.4 Utiliser des Identifiants Forts
Remplacez les mots de passe par défaut comme
scott/tiger
par des valeurs robustes.
Résumé des Commandes Clés
nmap -p 1521 -sV <target>
Scanner le port 1521 pour détecter TNS.
python3 tnscmd.py --host <target> --raw
Énumérer les services Oracle via TNS.
python3 odat.py sidguesser ...
Brute-force des SIDs Oracle.
sqlplus <username>/<password>@...
Connexion à une base Oracle avec SQLPlus.
SELECT * FROM dba_users;
Lire les utilisateurs de la base Oracle.
Conclusion
Ce guide fournit un cadre complet pour énumérer et interagir avec Oracle TNS dans le cadre d’un test de sécurité. Les étapes décrivent l’identification des services, l’exploitation des vulnérabilités, et les bonnes pratiques pour sécuriser les bases Oracle. Respectez toujours les règles légales et éthiques lors de l’utilisation de ces techniques.
Liens utiles :
Dernière mise à jour