RDP पासवर्ड को .rdg फ़ाइल में संग्रहीत डिक्रिप्ट करें


12

क्या एक .rdg ( दूरस्थ डेस्कटॉप कनेक्शन प्रबंधक ) फ़ाइल में संग्रहीत पासवर्ड को डिक्रिप्ट करने का एक तरीका है , जिससे आपको यह पता चलता है कि इसे बनाने वाले उपयोगकर्ता का उपयोगकर्ता नाम और पासवर्ड क्या है?

मुझे पता है कि पासवर्ड उस उपयोगकर्ता के आधार पर एन्क्रिप्ट किया गया है जिसने इसे बनाया था। उपयोगकर्ता एक डोमेन उपयोगकर्ता है, और मैं घर पर .rdg फ़ाइल (डोमेन अनुपलब्ध) का उपयोग करने का प्रयास कर रहा हूं। क्या मैं डोमेन उपयोगकर्ता होने के नाते "अनुकरण" कर सकता हूं, क्योंकि मुझे उपयोगकर्ता नाम + पासवर्ड पता है? याद रखें, डोमेन तक नेटवर्क पहुंच अनुपलब्ध है। मूल मशीन तक भौतिक पहुँच भी अनुपलब्ध है।

मैंने इस तरीके को आजमाया है , लेकिन (बिना किसी परेशानी के) मुझे मिल गया

"एक्सक्लूसिव कॉलिंग डिक्रिप्स्ट्रिंग टू तर्क (s): XXXX क्रेडेंशियल का उपयोग कर डिक्रिप्ट करने में विफल"

(XXX मेरा वर्तमान गृह प्रवेश है।)

जवाबों:


15

यहाँ एक Powershell स्क्रिप्ट है जो काम करेगी ...

एन्क्रिप्टेड पासवर्ड प्राप्त करने के लिए नोटपैड के साथ आरडीजी फ़ाइल खोलें। मैंने पाया कि RDG में मेरे द्वारा सेव किए गए 'प्रोफाइल' और साथ ही प्रति सर्वर सेव किए गए पासवर्ड भी थे।

अब उसी कंप्यूटर और विंडोज़ खाते का उपयोग करें, जिसने पासवर्ड देखने के लिए निम्न पॉवरशेल कमांड चलाने के लिए RDG फ़ाइल बनाई है। डिक्रिप्ट करने के लिए आपको उसी खाते का उपयोग करना होगा।

> $PwdString = 'EnCryptEdStringFRoMRDGfile=='
> Copy-Item 'C:\Program Files (x86)\Microsoft\Remote Desktop Connection Manager\RDCMan.exe' 'C:\temp\RDCMan.dll'
> Import-Module 'C:\temp\RDCMan.dll'
> $EncryptionSettings = New-Object -TypeName RdcMan.EncryptionSettings
> [RdcMan.Encryption]::DecryptString($PwdString, $EncryptionSettings)

स्रोत: https://blog.prudhomme.wtf/use-powershell-to-decrypt-password-stored-in-a-rdg-file/ थॉमस PRUD'HOMME द्वारा


3
बाहरी लिंक टूट या अनुपलब्ध हो सकते हैं, जिस स्थिति में आपका उत्तर उपयोगी नहीं होगा। कृपया अपने उत्तर के भीतर आवश्यक जानकारी शामिल करें और एट्रिब्यूशन और आगे पढ़ने के लिए लिंक का उपयोग करें। धन्यवाद।
fixer1234

1
मुझे पसंद है कि आप उसी लिंक को कैसे पोस्ट करते हैं जो मैंने अपने मूल प्रश्न में पोस्ट किया था, यह कहते हुए कि यह काम नहीं करता है (क्योंकि डोमेन तक नेटवर्क पहुंच नहीं है)
pkExec

@pkExec इस विधि ने मेरे लिए काम किया। मैं अनुमान लगा रहा हूं कि डोमेन समस्या को हल करने का एक और तरीका है। (आपको संभवतः डोमेन उपयोगकर्ता खाते तक पहुंच की आवश्यकता होती है जो पासवर्ड को एन्क्रिप्ट करता है, और इसका मतलब हो सकता है कि आपको डोमेन को फिर से कनेक्ट करने की आवश्यकता हो।)
jpaugh

