sniffers en nuestra red

25
Detectando Sniffers en nuestra red. Redes conmutadas y no conmutadas. Actualización. Publicado en 27 noviembre, 2009de Alfon Hace ya algunos años, concretamente en 2003-2004, escribí sobre la Detección de Sniffers en redes conmutadas y no conmutadas en varios sitios de la Red. Lo podeis ver también aquí y en mi primer blog (http://webs.ono.com/alfonn/). Creo que es el momento de revisar y ampliar este artículo. En esta actualización trataremos también la detección desde varios escenarios usandoWireshark (al final del artículo) y algún que otro software / técnica más de detección como Nast y DecaffeinatID, ArpOn, VLANs, algún firewall como Outpost, … Actualizaré también algunos enlaces de descarga que estaban ya obsoletos, notas sobre funcionamiento de algunas herramientas antiguas, etc. ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55) ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55) ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9 ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6 Possible spoof 192.168.4.5 00:04:76:9a:66:a6 was at 00:04:76:f2:c9:5f Decíamos, por aquel entonces…. Vamos a tratar aquí, principalmente, la detección de sniffers en nuestra red desde el escenario más básico posible. Este escenarío sería una subred o red no conmutada. Aunque más adelante nos introduciremos brévemente en la escuha en redes conmutadas o basadas en switches y herramientas de detección en este tipo de redes……. Sobre posicionamiento de un sniffer en nuestra red, conmutada o no conmutada: Posición del sniffer en nuestra red. Redes conmutadas y no conmutadas. Antes que nada, decir que los sniffers no son fáciles de detectar y combatir, ya que se trata de programas que trabajan en modo pasivo. Las técnicas que se tratan aquí, por tanto, no son totalmente fiables, aunque en algunos casos si suponen una gran aproximación al descubrimiento de este tipo de software. Antes que nada y para enteder algunos coneceptos de este artículo veremos como funciona, brevemente, el protocolo ARP Que es. Para que sirve ARP ?

Upload: luis-velazquez

Post on 14-Dec-2015

237 views

Category:

Documents


4 download

DESCRIPTION

deteccion de intrusos

TRANSCRIPT

Page 1: Sniffers en Nuestra Red

Detectando Sniffers en nuestra red. Redes conmutadas y no conmutadas. Actualización.

Publicado en 27 noviembre, 2009de Alfon

Hace ya algunos años, concretamente en 2003-2004, escribí sobre la Detección

de Sniffers en redes conmutadas y no conmutadas en varios sitios de la

Red. Lo podeis ver también aquí y en mi primer blog (http://webs.ono.com/alfonn/).

Creo que es el momento de revisar y ampliar este artículo.

En esta actualización trataremos también la detección desde varios escenarios

usandoWireshark (al final del artículo) y algún que otro software / técnica más de

detección como Nast y DecaffeinatID, ArpOn, VLANs, algún firewall

como Outpost, … Actualizaré también algunos enlaces de descarga que estaban ya

obsoletos, notas sobre funcionamiento de algunas herramientas antiguas, etc.

ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)

ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f

(00:11:22:33:44:55)

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

Possible spoof 192.168.4.5 00:04:76:9a:66:a6 was at

00:04:76:f2:c9:5f

Decíamos, por aquel entonces….

―Vamos a tratar aquí, principalmente, la detección de sniffers en nuestra red desde el escenario

más básico posible. Este escenarío sería una subred o red no conmutada. Aunque más adelante

nos introduciremos brévemente en la escuha en redes conmutadas o basadas en switches y

herramientas de detección en este tipo de redes……. ―

Sobre posicionamiento de un sniffer en nuestra red, conmutada o no

conmutada:

Posición del sniffer en nuestra red. Redes conmutadas y no conmutadas.

Antes que nada, decir que los sniffers no son fáciles de detectar y combatir, ya que

se trata de programas que trabajan en modo pasivo. Las técnicas que se tratan aquí,

por tanto, no son totalmente fiables, aunque en algunos casos si suponen una gran

aproximación al descubrimiento de este tipo de software. Antes que nada y para

enteder algunos coneceptos de este artículo veremos como funciona, brevemente,

el protocolo ARP

Que es. Para que sirve ARP ?

Page 2: Sniffers en Nuestra Red

En una red Ethernet cuando queremos enviar un paquete IP entre dos hosts

conectados, las únicas direcciones válidas son las MAC, y lo que circula son tramas

Ethernet. Entonces, y volviendo al ejemplo de antes, cuando queremos enviar un

paquete IP lo que se hace es ―meter‖ el paquete dentro de una trama Ethernet y

enviar.

Formato de una cabecera ARP:

HLEN Longitud dirección hardware

PLEN Longitud dirección del protocolo

OPERACION Código de operación (ARPreques ó ARPreply)

SENDER HA Dirección de origen hardware

SENDER IP Dirección de origen del protocolo

TARGET HA Dirección de destino hardware

Cual es el problema entonces ?

El problema radica en que que sabemos la dirección IP del host de destino

pero no su dirección MAC.

Como se soluciona esto ?

La solución está en que antes de enviar el paquete IP se debe usar ARP para

averiguar cual es la dirección MAC del host destino de la conección que

pretendemos realizar.

Y como se hace ?.

ARP tiene dos tipos básicos de mensajes:

mensaje de peticion o ARPrequest

mensaje de respuesta o ARPreply

los dos viajan por nuestra red dentro de tramas Ethernet.

Cuando queremos enviar un paquete IP desde un host origen (A)

hacia un host destino (B) sucede:

(A) crea un mensaje o petición ARPrequest indicando:

su dirección IP

Page 3: Sniffers en Nuestra Red

su dirección MAC

dirección IP del host (B)

campo de dirección MAC host (B) sin rellenar.

envia el ARPrequest a la dirección broadcast (todos los hosts de la red)

pero sólo contesta uno de ellos (B). Entonces:

(B) crea un mensaje ARPreply:

rellena el campo de dirección MAC con su MAC

intercambia las direcciones origen y destino

cambia el tipo de mensaje de ARPreques a ARPreply

envia el mesnaje ARPrpely a (A).

Ya hay entonces información suficiente para establecer cualquier

comunicación entre (A) y (B).

Esto lo podemos comprobar utilizando un sniffer de red

como Wireshark, Windump… y filtrando por protocolos, en este caso ARP:

C:\scan>windump -qtn arp

windump: listening on \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-

81175A8C32BF}

