Introducción al Ettercap
Cada día son mas populares las técnicas de sniffing,
arp-spoof, dns-spoof, man in the middle, etc, pero son muchos los
que creen que están reservadas para los gurú de la red,
y hasta hace poco era así, pero en esto como en todo, con el
tiempo, internet ha hecho posible que se desarrollen rápidamente
herramientas que hacen que lo que antes resultaba muy compicado, ahora
sea cosa de niños (no estoy seguro de si eso es bueno o malo).
En este texto voy a tratar de explicar (por encima) cómo utilizar
el programa "Ettercap".
He escogido el "ettercap" a parte de porque considero que
es una de las mejores herramientas que se pueden encontrar para interceptar
conexiones, porque creo que después de que TONTETE hiciese
3 estupendos manuales sobre el tema (Redes
y sniffers, Arp-spoof, fundamento y practica,
Manual sobre la técnica "Man In
The Middle" ), de que "moebius" escribiera un articulo
sobre el "dsniff"
(para linux), publicado en la revista "hackxcrack" Nº11,
y de que "Vic_Thor" explicara como utilizar el "Cain"
(Windows) para interceptar el tráfico de redes mediante envenenamiento
arp (http://www.freewebs.com/victhor/hxc/FAQ/faq2.pdf
) creo que le ha llegado el turno al "Ettercap" y como hace
bastante que no hago un texto de este tipo... ya me va tocando :)
Ya se que muchos de vosotros le teneis miedo al linux, pero sabeis
que tarde o temprano tendreis que atreveros, y ¿qué
mejor momento que éste?, porque el ettercap funciona bajo linux,
aunque si prefieres seguir pensandotelo, también puedes instalarlo
en Windows, con la ayuda del cygwin, pero de esto hablaremos mas adelante.
Estos temas pueden resultar muy técnicos, pero como siempre,
y para que todo el mundo lo entienda, no voy a entrar en explicaciones
profundas sobre el arp, sniff, topologías de red etc... sólo
trato de demostrar lo fácil que pude resultar un ataque teóricamente
avanzado, pero que hoy por hoy cualquiera puede realizar, es decir,
cualquiera puede representar un peligro para nuestra seguridad.
INTRODUCCIÓN:
Antes de meternos de lleno con el ettercap, vamos a introducir unos
pequeños conceptos que tal vez te ayuden a entender de qué
va todo esto.
Hub/Switch
Existen muchos tipos de redes, entre ellas, las que conectan los equipos
mediante un hub y las que lo hacen mediante un switch. Supongamos
que tenemos una minired (LAN) con 3 equipos, como la de muchos particulares,
pequeñas empresas, etc, conectados los tres a un hub, si el
equipo 1 quiere abrir una carpeta (o recurso compartido) del equipo
2, la petición de entrar en esa carpeta sale del equipo 1,
va al hub y éste la manda al equipo 2 y 3, pero como la petición
era para el equipo 2, el 3 cuando la reciba simplemente la ignorará,
y el 2 la recibirá y responderá, y con la respuesta
volverá a suceder lo mismo.
En esta situación, una persona situada en el equipo 3 puede
utilizar un sniffer, y dejarlo a la escucha, de esta forma puede ver
toda la información que se intercambian los equipos 1 y 2,
porque verá en el sniffer todos esos paquetes que no eran para
el, sino para el equipo 2.
Si nuestra minired tuviera un switch y no un hub el funcionamiento
sería diferente, en la misma situación que antes, la
petición del equipo 1 saldría hacia el switch, pero
este la mandaría unicamente al equipo 2, puesto que va dirigida
a él (esta es la diferencia con el hub) , y el 3 no se enteraría
de nada. Ahora el sniffer del equipo 3 ya no sirve para nada.
Ip/Mac
Cada equipo conectado a una red/internet, posee (al menos) una dirección
IP y cada dispositivo de conexión posee una dirección
MAC. La dirección IP es del tipo de X.X.X.X y sirve para distinguir
un equipo de otro cuando estos están conectados (un equipo
aislado, es decir, sin ningún tipo de conexión, también
tiene IP, es la 127.0.0.1). La dirección MAC va "grabada"
en cada dispositivo de conexión (tarjetas de red, routers,
modems...) y en teoría no debe haber 2 iguales en el mundo,
hasta hace poco se suponía que no se podían cambiar
y desde no hace mucho existen técnicas para cambiarlas (no
siempre).
Para que quede mas claro vamos a ver algunos casos: Un equipo independiente,
que se conecta a internet mediante un modem tendrá la IP que
le asigne su ISP y la MAC que trae de fábrica el modem. Si
hay varios equipos conectados a internet con un modem-router (en multipuesto)
los equipos internet serán identificados por la IP que le asigne
su ISP al modem-rputer la MAC será la del modem-router, pero
entre ellos se identificarán unos a otros (y con el modem-router)
mediante la IP que le haya asignado el administrador de la red y la
MAC de sus trajetas de red en el caso de los equipos, puesto que el
modem-router tiene una MAC propia.
Para el ejemplo de nuestra minired, vamos a suponer que la IP del
equipo 1 es 1.1.1.1 la del equipo 2 es 2.2.2.2 y la del 3 es 3.3.3.3,
y que las direcciones MAC de sus tarjetas de red son MAC1, MAC2 y
MAC3 respectivamente, esto nos servirá para entender el siguiente
párrafo.
Arp spoofing
Es aquí donde entra el ARP (address resolution protocol). El
ARP funciona mandando paquetes que hacen la seguiente consulta: "Si
tu ip es X.X.X.X mandame tu dirección MAC", cuando un
equipo recibe esta consulta, comprueba que la ip especificada es la
suya y si es así responde enviando su dirección MAC,
y el equipo que formuló la consulta, guardará la respuesta
en la cache con la ip y la MAC (IP/MAC).
Lo importante es que estos paquetes son enviados a todos los equipos
de la red, independientemente de si la red está conectada mediante
un switch o un hub.
El arp-spoofing funciona mandando consultas y respuestas arp especialmente
creadas.
De nuevo en nuestra minired, si el equipo 3 manda respuestas arp al
equipo 1 con la información IP/MAC manipulada, puede engañarlo
y conseguir que si sale alguna información desde 1 hacia 2,
ésta vaya en realidad hacia 3, y por lo tanto nos encontramos
de nuevo el equipo 3 puede interceptar toda la comunicación
entre 1 y 2 aunque la red disponga de un switch.
Hemos dicho un poco mas arriba "respuestas arp especialmente
creadas", ¿qué contendrían estas respuestas?
simplemente, el equipo 3 construiría una respuesta en las que
el contenido IP/MAC fuese 2.2.2.2/MAC3 (por supuesto en la realidad
esto es mas complicado, pero creo que queda claro el funcionamiento),
y la enviaría al equipo 1, por ejemplo, de esta manera esta
respuesta queda guardada en la cache de 1, y creerá que a la
ip 2.2.2.2 le corresponde la MAC3 en vez de la MAC2 ( a esto se le
llama envenenamiento ARP).
ETTERCAP
¿Qué es?
Según sus autores:
"Ettercap es un sniffer/interceptor/logger
para redes LAN con switchs, que soporta la disección activa
y pasiva de muchos protocolos (incluso cifrados) e incluye muchas
características para el análisis de la red y del host
(anfitrión).
Entre sus funciones, las mas destacadas son las siguientes:
*Injection de caracteres en una conexión establecida emulando
comandos o respuestas mientras la conexión está activa.
*Compatibilidad con SSH1: Puede interceptar users y passwords incluso
en conexiones "seguras" con SSH.
*Compatibilidad con HTTPS: Intercepta conexiones mediante http SSL
(supuestamente seguras) incluso si se establecen a través de
un proxy.
*Intercepta tráfico remoto mediante un tunel GRE: Si la conexión
se establece mediante un tunel GRE con un router Cisco, puede interceptarla
y crear un ataque "Man in the Middle".
*"Man in the Middle" contra tuneles PPTP (Point-to-Point
Tunneling Protocol).
Soporte para Plug-ins.
Lista de plugins:
Colector de contraseñas en : TELNET, FTP, POP, RLOGIN, SSH1,
ICQ, SMB, MySQL, HTTP, NNTP, X11, NAPSTER, IRC, RIP, BGP, SOCKS 5,
IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.
Filtrado y sustitución de paquetes.
OS fingerprint: es decir, detección del sistema operativo remoto.
Mata conexiones.
Escaner de LAN: hosts, puertos abiertos, servicios...
Busca otros envenenamientos en la misma red.
Port Stealing (robo de puertos): es un nuevo método para el
sniff en redes con switch, sin envenenamiento ARP".
Esta info está sacada de la página oficial del Ettercap
y nos da una idea de lo potente que es esta herramienta.
Instalación en Linux:
La isntalación es muy sencilla, la versión de la que
voy a hablar en adelante es la 0.6.b, primero nos bajamos el archivo
desde la web oficial
http://ettercap.sourceforge.net/index.php?s=download
(Existen también los rpm, pero no te los recomiendo, porque
no traen todos los plugins que trae el archivo tar, al menos loe que
yo he probado)
Una vez descargada, la descomprimimos:
tar -zxvf ettercap-0.6.b.tar.gz
vamos a la carpeta en la que se ha descomprimido:
cd ettercap-0.6.b
y comenzamos:
./configure
si todo va bien tenemos varias opciones de make, yo os recomiendo
que lo instaleis todo, para ello poned:
make complete_install
y ya está isntalado.
Si vais a usar las opciones de SSH1 o HTTPS son necesarias las libreiras
OpenSSL ( http://www.openssl.org
) si no las teneis ya instaladas
Instalación en Windows:
Como gran parte de los programas pensados para Linux, es posible hacerlos
correr en Windows gracias al cygwin (http://cygwin.com/setup.exe).
Pero también hay una distribución específica
para Windows, podeis bajarla desde:
http://sourceforge.net/projects/ettercap/
El que prefiera instalar en Windows el paquete para linux está
de suerte, el paquete contiene un archivo llamando README.WIN32 en
el que explica detalladamente los pasos que debeis seguir.
Usando el Ettercap:
Antes de empezar con el Ettercap tenemos que configurar nuestro sistema
para que acepte todos los paquetes que detecte, para ello, abrimos
una terminal y escribimos:
echo 1 > /proc/sys/net/ipv4/ip_forward
para comprobar si el ip_forward está en 1 ó 0 (activado
o desactovado) podemos utilizar este comando:
cat /proc/sys/net/ipv4/ip_forward
y la respuesta debería ser un 1.
Para hacer lo mismo en Windows debemos ir al registro, a la cadena:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
y en el valor IPEnableRouter ponemos un 1 en vez de un 0.
Ahora con el ip_forward activado y el Ettercap instalado, lo ejecutamos
en una terminal (con dimensiones superiores a 80x25) y vemos que lo
primero que hace es buscar todos los equipos de nuestra red, cuando
termina, nos aparece una pantalla en la que aparecen dos columnas
con las IPs en contradas en nuestra red, en la columna de la izquierda
se selecciona (moviendo los cursores y pulsando enter) el equipo "origen"
que se quiere espiar, y en la de la derecha el equipo "destino",
para que nos entendamos, supongamos que en la red en la que estoy
hay un switch que conecta el gateway (172.26.0.1) con el resto de
los equipos, en el momento de las capturas hay 2 equipos encendidos
el 172.26.0.2 y el 172.26.0.4.
Mi equipo es el 172.26.0.4 y voy a tratar de interceptar toda la información
que intercambia el equipo 172.26.0.2 con internet, es decir, la que
envía y recibe del 172.26.0.1 a través del switch, así
que selecciono en la primera columna el equipo 172.26.0.2 y en la
segunda el 172.26.0.1, esto es lo que veremos:

Si pulsamos F1 veremos el menú de ayuda (todos
los menú poseen su propia ayuda, y siempre puedes acceder pulsando
F1):

Vemos que hay 3 modos de sniffing:
Envenenamiento ARP -> pulsando 'a' o 'A'
Sniffing a las IPs -> pulsando 's' o 'S'
Sniffing a las MAC -> pulsando 'm' o 'M'
En nuestro caso pulsaremos 'a', pero hay mas cosas
interesantes, para acceder a los plugins hay que pulsar 'p' o 'P'
, para averiguar el sistema operativo de los equipos de la red pulsaremos
'f' o 'F', también podemos editar las cabeceras de los paquetes
pulsando 'x' o 'X', etc... en fin eso ya es cosa vuestra.
Vamos a activar los plugins que queremos usar, para ello pulsamos
'q' (quit) para salir de la ayuda y ahora pulsamos la 'p', este es
el menú que vemos:

Si bajamos con el cursor vemos que tenemos 34 plugins
instalados (los tenemos porque durante la instalación pusimos
'make complete_install' y esto incluye los plugins), no los voy a
explicar uno por uno, porque cada uno posee una definición
suficientemente descriptiva, y porque sin duda surgirán muchos
mas.
La elección de los plugins a utilizar depende de las necesidades
de cada caso, pero ten cuidado porque algunos son ataques DOS y pueden
ser peligrosos, para la integridad de la red LAN.
Con el cursor te mueves por la lista y para seleccionar el que quieras
activar pulsas 'enter', el plugin quedará marcado con una 'A'.
Algunos están marcados con una 'E', estos son de ejecución
independiente, es decir, no se seleccionan, se ejecutan al pulsar
'enter'.
Si tienes dudas, para probar, selecciona los que ponga '...password...'
;-)
En este ejemplo yo activo los siguientes: H13_giant2, H20_dwarf, H30_thief
(es mas de lo que necesito para interceptar contraseñas y correos)
Para ver desde la linea de comandos qué plugins tienes instalados
escribe en una terminal: 'ettercap -Np list' y para ejecutar uno en
concreto 'ettercap -Np nombre_del_pluging host'.
Hay mucho mas que saber sobre los plugins, para ello leete el archivo
'README.PLUGINS', y si tienes alguna duda sobre el uso de algún
plugin, cada uno se encuentra en una carpeta con su nombre dentro
de la carpeta 'plugins', y algunos junto con su correspondiente HOWTO.
Salgo del menú de plugins (pulsando 'q') y comienzo a capturar,
en este caso debido al switch pulsando la 'a' (envenenamiento ARP),
y esto es lo que se ve:

