| 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 |