Foros del Web » Administración de Sistemas » Seguridad y redes »

Detectando Sniffers en Sistemas Linux.

Estas en el tema de Detectando Sniffers en Sistemas Linux. en el foro de Seguridad y redes en Foros del Web. Se trata de una ampliación al artículo de Detección de sniffer en la red que está en las FAQs. Eestaba pensado para windows/Linux. En este ...
  #1 (permalink)  
Antiguo 23/05/2003, 03:47
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Detectando Sniffers en Sistemas Linux.

Se trata de una ampliación al artículo de Detección de sniffer en la red que está en las FAQs. Eestaba pensado para windows/Linux. En este caso lo amplio un poco sólo para sistemas Linux.

Tratamos este tema, de momento, para redes no conmutadas. más adelante veremos que se puede sniffear en redes conmutadas y hasta detectar este tipo de intrusiones.

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 grn aproximación al descubrimiento de este tipo de software.

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:

Código:
$ 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:

cpm (Check Promiscuous Mode)

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 promiscuo (escuchando todo el tráfico de la red).

Código:
$ 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:

Veamos como trabaja NEPED

Tenemos que introducir la interface de red:

Código:
$ 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.

Más información en: www.netoptics.com

SniffDet - Remote Sniffer Detection
http://prdownloads.sourceforge.net/s...det-0.8.tar.gz

Usa lás técnicas test ICMP, test ARP, test DNS y test de ping de latencia.
Código:
sniffdet 0.8
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:
Código:
------------------------------------------------------------
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
------------------------------------------------------------
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:
Código:
# 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
* Test DNS

Test DNS: Creamos falsas conexiones TCP contra hosts
inexistentes en la subred a testear. Si un sniffer se encuentra activo, enviará peticiones a la DNS para resolver el nombre del host. Interceptando dichas peticiones averiguaremos si en el segmente de red exite o no un sniffer 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,
* etc.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #2 (permalink)  
Antiguo 25/05/2003, 17:22
 
Fecha de Ingreso: enero-2002
Mensajes: 417
Antigüedad: 22 años, 11 meses
Puntos: 0
Muchas gracias por la info Alfon, directo a la impresora y ahora mismo voy a ver si tengo algún listillo olfateando lo que no debe :D
  #3 (permalink)  
Antiguo 26/05/2003, 02:57
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Jajajaja, muy bien superjavi. Me alegro que te sirva.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #4 (permalink)  
Antiguo 26/05/2003, 11:01
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 10 meses
Puntos: 0
Alfon , ante todo buen trabajo...

Pregunta: Hace tiempo tb estuve trabajando sobre el tema Sniffer y llegué a la conculsion que la mayoría de anti-sniffer se basaban en intentar hacer tragar info a la Tarjeta, para que esta respondiera de alguna forma delatando si estado promiscuo...

¿Pero si yo corto mediante un sencillo FireWall o capador de puertos, cualquier respuesta por parte de mi máquina? ...

creo que con este sencillo sistema podrías incluso capar las respuestas de nivel 2 como las ICMP ...

tu q crees ???

gracias de antemano, yo tb le voy a pegar un Copy & Paste q no esta nada mal...
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #5 (permalink)  
Antiguo 26/05/2003, 11:10
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Eso no vale para nada. El sniffer "trabaja" en modo pasivo. si cortas ICMP puede que algunas aplicaciones o trabajos en ted no funcionen adecuadamente. Aunque caparas las ICMP supérfluas y no todas, cualquier conexión para descargar correo, navegar, conexiones ftp, telnet, diálogos ARP... todo, sería olfateado por el sniffer.

Y gracias por tu apreciación sobre mi trabajo.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #6 (permalink)  
Antiguo 26/05/2003, 11:28
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 10 meses
Puntos: 0
Creo q no me has entendido, estoy hablando de realizar el capaje en la maquina donde corre el sniffer, con esa forma de proceder, creo que no se le detectaría...
Tu q crees?
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #7 (permalink)  
Antiguo 26/05/2003, 12:12
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Si, es verdad que no te entendí. Entonces tendrías que capar otros tipos de respuestas y a varios niveles. Los anti-sniffers usan varias técnicas. A parte del ping de latencia y otros basados en pings.. Pueden realizar peticiones ARP o un simple test DNS. La "técnica" que mencionas también invalidaría otro tipo de test que se apoya en un ping, se llama Etherping Test. De cualquier manera es algo a probar.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:25.