Exemplo n.º 1
0
 def GetDHCPRequests(self, data):
     if len(data) == 8:
         if Refactor.check_is_mac(data[4]):
             if data[4] not in self.APclients.keys():
                 self.APclients[data[4]] = {
                     'IP': data[2],
                     'device': data[5],
                     'in_tables': False,
                 }
             print self.APclients
     elif len(data) == 9:
         if Refactor.check_is_mac(data[5]):
             if data[5] not in self.APclients.keys():
                 self.APclients[data[5]] = {
                     'IP': data[2],
                     'device': data[6],
                     'in_tables': False,
                 }
             print self.APclients
     elif len(data) == 7:
         if Refactor.check_is_mac(data[4]):
             if data[4] not in self.APclients.keys():
                 leases = IscDhcpLeases('Settings/dhcp/dhcpd.leases')
                 hostname = None
                 try:
                     for item in leases.get():
                         if item.ethernet == data[4]:
                             hostname = item.hostname
                     if hostname == None:
                         item = leases.get_current()
                         hostname = item[data[4]]
                 except:
                     hostname = 'unknown'
                 if hotname == None: hostname = 'unknown'
                 self.APclients[data[4]] = {
                     'IP': data[2],
                     'device': hostname,
                     'in_tables': False,
                 }
                 print self.APclients
     Headers = []
     for mac in self.APclients.keys():
         if self.APclients[mac]['in_tables'] == False:
             self.APclients[mac]['in_tables'] = True
             self.THeaders['mac-address'].append(mac)
             self.THeaders['ip-address'].append(self.APclients[mac]['IP'])
             self.THeaders['device'].append(self.APclients[mac]['device'])
             for n, key in enumerate(self.THeaders.keys()):
                 Headers.append(key)
                 for m, item in enumerate(self.THeaders[key]):
                     item = QTableWidgetItem(item)
                     item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                     self.TabInfoAP.setItem(m, n, item)
             self.TabInfoAP.setHorizontalHeaderLabels(self.THeaders.keys())
     self.connectedCount.setText(str(len(self.APclients.keys())))
Exemplo n.º 2
0
 def scan_diveces_airodump(self):
     dirpath = "Settings/Dump"
     if not path.isdir(dirpath):
         makedirs(dirpath)
     self.data = {'Bssid': [], 'Essid': [], 'Channel': []}
     exit_air = airdump_start(self.interface)
     self.fix = False
     if exit_air == None:
         self.cap = get_network_scan()
         if self.cap != None:
             for i in self.cap:
                 i = i.split("||")
                 if Refactor.check_is_mac(i[2]):
                     Headers = []
                     self.data['Channel'].append(i[0])
                     self.data['Essid'].append(i[1])
                     self.data['Bssid'].append(i[2])
                     for n, key in enumerate(self.data.keys()):
                         Headers.append(key)
                         for m, item in enumerate(self.data[key]):
                             item = QTableWidgetItem(item)
                             item.setTextAlignment(Qt.AlignVCenter
                                                   | Qt.AlignCenter)
                             self.tables.setItem(m, n, item)
                 self.cap = []
Exemplo n.º 3
0
 def SettingsScan(self):
     self.data = {'Bssid':[], 'Essid':[], 'Channel':[]}
     if self.get_placa.currentText() == "":
         QMessageBox.information(self, "Network Adapter", 'Network Adapter Not found try again.')
     else:
         self.interface = str(set_monitor_mode(self.get_placa.currentText()).setEnable())
         self.xmlcheck.xmlSettings("interface", "monitor_mode", self.interface, False)
         if self.time_scan.currentText() == "10s":count = 10
         elif self.time_scan.currentText() == "20s":count = 20
         elif self.time_scan.currentText() == "30s":count = 30
         if self.interface != None:
             if self.options_scan == "scan_scapy":
                 self.scapy_scan_AP(self.interface,count)
                 for i in self.ApsCaptured.keys():
                     if Refactor.check_is_mac(i):
                         self.data['Channel'].append(self.ApsCaptured[i][0])
                         self.data['Essid'].append(self.ApsCaptured[i][1])
                         self.data['Bssid'].append(i)
                         Headers = []
                         for n, key in enumerate(self.data.keys()):
                             Headers.append(key)
                             for m, item in enumerate(self.data[key]):
                                 item = QTableWidgetItem(item)
                                 item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                                 self.tables.setItem(m, n, item)
             else:
                 if path.isfile(popen('which airodump-ng').read().split("\n")[0]):
                     self.thread_airodump = threading.Thread(target=self.scan_diveces_airodump)
                     self.thread_airodump.daemon = True
                     self.thread_airodump.start()
                 else:
                     QMessageBox.information(self,'Error airodump','airodump-ng not installed')
                     set_monitor_mode(self.get_placa.currentText()).setDisable()
