Exemple #1
0
    def UI(self):
        self.widget = QtGui.QWidget()
        self.statusBar = QtGui.QStatusBar()
        self.layout = QtGui.QVBoxLayout(self.widget)
        self.statusLabel = QtGui.QLabel()
        self.statusInetrnet(False)
        self.statusBar.setFixedHeight(20)
        self.statusBar.addWidget(QtGui.QLabel('Status Connection::'))
        self.statusBar.addWidget(self.statusLabel)

        self.groupBoxIface = QtGui.QGroupBox()
        self.components = QtGui.QHBoxLayout()
        self.compostart = QtGui.QHBoxLayout()
        self.checkboxlayout = QtGui.QFormLayout()
        self.btn_refrash = QtGui.QPushButton('Refresh')
        self.btn_start = QtGui.QPushButton('Start GUI..')
        self.cb_ifaces = QtGui.QComboBox()
        self.check_no_internet = QtGui.QCheckBox('Start without connection.')

        self.check_no_internet.clicked.connect(self.getstatus_checkbox)
        self.btn_refrash.clicked.connect(self.get_interfaceConnected)
        self.btn_start.clicked.connect(self.startGUI)
        self.groupBoxIface.setTitle('Interface/Wireless')
        self.btn_refrash.setIcon(QtGui.QIcon('icons/refresh.png'))
        self.btn_start.setIcon(QtGui.QIcon('icons/start.png'))
        self.btn_start.setEnabled(False)
        self.compostart.addStretch(1)
        self.compostart.addWidget(self.btn_start)
        self.groupBoxIface.setLayout(self.components)
        self.components.addWidget(self.cb_ifaces)
        self.components.addWidget(self.btn_refrash)
        self.checkboxlayout.addWidget(self.check_no_internet)

        self.infor = ServiceNotify(
            'Click the "Refresh" for try detect your connection.',
            title='Attention',
            link=None,
            timeout=30000)
        self.layout.addWidget(self.infor)
        self.layout.addWidget(self.groupBoxIface)
        self.layout.addLayout(self.checkboxlayout)
        self.layout.addLayout(self.compostart)
        self.layout.addWidget(self.statusBar)
        self.Main.addWidget(self.widget)
        self.setLayout(self.Main)
Exemple #2
0
    def __init__(self,FSettings,main,parent=None):
        super(PopUpPlugins, self).__init__(parent)
        self.main_method = main
        self.FSettings = FSettings
        self.layout = QtGui.QVBoxLayout()
        self.layoutform = QtGui.QFormLayout()
        self.layoutproxy = QtGui.QVBoxLayout()
        self.GroupPlugins = QtGui.QGroupBox()
        self.GroupPluginsProxy = QtGui.QGroupBox()
        self.GroupPlugins.setTitle('plugins:')
        self.GroupPluginsProxy.setLayout(self.layoutproxy)
        self.GroupPlugins.setLayout(self.layoutform)

        self.check_netcreds     = QtGui.QCheckBox('net-creds ')
        self.check_responder    = QtGui.QCheckBox('Responder')
        self.check_tcpproxy     = QtGui.QCheckBox('TCP-Proxy')
        self.check_noproxy      = QtGui.QRadioButton('No Proxy')
        self.check_mitmproxy    = QtGui.QRadioButton('MITM Proxy (HTTP)')
        self.check_mitmproxyssl   = QtGui.QRadioButton('MITM Proxy (HTTP/HTTPS) + SSL-Strip')

        self.btnResponderSettings = QtGui.QPushButton('Change')
        self.btnResponderSettings.setIcon(QtGui.QIcon('icons/config.png'))
        #self.btnResponderSettings.clicked.connect(self.ConfigOBJBResponder)

        # set text description plugins
        self.check_mitmproxy.setObjectName('MITM Proxy 4.0.4. Forward HTTP only')
        self.check_mitmproxyssl.setObjectName('MITM Proxy 4.0.4. Forward HTTP + HTTPS and run SSLStrip')
        self.check_noproxy.setObjectName('No HTTP / HTTPS proxying')

        # desction plugin checkbox
        self.check_netcreds.setObjectName('Sniff passwords and hashes from an interface or pcap file.'
        ' coded by: Dan McInerney')
        self.check_tcpproxy.setObjectName('sniff for isntercept network traffic on UDP,TCP protocol.'
        ' get password,hash,image,etc...')
        self.check_responder.setObjectName('Responder an LLMNR, NBT-NS and MDNS poisoner. '
        'By default, the tool will only answer to File Server Service request, which is for SMB.')


        # table 1 for add plugins with QradioBtton
        self.THeadersPluginsProxy  = OrderedDict(
        [   ('Plugins',[self.check_noproxy, self.check_mitmproxy, self.check_mitmproxyssl]),
            ('Settings',[QtGui.QPushButton('None'), QtGui.QPushButton('None'), QtGui.QPushButton('None')]),
            ('Description',[self.check_noproxy.objectName(), self.check_mitmproxy.objectName(), self.check_mitmproxyssl.objectName()])
        ])

        # table 2 for add plugins with checkbox
        self.THeadersPlugins  = OrderedDict(
        [   ('Plugins',[self.check_tcpproxy, self.check_responder]),
            ('Settings',[QtGui.QPushButton('None'), self.btnResponderSettings]),
            ('Description',[self.check_tcpproxy.objectName(), self.check_responder.objectName()])
        ])

        self.tableplugins = QtGui.QTableWidget()
        self.tableplugins.setColumnCount(3)
        self.tableplugins.setRowCount(len(self.THeadersPluginsProxy['Plugins']))
        self.tableplugins.resizeRowsToContents()
        self.tableplugins.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
        self.tableplugins.horizontalHeader().setStretchLastSection(True)
        self.tableplugins.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
        self.tableplugins.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
        self.tableplugins.verticalHeader().setVisible(False)
        self.tableplugins.verticalHeader().setDefaultSectionSize(23)
        self.tableplugins.setSortingEnabled(True)
        self.tableplugins.setHorizontalHeaderLabels(list(sorted(dict(self.THeadersPluginsProxy).keys())))
        self.tableplugins.horizontalHeader().resizeSection(0, 400)
        self.tableplugins.horizontalHeader().resizeSection(1, 290)
        self.tableplugins.resizeRowsToContents()

        self.tableplugincheckbox = QtGui.QTableWidget()
        self.tableplugincheckbox.setColumnCount(3)
        self.tableplugincheckbox.setRowCount(len(self.THeadersPlugins['Plugins']))
        self.tableplugincheckbox.resizeRowsToContents()
        self.tableplugincheckbox.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
        self.tableplugincheckbox.horizontalHeader().setStretchLastSection(True)
        self.tableplugincheckbox.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
        self.tableplugincheckbox.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
        self.tableplugincheckbox.verticalHeader().setVisible(False)
        self.tableplugincheckbox.verticalHeader().setDefaultSectionSize(23)
        self.tableplugincheckbox.setSortingEnabled(True)
        self.tableplugincheckbox.setHorizontalHeaderLabels(list(sorted(dict(self.THeadersPlugins).keys())))
        self.tableplugincheckbox.horizontalHeader().resizeSection(0, 400)
        self.tableplugincheckbox.horizontalHeader().resizeSection(1, 290)
        self.tableplugincheckbox.resizeRowsToContents()

        # add all widgets in Qtable 1 plgins
        Headers = []
        for n, key in enumerate(list(sorted(dict(self.THeadersPluginsProxy).keys()))):
            Headers.append(key)
            for m, item in enumerate(self.THeadersPluginsProxy[key]):
                if type(item) == type(QtGui.QRadioButton()) or type(item) == type(QtGui.QPushButton()):
                    self.tableplugins.setCellWidget(m,n,item)
                else:
                    item = QtGui.QTableWidgetItem(item)
                    self.tableplugins.setItem(m, n, item)
        self.tableplugins.setHorizontalHeaderLabels(list(sorted(dict(self.THeadersPluginsProxy).keys())))

        # add all widgets in Qtable 2 plugin
        Headers = []
        for n, key in enumerate(list(sorted(dict(self.THeadersPlugins).keys()))):
            Headers.append(key)
            for m, item in enumerate(self.THeadersPlugins[key]):
                if type(item) == type(QtGui.QCheckBox()) or type(item) == type(QtGui.QPushButton()):
                    self.tableplugincheckbox.setCellWidget(m,n,item)
                else:
                    item = QtGui.QTableWidgetItem(item)
                    self.tableplugincheckbox.setItem(m, n, item)
        self.tableplugins.setHorizontalHeaderLabels(list(sorted(dict(self.THeadersPlugins).keys())))

        self.proxyGroup = QtGui.QButtonGroup()
        self.proxyGroup.addButton(self.check_mitmproxy)
        self.proxyGroup.addButton(self.check_mitmproxyssl)
        self.proxyGroup.addButton(self.check_noproxy)

        self.check_tcpproxy.clicked.connect(self.checkBoxTCPproxy)
        self.check_mitmproxy.clicked.connect(self.checkGeneralOptions)
        self.check_mitmproxyssl.clicked.connect(self.checkGeneralOptions)
        self.check_noproxy.clicked.connect(self.checkGeneralOptions)
        self.check_responder.clicked.connect(self.checkBoxResponder)

        self.layoutproxy.addWidget(self.tableplugins)
        self.layoutproxy.addWidget(self.tableplugincheckbox)
        self.layout.addWidget(self.GroupPluginsProxy)
        self.addLayout(self.layout)
Exemple #3
0
    def __init__(self, FSettings, main, parent=None):
        super(PopUpPlugins, self).__init__(parent)
        self.main_method = main
        self.FSettings = FSettings
        self.layout = QtGui.QVBoxLayout()
        self.layoutform = QtGui.QFormLayout()
        self.GroupPlugins = QtGui.QGroupBox()
        self.GroupPlugins.setTitle('Activity Monitor:')

        self.layoutproxy = QtGui.QVBoxLayout()
        self.GroupPluginsProxy = QtGui.QGroupBox()
        self.GroupPluginsProxy.setTitle('Enable proxy server:')
        self.GroupPluginsProxy.setCheckable(True)
        #self.GroupPluginsProxy.toggled.connect(self.get_disable_proxyserver)
        self.GroupPluginsProxy.setLayout(self.layoutproxy)
        self.GroupPlugins.setLayout(self.layoutform)
        self.proxyGroup = QtGui.QButtonGroup()

        self.check_netcreds = QtGui.QCheckBox('net-creds ')
        self.check_responder = QtGui.QCheckBox('Firelamb')
        self.check_tcpproxy = QtGui.QCheckBox('TCP-Proxy')
        self.check_pumpkinProxy = QtGui.QRadioButton('Pumpkin-Proxy')
        self.check_dns2proy = QtGui.QRadioButton('SSLstrip+|Dns2proxy')
        self.check_sergioProxy = QtGui.QRadioButton('SSLstrip|Sergio-proxy')
        self.check_bdfproxy = QtGui.QRadioButton('BDFProxy-ng')
        self.check_noproxy = QtGui.QRadioButton('No Proxy')

        self.btnBDFSettings = QtGui.QPushButton('Change')
        self.btnResponderSettings = QtGui.QPushButton('Change')
        self.btnBDFSettings.setIcon(QtGui.QIcon('icons/config.png'))
        self.btnResponderSettings.setIcon(QtGui.QIcon('icons/config.png'))

        self.proxyGroup.addButton(self.check_pumpkinProxy)
        self.proxyGroup.addButton(self.check_dns2proy)
        self.proxyGroup.addButton(self.check_sergioProxy)

        self.proxyGroup.addButton(self.check_bdfproxy)

        self.check_tcpproxy.clicked.connect(self.checkBoxTCPproxy)
        self.check_pumpkinProxy.clicked.connect(self.checkGeneralOptions)
        self.check_dns2proy.clicked.connect(self.checkGeneralOptions)
        self.check_sergioProxy.clicked.connect(self.checkGeneralOptions)
        self.check_bdfproxy.clicked.connect(self.checkGeneralOptions)
        self.check_noproxy.clicked.connect(self.checkGeneralOptions)

        # set text description plugins
        self.check_dns2proy.setObjectName(
            'This tools offer a different features '
            'for post-explotation once you change the DNS server to a Victim. coded by: LeonardoNve'
        )
        self.check_sergioProxy.setObjectName(
            'Sergio proxy is an HTTP proxy that was written '
            'in Python for the Twisted framework. coded by: LeonardoNve')
        self.check_bdfproxy.setObjectName(
            'Patch Binaries via MITM: BackdoorFactory + mitmProxy, '
            'bdfproxy-ng is a fork and review of the original BDFProxy. coded by: secretsquirrel.'
        )
        self.check_pumpkinProxy.setObjectName(
            'Transparent proxy - intercepting HTTP data, '
            'this proxy server that allows to intercept requests and response on the fly'
        )

        # desction plugin checkbox
        self.check_netcreds.setObjectName(
            'Sniff passwords and hashes from an interface or pcap file.'
            ' coded by: Dan McInerney')
        self.check_tcpproxy.setObjectName(
            'sniff for isntercept network traffic on UDP,TCP protocol.'
            ' get password,hash,image,etc...')
        self.check_responder.setObjectName(
            'Firelamb an LLMNR, NBT-NS and MDNS poisoner. '
            'By default, the tool will only answer to File Server Service request, which is for SMB.'
        )

        #self.layoutproxy.addWidget(self.tableplugins)
        #self.layoutproxy.addWidget(self.tableplugincheckbox)
        self.layout.addWidget(self.GroupPluginsProxy)
        self.layout.addWidget(self.GroupPlugins)
        self.addLayout(self.layout)
Exemple #4
0
    def __init__(self, FSettings, main, parent=None):
        super(PopUpPlugins, self).__init__(parent)
        self.main_method = main
        self.FSettings = FSettings
        self.layout = QtGui.QVBoxLayout()
        self.layoutform = QtGui.QFormLayout()
        self.layoutproxy = QtGui.QVBoxLayout()
        self.GroupPlugins = QtGui.QGroupBox()
        self.GroupPluginsProxy = QtGui.QGroupBox()
        self.GroupPlugins.setTitle('plugins:')
        self.GroupPluginsProxy.setTitle('Enable proxy server:')
        self.GroupPluginsProxy.setCheckable(True)
        self.GroupPluginsProxy.clicked.connect(self.get_disable_proxyserver)
        self.GroupPluginsProxy.setLayout(self.layoutproxy)
        self.GroupPlugins.setLayout(self.layoutform)

        self.check_netcreds = QtGui.QCheckBox('net-creds ')
        self.check_responder = QtGui.QCheckBox('Responder')
        self.check_tcpproxy = QtGui.QCheckBox('TCP-Proxy')
        self.check_pumpkinProxy = QtGui.QRadioButton('Pumpkin-Proxy')
        self.check_dns2proy = QtGui.QRadioButton('SSLstrip+|Dns2proxy')
        self.check_sergioProxy = QtGui.QRadioButton('SSLstrip|Sergio-proxy')
        self.check_bdfproxy = QtGui.QRadioButton('BDFProxy-ng')
        self.check_noproxy = QtGui.QRadioButton('No Proxy')

        self.btnBDFSettings = QtGui.QPushButton('Change')
        self.btnResponderSettings = QtGui.QPushButton('Change')
        self.btnBDFSettings.setIcon(QtGui.QIcon('icons/config.png'))
        self.btnResponderSettings.setIcon(QtGui.QIcon('icons/config.png'))
        self.btnBDFSettings.clicked.connect(self.ConfigOBJBDFproxy)
        self.btnResponderSettings.clicked.connect(self.ConfigOBJBResponder)

        # set text description plugins
        self.check_dns2proy.setObjectName(
            'This tools offer a different features '
            'for post-explotation once you change the DNS server to a Victim. coded by: LeonardoNve'
        )
        self.check_sergioProxy.setObjectName(
            'Sergio proxy is an HTTP proxy that was written '
            'in Python for the Twisted framework. coded by: LeonardoNve')
        self.check_bdfproxy.setObjectName(
            'Patch Binaries via MITM: BackdoorFactory + mitmProxy, '
            'bdfproxy-ng is a fork and review of the original BDFProxy. coded by: secretsquirrel.'
        )
        self.check_pumpkinProxy.setObjectName(
            'Transparent proxy - intercepting HTTP data, '
            'this proxy server that allows to intercept requests and response on the fly'
        )

        # desction plugin checkbox
        self.check_netcreds.setObjectName(
            'Sniff passwords and hashes from an interface or pcap file.'
            ' coded by: Dan McInerney')
        self.check_tcpproxy.setObjectName(
            'sniff for isntercept network traffic on UDP,TCP protocol.'
            ' get password,hash,image,etc...')
        self.check_responder.setObjectName(
            'Responder an LLMNR, NBT-NS and MDNS poisoner. '
            'By default, the tool will only answer to File Server Service request, which is for SMB.'
        )

        # table 1 for add plugins with QradioBtton
        self.THeadersPluginsProxy = OrderedDict([
            ('Plugins', [
                self.check_pumpkinProxy, self.check_dns2proy,
                self.check_sergioProxy, self.check_bdfproxy
            ]),
            ('Settings', [
                QtGui.QPushButton('None'),
                QtGui.QPushButton('None'),
                QtGui.QPushButton('None'), self.btnBDFSettings
            ]),
            ('Description', [
                self.check_pumpkinProxy.objectName(),
                self.check_dns2proy.objectName(),
                self.check_sergioProxy.objectName(),
                self.check_bdfproxy.objectName()
            ])
        ])

        # table 2 for add plugins with checkbox
        self.THeadersPlugins = OrderedDict([
            ('Plugins', [self.check_tcpproxy, self.check_responder]),
            ('Settings',
             [QtGui.QPushButton('None'), self.btnResponderSettings]),
            ('Description', [
                self.check_tcpproxy.objectName(),
                self.check_responder.objectName(),
            ])
        ])

        self.tableplugins = QtGui.QTableWidget()
        self.tableplugins.setColumnCount(3)
        self.tableplugins.setRowCount(len(
            self.THeadersPluginsProxy['Plugins']))
        self.tableplugins.resizeRowsToContents()
        self.tableplugins.setSizePolicy(QtGui.QSizePolicy.Preferred,
                                        QtGui.QSizePolicy.Preferred)
        self.tableplugins.horizontalHeader().setStretchLastSection(True)
        self.tableplugins.setSelectionBehavior(
            QtGui.QAbstractItemView.SelectRows)
        self.tableplugins.setEditTriggers(
            QtGui.QAbstractItemView.NoEditTriggers)
        self.tableplugins.verticalHeader().setVisible(False)
        self.tableplugins.verticalHeader().setDefaultSectionSize(23)
        self.tableplugins.setSortingEnabled(True)
        self.tableplugins.setHorizontalHeaderLabels(
            self.THeadersPluginsProxy.keys())
        self.tableplugins.horizontalHeader().resizeSection(0, 158)
        self.tableplugins.horizontalHeader().resizeSection(1, 80)
        self.tableplugins.resizeRowsToContents()

        self.tableplugincheckbox = QtGui.QTableWidget()
        self.tableplugincheckbox.setColumnCount(3)
        self.tableplugincheckbox.setRowCount(
            len(self.THeadersPlugins['Plugins']))
        self.tableplugincheckbox.resizeRowsToContents()
        self.tableplugincheckbox.setSizePolicy(QtGui.QSizePolicy.Preferred,
                                               QtGui.QSizePolicy.Preferred)
        self.tableplugincheckbox.horizontalHeader().setStretchLastSection(True)
        self.tableplugincheckbox.setSelectionBehavior(
            QtGui.QAbstractItemView.SelectRows)
        self.tableplugincheckbox.setEditTriggers(
            QtGui.QAbstractItemView.NoEditTriggers)
        self.tableplugincheckbox.verticalHeader().setVisible(False)
        self.tableplugincheckbox.verticalHeader().setDefaultSectionSize(23)
        self.tableplugincheckbox.setSortingEnabled(True)
        self.tableplugincheckbox.setHorizontalHeaderLabels(
            self.THeadersPlugins.keys())
        self.tableplugincheckbox.horizontalHeader().resizeSection(0, 158)
        self.tableplugincheckbox.horizontalHeader().resizeSection(1, 80)
        self.tableplugincheckbox.resizeRowsToContents()

        # add all widgets in Qtable 1 plgins
        Headers = []
        for n, key in enumerate(self.THeadersPluginsProxy.keys()):
            Headers.append(key)
            for m, item in enumerate(self.THeadersPluginsProxy[key]):
                if type(item) == type(
                        QtGui.QRadioButton()) or type(item) == type(
                            QtGui.QPushButton()):
                    self.tableplugins.setCellWidget(m, n, item)
                else:
                    item = QtGui.QTableWidgetItem(item)
                    self.tableplugins.setItem(m, n, item)
        self.tableplugins.setHorizontalHeaderLabels(
            self.THeadersPluginsProxy.keys())
        # add all widgets in Qtable 2 plugin
        Headers = []
        for n, key in enumerate(self.THeadersPlugins.keys()):
            Headers.append(key)
            for m, item in enumerate(self.THeadersPlugins[key]):
                if type(item) == type(QtGui.QCheckBox()) or type(item) == type(
                        QtGui.QPushButton()):
                    self.tableplugincheckbox.setCellWidget(m, n, item)
                else:
                    item = QtGui.QTableWidgetItem(item)
                    self.tableplugincheckbox.setItem(m, n, item)
        self.tableplugins.setHorizontalHeaderLabels(
            self.THeadersPlugins.keys())

        self.proxyGroup = QtGui.QButtonGroup()
        self.proxyGroup.addButton(self.check_pumpkinProxy)
        self.proxyGroup.addButton(self.check_dns2proy)
        self.proxyGroup.addButton(self.check_sergioProxy)
        self.proxyGroup.addButton(self.check_noproxy)
        self.proxyGroup.addButton(self.check_bdfproxy)

        self.check_tcpproxy.clicked.connect(self.checkBoxTCPproxy)
        self.check_pumpkinProxy.clicked.connect(self.checkGeneralOptions)
        self.check_dns2proy.clicked.connect(self.checkGeneralOptions)
        self.check_sergioProxy.clicked.connect(self.checkGeneralOptions)
        self.check_bdfproxy.clicked.connect(self.checkGeneralOptions)
        self.check_noproxy.clicked.connect(self.checkGeneralOptions)
        self.check_responder.clicked.connect(self.checkBoxResponder)

        self.layoutproxy.addWidget(self.tableplugins)
        self.layoutproxy.addWidget(self.tableplugincheckbox)
        self.layout.addWidget(self.GroupPluginsProxy)
        self.addLayout(self.layout)
