tags: snmp snmpwalk enumerazione


Può succedere che questo servizio che viene utilizzato per monitorare tutti i dispositivi connessi alla rete che richiedono l’attenzione dell’amministratore, di default opera sulla porta UDP 161

Durante la fase di riconoscimento e scanning esterno vale la pena tentare una scansione SNMP, anche se le probabilità di successo sono più basse. Una volta ottenuto accesso alla rete interna, invece, diventa una tecnica molto più promettente e può rivelare molte informazioni critiche, come configurazioni di sistema, topologia di rete, e potenzialmente anche informazioni sensibili se le community string sono deboli o mal configurate.

SNMP impiega due tipi di componenti software per la comunicazione: l’agente SNMP e la stazione di gestione SNMP. L’agente SNMP si trova sul dispositivo di rete e la stazione di gestione SNMP comunica con l’agente.

SNMP contiene le due seguenti password per la configurazione e l’accesso all’agente SNMP dalla stazione di gestione:

  • Read Community String o La configurazione del dispositivo o del sistema può essere visualizzata con l’aiuto di questa password. o Queste stringhe sono pubbliche.

  • Read/Write Community String o La configurazione del dispositivo può essere modificata o editata utilizzando questa password. o Queste stringhe sono private.

Quando gli amministratori lasciano le stringhe di comunità all’impostazione predefinita, gli aggressori possono utilizzare queste stringhe di comunità predefinite (password) per modificare o visualizzare la configurazione del dispositivo o del sistema. Gli aggressori sfruttano l’SNMP per estrarre informazioni sulle risorse di rete come host, router, dispositivi e condivisioni, nonché informazioni di rete come tabelle ARP, tabelle di routing, informazioni specifiche sui dispositivi e statistiche sul traffico.

Management Information Base (MIB)

MIB è un database virtuale contenente una descrizione formale di tutti gli oggetti di rete gestiti da SNMP. È una raccolta di informazioni organizzate gerarchicamente. Fornisce una rappresentazione standard delle informazioni e dell’archiviazione dell’agente SNMP. Gli elementi MIB vengono riconosciuti tramite identificatori di oggetto (OID). Un OID è il nome numerico assegnato a un oggetto e inizia con la radice dell’albero MIB. L’OID può identificare in modo univoco l’oggetto nella gerarchia MIB.

Un utente può accedere al contenuto del MIB tramite un browser Web immettendo l’indirizzo IP e Lseries.mib oppure immettendo il nome della libreria DNS e Lseries.mib. Ad esempio, http://IP.Address/Lseries.mib o http://library_name/Lseries.mib. Microsoft fornisce l’elenco dei MIB installati con il servizio SNMP nel kit di risorse di Windows.

I principali MIB sono i seguenti:

  • DHCP.MIB: monitora il traffico di rete tra server DHCP e host remoti
  • HOSTMIB.MIB: monitora e gestisce le risorse host
  • LNMIB2.MIB: contiene tipi di oggetto per servizi workstation e server
  • MIB_II.MIB: gestisce Internet basato su TCP/IP utilizzando un’architettura e un sistema semplici
  • WINS.MIB: per Windows Internet Name Service (WINS)

SNMPWALK

Il risultato di questo comando visualizza i dati trasmessi dall’agente SNMP al server SNMP, tra cui informazioni sul server, credenziali utente e altri parametri:

 
#Comandi generici dove V1, V2c e V3 sono le versioni di snmp
 
sudo snmpwalk -v1 -c public <indirizzo IP> 
 
sudo snmpwalk -v2c -c public <indirizzo IP> 
 
#Il seguente comando serve a vedere i software installati
 
sudo snmpwalk -v2c -c public <Target IP Address> hrSWInstalledName  
 
#Il seguente comando serve a vedere la quantità di RAM dell'host:
 
snmpwalk -v2c -c public <Target IP Address> hrMemorySize
 
#Comando per cambiare il valore dell'OID:
 
snmpwalk -v2c -c public <Target IP Address> <OID> <New Value>
 
#Comando per cambiare il valore sysContact:
 
snmpwalk -v2c -c public <Target IP Address> sysContact <New Value>
 
 

Analisi output

  • Versione del Sistema e Descrizioni dei Dispositivi:

    • Cerca OIDs come sysDescr o sysName, che ti forniscono il tipo di dispositivo, la versione del sistema operativo o del firmware e informazioni generali sul dispositivo.
  • Informazioni sugli Utenti:

    • Cerca eventuali informazioni relative a hrSWRunName, hrSWRunParameters, o OID simili. Questi possono elencare gli utenti o i software attivi sul sistema.
  • Interfacce di Rete e Indirizzi IP:

    • Cerca informazioni come ipAdEntAddr o ifDescr per vedere gli indirizzi IP e le interfacce di rete configurate. Ti può indicare anche l’architettura della rete.
  • Configurazioni di Routing:

    • Controlla ipRouteTable per visualizzare la configurazione di routing del dispositivo. Questo può darti un’idea su come i pacchetti sono indirizzati all’interno della rete.
  • Informazioni sulla Memoria e sul Carico del Sistema:

    • Cerca OIDs come hrProcessorLoad o hrStorageDescr che ti indicano il carico della CPU, l’uso della memoria e altre metriche di performance. Questo ti può suggerire quanto è impegnato un sistema e se ci sono aree vulnerabili dovute a risorse insufficienti.
  • Community String Mal Configurate:

    • Se riesci a ottenere una risposta dettagliata, potresti avere accesso a informazioni che idealmente non dovrebbero essere visibili. Questo può indicare che le community string sono configurate con privilegi troppo alti, il che rappresenta una vulnerabilità.

Nmap

L’enumerazione SNMP la si può effettuare anche attraverso Nmap con il seguente comando:

 
nmap --script=snmp-interfaces <indirizzo IP>
 
nmap --script=snmp-netstat <indirizzo IP>
 
nmap --script=snmp-routes <indirizzo IP>
 
nmap -sU -p 161 --script=snmp-info 10.10.1.22
 
nmap -sU -p 161 --script=snmp-processes <Indirizzo IP>
 
nmap -sU -p 161 --script=snmp-sysdescr <Target IP Address>
 
nmap -sU -p 161 --script=snmp-win32-software <Target IP Address> 
 

SNMPCHECK

Questo strumento è nativo di Linux e fornisce dettagli facilmente leggibili:

 
snmp-check <indirizzo IP> <porta>
 

ONESIXTYONE

 
onesixtyone -d <indirizzo IP>
 
onesixtyone -c <wordlist.txt> -d <indirizzo IP>