TCL para explorar puertos desde un enrutador

Spread the love

Interpretación del artículo Nmap for IOS?, no IOSMap, originalmente publicado en Ciscozine.com

TCL puede ser usado para automatizar tareas en enrutadores Cisco de manera interactiva, un clásico ejemplo que aparece en laboratorios de varios cursos oficiales de cisco (p. ej.: algunos de CCNP), es el uso de un ciclo en TCL para hacer ping a una serie de IPs en secuencia sin ejecutar el comando para cada dirección IP. foreach address { x.x.x.x x.x.x.x x.x.x.x} { ping $address } El shell de TCL también puede ser usado para ejecutar comandos del CLI de Cisco mediante guiones (scripts).  Usarlo para ejecutar comandos permite construir menús que guíen a los usuarios, por ejemplo para automatización de tareas o crear reportes personalizadas a partir de comandos show. Según documentación oficial, TCL es soportado en todas las plataformas de IOS desde la versión 12.3(2)T y 12.2(25)S. No todo el mundo sabe que es posible implementar una herramienta de exploración (scanning) como un Nmap simple. Pues esta entrada describe varias formas de usar un guión publicado en Sourceforge llamado IOSMap, una herramienta de exploración de puertos para dispositivos Cisco. No es necesario saber Tcl para usar el guión, lo único que se necesita saber es cómo ejecutarlo. Para usar el guión IOSmap se necesita:
  1. Descargar el guión
  2. Copiarlo a una carpeta de tftp
  3. Lanzar el guión
Todos los parámetros de IOSmap se pasan en el llamado al comando (guión). El siguiente ejemplo muestra la ejecución de la ayuda (la cual muestra las opciones disponibles) si el programa fue descargado el servidor TFTP de dirección 192.168.1.11 y éste tiene conectividad con el enrutador en el cual ejecutamos este código: Ciscozine#tclsh tftp://192.168.1.11/IOSmap.tcl help Loading IOSmap.tcl from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 15912 bytes] Loading services.list from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 42121 bytes] Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2012-02-07 14:02 Rome Invalid IP address specified ==> help ================================================================ IOScan 0.1 Usage: IOScan HOST DISCOVERY: -P0/PN Treat all hosts as online - skip Ping test -SL List hosts and ports to scan SCAN TYPE: -sP Ping scan only -sT TCP Connect Scan -sU UDP Scan --reason: display the reason a port state is reported as such PORT SPECIFICATION: -p Specify ports to scan. -p22 Scan port 22 -p22,23,135-139,445 Scan ports 22, 23, 135, 136, 137, 138, 139, 445 TARGET SPECIFICATION: CIDR, IP range and single IPs are all a supported - comma delimited For example: 192.168.10.0/24,192.168.17.21-34,192.168.40.1 Ciscozine# Ejemplos Ejemplo 1: Verificar los puertos TCP 135 a 139, 443 y 445 en el nodo 192.168.1.10 Ciscozine#tclsh tftp://192.168.1.11/IOSmap.tcl -sT -p135-139,443,445 192.168.1.10 Loading IOSmap.tcl from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 15912 bytes] Loading services.list from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 42121 bytes] Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2012-02-07 13:24 Rome Free Memory on Platform = 80289968 / Memory required for this scan = 2579282 Interesting ports on host 192.168.1.10 PORT STATE SERVICE 135/tcp open msrpc 136/tcp closed profile 137/tcp closed netbios-ns 138/tcp closed netbios-dgm 139/tcp open netbios-ssn 443/tcp closed https 445/tcp open microsoft-ds Ciscozine# Ejemplo 2: Verificar si los nodos 192.168.1.0/29 y 192.168.255.0/30 están encendidos (up) Ciscozine#tclsh tftp://192.168.1.11/IOSmap.tcl -sP 192.168.1.0/29,192.168.255.0/30 Loading IOSmap.tcl from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 15912 bytes] Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2012-02-07 13:25 Rome Free Memory on Platform = 81737004 / Memory required for this scan = 3362393 Host 192.168.1.1 is up Host 192.168.1.2 is down Host 192.168.1.3 is up Host 192.168.1.4 is up Host 192.168.1.5 is down Host 192.168.1.6 is down Host 192.168.255.1 is up Host 192.168.255.2 is down Ciscozine# Ejemplo 3: Verificar los puertos 1-60000 en el nodo 192.168.1.10; este es un buen ejemplo para mostrar cómo el guión mostrará que la memoria necesaria es mayor que la cantidad disponible. Ciscozine#tclsh tftp://192.168.1.11/IOSmap.tcl -sT -p1-60000 192.168.1.10 Loading IOSmap.tcl from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 15912 bytes] Loading services.list from 192.168.1.11 (via FastEthernet0/0.2): ! [OK - 42121 bytes] Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2012-02-07 13:26 Rome Free Memory on Platform = 76021848 / Memory required for this scan = 95208474 The resources estimated for your scan will exceed 75% of your available memory total of 95208474 Execution cannot proceed without impacting primary device functions Ciscozine#
Conclusión


Aunque los guiones de Tcl son muy poderosos para hacer tareas repetitivas, son una utilidad de excepción que se puede usar en ocasiones teniendo la precaución de no sobrecargar el procesador o la memoria del enrutador y distraerlo de su función principal: reenviar paquetes. Sin embargo, para pequeñas tareas repetitivas o incluso tareas de administración, se pueden hacer guiones rápidos que ayuden a recolectar la información necesaria o ejecutar programas más sofisticados en horas de poco tráfico o ventanas de administración.]]>

1 comentario en “TCL para explorar puertos desde un enrutador”

  1. Hola!
    Permíteme presentarme soy Elizabeth administradora de un directorio de blogs, visité tu portal y está interesante, tienes temas muy buenos. Me encantaría poner un link de tu web en mis sitios y así mis visitas puedan visitarlo también. Si estás de acuerdo no dudes en escribirme elilu1305@gmail.com
    Éxitos con tu blog.
    Saludos

    Elizabeth

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.