Onde está a “senha” de criptografia para chaves SSH privadas WS_FTP SSH criptografadas automaticamente?

2

Estou usando o WS_FTP para transferir automaticamente arquivos entre meu sistema e um grande banco sobre FTPS.

Quando eu navego até C:\Documents and Settings\Username\Application Data\Ipswitch\WS_FTP\SSH\ClientKeyStore , vejo a chave privada e pública no formato TXT.

Estou tentando exportar essas chaves brutas e importá-las para um novo cliente FTPS; no entanto, a chave privada é protegida usando uma chave privada que nunca digitei. Para ter certeza, criei uma nova chave SSH e novamente vi que a chave privada também foi criada usando uma chave que eu não digitei.

Só posso supor que a senha de texto exigida para chaves privadas SSH seja gerenciada pelo próprio WS_FTP e, após uma chamada com suporte técnico, eles também não puderam me ajudar.

Onde posso obter a chave privada para chaves SSH WS-FTP?

    
por random65537 16.12.2014 / 00:41

2 respostas

1

A senha parece ser armazenada na mesma pasta que a chave em Store.ini file:

[____Item____0]
____ItemName____=mysite
PublicKey=C:\Users\martin\AppData\Roaming\Ipswitch\WS_FTP\SSH\ClientKeyStore\Pub262F.tmp
Pass=_uYIiwEW/JZFazUCvOd/TWbCmvzSdwu9aCmtFaVCSH51nomzGuvWAEAkti3EvnB+M0mTy6Z9CFma3nqAWO5IH1olwmyLYcJLoCOIUDLgd3/rA3LiiF4PUtT5saieLNBZZKHsJXOkzltW6/n4QhOJx/l345tmz079mEljhaN+2Dao=
PrivateKey=C:\Users\martin\AppData\Roaming\Ipswitch\WS_FTP\SSH\ClientKeyStore\Pri26BD.tmp

Parece uma senha binária codificada na base 64. Embora eu ainda não tenha conseguido decifrar a chave.

Eu decodifiquei a senha binária (usando PHP base64_decode ) e a salvei em um arquivo phrase . Ele tem 128 bytes redondos, que parece ser bom.

Então eu corro:

openssl rsa -in Pri26BD.tmp -out key.decrypted -passin file:phrase

e obtivemos:

unable to load Private Key
139830511232840:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:596:
139830511232840:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:104:
139830511232840:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130:
139830511232840:error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132:

Portanto, esta não é uma resposta final, mas pelo menos um passo adiante. Talvez alguém mais possa construir sobre isso.

A chave de teste (para completar o post):

-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICzzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIKhkn8LKv5EACAggA
MB0GCWCGSAFlAwQBKgQQSOjD82fwWX4q8EHVC7TQKQSCAoAfnMulDagEiw3Sw2kT
gWVVxesbanCeLCbuHLg8IkF7vFM84xfAwv0te60fTLM1PGOzD3mDQK3xFbHNAXMI
6X+cblkpqBu3COqfOEW0Kwt5CX0g1GZwRAe7LrysQcstqw8dSxmdmgK/YcJLvIn6
cNpwPP6XD6Jrlp1Z2yBotCBj13hs6VUZCH9U5N5/XiGeyMxniTaQag+ITjipanYt
tjGGDYKeGZkLrbJjaXuQh4PyfS+PGd03LlMJsuXMFpEIvWvxiRnOKHXJoHYDF8Z0
cWgD/+dZ9prkgAjN6PtEej8RDQFeEcDn6/jr//SbV2zo/m6+peYg99cUkeokpUJX
04fssu0s3ZjNPF9WdaS19FDioH9wqffFvNtWRlLc8tAFALZmSZROz0RGNaTaiO61
uH3KnAtAo1vyQWJR3THX2ebecq603XlH8aWlshi7pONzXTSvdTbT8iP5VCPri7Yp
EqityjbrXT2skH2rCE0vDqXXuKwsxuNROMR6IpkedVyA+AFOTU8gFVOuyZ3uSgZm
9t5tHw5+4wzI5MMuh1BbuwvyxzZG+NlbLdDfehvRjm1kY99OaAL9kp14xm4zVsnz
dORnuNjLwvTCaxHDa/TJQonuiUu8M98VDT7H4dLA1/iTyLxieNlYp7DHP3zGO8Y6
5zZeRHJYkkIMhAqd7WYokCHJljwC9c6D49M9ISZThHgZLR1+DVa5f7g58MlliP3E
q2xgDf9oP7uBPnk5ZiVllkvOzrZ1ucfr4Is/0vp2wZ0AdOW72OsKOsxnorTuT/jb
Mce5i8UoJtRVeUrcnU/KY3yTZEB6mRgh9B6htYAySLvfVdwZd0EnanqN+pnVnN80
Yx9Q
-----END ENCRYPTED PRIVATE KEY-----
    
