Ir al contenido principal

Script para protegerse de ataques MITM en Ubuntu

Con el tutorial de Ettercap quedó claro que en las redes LAN es muy fácil ser víctima de un ataque MITM o Envenenamiento ARP. Una forma sencilla de proteger tu PC es especificando de manera estática la MAC del router por defecto en tu tabla ARP como vimos también en el tutorial.

Para automatizar esta tarea, en un ordenador de sobremesa que siempre se conecta a la misma red bastará con ejecutar siempre al inicio el comando arp -s [IpRouter] [MacRouter], ya sea en windows mediante un fichero .bat en la carpeta Inicio o en Ubuntu (GNU/Linux) mediante un .sh en la carpeta /etc/init.d/.

Pero para un ordenador portátil que se conecta a diferentes redes (casa, trabajo, sitios públicos..) no nos sirve la opción anterior, ya que para cada red la relación [IP] [MAC] es diferente, por este motivo he creado un script muy simple para automatizar esta tarea que al ejecutarlo detecta si la ARP del router está fija o no, y en caso negativo detecta la IP y MAC del router y la añade de forma permanente:


#!/bin/sh
#http://dasubipar.blogspot.com
#Limpiamos la pantalla
clear
# Bucle que se repite hasta que obtenemos la configuracion de red
echo "Esperando a obtener configuracion de red......"
IpGateway=""
while [ i=0 ]; do
 IpGateway=`route -n|grep UG|tr -s " "|cut -d " " -f2`
 if [ $IpGateway != "" ]; then
   break
 fi
 sleep 3
done

#Una vez tenemos conectividad, comprueba la IP y MAC del gateway y añade una entrada estatica a la lista ARP (en el caso de que se dinamica)

comprueba=`arp -n|grep -w $IpGateway|grep CM`
if [ -z "$comprueba" ]
then
 echo "La entrada ARP del ROUTER en tu lista ARP NO ES ESTATICA"
 MacGateway=`arp -n|grep -w $IpGateway|tr -s " "|cut -d " " -f3`
 echo "La ip de tu router es: $IpGateway y su MAC es: $MacGateway"
 `arp -s $IpGateway $MacGateway`
 echo "Ahora ya estas protegido contra envenenamientos ARP"
else
 echo "La entrada ARP del ROUTER en tu lista ARP ES ESTATICA"
fi

Ejecutando este script manualmente siempre que nos conectemos a una red estaremos protegidos, pero es más practico que se ejecute siempre al inicio del sistema, para eso creamos el fichero   /etc/init.d/fichero.sh como usuario root, le añadimos permisos de ejecución (chmod 774 fichero.sh)  y hacemos un enlace simbólico de este fichero a los siguientes directorios:

ln -s /etc/init.d/fichero.sh /etc/rc0.d/S98no-arpspoofing
ln -s /etc/init.d/fichero.sh /etc/rc1.d/S98no-arpspoofing
ln -s /etc/init.d/fichero.sh /etc/rc2.d/S98no-arpspoofing
ln -s /etc/init.d/fichero.sh /etc/rc6.d/S98no-arpspoofing

Artículos relacionados:

Comentarios

  1. Tengo que echarle un vistazo al script para entenderlo pero pinta bien.

    Un saludo.

    ResponderEliminar
  2. excelente, aunque te sugiero ampliarlo (how/to). falta el bat prometido de windows. Gracias

    ResponderEliminar
    Respuestas
    1. Hola Maravento, para Windows hace poco encontré una aplicación gratuita que no solo nos protege, sino que nos avisa si alguien intenta un ataque contra nuestra máquina! Y además guarda un registro o log de incidencias, está muy bien.
      La puedes descargar desde aquí http://www.informatica64.com/descargas/Marmita%201.3.zip

      Un saludo!

      Eliminar

Publicar un comentario