2

एक शॉट में RDG फ़ाइल में सभी पासवर्ड को डिक्रिप्ट करने के लिए निम्न पॉवर्सशेल स्क्रिप्ट का उपयोग करें। https://github.com/nettitude/PoshC2/blob/master/resources/modules/Decrypt-RDCMan.ps1

यदि लिंक यहां विफल रहता है तो संदर्भ के लिए सामग्री:

function Decrypt-RDCMan ($FilePath) {
<#
.SYNOPSIS

This script should be able to decrpt all passwords stored in the RDCMan config file

Function: Decrypt-RDCMan
Author:Ben Turner @benpturner, Rich Hicks @scriptmonkey_

.EXAMPLE

Decrypt-RDCMan -FilePath
#>
    if (!$FilePath) {
        [xml]$config = Get-Content "$env:LOCALAPPDATA\microsoft\remote desktop connection manager\rdcman.settings"
        $Xml = Select-Xml -Xml $config -XPath "//FilesToOpen/*"
        $Xml | select-object -ExpandProperty "Node"| % {Write-Output "Decrypting file: " $_.InnerText; Decrypt-RDCMan $_.InnerText}
    } else {
    [xml]$Types = Get-Content $FilePath

    $Xml = Select-Xml -Xml $Types -XPath "//logonCredentials"

    # depending on the RDCMan version we may need to change the XML search 
    $Xml | select-object -ExpandProperty "Node" | % { $pass = Decrypt-DPAPI $_.Password; $_.Domain + "\" + $_.Username + " - " + $Pass + " - " + "Hash:" + $_.Password + "`n" } 

    # depending on the RDCMan version, we may have to use search through the #text field in the XML structure 
    $Xml | select-object -ExpandProperty "Node" | % { $pass = Decrypt-DPAPI $_.Password."#text"; $_.Domain + "\" + $_.Username + "`n" + $Pass + " - Hash: " + $_.Password."#text" + "`n"}
    }
}

function Decrypt-DPAPI ($EncryptedString) {
    # load the Security Assembly into the PS runspace
    Add-Type -assembly System.Security
    $encoding= [System.Text.Encoding]::ASCII
    $uencoding = [System.Text.Encoding]::UNICODE

    # try and decrypt the password with the CurrentUser Scope
    try {
        $encryptedBytes = [System.Convert]::FromBase64String($encryptedstring)
        $bytes1 = [System.Security.Cryptography.ProtectedData]::Unprotect($encryptedBytes, $null, [System.Security.Cryptography.DataProtectionScope]::CurrentUser)
        [System.Text.Encoding]::Convert([System.Text.Encoding]::UNICODE, $encoding, $bytes1) | % { $myStr1 += [char]$_}
        echo $myStr1
    } 
    catch {
        # try and decrypt the password with the LocalMachine Scope only if the CurrentUser fails
        try {
            $encryptedBytes = [System.Convert]::FromBase64String($encryptedstring)
            $bytes1 = [System.Security.Cryptography.ProtectedData]::Unprotect($encryptedBytes, $null, [System.Security.Cryptography.DataProtectionScope]::LocalMachine)
            [System.Text.Encoding]::Convert([System.Text.Encoding]::UNICODE, $encoding, $bytes1) | % { $myStr1 += [char]$_}
            echo $myStr1
        }
        catch {
            echo "Could not decrypt password"
        }
    }
}

Powershell ISE में स्क्रिप्ट निष्पादित करें, जो फ़ंक्शन को पंजीकृत करना चाहिए। फिर सरल रन:

डिक्रिप्ट-RDCMan -FilePath MyRDGfile.rdg


उपरोक्त लिंक टूट गया है। यहाँ एक समान कार्यक्रम प्रतीत होता है
जी-मैन का कहना है कि 'मोनिका'

0

पुराने संस्करणों के लिए Nirsoft Remote Desktop PassView या RDG फ़ाइलों के नए संस्करणों के लिए Nirsoft Network Password Recovery को मदद करनी चाहिए।

Windows के 64 बिट संस्करणों पर x64 संस्करण का उपयोग करें।


3
आप शायद आरडीपी फ़ाइलों को आरडीजी के साथ भ्रमित कर रहे हैं। वे भिन्न हैं।
pkExec
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.