Gli Attaccanti Sfruttano il Software di Gestione delle Telecamere per l’Accesso Iniziale
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Gli aggressori stanno compromettendo il software di gestione delle telecamere per ottenere l’accesso iniziale agli ambienti aziendali. Dopo aver stabilito l’accesso, distribuiscono una shell inversa e utilizzano il caricamento laterale delle DLL attraverso binari Windows legittimi per mantenere la persistenza e stabilire il beaconing di comando e controllo. Questo approccio consente al codice dannoso di essere eseguito insieme ai processi di sistema fidati e aiuta gli aggressori a evitare il rilevamento.
Indagine
Gli analisti di Huntress hanno identificato una campagna in cui CMS.exe è servito come punto di ingresso iniziale. L’indagine ha scoperto l’implementazione di rs.win32.exe in directory scrivibili dall’utente, seguita dall’abuso di WpcMon.exe per caricare lateralmente DLL zlib modificate. L’analisi della rete ha anche confermato l’attività di beaconing che comunica con un indirizzo IP esterno specifico.
Mitigazione
Le organizzazioni dovrebbero inventariare le piattaforme di gestione delle telecamere, limitare l’accesso ad esse e trattare questi sistemi come parte della superficie critica di attacco. Implementare il controllo delle applicazioni per impedire l’avvio di eseguibili e DLL da posizioni scrivibili dall’utente come AppData è fortemente raccomandato. I difensori dovrebbero anche monitorare catene di processi insolite che coinvolgono binari Windows legittimi.
Risposta
Quando questa attività viene rilevata, i team di sicurezza dovrebbero isolare gli endpoint coinvolti per prevenire ulteriori movimenti laterali o comunicazioni C2. Esaminare gli alberi dei processi per le istanze di CMS.exe or rs.win32.exe esecuzione WpcMon.exe da directory non standard. Condurre una caccia estesa a livello ambientale per le DLL malevoli identificate e l’indirizzo IP C2 associato.
Flusso d’attacco
Rilevamenti
Punti Possibili di Persistenza [ASEPs – Software/NTUSER Hive] (via registry_event)
Possibile Caricamento Laterale della Libreria Iphlpapi (via image_load)
IOC (HashSha256) per rilevare: Chi sorveglia i sorveglianti?
IOC (SourceIP) per rilevare: Chi sorveglia i sorveglianti?
IOC (DestinationIP) per rilevare: Chi sorveglia i sorveglianti?
Beaconing del Server di Comando-e-Controllo (C2) Esterno [Connessione di Rete Windows]
Accesso Iniziale al Software di Gestione delle Telecamere Compromesso e Caricamento Laterale delle DLL [Creazione di Processo Windows]
Esecuzione della Simulazione
-
Narrativa dell’Attacco & Comandi: L’avversario ha raggiunto con successo l’accesso iniziale tramite un allegato di phishing. Per stabilire persistenza e comando-e-controllo, intendono utilizzare una tecnica “Living off the Land” (LotL). Utilizzeranno
rundll32.exeper eseguire una richiesta di rete verso il noto server C2144.172.116.37. Questo viene fatto per mimetizzarsi con i processi di sistema Windows legittimi, rendendo più difficile per i rilevamenti basati solo sul nome del processo identificare l’attività malevola. L’obiettivo è attivare la regola del firewall generando una connessione all’IP in blacklist. -
Script di Test di Regressione:
# Script di simulazione per attivare la regola di rilevazione IP C2 # Usiamo rundll32 per avviare una connessione all'IP di destinazione # Nota: Questo può produrre un errore nella console poiché l'IP non è un punto di ingresso DLL valido, # ma il tentativo di connessione di rete sarà registrato dal SO/Firewall. $C2_IP = "144.172.116.37" Write-Host "Simulazione della connessione C2 a $C2_IP tramite rundll32.exe..." Start-Process "rundll32.exe" -ArgumentList "javascript:alert('C2_SIM');$C2_IP" -WindowStyle Hidden # Metodo alternativo usando PowerShell per garantire il tentativo di connessione Write-Host "Tentativo di connessione TCP a $C2_IP sulla porta 443..." $tcpClient = New-Object System.Net.Sockets.TcpClient try { $tcpClient.Connect($C2_IP, 443) } catch { Write-Host "Connessione fallita come previsto (IP probabilmente irraggiungibile), ma la telemetria dovrebbe essere generata." } finally { $tcpClient.Close() } -
Comandi di Pulizia:
# Nessun artefatto persistente è creato da questa specifica simulazione Write-Host "Pulizia della simulazione completa. Nessun file o chiave di registro modificata."