jueves, marzo 24, 2016

Cómo recuperar la contraseña en un router Cisco

No es del todo raro, aunque no debería pasar, que en un momento dado se nos olvide la contraseña de acceso a nuestros routers Cisco y no podamos recordarla. Recuperarla es relativamente sencillo pero implica reiniciar el router, por lo que si está en producción necesitaremos una ventana de mantenimiento para poder cortar sin producir impacto en nuestra red. Estos son los pasos a seguir.
 
1 - Reiniciaremos el router. Durante el arranque le enviaremos un break para que el arranque se detenga y el router se ponga en el famoso modo ROM monitor (ROMmon). Podemos enviar el break al router bien mediante una combinación de teclas (normalmente Control + Escape) o mediante alguna funcionalidad del programa de consola que usemos; por ejemplo, en PuTTY podemos enviar un break pulsando con el botón derecho sobre la parte superior de la ventana de la consola y seleccionando "Break" del menú "Special Command".


 Aparecerá la línea de comando de ROMmon, indicando que se ha entrado en ese modo por interrupción del usuario:

System Bootstrap, Version 12.4(13r)T11, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 2009 by cisco Systems, Inc.

Initializing memory for ECC
..

c2811 platform with 524288 Kbytes of main memory

Main memory is configured to 64 bit mode with ECC enabled

Upgrade ROMMON initialized

program load complete, entry point: 0x8000f000, size: 0xcb80

monitor: command "boot" aborted due to user interrupt

rommon 1 >


2 - Cambiaremos el valor del registro de configuración de su valor por defecto, 0x2102, a 0x2142. La explicación de en qué consiste el registro de configuración se sale de la intención de este artículo. Nos basta saber que ese valor en particular hará que el router arranque con una configuración por defecto, sin cargar la configuración almacenada en el fichero startup-config de la NVRAM, que es lo habitual. Usamos el siguiente comando para cambiar el valor del registro y reiniciamos el router de nuevo, bien apagándolo y volviéndolo a encender o usando el comando reset:


rommon 1 > confreg 0x2142

You must reset or power cycle for new config to take effect

rommon 2 > reset


 3 - Esta vez dejamos que el router arranque hasta el final, momento en el que saltará el diálogo de configuración habitual cuando tenemos una configuración por defecto. Le decimos que no queremos iniciar el diálogo de configuración:

         --- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]: no

Press RETURN to get started!


Ahora estaremos dentro del router con control total sobre el mismo y podemos entrar en modo enable sin problemas.

4 - Copiaremos la startup-config en la running-config, con lo que tendremos el router cargado con la configuración de producción al mismo tiempo que seguimos teniendo control sobre el mismo:

Router>enable
Router#copy startup-config running-config
Destination filename [running-config]?

2891 bytes copied in 0.516 secs (5603 bytes/sec)


5 - Y ahora el momento de volver a tener las claves controladas: en modo configuración global modificamos las claves y si es necesario el usuario de gestión que tengamos configurado a nuestro antojo y según necesitemos:

Router1#conf t
Router1(config)#username admin secret miclave1
Router1(config)#enable secret miclave2
Router1(config)#line con 0
Router1(config-line)#password miclave3
Router1(config-line)#^Z

Router1# 

6 - Copiamos ahora la running-config, que tiene nuestros cambios, a la startup-config para que los cambios se carguen en el próximo reinicio.

Router1#copy running-config startup-config

7 - Por último: si reiniciásemos ahora el router el valor del registro de configuración seguiría siendo 0x2142, por lo que el router arrancaría de nuevo con el diálogo de la configuración por defecto. Para que arranque de manera normal debemos devolver el valor del registro a su original, 0x2102, en el modo de configuración con el siguiente comando y guardando después de nuevo:

Router1#conf t
Router1(config)#config-register 0x2102
Router1#copy running-config startup-config

Ya podemos reiniciar el router. Arrancará normalmente y podremos entrar con las nuevas claves que hayamos configurado.

domingo, marzo 06, 2016

Wireshark no encuentra las interfaces en Windows 10: "No interfaces found"




Wireshark es una herramienta fundamental tanto para formarse como para realizar diagnósticos en entornos de red reales, así que instalarla en tu PC con Windows y descubrir que no encuentra ninguna interfaz de red puede ser una desagradable sorpresa más común de lo que podría parecer.

