TUCoPS :: HP Unsorted P :: b1a-1176.htm

PuTTY private key passphrase stealing attack
PuTTY private key passphrase stealing attack
PuTTY private key passphrase stealing attack



This is a multi-part message in MIME format.
--------------080601020203080308060707
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit

PuTTY, a SSH client for Windows, requests the passphrase to the ssh key 
in the console window used for the connection. This could allow a 
malicious server to gain access to a user's passphrase by spoofing that 
prompt.

We assume that the user is using key-bases ssh auth with ssh and 
connects using PuTTY. PuTTY now asks for the passphrase to the key. The 
user enters the passphrase. If the passphrase is wrong, PuTTY will now 
request the passphrase again after stating that it was wrong. If the 
passphrase is correct, the connection to the server is established.

A malicious/manipulated server could then display "Wrong passphrase" and 
ask for the passphrase again. If the user enters it again, it is sent to 
the malicious server.

As far as I can see, there are only two ways how the user might detect it:

1. The real "Wrong passphrase" message is displayed without delay. After 
entering the correct passphrase, a small delay occurs.

2. The prompt contains the name of the key as stored on the client. 
Often the same name is used in the authorized_keys file on the server, 
giving it to the attacker. Maybe it is also possible for the server to 
remotely read the screen contents or duplicate it using some xterm 
control sequences, so users should not rely on it.

(See also the attached screenshot, where you can see that there is no 
visible difference.)

I assume that there are more similar issues like this one using 
different authentication modes etc.

This can be exploited using a modified .bashrc file. This means that 
once an attacker has gained access to a user account on the server, he 
can try this to gain the passphrase to the key.

Impact:
Low.
As a malicious server is required, the attack probability is not very 
high. Without the keyfile, the passphrase is worthless to the attacker 
unless it is used in multiple places. However, key-based auth is 
supposed to be secure even with untrusted/malicious servers.

Developer notification:
The possibility of such spoofing attacks is known:
http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/gui-auth.html 

Workaround:
Load the key into the Pageant agent before esablishing the connection

Other software affected:
Probably many console-based SSH tools have similar issues.

