Skip to content

Commit 82e451d

Browse files
authored
Release 3.0
1 parent 42b228c commit 82e451d

File tree

3 files changed

+325
-279
lines changed

3 files changed

+325
-279
lines changed

lib/Connect2DB.py

+20-16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import sys
44
import os
5+
import subprocess
56
import sqlite3
67
from sqlite3 import Error
78
from Connect2DB import *
@@ -42,36 +43,39 @@ def list():
4243
dbl.append("workspace load "+p)
4344

4445
def display_list():
45-
dl = str(os.listdir('db/'))[1:-1].replace('.db','').replace(',','').replace('\'','')
46+
dl = str(os.listdir('db/'))[1:-1].replace(',','').replace('\'','')
4647
frame = dp.DataFrame(dl.split())
4748
print tabulate(frame, showindex=False, headers=['Workspaces'], tablefmt='psql')
4849

4950

50-
def delete_workspace(workspace):
51-
os.system('rm -rf db/'+workspace+'.db')
51+
def delete_workspace(workspace):
52+
subprocess.call('rm -rf db/'+workspace, shell=True)
5253

5354
def connect_db():
5455
global connection
5556
connection = sqlite3.connect(db_file, check_same_thread=False)
5657
connection.text_factory = str
5758

5859
class load():
59-
def begin(self):
60-
connection.execute("BEGIN TRANSACTION")
60+
def __init__(self):
61+
pass
6162

62-
def insert_ACCESS_POINT(self, SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH):
63-
connection.execute("insert into accessPoints (ESSID, BSSID, VENDOR, CHAN, PWR, ENC, CIPHER, AUTH) values (?,?,?,?,?,?,?,?)", (SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH))
63+
def begin(self):
64+
connection.execute("BEGIN TRANSACTION")
6465

65-
def Insert_Probe_REQUEST(self, SSID, MAC, VENDOR, SIG):
66-
connection.execute("insert into ProbeRequests (ESSID, CLIENT, VENDOR, PWR) values (?,?,?,?)", (SSID, MAC, VENDOR, SIG))
66+
def insert_ACCESS_POINT(self, SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH):
67+
connection.execute("insert into accessPoints (ESSID, BSSID, VENDOR, CHAN, PWR, ENC, CIPHER, AUTH) values (?,?,?,?,?,?,?,?)", (SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH))
6768

68-
def Insert_Probe_RESPONSE(self, SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH, RPCM):
69-
connection.execute("insert into ProbeResponses (ESSID, BSSID, VENDOR, CHAN, PWR, ENC, CIPHER, AUTH, CLIENT) values (?,?,?,?,?,?,?,?,?)", (SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH, RPCM))
69+
def Insert_Probe_REQUEST(self, SSID, MAC, VENDOR, SIG):
70+
connection.execute("insert into ProbeRequests (ESSID, CLIENT, VENDOR, PWR) values (?,?,?,?)", (SSID, MAC, VENDOR, SIG))
7071

72+
def Insert_Probe_RESPONSE(self, SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH, RPCM):
73+
connection.execute("insert into ProbeResponses (ESSID, BSSID, VENDOR, CHAN, PWR, ENC, CIPHER, AUTH, CLIENT) values (?,?,?,?,?,?,?,?,?)", (SSID, MAC, VENDOR, CHL, SIG, ENC, CHR, ATH, RPCM))
7174

72-
def Insert_EAP(self, sender, user, ap):
73-
connection.execute("insert into EAP (SRC_MAC, USERNAME, BSSID) values (?,?,?)", (sender, user, ap))
7475

75-
def Close(self):
76-
connection.commit()
77-
connection.close()
76+
def Insert_EAP(self, sender, user, ap):
77+
connection.execute("insert into EAP (SRC_MAC, USERNAME, BSSID) values (?,?,?)", (sender, user, ap))
78+
79+
def Close(self):
80+
connection.commit()
81+
connection.close()

lib/Queries.py

+33-17
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
from tabulate import tabulate
1111

1212
class colors:
13+
def __init__(self):
14+
pass
15+
1316
GRN = '\033[92m'
1417
RD = '\033[91m'
1518
NRM = '\033[0m'
@@ -18,10 +21,13 @@ class colors:
1821
tables = ['accessPoints', 'ProbeRequests', 'ProbeResponses','EAP']
1922
try:
2023
class queries():
21-
24+
25+
def __init__(self):
26+
pass
27+
2228
def __int__(self):
2329
super(queries, self).__init__()
24-
30+
2531
def blockPrint(self):
2632
sys.stdout = open(os.devnull, 'w')
2733

