Ultimos Mensajes del Foro

Manual Aleatorio

La cara oculta de internet (PDF)
En este documento se explican las partes de internet que no todo el mundo llega a conocer, con explicaciones para que todo el mundo las entienda.
Leer más...
Sniffing con Ettercap Imprimir E-mail
Hacking y Seguridad - Snifers / Sniffing
Escrito por Buanzo   

Excelente texto de Buanzo que nos explica como usar el increible programa ettercap  para esnifar trafico en la red.

 


RGZ_0A Sniffing con Ettercap (GNU/Linux) Sniffing Buanzo


Que tal! Soy Buanzo, muchos de ustedes ya me conocen, y otros no tanto. 
Este es mi primer articulo como miembro del RareGaZz Team, el cual sigo y
conozco desde hace muchos a~os. Quiero decir que es un orgullo contar con la
compa~ia de todos los que hacemos y somos RareGaZz. 

Listo, habiendo finalizada la tipica introduccion cursi, metamonos un poco
en tema, diciendo:


Aguante RareGaZz y los raredudez, CARAJO!

(Y bue, soy Argentino).

-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0

El ettercap es un programa muy piola que nos permite capturar el trafico que
circula por una LAN, ya sea que las PC's esten interconectadas por medio de
HUB's o de SWITCHES.

Me imagino que varios se sorprenderan cuando yo digo que se puede meter un
sniffer en un ambiente switcheado. Bueno, resulta que el ettercap, aparte de
ser un sniffer muy bueno, es tambien un excelente ARP poisoner. Si no
entienden lo que esto significa, no desesperen. Van a averiguarlo durante la 
lectura de este articulito.

Ah! El ettercap tiene una interfaz grafica para consola, en modo texto, nada
de X, bastante piola y rapida una vez que nos aprendamos las teclas de
comando. De todas formas, en cada pantalla pueden presionar la 'h' (por
'H'elp, ayuda), y pueden volver atras o salir presionando 'q' (por 'q'uit). 

El primer paso es, obviamente, bajar el ettercap.

A tal efecto, vamos a dirigir nuestro lynx, links o cualquier otro navegador
al sitio oficial de ettercap, en: 

http://ettercap.sourceforge.net

A decir verdad, la URL a la pagina de Download es la siguiente:
http://ettercap.sourceforge.net/index.php?s=download

Si ustedes YA TIENEN un ettercap instalado, prueben directamente de ejecutar
el comando 'ettercap -v' que, aparte de mostrarnos la version que tenemos de
ettercap, nos pregunta si queremos ver si hay un actualizacion, y bajarla.

Tenemos que tener el wget instalado, por supuesto. 

El sitio oficial del Wget es:
http://www.wget.org

Pueden bajarlo del FTP oficial en:
ftp://ftp.gnu.org/pub/gnu/wget/

En mi caso, yo tengo la version 0.6.4, veamos que pasa si hago 'ettercap -v':

root@INTRA:ettercap-0.6.4 # /usr/local/sbin/ettercap -v

Current version is : 0.6.4


Do you want to check for the latest version ? (y/n) y


Connecting to http://ettercap.sourceforge.net...
Requesting /latest.php...



You already have the latest ettercap release (0.6.4)

En mi caso, yo tengo la ultima version, al menos al momento de escribir este
articulo (27 de febrero, 2002). 

Bueno, ahora que ya bajamos el ettercap, procederemos a desempaquetarlo,
configurar la compilacion, compilarlo e instalarlo, para luego compilar e
instalar los plugins. 

1) Desempaquetado

La tipica:

root@INTRA:~ # tar -zxf ettercap-0.6.4.tar.gz

2) Configurar la compilacion

root@INTRA:~ # cd ettercap-0.6.4
root@INTRA:~/ettercap-0.6.4 # ./configure

3) Compilarlo
root@INTRA:~/ettercap-0.6.4 # make

4) Instalarlo
root@INTRA:~/ettercap-0.6.4 # make install

