Wazuh – RDP brute-force attack
Come già visto per l’ attacco SSH di tipo brute-force, vediamo come evidenziare un attacco di tipo RDP su un server Windows su cui è aperto/installato il servizio Terminal Server.
Per installare l’agent sulla macchina MS Windows, apriamo la dashboard di Wazuh su Kibana, andiamo nella sezione “Agents”, clicchiamo su “Add new agent”, scegliamo com SO Windows e indichiamo l’indirizzo IP del server Wazuh. Una volta inseriti questi dati, ci verrà indicata una stringa simile alla seguente che dovremo inserire in una sessione power-shell, con diritti amministrativi, della macchina Windows su cui vogliamo installare l’agent:
Invoke-WebRequest -Uri https://packages.wazuh.com/3.x/windows/wazuh-agent-3.12.3-1.msi -OutFile wazuh-agent.msi; ./wazuh-agent.msi /q WAZUH_MANAGER='192.168.xxx.xxx' WAZUH_REGISTRATION_SERVER='192.168.xxx.xxx'
L’agent verrà installato sulla macchina Windows e verrà automaticamente registrato sul server Wazuh.
Per simulare l’ attacco, tramite hydra effettuiamo una serie di tentativi di accesso verso la sessione RDP della macchina Windows 2019 su cui abbiamo installato l’agent di Wazuh e che ha l’RDP aperto.
Creiamo un file delle password (passwd-2019) con dentro delle password “a caso” e richiamiamo hydra, utilizzando l’utente fittizio “test-user” con password prese dal file passwd-2019:
# hydra -t 10 -V -f -l test-user -P passwd-2019 rdp://win2019
Dalla dashboard di Wazuh, visualizzo la scheda dei “Security Events” filtrando per “agent.name Win2019“; il risultato che ottengo è il seguente:
Possiamo vedere come negli alert summary sono presenti i seguenti eventi:
- Rule ID: 60122 – Logon Failure – Unknown user or bad password – Level 5 – Count 48
- Rule ID: 60204 – Multiple Windows Logon Failures Level 10 – Count 6
Possiamo analizzare anche l’evento direttamente dalla dashboard “Discover” di Kibana:
- Selezioniamo come indice “wazuh-alerts-3.x-*”
- Nella colonna di sinistra (Available fields”) aggiungiamo:
- rule.description
- rule.id
- data.win.eventdata.targetUserName
- data.win.eventdata.ipAddress
La finestra che otteniamo è simile alla seguente:
Da questa finestra riusciamo a vedere l’orario di attacco, le regole che hanno generato gli alert, l’utente utilizzato per effettuare l’attacco e l’indirizzo IP di provenienza.
In linea teorica, avremmo a disposizione tutti i dati per reagire (stroncandolo sul nascere) al tentativo di intrusione proveniente dall’esterno.