Пример #1
0
 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()
Пример #2
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()
Пример #3
0
 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()
Пример #4
0
 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()
Пример #5
0
 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()
Пример #6
0
 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()
Пример #7
0
 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()
Пример #8
0
 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()
Пример #9
0
 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()
Пример #10
0
 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)
Пример #11
0
 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()
Пример #12
0
 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()
Пример #14
0
 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()
Пример #15
0
 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()
Пример #16
0
 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)
Пример #17
0
 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()
Пример #18
0
 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()
Пример #20
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()
Пример #21
0
    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()
Пример #22
0
 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
Пример #23
0
 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)
Пример #25
0
 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()
Пример #26
0
    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()
Пример #27
0
    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)
Пример #28
0
    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)
Пример #29
0
 def StopProbeResquest(self):
     self.ThreadProbe.stop()
     self.StartedProbe(False)
     set_monitor_mode(self.get_placa.currentText()).setDisable()
Пример #30
0
    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)
Пример #31
0
 def StopProbeResquest(self):
     self.ThreadProbe.stop()
     self.StartedProbe(False)
     set_monitor_mode(self.get_placa.currentText()).setDisable()
Пример #32
0
    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)
Пример #33
0
    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)