Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python scapy Beacon Frames

I'm trying to build a scapy program that scans for Beacon Frames. Every router should send beacon frames to the air in an interval of X milliseconds so the possible hosts know the router(AP) is alive.

I'm getting nothing, the only kind of Dot11 frames I've been able to get so far is Prob Request, very rarely some data or control frames as well. I setup my wireless card to monitor mode before running the script and it supports it as well. I don't what I might be doing wrong... Here's the code :

from scapy.all import * 

global list_prob
list_prob = []
def search_prob(packet1):
    if (packet1.haslayer(Dot11)) and (packet1[Dot11].type == 0) and\
    (packet1[Dot11].subtype == 8) : #type 4 == ProbRequest
        if packet1[Dot11].addr2 not in list_prob:
            if packet1[Dot11].info not in list_prob:
                print('[>]AP',packet1[Dot11].addr2,'SSID',packet1[Dot11].info)
                list_prob.append(packet1[Dot11].addr2)
                list_prob.append(packet1[Dot11].info)

sniff(iface='wlan0mon',prn=search_prob)

Ive also tried it with Dot11Beacon instead of subtype 8 and nothing changed . I'm programming with python3.5 on Linux. Any ideas ?

like image 885
Pedro Gomes Avatar asked Mar 17 '26 11:03

Pedro Gomes


1 Answers

Code to constantly change channel of network interface using python :

from threading import Thread
import subprocess,shlex,time
import threading
locky = threading.Lock()

def Change_Freq_channel(channel_c):
    print('Channel:',str(channel_c))
    command = 'iwconfig wlan1mon channel '+str(channel_c)
    command = shlex.split(command)
    subprocess.Popen(command,shell=False) # To prevent shell injection attacks ! 

while True:
    for channel_c in range(1,15):
        t = Thread(target=Change_Freq_channel,args=(channel_c,))
        t.daemon = True
        locky.acquire()
        t.start()
        time.sleep(0.1)
        locky.release()
like image 176
Pedro Gomes Avatar answered Mar 20 '26 07:03

Pedro Gomes



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!