Wednesday, April 24, 2024
HomePowershellRecuperando a senha de um arquivo do Distant Desktop Connection Supervisor com...

Recuperando a senha de um arquivo do Distant Desktop Connection Supervisor com Powershell


Olá pessoal,

Há um tempo atrás estava pesquisando como recuperar a senha de um arquivo do Distant Desktop Connection Supervisor para um módulo de powershell que escrevi, o RDCMan. O módulo tem como objetivo automatizar a criação e organização de um arquivo do Distant Desktop Connection Supervisor.

A forma mais pratica que encontrei foi renomear o executavel do RDCMan para .dll e importar ele no powershell para ter acesso as lessons que ele utiliza.

Para importar as lessons, vou utilizar o comando Add-Kind:

Add-Kind -Path 'E:SourcesRDCManbinDebugnetstandard2.0RDCMan.dll'

O arquivo do RDCMan é basicamente um arquivo XML com a extensão .rdg para nosso exemplo vou utilizar o seguinte arquivo:

<?xml model="1.0" encoding="utf-8"?>
<RDCMan programVersion="2.7" schemaVersion="3">
  <file>
    <credentialsProfiles />
    <properties>
      <expanded>True</expanded>
      <title>GuidoRDG</title>
    </properties>
    <server>
      <properties>
        <title>GuidoServer1</title>
      </properties>
      <logonCredentials inherit="None">
        <profileName scope="Native">Customized</profileName>
        <userName>guido</userName>
        <password>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAlwsu8E3r6k2QYMU+bOSQcQAAAAACAAAAAAAQZgAAAAEAACAAAACSup7VrXmiwtzgVjlAYfVEQvdhaoVIFre+X01TGKGJ9wAAAAAOgAAAAAIAACAAAAD6NB0sJvcmdqTvJ2QPOfywXWjRDnyYsoSTqRzoMGAojEAAAAD/0vgcNdQ6PQW+iOar8C83LGBlLedFVeQln2R17u93FMU58pU+ZcAiHpqgTvIYhIRaszYT+e0Xu2HSn2WzclMZQAAAAFjJBiljvZRVIEqd5vmvJke09WMSfxN52AopwOz2vxscAlxUob2kMAoKGmGKTU15iZOUV9iDoPSSPSS+70qO3Eg=</password>
        <area>DESKTOP-9GMDPL6</area>
      </logonCredentials>
    </server>
  </file>
  <linked />
  <favorites />
  <recentlyUsed />
</RDCMan>

Neste XML podemos facilmente identificar a senha dentro do bloco logonCredentials, a senha parece estar em string base64, porém ela está criptografada. Para recuperar ela usando o powershell, é muito simples, precisamos definir um objeto com a classe RDCMan.EncryptionSettings e outro chamando o método DecryptString da classe RDCMan.Encryption.

$EncriptionSettings = [RDCMan.EncryptionSettings]::new()
[RDCMan.Encryption]::DecryptString($XML.RDCMan.file.server.logonCredentials.password, $EncriptionSettings)

O retorno é a senha descriptografada, que no exemplo é: PuxaVidaQueS3nh4MaisS3GuR4!!

Recuperando a senha de um arquivo do Remote Desktop Connection Manager com Powershell

Para navegar pelo XML apenas listei o conteudo do arquivo com Get-Content material e usei o acelerador [xml] para converter a string em objeto. Se voce quiser basta informar a string no primeiro argumento do método, porém acabei preferindo dessa forma.

[xml]$XML = Get-Content material -Path .GuidoRDG.rdg

Esse é um método bem simples, porém dependendo do cenário pode ser muito util.

Dúvidas? Sugestões?

Até a próxima!

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments