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

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 usando Wireshark (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 ?

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
  • 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:

C:\>arp -a

Interfaz: 192.168.4.3 on Interface 0x1000003
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:0x300

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,
  • 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:

$ 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

-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
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.

Deteccion de sniffer  AntiSniff. Seguridad y Redes. Alfon

Deteccion de sniffer  AntiSniff. Seguridad y Redes. Alfon

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 ]

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 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

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.

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

deteccion de sniffers. promiscan en seguridad y redes alfon

«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 usar PromiScan es necesario contar con 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 (arne.vidstrom@ntsecurity.nu)
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

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.

prodetect deteccion sniffers en seguridad y redes

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 o envenenamiento 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.

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 / MAC reflejadas 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,
  • 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 en WinARP 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 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…

* |==================================================>| 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 – robertolarcher@webteca.port5.com
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
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
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 segmentada mediante 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.

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:

arp poison ettercap

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
  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:

wireshark captura arp spoofing sniffer

Obervad como wireshark nos muestra un mensaje: «(duplicate use of 192.168.1.11 detect!)».

Escenario B:

wireshark captura arp spoofing deteccion sniffers

¿ Esta claro no ? .

_______________________________________________________

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

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

Esta entrada fue publicada en Actualizaciones de Artículos, Detección Sniffers, Seguridad y redes, Wireshark . Tshark y etiquetada , , , , , , , , , , , . Guarda el enlace permanente.

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

  1. Dabo dijo:

    Enhorabuena Alfon, esta puesta al dia le ha venido más que bien, saludos -;)

  2. Dabo dijo:

    Ya lo veo ya, otra cosa más que compartimos -;)

  3. Alfon dijo:

    A ver si va a resultar que, de jovencio, tú también tenías tu banda de rock…

  4. Pingback: Modificando ficheros de tráfico de red .pcap con Bittwiste. | Seguridad y Redes

  5. Pingback: Netsniff-ng. Un sniffer diferente de alto rendimiento. Parte I. | Seguridad y Redes

  6. C.D. dijo:

    excelente post me sirvio bastante

  7. Pingback: Detectando Sniffers en nuestra red. Redes conmutadas y no conmutadas. Actualización. | Seguridad y Redes |

Deja un comentario