arp who-has 192.168.5.241 tell 192.168.5.240

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.5.4 tell 192.168.5.240

arp who-has 192.168.5.6 tell 192.168.5.240

arp who-has 192.168.5.44 tell 192.168.5.240

arp who-has 192.168.5.14 tell 192.168.5.240

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.15 tell 192.168.4.10

arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.15 tell 192.168.4.1

arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.15 tell 192.168.4.13

arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf…..

Toda la información de las relaciones IP/MAC se guarda en la cache ARP. En un

sistema Windows:

Page 4: Sniffers en Nuestra Red

C:\>arp -a

Interfaz: 192.168.4.3 on Interface 0×1000003

Dirección IP Dirección física Tipo

192.168.4.1 00-04-76-97-b3-a9 dinámico

192.168.4.20 00-a0-24-4e-4e-4e dinámico

Sistemas Linux:

$ arp -a

serprint (192.168.4.2) at 52:54:05:fd:de:e5

infografia3 (192.168.4.3) at 00:90:27:6a:58:74

Una vez visto como funciona el protocolo ARP, seguimos con la detección de los

sniffers.

Detección en sistemas UNIX/Linux

En entornos Linux o UNIX la verificación de una interface en modo promiscuo se

puede hacer usando ifconfig. Este programa configura la interface de red

instalada en un determinado host y obtiene información de la configuración en el

momento de ejecutar el programa. Cuando un adaptador de red se encuentra en

modo promiscuo, ifconfig nos devuelve la siguiente información:

$ ifconfig -a

eth0 Link Encap: 10Mbps Ethernet HWaddr: xx:xx:xx:xx:xx:xx

inet addr: a.b.c.d Bcast: a.b.c.f Mask: m.m.m.m

UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1

(OJO: Modo promiscuo)

RX packets: 0 errors:0 dropped:0 overruns:0TX packets:0

errors:0 dropped:0 overruns:0

Interrupt:15 Base Address:0×300

Este sistema no es infalible.

Existen programas que pueden hacer esta labor como:

Nast. ( Network Analizer Sniffer Tool. )

http://nast.berlios.de/

Herramienta para Linux. Nast es un Sniffer multipropósito. Entre otras

funciones, realiza:

listado de host de una red,

Page 5: Sniffers en Nuestra Red

búsquedas de Gateway,

control y secubrimiento de ARP-Spoofing

reseteo de conexiones TCP establecidas,

búsqueda de dispositivos hub / switch,

scan de puertos

seguimiento de TCP data Stream

…..

y, lo que nos interesa: descubrimiento de modo promíscuo en

interfaces de red,

Para este propósito tan solo ejecutar naast de la forma:

nast -P, 192.168.1.30

Nast V. x.x.x

This check can have false response, pay attention!

Scanning for sniffer the following host:

192.168.1.15 (192.168.1.30) ———> Found!

nos devolverá información de si dicha IP está (la interface de red) en modo

promíscuo.

CMP (Check Promiscuous Mode)

ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/cpm/

Este pequeño programa realizado por la Universidad de Carnegie Mellon, chequea

el interfaz de red de la máquina descubriendo si está siendo utilizado en modo

promíscuo (escuchando todo el tráfico de la red).

$ cpm

4 network interfaces found:

eth0:5: Normal

eth0:3: Normal

eth0:2: Normal

eth0:1: Normal

eth0: *** IN PROMISCUOUS MODE ***

Existen otros programas como Antisniff, Sentinel, SniffDet, ifstatus o NEPED:

NEPED. Modo de trabajo.

http://downloads.securityfocus.com/tools/neped.c

Tenemos que introducir la interface de red:

Page 6: Sniffers en Nuestra Red

$ neped eth0

———————————————————-

> My HW Addr: 00:50:BF:1C:41:59

> My IP Addr: 192.168.0.1

> My NETMASK: 255.255.255.0

> My BROADCAST: 192.168.1.255

———————————————————-

Scanning ….

* Host 192.168.0.3, 00:C2:0F:64:05:FF **** Promiscuous mode

detected !!!

End.

NEPED utiliza la técnica de realizar una simple petición ARP para cada una de las

IPs de la red a diagnosticar, pero ojo, los paquetes no van destinados a broadcast

(FF:FF:FF:FF:FF:FF), sino a una dirección aleatoria e inexistente. Sólo las

interfaces en modo promiscuo verán estos paquetes, y de esta

manera, sólo estas interfaces contestarán a estas peticiones.

Existe también un dispositivo de hardware llamado Tap. Este dispositivo permite

conectarse a un Hub o incluso a un switch de red al cual conectásemos un

dispositivo (ordenador) para monitorizar la red. Existen tipos de Taps para cada

tipo de red Ethernet 10 Mbps, 100 Mbps y 1 Gbps.

SniffDet – Remote Sniffer Detection

http://prdownloads.sourceforge.net/sniffdet/sniffdet-0.9.tar.gz

Usa lás técnicas test ICMP, test ARP, test DNS y test de ping de latencia.

NOTA: Veremos estos test mas abajo.

Vemos un ejemplo con SniffDet:

# ./sniffdet 0.9

A Remote sniffer Detection Tool

Copyright (c) 2003

Ademar de Souza Reis Jr.

Milton Soares Filho

Usage: ./sniffdet [options] TARGET

Where:

TARGET is a canonical hostname or a dotted decimal IPv4

address

Page 7: Sniffers en Nuestra Red

-i –iface=DEVICE Use network DEVICE interface for tests

-c –configfile=FILE Use FILE as configuration file

-l –log=FILE Use FILE for tests log

-f –targetsfile=FILE Use FILE for tests target

–pluginsdir=DIR Search for plugins in DIR

-p –plugin=FILE Use FILE plugin

-u –uid=UID Run program with UID (after dropping root)

-g –gid=GID Run program with GID (after dropping root)

-t –test=[testname] Perform specific test

Where [testname] is a list composed by:

dns DNS test

arp ARP response test

icmp ICMP ping response test

latency ICMP ping latency test

-v –verbose Run in verbose mode

-h, –help Show this help screen and exit

–version Show version info and exit

Defaults:

Interface: ―eth0″

Log file: ―sniffdet.log‖

Config file: ―/etc/sniffdet.conf‖

Plugins Directory: ―/usr/lib/sniffdet/plugins‖

Plugin: ―stdout.so‖

You have to inform at least one test to perform

vemos un ejemplo resultado de este software:

————————————————————

Sniffdet Report

Generated on: xxxxxxxxx 2003

————————————————————

Tests Results for target 192.168.2.1

————————————————————

Test: ARP Test

Check if target replies a bogus ARP request (with wrong MAC)

