Banner 1

Notas sobre un Forensic a un Router Cisco

En una auditoría de redes uno de los elementos más importantes y que casi nunca se audita o revisa a fondo son los routers y los switches. No voy a explicar la importancia de estos elementos de red ya que hay información a patadas y todos lo hemos utilizado, amado y sufrido a diario.

Aunque no soy muy conocedor de dispositivos como estos, me atrevo a escribir notas sobre este post, dado que llevamos unos días con un caso particularmente extraño de un router ADSL con anomalías y demás fantasmas, mas cuando ya se viene anunciando la existencia de rootkits sobre routers, tal y como se indica aquí

Para empezar con el análisis lo mejor es obtener por un lado la recopilación de evidencias volátiles y almacenarlas para luego ir comprobando, para ello utilizaremos y obtendremos la información de los siguientes comandos:

Show Commands
show version
show clock detail
show running-config
show startup-config
show reload

show ip route

show ip arp

show users

show logging

show ip interface
show interfaces

show tcp brief all

show ip sockets

show ip nat translations verbose

show ip cache flow
show ip cef
show snmp user
show snmp group

Además revisaremos los losgs de:

Console logging – Solo pantalla
Buffered logging – RAM (fifo)
Terminal logging – los enviados a vty
Syslog – si existiera
AAA accounting – Conexiones y accesos

Si deseamos algo de comodidad podemos utilizar la utilidad 'Router Audit Tool' que se basa en auditar el dipositivo y que tiene las siguientes características:

– Lenguaje PERL
– Multiplataforma (Windows & UNIX)
– Focalizada en auditoría

Aquí un ejemplo:



Por otro lado vamos a realizar un volcado de memoria .
Los volcados de IOS contiene una imagen completa del router y pueden revertirse con el fin de analizar el sistema

También cabe decir que los volcados pueden ser utilizados para extraer el tráfico de la red pudiendo utilizar el formato PCAP en un archivo para su análisis.

Las ultimas versiones del IOS generan dos archivos de 'core dump', el 'memory core' y el 'IO memory core', este contiene información obtenida de una parte de la memoria que es usada para el reenvío de paquetes. Estos dos 'core dumps' se generan cuando el router falla por alguna causa especifica, o también pueden ser generados manualmente como venimos comentando.

En el caso que nos ocupa, este incluye en su IOS un comando para el volcado de memoria:

#write core

El uso de este comando debe de hacerse en modo de ejecución privilegiada. Este comando causa el 'crash' y el contenido se vuelca a disco. Este 'dump' contiene la instalación y configuración la cual puede ser revisada 'forensicamente' hablando.

El volcado se puede salvar utilizando un servidor FTP, TFTP, RCP o a Flash disk y como el análisis no es trivial y depende del tipo de escenario en que nos encontremos, puede ser recomendable utilizar el servicio gratuito que proporciona la empresa Recurity Labs con su producto CIR (Cisco Incident Response)

CIR podemos usarlo para:

  • Extracción de scripts TCL. Las ultimas versiones del IOS permiten utilizar scripts TCL que pueden ser usados para generar puertas traseras.
  • Detectar si la imagen del IOS ha sido modificada.
  • Extracción de trafico de red. CIR puede extraer el trafico de red real que se encuentre guardado en este dump y guardarlo en formato PCAP

Una vez creado el caso (ver aquí) y evaluado con la herramienta. Nos aparece en el informe que genera tras su análisis, los procesos sospechosos los cuales vamos a analizar

Puesta en marcha

Primero: vamos a poner una serie de ACL's para configurar el router como un pseudo sniffer.

Para ello, lo mejor es una lista de control de acceso con una serie de permisos para proporcionar una vista del tráfico. Los contadores en las entradas de la ACL se pueden utilizar para encontrar el protocolo culpable

Extended IP access list 169
permit icmp any any echo (21374 matches)
permit icmp any any echo-reply (2 matches)
permit udp any any eq echo
permit udp any eq echo any
permit tcp any any established (150 matches)
permit tcp any any (15 matches)
permit ip any any (45 matches)

Segundo: Paralelamente y en una máquina Linux en modo promiscuo hemos configurado TCPDUMP para cotejar los resultados

tcpdump -i interface -s 1500 -w capture_file
Tercero: También hemos puesto en marcha un Snort con las siguientes reglas:

var ROUTERS [192.168.0.1,192.18.1.1] # Watch for Phenoelit.de UltimaRatio v1.1 string alert udp any any -> $ROUTERS 161 (msg:"UltimaRatio Exploit Detected"; \ content:"|FD 01 10 DF AB 12 34 CD|"; classtype:attempted-admin; sid:1200005; \ rev:1;) # Monitor failed logins, bad passwords alert tcp any any -> $ROUTERS 23 (msg:"Failed router authorization, invalid \ login"; flow:to_server,established; content:"% Login invalid"; \ classtype:attempted-admin; sid:1200005; rev:1;) alert tcp any any -> $ROUTERS 23 (msg:"Failed router authorization, bad \ passwords"; flow:to_server,established; content:"% Bad passwords"; \ classtype:attempted-admin; sid:1200006; rev:1;)

Continuara...

fuente:http://conexioninversa.blogspot.com/2009/01/notas-sobre-un-forensic-un-router-cisco.html

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay