Mostrando entradas con la etiqueta dns. Mostrar todas las entradas
Mostrando entradas con la etiqueta dns. Mostrar todas las entradas

jueves, 20 de enero de 2011

Resolviendo dominios .42 en un servidor BIND9 casero (DNS)

Pues nada, veamos como hacer que nuestro DNS casero resuelva direcciones con el TLD .42, si no sabes que es esto, mejor hechale un vistazo al proyecto https://www.42registry.org/faq-es.php

"42 Registry es, principalmente, una experiencia como otras tantas de las que abundan en Internet hoy en día. Es una organización sin ánimo de lucro, orientada a proponer un TLD (Dominio de Primer Nivel) para agrupar a una comunidad concreta."

Voy a suponer una distro basada en Debian ( Ubuntu, Trisquel ... Debian... ), pero la idea es la misma para todos, solo hay que cambiar un par de cosas (que avisaré cuando se tercie).


viernes, 20 de agosto de 2010

Detectando DNS y ARP spoofing

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.

martes, 12 de enero de 2010

Diversion con los intrusos

Vuelta de navidades... hay gente que para pasar el tiempo libre se dedica a entrar en redes Wifi, veamos como sacar algo de diversion nosotros tambien :)}

Supongamos que la situacion es la siguiente: eres propietari@ de una red Wifi, red que ha sido vulnerada (maldito WEP >:(  ) y que el intruso utiliza para navegar por internet... asi que vamos a gastarle una pequeña broma

Nota: No soy abogado ni nada parecido, asi que no se si esto que se describe es totalmente legal aqui o en otro pais, las pruebas las he realizado en mi red privada, sin afectar a usuarios externos, si de verdad le vas a gastar una broma (que la cosa no pasa de eso) a alguien de tu red local, hazlo bajo tu responsabilidad.

Bien, pasemos a lo que hace falta:

- Un servidor web, para mostrarles la pagina web a los "visitantes", un Ubuntu con apache y php servira perfectamente
- La suite dsniff (concretamente la herramienta dnsspoof), en un entorno Ubuntu/Debian se puede instalar con sudo apt-get install dsniff

Lo primero es preparar la pagina que va a ver el "visitante", una o dos cosas apovechando la variable $_SERVER  haran la pagina mas interesante, esta es bastante simple, todo es cuestion de hecharle imaginacion:



El codigo que muestra informacion sobre el "visitante" es casi igual que el de la imagen que muestra ip, navegador...

Por ultimo redireccionar a los visitantes de otro servidor, el comando que se utiliza es el siguiente: sudo dnsspoof -i <interfaz> -f <archivo de hosts>
Siendo el interfaz el dispositivo utilizado para conectarse a la red (como eth0 ,en Gnu/Linux, *BSD,etc se puede averiguar con ifconfig )

Y el archivo de hosts uno como el de /usr/share/dsniff/dnsspoof.hosts, siguiendo el formato clasico hay un dominio en cada linea, lo primero es la IP a la que se asigna el dominio, que va despues de la IP separado por una tabulacion (las lineas que empiezan por # son comentarios).

Lo que se consigue con esto es (por decirlo de una forma) que cuando el navegador pregunte en que IP esta alguno de los dominios de la lista, el dnsspoof se adelante al servidor DNS (aprovechando que la red local suele ser mas rapida) y le diga la IP que aparece en el archivo de hosts


 Para que el dnsspoof funcione tiene que poder snifar las peticiones DNS, asi que dependiendo de la red quiza sea necesario poner en marcha un man-in-the-middle, para esto se utilizara otra herramienta de la suite dsniff, arpspoof, el comando es este: sudo arpspoof -i <interfaz> -t <ip de pasarela> <"visitante" >

Suerte y hasta otra