Validation: OK

Started on: xxxx

Finished on: Mxxxxx

Page 8: Sniffers en Nuestra Red

Bytes Sent: 84

Bytes Received: 60

Packets Sent: 2

Packets Received: 1

————————————————————

RESULT: POSITIVE

————————————————————

————————————————————

Number of tests with positive result: #1

————————————————————

AntiSniff_v1.3

http://www.packetstormsecurity.org/sniffers/antisniff/as-1021.zip

Esta herramienta, tanto para plataformas linux/Unix como para Win32, es muy

sencilla de usar y tan sólo es necesario inroducir el rango ede IPs a monitorizar en

busca del posible sniffer.

Usa las técnicas de ping de latencia, test DNS y test ARP.

Page 9: Sniffers en Nuestra Red

Actualmente no está soportado.

Sentinel

http://packetstorm.linuxsecurity.com/UNIX/IDS/sentinel/sentinel-1.0.tar.gz

Utiliza los métodos de: test DNS, test ARP, prueba ICMP Etherping, y ping de

latencia.

Uso de sentinel:

./sentinel [método] [-t ] [opciones]

Métodos:

[ -a test ARP ]

[ -d test DND ]

[ -i ICMP Test ping de latencia]

[ -e ICMP test Etherpingt ]

Page 10: Sniffers en Nuestra Red

Opciones:

[ -f fichero o IP]

[ -c clase C a monitorizar]

[ -n ]

[ -I ]

Ejemplos:

./sentinel -a -t 192.168.1.2

Optimizado para usar el test ARP host 192.168.1.2

./sentinel -aed -f ./()

Optimizado para usar el test DNS host 192.168.1.2

./sentinel -aed -f ./fichero_lista_IPs testo ARP, DND, Etherping para una lista

de IPs

./sentinel -aed -c 10.2.2

Optimizado para escanear una red de clase c (10.2.2) usando el test ARP, DNS

y test Etherping

Otras formas de detectar posibles sniffers

Detectar y controlar los logs que suelen generar los sniffers.

Detectar y controlar las conexiones al exterior.

Monitorizados los programas que acceden al dispositivo de red.

Normalmente una interface en modo promiscuo, queda reflejada en el fichero

de logs:

* $ cat /var/log/messages

Otras técnicas de detección

Sólo por nombrar algunas, son usadas por los programas anti-sniffers.

Comentaremos la última:

Ping de latencia

Test ARP

Uso de un IDS. Por ejemplo Snort que contiene un preprocesador (arpspoof)

que nos puede servir. Aquí las líneas de snort.conf configurando el

preprocesador:

# arpspoof

#—————————————-

# Experimental ARP detection code from Jeff Nathan, detects

Page 11: Sniffers en Nuestra Red

ARP attacks,

# unicast ARP requests, and specific ARP mapping monitoring.

To make use

# of this preprocessor you must specify the IP and hardware

address of hosts on # the same layer 2 segment as you.

Specify one host IP MAC combo per line.

# Also takes a ―-unicast‖ option to turn on unicast ARP

request detection.

# Arpspoof uses Generator ID 112 and uses the following SIDS

for that GID:

# SID Event description

# —– ——————-

# 1 Unicast ARP request

# 2 Etherframe ARP mismatch (src)

# 3 Etherframe ARP mismatch (dst)

# 4 ARP cache overwrite attack

preprocessor arpspoof

preprocessor arpspoof_detect_host: 192.168.2.1

f0:0f:00:f0:0f:00

Otro IDS para sistemas Linux como Prelude Hybrid

IDS(http://www.preludeids.org/rubrique.php3?id_rubrique=13), poseee un

plugin (ArpSpoof Plugin ) que nos ayuda a detectar incoherencias en mensajes

ARP, conflicos con una base de datos ARPwatch (veremos esto más adelante), etc:

Configuración de plugin: /usr/local/etc/prelude-nids/prelude-nids.conf

[ArpSpoof]

#

# Search anomaly in ARP request.

#

# The ―directed‖ option will result in a warn each time an ARP

# request is sent to an address other than the broadcast address.

#

# directed;

# arpwatch= ;

* Test DNS

Page 12: Sniffers en Nuestra Red

Las técnicas de detección. Breve explicación.

El test DNS En este método, la herramienta de detección en sí misma está en

modo promíscuo. Creamos numerosas conexiones TCP falsas en nuestro segmento

de red, esperando un sniffer pobremente escrito para atrapar estas conexiones y

resolver la direción IP de los inexistentes hosts. Algunos sniffers realizan

búsquedas inversas DNS en los paquetes uqe capturan. Cuando se realiza una

búsqueda inversa DNS, un utilidad de deteción de sniffers ―huele‖ la petición de las

operaciones de búsqueda para ver si el objetivo es aquel que realiza la petición del

host inexistente.

El Test del Ping Este método confia en un problema en el núcleo de la

máquina receptora. Podemos construir una petición tipo ―ICMP echo‖ con la

dirección IP de la máquina sospechosa de hospedar un sniffer, pero con una

dirección MAC deliberadamente errónea. Enviamos un un pacquete ―ICMP echo‖ al

objetivo con la dirección IP correcta, pero con una dirección de hardware de

destino distinta. La mayoría de los sistemas desatenderán este paquete ya que su

dirección MAC es incorrecta. Pero en algunos sistemas Linux, NetBSD y NT, puesto

que el NIC está en modo promíscuo, el sniffer asirá este paquete de la red como

paquete legítimo y responderá por consiguiente. Si el blanco en cuestión responde

a nuestra petición, sabremos que está en modo promíscuo. Un atacante avanzado

puede poner al día sus sniffers para filtrar tales paquetes para que parezca que el

NIC no hubiera estado en modo promíscuo.

El Test ICMP Ping de Latencia. En éste método, hacemos ping al blanco y

anotamos el Round Trip Time (RTT, retardo de ida y vuelta o tiempo de latencia)

Creamos centenares de falsas conexiones TCP en nuestro segmento de red en un

período de tiempo muy corto. Esperamos que el sniffer esté procesando estos

paquetes a razón de que el tiempo de latencia incremente. Entonces hacemos ping

otra vez, y comparamos el RTT esta vez con el de la primera vez. Despues de una

serie de tests y medias, podemos concluir o no si un sniffer está realmente

funcionando en el objetivo o no.

El test ARP Podemos enviar una petición ARP a nuestro objetivo con toda la

información rápida excepto con una dirección hardware de destino errónea. Una

máquina que no esté en modo promíscuo nunca verá este paquete, puesto que no

era destinado a ellos, por lo tanto no contestará. Si una máquina está en modo

promiscuo, la petición ARP sería considerada y el núcleo la procesaría y

contestaría. Por la máquina que contesta, la sabemos estamos en modo promiscuo.

Page 13: Sniffers en Nuestra Red

El test Etherping Enviamos un ―ping echo‖ al host a testear con una IP de

destivo correcta y dirección MAC falseada. Si el host responde, es que su interfaz

está en modo promiscuo, es decir, existe un sniffer a la escucha y activo.

Protegerse contra la acción de los Sniffers

A grandes rasgos para protegernos de los sniffers y para que éstos no cumplan sus

objetivos de olfateo de contraseñas y en general nos ―lean datos sensibles‖ en texto

plano -sin cifrado fuerte-, podemos hacer uso de diversas técnicas o utilizar

sistemas como:

Redes conmutadas (no siempre es efectivo)

PGP

SSL

SSH

VPN,

Implementación de VLANs que, a parte de mejoras de seguridad,

aportan optimización del tráfico LAN. Algunos tipo de políticas /

configuración VLANs, puede ser susceptibles de atacadas mediante ARP

Spooofin.

Algunos routers / switch implementan medidas adicionales de

seguridad anti spoofing mediante reglas, etc.

…….

Aunque ya veremos más adelante que ni siquiera el uso de SSH, por citar un

ejemplo, nos puede protejer efectivamente del uso de ciertos tipos de sniffer

como ettercap.

Detección en sistemas Windows

PromiScan

http://www.securityfriday.com/tools/promiscan_sla.html

Page 14: Sniffers en Nuestra Red

―PromiScan (www.securityfriday.com) es una utilidad de distribución gratuita

diseñada para dar caza a los nodos promiscuos en una LAN rápidamente y sin crear

una carga pesada en la red. Hay que tener en cuenta que localizar un nodo

promiscuo es una tarea ardua, y que en muchos casos el resultado es incierto; no

obstante, PromiScan consigue mostrar cada uno de esos nodos de una manera

transparente, claramente visible. Para usarPromiScan es necesario contar con

Page 15: Sniffers en Nuestra Red

Windows 2000 Professional y haber instalado previamente el controlador

WinPcap.‖

Funciona con la vewrsion winpcap 3.0 en adelante, pero conviene no usarlo con

versiones muy altas. Puede funcionar en XP. La version 3.0 de Promiscan es

comercial pero puede funcionar como Trial.

PromiscDetect

http://www.ntsecurity.nu/downloads/promiscdetect.exe

NOTA: Actualizado para XP, Windows 2003 y Vista.

C:\scan>promiscdetect

PromiscDetect 1.0 – (c) 2002, Arne Vidstrom

([email protected])

– http://ntsecurity.nu/toolbox/promiscdetect/

Adapter name:

– NIC PCI 3Com EtherLink XL 10/100 PCI para administraci¾n

completa del equipo

(3C905C-TX)

Active filter for the adapter:

– Directed (capture packets directed to this computer)

– Multicast (capture multicast packets for groups the

computer is a member of)

– Broadcast (capture broadcast packets)

– Promiscuous (capture all packets on the network)

WARNING: Since this adapter is in promiscuous mode there

could be a sniffer running on this computer!

DecaffeinatID

http://irongeek.com/downloads/decaffeinatid0.09.zip

Otra herramienta, que, aunque tiene otras funciones, nos puede servir para la

detección de sniffers es DecaffeinatID, que nos informará de cualquier cambio en

la tabla de entradas ARP. La utilidad permanece residente monitorizando de forma

automática. Se trata, pues de una herramienta ARP-Watch.

Firewalls. Outpost.

Algunos cortafuegos o firewalls por software, implementas soluciones de

protección, análisis y bloqueo de ataques Ethener. En este caso Outpot, tiene la

opción: Activar Filtro Inteligent ARP en las Propiedades de la detección de

ataques.

ProDETECT 0.2 BETA

Page 16: Sniffers en Nuestra Red

Incluye configuración de alertas, alertas por SMTP, logs, rangos y listas de IPs, etc.

NOTA: Puede no funcionar correctamente con las últimas versiones de Winpcap.

http://sourceforge.net/projects/prodetect/

http://prdownloads.sourceforge.net/prodetect/proi386.exe?download

Alerta de ProDETECT:

Detección en redes conmutadas

En redes commutas o que hagan uso de switches, la técnica de ARP

poisoning oenvenenamiento arp es la más efectiva. Esta técnica consiste, muy

brevemente, en modificar (envenenar) la tabla ARP de los host involucrados en el

ataque para que éstos envíen a la red tramas Ethernet con destino la MAC del

atacante. Esto significa que el switch entregará los datos de las comunicación a

dicho host. Para evitar el refresco de la caché ARP es necesario el envio constante

de arp-reply.

Page 17: Sniffers en Nuestra Red

Una posible solución o defensa sería el uso de MACs estáticas, con el fin de que no

puedan ser modificadas, aunque en algunos sistemas Windows esto no es eficiente

al 100 por 100.

ArpOn ( Arp Handler Inspection )

http://arpon.sourceforge.net/

ArpOn es una herramienta para sistemas Linux, Mac OS X, FreeBSD, NetBSD,

OpenBSD, que implementa, no ya la detección de ARP spoofing, si no, más bien, el

bloqueo y defensa mediante dos técnicas:

SARPI Se refiere al modo de funcionamiento estático. En este

modo, ArpOn crea una lista, guarda en una caché, las entradas de la tabla de

ARP, de esta forma, ArpOn, sólo permitirá el tráfico de peticiones y

respuestas ARP de las IP / MACreflejadas en la información previamente

guardada en la cache más arriba comentada.

DARPI Se refiere al modo de funcionamiento dinámico. Es este

modo, ArpOn, borra toda las entradas de la caché ARP. Entonces, las

nuevas entradas se irán añadiendo a una caché especial para los mensajes de

petición o ARPrequest y para los de respuesta o ARPreply. ArpON, de

forma dinámica, básicamente, lo que hace es

dejar pasar los ARPrequest generados por nuestro host y apunta en la

caché la dirección destino.

rechaza los ARPRequest que proceden de la LAN dirigido a nuestro host

y borra lo referente a la dirección origen. El mismo Kernel será el que envie

un paquete ARPrequest a la dirección de orígen.

dejar pasar los ARPreply generados por nuestro host.

para los ARPreply procedentes de la LAN, se comprueba si la

dirección de origen se encuentra en la caché apuntada por ArpOn en el

ARPrequest generado por nuestro host. Si existe la entrada, se le deja pasar

al paquete, caso contrario se rechaza y elimina la entrada de la caché.

De esta forma ArpOn nos portejerá de ARP Poisoning o envenenamiento ARP

producidos tanto por ARPrequest como por ARPreply.

Nast. ( Network Analizer Sniffer Tool. )

http://nast.berlios.de/

Herramienta para Linux. Nast es un Sniffer multipropósito. Entre otras

funciones, realiza:

listado de host de una red,

Page 18: Sniffers en Nuestra Red

búsquedas de Gateway,

descubrimiento de modo promíscuo en interfaces de red,

reseteo de conexiones TCP establecidas,

búsqueda de dispositivos hub / switch,

scan de puertos

seguimiento de TCP data Stream

…..

y, lo que nos interesa: control y secubrimiento de ARP-Spoofing.

Para este propósito tan solo ejecutar naast de la forma:

nast -c, –check-arp-poisoning

nos devolverá un mensaje: Waring! Truly is xx:xx:xx:xx:xx:xx, possible

ARP-Poisoning!!!

ARPWatch

En sistemas Linux la herramienta ( http://www-nrg.ee.lbl.gov/ ) nos puede servir

para detectar el uso del envenenamiento ARP en nuestro sistema. Con ARPWatch

podemos comprobar la correspondencia entre pares IP-MAC (Ethernet). En caso

de que un cambio en un par se produzca (esto es, se escuche en el interfaz de red

del sistema), ARPWatch envía un correo de notificación del suceso a la cuenta root

o administrador del sistema con un mensaje tipo ―FLIP FLOP o Change

ethernet address―. También podemos monitorizar la existencia de nuevos host (

aparición de una nueva MAC en la red).

# ./arpwatch -?

Version 2.1a11

usage: arpwatch [-dN] [-f datafile] [-i interface] [-n

net[/width]] [-r file]

[-u username] [-e username] [-s username]

# cat /etc/sysconfig/arpwatch

# -u : defines with what user id arpwatch should run

# -e : the where to send the reports

# -s : the -address

OPTIONS=‖"

Una herramienta similar a ARPwatch pero para sistemas Windows la encontramos

enWinARP Watch

v1.0 (http://www.securityfocus.com/data/tools/warpwatch.zip). Esta herramienta

no enviará correo alguno a ningún administrador, pero nos tendrá puntualmente

Page 19: Sniffers en Nuestra Red

informados sobre la caché ARP, las correspondencias IP/MAC, cualquier

nuevo par que se añada a la caché, etc.

Una alerta de WinARP Watch:

Existe en el mercado un tipo especial de switches que está preparados para que la

tabla ARP no pueda ser modificada.

Hablando de herramientas, una que realiza este trabajo de escucha en redes

conmutadas con gran eficacia

es ettercap. Ettercap ( http://ettercap.sourceforge.net ) es capaz de escuchar

tanto redes basadas en hubs como en switches. Además puede escuchar

conexiones SSH e incluso detectar otros envenenamientos o modificaciones de la

tabla ARP.

Detección de envenenamiento ARP con ettercap en un sistema Windows.

C:\…\ettercap>ettercap -Nc

ettercap 0.6.b (c) 2002 ALoR & NaGA

List of available devices :

–> [dev0] – [3Com EtherLink PCI]

Please select one of the above, which one ? [0]:

Your IP: 192.168.4.3 with MAC: 00:04:76:F2:C9:5F on Iface:

dev0

Building host list for netmask 255.255.255.0, please wait…

Sending 255 ARP request…

* |==================================================>|

100.00 %

Resolving 14 hostnames…

Page 20: Sniffers en Nuestra Red

* |==================================================>|

100.00 %

Checking for poisoners…

MAC of 192.168.4.59 and 192.168.4.235 are identical !

Otra herramienta que detecta cambios en los pares IP/MAC así como ataques tipo

arp-spoofinges:

ACiD (ARP Change intrusion Detection)

C:\scan\ACID>acid

ACiD – 0.0.2 – (c) 2002 Roberto Larcher –

[email protected]

All rights reserved.

Press CTRL+C to stop.

Initializing default adapter. Please wait…

IP: 0.4.168.192 Subnet Mask: 0.255.255.255

Network type: Ethernet

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.2.3 00:a0:24:4d:bc:69

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.2.3 00:a0:24:4d:bc:69

ACiD: bogon 192.168.2.3 00:a0:24:4d:bc:69

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.20 00:a0:24:4e:4e:4e

Page 21: Sniffers en Nuestra Red

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7

ACiD: bogon 192.168.4.15 00:01:02:e7:57:cf

ACiD: bogon 192.168.4.10 00:a0:24:4e:51:6b

ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.4.3 00:04:76:f2:c9:5f

ACiD: bogon 192.168.4.3 00:04:76:f2:c9:5f

ACiD: bogon 192.168.4.20 00:a0:24:4e:4e:4e

ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.4.20 00:a0:24:4e:4e:4e

ACiD: bogon 192.168.4.15 00:01:02:e7:57:cf

ACiD: bogon 192.168.4.8 00:10:4b:4d:15:bb

Ctrl+C detected…

IP MAC table:

192.168.2.3 00:a0:24:4d:bc:69

192.168.4.1 00:04:76:97:b3:a9

192.168.4.10 00:a0:24:4e:51:6b

192.168.4.15 00:01:02:e7:57:cf

192.168.4.20 00:a0:24:4e:4e:4e

192.168.4.3 00:04:76:f2:c9:5f

192.168.4.5 00:04:76:9a:66:a6

192.168.4.8 00:10:4b:4d:15:bb

192.168.5.240 00:06:5b:05:9a:e7

ArpCount table:

192.168.2.3 -3

192.168.4.1 -8

192.168.4.10 1

192.168.4.15 -2

192.168.4.20 3

192.168.4.3 -2

Page 22: Sniffers en Nuestra Red

192.168.4.5 -10

192.168.4.8 1

192.168.5.240 -6

En la consola de ACID si existe un error en la paridad IP/MAC nos alertará de esta

manera:

ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)

ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f

(00:11:22:33:44:55)

ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)

ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f

(00:11:22:33:44:55)

ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)

ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f

(00:11:22:33:44:55)

ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)

ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f

