SOC Prime Bias: Critico

05 Feb 2026 19:59

ShadowHS: Un Framework Fileless di Post-Exploitation Linux Sviluppato su un Hackshell Armato

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
ShadowHS: Un Framework Fileless di Post-Exploitation Linux Sviluppato su un Hackshell Armato
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

ShadowHS è un framework di post-sfruttamento fileless per Linux che esegue una hackshell armata completamente in memoria. Un piccolo loader decifra un payload AES-256-CBC, lo ricostruisce attraverso descrittori di file anonimi, ed esegue senza toccare il disco. Una volta in esecuzione, offre una shell interattiva oltre a moduli per furto di credenziali, movimento laterale, criptomining e esfiltrazione silenziosa. Il design dà priorità alla furtività, al controllo dell’operatore, e alla persistenza durevole attraverso diversi ambiti Linux.

Investigazione

Gli analisti di Cyble hanno scomposto il loader messo in scena, recuperato uno script shell criptato, mappato una catena di decrittazione basata su Perl, e confermato l’esecuzione attraverso i percorsi /proc/*/fd/. Hanno documentato ampi controlli EDR/AV, logica anti-concorrenza, e moduli su richiesta per attacchi a forza bruta su SSH, sfruttamento del kernel, e mining su GPU, con risultati ripetibili nei test. Il rapporto elenca anche endpoint C2 hard-coded e un metodo di esfiltrazione rsync-over-GSocket.

Mitigazione

Monitorare l’esecuzione di ELF da /proc//fd/, catene di decrittazione strane con OpenSSL/Perl, e artefatti di spoofing di argv. Ottenere visibilità su binari eliminati o supportati da memfd, strumenti di dump della memoria, e trasporti rsync non standard. Bloccare i pool di mining noti e limitare i tunnel GSocket per ridurre gli abusi. Avvisare sull’uso sospetto di memfd_create su larga scala.

Risposta

Se rilevato, isolare il host, catturare la memoria per l’investigazione, terminare il framework in memoria e qualsiasi wrapper di mining, e bloccare gli IP/domini C2 di riferimento. Inventariare le credenziali esposte, ruotare chiavi e password, e rafforzare il sistema. Monitorare i tentativi di movimento laterale e le attività di scansione, inclusa l’uso di rustscan e spirit, per delineare la diffusione e prevenire reinfezioni.

Flusso di Attacco

Stiamo ancora aggiornando questa parte. Iscriviti per essere avvisato

Avvisami

Esecuzione di Simulazione

Prerequisito: Il Check Pre-volo di Telemetria e Baseline deve essere passato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati portano a una diagnosi errata.

  • Narrazione & Comandi d’Attacco:
    Un attaccante che ha già ottenuto un punto d’appoggio sull’host Linux compromesso desidera (1) decifrare un blob di dati precedentemente esfiltrato usando OpenSSL senza un sale per evitare il controllo di entropia extra, e (2) enumerare tutti gli eseguibili in esecuzione tramite /proc/*/exe per scoprire processi privilegiati che possono contenere credenziali o per identificare strumenti di sicurezza da disabilitare successivamente. L’attaccante esegue i seguenti comandi in una sessione Bash:

    1. Decrittazione OpenSSL (AES-256-CBC, senza-sale) – riproduce esattamente la stringa che la regola Sigma monitora:

      openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt
    2. Enumerazione proc-exe – cicla su tutte le directory PID numeriche, stampando il target del exe link simbolico:

      for pid in /proc/[0-9]*; do
          readlink "$pid/exe"
      done

    Queste azioni generano due distinti eventi di creazione del processo che soddisfano le condizioni della regola aes and proc_enum .

  • Script di Test di Regressione:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # ==== 1. Decrittazione OpenSSL (AES-256-CBC, senza-sale) ====
    # Crea un file criptato dummy per il test
    echo "SensitiveData123" > /tmp/plain.txt
    openssl enc -aes-256-cbc -nosalt -salt -out /tmp/stolen.enc -pass pass:TestPass < /tmp/plain.txt
    
    # Decripta usando l'esatto pattern di rilevamento
    openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -pass pass:TestPass
    
    # ==== 2. Enumera i symlink /proc/*/exe ====
    for pid in /proc/[0-9]*; do
        readlink "$pid/exe"
    done
    
    echo "Simulazione completata. Controlla gli avvisi nel SIEM."
  • Comandi di Pulizia:

    #!/usr/bin/env bash
    set -euo pipefail
    
    rm -f /tmp/plain.txt /tmp/stolen.enc /tmp/secret.txt
    echo "Pulizia completata."