Obtenir les privilèges SYS dans une base de données Oracle est souvent facile durant un test d'intrusion interne. Il est cependant bien tentant de pouvoir exécuter des commandes sur l'hôte hébergeant cette base. Pour ce faire, on peut utiliser des exploits, avec tous les inconvénients que cela comporte (disponibilité du service, fiabilité d'un exploit souvent ancien, ...), ou exploiter des fonctionnalités documentées, ce que nous allons faire.
1. Contexte
Mis à part le chapitre suivant, cet article traite de l'exécution de code sur un hôte hébergeant une base de données Oracle lorsqu'on a obtenu le plus haut niveau de privilèges dans cette dernière. Les techniques permettant d'y arriver ne sont donc pas traitées, mais l'expérience montre que l'on découvre souvent des comptes munis de mots de passe (très) faibles pouvant lister la table dba_users et permettant à terme d'obtenir les secrets des autres comptes.
L'authentification réseau dans Oracle est plutôt mal conçue. Il est en effet possible pour les versions inférieures à 10g d'énumérer les utilisateurs, et il est possible, pour toutes les versions, de déchiffrer le trafic d'authentification si on connait le condensat du mot de passe utilisé (celui-ci servant de clé de chiffrement [1]).
2. Attaque du TNS Listener
Le TNS Listener est le logiciel qui gère le trafic réseau entre un client Oracle et la base de données, par défaut...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première