5) Compilar & Instalar los plugins
root@INTRA:~ # cd plugins
root@INTRA:~/ettercap-0.6.4/plugins # make install


Ahora, si todo anduvo bien, vamos a tener un lindo ettercap instalado y listo
para ser usado. 


ATENCION!!!!!!!!!!!!!

Si ustedes son usuarios de CABLEMODEM van a poder divertirse bastante. Ustedes
prueben, nomas. En ADSL no van a poder hacer nada, lo mas seguro. 

Bueno, en mi caso, yo tengo una peque~a intranet (mi cybercafe, en San Isidro,
con linux en algunas maquinas, por si alguno necesita... mandenme un email :).

Como les decia, en mi caso tengo un server con ADSL, dos placas de red (ifext,
e ifin, como les digo yo, por interfaz externa [=adsl], e interfaz interna
[=intranet]). 

La interfaz interna tiene una mascara de subred (netmask, bue) de
255.255.0.0 (o sea, una clase B), por lo que me da 65535 hosts
aproximadamente. (255^2). Por tal motivo, en vez de ejecutar ettercap a secas,
vamos a pasarle el parametro "--netmask 255.255.255.0", lo que corresponde a
una clase C, para no tener que esperar mucho durante el ARP discovery, que es
el metodo que utiliza ettercap para encontrar que hosts estan, digamos,
online. 

En mi caso, luego de ejecutar "ettercap --netmask 255.255.255.0" en el server
(10.0.0.1), obtengo una lista de 9 direcciones IP. Si se mueven por esta lista
veran que en la seccion de abajo se mostrara el nombre del host, la IP y la
MAC. 

Por que puedo usar 255.255.255.0 como netmask? Porque yo uso direcciones IP de
10.0.0.1 a 10.0.0.11, como ven, solo el cuarto octeto se modifica. Por tal
motivo, la mascara puede ser 255.255.255.0 

Esto del cambio de netmask lo hago solamente para que el ARP discovery tarde
menos, solo por eso. Por supuesto, podria iniciar solo con "ettercap", y
tambien me daria los mismos 9 hosts, al menos en MI caso particular. De
ustedes depende utilizar la netmask por defecto u otra.

Si a ustedes en verdad les interesa ciertas direcciones IP, pueden hacer esto:

# ettercap -H IP1,IP2,IP3

Con lo que el ARP discovery no se utilizara, y solo se hara un Reverse Lookup
en el DNS para obtener los nombres de host de esas IP. 

Les vuelvo a recordar: En cada pantalla nueva que se encuentren, presionen la
tecla 'h', para ver los comandos disponibles. 

Bueno, una vez dentro de la pantalla principal de ettercap, veremos que se nos
presenta una lista de direcciones IP activa, dispuestas en dos columnas
iguales. Con los cursores podemos movernos sobre esa lista de IP's, y a medida
que nos movemos podremos ver en la parte de abajo de la pantalla el nombre de
host y la direccion MAC (de la placa de red) correspondiente a dicha IP. 

La columna de la izquierda nos permite, con ENTER, seleccionar una IP de
ORIGEN (=SOURCE), y en la derecha podremos seleccionar una IP de DESTINO
(=DEST). 

Una vez seleccionado un PAR Origen/destino, podremos habilitar 3 modos
diferentes de sniffing, los cual analizaremos. Luego veremos que podemos
hacer una vez que estemos haciendo el sniffing en si.

Sniffing por IP (tecla "S", por 'S'tandard).
Sniffing por MAC (tecla "M", por 'M'AC).
Sniffing utilizando ARP Poisoning (tecla "A", por 'A'RP). 

En la mayoria de los casos, yo recomiendo utilizar sniffing basado en MAC, ya
que el analisis del trafico se realiza a mas bajo nivel que TCP/IP, y por
lo tanto tenemos mayores probabilidades de encontrar lo que necesitamos. Por
supuesto, ustedes prueben entre IP y MAC, dependiendo de varios factores, 
encontraran que uno u otro les proveen mayores O mejores resultados.

