示例#1
0
    def __init__(self, cred, debug=False):
        """Initialize FirewallEngine."""

        self.cred = cred
        self.logger = logger.SecureTeaLogger(__name__, debug)

        # Parse and setup rules and actions
        (self.ip_inbound,
         self.action_inbound_IPRule) = self.parse_inbound_IPRule()

        (self.ip_outbound,
         self.action_outbound_IPRule) = self.parse_outbound_IPRule()

        (self.protocols, self.action_protocolRule) = self.parse_protocolRule()

        (self.sports,
         self.action_source_portRule) = self.parse_source_portRule()

        (self.dports, self.action_dest_portRule) = self.parse_dest_portRule()

        (self.dns, self.action_DNSRule) = self.parse_DNSRule()

        (self.extensions, self.action_scanLoad) = self.parse_scanLoad()

        self.action_HTTPRequest = self.parse_HTTPRequest()

        self.action_HTTPResponse = self.parse_HTTPResponse()

        # Interface
        self.interface = str(self.cred['interface'])
        if self.interface == "":
            self.interface = utils.get_interface()

        # Setup PacketFilter object
        self.packetFilterObj = PacketFilter(
            interface=self.interface,
            debug=debug,
            ip_inbound=self.ip_inbound,
            ip_outbound=self.ip_outbound,
            protocols=self.protocols,
            dns=self.dns,
            dports=self.dports,
            sports=self.sports,
            extensions=self.extensions,
            action_inbound_IPRule=self.action_inbound_IPRule,
            action_outbound_IPRule=self.action_outbound_IPRule,
            action_DNSRule=self.action_DNSRule,
            action_source_portRule=self.action_source_portRule,
            action_dest_portRule=self.action_dest_portRule,
            action_HTTPResponse=self.action_HTTPResponse,
            action_HTTPRequest=self.action_HTTPRequest,
            action_protocolRule=self.action_protocolRule,
            action_scanLoad=self.action_scanLoad)

        # Setup Montior object
        self.monitorObj = FirewallMonitor(interface=self.interface,
                                          debug=debug)

        # Integrations
        self.integrations = ['Firewall', 'Monitor']
示例#2
0
def get_credentials():
    """
    Get credentials either through the saved configurations or
    through interactive setup mode.

    Args:
        None

    Raises:
        None

    Returns:
        final_creds (dict): Collected credentials
    """
    args = get_args()
    if args.debug:
        debug = True
    else:
        debug = False

    final_creds = {"debug": debug}

    # Create ArgsHelper object for collecting configurations
    args_helper_obj = args_helper.ArgsHelper(args=args)

    if int(platform.sys.version_info[0]) < 3:  # if Python 2.X.X
        config_decision = raw_input("[!] Do you want to use the saved configuratons? (Y/y): ").strip(" ")
    else:
        config_decision = str(input("[!] Do you want to use the saved configuratons? (Y/y): ")).strip(" ")
    if (config_decision.lower() == "Y" or
        config_decision.lower() == "y"):
        # Fetch credentials
        creds = args_helper_obj.securetea_conf.get_creds(args_helper_obj.args)

        if creds.get("firewall"):
            final_creds["firewall"] = creds["firewall"]
            interface = final_creds["firewall"]["interface"]
            if not interface or interface == "XXXX":
                print("\n[!] Select network interface for Firewall")
                interface = get_interface()
                final_creds["firewall"]["interface"] = interface
        if creds.get("ids"):
            final_creds["ids"] = creds["ids"]
            interface = final_creds["ids"]["interface"]
            if not interface or interface == "XXXX":
                print("\n[!] Select network interface for Intrusion Detection System")
                interface = get_interface()
                final_creds["ids"]["interface"] = interface
        if creds.get("antivirus"):
            final_creds["antivirus"] = creds["antivirus"]
    else:
        # Start interactive setup for Firewall
        firewall = args_helper_obj.configureFirewall()
        # Start interactive setup for IDS
        ids = args_helper_obj.configureIDS()
        # Start interactive setup for AntiVirus
        antivirus = args_helper_obj.configureAntiVirus()

        if firewall:
            final_creds["firewall"] = firewall
            interface = final_creds["firewall"]["interface"]
            if not interface or interface == "XXXX":
                print("\n[!] Select network interface for Firewall")
                interface = get_interface()
                final_creds["firewall"]["interface"] = interface
        if ids:
            final_creds["ids"] = ids
            interface = final_creds["ids"]["interface"]
            if not interface or interface == "XXXX":
                print("\n[!] Select network interface for Intrusion Detection System")
                interface = get_interface()
                final_creds["ids"]["interface"] = interface
        if antivirus:
            final_creds["antivirus"] = antivirus

    return final_creds
