Sicurezza in Windows – Enumeration

La raccolta di informazioni di un sistema come account utente e condivisioni di rete è chiamata enumeration.
I servizi di Windows che generalmente vengono utilizzati per raccogliere queste informazioni sono
TCP 53         DNS zone transfer
TCP 135     Microsoft RPC Endpoint Mapper
UDP 137     NetBIOS Name Service (NBNS)
TCP 139     NetBIOS session service (SMB over NetBIOS)
TCP 445     SMB over TCP (Direct Host)
UDP 161     Simple Network Management Protocol (SNMP)
TCP/UDP 389     Lightweight Directory Access Protocol (LDAP)
TCP/UDP 3268     Global Catalog Service
TCP 3389     Terminal Services
Quando è possibile, questi servizi devono quindi essere disabilitati o per limitare i rischi è almeno necessario l’utilizzo di un firewall.

Netbios Name Service Enumeration
Tra i servizi indicati c’è NetBios Name Service che utilizza la porta 137 e che viene utilizzato per ottenere informazioni con diversi strumenti.
Utilizzando questo servizio è possibile ottenere l’elenco dei domini disponibili in una rete tramite il comando
net view /domain
Una volta ottenuto l’elenco dei domini è possibili ottenere l’elenco dei computer presenti nel dominio con il comando
net view /domain:<Nome Dominio>


Un altro strumento utilizzabile ottenere informazioni tramite il servizio NetBios Name Service è nbtstat che permette di ottenere l’elenco dei nomi NetBIOS da un sistema remoto con il seguente comando
nbtstat -A <Indirizzo>

Il risultato del comando è simile al seguente
Tabella dei nomi NetBIOS del computer remoto

Nome               Tipo         Stato
———————————————
SERVER1        <00>  UNICO       Registrato
SERVER1        <20>  UNICO       Registrato
DOMINIO        <00>  GRUPPO      Registrato
DOMINIO        <1C>  GRUPPO      Registrato
DOMINIO        <1B>  UNICO       Registrato
DOMINIO        <1E>  GRUPPO      Registrato
DOMINIO        <1D>  UNICO       Registrato
..__MSBROWSE__.<01>  GRUPPO      Registrato

Indirizzo MAC  = 00-00-F8-03-6F-0F

Il comando mostra il nome del server, il dominio o il workgroup di appartenenza e il MAC address.
Il campo Tipo identifica il servizio e i valori per questo campo sono i seguenti

Nome                Numero(h)  Tipo  Utilizzo
<nomecomputer>         00       U    Servizio Workstation
<nomecomputer>         01       U    Servizio Messenger
<\\–__MSBROWSE__>     01       G    Browser principale
<nomecomputer>         03       U    Servizio Messenger
<nomecomputer>         06       U    Servizio Server RAS
<nomecomputer>         1F       U    Servizio NetDDE
<nomecomputer>         20       U    Servizio File server
<nomecomputer>         21       U    Servizio Client RAS
<nomecomputer>         22       U    Microsoft Exchange Interchange (MSMail Connector)
<nomecomputer>         23       U    Microsoft Exchange Store
<nomecomputer>         24       U    Microsoft Exchange Directory
<nomecomputer>         30       U    Servizio Server di condivisione modem
<nomecomputer>         31       U    Servizio Client di condivisione modem
<nomecomputer>         43       U    Controllo remoto client SMS
<nomecomputer>         44       U    Strumento di controllo remoto amministratori SMS
<nomecomputer>         45       U    Conversazione remota client SMS
<nomecomputer>         46       U    Trasferimento remoto client SMS
<nomecomputer>         4C       U    Servizio TCPIP DEC Pathworks in Windows NT
<nomecomputer>         42       U    Antivirus McAfee
<nomecomputer>         52       U    Servizio TCPIP DEC Pathworks in  Windows NT
<nomecomputer>         87       U    Microsoft Exchange MTA
<nomecomputer>         6A       U    Microsoft Exchange IMC
<nomecomputer>         BE       U    Agente di Network Monitor
<nomecomputer>         BF       U    Applicazione di Network Monitor
<nome utente>          03       U    Servizio Messenger
<dominio>              00       G    Nome dominio
<dominio>              1B       U    Browser principale di dominio
<dominio>              1C       G    Controller di dominio
<dominio>              1D       U    Browser principale
<dominio>              1E       G    Elezioni servizio browser
<Servizi~INet>         1C       G    IIS
<nome computer~IS>     00       U    IIS
<nomecomputer>         [2B]     U    Servizio Server Lotus Notes
IRISMULTICAST          [2F]     G    Lotus Notes
IRISNAMESERVER         [33]     G    Lotus Notes

