Ettercap

Ettercap es una utilidad que nos permite capturar el trafico que circula por una LAN, ya sea en un ambiente switcheado (lo crean o no) o HUBeado. O sea, es un sniffer.

Nos provee de dos modos de funcionamiento: INTERACTIVO y NO-Interactivo. Todo se controla por letras-comando, mas los cursores y el enter, y en cada pantalla del modo interactivo pueden tilizar el comando 'h', para obtener un breve listado de comandos en el area actual del programa. Para salir o volver atras, pueden utilizar 'q'.

Instalación

Dirijamos nuestro lynx, links o cualquier otro navegador al sitio oficial de ettercap, seccion de downloads, en Sourceforge.

Ahora procederemos a desempaquetarlo (1), configurar la compilacion (2), compilarlo (3) e instalarlo (4), para luego compilar e instalar los plugins (5).

  1. tar -zxf ettercap-0.6.4.tar.gz
  2. cd ettercap-0.6.4 ; ./configure
  3. make
  4. make install
  5. cd plugins ; make install

El modo interactivo

Con solo ejecutar 'ettercap' estaremos listos. Lo primero que hace ettercap es un ARP Discovery, que es un metodo para encontrar que hosts se encuentran en la LAN. Pueden utilizar el parametro "--netmask w.x.y.z" para especificar una mascara de subred diferente, si asi lo necesitan. En mi caso tengo la red Interna en una clase A (255.0.0.0), por lo que le paso "--netmask 255.255.255.0", para que no se envien 16777215 solicitudes ARP, lo que tardara MUCHO, PERO MUCHO. Una vez finalizado este proceso, la pantalla principal de ettercap les mostrara una lista de 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. Si a ustedes en verdad les interesan ciertas direcciones IP, pueden usar 'ettercap -H IP_1,IP_2,etc'.

La lista de direcciones se dispone duplicada en dos columnas. Utilizando los cursores podemos movernos sobre esa lista, 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 izquierda corresponde al ORIGEN de trafico, y la derecha al DESTINO. Podemos seleccionar, con ENTER, si queremos analizar trafico DESDE cierta IP o HACIA cierta IP, o ENTRE DOS direcciones IP. Tambien podemos no elegir ninguna IP en ningun sentido, y asi obtener TODO el trafico.

Pasada esta etapa de seleccion, podremos activar 3 modos diferentes de sniffing: IP (tecla 's'), MAC (direccion de hardware de la placa de red, tecla 'm'), o por ARP Poisoning (para ataques Man-In-The-Middle, o MiM, tecla 'a').

El Sniffing por ARP lo debemos utilizar cuando no ejecutemos el sniffer en un sistema que actua como GATEWAY, digamos, cuando estemos en algun punto intermedio entre el gateway y alguna PC de la LAN. Claro, este caso de gateway es cuando un 'servidor' provee acceso a Internet, por ejemplo, a la LAN interna. Esto es para un ambiente SWITCHEADO. Se utiliza un metodo conocido como ARP Poisoning.

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.

En la pantalla que ahora veran luego de seleccionar un metodo de sniffing, encontraran varios datos, siendo lo mas importante la lista de conexiones encontradas, por la cual nos podemos mover con los cursores.

Este listado de conexiones corresponde a trafico tcp o udp entre un cierto origen y destino. La lista esta conformada por 5 columnas, de izquierda a derecha, como en el siguiente ejemplo:

10.0.0.7:1863  <-->  64.z.y.x:1193  | ACTIVE | msnp

La primer columna es un par IP:PUERTO de origen, o sea que es una conexion desde el puerto 1863 de la IP 10.0.0.7.

La segunda columna corresponde, entonces, al par IP:PUERTO destino. Las conexiones TCP o UDP necesitan de al menos dos parametros: IP y puerto de destino de la conexion o destino de los datos, y una IP y puerto de origen (ver "A Programar Enchufes!", Linux USERS v1.3, v1.4 y acá para la parte final)

La tercera columna indica el estado del vinculo: ACTIVE (activo) o silent (silencioso), UDP, o CLOSED (cerrada) o KILLED (matada).

La cuarta columna nos indica el protocolo: en este caso es msnp. Es alguien chateando por MSN. Tambien puede ser, por ejemplo, ICQ v7/8, y si nos posicionamos encima, en la barra de estado, digamos, veremos el UIN y Password de dicho usuario.

Si presionan '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 conexion 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 conexion.
  • D: resolver IP por DNS
  • R: 'refrescar' la lista de conexiones.
  • 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 conexion. Veran que la seccion de abajo se actualiza acordemente, mostrando protocolo (TCP, UDP) y applicacion (msnp).

La pantalla ahora se vere como un par de ventanas. Cada ventana dice el par IP:PUERTO donde se generan los datos que muestra. 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 conexion.

  • I: Inyectar caracteres en la conexion. [Solo en ARP Poisoning]
  • F: Editar las cadenas de filtrado.
  • K: Matar la conexion
  • A: Ver en modo ASCII
  • X: Ver en modo HEXadecimal
  • T: Ver en modo TEXT (solo chars. imprimibles)
  • 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.
  • L: Guardar un LOG de trafico a un archivo.

Prueben los distintos comandos. Veremos el modo NO-Interactivo y los Plugins en proximos articulos. No olviden enviarnos sus comentarios, dudas y experiencias a linux@tectimes.com.