@@ -50,11 +56,11 @@ def clean_up(self):
5056
try:
5157
qr = dp.read_sql('select * from '+ tb +'', con)
5258
if tb_value == 0:
53-
table = qr.sort_values('PWR', ascending=False).drop_duplicates(subset=['ESSID', 'BSSID', 'VENDOR', 'CHAN', 'ENC', 'CIPHER', 'AUTH'], keep='first')
59+
table = qr.sort_values('PWR', ascending=False).drop_duplicates(subset=['ESSID', 'BSSID', 'VENDOR', 'CHAN', 'ENC', 'AUTH'], keep='first')
5460
elif tb_value == 1:
5561
table = qr.sort_values('PWR', ascending=False).drop_duplicates(subset=['ESSID', 'CLIENT', 'VENDOR'], keep='first')
5662
elif tb_value == 2:
57-
table = qr.sort_values('PWR', ascending=False).drop_duplicates(subset=['ESSID', 'BSSID', 'VENDOR', 'CHAN', 'ENC', 'CIPHER', 'AUTH', 'CLIENT'], keep='first')
63+
table = qr.sort_values('PWR', ascending=False).drop_duplicates(subset=['ESSID', 'BSSID', 'VENDOR', 'CHAN', 'ENC', 'CIPHER', 'AUTH', 'CLIENT'], keep='first')
5864
elif tb_value == 3:
5965
table = qr.drop_duplicates(subset=['SRC_MAC', 'USERNAME', 'BSSID'], keep='first')
6066
clrdb = table
@@ -68,8 +74,8 @@ def clean_up(self):
6874
clrdb.index = clrdb.index + 1
6975
del clrdb['index']
7076
clrdb.to_sql(""+tb+"", con , if_exists="replace")
71-
except pandas.io.sql.DatabaseError:
72-
continue
77+
except pandas.io.sql.DatabaseError:
78+
continue
7379

7480
def Custom_Queries(self, option):
7581
try:
@@ -83,14 +89,14 @@ def Custom_Queries(self, option):
8389
qr = dp.read_sql(CQ, con)
8490
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
8591
except pandas.io.sql.DatabaseError:
86-
pass
92+
pass
8793

8894

8995
def show_table(self, option):
9096
try:
9197
if option in ["AP"]:
9298
qr = dp.read_sql('select * from accessPoints', con)
93-
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
99+
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
94100
elif option in ["proberequests"]:
95101
qr = dp.read_sql('select * from ProbeRequests', con)
96102
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
@@ -99,7 +105,7 @@ def show_table(self, option):
99105
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
100106
elif option in ["inscope_AP"]:
101107
qr = dp.read_sql('select * from inscope_accessPoints', con)
102-
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
108+
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
103109
elif option in ["inscope_proberequests"]:
104110
qr = dp.read_sql('select * from inscope_proberequests', con)
105111
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
@@ -115,7 +121,7 @@ def show_table(self, option):
115121
elif option in ["LOOT"]:
116122
qr = dp.read_sql('select * from LOOT', con)
117123
print (tabulate(qr.drop_duplicates(), showindex=False, headers=qr.columns, tablefmt="psql"))
118-
else:
124+
else:
119125
print colors.RD + "Error: Invalid query, please try again.\n" + colors.NRM
120126
except pandas.io.sql.DatabaseError:
121127
print colors.RD + "Error: Table does not exist or is empty, please try again.\n" + colors.NRM
@@ -151,7 +157,7 @@ def in_scope(self, option):
151157
insqr.index = insqr.index + 1
152158
del insqr['index']
153159
insqr.to_sql("inscope_"+tb+"", con , if_exists="replace")
154-
except pandas.io.sql.DatabaseError:
160+
except pandas.io.sql.DatabaseError:
155161
continue
156162
except pandas.io.sql.DatabaseError:
157163
continue
@@ -178,7 +184,7 @@ def in_scope(self, option):
178184
insqr.index = insqr.index + 1
179185
del insqr['index']
180186
insqr.to_sql("inscope_"+tb+"", con , if_exists="replace")
181-
except pandas.io.sql.DatabaseError:
187+
except pandas.io.sql.DatabaseError:
182188
continue
183189
else:
184190
print colors.RD + "SSID does not exist" + colors.NRM
@@ -190,12 +196,12 @@ def main(self, t2, where):
190196
try:
191197
qr = dp.read_sql('' + t2 +' '+ tb + where +'', con)
192198
result = result.append(qr)
193-
except pandas.io.sql.DatabaseError:
199+
except pandas.io.sql.DatabaseError:
194200
continue
195-
201+
196202
result = result.drop_duplicates()
197-
result = tabulate(result, showindex=False)
198-
203+
result = tabulate(result, showindex=False)
204+
199205
def show(self, option):
200206
where = ''
201207
if option in ["SSIDS"]:
@@ -232,12 +238,22 @@ def show_inscope_ssids(self):
232238
result = qr.to_string(formatters={'ESSID':'{{:<{}s}}'.format(qr['ESSID'].str.len().max()).format}, header=False, index=False)
233239
return str(result)
234240

241+
def show_inscope_MACs(self):
242+
qr = dp.read_sql('select BSSID from inscope_accessPoints', con)
243+
result = qr.to_string(formatters={'BSSID':'{{:<{}s}}'.format(qr['BSSID'].str.len().max()).format}, header=False, index=False)
244+
return str(result)
245+
246+
def show_MACs(self, SSID):
247+
qr = dp.read_sql('select BSSID from inscope_accessPoints where ESSID = "'+SSID+'"', con)
248+
result = qr.to_string(formatters={'BSSID':'{{:<{}s}}'.format(qr['BSSID'].str.len().max()).format}, header=False, index=False)
249+
return str(result)
250+
235251
def loot(self, loot):
236252
cl = dp.DataFrame(loot, index=[0])
237253
cl = cl[['MAC', 'Username', 'Password']]
238254
cl.reset_index(inplace=True)
239255
del cl['index']
240-
cl.to_sql("LOOT", con, index=False, if_exists="append")
256+
cl.to_sql("LOOT", con, index=False, if_exists="append")
241257
except NameError:
242258
pass
243259
print colors.RD + "Error: No workspace selected. Please Create or load a work" + colors.NRM

0 commit comments

Comments
 (0)