Dal codice alla copertura (Parte 2): L’incubo dello spazio bianco
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
L’articolo spiega come i filtri LDAP prodotti dagli strumenti Impacket vengano normalizzati da Active Directory in modi che introducono spaziature incoerenti ID evento 1644 nei log. Questi cambiamenti di formattazione possono interrompere le rilevazioni che si basano sulla corrispondenza esatta delle stringhe, anche quando la logica sottostante del filtro è identica. L’autore mostra perchĂ© la logica di base del “contains” è fragile e guida alla costruzione di rilevazioni Sigma resilienti mediante espressioni regolari che tollerano le differenze negli spazi, nei cambi di maiuscolo/minuscolo e nelle variazioni degli operatori.
Indagine
Per convalidare il problema, l’autore ha esaminato i veri record degli Eventi 1644 dalla produzione e documentato molteplici permutazioni di spazi bianchi dello stesso filtro bitwise LDAP (ad esempio, varianti di userAccountControl&524288 con differenze negli spazi, posizionamento delle parentesi e formattazione). Sono stati provati diversi approcci di rilevazione—partendo da controlli statici delle stringhe e progredendo verso modelli regex sempre piĂą flessibili—fino a che la regola non ha corrisposto in modo affidabile a tutte le rappresentazioni osservate senza superare i limiti.
Mitigazione
Adottare rilevazioni basate su regex che permettono spazi bianchi opzionali, supportano la corrispondenza senza distinzione tra maiuscole e minuscole, e tengono conto di entrambi gli stili di operatori AND/OR. Per mantenere le prestazioni ragionevoli, filtrare preliminarmente sul nome dell’attributo target prima di applicare la logica regex piĂą costosa. Infine, validare continuamente le rilevazioni rispetto a un corpus curato di “wall of shame” che cattura ogni variante di spaziature e formattazioni viste sul campo. operator styles. To keep performance reasonable, pre-filter on the target attribute name before applying the more expensive regex logic. Finally, continuously validate detections against a curated “wall of shame” corpus that captures every whitespace and formatting variant seen in the field.
Risposta
Quando viene attivata una corrispondenza sospetta del filtro LDAP, notificare il SOC per valutare potenziali attivitĂ di enumerazione legate alla scoperta o alla scalata dei privilegi. Correlare l’evento con host/IP di origine, utente richiedente e altri attributi LDAP per determinare intento e portata. Se si verificano falsi positivi, regolare le soglie e le condizioni delle regole mentre si mantiene la copertura per le varianti di formattazione note.
Flusso di Attacco
Stiamo ancora aggiornando questa parte. Iscriviti per ricevere notifiche
NotificaRilevazioni
Possibile Enumerazione tramite Delegazione via userAccountControl (tramite servizio directory)
Visualizza
Possibile Enumerazione Kerberoasting tramite Esclusione Account Disabilitato (tramite servizio directory)
Visualizza
Rilevazione delle Operazioni Bitwise nel Livello di Servizio LDAP con Variazioni di Spazi Bianchi [Registro Eventi di Sicurezza di Microsoft Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo Prevolo di Telemetria e Linee Di Base deve essere stato superato.
Motivo: Questa sezione dettaglia l’esatta esecuzione 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.
-
Narrazione e Comandi di Attacco:
Un avversario con credenziali di dominio a basso privilegio desidera individuare account privilegiati per il movimento laterale. Creano un filtro LDAP che esegue un AND bitwise suuserAccountControlper isolare gli account con il flagAMMINISTRATORE(valore 524288). Per eludere il semplice confronto delle stringhe, aggiungono spazi bianchi e parentesi esattamente come si aspetta la regola Sigma.- Costruire la stringa del filtro LDAP con variazioni di spazi bianchi.
- Eseguire la ricerca LDAP utilizzando
ldapsearch(tramite PowerShell) contro il controller di dominio. - Verificare che il Registro degli Eventi di Sicurezza registri l’Evento 1644 contenente il filtro creato.
-
Script di Test di Regressione:
# -------------------------------------------------------------- # Simula filtro LDAP bitwise che dovrebbe attivare la regola Sigma # -------------------------------------------------------------- # Parametri $DomainController = "dc01.example.com" $BaseDN = "DC=example,DC=com" $Filter = "( userAccountControl & 524288 )" $Attributes = "distinguishedName,samAccountName,userAccountControl" # Esegui query LDAP try { $result = [ADSI]"LDAP://$DomainController/$BaseDN" $searcher = New-Object System.DirectoryServices.DirectorySearcher($result) $searcher.Filter = $Filter $searcher.PropertiesToLoad.AddRange($Attributes.Split(',')) $searcher.PageSize = 1000 $entries = $searcher.FindAll() foreach ($entry in $entries) { $dn = $entry.Properties["distinguishedname"][0] $sam = $entry.Properties["samaccountname"][0] $uac = $entry.Properties["useraccountcontrol"][0] Write-Output "Trovato: $sam ($dn) – UAC=$uac" } } catch { Write-Error "LDAP query failed: $_" } -
Comandi di Pulizia:
# Non sono state apportate modifiche persistenti; solo chiudere la connessione ADSI. Write-Output "Pulizia completata."