Exemple #5
0
    def __init__(self, parent, **kwargs):
        super(ProxySSLstrip, self).__init__(parent)
        self.main_method = parent
        self.urlinjected = []
        self.FSettings = SuperSettings.getInstance()
        self.mainLayout = QtGui.QVBoxLayout()
        self.dockwidget = ProxySSLstripDock(None, title=self.Name)
        self.dockwidget.setWindowTitle(self.Name)
        self.search[
            self.Name] = str('iptables -t nat -A PREROUTING -p tcp' +
                             ' --destination-port 80 -j REDIRECT --to-port ' +
                             self.FSettings.redirectport.text())

        #scroll area
        self.scrollwidget = QtGui.QWidget()
        self.scrollwidget.setLayout(self.mainLayout)
        self.scroll = QtGui.QScrollArea()
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.scrollwidget)

        # create widgets
        self.argsLabel = QtGui.QLabel('')
        self.hBox = QtGui.QHBoxLayout()
        self.hBoxargs = QtGui.QHBoxLayout()
        self.btnLoader = QtGui.QPushButton('Reload')
        self.btnEnable = QtGui.QPushButton('Enable')
        self.btncancel = QtGui.QPushButton('Cancel')
        self.btnbrownser = QtGui.QPushButton('Browser')

        # size buttons
        self.btnLoader.setFixedWidth(100)
        self.btnEnable.setFixedWidth(100)
        self.btncancel.setFixedWidth(100)
        self.btnbrownser.setFixedWidth(100)

        self.comboxBox = QtGui.QComboBox()
        self.log_inject = QtGui.QListWidget()
        self.docScripts = QtGui.QTextEdit()
        self.argsScripts = QtGui.QLineEdit()
        self.btncancel.setIcon(QtGui.QIcon('icons/cancel.png'))
        self.btnLoader.setIcon(QtGui.QIcon('icons/search.png'))
        self.btnEnable.setIcon(QtGui.QIcon('icons/accept.png'))
        self.btnbrownser.setIcon(QtGui.QIcon("icons/open.png"))
        self.argsScripts.setEnabled(False)
        self.btnbrownser.setEnabled(False)

        # group settings
        self.GroupSettings = QtGui.QGroupBox()
        self.GroupSettings.setTitle('settings:')
        self.SettingsLayout = QtGui.QFormLayout()
        self.hBox.addWidget(self.comboxBox)
        self.hBox.addWidget(self.btnLoader)
        self.hBox.addWidget(self.btnEnable)
        self.hBox.addWidget(self.btncancel)
        self.hBoxargs.addWidget(self.argsLabel)
        self.hBoxargs.addWidget(self.argsScripts)
        self.hBoxargs.addWidget(self.btnbrownser)
        self.SettingsLayout.addRow(self.hBox)
        self.SettingsLayout.addRow(self.hBoxargs)
        self.GroupSettings.setLayout(self.SettingsLayout)
        #self.GroupSettings.setFixedWidth(450)
        #group logger
        self.GroupLogger = QtGui.QGroupBox()
        self.GroupLogger.setTitle('Logger Injection:')
        self.LoggerLayout = QtGui.QVBoxLayout()
        self.LoggerLayout.addWidget(self.log_inject)
        self.GroupLogger.setLayout(self.LoggerLayout)
        #self.GroupLogger.setFixedWidth(450)

        #group descriptions
        self.GroupDoc = QtGui.QGroupBox()
        self.GroupDoc.setTitle('Description:')
        self.DocLayout = QtGui.QFormLayout()
        self.DocLayout.addRow(self.docScripts)
        self.GroupDoc.setLayout(self.DocLayout)
        self.GroupDoc.setFixedHeight(100)

        #connections
        self.SearchProxyPlugins()
        self.readDocScripts('html_injector')
        self.btnLoader.clicked.connect(self.SearchProxyPlugins)
        self.connect(self.comboxBox,
                     QtCore.SIGNAL('currentIndexChanged(QString)'),
                     self.readDocScripts)
        self.btnEnable.clicked.connect(self.setPluginsActivated)
        self.btncancel.clicked.connect(self.unsetPluginsConf)
        self.btnbrownser.clicked.connect(self.get_filenameToInjection)
        # add widgets
        self.mainLayout.addWidget(self.GroupSettings)
        self.mainLayout.addWidget(self.GroupDoc)
        self.mainLayout.addWidget(self.GroupLogger)
        self.layout = QtGui.QHBoxLayout()
        self.layout.addWidget(self.scroll)
        self.setLayout(self.layout)
