SOC Prime Bias: Medio

04 Jul 2026 07:02 UTC

ADWS e il Percorso Nascosto per l’Enumerazione di Active Directory

Author Photo
SOC Prime Team linkedin icon Segui
ADWS e il Percorso Nascosto per l’Enumerazione di Active Directory
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sintesi

L’articolo descrive un metodo furtivo per l’enumerazione di Active Directory attraverso il protocollo Active Directory Web Services (ADWS) sulla porta TCP 9389. Affidandosi ad ADWS invece del tradizionale LDAP sulle porte 389 o 636, gli aggressori possono eludere molte rilevazioni di rete comuni e avvisi EDR. Questo approccio sfrutta protocolli amministrativi legittimi e strumenti per mascherare l’attività di ricognizione.

Indagine

L’indagine esamina i livelli tecnici dietro ADWS, inclusi .NET Message Framing, NegotiateStream, e la codifica SOAP binaria NBFSE. Spiega come questi componenti migliorano la sicurezza operativa oscurando il traffico di rete e rendendo più difficile identificare la fonte delle query. L’autore introduce anche uno strumento proof-of-concept chiamato ADWSHound per dimostrare e validare la tecnica.

Mitigazione

Le mitigazioni raccomandate includono il monitoraggio del traffico sulla porta TCP 9389, l’abilitazione del logging diagnostico dei servizi di directory con l’evento 1644 e l’applicazione dell’auditing degli accessi tramite SACL sugli oggetti di directory sensibili. Le organizzazioni dovrebbero considerare anche il dispiegamento di oggetti canary per rilevare l’enumerazione non autorizzata. Correlare gli eventi dei servizi di directory tramite ID operazione può ulteriormente aiutare a ricostruire attività di enumerazione sospette.

Risposta

Se viene rilevato questo comportamento, i rispondenti devono indagare sull’origine della connessione alla porta 9389 e identificare qualsiasi processo che manca di una ragione legittima per comunicare tramite ADWS. L’account utilizzato per le query di directory dovrebbe poi essere correlato con sessioni attive attraverso l’ambiente per localizzare il sistema compromesso. L’evento 4662 dovrebbe essere anche rivisto per segni di accesso non autorizzato agli oggetti protetti.

Flusso di Attacco

Esecuzione di simulazione

Prerequisito: Il controllo preliminare di Telemetria e Baseline deve essere superato.

Motivo: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (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 porteranno a diagnosi errate.

  • Narrazione di Attacco & Comandi: Un avversario ha ottenuto l’accesso iniziale a una postazione di lavoro e sta tentando di enumerare gli utenti di dominio per facilitare un movimento laterale. Per evitare il rilevamento da parte di strumenti basati su firme basilari, l’attaccante decide di utilizzare il modulo Active Directory ufficiale di Microsoft PowerShell. Esegue Get-ADUser per estrarre un elenco di tutti gli utenti nel dominio. Questa azione costringe i servizi Active Directory Web Services (ADWS) a processare la query LDAP, che, grazie al logging diagnostico abilitato, genera un evento di Windows 1644 contenente la stringa “Get-ADUser”, attivando così la nostra regola di rilevamento.

  • Script di Test di Regressione:

     # Assicurarsi che il modulo Active Directory sia disponibile
      if (!(Get-Module -ListAvailable ActiveDirectory)) {
          Write-Error "Questo script richiede il modulo RSAT Active Directory."
          return
      }
    
      Write-Host "[+] Avvio simulazione: Enumerazione LDAP via Get-ADUser" -ForegroundColor Cyan
    
      # Attiva il rilevamento eseguendo una query su un singolo utente utilizzando il modello Get-AD*
      # Si prevede che questo generi l'Evento ID 1644 nel log dei servizi di directory
      try {
          Get-ADUser -Filter * -ResultSetSize 1 | Out-Null
          Write-Host "[+] Comando di simulazione eseguito con successo." -ForegroundColor Green
          Write-Host "[+] Controllare i registri dei servizi di directory per l'Evento ID 1644 contenente 'Get-AD*'" -ForegroundColor Yellow
      }
      catch {
          Write-Host "[-] Errore nell'esecuzione del comando: $($_.Exception.Message)" -ForegroundColor Red
      }
  • Comandi di pulizia:

     # Non sono state apportate modifiche permanenti al database AD.
      # Se i livelli diagnostici del registro sono stati aumentati manualmente, ripristinarli:
      # Set-ItemProperty -Path "HKLM:SystemCurrentControlSetServicesNTDSDiagnostics" -Name "16 LDAP Interface Contained" -Value 0
      Write-Host "[+] Pulizia completata. Nessuna modifica di stato da ripristinare." -ForegroundColor Cyan