Seperti halnya administrator sistem yang yakin akan kesempurnaan ingatannya sendiri dan kemampuan untuk mengingat kode instalasi Windows XP 25-digit di tengah malam, ia baru-baru ini menangkap pengecualian semacam itu.
Suatu hari, memutuskan untuk mampir untuk memeriksa ada apa dengan pengontrol UniFi saya, saya menerima pesan yang luar biasa: Kesalahan masuk.

Setelah menggaruk kepalanya dan mengingat bagaimana suatu saat dia lupa kode pin dari kartu, yang dia ketik murni secara mekanis, dia mulai memilah-milah pilihan yang mungkin. Setelah setengah jam mencoba, mencari catatan di buku catatan, meninjau sklerotik yang menempel pada monitor, saya menyadari bahwa saya harus mencari solusi.
Segera buat reservasi untuk mereka yang suka mengkritik - pengelola akun / kata sandi, ala LastPass, digunakan. Faktanya, adalah LastPass yang digunakan. Dan data dari sana tidak berkontribusi untuk otentikasi yang berhasil.
Setelah mencari di forum-forum borjuis, informasi yang diperlukan untuk mengatur ulang kata sandi dari setiap akun di controller diterima, dipahami, dicerna dan dikumpulkan dalam memo singkat.
Jadi, diberikan:
1. Pengontrol UniFi (tidak memainkan peran OS - Linux atau Windows) dengan akses ke OS itu sendiri.
2. Akses internet.
3. Lengan lurus.
Pengontrol UniFi menyimpan seluruh konfigurasi dalam database Mongo.
Periksa apakah ada informasi yang kami butuhkan untuk akun yang Anda cari:
mongo --port 27117 ace --eval 'db.admin.find().forEach(printjson);'
Dalam kasus khusus ini, kami meminta informasi untuk akun
admin .
Jika kami mencari
akuntansi VasyaPupkin
, kueri akan terlihat seperti ini:
mongo --port 27117 ace --eval 'db.VasyaPupkin.find().forEach(printjson);'
Knalpotnya kira-kira sebagai berikut:
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" }
Bidang yang menarik bagi kami:
x_shadow" : "$6$0YiSt9dQ$YrNKedOCjOP2xl3y9FhRasafdhbdfadamBKIjZ4l9Mm4cy/m49dt0bN.sYaFvgVb5vce45KypFe07iNYc1"
Setelah
analisis google
, kami menemukan bahwa algoritma enkripsi
SHA-512 crypt (3) kompatibel.
Ups Kami menunda gagasan mendekripsi ke rak jauh dan pergi ke arah lain.
Kami memiliki akses ke database, jadi kami hanya perlu hash dari kata sandi yang kami tahu. Dan untuk memperbarui catatan dalam database adalah sesuatu yang sederhana.
Kami pergi ke:
Kami memilih algoritma yang diinginkan, masukkan kata sandi yang akan kami gunakan:

Tekan tombol biru ajaib kecil:

Hash yang dihasilkan disalin dengan hati-hati, maka kita membutuhkannya.
Dan sekarang saatnya untuk langkah terakhir:
admin.mongo --port 27117 ace --eval 'db.admin.update({name:"admin"},{$set:{x_shadow:"$6$ee74396ce4c563de$oLm93BwJywYo1sUFgX8U0FC.p75t1Jv838.0defRCe36jgX6PU3h.m3NL6tjCs8Q/1Ymtge0DXz9shb//dyEN."}})'
Drum roll ... Tekan Enter.
MongoDB shell version: 2.6.12 connecting to: 127.0.0.1:27117/ace WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Kami pergi ke halaman otentikasi pengendali UniFi, masukkan nama pengguna:
admin (kami mengubah kata sandi untuk itu), masukkan kata sandi yang hash dihasilkan.
Dan voila, semuanya berfungsi, ada akses, semua orang senang dan menari.