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())))
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 = []
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()
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()
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.")
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.')
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())))
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()
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)
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 =[]
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()