Decrypt easySCP DB password

Decrypt easySCP DB password

Ihr kennt vielleicht den Moment, ihr werde angesprochen oder habt selbst das Problem, dass man sein “root” Passwort vom MySQL Server verliert und entwendet – Passiert natürlich nie ;), oder aber ihr migriert von einer anderen Version easySCP.

Wie dem auch sei, wenn ihr nun das Passwort nicht mehr haben solltet und aber trotzdem haben möchtet, dann gibt es hier einen kleinen aber sehr effizienten Trick das verschlüsselte Passwort von easySCP wieder zu entschlüsseln. Dafür benötigt ihr eigentlich nur euren “Key” und eure “IV” welche in der “config_DB.php” stehen, sowie das base64 verschlüsselte Passwort welches man haben möchte. Diese drei Werte müssen danach in dieses Code-Snippet eingefügt werden. Die stellen habe ich euch markiert.

function decrypt_db_password($db_pass) {
  if ($db_pass == '') {
    return '';
  }
  if (extension_loaded('mcrypt')) {

    $text = @base64_decode($db_pass . "\\n");
    $td = @mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_CBC, '');
    $key = "<strong>KEY</strong>";
    $iv = "<strong>IV</strong>";

    // Initialize encryption
    @mcrypt_generic_init($td, $key, $iv);
    // Decrypt encrypted string
    $decrypted = @mdecrypt_generic($td, $text);
    @mcrypt_module_close($td);

    // Show string
    return trim($decrypted);

  } else {
    throw new EasySCP_Exception(
    "Error: PHP extension 'mcrypt' not loaded!"
    );
  }
}

echo decrypt_db_password('<strong>base64 PW</strong>');

Diese Datei muss (über den Browser erreichbar) für die Zeit der Abfrage in den Webroot gelegt werden. Ausführen im Browser und schon hat man das Passwort in Klartext vor sich. Die Datei sollte danach wieder gelöscht werden, da nun auch andere über die Datei das Passwort auslesen können.

Was hier gemacht wird ist eigentlich relativ simpel, in der Funktion wird auf die selben Entschlüsselungsalgorythmen zugegriffen, welche auch easySCP nutzt. Hier sind es base64_decode sowie Teile von mcrypt, einer php basierten Verschlüsselung.

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2022 Sascha Lewandowksi