(00:11:22:33:44:55)

ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9

ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6

Possible spoof 192.168.4.5 00:04:76:9a:66:a6 was at

00:04:76:f2:c9:5f

Usando Wireshark para la detección de Arp-Spoofing

Vamos a establecer dos escenarios diferente para ver el comportamiento de

Wireshark en la detección del ataque. Los tres escenarios se sitúan en un ambiente

de red segmentadamediante switches.

Pero, antes que nada, ¿ como podemos, en Wireshark, detectar el arp-

spoofing ?. Tenemos tres formas:

Wireshark detecta el ataque por arp-spoofing y lanza el

mensaje (duplicate use of 192.168.1.11 detect!)‖

Puede ser que wireshark no lo detecte, entonces, tras aplicar un filtro arp:

Un determinado host, está anunciando su MAC. Pero ningún otro

host realiza petición alguna.

Un determinado host si solicita una MAC. Pero se observan dos

respuestas misma IP con MACs diferentes.

Page 23: Sniffers en Nuestra Red

Los escenarios de nuestra pequeña red de pruebas:

Escenario A.

máquinas victimas: 192.168.1.36 / 192.168.1.11

maquina atacante : 192.168.1.5

maquina detección: 192.168.1.5

Escenario B.

máquinas victimas: 192.168.1.36 / 192.168.1.11

maquina atacante : 192.168.1.77

maquina detección: 192.168.1.5

Para la pruebas usaremos Ettercap ARP-Poison:

Los pasos seguidos para realizar en nuestra red un Envenenamiento ARP son

los siguientes:

1. Sniff > Unified Sniffing... (seleccionamos interface de red)

2. Hosts > Scan for Hosts

Page 24: Sniffers en Nuestra Red

3. Hosts > Hosts List

4. Target 1 (seleccionamos por ejemplo la Puerta de Enlace)

5. Target 2 (seleccionamos la ―víctima‖)

6. Mitm > Arp poisoning..

7. Start > Start Sniffing > Sniff remote connections.

8. Al terminar. Mitm > Stop mitm attack(s) y Start > Stop Sniffing

Vamos entonces a ver el comportamiento de Wireshark en cada uno de los caso:

Escenario A:

Obervad como wireshark nos muestra un mensaje: ―(duplicate use of

192.168.1.11 detect!)‖.

Escenario B:

Page 25: Sniffers en Nuestra Red

¿ Esta claro no ?