Exemplo n.º 4
0
 def SettingsScan(self):
     self.data = {'Bssid':[], 'Essid':[], 'Channel':[]}
     if self.get_placa.currentText() == "":
         QMessageBox.information(self, "Network Adapter", 'Network Adapter Not found try again.')
     else:
         self.interface = str(set_monitor_mode(self.get_placa.currentText()).setEnable())
         self.xmlcheck.xmlSettings("interface", "monitor_mode", self.interface, False)
         if self.time_scan.currentText() == "10s":count = 10
         elif self.time_scan.currentText() == "20s":count = 20
         elif self.time_scan.currentText() == "30s":count = 30
         if self.interface != None:
             if self.options_scan == "scan_scapy":
                 self.scapy_scan_AP(self.interface,count)
                 for i in self.ApsCaptured.keys():
                     if Refactor.check_is_mac(i):
                         self.data['Channel'].append(self.ApsCaptured[i][0])
                         self.data['Essid'].append(self.ApsCaptured[i][1])
                         self.data['Bssid'].append(i)
                         Headers = []
                         for n, key in enumerate(self.data.keys()):
                             Headers.append(key)
                             for m, item in enumerate(self.data[key]):
                                 item = QTableWidgetItem(item)
                                 item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                                 self.tables.setItem(m, n, item)
             else:
                 self.thread_airodump = threading.Thread(target=self.scan_diveces_airodump)
                 self.thread_airodump.daemon = True
                 self.thread_airodump.start()
Exemplo n.º 5
0
 def list_clicked(self, index):
     itms = self.list.selectedIndexes()
     for i in itms:
         attack = str(i.data().toString()).split()
         for i in attack:
             if Refactor.check_is_mac(i.replace(" ", "")):
                 self.linetarget.setText(str(i))
         if self.linetarget.text() == "":
             QMessageBox.information(self, "MacAddress",
                                     "Error check the Mac Target, please set the mac valid.")
Exemplo n.º 6
0
 def list_clicked(self, index):
     itms = self.list.selectedIndexes()
     for i in itms:
         attack = str(i.data().toString()).split()
         for i in attack:
             if Refactor.check_is_mac(i.replace(' ', '')):
                 self.linetarget.setText(str(i))
         if self.linetarget.text() == '':
             QMessageBox.information(self, 'MacAddress',
             'Error check the Mac Target, please set the mac valid.')
