#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang # import src.test_my_misc.hex2bin as hex2bin from src.alex_sniff.mgt.mgt import WLAN from src.alex_misc.alex_logging import create_logger log_beacon_wlan_mgt_tag_ht_info = create_logger(logger_name=__name__, fmt='%(message)s') class WLANMGTTagHTInfo(WLAN): def __init__(self, capture_file_path): WLAN.__init__(self, capture_file_path) self.layer_name = 'wlan_mgt' # Note: only able to get the 1st tag number def wlan_mgt_tag_number(self, packet): field_name = self.layer_name + '.' + 'tag.number' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value # Note: only able to get the 1st tag length def wlan_mgt_tag_length(self, packet): field_name = self.layer_name + '.' + 'tag.length' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang import configparser from src.alex_misc.alex_logging import create_logger logger_0 = create_logger() def load_config_packet(): """ Load cfg_probe_request.ini file and return instance :return: config instance """ import os file_path = os.path.join('packet_cfg', 'cfg_association_response.ini') config_file = configparser.ConfigParser() config_file.read(file_path) return config_file def load_config_basic(): """ Load cfg_basic.ini file and return instance :return: config instance """ config_basic = configparser.ConfigParser() config_file_name = 'cfg_basic.ini' config_basic.read(config_file_name) return config_basic
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang import src.alex_misc.hex2bin as hex2bin from src.alex_sniff.mgt.mgt import WLAN from src.alex_misc.alex_logging import create_logger log_beacon_wlan_mgt_fixed = create_logger(logger_name=__name__, fmt='%(message)s') class WLANMGTFixed(WLAN): def __init__(self, capture_file_path): WLAN.__init__(self, capture_file_path) self.layer_name = 'wlan_mgt' self.fixed = 'fixed' self.capabilities = 'capabilities' def wlan_mgt_fixed_timestamp(self, packet): field_name = self.layer_name + '.' + self.fixed + '.' + 'timestamp' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value def wlan_mgt_fixed_beacon(self, packet): field_name = self.layer_name + '.' + self.fixed + '.' + 'beacon' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang # Import config file setting import src.alex_cfg.cfg_basic as cfg_basic # Import frame layer import src.alex_sniff.frame as frame # Import WLAN layer import src.alex_sniff.mgt.mgt as mgt # Set logger from src.alex_misc.alex_logging import create_logger logger_0 = create_logger(logger_name=__name__, fmt='%(message)s') capture_file_path = cfg_basic.capture_file_path() # Init class: Beacon frame frame_init = frame.Frame(capture_file_path) # Init class: Beacon Radiotap radiotap_init = frame.Radiotap(capture_file_path) # Init class: Beacon WLAN Radio wlan_radio_init = frame.WLANRadio(capture_file_path) # Init class: Beacon WLAN wlan_init = mgt.WLAN(capture_file_path) def fields_frame(): # Frame fields fields_list = [ 'frame_interface_id', 'frame_encap_type', 'frame_time', 'frame_offset_shift', 'frame_time_epoch', 'frame_time_delta',
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang import src.alex_misc.hex2bin as hex2bin from src.alex_sniff.mgt.mgt import WLAN from src.alex_misc.alex_logging import create_logger log_beacon_wlan_mgt_tag_channel_report = create_logger(logger_name=__name__, fmt='%(message)s') class WLANMGTTagChannelReport(WLAN): def __init__(self, capture_file_path): WLAN.__init__(self, capture_file_path) self.layer_name = 'wlan_mgt' # Note: only able to get the 1st tag number def wlan_mgt_tag_number(self, packet): field_name = self.layer_name + '.' + 'tag.number' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value # Note: only able to get the 1st tag length def wlan_mgt_tag_length(self, packet): field_name = self.layer_name + '.' + 'tag.length' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang # import src.test_my_misc.hex2bin as hex2bin from src.alex_sniff.mgt.mgt import WLAN from src.alex_misc.alex_logging import create_logger log_beacon_wlan_mgt_tag_supported_rates = create_logger(logger_name=__name__, fmt='%(message)s') class WLANMGTTagSupportedRates(WLAN): def __init__(self, capture_file_path): WLAN.__init__(self, capture_file_path) self.layer_name = 'wlan_mgt' # Note: only able to get the 1st tag number def wlan_mgt_tag_number(self, packet): field_name = self.layer_name + '.' + 'tag.number' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value # Note: only able to get the 1st tag length def wlan_mgt_tag_length(self, packet): field_name = self.layer_name + '.' + 'tag.length' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author: Alex Wang import src.alex_misc.hex2bin as hex2bin from src.alex_sniff.mgt.mgt import WLAN from src.alex_misc.alex_logging import create_logger log_beacon_wlan_mgt_tag_current_channel = create_logger(logger_name=__name__, fmt='%(message)s') class WLANMGTTagCurrentChannel(WLAN): def __init__(self, capture_file_path): WLAN.__init__(self, capture_file_path) self.layer_name = 'wlan_mgt' # Note: only able to get the 1st tag number def wlan_mgt_tag_number(self, packet): field_name = self.layer_name + '.' + 'tag.number' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value # Note: only able to get the 1st tag length def wlan_mgt_tag_length(self, packet): field_name = self.layer_name + '.' + 'tag.length' value = packet[self.layer_name].get_field_value(field_name) str_value = str(value) return str_value
# Author: Alex Wang # Use to get item count in list from collections import Counter # Import config file setting import src.alex_cfg.cfg_basic as cfg_basic import src.alex_cfg.cfg_beacon as config_beacon # Import class Group import src.alex_sniff.frame as class_init # Import beacon frame layer import src.alex_sniff.frame as frame # Import Beacon WLAN layer import src.alex_sniff.mgt.mgt as mgt # Set logger from src.alex_misc.alex_logging import create_logger log_counter = create_logger(logger_name=__name__, fmt='%(message)s') capture_file_path = cfg_basic.capture_file_path() # Init class frame beacon_frame_0 = frame.Frame(capture_file_path) # Init class Beacon WLAN layer beacon_wlan_0 = mgt.WLAN(capture_file_path) # Init class Group init = class_init.Frame(capture_file_path) def group_wlan_others(capture): """ Separate WLAN with BSSID, WLAN without BSSID and non-WLAN packets as list of {counter index: pkt type} :param capture: sniffer capture file :return: [0] List of dict: Pkt with WLAN layer and BSSID; [1] List of dict: Pkt with WLAN layer but no BSSID; [2] List of dict: Pkt without WLAN