--------------080601020203080308060707
Content-Type: image/png;
 name="screenshot-explained.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="screenshot-explained.png"

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
9o8jld36+sROwGbK9+XBScHtUN27O7sI5vfk+UDVr5RCj+J0iw5NohgmN7Vh/GM284S67fH8
pgxHHLc+P2pwHlnmLhJxpDKvD91tuSk/N99pF4GTiqO6d1cJMpjf04poNqW0YrpdOzFJaZGa
eUJrRWojjtufH5WJRBpFKvN6QaQn0f5dA04qjqST6h87KcnN78kiGj7W+iik260/JDO6DOYf
5Yhfh5knlLe7yOHYSU2Tsr35UePmLkcuh+8KyYr7rSlM+sa/g8CVV/he3QBOKo6kk+rAXboV
sxG8wTyiM20mxXQDtQdfXvpmp4v49Tn0qnvRjuloKpRj5z9tb37UWKQr23Fl9i9EKrv9Nvl5
VF164Xt1AzipOKrvSXelPLSYaTZPaN38p7c3P2q/gJOKo/qedCdqZi5tOE9o3fyntzY/at+A
k4rjME4KjgecVBwHcFJwVOCk4oCTSgNOKg44qTTgpOKAk0oDTioOOKk04KTigJNKA04qDjip
NOCk4oCTSgNOKg44qTTgpOKAk0oDTioOOKk04KTigJNKA04qDjipNOCk4oCTSgNOKg44qTTg
pOKAk0oDTioOOKk04KTigJNKA04qDjipNOCk4oCTSgNOKg44qTTgpOKAk0oDTioOOKk04KTi
gJNKA04qDjipNOCk4oCTSgNOKg44qTTgpOKAk0oDTioOOKk04KTigJNKA04qDjipNOCk4oCT
SgNOKg44qTTgpOKAk0oDTioOOKk04KTigJNKA04qjgM66Wq5vGihmO2ZXR7lsB0BTiqObZx0
rX/8s+WykQhO3z3P1tMs27w4zxWSXz0A6+VyOd1+r8R5zXYo66jAScWxi5M2cyrKtaKc1/lf
/3VKpA/vtZK+Osn0xSFJYr/Uec16JlI4qTjSTqpaq9RcVb50qRuu3kG1SMlh1jpls1y+9pHL
r1YvZ8un97In58ObpRGp2vXptzj/9edXS+VavP/p1WtXlP30aqkd0Jdr4HRXvj2eS8+GN09D
2RVEpb7BhVIg7X8ZlBdjz4vzue81+yt9fu57cXldBU4qjqSTDn+ofo+zC+uIJ5R3FopUi4Gc
ktbWFz6/+pVfZKupEul6ap10Rr9tzk/N39Pf3HPr1CzWJVqH43SHSc+dz/rC52eR0mGp3OFN
1L5W5z5TScNvq2NPs6ST8nlxPj4O7avPz34vLq+rwEnFkXRSMpQlOQepwxhHuUiVX1I2l58V
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
4KTiaO6kqTjR06vLFQmYl+C4wEnFkXbSpnGip1fT1YtzvwTHBU4qjqSTNo4THb55TtOTuiU4
LnBScSSdFHGiPQVOKo6kkyJOtKfAScWRvidFnGg/gZOKI927izjRfgInFUfaSUE/gZOKo/lz
UtAP4KTigJNKA04qDjipNOCk4oCTSgNOKg44qTTgpOKAk0oDTioOOKk04KTiaOykiCftCXBS
cTR3UsST9gM4qTjSTop40n4CJxVH0kkRT9pT4KTiSDop4kl7CpxUHEknRTxpT4GTiiN9T4p4
0n4CJxVHuncX8aT9BE4qjrSTgn4CJxVH8+ekoB/AScUBJ5UGnFQccFJpwEnFASeVBpxUHHBS
acBJxQEnlQacVBxw0npmvQrAg5OKo7GTJuNJabDDd7o/Ail9/nWs9x68Mby5qM/UFnBScTR3
0lQ8KfnMuo0f4cPDhtCkzr8OGsS83nOE1W0Oo4STiiPtpE3jSbkxyPk3y8uZyqD2ulxRSpTu
9ju9Wr54nV7lYMrTow0Dxxre6LGIF7ydnHBtsufK2ahClhTHSsfRp6Lyv/aRW7rtfP68f5zf
fd/hTfj1WNy1x1mSmP35uuPQF/vlLYoUTiqOpJM2jielH6VadfnVr1gpc6rzKhcqpFuGb57T
yxyC8iInpcH8lMbbeYB/VE62ISH85l42/LYJCmBn5yVv5/Pn/aP8/jwjkQ5vTCh7zXFcdJD7
PuY49D1vtbkLJxVH0km3iiedXbj8VklGtcqAC+kWHQo3C8uLm7tqPTyeF2m+H0dH66iNPPCf
AgPocLzk7fH+UX5/ngVUzmn9cR7e21yoP5b/PuY4+t/TjxpXyN7AScWRdNKt4kmVIDm/F9Fs
SmnFdLt2kkXlxSJVOVRSrUgpdE5tJMdy953s9LS02+P94/z+PCNYb3XHefL+4yefv3N8kcJJ
xZG+J20YT6p/tPTL5PxORMPH+nddSLdbldEOb8LyyHZzTnb9+mXmt5PrXpU5qWkqU3mnV1OT
nxTHS7u9INI4vzvPqLm75oi9muOsXl6u/jgNvo8/Tjsdaw2Bk4oj3bvbMJ5UZ6O7NptfL8z2
2YnLkEs3UPvy5aVvdlJCvrVpJMvbbUdToZzrV6YnR53gi1dqwyY4bVra7Xz+bv84v/u+kUjZ
N+uOc/ruublgmfN1x6Hv+Z1bvCmFk4oj7aS3QfUwgVXlVua65k0uddvrsSLtyRtj4KTiaP6c
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--------------080601020203080308060707--

TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2024 AOH