Pues eso, hoy, unas formas de detectar el spoofing de DNS (falseamiento de un nombre de dominio) y de ARP (que puede servir para suplantar una IP).
DNS
La forma de detectar un DNS spoofing es bastante simple, pero sigue siendo bastante efectiva para entornos de red local, el script es este o descargado aquí [dns.sh]:
#!/usr/bin/env bash
if [ "$2" == "" ]
then
echo "$0 <dirección a resolver> <servidor DNS a probar>"
exit 1
fi
echo -n "Velocidad: ";((time ping -c 1 "$2" >> /dev/null) 2>> /dev/stdout )|head -n 2|tail -n 1|cut -f2
echo -n "DNS: ";((time nslookup "$1" "$2" >> /dev/null) 2>> /dev/stdout )|head -n 2|tail -n 1|cut -f2
( ./script <dirección a resolver> <servidor DNS a probar> )
La idea es que compara el tiempo que se tarda en hacer un ping a un servidor DNS y el tiempo que tarda el mismo servidor en resolver una dirección, obviamente un servidor que no esta en la red local (como estaría el supuesto intruso), tardaría mas que el intruso, en la red local.
Por ejemplo, suponiendo que los resultados normales (sin spoofing) fueran estos:
Velocidad: 0m0.068s
DNS: 0m0.075s
Velocidad: 0m0.061s
DNS: 0m0.066s
Velocidad: 0m0.060s
DNS: 0m0.067s
Velocidad: 0m0.061s
DNS: 0m0.070s
Velocidad: 0m0.060s
DNS: 0m0.066s
Los valores con un DNS spoofing podrian ser:
Velocidad: 0m0.060s
DNS: 0m0.015s
Velocidad: 0m0.065s
DNS: 0m0.014s
Velocidad: 0m0.061s
DNS: 0m0.014s
Velocidad: 0m0.066s
DNS: 0m0.014s
Velocidad: 0m0.061s
DNS: 0m0.014s
La diferencia es obvia, el tiempo para resolver sin spoofing es ligeramente mayor que el tiempo de ping, mientras que el tiempo para resolver con spoofing es menos de la mitad del tiempo de ping.
ARP
La forma de detectar un ARP spoofing tambien es bastante simple, si al comprobar la tabla ARP hay MAC's repetidas, significa que (alguna de las repetidas) está spoofeada. Quizá sea necesario llenar la tabla con los host de la red para poder comprobar las MAC de todo la red, se puede hacer simplemente con:
nmap 192.168.0.* -sP
(El 192.168.0.* habría que cambiarlo por el adecuado para la red)
El script es (o aquí [arp.sh]):
#!/usr/bin/env bash
mip=""
t=0
for a in $(arp -a|sed -e "s/ /_/g" ); do
ip=`echo $a|cut "-d_" -f2|cut -d\( -f2|cut -d\) -f1`
mac=`echo $a|cut "-d_" -f4`
if [ ${mac,0,1}"" != "<" ]
then
# echo "IP: $ip MAC: $mac"
t=$(($t + 1))
i=0
lip=""
for tmp in $mip ; do
if [ `echo $tmp|cut -d_ -f2` == "$mac" ]
then
echo "MAC duplicada $ip - "`echo $tmp|cut -d_ -f1`" [$mac]"
fi
done
mip="$mip $ip"_"$mac"
fi
done
Simplemente comprueba las MAC duplicadas, y avisa de ello, no requiere interpretación por parte del administrador como el script de DNS (no hay que ver que indican los datos, hay spoof o no).
Y eso es todo, hasta otra.
No hay comentarios:
Publicar un comentario