Le Trojan est capable de garantir les fonctionnalités du serveur backconnect-proxy et d’envoyer du spam via un serveur de spam distant.
Lors de son installation, il essaie de créer des copies de lui-même portant les noms сsrss.exe, svchost.exe и rundll32.exe dans le dossier système C:\Windows\System32, malgré le fait que ce répertoire contient déjà un fichier original avec le nom сsrss.exe. Si le Trojan possède suffisamment de privilèges pour effectuer cette action (le fichier exécutable du malware est lancé via le compte administrateur, les privilèges de débogage sont disponibles), l'arrêt du processus сsrss.exe causera immédiatement la chute de l'OS Windows avec l'affichage d’un BSOD (" écran bleu de la mort "). En cas de faille, le Trojan copie les fichiers énumérés dans le dossier %APPDATA% et modifie le registre système Windows :
[<HKCU>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
'Client Server Runtime Process' = '%APPDATA%\csrss.exe'
'Host-process Windows (Rundll32.exe)' = '%APPDATA%\rundll32.exe'
'Service Host Process for Windows' = '%APPDATA%\svchost.exe'
Au prochain démarrage du système, les trois logiciels créés par le Trojan seront lancés automatiquement.
Après son lancement, Trojan.Proxy.27552 vérifie la présence d’une connexion Internet en établissant une connexion aux serveurs smtp.gmail.com:25 et plus.smtp.mail.yahoo.com:25. En cas de problèmes avec la connexion, le Trojan s'arrête. En cas de succès, le Trojan essaie de notifier le serveur de gestion sur ce sujet.
La liste de serveurs de gestion est stockée dans le corps du logiciel malveillant. Le Trojan envoie à chaque adresse, via le port 9631 ou 9630, la valeur DWORD 1000 (0x3e8) et le serveur doit renvoyer la même chose. En cas de réussite, le serveur de gestion renvoie la liste actualisée des adresses IP des serveurs de gestion. La liste commence par la valeur DWORD, qui détermine le nombre de structures, puis les structures elles-mêmes, contenant les adresses IP des serveurs de gestion, le port, l’horodatage et d'autres paramètres selon lesquels le Trojan va ensuite trier les données reçues. Le Trojan compare les listes obtenues et supprime les adresses réseau locales puis il établit une liste finale des serveurs de gestion et enregistre ces données dans le registre système Windows :
[HKCU\SOFTWARE\Microsoft\Software\Microsoft\Shared Police]
MachineParam="...."
Après son lancement sur le PC, le Trojan lance trois threads. Le premier actualise la liste des serveurs de gestion, le deuxième surveille (et si nécessaire restaure) l'état de la branche du registre responsable de l'auto démarrage du Trojan et le troisième garantit les fonctionnalités du serveur backconnect-proxy.
Le Trojan utilise le port 9997 et son protocole binaire basé sur SOCKS4/5 pour communiquer avec le serveur. Il lance de nouveaux threads et essaie de se connecter aux serveurs de gestion, tandis que certains threads ouvrent ou ferment le port. La première commande du serveur de gestion envoie des paramètres pour la connexion keep-alive. Ces paramètres sont transmis sous forme de fonctions :
char __usercall set_keepalive_vals@<al>(int a1@<eax>, SOCKET s)
{
int v2; // ecx@1
int vInBuffer[3]; // [sp+0h] [bp-10h]@1
DWORD cbBytesReturned; // [sp+Ch] [bp-4h]@1
v2 = *(_DWORD *)a1;
vInBuffer[2] = *(_DWORD *)(a1 + 4);
vInBuffer[1] = v2;
vInBuffer[0] = 1;
WSAIoctl(s, SIO_KEEPALIVE_VALS, vInBuffer, 0xCu, 0, 0, &cbBytesReturned, 0, 0);
return 1;
}
Ainsi, les serveurs de gestion forcent les systèmes infectés à conserver la connexion active pendant un délai spécifié. Par exemple, la commande c0 d4 01 00 30 75 00 00 force le système à établir la connexion pendant 2 minutes au minimum en envoyant les paquets TCP chaque 30 secondes.
La principale fonctionnalité du malware est l'accès aux serveurs SMTP pour envoyer du spam publicitaire.