Wireshark utiliza WinPcap (Windows Packet Capture) como librería para capturar paquetes y su instalación está incluída opcionalmente en el proceso de instalación del propio Wireshark, por lo que si hemos declinado su instalación previamente lo primero que deberíamos intentar es bien reinstalar Wireshark y aceptar la instalación de WinPcap, bien instalar WinPcap por separado.

Por otra parte, WinPcap utiliza el driver NPF (Netgroup Packet Filter) para realizar el esnifado y el trabajo de captura de los paquetes. NPF se carga a través del servicio del mismo nombre, servicio que debería arrancar bajo demanda al iniciarse Wireshark. Para ver el estado del servicio abrimos una consola de línea de comandos en modo Administrador. Podemos hacerlo de unos cuantos modos, por ejemplo:

  • Si pulsamos la tecla de Windows y escribimos "cmd" debería aparecernos entre las aplicaciones posibles el "Símbolo del sistema", pulsando con el botón derecho sobre la aplicación aparece la opción "Ejecutar como administrador".

  •  Pulsando la tecla de Windows conjuntamente con la letra X, o pulsando con el botón derecho sobre el símbolo de Windows en la barra de tareas, se desplegará un menú donde directamente tendremos la opción "Símbolo del sistema (administrador)".

Una vez iniciada la consola podemos ver el estado del servicio NPF con los comandos sc query npf y sc qc npf :

C:\WINDOWS\system32>sc query npf

NOMBRE_DE_SERVICIO: npf
        TIPO                         : 1  KERNEL_DRIVER
        ESTADO                       : 1  STOPPED
        CÓDIGO_DE_SALIDA_DE_WIN32    : 1077  (0x435)
        CÓDIGO_DE_SALIDA_DEL_SERVICIO: 0  (0x0)
        PUNTO_DE_CONTROL             : 0x0
        ESPERA                       : 0x0


C:\WINDOWS\system32>sc qc npf
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: npf
        TIPO               : 1  KERNEL_DRIVER
        TIPO_INICIO        : 3   DEMAND_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: system32\drivers\npf.sys
        GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : NetGroup Packet Filter Driver
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO:




Por defecto el servicio estará parado y el modo de arranque es "bajo demanda", lo que significa que arranca cuando es invocado por alguna aplicación. Lo peor es que es posible que iniciar Wireshark de manera normal no arranque el servicio NPF. Para solucionar el problema tenemos dos opciones:

  • Arrancar el servicio manualmente con el comando sc start npf :

C:\WINDOWS\system32>sc start npf

NOMBRE_SERVICIO: npf
        TIPO               : 1  KERNEL_DRIVER
        ESTADO             : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        CÓD_SALIDA_WIN32   : 0  (0x0)
        CÓD_SALIDA_SERVICIO: 0  (0x0)
        PUNTO_COMPROB.     : 0x0
        INDICACIÓN_INICIO  : 0x0
        PID                : 0
        MARCAS         :


  • Arrancar Wireshark como Administrador, en cuyo caso el servicio NPF sí arranca correctamente:


Wireshark volverá a detectar las interfaces de red de la máquina en ambos casos (puede ser necesario refrescar la detección de interfaces pulsando F5 o en el menú Capture > Refresh Interfaces):



Para no tener que repetir el proceso cada vez que reiniciamos la máquina podemos bien hacer que el servicio arranque con el inicio de la máquina, bien hacer que Wireshark arranque siempre bajo permisos de administrador:

  • Para hacer que el servicio arranque siempre con el inicio de la máquina debemos ejecutar el comando sc config npf start=system :

C:\WINDOWS\system32>sc config npf start=system
[SC] ChangeServiceConfig CORRECTO


Podemos ver el cambio en el estado del servicio:

C:\WINDOWS\system32>sc qc npf
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: npf
        TIPO               : 1  KERNEL_DRIVER
        TIPO_INICIO        : 1   SYSTEM_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: system32\drivers\npf.sys
        GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : NetGroup Packet Filter Driver
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO:


  • Para hacer que Wireshark arranque siempre bajo permisos de administrador modificamos las propiedas del ejecutable, que por defecto se encuentra en C:\Program Files\Wireshark\Wireshark.exe, pulsando con el botón derecho sobre él y eligiendo "Propiedades". Bajo la pestaña "Compatibilidad" marcamos "Ejecutar este programa como administrador":