Il campo tipo può avere i seguenti valori
U (Unique) – Il nome può avere un solo indirizzo Ip assegnato.
G (Group) – Indica un nome unico che può avere più indirizzi Ip assegnati.
M (Multihomed) – Indica un nome unico che può esistere su più interfacce dello stesso computer.

Il limite di nbtstat è che può essere eseguito solo su un indirizzo alla volta per cui al suo posto è possibile utilizzare nbtscan che permette di effettuare la stessa operazione su una rete intera eseguendolo con la seguente sintassi
nbtscan 192.168.1.0/24

Il servizio Netbios Name Service permette anche di individuare i domain controller di un dominio tramite il tool nltest che è incluso nei Support Tools.
nltest /dclist:<Nome Dominio>

Da questa analisi è evidente come questo servizio permetta di accedere a numerose informazioni per cui è essenziale bloccare l’accesso alla porta 137 tramite un firewall.
Inoltre i servizi Alerter e Messenger dovrebbero essere disabilitati sui computer in modo da non mostrare le informazioni relative agli utenti.

RPC Enumeration
Il servizio RPC Endpoint Mapper che usa la porta 135 è molto spesso utilizzato per ottenere informazioni sui sistemi.
Per interrogare il servizio è possibile utilizzare epdump che mostra gli indirizzi ip e le porte a cui sono collegati i servizi.
epdump <Nome Server>

Il risultato del comando è simile al seguente

nding is ‘ncacn_ip_tcp:209.160.72.65’

int 3c4728c5-f0ab-448b-bda1-6ce01eb0a6d5 v1.0
binding ncalrpc:[dhcpcsvc]
annot ‘DHCP Client LRPC Endpoint’

int 82ad4280-036b-11cf-972c-00aa006887b0 v2.0
binding ncalrpc:[OLE2EE22EF230E94510B3D3C8F725BF] annot ”

int specifica l’interfaccia RPC.
binding specifica l’indirizzo ip e la porta utilizzata dall’endpoint.
annot indica il nome con dell’endpoint.

Un altro tool per ottenere informazioni dal servizio RPC Endpoint Mapper è rpcdump.

SMB Enumeration
Il servizio File and Print Sharing e in particolare il componente Server Message Block (SMB) è utilizzato spesso per ottenere informazioni su un sistema.

Null Session
Il protocollo SMB include API che permettono di ottenere diverse infomazioni attraverso le porte 139 e 445 anche a utenti non autenticati.
Per ottenere queste informazioni bisogna creare una connessione non autenticata al server Windows utilizzando il seguente comando
net use \\192.168.1.1\IPC$ “” /u:””
Con questo comando viene effettuata la connessione alla share nascosta interprocess comunication (IPC) utilizzando l’utente anonimo con una password vuota.
Se la connessione avviene con successo è possibile utilizzare altre tecniche per recuperare numerose informazioni dal server remoto.
A partire da Windows XP le null session sono bloccate di default quando si installa il sistema in modo da diminuire i rischi di sicurezza.
Una volta che è stata stabilita la null session è possibile utilizzare diverse tecniche per ottenere informazioni dal sistema
-Con il comando net view \\<Nome Computer> possiamo ottenere l’elenco delle condivisioni.
-Con il comando nltest /server:<Nome Computer> /domain_trust possiamo ottenere l’elenco delle trust del dominio in cui si trova il computer.
-Eseguendo i comandi local administrators \\<Nome Server> e global domain admins <Nome Server> verso un domain controller possiamo ottenere l’elenco membri dei gruppi amministrativi.