示例#3
0
    def check_args(self):
        """
        Parse the args, check the configuration
        and call the required configuration setup accordingly.

        Args:
        -----
        None

        Raises:
        -------
        None

        Returns:
        --------
        dict:
        """
        if (not self.args.skip_input and ((len(sys.argv) == 1) or
           (len(sys.argv) == 3 + int(self.args.skip_input) + int(self.cred['skip_config_file']) and self.args.debug and self.args.hist) or
           (len(sys.argv) == 2 + int(self.args.skip_input) + int(self.cred['skip_config_file']) and (self.args.debug or self.args.hist)))):  # Peform all integration

            # Start the twitter configuration setup
            twitter = self.configureTwitter()
            if twitter:
                self.cred['twitter'] = twitter
                self.twitter_provided = True

            # Start the telegram configuration setup
            telegram = self.configureTelegram()
            if telegram:
                self.cred['telegram'] = telegram
                self.telegram_provided = True

            # Start the twilio configuration setup
            twilioSMS = self.configureTwilioSMS()
            if twilioSMS:
                self.cred['twilio'] = twilioSMS
                self.twilio_provided = True

            # Start the Whatsapp configuration setup
            whatsapp = self.configureWhatsapp()
            if whatsapp:
                self.cred['whatsapp'] = whatsapp
                self.whatsapp_provided = True

            # Start the slack configuration setup
            slack = self.configureSlack()
            if slack:
                self.cred['slack'] = slack
                self.slack_provided = True

            # Start the aws ses configuration setup
            aws_ses = self.configureAwsSES()
            if aws_ses:
                self.cred['aws_ses'] = aws_ses
                self.aws_ses_provided = True

            # Start the Gmail configuraton setup
            gmail = self.configureGmail()
            if gmail:
                self.cred['gmail'] = gmail
                self.gmail_provided = True

            # Configure Social Engineering
            social_eng = self.configureSocialEngineering()
            if social_eng:
                self.cred['social_eng'] = social_eng
                self.social_eng_provided = True

            # Start the firewall configuration setup
            firewall = self.configureFirewall()
            if firewall:
                self.cred['firewall'] = firewall
                self.firewall_provided = True

            # Start the insecure headers configuraton setup
            insecure_headers = self.configureHeaders()
            if insecure_headers:
                self.cred['insecure_headers'] = insecure_headers
                self.insecure_headers_provided = True

            # Start the IDS configuration setup
            ids = self.configureIDS()
            if ids:
                self.cred["ids"] = ids
                self.ids_provided = True

            # Start the server log setup
            server_log = self.configureServerLogMonitor()
            if server_log:
                self.cred["server_log"] = server_log
                self.server_log_provided = True

            # Start the Auto Server Patcher setup
            auto_server_patcher = self.configureAutoServerPatcher()
            if auto_server_patcher:
                self.cred['auto_server_patcher'] = auto_server_patcher
                self.auto_server_patcher_provided = True

            # Start the Web Deface Detection setup
            web_deface = self.configureWebDeface()
            if web_deface:
                self.cred['web_deface'] = web_deface
                self.web_deface_provided = True

            # Start the AntiVirus setup
            antivirus = self.configureAntiVirus()
            if antivirus:
                self.cred['antivirus'] = antivirus
                self.antivirus_provided = True

            # Start the IoT Checker setup
            iot_checker = self.configureIoTChecker()
            if iot_checker:
                self.cred['iot-check'] = iot_checker
                self.iot_checker_provided = True

        if not self.args.skip_input or not self.args.skip_config_file:
            # Not skipping either of them
            if self.args.social_eng_email and not self.social_eng_provided:
                social_eng = self.configureSocialEngineering()
                if social_eng:
                    self.cred['social_eng'] = social_eng
                    self.social_eng_provided = True


            if self.args.twitter and not self.twitter_provided:
                twitter = self.configureTwitter()
                if twitter:
                    self.cred['twitter'] = twitter
                    self.twitter_provided = True

            if self.args.telegram and not self.telegram_provided:
                telegram = self.configureTelegram()
                if telegram:
                    self.cred['telegram'] = telegram
                    self.telegram_provided = True

            if self.args.twilio_sms and not self.twilio_provided:
                twilio_sms = self.configureTwilioSMS()
                if twilio_sms:
                    self.cred['twilio'] = twilio_sms
                    self.twilio_provided = True

            if self.args.whatsapp and not self.whatsapp_provided:
                whatsapp = self.configureWhatsapp()
                if whatsapp:
                    self.cred['whatsapp'] = whatsapp
                    self.whatsapp_provided = True

            if self.args.slack and not self.slack_provided:
                slack = self.configureSlack()
                if slack:
                    self.cred['slack'] = slack
                    self.slack_provided = True

            if self.args.aws_ses and not self.aws_ses_provided:
                aws_ses = self.configureAwsSES()
                if aws_ses:
                    self.cred['aws_ses'] = aws_ses
                    self.aws_ses_provided = True

            if self.args.gmail and not self.gmail_provided:
                gmail = self.configureGmail()
                if gmail:
                    self.cred['gmail'] = gmail
                    self.gmail_provided = True

            if self.args.firewall and not self.firewall_provided:
                firewall = self.configureFirewall()
                if firewall:
                    self.cred['firewall'] = firewall
                    self.firewall_provided = True

            if self.args.ids and not self.ids_provided:
                ids = self.configureIDS()
                if ids:
                    self.cred["ids"] = ids
                    self.ids_provided = True

            if (self.args.iot_checker and
                not self.iot_checker_provided and
                not self.args.shodan_api_key):
                iot_checker = self.configureIoTChecker()
                if iot_checker:
                    self.cred["iot-check"] = iot_checker
                    self.iot_checker_provided = True

            if self.args.system_log and not self.system_log_provided:
                self.system_log_provided = True

            if self.args.server_log and not self.server_log_provided:
                server_log = self.configureServerLogMonitor()
                if server_log:
                    self.cred["server_log"] = server_log
                    self.server_log_provided = True

            if self.args.antivirus:
                antivirus = self.configureAntiVirus()
                if antivirus:
                    self.cred["antivirus"] = antivirus
                    self.antivirus_provided = True

            if (self.args.auto_server_patcher and
                not self.auto_server_patcher_provided and
                not self.args.url and not self.args.apache and
                not self.args.ssh and not self.args.login and
                not self.args.sysctl):
                auto_server_patcher = self.configureAutoServerPatcher()
                if auto_server_patcher:
                    self.cred['auto_server_patcher'] = auto_server_patcher
                    self.auto_server_patcher_provided = True

            if (self.args.web_deface and
                not self.web_deface_provided and
                not self.args.path and
                not self.args.server_name):
                web_deface = self.configureWebDeface()
                if web_deface:
                    self.cred['web_deface'] = web_deface
                    self.web_deface_provided = True

            if (self.args.insecure_headers and
                not self.insecure_headers_provided and
                not self.args.url):
                insecure_headers = self.configureHeaders()
                if insecure_headers:
                    self.cred['insecure_headers'] = insecure_headers
                    self.insecure_headers_provided = True

            if self.args.server_mode and not self.server_mode:
                self.server_mode = True
                if int(platform.sys.version_info[0]) < 3:  # if Python 2.X.X
                    config_decision = raw_input("[!] Do you want to use the saved configuratons? (Y/y): ").strip(" ")
                else:
                    config_decision = str(input("[!] Do you want to use the saved configuratons? (Y/y): ")).strip(" ")
                if (config_decision.lower() == "Y" or
                    config_decision.lower() == "y"):
                    # Fetch credentials
                    creds = self.securetea_conf.get_creds(self.args)

                    if creds.get("firewall"):
                        self.cred["firewall"] = creds["firewall"]
                        interface = self.cred["firewall"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Firewall")
                            interface = get_interface()
                            self.cred["firewall"]["interface"] = interface
                    if creds.get("ids"):
                        self.cred["ids"] = creds["ids"]
                        interface = self.cred["ids"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Intrusion Detection System")
                            interface = get_interface()
                            self.cred["ids"]["interface"] = interface
                    if creds.get("server_log"):
                        self.cred["server_log"] = creds["server_log"]
                    if creds.get("auto_server_patcher"):
                        self.cred["auto_server_patcher"] = creds["auto_server_patcher"]
                    if creds.get("web_deface"):
                        self.cred["web_deface"] = creds["web_deface"]
                    if creds.get("antivirus"):
                        self.cred["antivirus"] = creds["antivirus"]
                else:
                    # Start interactive setup for Firewall
                    firewall = self.configureFirewall()
                    # Start interactive setup for IDS
                    ids = self.configureIDS()
                    # Start interactive setup for Server Log Monitor
                    server_log = self.configureServerLogMonitor()
                    # Start interactive setup for Auto Server Patcher
                    auto_server_patcher = self.configureAutoServerPatcher()
                    # Start interactive setup for Web Deface
                    web_deface = self.configureWebDeface()
                    # Start interactive setup for AntiVirus
                    antivirus = self.configureAntiVirus()

                    if firewall:
                        self.cred["firewall"] = firewall
                        interface = self.cred["firewall"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Firewall")
                            interface = get_interface()
                            self.cred["firewall"]["interface"] = interface
                    if ids:
                        self.cred["ids"] = ids
                        interface = self.cred["ids"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Intrusion Detection System")
                            interface = get_interface()
                            self.cred["ids"]["interface"] = interface
                    if server_log:
                        self.cred["server_log"] = server_log
                    if auto_server_patcher:
                        self.cred["auto_server_patcher"] = auto_server_patcher
                    if web_deface:
                        self.cred["web_deface"] = web_deface
                    if antivirus:
                        self.cred["antivirus"] = antivirus

            if self.args.system_mode and not self.system_mode:
                self.system_mode = True
                if int(platform.sys.version_info[0]) < 3:  # if Python 2.X.X
                    config_decision = raw_input("[!] Do you want to use the saved configuratons? (Y/y): ").strip(" ")
                else:
                    config_decision = str(input("[!] Do you want to use the saved configuratons? (Y/y): ")).strip(" ")
                if (config_decision.lower() == "Y" or
                    config_decision.lower() == "y"):
                    # Fetch credentials
                    creds = self.securetea_conf.get_creds(self.args)

                    if creds.get("firewall"):
                        self.cred["firewall"] = creds["firewall"]
                        interface = self.cred["firewall"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Firewall")
                            interface = get_interface()
                            self.cred["firewall"]["interface"] = interface
                    if creds.get("ids"):
                        self.cred["ids"] = creds["ids"]
                        interface = self.cred["ids"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Intrusion Detection System")
                            interface = get_interface()
                            self.cred["ids"]["interface"] = interface
                    if creds.get("antivirus"):
                        self.cred["antivirus"] = creds["antivirus"]
                else:
                    # Start interactive setup for Firewall
                    firewall = self.configureFirewall()
                    # Start interactive setup for IDS
                    ids = self.configureIDS()
                    # Start interactive setup for AntiVirus
                    antivirus = self.configureAntiVirus()

                    if firewall:
                        self.cred["firewall"] = firewall
                        interface = self.cred["firewall"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Firewall")
                            interface = get_interface()
                            self.cred["firewall"]["interface"] = interface
                    if ids:
                        self.cred["ids"] = ids
                        interface = self.cred["ids"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Intrusion Detection System")
                            interface = get_interface()
                            self.cred["ids"]["interface"] = interface
                    if antivirus:
                        self.cred["antivirus"] = antivirus

            if self.args.iot_mode and not self.iot_mode:
                self.iot_mode = True
                if int(platform.sys.version_info[0]) < 3:  # if Python 2.X.X
                    config_decision = raw_input("[!] Do you want to use the saved configuratons? (Y/y): ").strip(" ")
                else:
                    config_decision = str(input("[!] Do you want to use the saved configuratons? (Y/y): ")).strip(" ")
                if (config_decision.lower() == "Y" or
                    config_decision.lower() == "y"):
                    # Fetch credentials
                    creds = self.securetea_conf.get_creds(self.args)

                    if creds.get("firewall"):
                        self.cred["firewall"] = creds["firewall"]
                        interface = self.cred["firewall"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Firewall")
                            interface = get_interface()
                            self.cred["firewall"]["interface"] = interface
                    if creds.get("ids"):
                        self.cred["ids"] = creds["ids"]
                        interface = self.cred["ids"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Intrusion Detection System")
                            interface = get_interface()
                            self.cred["ids"]["interface"] = interface
                    if creds.get("iot-check"):
                        self.cred["iot-check"] = creds["iot-check"]
                else:
                    # Start interactive setup for Firewall
                    firewall = self.configureFirewall()
                    # Start interactive setup for IDS
                    ids = self.configureIDS()
                    # Start interactive setup for IoT Checker
                    iot_check = self.configureIoTChecker()

                    if firewall:
                        self.cred["firewall"] = firewall
                        interface = self.cred["firewall"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Firewall")
                            interface = get_interface()
                            self.cred["firewall"]["interface"] = interface
                    if ids:
                        self.cred["ids"] = ids
                        interface = self.cred["ids"]["interface"]
                        if not interface or interface == "XXXX":
                            print("\n[!] Select network interface for Intrusion Detection System")
                            interface = get_interface()
                            self.cred["ids"]["interface"] = interface
                    if iot_check:
                        self.cred["iot-check"] = iot_check

        if not self.twitter_provided:
            if (self.args.twitter_api_key and
                self.args.twitter_api_secret_key and
                self.args.twitter_access_token and
                self.args.twitter_access_token_secret):
                twitter = {}
                twitter['api_key'] = self.args.twitter_api_key
                twitter['api_secret_key'] = self.args.twitter_api_secret_key
                twitter['access_token'] = self.args.twitter_access_token
                twitter['access_token_secret'] = self.args.twitter_access_token_secret
                self.cred['twitter'] = twitter
                self.twitter_provided = True

        if not self.social_eng_provided:
            if self.args.social_eng_email:
                social_eng = {}
                social_eng["email"] = self.args.social_eng_email
                self.cred["social_eng"] = social_eng
                self.social_eng_provided = True

        if not self.telegram_provided:
            if (self.args.telegram_bot_token and
                self.args.telegram_user_id):
                telegram = {}
                telegram['token'] = self.args.telegram_bot_token
                telegram['user_id'] = self.args.telegram_user_id
                self.cred['telegram'] = telegram
                self.telegram_provided = True

        if not self.twilio_provided:
            if (self.args.twilio_sid and
                self.args.twilio_token and
                self.args.twilio_from and
                self.args.twilio_to):
                twilio = {}
                twilio['twilio_sid'] = self.args.twilio_sid
                twilio['twilio_token'] = self.args.twilio_token
                twilio['twilio_from'] = self.args.twilio_from
                twilio['twilio_to'] = self.args.twilio_to
                self.cred['twilio'] = twilio
                self.twilio_provided = True

        if not self.whatsapp_provided:
            if(self.args.twilio_sid and
                self.args.twilio_token and
                self.args.whatsapp_from and
                self.args.whatsapp_to):
                whatsapp = {}
                whatsapp['whatsapp_sid'] = self.args.whatsapp_sid
                whatsapp['whatsapp_token'] = self.args.whatsapp_token
                whatsapp['whatsapp_from'] = self.args.whatsapp_from
                whatsapp['whatsapp_to'] = self.args.whatsapp_to
                self.cred['whatsapp'] = whatsapp
                self.whatsapp_provided = True

        if not self.slack_provided:
            if (self.args.slack_user_id and
                self.args.slack_token):
                slack = {}
                slack['token'] = self.args.slack_token
                slack['user_id'] = self.args.slack_user_id
                self.cred['slack'] = slack
                self.slack_provided = True

        if not self.gmail_provided:
            if (self.args.sender_email and
                self.args.to_email and
                self.args.password):
                gmail = {}
                gmail['sender_email'] = self.args.sender_email
                gmail['to_email'] = self.args.to_email
                gmail['password'] = self.args.password
                self.cred['gmail'] = gmail
                self.gmail_provided = True

        if not self.aws_ses_provided:
            if (self.args.aws_email and
                self.args.aws_access_key and self.args.aws_secret_key):
                aws_ses = {}
                aws_ses['aws_email'] = self.args.aws_email
                aws_ses['aws_access_key'] = self.args.aws_access_key
                aws_ses['aws_secret_key'] = self.args.aws_secret_key
                self.cred['aws_ses'] = aws_ses
                self.aws_ses_provided = True

        if not self.insecure_headers_provided:
            if (self.args.insecure_headers and
                self.args.url):
                insecure_headers = {}
                insecure_headers['url'] = self.args.url
                self.cred['insecure_headers'] = insecure_headers
                self.insecure_headers_provided = True

        if not self.ids_provided:
            if (isinstance(self.args.threshold, str) and
                isinstance(self.args.eligibility_threshold, str) and
                isinstance(self.args.severity_factor, str) and
                isinstance(self.args.interface, str)):
                ids = {}
                ids["threshold"] = self.args.threshold
                ids["eligibility_threshold"] = self.args.eligibility_threshold
                ids["severity_factor"] = self.args.severity_factor
                ids["interface"] = self.args.interface
                self.cred["ids"] = ids
                self.ids_provided = True

        if not self.server_log_provided:
            if (isinstance(self.args.server_log, str) or
                isinstance(self.args.log_file, str) or
                isinstance(self.args.log_type, str) or
                isinstance(self.args.window, str) or
                isinstance(self.args.ip_list, str) or
                isinstance(self.args.status_code, str)):
                server_log = {}
                server_log["log-file"] = self.args.log_file
                server_log["log-type"] = self.args.log_type
                server_log["window"] = self.args.window
                server_log["ip-list"] = self.args.ip_list
                server_log["status-code"] = self.args.status_code
                self.cred["server_log"] = server_log
                self.server_log_provided = True

        if not self.auto_server_patcher_provided:
            if (self.args.auto_server_patcher and
               (self.args.url or
                self.args.apache or
                self.args.sysctl or
                self.args.login or
                self.args.ssh)):
                auto_server_patcher = {}
                auto_server_patcher['url'] = self.args.url
                auto_server_patcher['apache'] = self.args.apache
                auto_server_patcher['sysctl'] = self.args.sysctl
                auto_server_patcher['login'] = self.args.login
                auto_server_patcher['ssh'] = self.args.ssh
                self.cred['auto_server_patcher'] = auto_server_patcher
                self.auto_server_patcher_provided = True

        if not self.iot_checker_provided:
            if self.args.shodan_api_key and self.args.iot_checker:
                iot_checker = {}
                iot_checker['shodan-api-key'] = self.args.shodan_api_key
                iot_checker['ip'] = self.args.ip
                self.cred['iot-check'] = iot_checker
                self.iot_checker_provided = True

        if not self.web_deface_provided:
            if (self.args.web_deface and
               (self.args.path or
                self.args.server_name)):
                web_deface = {}
                web_deface['path'] = self.args.path
                web_deface['server-name'] = self.args.server_name
                self.cred['web_deface'] = web_deface
                self.web_deface_provided = True

        if not self.antivirus_provided:
            if ((isinstance(self.args.update, int)) and
                (isinstance(self.args.auto_delete, int)) and
                (isinstance(self.args.monitor_usb, int)) and
                (isinstance(self.args.monitor_file_changes, int))):
                antivirus = {}
                antivirus['update'] = self.args.update
                antivirus['custom-scan'] = self.args.custom_scan
                antivirus['auto-delete'] = self.args.auto_delete
                antivirus['monitor-usb'] = self.args.monitor_usb
                antivirus['monitor-file-changes'] = self.args.monitor_file_changes
                antivirus['virustotal-api-key'] = self.args.virustotal_api_key
                self.cred['antivirus'] = antivirus
                self.antivirus_provided = True

        if not self.firewall_provided:
            if (self.args.interface or
                isinstance(self.args.inbound_IP_action, int) or
                isinstance(self.args.inbound_IP_list, str) or
                isinstance(self.args.outbound_IP_action, int) or
                isinstance(self.args.outbound_IP_list, str) or
                isinstance(self.args.protocol_action, int) or
                isinstance(self.args.protocol_list, str) or
                isinstance(self.args.scan_action, int) or
                isinstance(self.args.scan_list, str) or
                isinstance(self.args.dest_port_action, int) or
                isinstance(self.args.dest_port_list, str) or
                isinstance(self.args.source_port_action, int) or
                isinstance(self.args.source_port_list, str) or
                isinstance(self.args.dns_action, int) or
                isinstance(self.args.dns_list, str) or
                isinstance(self.args.HTTP_request_action, int) or
                isinstance(self.args.HTTP_response_action, int) or
                isinstance(self.args.time_lb, str) or
                isinstance(self.args.time_ub, str)):

                # Initialize empty firewall configuraton dictionary
                firewall = {}

                # Create configuration dictionary
                firewall['interface'] = self.args.interface
                firewall['inbound_IPRule'] = {
                                    'action': self.args.inbound_IP_action,
                                    'ip_inbound': self.args.inbound_IP_list
                                }
                firewall['outbound_IPRule'] = {
                                    'action': self.args.outbound_IP_action,
                                    'ip_outbound': self.args.outbound_IP_list
                                }
                firewall['protocolRule'] = {
                                    'action': self.args.protocol_action,
                                    'protocols': self.args.protocol_list
                                }
                firewall['scanLoad'] = {
                                    'action': self.args.scan_action,
                                    'extensions': self.args.scan_list
                                }
                firewall['source_portRule'] = {
                                    'action': self.args.source_port_action,
                                    'sports': self.args.source_port_list
                                }
                firewall['dest_portRule'] = {
                                    'action': self.args.dest_port_action,
                                    'dports': self.args.dest_port_list
                                }
                firewall['HTTPRequest'] = {
                                    'action': self.args.HTTP_request_action
                                }
                firewall['HTTPResponse'] = {
                                    'action': self.args.HTTP_response_action
                                }
                firewall['DNSRule'] = {
                                'action': self.args.dns_action,
                                'dns': self.args.dns_list
                            }
                firewall['time'] = {
                            'time_lb': self.args.time_lb,
                            'time_ub': self.args.time_ub
                        }

                self.cred['firewall'] = firewall
                self.firewall_provided = True
        if (self.twitter_provided or
            self.telegram_provided or
            self.twilio_provided or
            self.whatsapp_provided or
            self.slack_provided or
            self.aws_ses_provided or
            self.firewall_provided or
            self.insecure_headers_provided or
            self.gmail_provided or
            self.ids_provided or
            self.system_log_provided or
            self.server_log_provided or
            self.auto_server_patcher_provided or
            self.web_deface_provided or
            self.antivirus_provided or
            self.iot_checker_provided or
            self.server_mode or
            self.system_mode or
            self.social_eng_provided or
            self.iot_mode):
            self.cred_provided = True

        return {
            'cred': self.cred,
            'cred_provided': self.cred_provided,
            'twitter_provided': self.twitter_provided,
            'telegram_provided': self.telegram_provided,
            'twilio_provided': self.twilio_provided,
            'whatsapp_provided': self.whatsapp_provided,
            'slack_provided': self.slack_provided,
            'aws_ses_provided': self.aws_ses_provided,
            'gmail_provided': self.gmail_provided,
            'social_eng_provided': self.social_eng_provided,
            'firewall_provided': self.firewall_provided,
            'insecure_headers_provided': self.insecure_headers_provided,
            'ids_provided': self.ids_provided,
            'system_log_provided': self.system_log_provided,
            'server_log_provided': self.server_log_provided,
            'auto_server_patcher_provided': self.auto_server_patcher_provided,
            'web_deface_provided': self.web_deface_provided,
            'antivirus_provided': self.antivirus_provided,
            'iot_checker_provided': self.iot_checker_provided,
            'server_mode': self.server_mode,
            'system_mode': self.system_mode,
            'iot_mode': self.iot_mode,
        }
def _extracted_from_get_credentials_27(arg0, final_creds, arg2):
    print(arg0)
    interface = get_interface()
    final_creds[arg2]["interface"] = interface