Vemos que queda detallado el estado en que se encuentra
cada comunicación etablecida (ACTIVE, CLOSED, KILLED...) y
el tipo o protocolo (http, domain...)
En la parte de arriba vemos que información sobre la sesión
que hemos configurado, en este caso los fitros están desactivados
(Filter: OFF) y la captura de passwords anctiva (Active Dissector:
ON) y el tipo de sniff es ARP.
Podemos abrir la ayuda (F1) para ver todo lo que podemos hacer.
Pulsando 'enter' sobre cualquier linea podemos hacer un sniff a la
conexión seleccionada, si ésta se encuentra activa (ACTIVE)
veremos cómo en el cuadro de la izquierda aparece lo enviado
por el equipo objetivo y en el de la derecha lo enviado desde el equipo
remoto al equipo objetivo.
Esta es la captura:

¿y tengo que encontrar los passwords ahí? No, el
Ettercap es muy listo, y facilita el trabajo, desvelando los user
y password que encuentra, en la parte baja de la ventana, cuando seleccionamos
la conexión en la que se encuentran.
Por ejemplo, esta es la captura del password de hotmail cuando alguien
se conecta a su correo via web:

como veis abajo se ve el user, el pass y la URL en
la que se utilizaron. Fijaros bien que la conexión es https
(teóricamente segura).
Aunque no todo resulta tan bonito, esta es la captura de un inicio
de sesión del MSN:

Como veis no nos da el password en texto plano (logicamente),
pero... ¿y el robo de sesiones? mmmmm, no se no se, bueno eso
es un tema largo, para otra vez :)
En fin, cuando te canses, pulsas 'l' o 'L' y se guardan en un log
todos las contraseñas capturadas.
Bueno, creo que como ejemplo ya es suficiente, quedan muchas cosas
por ver, por ejemplo las capturas de POP, FTP, TELNET, IRC ... , la
edición manual de las cabeceras de los paquetes enviados, los
filtros (que permiten capturar y editar cadenas "al vuelo",
etc... pero eso te toca a ti.
Como ves, todo este texto, mas que un manual, es una presentación,
toma de contacto, o llamalo como quieras, espero que por lo menos
haya servido para ampliar un poco los conocimentos de alguno sobre
estas técnicas que se están de actualidad.
ATENCIÓN
!!
Puedes
copiar y distribuir este texto siempre y cuando no lo modifiques
y menciones la fuente.
Este texto está hecho con intención
didáctica, no nos hacemos responsables del mal uso
que se haga de lo aquí explicado