Exemple #6
0
    def UI(self):
        self.statusBar = QtGui.QStatusBar()
        self.statusLabel = QtGui.QLabel('')
        self.statusBar.addWidget(QtGui.QLabel('Status HTTP Server::'))
        self.StatusServer(False)
        self.statusBar.addWidget(self.statusLabel)
        # left page
        self.frmHtml = QtGui.QFormLayout()
        self.frmOutput = QtGui.QFormLayout()

        # right page
        self.frmSettings = QtGui.QFormLayout()
        self.frmCheckBox = QtGui.QFormLayout()
        self.frmClone = QtGui.QFormLayout()
        self.frmButtons = QtGui.QFormLayout()
        self.frmright = QtGui.QFormLayout()
        self.frmleft = QtGui.QFormLayout()

        #group checkbox
        self.check_custom = QtGui.QRadioButton('index.html  ')
        self.check_server = QtGui.QRadioButton('Set Directory')
        self.check_beef = QtGui.QCheckBox('Enable Beef')
        self.check_clone = QtGui.QRadioButton('Website clone')
        self.check_custom.setChecked(True)

        # group clone site
        self.cloneLineEdit = QtGui.QLineEdit(self)
        self.cloneLineEdit.setText('example.com/login')
        self.cloneLineEdit.setEnabled(False)

        # group settings
        self.EditBeef = QtGui.QLineEdit(self)
        self.EditDirectory = QtGui.QLineEdit('/var/www')
        self.txt_redirect = QtGui.QLineEdit(self)
        self.BoxPort = QtGui.QSpinBox(self)
        self.EditBeef.setEnabled(False)
        self.EditDirectory.setEnabled(False)
        self.BoxPort.setMaximum(65535)
        self.BoxPort.setValue(80)

        # group left
        self.Group_Html = QtGui.QGroupBox(self)
        self.Group_List = QtGui.QGroupBox(self)
        self.Group_Html.setTitle('index.html:')
        self.Group_List.setTitle('Requests:')

        self.txt_html = QtGui.QTextEdit(self)
        self.ListOutputWid = QtGui.QListWidget(self)
        self.txt_html.setFixedWidth(450)
        self.frmHtml.addRow(self.txt_html)
        self.frmOutput.addRow(self.ListOutputWid)

        # button stop,start
        self.btn_start_template = QtGui.QPushButton('Start Server')
        self.btn_stop_template = QtGui.QPushButton('Stop Server')
        self.btn_start_template.setIcon(QtGui.QIcon('icons/start.png'))
        self.btn_stop_template.setIcon(QtGui.QIcon('icons/Stop.png'))
        self.btn_stop_template.setEnabled(False)
        self.btn_start_template.setFixedWidth(110)
        self.btn_stop_template.setFixedWidth(110)
        self.btn_start_template.clicked.connect(self.start_server)

        # group create
        self.GroupSettings = QtGui.QGroupBox(self)
        self.GroupCheckBox = QtGui.QGroupBox(self)
        self.GroupCloneSite = QtGui.QGroupBox(self)
        self.GroupSettings.setTitle('settings:')
        self.GroupCheckBox.setTitle('Options:')
        self.GroupCloneSite.setTitle('clone:')

        # left layout
        self.txt_html.setPlainText(
            '<html>\n<head>\n<title>WiFi-Pumpkin Phishing </title>'
            '\n</head>\n<body>\n'
            '\n<h3 align=\'center\'>WiFi-Pumpkin Framework</h3>\n'
            '\n<p align=\'center\'>this is demo Attack Redirect.</p>\n'
            '\n</body>\n</html>')

        # connect checkbox
        self.check_beef.clicked.connect(self.check_options)
        self.check_custom.clicked.connect(self.check_options)
        self.check_server.clicked.connect(self.check_options)
        self.check_clone.clicked.connect(self.check_options)

        # connect buttons
        self.btn_stop_template.clicked.connect(self.killThread)

        # checkboxs
        self.frmCheckBox.addRow(self.check_custom, self.check_server)
        self.frmCheckBox.addRow(self.check_beef, self.check_clone)
        self.frmCheckBox.addRow(self.GroupSettings)

        # settings
        self.frmSettings.addRow('IP Address:', self.txt_redirect)
        self.frmSettings.addRow('Port:', self.BoxPort)
        self.frmSettings.addRow("Beef Hook URL:", self.EditBeef)
        self.frmSettings.addRow("SetEnv PATH  :", self.EditDirectory)

        # buttons
        self.frmButtons.addRow(self.btn_start_template, self.btn_stop_template)

        # clone
        self.frmClone.addRow(self.cloneLineEdit)

        # page right
        self.GroupCheckBox.setLayout(self.frmCheckBox)
        self.GroupSettings.setLayout(self.frmSettings)
        self.GroupCloneSite.setLayout(self.frmClone)
        self.frmright.addRow(self.GroupCheckBox)
        self.frmright.addRow(self.GroupCloneSite)
        self.frmright.addRow(self.GroupSettings)
        self.frmright.addRow(self.frmButtons)

        # page left
        self.Group_Html.setLayout(self.frmHtml)
        self.Group_List.setLayout(self.frmOutput)
        self.frmleft.addRow(self.Group_Html)
        self.frmleft.addRow(self.Group_List)

        layout = QtGui.QHBoxLayout()
        layout.addLayout(self.frmleft)
        layout.addLayout(self.frmright)

        self.Main.addLayout(layout)
        self.Main.addWidget(self.statusBar)
        self.setLayout(self.Main)