Luego nos queda el sniffing por ARP. Este lo van a utilizar cuando esten en
una intranet, y NO SE ESTEN EJECUTANDO EL SNIFFER en la maquina destino. 
Ustedes diran: que gracia tiene ejecutar un sniffer en la maquina destino? 
Bueno, en MI caso, la maquina destino es la 10.0.0.1, la cual actua como
compuerta de enlace para Internet del resto de las maquinas de la Intranet,
con lo que el 99% del trafico tiene como destino REAL a Internet, aunque
obligatoriamente tienen que pasar por 10.0.0.1 :).

En OTRO caso, por ejemplo, sniffing entre 10.0.0.1 y 10.0.0.7, pero nosotros
teniendo el sniffer en 10.0.0.3 (por ejemplo), deberiamos utilizar SI o SI
sniffing por ARP poisoning. El metodo ARP Poisoning consiste en 'envenenar'
(de alli su nombre) la tabla ARP, la cual indica como enrutar, o sea, como
deben viajar los datos en una red SWITCHEADA. Lo que hace el envenenamiento es
modificar la tabla ARP de tal manera que para llegar a 10.0.0.1, se deba pasar
antes por 10.0.0.3. (por ejemplo). 

==============================================================================
ATENCION!!
Si NO hay un switch, pero hay un HUB (sea activo o pasivo), no es necesario
usar ARP Poisoning, ya que con solo poner la placa de red en modo promiscuo
(ettercap hace eso automaticamente), alcanza para ver los paquetes de la red.
==============================================================================

Bien, ahora que estan haciendo el sniffing en si, veran que la parte de arriba
de la pantalla dice el SOURCE en IP o en MAC, dependiendo del modo de sniffing
que hayamos utilizado, tambien nos dice si los filtros se encuentran
activados, etc. (Veremos mas de filtros mas adelante). 

En la parte de abajo de todo veran vuestra IP (Your IP), la MAC de vuestra
interfaz de red actual (en mi caso es la interna, eth1), la interfaz (eth1) y
el tipo de vinculo detectado en la red: un SWITCH, en mi caso. Puede decir 
HUB, por ejemplo. Si dice HUB, excelente, no necesitan hacer ARP Poisoning.

Luego, la seccion mas interesante, es la del medio que, si todo va bien, veran
lista de conecciones actualizandose permanentemente. Tambien veran la cantidad
de hosts en la red actual, junto a vuestra IP y netmask actuales. 

Este listado de conecciones corresponde a trafico tcp o udp entre el SOURCE y
DEST que elejimos. La lista esta conformada por 5 columnas, de izquierda a
derecha, de la siguiente forma (les explico con un ejemplo (los IP se
modifican para evitar posibles ataques :) 

1) 10.0.0.7:1863 64.z.y.x:1193 | ACTIVE | msnp

Bien, como pueden ver, la primer columna corresponde al numero de coneccion
interno que el ettercap toma, por supuesto, no tiene nada que ver con las
conecciones que 10.0.0.7 haya hecho antes de que iniciemos el sniffing, sino
que es, entonces, la primera coneccion que se 've' desde que ettercap inicio
el sniff.

La segunda columna es un par IP:PUERTO de origen, o sea que es una coneccion
desde la IP que nosotros elejimos como origen (10.0.0.7, en mi ejemplo),
desde el puerto 1863.

La tercer columna corresponde, por lo tanto, al par IP:PUERTO correspondiente
a este enlace en particular. Como saben, las conecciones TCP o UDP necesitan
de al menos dos parametros: IP y puerto de destino de la coneccion o destino
de los datos, y una IP y puerto de origen (generalmente tomado al azar el
puerto, aunque puede ser especificado. Historicamente, si el usuario de origen
era root, entonces el puerto seguramente seria < 1024, y se tomaba que si una
coneccion venia desde un puerto 1024, era una coneccion 'segura', por haber
sido iniciada por root). 

