[TUTO AVANCE] Comment infecter, modifier les résultats de recherches Google et gagner GROS !

[TUTO AVANCE] Comment infecter, modifier les résultats de recherches Google et gagner GROS !
5 (100%) 10 votes

Aujourd’hui  nous allons découvrir en détail comment des hackers ont pu infecter et modifier les SERPs de leurs victimes afin de gagner des millions avec AdSense. Nous allons nous intéresser à chacun des mécanismes et fichiers qui rend cette opération possible. Même si cet article vous semble complexe, n’hésitez pas à le lire en entier afin de comprendre la démarche général de ce type de malware et vous en prémunir.

Cet article est issu des recherches menées par des chercheurs antimalware chez Bitdefender : Cristina Vatamanu, Răzvan Benchea et Alexandru Maximciuc.

Un groupe de cyber-criminels a infecté 1 million d’ordinateurs dans le monde entier au cours des deux dernières années avec un malware qui détourne les résultats des pages de recherches à l’aide d’un proxy local. Ce sont des chercheurs en sécurité de chez Bitdefender (Roumanie) qui ont révélé la présence de ce botnet, surnommé : Millions-Machine, spécialisé dans les faux clics sur AdSense.

Pour ceux qui l’ignorent, les Botnets sont des réseaux d’ordinateurs infectés par des logiciels malveillants conçus pour prendre le contrôle du système sans que le propriétaire en est connaissance, généralement utilisés pour des attaques de type distributed denial-of-service (DDoS). Le malware en question s’appelle Redirector.Paco et a infecté plus 900 000 machines dans le monde entier depuis sa sortie en 2014 : principalement l’Inde, la Malaisie, Grèce, Italie, Pakistan, Brésil et Algérie.


Fichiers MSI

L’infection commence par une mise à jour des fichiers MSI. Les fichiers d’installation appartiennent généralement à des programmes très connus et utilisés comme « WinRAR 5.2 msi », « WinRAR 5,11 », « YouTube Downloader 1.0.1 », « WinRAR 5.11 Final »,  « Connectify 1.0.1 », « Stardock Start8 1.0.1 », « KMSPico 9.3.3 ».

Dans l’une des versions analysées, trois fichiers supplémentaires ont été ajoutés aux fichiers d’installation : « prefs.js », « reset.txt » et « update.txt ». Comme le montre l’image ci-dessous, le fichier « prefs.js » sera déposé dans %ProgramFiles% tandis que « reset.txt » et « update.txt » seront déposés dans %CommonProgramFiles%.

tables-1De plus, deux tâches planifiées sont également ajoutés pour assurer la persistance sur le système.

tables-2-768x147

Les tâches planifiées, nommées « Adobe Flash Scheduler » et « Adobe Flash Update » vont lancer les fichiers déposés dans le dossier %commonprogramfiles%. La tâche « Adobe Flash Scheduler »  exécute quant à elle le fichier « update.txt » à l’aide de VBScript chaque fois qu’un utilisateur démarre sa session, pendant que « Adobe Flash Update » exécute « reset.txt » de la même manière, mais uniquement les mardis à 18:00.

task-sched-768x115Les scripts

Reset.txt, est composé de neuf lignes de texte, cachées derrière 164 lignes vides au début du document, ces neuf lignes modifient les paramètres Internet de l’utilisateur local.

reset-txt

Tout d’abord, le script désactive le cache du proxy en affectant la valeur « EnableAutoProxyResultCache » = 0 de la clé « HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings ».

Ensuite, il modifie les valeurs des quatre lignes suivantes. L’objectif principal est de faire télécharger et utiliser le fichier de configuration automatique du proxy identifié par l’URL « http://wp [redacted].com.gr/server.pac ».

registryLe contenu du fichier PAC :

serrver.pac_Comme le montre l’image, toute les demandes qui commence par https://www.google ou https://cse.google sont redirigées vers l’IP 93.*. *. 240 sur port 8484. Toutefois, à ce stade, étant donné que les demandes sont faites sur le protocole HTTPS, elles seront accompagnées par un avertissement qui prévient l’utilisateur qu’il y a un problème avec le certificat.

cetrificate-errorC’est là que le fichier “update.txt” entre en jeu.

update.txtUpdate.txt télécharge et installe un certificat Root pour que n’importe quelle connexion qui passe par le serveur spécifié dans le fichier PAC semble privée. Comme indiqué dans l’image ci-dessous, l’icône HTTPS est désormais verte, afin que l’utilisateur ne voit rien de suspect. Toutefois, si vous vérifiez le certificat, on peut observer qu’il a été délivré par DO_NOT_TRUST_FiddlerRoot.

google-certificate-768x532

Fichiers Javascript

Le malware contient également des fichiers JavaScript aux comportement semblables à update.txt et reset.txt. Le script est le suivant :

js.capture-768x275Le script interroge d’abord le text record du serveur de DNS pour remotesettings1.mtmyoq.se. Cela retourne la sortie suivante :

cmd-snipLe text record contient deux URL, coupée en deux par le caractère « | ».

L’une pointant vers le fichier PAC, tandis que la seconde est le certificat qui sera utilisé afin d’éviter l’émission d’alertes lorsqu’une connexion HTTPS est utilisée pour la navigation. L’URL qui sera stockée dans le Registre est « http://localhost.[redacted]/localhost.local ».

