I log del server DNS di Windows vengono memorizzati in tre posizioni nel Visualizzatore eventi, oltre a un file di testo facoltativo:
- Microsoft → Windows → DNS-Server → Audit: cambiamenti di zona e record. Attivo di default sul server Windows attuale.
- Microsoft → Windows → DNS-Server → Analytical: ogni query e risposta. Disattivato di default e nascosto fino a quando non si mostrano i log analitici.
- Server DNS, sotto Registri applicazioni e servizi: eventi a livello di servizio come avvii, arresti ed errori di caricamento della zona.
- The log di debug, un file di testo che si abilita in Gestione DNS, di solito C:WindowsSystem32dnsdns.log.
L’esportazione principale è una linea da un prompt elevato:
wevtutil epl "Microsoft-Windows-DNSServer/Audit" C:logsdns_audit.evtx
Quasi tutto in una rete effettua query DNS, incluso il malware. I log delle query espongono il tunneling DNS, algoritmi di generazione di domini e chiamate a domini noti pericolosi. I log di audit espongono qualcuno che modifica record in modo silenzioso. Prime Core ha {N} regole di rilevamento per i dati DNS, mappate a {M} tecniche MITRE ATT&CK. Tra esse: comando e controllo su DNS (T1071.004) e algoritmi di generazione di domini (T1568.002).
Prima di iniziare
Probabilmente il logging delle query non era attivo. Il canale analitico è disattivato di default. Se stai indagando su qualcosa che è già accaduto, probabilmente non ci sono log delle query dal server. Le tue opzioni sono il lato client (evento Sysmon 22, o il log del client DNS), log del firewall o proxy, o un sensore di rete. Attivarlo ora aiuta da questo momento in poi.
Attiva il logging delle query (per il futuro). Nel Visualizzatore eventi, scegli Visualizza → Mostra registri Analitici e Debug, poi fai clic con il tasto destro Analytical sotto DNS-Server e sceglie Abilita log. Oppure dalla linea di comando:
wevtutil sl "Microsoft-Windows-DNSServer/Analytical" /e:true
Microsoft descrive il sovraccarico come modesto, ma su un resolver molto occupato, fai un test prima di lasciarlo attivo.
Hai bisogno di un prompt elevato, sul server DNS o su un controller di dominio che esegue DNS.
Esporta i log
:: cambiamenti di record e zona
wevtutil epl "Microsoft-Windows-DNSServer/Audit" C:logsdns_audit.evtx
:: eventi a livello di servizio
wevtutil epl "DNS Server" C:logsdns_server.evtx
:: query e risposte (solo se Analytical è stato abilitato)
wevtutil epl "Microsoft-Windows-DNSServer/Analytical" C:logsdns_analytical.evtx
I canali analitici si comportano diversamente dai log normali. Il Visualizzatore eventi potrebbe chiederti di disabilitare il log prima di mostrare gli eventi. Get-WinEvent di PowerShell li legge solo con -Oldest.
Il log di debug è testo semplice, configurato in Gestione DNS → Proprietà del server → Debug Logging. Registra pacchetti in dettaglio e si sovrascrive quando raggiunge il limite di dimensione, sovrascrivendo le voci più vecchie. Copialo così com’è: copia C:WindowsSystem32dnsdns.log C:logs.
Cosa cercare
| Segnale | Cosa può significare |
|---|---|
| Sottodomini molto lunghi e dall’aspetto casuale nelle query | Tunneling DNS, dati contrabbandati nei nomi delle query |
| Un client che genera molte ricerche non riuscite (NXDOMAIN) | Malware che alterna domini generati |
| Un alto volume di query TXT da un host | Tunneling o comando e controllo |
| Eventi di audit per record creati, eliminati o modificati al di fuori delle finestre di modifica | Sostituzione di record, ad es. un nuovo record wpad |
| Una DLL di plugin caricata dal servizio Server DNS | Abuso del gruppo DnsAdmins per eseguire codice come SYSTEM |
Carica e rivedi in LogTotal
LogTotal legge i file EVTX nativamente. Una cosa da sapere prima: LogTotal non sanitizza ancora i file EVTX. I log DNS contengono nomi host interni e IP client. Trattare un caricamento come il passaggio del file grezzo: bene per i server di test; per la produzione, ottenere un sì da chi possiede la gestione dei dati prima.
Se hai bisogno di sanitizzazione oggi, convertilo prima in JSON: evtx_dump -o jsonl dns_audit.evtx > dns_audit.jsonl.
- Carica. Apri logtotal.com e inserisci il file.
- Rivedi.
Quando qualcosa va storto
| Sintomo | Probabile causa | Fix |
|---|---|---|
| Nessun canale Analitico nel Visualizzatore eventi | I log analitici sono nascosti di default | Visualizza → Mostra registri Analitici e Debug |
| Il canale Analitico è vuoto | Non è mai stato abilitato | Abilitalo; nessuna cronologia prima di ciò |
| Errori di Get-WinEvent sul log Analitico | I log analitici richiedono -Oldest | Aggiungi -Oldest |
| Canale di audit mancante | Vecchio server Windows senza l’aggiornamento | Controlla la versione dell’OS; usa il log di debug |
| Il log di debug copre solo un breve periodo | Si è sovrascritto al limite di dimensione | Aumenta il limite o inoltra i log altrove |
FAQ
Log del server o del client?
Il server DNS ti dice quale IP client ha chiesto. Solo il client ti dice quale processo ha chiesto. È per questo che l’evento Sysmon 22 sui endpoint completa così bene i log del server.
Il log di debug è migliore del canale Analitico?
Il log di debug contiene più dettagli sui pacchetti ma costa di più e si sovrascrive. Per la maggior parte delle indagini, il canale Analitico è il miglior default.