Sunteți pe pagina 1din 23

← Maty – Nauscopio.

Filtrado, Bloqueo y Ocultación de la publicidad en navegadores Gecko


Manifiesto “En defensa de los derechos fundamentales en Internet” →

Detectando Sniffers en nuestra red. Redes conmutadas y


no conmutadas. Actualización.
Publicado el 27 noviembre, 2009por 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
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.
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
“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.


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 / 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,
 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:
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:
Obervad como wireshark nos muestra un mensaje: “(duplicate use of
192.168.1.11 detect!)”.
Escenario B:

¿ Esta claro no ? .
← Wireshark. Tshark. Detectando tráfico P2P en nuestra red.

Snort. Opciones de las reglas no relacionadas con el contenido. →

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


no conmutadas.
Publicado el 25 junio, 2008por Alfon

Después de algún comentario y correos, vamos a estudiar el posicionamiento o


colocación de un sniffer en nuestra red para obtener los resultados que
esperamos.

Todo depende de la topología de red y el uso de hub o switch.


Este artículo es válido para cualquier sniffer de los que ya hemos visto. Wireshark,
Tshark, WinDump / TCPdump, etc.
Sobre detección de sniffers en redes conmutadas y no
conmutadas: Detectando Sniffers en nuestra red. Redes conmutadas y no
conmutadas. Actualización.
Posición del sniffer en red no conmutada (HUB).
El escenario más básico lo encontramos en una red conectada mediante hub. En
este caso posicionamos el sniffer en cualquier ranura o boca del hub y
obtendremos, con la tarjeta en modo promíscuo, todo el tráfico de la
red. Esto es así porque en un hub todos los paquetes son transmitidos a todos los
hosts conectados en el mismo segmento de red. Se divide el ancho de banda entre
cada host de la red, ademas, se transmiten los paquetes a la velocidad del
dispositivo más lento del segmento. Se producen también colisiones que derivan en
una red más lenta debido a las retransmisiones.
Posición del sniffer en red conmutada (SWITCH).
En este caso, a cada host conectado al switch, le llega solo el trafico dirigido a
el (unicast ) y el broadcast/multicast. El tráfico dirigido a otros host NO lo
veremos. No divide el ancho de banda, esto significa, a grosso modo, que en un
switch 10/100 cada puerto es capaz de transmitir a un máximo de 100 dedicado. Es
más eficiente que las redes no conmutadas.
Resumiendo entonces, si ubicamos un sniffer en cualquier puerto del switch, solo
veremos el tráfico dirigido solo al host donde se encuentre el sniffer y el tráfico
broadcast/multicast tal como ARP.

Soluciones.
Solución 1
Una posible solución podría ser el envenenamiento ARP, un Arp Poison. Pero esto
es totalmente desaconsejable porque podemos “destabilizar” la red y crear mayores
problemas.
Solución 2
Podríamos también colocar el sniffer en el gateway de salida a internet, ó en
un host firewall de varias tarjetas, indicar cual de las interfaces nos interesa
“olfatear”, de esta forma veremos algo más de tráfico que no sea el
broadcast/multicast.
Pero para ver todo el tráfico entre dos hosts las soluciones más eficaces son otras.

Solución 3
Una de ellas es aprovechar alguna de las características de un switch administrable
como el SPAN (Switch Port Analysis) o llamado de otra forma el Port
Mirroring. Esta es una caraterística que lo que hace es, básicamente, copiar el
tráfico entre dos puertos a un tercero (ubicación del host sniffer) del
switch. Eel Port mirroring tiene el problema que multiplica la carga del switch.
Solución 4
Pero ¿ que pasa si el switch es antiguo y/o no administrable, o simplemente no
soporta Port Mirroring ?.

Para este caso tenemos otra opción. Se trata de conectar un hub a una de las
salidas o puerto del switch y a este hub conectar el host sniffer (C) y
uno de los host a capturar el tráfico (B). El otro host llamémosle (B)
sigue en su ubicación del switch . De esta forma C puede ver el tráfico
entre A y B. ( B puede ser cualquier otro host conectado al switch o un servidor ).
Esta opción, al igual que el Arp Poison, es algo problemática y desaconsejable.

Solución 5
Otra opción de la que disponemos es instalar otra interface de red en el host
sniffer de forma que tenga dos interfaces de red. Una de las tarjetas la
conectamos al switch y la otra a uno de los hosts a analizar. Esta opción se
considera pasiva, pero necesita de configuración del host sniffer a nivel de
interfaces de red para establecer el modo Bridge.
(http://technet.microsoft.com/en-us/library/bb457038(TechNet.10).aspx).
Solución 6
Est solución, quizá la más eficiente y aconsejable aunque también más costosa y
quizás más incomoda. Consiste en hacer uso de un Network TAP o “Test Access
Port” (Puerto de acceso de pruebas). Con este dispositivo podemos capturar el
tráfico de una red conmutada de forma pasiva, es decir, no interfiere en el
flujo o tráfico de nuestra red.

S-ar putea să vă placă și