Compromissione Portatile: TA4922 si Equipaggia con PackClient
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
TA4922, un attore di minacce di lingua cinese, sta utilizzando un nuovo framework modulare C2 chiamato PackClient. Il malware è pubblicizzato su Telegram e supporta il furto di dati, la sorveglianza e l’accesso remoto. Campagne recenti hanno preso di mira organizzazioni in Cina e India attraverso esche di phishing a tema fiscale.
Indagine
I ricercatori di Proofpoint hanno identificato PackClient attraverso l’osservabilità del malware all’interno dell’ambiente Deception Pro. L’indagine ha tracciato diverse catene di infezione, includendo il sideloading di DLL e la consegna tramite immagini disco IMG. L’analisi ha rivelato un flusso di esecuzione multi-fase che coinvolge un downloader, un componente di avvio e il modulo core RAT di PackClient finale.
Mitigazione
Le organizzazioni dovrebbero monitorare alla ricerca di linee di comando rundll32.exe sospette e insolita persistenza attraverso la chiave di registro RunOnce . Dovrebbero essere applicati controlli rigorosi ai download eseguibili da domini non fidati, mentre il dispiegamento non autorizzato di software RMM dovrebbe essere monitorato da vicino. L’ispezione del traffico di rete per protocolli TCP personalizzati su porte non standard come la 6666 può anche migliorare il rilevamento.
Risposta
Se viene rilevata attività di PackClient, l’host interessato dovrebbe essere isolato immediatamente per fermare ulteriori comunicazioni C2 e il furto di dati. Gli addetti alla risposta dovrebbero eseguire forense della memoria per identificare il modulo PackClientCore iniettato e cercare il processo associato. Le chiavi di registro sotto HKCUSOFTWAREPackClientConsole e i log di sistema dovrebbero essere esaminati anche per l’attività non autorizzata di ManageEngine RMM.
Flusso di attacco
Stiamo ancora aggiornando questa parte.
Rilevamenti
Possibili punti di persistenza [ASEPs – Software/NTUSER Hive] (tramite registry_event)
Esecuzione di processi di sistema da percorsi non tipici (tramite process_creation)
Esecuzione di path sospetti di Rundll32 Dll (tramite process_creation)
IOC (HashSha256) per rilevare: Carry-On Compromise: TA4922 utilizza PackClient
IOC (SourceIP) per rilevare: Carry-On Compromise: TA4922 utilizza PackClient
IOC (DestinationIP) per rilevare: Carry-On Compromise: TA4922 utilizza PackClient
Rilevamento del download del modulo Loader di PackClient [Firewall]
Rileva comunicazioni C2 di PackClient [Connessione di rete Windows]
Rilevamento dell’infezione di PackClient utilizzando comandi di esecuzione distinti [Creazione di processi Windows]
Esecuzione di simulazione
Presupposto: Il controllo pre-volo di Telemetria & 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 narrativa DEVONO riflettere direttamente i TTP identificati e mirano a generare esattamente la telemetria prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
Narrativa di attacco & Comandi: L’avversario ha distribuito con successo il RAT PackClient su una workstation Windows compromessa. Per stabilire il comando e controllo, il malware tenta di contattare la sua infrastruttura C2 hardcoded. L’obiettivo dell’attaccante è ricevere istruzioni per l’esfiltrazione di dati e ulteriori movimenti laterali. Simuleremo questo iniziando una connessione socket a uno degli IP malevoli (206.238.196.96) sulla porta specifica (6666) definita nella regola di rilevamento per verificare che il SIEM generi un avviso.
-
Script di Test di Regressione:
# Simulazione del tentativo di comunicazione C2 di PackClient $C2_IP = "206.238.196.96" $C2_PORT = 6666 Write-Host "Tentativo di simulare la connessione C2 di PackClient a $C2_IP sulla porta $C2_PORT..." try { $tcpClient = New-Object System.Net.Sockets.TcpClient $connection = $tcpClient.BeginConnect($C2_IP, $C2_PORT, $null, $null) $wait = $connection.AsyncWaitHandle.WaitOne(5000, $false) if (-not $wait) { Write-Host "Connessione scaduta (prevista se IP non è raggiungibile, ma dovrebbe comunque essere generata telemetria)." -ForegroundColor Yellow } else { Write-Host "Connessione riuscita (inaspettata per la simulazione)." -ForegroundColor Red } $tcpClient.Close() } catch { Write-Host "Connessione fallita come previsto: $($_.Exception.Message)" -ForegroundColor Green } -
Comandi di pulizia:
# Nessun artefatto persistente è creato da questa simulazione solo di rete. Write-Host "Pulizia della simulazione completata. Nessun file o chiave di registro è stata modificata."