Exemplo n.º 7
0
 def GetDHCPRequests(self,data):
     if len(data) == 8:
         if Refactor.check_is_mac(data[4]):
             if data[4] not in self.APclients.keys():
                 self.APclients[data[4]] = {'IP': data[2],'device': data[5],'in_tables': False,}
             print self.APclients
     elif len(data) == 9:
         if Refactor.check_is_mac(data[5]):
             if data[5] not in self.APclients.keys():
                 self.APclients[data[5]] = {'IP': data[2],'device': data[6],'in_tables': False,}
             print self.APclients
     elif len(data) == 7:
         if Refactor.check_is_mac(data[4]):
             if data[4] not in self.APclients.keys():
                 leases = IscDhcpLeases('Settings/dhcp/dhcpd.leases')
                 hostname = None
                 try:
                     for item in leases.get():
                         if item.ethernet == data[4]:
                             hostname = item.hostname
                     if hostname == None:
                         item = leases.get_current()
                         hostname = item[data[4]]
                 except:
                     hostname = 'unknown'
                 if hotname == None:hostname = 'unknown'
                 self.APclients[data[4]] = {'IP': data[2],'device': hostname,'in_tables': False,}
                 print self.APclients
     Headers = []
     for mac in self.APclients.keys():
         if self.APclients[mac]['in_tables'] == False:
             self.APclients[mac]['in_tables'] = True
             self.THeaders['mac-address'].append(mac)
             self.THeaders['ip-address'].append(self.APclients[mac]['IP'])
             self.THeaders['device'].append(self.APclients[mac]['device'])
             for n, key in enumerate(self.THeaders.keys()):
                 Headers.append(key)
                 for m, item in enumerate(self.THeaders[key]):
                     item = QTableWidgetItem(item)
                     item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                     self.TabInfoAP.setItem(m, n, item)
             self.TabInfoAP.setHorizontalHeaderLabels(self.THeaders.keys())
     self.connectedCount.setText(str(len(self.APclients.keys())))
Exemplo n.º 8
0
 def SettingsScan(self):
     self.data = {'Bssid':[], 'Essid':[], 'Channel':[]}
     if self.get_placa.currentText() == "":
         QMessageBox.information(self, "Network Adapter", 'Network Adapter Not found try again.')
     else:
         if not search(self.interface,check_output('ifconfig')):
             self.interface = self.set_monitor_mode(self.get_placa.currentText(),True)
             self.xmlcheck.xmlSettings("interface", "monitor_mode", self.interface, False)
         if self.time_scan.currentText() == "10s":count = 10
         elif self.time_scan.currentText() == "20s":count = 20
         elif self.time_scan.currentText() == "30s":count = 30
         if self.interface != None:
             if self.options_scan == "scan_scapy":
                 sniff(iface=self.interface, prn =self.Scanner_devices, timeout=count)
                 t = len(self.ap_list) -1
                 items,cap = [],[]
                 for i in range(t):
                     if len(self.ap_list[i]) < len(self.ap_list[i+1]):
                         if i != 0:
                             for index in xrange(self.list.count()):
                                 items.append(self.list.item(index))
                             if self.ap_list[i] or self.ap_list[i+1] in items:pass
                             else:
                                 if not (self.ap_list[i] + " " + self.ap_list[i+1]) in cap:
                                     cap.append(self.ap_list[i] + " " + self.ap_list[i+1])
                         else:
                             if not (self.ap_list[i] + " " + self.ap_list[i+1]) in cap:
                                 cap.append(self.ap_list[i] + " " + self.ap_list[i+1])
                     else:
                         if not (self.ap_list[i+1] + " " + self.ap_list[i]) in cap:
                             cap.append(self.ap_list[i+1] + " " + self.ap_list[i])
                     if self.ap_list[i] < i:
                         pass
                         break
                 for i in cap:
                     dat = i.split()
                     if Refactor.check_is_mac(dat[3]):
                         self.data['Channel'].append(dat[0])
                         self.data['Essid'].append(dat[2])
                         self.data['Bssid'].append(dat[3])
                         Headers = []
                         for n, key in enumerate(self.data.keys()):
                             Headers.append(key)
                             for m, item in enumerate(self.data[key]):
                                 item = QTableWidgetItem(item)
                                 item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                                 self.tables.setItem(m, n, item)
                 self.ap_list = []
             else:
                 self.thread_airodump = threading.Thread(target=self.scan_diveces_airodump)
                 self.thread_airodump.daemon = True
                 self.thread_airodump.start()
Exemplo n.º 9
0
 def monitorThreadScan(self,apData):
     apData = list(apData.split('|'))
     if not str(apData[0]) in self.ApsCaptured.keys():
         self.ApsCaptured[str(apData[0])] = apData
         if Refactor.check_is_mac(str(apData[0])):
            self.data['Channel'].append(self.ApsCaptured[str(apData[0])][1])
            self.data['Essid'].append(self.ApsCaptured[str(apData[0])][2])
            self.data['Bssid'].append(str(apData[0]))
            Headers = []
            for n, key in enumerate(self.data.keys()):
                Headers.append(key)
                for m, item in enumerate(self.data[key]):
                    item = QTableWidgetItem(item)
                    item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                    self.tables.setItem(m, n, item)
