Vous savez à présent ce qui a pu se passer. Il faut désormais comprendre le mode de fonctionnement.
Nous sommes donc persuadés que l'attaquant a utilisé un programme malveillant introduit dans l'ordinateur de l'administrateur système. Essayons maintenant de comprendre exactement ce que fait ce binaire.
Pour cette résolution, je vais utiliser Ghidra pour analyser le binaire. Après avoir repéré la fonction main, nous pouvons avoir une idée de ce que fait le binaire.

On observe donc :
- Plusieurs appels de fonctions non identifiées.
- Une copie de données en mémoire avec memcpy.
- Une boucle qui semble faire un XOR entre les données copiées avec memcpy et une clé commençant par @rr37d0euRs.
- Des appels à des fonctions Windows comme GetCurrentProcess, VirtualFree, CloseHandle et WaitForSingleObject.
Commençons par analyser les fonctions non identifiées.
Les deux premières fonctions ne nous intéressent pas, car il s'agit de fonctions de Windows. Nous allons donc analyser FUN_00402fd0 et FUN_00403250.
Pour FUN_00402fd0, après avoir renommé quelques variables, nous pouvons globalement déterminer ce que fait la fonction:
- Elle va chercher le chemin du répertoire actuel avec GetCurrentDirectoryA.
- Elle crée une string avec ce chemin.
- S'il n'y a pas d'erreur, elle ajoute à la string original "\\5ldseed.exe", qui est stockée à l'adresse 0x406112.
- Ensuite, la variable d'environnement %APPDATA% est récupérée avec GetEnvironmentVariableA.
- Une string est créée avec cette variable
- On y ajoute \\Microsoft\\Windows\\Templates\\5ldseed.exe, qui est stockée à l'adresse 0x406128.
- Il y a ensuite une copie du fichier original (donc la première string) vers le nouveau chemin (la deuxième string) avec CopyFileA.
- Les attributs de ce fichier sont ensuite récupérés avec GetFileAttributesA et modifiés avec SetFileAttributesA. On observe que les attributs sont modifiés à file_attribute | 6. En regardant la documentation de SetFileAttributesA, on remarque que le 6 correspond aux attributs HIDDEN et SYSTEM.
- Il y a ensuite un DeleteFileA sur le fichier original.
Pour FUN_00403250:
- Une clé de registre est ouverte avec RegOpenKeyExW. En regardant la documentation, on remarque que la clé ouverte est 0x80000001, qui correspond à HKEY_CURRENT_USER.
#define HKEY_CLASSES_ROOT ( 0x80000000 )
#define HKEY_CURRENT_USER ( 0x80000001 )
#define HKEY_LOCAL_MACHINE ( 0x80000002 )
#define HKEY_USERS ( 0x80000003 )
#define HKEY_PERFORMANCE_DATA ( 0x80000004 )
#define HKEY_CURRENT_CONFIG ( 0x80000005 )
#define HKEY_DYN_DATA ( 0x80000006 )
string va être créée vers le nouveau chemin du fichier copié.RegSetValueExW, en y ajoutant le nouveau chemin du fichier copié.Nous pouvons maintenant revenir à la fonction main et comprendre ce qu'elle fait.
On observe qu'après l'appel des différentes fonctions vues ci-dessus, une charge utile à DAT_00406158 est copié en mémoire avec un memcpy, ainsi qu'une autre chaîne de caractères qui commence par @rr37d0. Une boucle xor est ensuite effectuée entre les deux variables, comme nous pouvons le voir ci-dessous:

Puis différents appels à des fonctions permettant d'exécuter le résultat de ce xor.
On observe donc que le binaire se copie autre part (dans %APPDATA%\\Microsoft\\Windows\\Templates\\5ldseed.exe), modifie ses attributs, supprime le fichier initial, puis ajoute une clé de registre pour se lancer au démarrage de Windows, avant d'exécuter une charge utile. Toutes ces informations nous permettent donc de répondre aux trois premières questions.
Afin de trouver l'IP et le port interrogés par le binaire, nous allons le lancer dans une machine virtuelle, et utiliser Process Monitor pour observer les appels réseau. Nous pouvons ainsi retrouver notre processus et nous arrivons sur cette fenêtre :

Nous pouvons maintenant aller dans l'onglet Event pour observer ce que le processus a essayé de faire.

Nous observons que le processus essaie de se connecter à ec2-52-28-247-255.eu-central-1.compute.amazonaws.com sur le port 11164. Il nous suffit maintenant de résoudre le nom de domaine pour obtenir l'IP.
$ dig ec2-52-28-247-255.eu-central-1.compute.amazonaws.com +short
52.28.247.255
Et nous avons ainsi notre dernier flag.