martes, 7 de septiembre de 2010

Atacando SNMP (II)

Sacando las cadenas de comunidad

Cargamos metasploit, el módulo necesario y lo configuramos:

root@bt:~# msfconsole
msf > use auxiliary/scanner/snmp/community
Vemos las opciones de configuración:


Pasamos a configurarlo:
msf auxiliary(community) > set RHOSTS 192.168.1.1, 192.168.1.51, 192.168.1.230
RHOSTS => 192.168.1.1, 192.168.1.51, 192.168.1.230
msf auxiliary(community) > set THREADS 3
THREADS => 3

Y lo ejecutamos:


Como se puede ver hemos obtenido las comunidades SNMP gracias a Metasploit.


Leyendo la configuración con snmpenum

Probamos a extrare la configuración del router cisco (el segundo argumento es la cadena y el tercero el fichero de texto con los OID):
root@bt:/pentest/enumeration/snmpenum# ./snmpenum.pl 192.168.1.51 private cisco.txt

Entre toda la información conseguida se encuentra la siguiente:

----------------------------------------
    PROCESSES
----------------------------------------

Chunk Manager
Load Meter
[...]
SNMP ENGINE


----------------------------------------
    IP ADDRESSES
----------------------------------------

192.168.1.51
192.168.2.51



----------------------------------------
    HARDWARE
----------------------------------------

2691 chassis
3620 Chassis Slot
c2691 Motherboard with Fast Ethernet


Y ahora probamos a extraer la información del router de Vyatta, pero esta vez usando los OID de Linux:

root@bt:/pentest/enumeration/snmpenum# ./snmpenum.pl 192.168.1.230 write linux.txt

----------------------------------------
    RUNNING PROCESSES
----------------------------------------

init
kthreadd
migration/0
ksoftirqd/0
watchdog/0


----------------------------------------
    LISTENING UDP PORTS
----------------------------------------

123
161
520


----------------------------------------
    LISTENING TCP PORTS
----------------------------------------

22
443



Leyendo la configuración con snmpcheck

Probamos a leer la configuración con snmpcheck del router cisco (el segundo parámetro es la comunidad y el tercero indica que se compruebe si se puede escribir):

root@bt:/pentest/enumeration/snmpcheck# ./snmpcheck.pl -t 192.168.1.51 -c private -w
snmpcheck.pl v1.7 - snmp enumerator
Copyright (c) 2005-2008 by Matteo Cantoni (nothink.org)

 [*] try to connect to 192.168.1.51...
 [x] Connected to 192.168.1.51! Starting check at Mon Sep  6 17:05:05 2010

 [!] Write access enabled!

[*] Network interfaces
 -----------------------------------------------------------------------------------------------

 IP Forwarding Enabled   : 1

 Interface               : [ up ] FastEthernet0/0
    Hardware Address : 0xc0002bd10000
    Interface Speed  : 10 Mbps
    IP Address       : 192.168.1.51
    Netmask          : 255.255.255.0
    MTU              : 1500
    Bytes In         : 7397380 (7.1M)
    Bytes Out        : 181463 (178K)

 Interface               : [ up ] FastEthernet0/1
    Hardware Address : 0xc0002bd10001
    Interface Speed  : 10 Mbps
    IP Address       : 192.168.2.51
    Netmask          : 255.255.255.0
    MTU              : 1500
    Bytes In         : 58722 (58K)
    Bytes Out        : 82403 (81K)

 Interface               : [ up ] Null0
    Interface Speed  : 4294.967295 Mbps
    MTU              : 1500



Y ahora probamos a extraer la configuración del router Vyatta:
root@bt:/pentest/enumeration/snmpcheck# ./snmpcheck.pl -t 192.168.1.230 -c write -w
snmpcheck.pl v1.7 - snmp enumerator
Copyright (c) 2005-2008 by Matteo Cantoni (nothink.org)

 [*] try to connect to 192.168.1.230...
 [x] Connected to 192.168.1.230! Starting check at Mon Sep  6 17:07:16 2010

 [!] Write access enabled!

 Hostname        : vyatta
 Description     : Vyatta VC6.0-2010.06.01
 Uptime (snmpd)  : 39 minutes, 38.57


[*] Devices
 -----------------------------------------------------------------------------------------------

 Status   Name

 running  network interface lo
 running  network interface eth0
 running  SCSI disk (/dev/sda)
 unknown  Guessing that there's a floating point co-processor
 unknown  GenuineIntel: Intel(R) Core(TM)2 Quad CPU    Q8300  @ 2.50GHz


Se extrae bastante más información, pero pongo sólo una parte.


Leyendo la información con snmpwalk

También es posible utilizar el programa snmpwalk para recorrer toda la MIB (Base de Información de Administración )e ir mostrando cada OID (ID de Objeto).


root@bt:/# snmpwalk -c private -v1 192.168.1.51

Y veremos toda la información:
[...]
IP-FORWARD-MIB::ipCidrRouteDest.192.168.1.0.255.255.255.0.0.0.0.0.0 = IpAddress: 192.168.1.0
IP-FORWARD-MIB::ipCidrRouteDest.192.168.2.0.255.255.255.0.0.0.0.0.0 = IpAddress: 192.168.2.0
IP-FORWARD-MIB::ipCidrRouteMask.192.168.1.0.255.255.255.0.0.0.0.0.0 = IpAddress: 255.255.255.0
[...]



Además de leer la configuración como comentamos en el primer post es posible escribir en la misma utilizando SNMP, si no utilizamos ninguna herramienta gráfica es un proceso bastante engorroso y nada intuitivo (salvo que te aprendas de memoria los OID...) en cualquier caso aquí dejo un ejemplo de la web de Cisco para crear una VLAN por SNMP.


Como hemos visto en las dos últimas entradas el uso del protocolo SNMP es algo que se debe estudiar con cuidado y plantearse la necesidad del mismo, sobretodo si no se usa la versión 3.

Un saludo a todos

No hay comentarios:

Publicar un comentario