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_fileTercero: 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:
Publicar un comentario