Exemplo n.º 10
0
 def scan_diveces_airodump(self):
     dirpath = "Settings/Dump"
     if not path.isdir(dirpath):
         makedirs(dirpath)
     self.data = {'Bssid':[], 'Essid':[], 'Channel':[]}
     exit_air = airdump_start(self.interface)
     self.fix = False
     if exit_air == None:
         self.cap = get_network_scan()
         if self.cap != None:
             for i in self.cap:
                 i = i.split("||")
                 if Refactor.check_is_mac(i[2]):
                     Headers = []
                     self.data['Channel'].append(i[0])
                     self.data['Essid'].append(i[1])
                     self.data['Bssid'].append(i[2])
                     for n, key in enumerate(self.data.keys()):
                         Headers.append(key)
                         for m, item in enumerate(self.data[key]):
                             item = QTableWidgetItem(item)
                             item.setTextAlignment(Qt.AlignVCenter | Qt.AlignCenter)
                             self.tables.setItem(m, n, item)
                 self.cap =[]
Exemplo n.º 11
0
 def SettingsScan(self):
     self.data = {'Bssid': [], 'Essid': [], 'Channel': []}
     if self.get_placa.currentText() == "":
         QMessageBox.information(self, "Network Adapter",
                                 'Network Adapter Not found try again.')
     else:
         if not search(self.interface, check_output('ifconfig')):
             self.interface = self.set_monitor_mode(
                 self.get_placa.currentText(), True)
             self.xmlcheck.xmlSettings("interface", "monitor_mode",
                                       self.interface, False)
         if self.time_scan.currentText() == "10s": count = 10
         elif self.time_scan.currentText() == "20s": count = 20
         elif self.time_scan.currentText() == "30s": count = 30
         if self.interface != None:
             if self.options_scan == "scan_scapy":
                 sniff(iface=self.interface,
                       prn=self.Scanner_devices,
                       timeout=count)
                 t = len(self.ap_list) - 1
                 items, cap = [], []
                 for i in range(t):
                     if len(self.ap_list[i]) < len(self.ap_list[i + 1]):
                         if i != 0:
                             for index in xrange(self.list.count()):
                                 items.append(self.list.item(index))
                             if self.ap_list[i] or self.ap_list[i +
                                                                1] in items:
                                 pass
                             else:
                                 if not (self.ap_list[i] + " " +
                                         self.ap_list[i + 1]) in cap:
                                     cap.append(self.ap_list[i] + " " +
                                                self.ap_list[i + 1])
                         else:
                             if not (self.ap_list[i] + " " +
                                     self.ap_list[i + 1]) in cap:
                                 cap.append(self.ap_list[i] + " " +
                                            self.ap_list[i + 1])
                     else:
                         if not (self.ap_list[i + 1] + " " +
                                 self.ap_list[i]) in cap:
                             cap.append(self.ap_list[i + 1] + " " +
                                        self.ap_list[i])
                     if self.ap_list[i] < i:
                         pass
                         break
                 for i in cap:
                     dat = i.split()
                     if Refactor.check_is_mac(dat[3]):
                         self.data['Channel'].append(dat[0])
                         self.data['Essid'].append(dat[2])
                         self.data['Bssid'].append(dat[3])
                         Headers = []
                         for n, key in enumerate(self.data.keys()):
                             Headers.append(key)
                             for m, item in enumerate(self.data[key]):
                                 item = QTableWidgetItem(item)
                                 item.setTextAlignment(Qt.AlignVCenter
                                                       | Qt.AlignCenter)
                                 self.tables.setItem(m, n, item)
                 self.ap_list = []
             else:
                 self.thread_airodump = threading.Thread(
                     target=self.scan_diveces_airodump)
                 self.thread_airodump.daemon = True
                 self.thread_airodump.start()