서버 접속정보를 정리하지 않은 상태에서 남아 있는 정보라고는 remmina의 암호화하여 저장된 비밀번호만 있는 경우 이를 복고화하여 비밀번호를 알아낼 수 있다.
방법은 일단 아래 스크립트를 파일로 저장한다.
#!/usr/bin/python
from Crypto.Cipher import DES3
import base64
secret = base64.decodestring('remmina.pref 파일안의 secret 문자열')
key = secret[:24]
iv = secret[24:]
# Encoded Encrypted password
EEpwd = '***.remmina 파일의 password 문자열'
# Decoded Encrypted password
DEpwd = base64.decodestring(EEpwd)
# Decoded Decrypted password
DDpwd = DES3.new(key, DES3.MODE_CBC, iv).decrypt(DEpwd)
print "Decoded (Decrypted ( PWD ) ) : ",DDpwd
생성된 파일을 chmod a+x 명령을 이용하여 실행가능한 상태로 설정하고, 실행하면 비밀번호가 복호화되어 나온다.
그럼 위의 파일에서 찾아야하는 remmina.pref 파일과 각 서버에 대한 접속정보를 가지고 있는 ***.remmina 파일이 있는 위치는 홈디렉토리의 ./remmina 디렉토리 안에 들어 있다.
구조상으로 보면 상당히 간단한 것으로 보인다. Triple-DES 암호화 방식을 사용하였고, 거기에 사용되는 KEY, IV값은 remmina.pref 파일에 저장된 secret이 해당 역할을 하며, 암호화된 문자열을 복호화하고 있다.
끝.