La cuarta columna indica el estado del vinculo: ACTIVE (activo) o silent
(silencioso), UDP, o CLOSED (cerrada). Pueden imaginar lo que indica cada uno,
no? :) 

La quinta columna nos indica el protocolo: en este caso es msnp.... o sea,
MicroSoft Network Protocol. Es alguien chateando por MSN.

Y que podemos hacer con todo esto? Presionen 'h'. Veran que tienen una
interesante lista de comandos que pueden utilizar. Entre los mas importantes
para esta introduccion al ettercap, mencionaremos los siguientes:

: Para ver el trafico en la coneccion que seleccionemos. Tipicamente
  lo que mas van a usar, al menos inicialmente.
O : Analisis pasivo de los hosts. Se identifica el sistema operativo,
  marca del adaptador de red y otros datos.
K : 'matar' (finalizar) la coneccion.
D : resolver IP por DNS
R : 'refrescar' la lista de conecciones.
L : guardar en un archivo todos los passwords que se hayan detectado.
  Esta es una funcion interna de ettercap, generalmente funciona
  mejor cuando utilizamos el metodo ARP Poisoning. Se llaman 'Active
  Password Collectors'.

Bien, ahora, presionemos sobre alguna coneccion. Veran que la seccion
de abajo (el cuadro de estado, digamos...) se actualiza acordemente, mostrando
protocolo (TCP, UDP) y applicacion (msnp). 

Como veran, la seccion del medio de la pantalla ha cambiado de aspecto,
transformandose ahora en un par de ventanas. La de la izquierda corresponde a
datos que se envian desde el source (10.0.0.7:1863, en este ejemplo), y la de 
la derecha corresponde a datos que se envian desde el destino (64.x.y.z:1193).
Debajo pueden ver en que formato se estan mostrando los datos. Inicialmente,
aca dira 'ASCII', pero puede decir 'TEXT' (se filtran los caracteres
no-imprimibles y solo se muestran los imprimibles) o 'HEX', se muestra todo en
hexadecimal. Muy piola para analisis de protocolo, ingenieria inversa, etc.

Ahora, presionen 'h'. Veran el cuadro de ayuda correspondiente al estado
actual: sniffing de una coneccion. 

Como pueden ver, aparecen los tipicos comandos: TAB para moverse entre una y
otra ventana, pgup y pgdown (tambien los cursores up y down) para hacer scroll
hacia atras o adelante en la ventana actual. Luego estan otros comandos:

I : Injectar caracteres en la coneccion. [Solo en ARP Poisoning]
F : Editar las cadenas de filtrado [para mas adelante, pero
  investiguen]
K : Matar la coneccion
A : Ver en modo ASCII
X : Ver en modo HEXadecimal
T : Mostrar solo caracteres legibles (filtrar binario, digamos)
J : Unir las dos ventanas en una sola (muestra en colores diferentes
  el trafico de origen y destino, etc). En este modo no funciona el
  injectado de caracteres, porque no se puede distinguir si queremos
  injectar en origen o destino.
S : Detener la visualizacion (pausa? :)
L : Iniciar registro del trafico a un archivo

Por otra parte, el ettercap permite ser usado de forma no tan interactiva. 
Esto lo hacemos directamente armando los parametros de sniffing en la linea de
comandos. "ettercap --help" nos muestra los comandos. Vean, tambien se
incluyen buenos ejemplos. Les recomiendo redirecciones la salida a un archivo,
con lo que podran leer los ejemplos y comandos, los cuales ahora les van a
resultar entendibles, luego de haber visto el uso 'interactivo' de esos
terminos. 

Quiza se dieron cuenta de que hasta ahora no hable de los plugins. Bien, los
plugins son muchos, y la verdad algunos son bastante faciles de usar, por lo
que me gustaria que investiguen USTEDES con los plugins y con los filtros,
asi como tambien con la funcion 'Packet Forge', que nos permite armar un
paquete TCP/UDP como nosotros querramos. Espero vuestros comentarios tanto
por email como en la lista RareDudeZ!.