Enviar paquetes wireless sin protocolo

En este tutorial vamos a utilizar la herramienta scapy , junto a la suite aircrack-ng , para enviar paquetes wireless «en crudo» , es decir , sin emplear ninguno de los protocolos 802.1x , ni estar asociados con ningún AP. Para los que no conozcáis estas herramientas ,** scapy es un programa para manipular paquetes de red a todos los niveles , modificar sus cabeceras ethernet , y muchas cosas más.** No pretendo explicar el funcionamiento de scapy , ni de la suite aircrack , porque no es esencial para este artículo , pero para los curiosos , os recomiendo informaros bien sobre scapy , porque es una herramienta muy interesante que permite mandar paquetes de red personalizados , configurando las cabeceras TCP , IP , ethernet , etc , lo cual tiene muchas utilidades , como ciertos tipos de ataques , o replicar en pocas lineas de código en python herramientas como arpspoof , sniffers , etc. La intención de esto no es reinventar la rueda, sino que gracias a scapy y un poco de programación puedes comprender muy bien lo que hacen ciertas herramientas de red , aunque evidentemente , si quieres profundizar en scapy , necesitas conocimientos de tcp/ip y de programación en python. Bueno , entrando en materia , he descubierto indagando un poco como mandar paquetes wireless en crudo , y seguro que encuentro la forma de recibirlos , lo cual sería entretenido , porque podrías incluso programar un protocolo , coger varias ordenadores con tarjeta wifi que tengas y comunicarlos sin usar un AP de por medio , y con un protocolo creado por ti … Bueno , pues sin más dilación , empezamos ( recordad instalar la suite aircrack-ng , la herramienta scapy , y de forma opcional wireshark ) ( y opcionalmente , parar los servicios de red para que no interfieran ) Usamos airmon-ng para poner la interfaz en modo monitor :

root@cacharro # airmon-ng start INTERFAZ_WIFI

El propio airmon-ng nos dirá el nombre de la interfaz en modo monitor que se ha creado , normalmente mon0. Como sabreís los que alguna vez hayais

tomado prestado auditado una red wifi , las interfaces en modo monitor permiten enviar trafico en crudo , y de hecho aireplay-ng ( enviar ataques ) y airodump-ng ( recopilar datos ) , se valen de la interfaz en crudo , la cual nosotros ahora usaremos con scapy. Bien , ahora ejecutamos scapy , esperamos un poco y veremos el prompt de scapy. Una vez dentro , ejecutamos el siguiente comando :

>>> sendp("Hola mundo" , iface="mon0" , count=1)

Si habeís sido un poco avispados , y estabais con el wireshark sniffando la interfaz mon0 , vuestro paquete de hola mundo ha sido enviado , lo que pasa es que con tantos datos es difícil encontrarlo. Tenemos 2 opciones , la primera es cambiar el valor de count a un numero grande , como 10000 , para que destaque en el wireshark y se vea , o bien podéis poner un filtro para encontrar el paquete. [ ACTUALIZACIÓN ] He encontrado la forma de recibir los datos correctamente con scapy , y he estado programando algunos protocolos de prueba. Bueno , aquí os explico cómo podéis hacerlo. Primero , tenemos que crear el fichero scapy.patch , es un parche que he creado para solventar un pequeño bug de scapy , para crearlo , tenemos que guardar el siguiente contenido en el fichero scapy.patch ( o el nombre que queramos ) :

15c15
< from packet import Gen
---
> from packet import *

Una vez guardado , tenemos que usar el comando patch para parchear , de la siguiente forma :

root@cacharro:~ >> patch /usr/share/pyshared/scapy/sendrecv.py scapy.patch 

Una vez con el fichero parcheado , podremos usar send y sendp en nuestros propios scripts … Ahora en nuestro programa en python , debemos incluir scapy con :

from scapy.all import *

Lo recomendado para procesar los paquetes entrantes es poner la función sniff de scapy , especificando con el argumento prn la función a la que se llamará al recibir cada paquete , con iface la interfaz de red en modo monitor , y con store=0 para que no guarde lo que captura en memoria , porque si no se te llenaria al cabo de un rato la ram … Para los que sepan python y estén interesados en scapy , pueden obtener mas información

en su web oficial Saludos

Compartir

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax