SkypeACLKeyGen.exe analysis for hacking team
Donc...
qu'analysons-nous aujourd'hui ? Eh bien aujourd'hui nous analysons un logiciel de hacking team. Il s'agit de Skype ? pourquoi faisons-nous cela ? je ne sais pas, je trouve cela intéressant.
Bref, on commence par inspecter le comportement à l'exécution. Comme vous pouvez le voir, il faut un nom d'utilisateur et un chemin de plugin et ça sort une ACL ? alors, qu'est-ce que c'est que ça ? En inspectant ceci https://airbus-seclab.github.io/skype/vskype-part2.pdf , on apprend que - « Skype implémente un système de type ACL pour autoriser ou non des plugins à s'attacher à une instance en cours. Une ”signature” de plugin est ajoutée au fichier de configuration en fonction de la réponse de l'utilisateur à une boîte de dialogue d'avertissement » - . Bon, et qu'y a-t-il dans le dossier de ce logiciel ?
Donc euh ok... ça ne nous dit toujours rien. Bon, on voit un shellcode de stage 1 avec office qui traîne dans ce dossier, ce qui peut indiquer un exploit office (pas encore confirmé), fakeport qui est une app C#, tracer.exe et d'autres trucs. Cool, mon intuition est que le plugin qui sera réellement enregistré est tracer.exe. Pourquoi ? Eh bien, d'après le même pdf - « Le moteur vocal de Skype peut générer des fichiers de trace chiffrés si Logging et Logging2 sont définis. Le chiffrement est beaucoup plus simple, un XOR de base avec une clé de 31 octets » - . Alors donnons une analyse du vrai générateur de l'ACL, et ensuite passons à tracer, et peut-être dans un autre article au shellcode ;)
On commence avec ceci
Puis on passe à ceci

Et enfin on enchaîne sur ceux-ci
De là, on enchaîne sur ceci




Cool, un autre comportement dynamique de type easter egg est celui-ci : quand vous saisissez l'utilisateur et le plugin à exécuter, vous obtenez .png)
Bref, on va plus loin et on analyse



Donc, d'un point de vue global, il calcule le sha2 du contenu du fichier et il mappe aussi son contenu en mémoire. Malheureusement pour moi, dynamiquement, cela a échoué et donc il n'a rien fait :/ que pouvons-nous faire ? On avance. On va dans probably_do_hash_based_function_function_recovery.


Malheureusement, c'est le même cas que précédemment : on échoue à le mapper en mémoire et on sort de la fonction. Néanmoins, on calcule seulement le md5 et on fait probablement une récupération de fonction basée sur une comparaison de md5.
Ensuite on continue et on fait des malloc et memset
.png)
Ensuite on convertit le nom de fichier en majuscules

Même chose pour le nom d'utilisateur

Cool et ensuite on fait ceci :
En gros, on crée notre propre ACL pour nous permettre d'exécuter notre plugin. Dans ce cas, je suppose maintenant que ce sera Tracer.exe qui, théoriquement, journalisera les fichiers de trace générés par le moteur vocal de Skype.



Résultat de sortie de la fonction des images ci-dessus

Résultat de sortie de la fonction des images ci-dessus
C'est à peu près tout pour le moment. Plus tard aujourd'hui, je reviendrai et je mettrai à jour ceci. Pour l'instant, ce qui reste, c'est d'analyser cette moitié de fonction seulement
Aussi, plus tard quand je serai de retour, on plongera dans la fonction some_decode juste pour le fun et de là on ira dans le binaire tracer.exe. Bon hacking à tous et à bientôt.