Réinitialiser le mot de passe du contrôleur UniFi

Comme tout administrateur système convaincu de la perfection de sa propre mémoire et de sa capacité à se souvenir du code d'installation de Windows XP à 25 chiffres au milieu de la nuit, il a récemment pris une telle exception.

Un beau jour, décidant de m'arrêter pour vérifier ce qui est avec mon contrôleur UniFi, j'ai reçu un message incroyable: Erreur de connexion.



Après s'être gratté la tête et se souvenir comment à un moment il avait oublié le code PIN de la carte, qu'il avait tapé purement mécaniquement, il a commencé à trier les options possibles. Après une demi-heure d'essayer, de chercher des notes dans un cahier, de revoir les sclérotiques collés au moniteur, j'ai réalisé que je devais chercher des solutions.

Faites immédiatement une réservation pour ceux qui aiment critiquer - le gestionnaire de compte / mot de passe, ala LastPass, est utilisé. En fait, c'est LastPass qui est utilisé. Et les données de là-bas n'ont pas contribué à une authentification réussie.

Après avoir fouillé les forums bourgeois, les informations nécessaires pour réinitialiser le mot de passe de n'importe quel compte dans le contrôleur ont été reçues, comprises, digérées et recueillies dans une brève note.

Donc, étant donné:

1. Contrôleur UniFi (ne joue pas le rôle de système d'exploitation - Linux ou Windows) avec accès au système d'exploitation lui-même.
2. Accès Internet.
3. Bras droits.

Le contrôleur UniFi stocke la configuration complète dans la base de données Mongo.

Vérifiez s'il existe des informations dont nous avons besoin pour le compte que vous recherchez:

mongo --port 27117 ace --eval 'db.admin.find().forEach(printjson);' 

Dans ce cas particulier, nous demandons des informations pour le compte administrateur .

Si nous recherchons la comptabilité VasyaPupkin , la requête ressemblera à ceci:

 mongo --port 27117 ace --eval 'db.VasyaPupkin.find().forEach(printjson);' 

L'échappement est approximativement le suivant:

 MongoDB shell version: 2.6.12 connecting to: 127.0.0.1:27117/ace { "_id" : ObjectId("567bfd4fe4b0c81300ff3158"), "email" : "admin@company.com", "email_alert_enabled" : true, "email_alert_grouping_enabled" : true, "html_email_enabled" : true, "is_professional_installer" : false, "last_site_name" : "default", "name" : "admin", "requires_new_password" : false, "time_created" : NumberLong(1450966351), "ui_settings" : { "dashboardConfig" : { "dashboards" : { "5b4c57aadc236c7de53e3c3c" : { "order" : 1 } }, "lastActiveDashboardId" : "5b4c57aadc236c7de53e3c3c" }, "statisticsPreferBps" : true }, "x_shadow" : "$6$0YiSt9dQ$YrNKedOCjOP2xl3y9FhRasafdhbdfadamBKIjZ4l9Mm4cy/m49dt0bN.sYaFvgVb5vce45KypFe07iNYc1" } 

Domaine d'intérêt pour nous:

 x_shadow" : "$6$0YiSt9dQ$YrNKedOCjOP2xl3y9FhRasafdhbdfadamBKIjZ4l9Mm4cy/m49dt0bN.sYaFvgVb5vce45KypFe07iNYc1" 

Après analyse google , nous découvrons que l'algorithme de cryptage est compatible SHA-512 crypt (3).

Oups Nous reportons l'idée de décrypter à l'étagère la plus éloignée et allons dans l'autre sens.
Nous avons accès à la base de données, nous avons donc juste besoin d'un hachage à partir du mot de passe que nous connaissons. Et mettre à jour l'enregistrement dans la base de données est quelque chose de simple.

Nous allons à:
Nous sélectionnons l'algorithme souhaité, saisissons le mot de passe que nous utiliserons:



Appuyez sur le petit bouton bleu magique:



Le hachage résultant est soigneusement copié, alors nous en avons besoin.

Et maintenant, il est temps pour la dernière étape:

 admin.mongo --port 27117 ace --eval 'db.admin.update({name:"admin"},{$set:{x_shadow:"$6$ee74396ce4c563de$oLm93BwJywYo1sUFgX8U0FC.p75t1Jv838.0defRCe36jgX6PU3h.m3NL6tjCs8Q/1Ymtge0DXz9shb//dyEN."}})' 

Rouleau de tambour ... Appuyez sur Entrée.

 MongoDB shell version: 2.6.12 connecting to: 127.0.0.1:27117/ace WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 

Nous allons à la page d'authentification du contrôleur UniFi, entrez le nom d'utilisateur: admin (nous avons changé le mot de passe pour cela), entrez le mot de passe pour lequel le hachage a été généré.

Et le tour est joué, tout fonctionne, il y a des accès, tout le monde est heureux et danse.

Source: https://habr.com/ru/post/fr439396/


All Articles