1. Taller Wireshark y ARP-Spoofing
Taller Wireshark, ataque y contramedidas arp-spoofing usando
ettercap y arpwatch
Inicialmente verifiquemos que tenemos los componentes necesarios para el desarrollo del taller:
Maquina atacante
Maquina Victima
Wireshark, ettercap y arpwatch instalados en el atacante
Una vez confirmado lo anterior inicializamos la dos maquinas y nos posicionamos en la maquina
atacante.
Wireshark
Desde un usuario privilegiado (Administrador) abrimos nuestra
herramienta de monitoreo Wireshark, esto es debido a que para
poder trabajar e inicializar de manera efectiva las interfaces de red
se deben poseer ciertos privilegios.
Una vez tenemos la aplicación abierta, pasamos a conocer las
funcionalidades de los botones de la interfaz principal y en seguida pasamos a los sub-menús que
nos serán útiles para este taller.
Carlos Andrés Rodallega Obando Página 1
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
2. Taller Wireshark y ARP-Spoofing
En seguida vamos al menú de captura (Capture) y seleccionamos la opción Interfaces, en donde
nos aparecerá lo siguiente.
Cerramos esta ventana y abrimos Capture->Options… En seguida tendremos la ventana que nos
permitirá configurar la herramienta para una captura más depurada.
Carlos Andrés Rodallega Obando Página 2
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
3. Taller Wireshark y ARP-Spoofing
Seguido presionamos el botón Capture Filter y en seguida se nos presentara la ventana que nos
permitirá crear o elegir un filtro de captura.
Una vez se ha configurado el filtro a usar, damos ok y seleccionamos la opción start para que la
herramienta comience a realizar la captura.
Carlos Andrés Rodallega Obando Página 3
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
4. Taller Wireshark y ARP-Spoofing
Actividades del taller
1. Antes que nada debemos asignar una dirección IP a nuestra maquina monitor, en nuestro
caso como tenemos un servidor DHCP usamos el comando
Monitor->#dhclient
Solicita una dirección IP al servidor DHCP
2. Ya para comenzar con wireshark no establecemos ningún filtro de captura, así que vamos
a capturar todo el tráfico que llegue a nuestra interfaz de red.
Debemos tener en claro que dependiendo de la actividad y la arquitectura de la red en la
que se encuentra nuestra maquina atacante se pueden capturar paquetes o no.
Cualquiera que sea el caso generaremos algo de tráfico haciendo ping a nuestra puerta de
enlace.
Monitor->#route
Muestra la tabla de enrutamiento
Monitor->#ping IP_Gateway
Hacemos ping a la puerta de enlace
Después de unos segundos detenemos la captura.
¿Qué información nos da la herramienta del tráfico capturado?
Interpretación de la captura.
3. A partir de este punto por cada captura que hagamos con nuestra herramienta, vamos a
guardar la información antes de iniciar una nueva.
Para grabar en un formato que se pueda volver a cargar por el
whireshark vamos a:
File -> Save As
Para exportarlo a un archivo de texto:
File -> Export -> As “plain text file”
4. Ahora iniciamos una nueva captura y con un navegador web desde nuestra victima
(maquina virtual que se sugirió) abrimos una página cualquiera de internet.
Como se puede ver se nuestra herramienta capturo diferentes paquetes de entrada y
salida al momento de abrir una página web.
Explicación de la captura.
Si en un entorno pequeño en este caso con un dos equipos, se captura un gran cantidad de tráfico,
ahora la pregunta que nos debemos hacer es ¿Cómo será tratar de supervisar el trafico en una red
demasiado concurrida? Una posible solución a este problema sería…
Carlos Andrés Rodallega Obando Página 4
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
5. Taller Wireshark y ARP-Spoofing
5. Ahora vamos a usar un filtro predeterminado en las capturas, esto con el fin de disminuir
capturas que en el momento no nos interesan.
Teniendo clara la IP del equipo que deseamos monitorear vamos
a usar el filtro de direcciones IP, en opciones de captura en
el campo de filtro de captura escribimos lo siguiente:
host Ip_target
Con lo anterior le decimos a nuestra herramienta que capture todo el tráfico que involucra
a la IP del objetivo
6. En el paso anterior teníamos las capturas de entrada y salida de esa IP, pero si solo
necesitamos visualizar el tráfico que sale de esa IP, vamos a crear una expresión que me
filtre esa información.
En la interfaz principal damos click en el botón de agregar
expresión:
En field name seleccionamos IP -> ip.src, en relación == y
por último la IP del objetivo, damos OK y en la interfaz
principal Apply
Como se puede ver ya estamos filtrando la visualización a solo paquetes que salen de una
IP específica.
Carlos Andrés Rodallega Obando Página 5
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
6. Taller Wireshark y ARP-Spoofing
7. Para poner un poco más interesante vamos a establecer un chat con netcat y usaremos
wireshark para capturar esa conversación.
En el cualquiera de las dos maquinas ponemos el servidor en
este caso lo pondré en el servidor:
Monitor->#nc –lp 1503
La maquina cliente se conectara a la ip del servidor en el
puerto establecido:
Target->#nc IP_Monitor 1503
Hecho esto tenemos un chat entre las dos maquinas, ahora usando lo anteriormente visto
creamos una nueva expresión que nos sirva para filtrar el tráfico del puerto TCP 1503
De nuevo vamos a agregar expresión, en field name
seleccionamos TCP -> tcp.port, en relación == y por último el
numero del puerto en este caso 1503, OK y Apply
En seguida comenzamos la captura y generamos actividad en el
chat (unas 5 frases entre los clientes son suficientes).
Ahora tenemos la información del tráfico que involucra al puerto 1503.
Seleccionando los frames que nos muestra nuestra herramienta podemos ver que estos
tienen una parte de información o DATA.
¿Que contiene ese DATA?
¿Por qué se puede visualizar eso?
8. ¿Es posible capturar conversaciones de Messenger de esta forma?
¿Qué permite el filtro msnms?
9. Enseguida vamos a generar un filtro compuesto de dos expresiones, este nos permitirá
capturar el login y contraseña de un usuario cuando esta trata de autenticarse en una
página que no usa el protocolo seguro https, enviando así los datos de forma insegura.
Entonces comenzamos una nueva captura sin ningún tipo de
filtro, ahora desde la víctima en una consola de comandos
hacemos ping a 3 sitios en internet y con el navegador web
accedemos a varias páginas de internet 8 aproximadamente
(esto es con el fin de que se capture una gran cantidad de
paquetes), por ultimo vamos a la página:
http://roguer.100webspace.net/login
Aquí intentamos iniciar sesión, con un nombre de usuario
cualquiera y una contraseña cualquiera.
Carlos Andrés Rodallega Obando Página 6
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
7. Taller Wireshark y ARP-Spoofing
Volviendo a la máquina de monitoreo y a nuestra herramienta
observamos una gran cantidad de frames capturados, así que
como ya lo hicimos antes creamos un filtro que nos muestre
solo la información que tiene como origen la maquina objetivo
y otro que muestre todo lo que se relacione con el puerto 80,
para lo anterior tendríamos:
ip.src == IP_target
tcp.port == 80
Ahora vamos a unir estas expresiones con el fin de que solo
se muestre la información que sale del objetivo y que se
relaciona con el puerto 80, entonces tendríamos
ip.src == IP_target and tcp.port == 80
¿Funciono este filtro?
Ahora vamos a crear un filtro que me capture los paquetes que
envían datos usando el método post, entonces tendríamos…
¿Sugerencias? => Lo construiremos entre todos
¿Se logro capturar información crítica?
¿Que sucede si intento lo mismo en la siguiente pagina?
https://www.unicauca.edu.co/rc1
10. Enseguida vamos a transmitir con netcat una imagen por la red y vamos a capturar este
tráfico, esto con el fin de guardar la captura para después tratar de reconstruir el archivo.
Ahora iniciamos una nueva captura con o sin filtro, y ponemos
con netcat un puerto a la escucha que nos envie un archivo al
recibir una conexión:
Target->#nc -lp 1503 < imagen.jpg
Ahora desde el atacante nos conectamos a ese puerto y
recibimos el archivo.
Monitor->#nc –lp 1503 > trafico.cap
Una vez hecho esto guardamos la captura en el formato por
defecto .cap y procedemos a reconstruir la imagen así:
Monitor->#tcpxtract -f trafico.cap -o capturado/
Carlos Andrés Rodallega Obando Página 7
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
8. Taller Wireshark y ARP-Spoofing
ARP-Spoofing Ataque con ettercap
Como se explico en la presentación previa al taller, cuando nos encontramos trabajando sobre una
red swicheada al tratar de capturar el tráfico con nuestra herramienta Wireshark, solo vamos a
poder capturar el tráfico que tiene como origen y destino a nuestra tarjeta.
Lo anterior puede frustrarnos y llevarnos a pensar en que no estamos haciendo bien las cosas o
que nuestra herramienta simplemente no funciona. Pero si aplicamos un poco de lógica una
posible solución a esto es realizar el ataque de envenenamiento de tablas ARP (ARP-Spoofing).
Para lo cual realizamos lo siguiente:
Atacante->#ifconfig
Nos muestra la configuración de la interfaz de red del atacante
Para ejecutar el ataque necesitamos saber por lo menos la dirección_IP de nuestra víctima, en
nuestro entorno seguro basta con ir y mirar la configuración de esta.
Victima->#ifconfig Victima->ipconfig
Nos muestra la configuración de la interfaz de red de la victima
Victima->#arp –a
Con el comando anterior se nos presentaran los registros de las tablas ARP.
Atacante->#wireshark
Con nuestra herramienta de monitoreo inicializada, comenzamos a hacer la captura del
trafico de la red ya sea usando filtros o no. ¿Qué sucede?
En respuesta a esto procederemos a envenenar las tablas ARP necesarias
Como todo el tráfico que sale o entra a nuestra victima pasa por la puerta de enlace,
procederemos a envenenar las tablas ARP de estas dos maquinas:
Atacante->#ettercap –Tq –M arp /ip_victima1/ /ip_victima2/
Con ettercap envenenamos las tablas ARP de las dos víctimas, en este caso la víctima y la
puerta de enlace.
Parámetros:
Tq => Indica que lo ejecutamos desde consola pero que no muestre los paquetes
capturados.
M => Tipo de ataque “Hombre en medio”
Arp => Parámetro del tipo de ataque que indica que se hará arp-spoofing
Una vez se ha lanzado el ataque podemos verificar con el wireshark, que nuestro atacante está
enviando paquetes que mienten acerca de la dirección MAC de las IP involucradas y además ya
aparece el trafico de las otras maquinas.
Carlos Andrés Rodallega Obando Página 8
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
9. Taller Wireshark y ARP-Spoofing
Ahora vamos a la victima a ver qué cambios hay.
Victima->#arp –a
Verificamos de nuevo la tablas ARP en donde se debe ver que dos IP diferentes tienen la
misma MAC.
De vuelta en el atacante haciendo uso de las herramientas de supervisión y opciones de filtro que
estas nos ofrecen, podemos supervisar el tráfico entre esos dos equipos.
Cuando se desee detener el ataque, en la consola en la que se está ejecutando el ettercap
presionamos la tecla Q, de inmediato este re-envía respuestas de tipo ARP con datos verdaderos y
se termina la ejecución de la aplicación.
ARP-Spoofing Contramedidas con Arpwatch
Una vez instalado vamos a poner a correr el Arpwatch.
Victima->#arpwatch –i eth0
Iniciamos el demonio (proceso background) de arpwatch.
Victima->#ps –e | grep arp
Miramos los procesos y filtramos, si el arpwatch ha iniciado debe aparecer en este listado
Para hacer que arpwatch nos envié notificaciones por correo debemos tener instalado un servidor
de correo en nuestra maquina (postfix). Cumpliendo con los requisitos ejecutamos el arpwatch de
la siguiente manera:
Victima->#kill id_proceso
Matamos el proceso actual del arpwatch si está corriendo
Victima->#arpwatch –i eth0 –m correo@destino.com
Iniciamos arpwatch para que nos envíe notificaciones a un correo específico.
Ahora atacamos de nuevo con ettercap y miramos las notificaciones que se han generado
Victima->#cat /var/log/syslog
Visualizamos el log syslog, en el cual arpwatch pone las notificaciones
Victima->#cat /var/log/syslog | more
Miramos el log syslog, detenidamente
Victima->#cat /var/log/syslog | grep arpwatch
Filtramos para que solo muestre las notificaciones escritas por arpwatch
Carlos Andrés Rodallega Obando Página 9
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com
10. Taller Wireshark y ARP-Spoofing
ARP-Spoofing Contramedidas con…
Ettercap nos permite usar un plugin (arp_cop) para monitorizar las
tablas arp.
En Windows está el WinArpwatch
Hay antivirus para Windows que detectan este tipo de ataque y evita
que se envenenen las tablas arp.
¿Sugerencias de contramedidas?
FIN
De despedida si aun no son las 12 añadimos al arp-spoofing un
dns-spoofing…
Carlos Andrés Rodallega Obando Página 10
CAMPUS PARTY Colombia 2010 carlosrodallega@gmail.com