Exemple #7
0
    def __init__(self, parent=None, widgets=None):
        super(PumpkinSettings, self).__init__(parent)
        self.SettingsAp = widgets['SettingsAP']
        self.Tab_Dock = widgets['Tab_dock']
        self.dockInfo = widgets['DockInfo']
        self.FSettings = widgets['Settings']
        self.NetworkGroup = widgets['Network']
        self.mainLayout = QtGui.QFormLayout()
        self.SettingsDHCP = {}

        #scroll area
        self.scrollwidget = QtGui.QWidget()
        self.scrollwidget.setLayout(self.mainLayout)
        self.scroll = QtGui.QScrollArea()
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.scrollwidget)

        self.GroupDHCP = QtGui.QGroupBox()
        self.GroupArea = QtGui.QGroupBox()
        self.layoutDHCP = QtGui.QFormLayout()
        self.layoutArea = QtGui.QFormLayout()
        self.layoutbuttons = QtGui.QHBoxLayout()
        self.btnDefault = QtGui.QPushButton('Default')
        self.btnSave = QtGui.QPushButton('save settings')
        self.btnSave.setIcon(QtGui.QIcon('icons/export.png'))
        self.btnDefault.setIcon(QtGui.QIcon('icons/settings.png'))
        self.dhcpClassIP = QtGui.QComboBox()
        # dhcp class
        self.classtypes = [
            'Class-A-Address', 'Class-B-Address', 'Class-C-Address',
            'Class-Custom-Address'
        ]
        for types in self.classtypes:
            if 'Class-{}-Address'.format(
                    self.FSettings.Settings.get_setting('dhcp',
                                                        'classtype')) in types:
                self.classtypes.remove(types), self.classtypes.insert(0, types)
        self.dhcpClassIP.addItems(self.classtypes)

        self.leaseTime_def = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'leasetimeDef'))
        self.leaseTime_Max = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'leasetimeMax'))
        self.netmask = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'netmask'))
        self.range_dhcp = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'range'))
        self.route = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'router'))
        self.subnet = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'subnet'))
        self.broadcast = QtGui.QLineEdit(
            self.FSettings.Settings.get_setting('dhcp', 'broadcast'))
        self.dhcpClassIP.currentIndexChanged.connect(self.dhcpClassIPClicked)
        self.GroupDHCP.setTitle('DHCP-Settings')
        self.GroupDHCP.setLayout(self.layoutDHCP)
        self.layoutDHCP.addRow('Class Ranges', self.dhcpClassIP)
        self.layoutDHCP.addRow('default-lease-time', self.leaseTime_def)
        self.layoutDHCP.addRow('max-lease-time', self.leaseTime_Max)
        self.layoutDHCP.addRow('subnet', self.subnet)
        self.layoutDHCP.addRow('router', self.route)
        self.layoutDHCP.addRow('netmask', self.netmask)
        self.layoutDHCP.addRow('broadcast-address', self.broadcast)
        self.layoutDHCP.addRow('range-dhcp', self.range_dhcp)
        self.GroupDHCP.setFixedWidth(350)
        # layout add
        self.layoutbuttons.addWidget(self.btnSave)
        self.layoutbuttons.addWidget(self.btnDefault)
        self.layoutDHCP.addRow(self.layoutbuttons)

        # Area Group
        self.gridArea = QtGui.QGridLayout()
        self.CB_ActiveMode = QtGui.QCheckBox(
            '::Advanced Mode:: Monitor MITM Attack')
        self.CB_ActiveMode.setHidden(True)
        self.CB_Cread = QtGui.QCheckBox('HTTP-Authentication')
        self.CB_monitorURL = QtGui.QCheckBox('HTTP-Requests')
        self.CB_bdfproxy = QtGui.QCheckBox('BDFProxy-ng')
        self.CB_dns2proxy = QtGui.QCheckBox('Dns2Proxy')
        self.CB_responder = QtGui.QCheckBox('Responder')
        self.CB_pumpkinPro = QtGui.QCheckBox('Pumpkin-Proxy')
        self.CB_ActiveMode.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'advanced',
                                                format=bool))
        self.CB_Cread.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'dock_credencials',
                                                format=bool))
        self.CB_monitorURL.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'dock_urlmonitor',
                                                format=bool))
        self.CB_bdfproxy.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'dock_bdfproxy',
                                                format=bool))
        self.CB_dns2proxy.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'dock_dns2proxy',
                                                format=bool))
        self.CB_responder.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'dock_responder',
                                                format=bool))
        self.CB_pumpkinPro.setChecked(
            self.FSettings.Settings.get_setting('dockarea',
                                                'dock_PumpkinProxy',
                                                format=bool))

        #connect
        self.doCheckAdvanced()
        self.CB_ActiveMode.clicked.connect(self.doCheckAdvanced)
        self.CB_monitorURL.clicked.connect(self.doCheckAdvanced)
        self.CB_Cread.clicked.connect(self.doCheckAdvanced)
        self.CB_bdfproxy.clicked.connect(self.doCheckAdvanced)
        self.CB_dns2proxy.clicked.connect(self.doCheckAdvanced)
        self.CB_responder.clicked.connect(self.doCheckAdvanced)
        self.CB_pumpkinPro.clicked.connect(self.doCheckAdvanced)
        # group
        self.layoutArea.addRow(self.CB_ActiveMode)
        self.gridArea.addWidget(
            self.CB_monitorURL,
            0,
            0,
        )
        self.gridArea.addWidget(self.CB_Cread, 0, 1)
        self.gridArea.addWidget(self.CB_responder, 0, 2)
        self.gridArea.addWidget(self.CB_bdfproxy, 1, 0)
        self.gridArea.addWidget(self.CB_bdfproxy, 1, 0)
        self.gridArea.addWidget(self.CB_dns2proxy, 1, 1)
        #self.gridArea.addWidget(self.CB_pumpkinPro,0,2) disable tab plugin
        self.layoutArea.addRow(self.gridArea)
        self.GroupArea.setTitle('Activity Monitor settings')
        self.GroupArea.setLayout(self.layoutArea)

        # connects
        self.btnDefault.clicked.connect(self.setdefaultSettings)
        self.btnSave.clicked.connect(self.savesettingsDHCP)
        self.mainLayout.addRow(self.SettingsAp)
        self.mainLayout.addRow(self.NetworkGroup)
        self.mainLayout.addRow(self.GroupArea)
        self.mainLayout.addRow(self.GroupDHCP)
        self.layout = QtGui.QHBoxLayout()
        self.layout.addWidget(self.scroll)
        self.addLayout(self.layout)
Exemple #8
0
    def __init__(self, popup, main_method, FsettingsUI=None, parent=None):
        super(ProxySSLstrip, self).__init__(parent)
        self.main_method = main_method
        self.popup = popup
        self.urlinjected = []
        self.FSettings = FsettingsUI
        self.mainLayout = QtGui.QVBoxLayout()

        #scroll area
        self.scrollwidget = QtGui.QWidget()
        self.scrollwidget.setLayout(self.mainLayout)
        self.scroll = QtGui.QScrollArea()
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.scrollwidget)

        # create widgets
        self.argsLabel = QtGui.QLabel('')
        self.hBox = QtGui.QHBoxLayout()
        self.hBoxargs = QtGui.QHBoxLayout()
        self.btnLoader = QtGui.QPushButton('Reload')
        self.btnEnable = QtGui.QPushButton('Enable')
        self.btncancel = QtGui.QPushButton('Cancel')
        self.btnbrownser = QtGui.QPushButton('Browser')

        # size buttons
        self.btnLoader.setFixedWidth(100)
        self.btnEnable.setFixedWidth(100)
        self.btncancel.setFixedWidth(100)
        self.btnbrownser.setFixedWidth(100)

        self.comboxBox = QtGui.QComboBox()
        self.log_inject = QtGui.QListWidget()
        self.docScripts = QtGui.QTextEdit()
        self.argsScripts = QtGui.QLineEdit()
        self.btncancel.setIcon(QtGui.QIcon('icons/cancel.png'))
        self.btnLoader.setIcon(QtGui.QIcon('icons/search.png'))
        self.btnEnable.setIcon(QtGui.QIcon('icons/accept.png'))
        self.btnbrownser.setIcon(QtGui.QIcon("icons/open.png"))
        self.argsScripts.setEnabled(False)
        self.btnbrownser.setEnabled(False)

        # group settings
        self.GroupSettings = QtGui.QGroupBox()
        self.GroupSettings.setTitle('settings:')
        self.SettingsLayout = QtGui.QFormLayout()
        self.hBox.addWidget(self.comboxBox)
        self.hBox.addWidget(self.btnLoader)
        self.hBox.addWidget(self.btnEnable)
        self.hBox.addWidget(self.btncancel)
        self.hBoxargs.addWidget(self.argsLabel)
        self.hBoxargs.addWidget(self.argsScripts)
        self.hBoxargs.addWidget(self.btnbrownser)
        self.SettingsLayout.addRow(self.hBox)
        self.SettingsLayout.addRow(self.hBoxargs)
        self.GroupSettings.setLayout(self.SettingsLayout)
        #self.GroupSettings.setFixedWidth(450)
        #group logger
        self.GroupLogger = QtGui.QGroupBox()
        self.GroupLogger.setTitle('Logger Injection:')
        self.LoggerLayout = QtGui.QVBoxLayout()
        self.LoggerLayout.addWidget(self.log_inject)
        self.GroupLogger.setLayout(self.LoggerLayout)
        #self.GroupLogger.setFixedWidth(450)

        #group descriptions
        self.GroupDoc = QtGui.QGroupBox()
        self.GroupDoc.setTitle('Description:')
        self.DocLayout = QtGui.QFormLayout()
        self.DocLayout.addRow(self.docScripts)
        self.GroupDoc.setLayout(self.DocLayout)
        self.GroupDoc.setFixedHeight(100)

        #connections
        self.SearchProxyPlugins()
        self.readDocScripts('html_injector')
        self.btnLoader.clicked.connect(self.SearchProxyPlugins)
        self.connect(self.comboxBox,
                     QtCore.SIGNAL('currentIndexChanged(QString)'),
                     self.readDocScripts)
        self.btnEnable.clicked.connect(self.setPluginsActivated)
        self.btncancel.clicked.connect(self.unsetPluginsConf)
        self.btnbrownser.clicked.connect(self.get_filenameToInjection)
        # add widgets
        self.mainLayout.addWidget(self.GroupSettings)
        self.mainLayout.addWidget(self.GroupDoc)
        self.mainLayout.addWidget(self.GroupLogger)
        self.layout = QtGui.QHBoxLayout()
        self.layout.addWidget(self.scroll)
        self.addLayout(self.layout)
Exemple #9
0
    def __init__(self, mainWindow):
        QtGui.QVBoxLayout.__init__(self)
        self.mainLayout = QtGui.QFormLayout()
        self.main_method = mainWindow

        self.scrollwidget = QtGui.QWidget()
        self.scrollwidget.setLayout(self.mainLayout)
        self.scroll = QtGui.QScrollArea()
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.scrollwidget)
        self.split_window = QtGui.QHBoxLayout()

        guageWindow = QtGui.QGridLayout()
        self.currentThreadLabel = QtGui.QLabel('0')
        currentthread = self.create_info_box('CURRENT THREADS', 'infor',
                                             self.currentThreadLabel)

        self.sectionTimeLabel = QtGui.QLabel('00:00')
        currentTime = self.create_info_box('UPTIME', 'infor',
                                           self.sectionTimeLabel)
        guageWindow.addLayout(currentthread, 1, 1)
        guageWindow.addLayout(currentTime, 0, 1)

        self.AP_name = QtGui.QLabel(self.main_method.EditApName.text())
        self.AP_BSSID = QtGui.QLabel(self.main_method.EditBSSID.text())
        self.AP_Channel = QtGui.QLabel(self.main_method.EditChannel.text())
        self.AP_NetworkApdater = QtGui.QLabel(
            self.main_method.selectCard.currentText())
        self.AP_ROUTER = QtGui.QLabel(self.main_method.DHCP['router'])
        self.AP_DHCP_range = QtGui.QLabel(self.main_method.DHCP['range'])
        self.AP_Security = QtGui.QLabel('')
        self.update_security_label(
            self.main_method.GroupApPassphrase.isChecked())

        self.group_AccessPoint = QtGui.QGroupBox()
        self.form_window = AutoGridLayout()
        self.form_window.setSpacing(10)
        self.group_AccessPoint.setTitle('Access Point')
        self.form_window.addNextWidget(QtGui.QLabel('AP Name:'))
        self.form_window.addNextWidget(self.AP_name)
        self.form_window.addNextWidget(QtGui.QLabel('BSSID:'))
        self.form_window.addNextWidget(self.AP_BSSID)
        self.form_window.addNextWidget(QtGui.QLabel('Channel:'))
        self.form_window.addNextWidget(self.AP_Channel)
        self.form_window.addNextWidget(QtGui.QLabel('Network Adapter:'))
        self.form_window.addNextWidget(self.AP_NetworkApdater)
        self.form_window.addNextWidget(QtGui.QLabel('Router:'))
        self.form_window.addNextWidget(self.AP_ROUTER)
        self.form_window.addNextWidget(QtGui.QLabel('DHCP:'))
        self.form_window.addNextWidget(self.AP_DHCP_range)
        self.form_window.addNextWidget(QtGui.QLabel('Security Password:'))
        self.form_window.addNextWidget(self.AP_Security)
        self.form_window.addItem(
            QtGui.QSpacerItem(40, 10, QtGui.QSizePolicy.Minimum,
                              QtGui.QSizePolicy.Expanding))
        self.group_AccessPoint.setLayout(self.form_window)

        self.split_window.addWidget(self.group_AccessPoint)
        self.split_window.addLayout(guageWindow)

        self.mainLayout.addRow(self.split_window)
        self.layout = QtGui.QHBoxLayout()
        self.layout.addWidget(self.scroll)
        self.addLayout(self.layout)
Exemple #10
0
    def __init__(self, parent, **kwargs):
        super(CaptivePortal, self).__init__(parent)
        self.mainLayout = QtGui.QVBoxLayout()
        self.config = SettingsINI(C.CAPTIVEPORTAL_INI)
        self.plugins = []
        self.plugin_activated = None
        self.main_method = parent
        self.bt_SettingsDict = {}
        self.check_PluginDict = {}
        self.ClientsLogged = {}
        self.btn_previewSettings = {}
        self.search_all_ProxyPlugins()
        #scroll area
        self.scrollwidget = QtGui.QWidget()
        self.scrollwidget.setLayout(self.mainLayout)
        self.scroll = QtGui.QScrollArea()
        self.scroll.setWidgetResizable(True)
        self.scroll.setWidget(self.scrollwidget)
        self.dockwidget = CaptivePortalDock(None, title=self.Name)

        # create for add dock logging
        self.tabcontrol = QtGui.QTabWidget()
        self.tab1 = QtGui.QWidget()
        self.tab2 = QtGui.QWidget()
        self.page_1 = QtGui.QVBoxLayout(self.tab1)
        self.page_2 = QtGui.QVBoxLayout(self.tab2)

        self.tabcontrol.addTab(self.tab1, 'Plugins')
        self.tabcontrol.addTab(self.tab2, 'Manager')
        self.TabCtrlClients = QtGui.QTableWidget()
        self.TabCtrlClients.setColumnCount(3)
        #self.TabCtrlClients.setRowCount(len(self.plugins))
        self.TabCtrlClients.resizeRowsToContents()
        self.TabCtrlClients.setSizePolicy(QtGui.QSizePolicy.Preferred,
                                          QtGui.QSizePolicy.Preferred)
        self.TabCtrlClients.horizontalHeader().setStretchLastSection(True)
        self.TabCtrlClients.setSelectionBehavior(
            QtGui.QAbstractItemView.SelectRows)
        self.TabCtrlClients.setEditTriggers(
            QtGui.QAbstractItemView.NoEditTriggers)
        self.TabCtrlClients.verticalHeader().setVisible(False)
        self.TabCtrlClients.verticalHeader().setDefaultSectionSize(27)
        self.TabCtrlClients.setSortingEnabled(True)
        self.THeadersCtrlClients = OrderedDict([('IpAddress', []),
                                                ('MacAddress', []),
                                                ('Status Internet', [])])
        self.TabCtrlClients.setHorizontalHeaderLabels(
            self.THeadersCtrlClients.keys())

        self.mainLayout_settings = QtGui.QVBoxLayout()
        #scroll area
        self.scrollwidget_settings = QtGui.QWidget()
        self.scrollwidget_settings.setLayout(self.mainLayout_settings)
        self.scroll_settings = QtGui.QScrollArea()
        self.scroll_settings.setWidgetResizable(True)
        self.scroll_settings.setWidget(self.scrollwidget_settings)

        # create widgets
        self.argsLabel = QtGui.QLabel('')
        self.hBox = QtGui.QHBoxLayout()
        self.btnEnable = QtGui.QPushButton('Allow')
        self.btncancel = QtGui.QPushButton('Deny')

        # size buttons
        self.btnEnable.setFixedWidth(100)
        self.btncancel.setFixedWidth(100)

        self.comboxBoxIPAddress = QtGui.QComboBox()
        self.btncancel.setIcon(QtGui.QIcon('icons/cancel.png'))
        self.btnEnable.setIcon(QtGui.QIcon('icons/accept.png'))

        # group settings
        self.GroupSettings = QtGui.QGroupBox()
        self.GroupSettings.setTitle('Manage clients access:')
        self.SettingsLayout = QtGui.QFormLayout()
        self.hBox.addWidget(self.comboxBoxIPAddress)
        self.hBox.addWidget(self.btnEnable)
        self.hBox.addWidget(self.btncancel)
        self.SettingsLayout.addRow(self.hBox)
        self.GroupSettings.setLayout(self.SettingsLayout)
        #self.GroupSettings.setFixedWidth(450)

        #group logger
        self.GroupLogger = QtGui.QGroupBox()
        self.logger_portal = QtGui.QListWidget()
        self.GroupLogger.setTitle('Logger events:')
        self.LoggerLayout = QtGui.QVBoxLayout()
        self.LoggerLayout.addWidget(self.logger_portal)
        self.GroupLogger.setLayout(self.LoggerLayout)
        #self.GroupLogger.setFixedWidth(450)

        #connections
        # self.btnLoader.clicked.connect(self.SearchProxyPlugins)
        self.connect(self.comboxBoxIPAddress,
                     QtCore.SIGNAL('currentIndexChanged(QString)'),
                     self.checkStatusClient)
        self.btnEnable.clicked.connect(self.enableInternetConnection)
        self.btncancel.clicked.connect(self.disableInternetConnection)
        # self.btnbrownser.clicked.connect(self.get_filenameToInjection)
        # add widgets
        self.mainLayout_settings.addWidget(self.GroupSettings)
        self.mainLayout_settings.addWidget(self.GroupLogger)

        self.TabPlugins = QtGui.QTableWidget()
        self.TabPlugins.setColumnCount(5)
        self.TabPlugins.setRowCount(len(self.plugins))
        self.TabPlugins.resizeRowsToContents()
        self.TabPlugins.setSizePolicy(QtGui.QSizePolicy.Preferred,
                                      QtGui.QSizePolicy.Preferred)
        self.TabPlugins.horizontalHeader().setStretchLastSection(True)
        self.TabPlugins.setSelectionBehavior(
            QtGui.QAbstractItemView.SelectRows)
        self.TabPlugins.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
        self.TabPlugins.verticalHeader().setVisible(False)
        self.TabPlugins.verticalHeader().setDefaultSectionSize(27)
        self.TabPlugins.setSortingEnabled(True)
        self.THeaders = OrderedDict([('Captive Name', []), ('Preview', []),
                                     ('Author', []), ('Settings', []),
                                     ('Description', [])])
        self.TabPlugins.setHorizontalHeaderLabels(self.THeaders.keys())
        self.TabPlugins.horizontalHeader().resizeSection(0, 158)
        self.TabPlugins.horizontalHeader().resizeSection(1, 80)

        # add on tab
        self.page_1.addWidget(self.TabPlugins)
        self.page_2.addWidget(self.scroll_settings)

        # get all plugins and add into TabWidget
        Headers = []
        for plugin in self.plugins:
            if plugin.ConfigParser:
                self.bt_SettingsDict[plugin.Name] = QtGui.QPushButton(
                    'Settings')
                self.bt_SettingsDict[plugin.Name].clicked.connect(
                    partial(self.setSettingsPlgins, plugin.Name))
            else:
                self.bt_SettingsDict[plugin.Name] = QtGui.QPushButton('None')

            if (path.isfile(plugin.Preview)):
                self.btn_previewSettings[plugin.Name] = QtGui.QPushButton(
                    'Preview')
                self.btn_previewSettings[plugin.Name].setObjectName(
                    plugin.Preview)
                self.btn_previewSettings[plugin.Name].clicked.connect(
                    partial(self.showPreviewCaptivePortal, plugin.Name))
            else:
                self.btn_previewSettings[plugin.Name] = QtGui.QPushButton(
                    'Not found')

            self.check_PluginDict[plugin.Name] = QtGui.QRadioButton(
                plugin.Name)
            self.check_PluginDict[plugin.Name].setObjectName(plugin.Name)
            self.check_PluginDict[plugin.Name].clicked.connect(
                partial(self.setPluginOption, plugin.Name))
            self.THeaders['Captive Name'].append(
                self.check_PluginDict[plugin.Name])
            self.THeaders['Preview'].append(
                self.btn_previewSettings[plugin.Name])
            self.THeaders['Author'].append(plugin.Author)
            self.THeaders['Settings'].append({'name': plugin.Name})
            self.THeaders['Description'].append(plugin.Description)
        for n, key in enumerate(self.THeaders.keys()):
            Headers.append(key)
            for m, item in enumerate(self.THeaders[key]):
                if type(item) == type(QtGui.QRadioButton()):
                    self.TabPlugins.setCellWidget(m, n, item)
                elif type(item) == type(dict()):
                    self.TabPlugins.setCellWidget(
                        m, n, self.bt_SettingsDict[item['name']])
                elif type(item) == type(QtGui.QPushButton()):
                    self.TabPlugins.setCellWidget(m, n, item)
                else:
                    item = QtGui.QTableWidgetItem(item)
                    self.TabPlugins.setItem(m, n, item)
        self.TabPlugins.setHorizontalHeaderLabels(self.THeaders.keys())

        # check status all checkbox plugins
        for box in self.check_PluginDict.keys():
            self.check_PluginDict[box].setChecked(
                self.config.get_setting('plugins', box, format=bool))

        self.btn_updateCaptive = QtGui.QPushButton("Update")
        self.btn_updateCaptive.setIcon(QtGui.QIcon('icons/updates_.png'))
        self.btn_updateCaptive.setFixedWidth(130)
        self.btn_updateCaptive.clicked.connect(self.disableBtnForUpdates)

        self.mainLayout.addWidget(self.tabcontrol)
        self.mainLayout.addWidget(self.btn_updateCaptive)
        self.layout = QtGui.QHBoxLayout()
        self.layout.addWidget(self.scroll)
        self.setLayout(self.layout)