Oltre che i comandi precedenti è anche possibile utilizzare altri tool per ottenere informazioni una volta che è stata creata una null session come dumpsec e enum.

Da questa analisi è evidente la necessità di ridurre i rischi per cui è possibile
-Bloccare l’accesso alle porte tcp 139 e 445.
-Disabilitare i servizi SMB.
Per fare questo è necessario abilitare l’opzione Disable NetBIOS over TCP/IP nelle proprietà di rete per bloccare l’accesso alla porta tcp 139 e disabilitare File And Printer Sharing nelle proprietà di rete per bloccare l’accesso alla porta tcp 445.
-Impostare i settaggi relativi a Network Access nella Security Policy.
Nel caso non sia possibile disabilitare i servizi SMB è possibile utilizzare la chiave di registro HKLM\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous.
I valori che possono essere impostati sono i seguenti
0 – L’accesso dipende dai permessi di default.
1 – Non permette di ottenere l’elenco degli account.
2 – Non viene permesso l’accesso a meno che non sia consentito in modo esplicito.
-In Windows XP e successivi è possibile utilizzare le group policy per implementare i settaggi relativi all’acesso ai servizi SMB.
I settaggi si trovano in Configurazione computerImpostazioni di WindowsImpostazioni protezioneCriteri localiOpzioni di protezione.
Accesso di rete consenti conversione anonima SID nome – Deve essere impostato a Disattivato per bloccare l’utilizzo di tool come user2sid.
Accesso di rete non consentire l’enumerazione anonima degli account SAM – Deve essere impostato a Attivato per bloccare i tool che funzionano anche se RestrictAnonymos è impostato a 1
Accesso di rete non consentire l’enumerazione anonima di account e condivisioni SAM – Deve essere impostato a Attivato per bloccare i tool che funzionano anche se RestrictAnonymos è impostato a 1
Accesso di rete named pipe a cui è possibile accedere in modo anonimo – Dipende al ruolo del computer.
Accesso di rete condivisioni alle quali è possibile accedere in modo anonimo – Dipende al ruolo del computer. La configurazione più sicura è lasciare vuota l’impostazione.
Accesso di rete percorsi del Registro di sistema ai quali è possibile accedere in modo remoto – Dipende al ruolo del computer. La configurazione più sicura è lasciare vuota l’impostazione.

Windows DNS Enumeration
Il servizio DNS permette di individuare numerose informazioni relative a una rete.

Windows 2000 DNS Zone Transfers
Utilizzando il tool nslookup incluso in windows è possibile effettuare il trasferimento di una zona con il comando ls -d <Nome Dominio>.
Se l’operazione ha successo chi la effettua può identificare i domain controller e i servizi attivi in una rete.
Per evitare questo è quindi necessario configurare il server DNS per impedire il transferimento di zona a tutti i server utilizzando lo snap in di aministrazione del servizio DNS.
Di default in Windows 2000 infatti il trasferimento della zona è consentito verso tutti i server.
In Windows Server 2003 l’impostazione di default non consente invece il trasferimento della zona.

SNMP Enumeration
In Windows 2000 è precedenti l’installazione di SNMP di default utilizza public come READ community string permettendo di ottenere numerose informazioni sul sistema utilizzando tool come Snmputil e Solarwinds.

Se non è possibile rimuovere il servizio SNMP è necessario configurarlo utilizzando community name diversi da quello di default.
Per fare questo è necessario eseguire le seguenti operazioni
-Aprire lo snap in dei servizi.
-Selezionare Proprietà del servizio SNMP.
-Cliccare sulla scheda Protezione.
-Modificare l’impostazione Accepted Community Names cambiando il community name di default e l’impostazione Accepted SNMP Packets From These Hosts specificando gli indirizzi IP del computer utilizzato per la gestione di SNMP.