D’autres variantes des mêmes scripts ont été repérés dans la nature. Par exemple, une variante de ce script a été faite pour ressembler à un fichier PDF. Ceci a été réalisé à l’aide de marqueurs spécifiques aux fichiers PDF ainsi que des parties sous forme de commentaires, utilisées pour le JavaScript.

pac-file

Une autre variante du JS a été faite pour ressembler à un fichier ini. Dans le premier cas, le JavaScript entier a été écrit comme une ligne unique et a été ajouté à une ligne située au milieu du fichier original. De plus, une grande quantité d’espaces vides ont été insérés entre la ligne d’origine et le code JS afin de le cacher (au cas où une personne aurait vérifié ce fichier avec un éditeur de texte sans activer la fonction “word wrap”).

js.capture-2

Dans une autre version, le même JavaScript a été divisé et les morceaux ont été insérés aléatoirement dans un fichier de configuration. À moins que quelqu’un affiche ce fichier avec un éditeur ayant une coloration syntaxique, il est très difficile de repérer le code malveillant.

js.capture-3-768x296

Cette composante du programme modifie les résultats de recherche localement et non pas par l’utilisation d’un serveur externe, comme les précédents. Pour ce faire, les logiciels malveillants effectue une attaque man-in-the-middle :

  1. tente de contacter un serveur toutes les 5 secondes pour recevoir les URLs de redirection,
  1. modifie les paramètres du Registre pour rediriger certaines demandes vers le système local,
  1. démarrage d’un serveur sur le système local pour recevoir les requêtes redirigées et les modifier,
  1. vérifie les mises à jour.

Un morceau du code décrivant les étapes :

net-code

Afin de communiquer avec le serveur, le logiciel malveillant a intégré une DGA simple. Une liste de domaines est générée en fonction des fix seed. Les TLDs pour ces domaines sont « se ». De plus, un numéro est ajouté au début de la chaîne :i l représente un compteur, en commençant par la valeur 1 et est incrémenté jusqu’à ce qu’une condition soit satisfaite.

domains

Comme on peut l’observer, le premier domaine généré, 1.m[redacted]q.se est celui qui que se trouve dans le fichier JavaScript.

Ces fichiers binaires vont parcourir la liste des domaines générés et vont effectuer une opération de nslookup pour récupérer l’enregistrement txt de chaque domaine.

Exemple : nslookup-type = txt 1.m[redacted]q.se

Contrairement aux fichiers JavaScript, les réponses sont cryptés à l’aide d’algorithmes base64 et rijndael. Le programme d’installation pour l’algorithme rijndael est :

rijndaelManaged.Padding = PaddingMode.PKCS7 ;

rijndaelManaged.Mode = CipherMode.CBC ;

rijndaelManaged.KeySize = 256 ;

rijndaelManaged.BlockSize = 256 ;

rijndaelManaged.Key = uTF8Encoding.GetBytes("anjueolkdiwpoida") ;

rijndaelManaged.IV= uTF8Encoding.GetBytes("45287112549354892144548565456541") ;

Après avoir appliqué l’algorithme de déchiffrement, le code xml suivant apparait :

xml

La balise <PacFile> contient la fonctionnalité du « server.pac ». Dans ce cas, toutes les recherches effectuées sur les trois plus populaires moteurs de recherche (Google, Bing et Yahoo) vont être redirigés vers le système local sur le port 8080, où un serveur de man-in-the-middle écoute.

pacfile

Une fois que le fichier PAC (Proxy Auto-Configuration) est récupéré, les paramètres Internet de l’utilisateur sont ajustées afin que le navigateur interroge le fichier PAC. Ces étapes sont semblables à celles effectuées par le fichier JavaScript, mais le fichier PAC ne sera pas récupéré depuis un serveur externe, mais à partir d’un serveur HTTP à l’écoute du port 9090 sur le système local.

pacfile-2-768x296

Une fois que le navigateur est configuré, le logiciel malveillant démarre le service man-in-the-middle, ainsi que le serveur HTTP qui fournira le fichier PAC au navigateur. Pour le proxy main-in-the-middle, le malware s’appuie sur FiddlerCore, une bibliothèque de classes .NET qui permet la saisie et la modification du trafic HTTP et HTTPS. Le service de Fiddler est configuré pour être exécuter sur le port 8080, pour ignorer les erreurs de certificat, ainsi que de modifier les en-têtes HTTP, la réponse HTTP et le corps.

La redirection peut être effectuée soit en renvoyant le code de 302 réponse, soit en remplaçant le mot clé « / Rechercher » avec « / cse ? cx = ».

pacfile-3-768x265

Aussi, pour pallier les erreurs de certificat, un nouveau certificat racine est ajouté à l’aide de la classe CertMaker de la bibliothèque de FiddlerCore. Pour terminer, une vérification des mises à jour est effectuée. Depuis les réglages initial du fichier XML, l’URL mise à jour est récupérée (http://search [hidden].org/update.php) et un fichier exécutable est téléchargé dans le dossier %Temp% (si la version actuelle est différente de celle dans le fichier XML).

En espérant que cet article vous donne conscience de certaines possibilités & vous sensibilise sur ce type de pratique. N’hésitez pas à me dire en commentaire ce que vous en pensez, et quelle utilisation vous auriez fait de ce botnet si vous étiez aux commandes 😉

Commentaires

  1. Photo du profil de
    joe
    Ca dépasse de très loin la limite de ce que je peut comprendre mais çà a l’air très puissant

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *