SHA1:
- a5054babc853ec280f70a06cb090e05259ca1aa7 (x64, UPX)
- 98e057a4755e89fbfda043eaca1ab072674a3154 (x64,unpacked)
- 810806c3967e03f2fa2b9223d24ee0e3d42209d3 (x64, FreeBSD)
- 12df5d886d43236582b57d036f84f078c15a14b0 (x86, UPX)
- 5bd6b41aa29bd5ea1424a31dadd7c1cfb3e09616 (x86, unpacked)
Le Trojan.Encoder ciblant Linux est écrit en C et se compose d'une bibliothèque PolarSSL.
Après son lancement avec les droits administrateur, le Trojan télécharge dans la mémoire de son processus les fichiers avec les demandes des malfaiteurs :
- ./readme.crypto — fichier avec les demandes ;
- ./index.crypto — fichiers avec les demandes en html.
Le chemin vers le fichier, contenant la clé publique RSA, est transmis au Trojan en tant qu’argument.
Après avoir lu le contenu des fichiers, le Trojan les supprime et se lance en tant que démon et supprime son propre fichier d'origine.
Au premier tour, Linux.Encoder.1 crypte tous les fichiers dans les répertoires suivants :
/home
/root
/var/lib/mysql
/var/www
/etc/nginx
/etc/apache2
/var/log
Puis il crypte tous les fichiers dans les répertoires utilisateurs. Ensuite le Trojan analyse tout le système de fichiers d'une manière récursive : il commence par le répertoire dans lequel il a été lancé, puis par le répertoire racine «/». Le Trojan crypte uniquement les répertoires dont les noms commencent par les lignes suivantes :
public_html
www
webapp
backup
.git
.svn
Il faut noter que le malware crypte les fichiers avec les extensions suivantes :
".php", ".html", ".tar", ".gz", ".sql", ".js", ".css", ".txt" ".pdf", ".tgz", ".war", ".jar", ".java", ".class", ".ruby", ".rar" ".zip", ".db", ".7z", ".doc", ".pdf", ".xls", ".properties", ".xml" ".jpg", ".jpeg", ".png", ".gif", ".mov", ".avi", ".wmv", ".mp3" ".mp4", ".wma", ".aac", ".wav", ".pem", ".pub", ".docx", ".apk" ".exe", ".dll", ".tpl", ".psd", ".asp", ".phtml", ".aspx", ".csv"
Le Trojan ne touche pas les fichiers dans les répertoires suivants :
/
/root/.ssh
/usr/bin
/bin
/etc/ssh
La clé AES unique est générée pour chaque fichier crypté. Le chiffrement est effectué en AES-CBC 128, les fichiers cryptés reçoivent l'extension .encrypted. Dans chaque répertoire contenant des fichiers cryptés, le Trojan place le fichier README_FOR_DECRYPT.txt avec la demande de rançon pour le décryptage.
Lors du lancement du décryptage, Linux.Encoder.1 utilise une clé privée RSA pour obtenir des clés AES depuis les fichiers cryptés, analyse les répertoires dans le même ordre que lors du cryptage, supprime les fichiers README_FOR_DECRYPT.txt et essaie de décrypter tous les fichiers avec l'extension .encrypted.
Les spécialistes de Doctor Web travaillent actuellement sur la technologie qui permettra de décrypter les données touchées par ce logiciel malveillant.