Projects STRLCPY wifi_db Commits efbf4825
🤬
  • ■ ■ ■ ■ ■ ■
    database_utils.py
    skipped 2 lines
    3 3  # -*- coding: utf-8 -*-
    4 4  import sqlite3
    5 5  import os
     6 +import random
     7 +import string
    6 8   
    7 9   
    8 10  def connect_database(name, verbose):
    9 11   '''Function to connect to the database'''
    10 12   database = sqlite3.connect(name)
    11 13   database.text_factory = str
     14 + database.execute("PRAGMA foreign_keys = 1")
    12 15   if verbose:
    13 16   print("DB connected OK")
    14 17   return database
    skipped 17 lines
    32 35   "ELSE channel END "
    33 36   "WHERE bssid = '%s'" % (channel, bssid))
    34 37   
    35  - 
    36 38   # Write if empty
    37  - sql = "UPDATE AP SET ssid = CASE WHEN ssid=='' THEN (?) WHEN ssid IS NULL THEN (?) ELSE ssid END WHERE bssid = (?)"
     39 + sql = """UPDATE AP SET ssid = CASE WHEN ssid=='' THEN (?) WHEN ssid
     40 + IS NULL THEN (?) ELSE ssid END WHERE bssid = (?)"""
    38 41   if verbose:
    39  - print(sql, (essid, essid, bssid ))
     42 + print(sql, (essid, essid, bssid))
    40 43   cursor.execute(sql, (essid, essid, bssid,))
    41 44   
    42 45   cursor.execute(
    skipped 113 lines
    156 159   print("insertProbe Error " + str(error))
    157 160   return int(1)
    158 161   
    159  -def insertWPS(cursor, verbose, bssid, wlan_ssid, wps_version, wps_device_name, wps_model_name, wps_model_number, wps_config_methods, wps_config_methods_keypad):
     162 + 
     163 +def insertWPS(cursor, verbose, bssid, wlan_ssid, wps_version, wps_device_name,
     164 + wps_model_name, wps_model_number, wps_config_methods,
     165 + wps_config_methods_keypad):
    160 166   ''''''
    161 167   try:
    162 168   cursor.execute('''INSERT INTO WPS VALUES(?,?,?,?,?,?,?,?)''',
    163  - (bssid, wlan_ssid, wps_version, wps_device_name, wps_model_name, wps_model_number, wps_config_methods, wps_config_methods_keypad))
     169 + (bssid, wlan_ssid, wps_version, wps_device_name,
     170 + wps_model_name, wps_model_number, wps_config_methods,
     171 + wps_config_methods_keypad))
    164 172   return int(0)
    165 173   except sqlite3.IntegrityError as error:
    166 174   # errors += 1
    skipped 178 lines
    345 353   database.commit()
    346 354   except sqlite3.IntegrityError as error:
    347 355   print("fake_lon" + str(error))
     356 + 
     357 + 
     358 +# obfuscated the database AA:BB:CC:XX:XX:XX-DEFG
     359 +def obfuscatedDB(database):
     360 + # APs!
     361 + try:
     362 + # Get all APs
     363 + cursor = database.cursor()
     364 + sql = "SELECT bssid from AP; "
     365 + cursor.execute(sql)
     366 + 
     367 + output = cursor.fetchall()
     368 + for row in output:
     369 + # Replace all APs bssid (add random letter to avoid duplicates)
     370 + letter = string.ascii_lowercase
     371 + aux = ''.join(random.choice(letter) for _ in range(8))
     372 + new = (row[0][0:9] + ('XX:XX:XX') + '-' + aux)
     373 + # print (new)
     374 + 
     375 + cursor.execute('''UPDATE AP set bssid = ? where bssid = ?''',
     376 + (new, row[0]))
     377 + database.commit()
     378 + 
     379 + database.commit()
     380 + except sqlite3.IntegrityError as error:
     381 + print("obfuscatedDB" + str(error))
     382 + 
     383 + # Clients!
     384 + try:
     385 + # Get all APs
     386 + cursor = database.cursor()
     387 + sql = "SELECT mac from Client; "
     388 + cursor.execute(sql)
     389 + 
     390 + output = cursor.fetchall()
     391 + for row in output:
     392 + # Replace all APs bssid (add random letter to avoid duplicates)
     393 + letter = string.ascii_lowercase
     394 + aux = ''.join(random.choice(letter) for _ in range(8))
     395 + new = (row[0][0:9] + ('XX:XX:XX') + '-' + aux)
     396 + 
     397 + cursor.execute('''UPDATE Client set mac = ? where mac = ?''',
     398 + (new, row[0]))
     399 + database.commit()
     400 + 
     401 + database.commit()
     402 + except sqlite3.IntegrityError as error:
     403 + print("obfuscatedDB" + str(error))
    348 404   
    349 405   
    350 406  # exists = '11:22:33:44:55:77' in whitelist
    skipped 31 lines
  • ■ ■ ■ ■ ■ ■
    wifi_db.py
    skipped 20 lines
    21 21   parser.add_argument("--debug", help="increase output verbosity to debug",
    22 22   action="store_true")
    23 23   
     24 + parser.add_argument("-o", "--obfuscated", help="Obfuscate MAC and BSSID with AA:BB:CC:XX:XX:XX-defghi (WARNING: replace all database)",
     25 + action="store_true")
     26 + 
    24 27   parser.add_argument("-t", "--lat", default='',
    25 28   help="insert a fake lat in the new elements")
    26 29   parser.add_argument("-n", "--lon", default='',
    skipped 18 lines
    45 48   # vars
    46 49   verbose = args.verbose
    47 50   debug = args.debug
     51 + obfuscated = args.obfuscated
    48 52   
    49 53   try:
    50 54   cmd = "where" if platform.system() == "Windows" else "which"
    skipped 117 lines
    168 172   script_path = os.path.dirname(os.path.abspath(__file__))
    169 173   database_utils.clear_whitelist(
    170 174   database, script_path+'/whitelist.txt')
     175 + 
     176 + # if obfuscated
     177 + if obfuscated:
     178 + print("-o is enable, so obfuscate. This may take a while")
     179 + database_utils.obfuscatedDB(
     180 + database)
    171 181   
    172 182   
    173 183  if __name__ == "__main__":
    skipped 2 lines
  • ■ ■ ■ ■ ■ ■
    wifi_db_database.sql
    skipped 43 lines
    44 44   bssid TEXT NOT NULL,
    45 45   mac TEXT NOT NULL,
    46 46   CONSTRAINT Key4 PRIMARY KEY (bssid,mac),
    47  - CONSTRAINT Relationship2 FOREIGN KEY (bssid) REFERENCES AP (bssid),
    48  - CONSTRAINT Relationship3 FOREIGN KEY (mac) REFERENCES Client (mac)
     47 + CONSTRAINT Relationship2 FOREIGN KEY (bssid) REFERENCES AP (bssid) ON UPDATE CASCADE ON DELETE CASCADE,
     48 + CONSTRAINT Relationship3 FOREIGN KEY (mac) REFERENCES Client (mac) ON UPDATE CASCADE ON DELETE CASCADE
    49 49  );
    50 50   
    51 51  CREATE TABLE IF NOT EXISTS WPS
    skipped 7 lines
    59 59   wps_config_methods TEXT NOT NULL,
    60 60   wps_config_methods_keypad TEXT NOT NULL,
    61 61   CONSTRAINT KeyWPS PRIMARY KEY (bssid),
    62  - CONSTRAINT RelationshipWPS FOREIGN KEY (bssid) REFERENCES AP (bssid)
     62 + CONSTRAINT RelationshipWPS FOREIGN KEY (bssid) REFERENCES AP (bssid) ON UPDATE CASCADE ON DELETE CASCADE
    63 63  );
    64 64   
    65 65   
    skipped 8 lines
    74 74   alt REAL,
    75 75   bsstimestamp timestamp,
    76 76   CONSTRAINT Key3 PRIMARY KEY (time,bssid),
    77  - CONSTRAINT SeenAp FOREIGN KEY (bssid) REFERENCES AP (bssid)
     77 + CONSTRAINT SeenAp FOREIGN KEY (bssid) REFERENCES AP (bssid) ON UPDATE CASCADE ON DELETE CASCADE
    78 78  );
    79 79   
    80 80   
    skipped 3 lines
    84 84   ssid TEXT NOT NULL,
    85 85   time datetime,
    86 86   CONSTRAINT Key5 PRIMARY KEY (mac,ssid),
    87  - CONSTRAINT ProbesSent FOREIGN KEY (mac) REFERENCES Client (mac)
     87 + CONSTRAINT ProbesSent FOREIGN KEY (mac) REFERENCES Client (mac) ON UPDATE CASCADE ON DELETE CASCADE
    88 88  );
    89 89   
    90 90   
    skipped 4 lines
    95 95   file TEXT NOT NULL,
    96 96   hashcat TEXT,
    97 97   CONSTRAINT Key6 PRIMARY KEY (bssid,mac,file),
    98  - CONSTRAINT FRelationship4 FOREIGN KEY (bssid) REFERENCES AP (bssid),
    99  - CONSTRAINT FRelationship5 FOREIGN KEY (mac) REFERENCES Client (mac)
     98 + CONSTRAINT FRelationship4 FOREIGN KEY (bssid) REFERENCES AP (bssid) ON UPDATE CASCADE ON DELETE CASCADE,
     99 + CONSTRAINT FRelationship5 FOREIGN KEY (mac) REFERENCES Client (mac) ON UPDATE CASCADE ON DELETE CASCADE
    100 100  );
    101 101   
    102 102  CREATE TABLE IF NOT EXISTS Identity
    skipped 2 lines
    105 105   mac TEXT NOT NULL,
    106 106   identity TEXT NOT NULL,
    107 107   CONSTRAINT Key7 PRIMARY KEY (bssid,mac,identity),
    108  - CONSTRAINT FRelationship6 FOREIGN KEY (bssid) REFERENCES AP (bssid),
    109  - CONSTRAINT FRelationship7 FOREIGN KEY (mac) REFERENCES Client (mac)
     108 + CONSTRAINT FRelationship6 FOREIGN KEY (bssid) REFERENCES AP (bssid) ON UPDATE CASCADE ON DELETE CASCADE,
     109 + CONSTRAINT FRelationship7 FOREIGN KEY (mac) REFERENCES Client (mac) ON UPDATE CASCADE ON DELETE CASCADE
    110 110  );
    111 111   
Please wait...
Page is in error, reload to recover