por 16.12.2014 / 09:14
1

Eu sei que este é um tópico antigo, mas passei muito tempo tentando descobrir isso e não encontrei nenhum guia on-line além desse post. Martin estava no caminho certo, exceto pela codificação base64 na frase secreta. Acontece que a codificação é um pouco mais complexa, mas já existe uma ferramenta para superar isso: link (você também pode usar essa ferramenta para recuperar senhas de sites)

Eu irei percorrer a chave de exemplo que o Martin postou, porque mesmo com o UniDec, demorei um pouco para descobrir a frase secreta.

Do arquivo Store.ini, obtemos:

Pass=_uYIiwEW/JZFazUCvOd/TWbCmvzSdwu9aCmtFaVCSH51nomzGuvWAEAkti3EvnB+M0mTy6Z9CFma3nqAWO5IH1olwmyLYcJLoCOIUDLgd3/rA3LiiF4PUtT5saieLNBZZKHsJXOkzltW6/n4QhOJx/l345tmz079mEljhaN+2Dao=

Use o UniDec com o plugin WSFTP12:

UniDec.exe wsftp12 dec _uYIiwEW/JZFazUCvOd/TWbCmvzSdwu9aCmtFaVCSH51nomzGuvWAEAkti3EvnB+M0mTy6Z9CFma3nqAWO5IH1olwmyLYcJLoCOIUDLgd3/rA3LiiF4PUtT5saieLNBZZKHsJXOkzltW6/n4QhOJx/l345tmz079mEljhaN+2Dao=

Unidec retorna:

tgNEu9GS3zoj5aMqnzzLb7RuYxqyO8kaN0bVlndXXpTTT52DHcKdQIIYWAVN0ZIkPg3BpvTR2EstOGd+NOOf0Q== 0M0JDARAMFqcFpgfm76MAUSpWVurQfKNvKcRCg=

Observe o espaço após == Somente a primeira parte da string retornada é sua frase secreta. Os caracteres restantes são algum tipo de preenchimento que podemos ignorar. Agora temos todas as informações necessárias para descriptografar o arquivo de chave privada do PKCS # 8.

openssl rsa -in Pri26BD.tmp -out decrypted.key
Enter pass phrase for Pri26BD.tmp: tgNEu9GS3zoj5aMqnzzLb7RuYxqyO8kaN0bVlndXXpTTT52DHcKdQIIYWAVN0ZIkPg3BpvTR2EstOGd+NOOf0Q== 
writing RSA key

E aqui está a chave final:

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDTSC7Y6bKJ5mVlJeTkcHF7H13+nRuldBHUgcuDcb6F3aDBIFch
SzkNwpfzWnNFMQu1KNIy2o/V2FepN8C7QnS6FJIYsZ5wwUAyGtmTSfi+xN/jKIiP
55m8fz0kj1Fg2MyRb7IMj474hi7WMem9AJf4HIhOw3QRo+RebN9kf27k4QIDAQAB
AoGBALs5vOHU/bR7qSBf2xyfk8AyRJ3q5OPSHja9KfX55oZDpj9dhDhpq05JQVOR
tJH8604GtXYA/fLW+p9mW3DVbA8XONUHOleG2gRtsrk3gnBsKmp8OjyMC3UPFp21
e0IbrTNeUVkCWkBZVll6EZykPwnV2dE5ue7rV7j8p9tqh+sBAkEA/+DM1ctAvJvL
NFGmqjkZNP7SRXQa/ZrgqIgU+9hU232seDBEGRZba9lA+9sahDybHq1f0NyNnmCE
iuacbiBYsQJBANNh8fSTI5mEy3EJdx7w9dpPfqDJrua5hx398fUpJcXQNuSy6gph
EAPNLNxmi+z/kHlnAS53XnoCYSpYNSTnWzECQQCRFb4PW3gReaT2vXVq/4Uzb2l6
yCKlubO427BKPJeg/NlWLMfwEaU0ubMHG20lnde2xUeW/feu3btJpwj7yIuBAkBT
7Y6o4gb/fFdeYTi3w0qKTIflhU55c25vfRWllpnVyc8RzOvaBSHbsIpAVEL4bZxK
Z5hzf5e2b91ud6laJrXxAkEA48kg0N7RorSZUoE03SWOqMMKteq5nIxMlUZsK4ho
cwUDlut23aBCVU2wMs8ySxr0o9n7Ix1FNVNlQA4k2Xu9Mw==
-----END RSA PRIVATE KEY-----

Espero que isso ajude alguém.

    
por 07.03.2019 / 22:34

Tags