Пароль декодирования Azure CloudService для пользователя RDP

Я потерял пароль к RDP в Azure. Но у меня есть файл cscfg и сертификат, которые шифруют пароль. Как я могу получить пароли из файла cscfg?


person Alexey Gusarov    schedule 30.10.2013    source источник


Ответы (2)


Благодарю вас! Это было серьезным спасением для меня! Вот версия, которую я подправил для простого вызова командной строки (и добавил загрузку System.Security):

$error.clear()
function DecodePassword([string] $encodedPassword)
{
    [System.Reflection.Assembly]::LoadWithPartialName("System.Security") | out-null;
    $encodedMessage = [Convert]::FromBase64String($encodedPassword);
    $cms = New-Object System.Security.Cryptography.Pkcs.EnvelopedCms;
    $cms.Decode($encodedMessage);

    $store = $null;
    try
    {
        $store = New-Object System.Security.Cryptography.X509Certificates.X509Store('My', 'CurrentUser');
        $cms.Decrypt($store.Certificates);
    }

    finally
    {
        $store.Close();
    }

    return [Text.Encoding]::UTF8.GetString($cms.ContentInfo.Content);
}

$password = DecodePassword($args[0]);
Write-Host Decoded password: """$password""";

Который можно просто вызвать как:

>powershell -f DecodeRemotePassword.ps1 "PASTE_ENCODED_PASSWORD_HERE"

(Пожалуйста, НЕ голосуйте за, так как это просто корректировка отличного ответа Алексея)

person user1901702    schedule 28.03.2014

person    schedule
comment
Используйте это в powershell. Также измените строку 4, добавив System в пространство имен. $cms = новый объект System.Security.Cryptography.Pkcs.EnvelopedCms; - person MichaelLake; 16.02.2014