def testDirectoryExists(self):
     self.assertTrue(DirectoryListing.exists(self.dir_to_check))
 def testDirectoryListing(self):
     files, dirs = DirectoryListing.getFilesAndDirs(self.dir_to_check)
     self.assertTrue(10, files.Count > 1) 
     self.assertTrue(1, dirs.Count > 1)
 def testDirectorySize(self):
     self.assertEqual(30, DirectoryListing.getDirSize(DirectoryInfo(self.dir_to_check)))
Beispiel #4
0
def SecondaryOption(option):
    if option == 1:
        #printing all the types of high level vulnerabilities support by this application
        print(
            "%s\nList Of High Severity Vulnerabilities That Can Be Detected %s \n"
            % (Fore.WHITE, Style.RESET_ALL))
        print(Fore.GREEN + "[1] SQL Injection (Error Based)")
        print("[2] Subdomain Takeover")
        print("[3] XXS Reflected")
        print("[4] Go Back")
        print(Fore.BLUE + "[5] Exit" + Fore.RESET)
        try:
            optionS = int(
                input(Fore.GREEN + "\n>>Enter Your Choice : " + Fore.RESET))
            if optionS == 1:
                actionCall("\n\nCalling Function To Scan For SQL Injection.")
                print(Fore.RED + Style.DIM + """
            ███████╗ ██████╗ ██╗         ██╗███╗   ██╗     ██╗███████╗ ██████╗████████╗██╗ ██████╗ ███╗   ██╗
            ██╔════╝██╔═══██╗██║         ██║████╗  ██║     ██║██╔════╝██╔════╝╚══██╔══╝██║██╔═══██╗████╗  ██║
            ███████╗██║   ██║██║         ██║██╔██╗ ██║     ██║█████╗  ██║        ██║   ██║██║   ██║██╔██╗ ██║
            ╚════██║██║▄▄ ██║██║         ██║██║╚██╗██║██   ██║██╔══╝  ██║        ██║   ██║██║   ██║██║╚██╗██║
            ███████║╚██████╔╝███████╗    ██║██║ ╚████║╚█████╔╝███████╗╚██████╗   ██║   ██║╚██████╔╝██║ ╚████║
            ╚══════╝ ╚══▀▀═╝ ╚══════╝    ╚═╝╚═╝  ╚═══╝ ╚════╝ ╚══════╝ ╚═════╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝\n\n"""
                      + Style.RESET_ALL)
                sqlInjectionTool.sqliAttack(
                )  #redirecting to sql Injection tool
                SecondaryOption(1)
            elif optionS == 2:
                actionCall(
                    "\n\nCalling function to scan for Subdomain Takeover.")
                print(Fore.RED + Style.DIM + """
                            ███████╗██╗   ██╗██████╗ ██████╗  ██████╗ ███╗   ███╗ █████╗ ██╗███╗   ██╗
                            ██╔════╝██║   ██║██╔══██╗██╔══██╗██╔═══██╗████╗ ████║██╔══██╗██║████╗  ██║
                            ███████╗██║   ██║██████╔╝██║  ██║██║   ██║██╔████╔██║███████║██║██╔██╗ ██║
                            ╚════██║██║   ██║██╔══██╗██║  ██║██║   ██║██║╚██╔╝██║██╔══██║██║██║╚██╗██║
                            ███████║╚██████╔╝██████╔╝██████╔╝╚██████╔╝██║ ╚═╝ ██║██║  ██║██║██║ ╚████║
                            ╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝

                                ████████╗ █████╗ ██╗  ██╗███████╗ ██████╗ ██╗   ██╗███████╗██████╗
                                ╚══██╔══╝██╔══██╗██║ ██╔╝██╔════╝██╔═══██╗██║   ██║██╔════╝██╔══██╗
                                   ██║   ███████║█████╔╝ █████╗  ██║   ██║██║   ██║█████╗  ██████╔╝
                                   ██║   ██╔══██║██╔═██╗ ██╔══╝  ██║   ██║╚██╗ ██╔╝██╔══╝  ██╔══██╗
                                   ██║   ██║  ██║██║  ██╗███████╗╚██████╔╝ ╚████╔╝ ███████╗██║  ██║
                                   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝ ╚═════╝   ╚═══╝  ╚══════╝╚═╝  ╚═╝\n\n"""
                      + Style.RESET_ALL)
                subdomainTakeoverTool.subdomainFunction(
                )  #redirecting to subdomain Takeover tool
                SecondaryOption(1)
            elif optionS == 3:
                actionCall("\n\nCalling function to scan for XSS.")
                print(Fore.RED + Style.DIM + """
                             ██████╗██████╗  ██████╗ ███████╗███████╗      ███████╗██╗████████╗███████╗    
                            ██╔════╝██╔══██╗██╔═══██╗██╔════╝██╔════╝      ██╔════╝██║╚══██╔══╝██╔════╝    
                            ██║     ██████╔╝██║   ██║███████╗███████╗█████╗███████╗██║   ██║   █████╗      
                            ██║     ██╔══██╗██║   ██║╚════██║╚════██║╚════╝╚════██║██║   ██║   ██╔══╝      
                            ╚██████╗██║  ██║╚██████╔╝███████║███████║      ███████║██║   ██║   ███████╗    
                             ╚═════╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝      ╚══════╝╚═╝   ╚═╝   ╚══════╝    
                                ███████╗ ██████╗██████╗ ██╗██████╗ ████████╗██╗███╗   ██╗ ██████╗              
                                ██╔════╝██╔════╝██╔══██╗██║██╔══██╗╚══██╔══╝██║████╗  ██║██╔════╝              
                                ███████╗██║     ██████╔╝██║██████╔╝   ██║   ██║██╔██╗ ██║██║  ███╗             
                                ╚════██║██║     ██╔══██╗██║██╔═══╝    ██║   ██║██║╚██╗██║██║   ██║             
                                ███████║╚██████╗██║  ██║██║██║        ██║   ██║██║ ╚████║╚██████╔╝             
                                ╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝╚═╝        ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝
\n\n""" + Style.RESET_ALL)
                xssTool.xssCheck()  #redirecting to subdomain Takeover tool
                SecondaryOption(1)
            elif optionS == 4:
                print(Fore.BLUE + "[] Going back to PrimaryOptions." +
                      Fore.RESET)  #redirecting to primary options
                PrimaryOptions()
            elif optionS == 5:
                print(Fore.WHITE +
                      "\n[.] You Have Called To Terminate The Program" +
                      Fore.RESET)
                actionCall("Terminating Execution")
                sys.exit()  #exit application
            else:
                print(Fore.RED + Style.DIM +
                      "[X] Invalid choice! Do it again" + Style.RESET_ALL)
                time.sleep(0.5)
                SecondaryOption(1)
        except (Exception):
            print(Fore.RED + Style.DIM +
                  "[X] Input of invalid type is entered" + Style.RESET_ALL)
            time.sleep(0.5)
            SecondaryOption(1)
    if option == 2:
        #printing all the types of medium level vulnerabilities support by this application
        print(
            "%s\nList Of Medium Level Vulnerabilities That CAN Be Detected%s \n"
            % (Fore.WHITE, Style.RESET_ALL))
        print(Fore.GREEN + "[1] Missing SPF")
        print("[2] DNS Misconfiguration")
        print("[3] HTTP Header Injection")
        print("[4] Insecure HTTP Usage")
        print("[5] Directory Listing")
        print("[6] Go Back")
        print(Fore.BLUE + "[7] Exit")
        try:
            optionS = int(
                input(Fore.GREEN + "\n>> Enter Your Choice : " + Fore.RESET))
            if optionS == 1:
                actionCall("\n\nCalling Function To Scan For Missing SPF")
                print(Fore.RED + Style.DIM + """
                            ███╗   ███╗██╗███████╗███████╗██╗███╗   ██╗ ██████╗     ███████╗██████╗ ███████╗
                            ████╗ ████║██║██╔════╝██╔════╝██║████╗  ██║██╔════╝     ██╔════╝██╔══██╗██╔════╝
                            ██╔████╔██║██║███████╗███████╗██║██╔██╗ ██║██║  ███╗    ███████╗██████╔╝█████╗  
                            ██║╚██╔╝██║██║╚════██║╚════██║██║██║╚██╗██║██║   ██║    ╚════██║██╔═══╝ ██╔══╝  
                            ██║ ╚═╝ ██║██║███████║███████║██║██║ ╚████║╚██████╔╝    ███████║██║     ██║     
                            ╚═╝     ╚═╝╚═╝╚══════╝╚══════╝╚═╝╚═╝  ╚═══╝ ╚═════╝     ╚══════╝╚═╝     ╚═╝     
                                                                                \n\n"""
                      + Style.RESET_ALL)
                missSPF.spfCheck()  #redirecting to missing SPF Detection Tool
                SecondaryOption(2)
            elif optionS == 2:
                actionCall(
                    "\n\nCalling Function To Scan For DNS Misconfiguration.")
                print(Fore.RED + Style.DIM + """
                            ██████╗ ███╗   ██╗███████╗    ███████╗ ██████╗ ███╗   ██╗███████╗    
                            ██╔══██╗████╗  ██║██╔════╝    ╚══███╔╝██╔═══██╗████╗  ██║██╔════╝       
                            ██║  ██║██╔██╗ ██║███████╗      ███╔╝ ██║   ██║██╔██╗ ██║█████╗      
                            ██║  ██║██║╚██╗██║╚════██║     ███╔╝  ██║   ██║██║╚██╗██║██╔══╝      
                            ██████╔╝██║ ╚████║███████║    ███████╗╚██████╔╝██║ ╚████║███████╗    
                            ╚═════╝ ╚═╝  ╚═══╝╚══════╝    ╚══════╝ ╚═════╝ ╚═╝  ╚═══╝╚══════╝    
                                                                     
                            ████████╗██████╗  █████╗ ███╗   ██╗███████╗███████╗███████╗██████╗   
                            ╚══██╔══╝██╔══██╗██╔══██╗████╗  ██║██╔════╝██╔════╝██╔════╝██╔══██╗  
                               ██║   ██████╔╝███████║██╔██╗ ██║███████╗█████╗  █████╗  ██████╔╝  
                               ██║   ██╔══██╗██╔══██║██║╚██╗██║╚════██║██╔══╝  ██╔══╝  ██╔══██╗  
                               ██║   ██║  ██║██║  ██║██║ ╚████║███████║██║     ███████╗██║  ██║  
                               ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚═╝     ╚══════╝╚═╝  ╚═╝\n\n"""
                      + Style.RESET_ALL)
                dnsMisconf.dnsMisconf(
                )  #redirecting to DNS Zone Transfer Check Tool
                SecondaryOption(2)
            elif optionS == 3:
                actionCall(
                    "\n\nCalling function to scan for Subdomain Takeover.")
                print(Fore.RED + Style.DIM + """
                    ██╗  ██╗████████╗████████╗██████╗     ██╗  ██╗███████╗ █████╗ ██████╗ ███████╗██████╗
                    ██║  ██║╚══██╔══╝╚══██╔══╝██╔══██╗    ██║  ██║██╔════╝██╔══██╗██╔══██╗██╔════╝██╔══██╗    
                    ███████║   ██║      ██║   ██████╔╝    ███████║█████╗  ███████║██║  ██║█████╗  ██████╔╝    
                    ██╔══██║   ██║      ██║   ██╔═══╝     ██╔══██║██╔══╝  ██╔══██║██║  ██║██╔══╝  ██╔══██╗    
                    ██║  ██║   ██║      ██║   ██║         ██║  ██║███████╗██║  ██║██████╔╝███████╗██║  ██║    
                    ╚═╝  ╚═╝   ╚═╝      ╚═╝   ╚═╝         ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝╚═╝  ╚═╝    
                                                                                          
                            ██╗███╗   ██╗     ██╗███████╗ ██████╗████████╗██╗ ██████╗ ███╗   ██╗
                            ██║████╗  ██║     ██║██╔════╝██╔════╝╚══██╔══╝██║██╔═══██╗████╗  ██║
                            ██║██╔██╗ ██║     ██║█████╗  ██║        ██║   ██║██║   ██║██╔██╗ ██║
                            ██║██║╚██╗██║██   ██║██╔══╝  ██║        ██║   ██║██║   ██║██║╚██╗██║
                            ██║██║ ╚████║╚█████╔╝███████╗╚██████╗   ██║   ██║╚██████╔╝██║ ╚████║
                            ╚═╝╚═╝  ╚═══╝ ╚════╝ ╚══════╝ ╚═════╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝
                                                                                          \n\n"""
                      + Style.RESET_ALL)
                httpHeaderInjection.httpHeaderInj(
                )  #redirecting to Header Injection tool
                SecondaryOption(1)
            elif optionS == 4:
                actionCall(
                    "\n\nCalling Function To Scan For Directory Listing")
                print(Fore.RED + Style.DIM + """
                            ██████╗ ██╗██████╗ ███████╗ ██████╗████████╗ ██████╗ ██████╗ ██╗   ██╗
                            ██╔══██╗██║██╔══██╗██╔════╝██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗╚██╗ ██╔╝
                            ██║  ██║██║██████╔╝█████╗  ██║        ██║   ██║   ██║██████╔╝ ╚████╔╝ 
                            ██║  ██║██║██╔══██╗██╔══╝  ██║        ██║   ██║   ██║██╔══██╗  ╚██╔╝  
                            ██████╔╝██║██║  ██║███████╗╚██████╗   ██║   ╚██████╔╝██║  ██║   ██║   
                            ╚═════╝ ╚═╝╚═╝  ╚═╝╚══════╝ ╚═════╝   ╚═╝    ╚═════╝ ╚═╝  ╚═╝   ╚═╝   
                                    ██╗     ██╗███████╗████████╗██╗███╗   ██╗ ██████╗                     
                                    ██║     ██║██╔════╝╚══██╔══╝██║████╗  ██║██╔════╝                     
                                    ██║     ██║███████╗   ██║   ██║██╔██╗ ██║██║  ███╗                    
                                    ██║     ██║╚════██║   ██║   ██║██║╚██╗██║██║   ██║                    
                                    ███████╗██║███████║   ██║   ██║██║ ╚████║╚██████╔╝                    
                                    ╚══════╝╚═╝╚══════╝   ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝   
                                                                                \n\n"""
                      + Style.RESET_ALL)
                DirectoryListing.directoryListing(
                )  #redirecting to Directory Listing Check Tool
                SecondaryOption(2)
            elif optionS == 5:
                print("Going back to PrimaryOptions.")
                PrimaryOptions()
            elif optionS == 6:
                print(Fore.WHITE +
                      "\n[.] You Have Called To Terminate The Program")
                actionCall("Terminating Execution")
                sys.exit()  #Exit Program
            else:
                print(Fore.RED + Style.DIM +
                      "[X] Invalid choice! Enter Again" + Style.RESET_ALL)
                time.sleep(0.5)
                SecondaryOption(2)
        except (Exception):
            print(Fore.RED + "[X] Input is of invalid type. Enter Again" +
                  Style.RESET_ALL)
            time.sleep(0.5)
            SecondaryOption(2)

    if option == 3:
        #printing all the types of Informative vulnerabilities support by this application
        print(
            "%s\nList Of Informative Vulnerabilities That Can Be Detected : %s \n"
            % (Fore.WHITE, Style.RESET_ALL))
        print(Fore.GREEN + "[1] Detect Open Ports")
        print("[2] Internal Information Disclosure in HTTP Headers")
        print("[3] Server Information Disclosure")
        print("[4] Check For Important Security Headers")
        print("[5] Protection Against Cross-Site Request Forgery")
        print("[6] File Upload Variables Detection")
        print("[7] Network Description")
        print("[8] TLS Information")
        print(Fore.BLUE + "[9] Go back")
        print(Fore.BLUE + "[0] Exit")
        try:
            optionS = int(
                input(Fore.GREEN + "\n>> Enter Your Choice : " + Fore.RESET))
            if optionS == 1:
                actionCall("\n\nCalling Function To Scan For Open Ports")
                print(Fore.RED + Style.DIM + """
                                        ██████╗ ███████╗████████╗███████╗ ██████╗████████╗
                                        ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝
                                        ██║  ██║█████╗     ██║   █████╗  ██║        ██║
                                        ██║  ██║██╔══╝     ██║   ██╔══╝  ██║        ██║
                                        ██████╔╝███████╗   ██║   ███████╗╚██████╗   ██║
                                        ╚═════╝ ╚══════╝   ╚═╝   ╚══════╝ ╚═════╝   ╚═╝

                         ██████╗ ██████╗ ███████╗███╗   ██╗    ██████╗  ██████╗ ██████╗ ████████╗███████╗
                        ██╔═══██╗██╔══██╗██╔════╝████╗  ██║    ██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝██╔════╝
                        ██║   ██║██████╔╝█████╗  ██╔██╗ ██║    ██████╔╝██║   ██║██████╔╝   ██║   ███████╗
                        ██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║    ██╔═══╝ ██║   ██║██╔══██╗   ██║   ╚════██║
                        ╚██████╔╝██║     ███████╗██║ ╚████║    ██║     ╚██████╔╝██║  ██║   ██║   ███████║
                         ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝    ╚═╝      ╚═════╝ ╚═╝  ╚═╝   ╚═╝   ╚══════╝\n\n"""
                      + Style.RESET_ALL)
                openPortsDetectionTool.openPortDetection(
                )  #redirecting to open ports Detection Tool
                SecondaryOption(3)
            elif optionS == 2:
                actionCall(
                    "\n\nCalling function to Scan For Internal Information Disclosure in HTTP Headers"
                )
                print(Fore.RED + Style.DIM + """
                ██╗███╗   ██╗███████╗ ██████╗ ██████╗ ███╗   ███╗ █████╗ ████████╗██╗ ██████╗ ███╗   ██╗                       
                ██║████╗  ██║██╔════╝██╔═══██╗██╔══██╗████╗ ████║██╔══██╗╚══██╔══╝██║██╔═══██╗████╗  ██║                       
                ██║██╔██╗ ██║█████╗  ██║   ██║██████╔╝██╔████╔██║███████║   ██║   ██║██║   ██║██╔██╗ ██║                       
                ██║██║╚██╗██║██╔══╝  ██║   ██║██╔══██╗██║╚██╔╝██║██╔══██║   ██║   ██║██║   ██║██║╚██╗██║                       
                ██║██║ ╚████║██║     ╚██████╔╝██║  ██║██║ ╚═╝ ██║██║  ██║   ██║   ██║╚██████╔╝██║ ╚████║                       
                ╚═╝╚═╝  ╚═══╝╚═╝      ╚═════╝ ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝                       
                                                                                                               
                   ██████╗ ██╗███████╗ ██████╗██╗      ██████╗ ███████╗██╗   ██╗██████╗ ███████╗
                   ██╔══██╗██║██╔════╝██╔════╝██║     ██╔═══██╗██╔════╝██║   ██║██╔══██╗██╔════╝
                   ██║  ██║██║███████╗██║     ██║     ██║   ██║███████╗██║   ██║██████╔╝█████╗
                   ██║  ██║██║╚════██║██║     ██║     ██║   ██║╚════██║██║   ██║██╔══██╗██╔══╝
                   ██████╔╝██║███████║╚██████╗███████╗╚██████╔╝███████║╚██████╔╝██║  ██║███████╗
                   ╚═════╝ ╚═╝╚══════╝ ╚═════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝
                                                                                                               
    ██╗███╗   ██╗    ██╗  ██╗████████╗████████╗██████╗     ██╗  ██╗███████╗ █████╗ ██████╗ ███████╗██████╗ ███████╗
    ██║████╗  ██║    ██║  ██║╚══██╔══╝╚══██╔══╝██╔══██╗    ██║  ██║██╔════╝██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔════╝
    ██║██╔██╗ ██║    ███████║   ██║      ██║   ██████╔╝    ███████║█████╗  ███████║██║  ██║█████╗  ██████╔╝███████╗
    ██║██║╚██╗██║    ██╔══██║   ██║      ██║   ██╔═══╝     ██╔══██║██╔══╝  ██╔══██║██║  ██║██╔══╝  ██╔══██╗╚════██║
    ██║██║ ╚████║    ██║  ██║   ██║      ██║   ██║         ██║  ██║███████╗██║  ██║██████╔╝███████╗██║  ██║███████║
    ╚═╝╚═╝  ╚═══╝    ╚═╝  ╚═╝   ╚═╝      ╚═╝   ╚═╝         ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝╚═╝  ╚═╝╚══════╝
                                                                                                               
                                                                                                 \n\n"""
                      + Style.RESET_ALL)
                infoHTTP.httpInfo()  #redirecting to FTP server Check Tool
                SecondaryOption(3)
            elif optionS == 3:
                actionCall(
                    "\n\nCalling Function To Scan For Sensitive Server Information Disclosure"
                )
                print(Fore.RED + Style.DIM + """
        ███████╗███████╗███╗   ██╗███████╗██╗████████╗██╗██╗   ██╗███████╗    ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
        ██╔════╝██╔════╝████╗  ██║██╔════╝██║╚══██╔══╝██║██║   ██║██╔════╝    ██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
        ███████╗█████╗  ██╔██╗ ██║███████╗██║   ██║   ██║██║   ██║█████╗      ███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
        ╚════██║██╔══╝  ██║╚██╗██║╚════██║██║   ██║   ██║╚██╗ ██╔╝██╔══╝      ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
        ███████║███████╗██║ ╚████║███████║██║   ██║   ██║ ╚████╔╝ ███████╗    ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
        ╚══════╝╚══════╝╚═╝  ╚═══╝╚══════╝╚═╝   ╚═╝   ╚═╝  ╚═══╝  ╚══════╝    ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                    ██╗███╗   ██╗███████╗ ██████╗ ██████╗ ███╗   ███╗ █████╗ ████████╗██╗ ██████╗ ███╗   ██╗
                    ██║████╗  ██║██╔════╝██╔═══██╗██╔══██╗████╗ ████║██╔══██╗╚══██╔══╝██║██╔═══██╗████╗  ██║
                    ██║██╔██╗ ██║█████╗  ██║   ██║██████╔╝██╔████╔██║███████║   ██║   ██║██║   ██║██╔██╗ ██║
                    ██║██║╚██╗██║██╔══╝  ██║   ██║██╔══██╗██║╚██╔╝██║██╔══██║   ██║   ██║██║   ██║██║╚██╗██║
                    ██║██║ ╚████║██║     ╚██████╔╝██║  ██║██║ ╚═╝ ██║██║  ██║   ██║   ██║╚██████╔╝██║ ╚████║
                    ╚═╝╚═╝  ╚═══╝╚═╝      ╚═════╝ ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝  \n\n"""
                      + Style.RESET_ALL)
                serverInfoTool.serverInfo(
                )  #Redirecting to server Information Detection Tool
                SecondaryOption(3)
            elif optionS == 4:
                actionCall(
                    "\n\nCalling Function To Check For Important Security Headers"
                )
                print(Fore.RED + Style.DIM + """
                        ██╗███╗   ███╗██████╗  ██████╗ ██████╗ ████████╗ █████╗ ███╗   ██╗████████╗
                        ██║████╗ ████║██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝██╔══██╗████╗  ██║╚══██╔══╝
                        ██║██╔████╔██║██████╔╝██║   ██║██████╔╝   ██║   ███████║██╔██╗ ██║   ██║
                        ██║██║╚██╔╝██║██╔═══╝ ██║   ██║██╔══██╗   ██║   ██╔══██║██║╚██╗██║   ██║
                        ██║██║ ╚═╝ ██║██║     ╚██████╔╝██║  ██║   ██║   ██║  ██║██║ ╚████║   ██║
                        ╚═╝╚═╝     ╚═╝╚═╝      ╚═════╝ ╚═╝  ╚═╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝
                                                                                                                          
    ███████╗███████╗ ██████╗██╗   ██╗██████╗ ██╗████████╗██╗   ██╗    ██╗  ██╗███████╗ █████╗ ██████╗ ███████╗██████╗ ███████╗
    ██╔════╝██╔════╝██╔════╝██║   ██║██╔══██╗██║╚══██╔══╝╚██╗ ██╔╝    ██║  ██║██╔════╝██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔════╝
    ███████╗█████╗  ██║     ██║   ██║██████╔╝██║   ██║    ╚████╔╝     ███████║█████╗  ███████║██║  ██║█████╗  ██████╔╝███████╗
    ╚════██║██╔══╝  ██║     ██║   ██║██╔══██╗██║   ██║     ╚██╔╝      ██╔══██║██╔══╝  ██╔══██║██║  ██║██╔══╝  ██╔══██╗╚════██║
    ███████║███████╗╚██████╗╚██████╔╝██║  ██║██║   ██║      ██║       ██║  ██║███████╗██║  ██║██████╔╝███████╗██║  ██║███████║
    ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝   ╚═╝      ╚═╝       ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝╚═╝  ╚═╝╚══════╝
\n\n""" + Style.RESET_ALL)
                impHeaders.impHeaderInfo(
                )  #Redirecting to X-XSS Protection Value Detection Tool
                SecondaryOption(3)
            elif optionS == 5:
                actionCall(
                    "\n\nCalling Function To Check For Protection Against XSRF"
                )
                print(Fore.RED + Style.DIM + """
         ██████╗███████╗██████╗ ███████╗    ██████╗ ██████╗  ██████╗ ████████╗███████╗ ██████╗████████╗██╗ ██████╗ ███╗   ██╗
        ██╔════╝██╔════╝██╔══██╗██╔════╝    ██╔══██╗██╔══██╗██╔═══██╗╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝██║██╔═══██╗████╗  ██║
        ██║     ███████╗██████╔╝█████╗      ██████╔╝██████╔╝██║   ██║   ██║   █████╗  ██║        ██║   ██║██║   ██║██╔██╗ ██║
        ██║     ╚════██║██╔══██╗██╔══╝      ██╔═══╝ ██╔══██╗██║   ██║   ██║   ██╔══╝  ██║        ██║   ██║██║   ██║██║╚██╗██║
        ╚██████╗███████║██║  ██║██║         ██║     ██║  ██║╚██████╔╝   ██║   ███████╗╚██████╗   ██║   ██║╚██████╔╝██║ ╚████║
        ╚═════╝╚══════╝╚═╝  ╚═╝╚═╝         ╚═╝     ╚═╝  ╚═╝ ╚═════╝    ╚═╝   ╚══════╝ ╚═════╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝
                                                                                                                     
                                              ██████╗██╗  ██╗███████╗ ██████╗██╗  ██╗
                                             ██╔════╝██║  ██║██╔════╝██╔════╝██║ ██╔╝
                                             ██║     ███████║█████╗  ██║     █████╔╝
                                             ██║     ██╔══██║██╔══╝  ██║     ██╔═██╗
                                             ╚██████╗██║  ██║███████╗╚██████╗██║  ██╗
                                              ╚═════╝╚═╝  ╚═╝╚══════╝ ╚═════╝╚═╝  ╚═╝
\n\n""" + Style.RESET_ALL)
                xsrfCheck.xsrfInfo(
                )  #Redirecting to X-XSS Protection Value Detection Tool
                SecondaryOption(3)
            elif optionS == 6:
                actionCall(
                    "\n\nCalling Function To check variables for File Upload")
                print(Fore.RED + Style.DIM + """
                        ███████╗██╗██╗     ███████╗    ██╗   ██╗██████╗ ██╗      ██████╗  █████╗ ██████╗ 
                        ██╔════╝██║██║     ██╔════╝    ██║   ██║██╔══██╗██║     ██╔═══██╗██╔══██╗██╔══██╗
                        █████╗  ██║██║     █████╗      ██║   ██║██████╔╝██║     ██║   ██║███████║██║  ██║
                        ██╔══╝  ██║██║     ██╔══╝      ██║   ██║██╔═══╝ ██║     ██║   ██║██╔══██║██║  ██║
                        ██║     ██║███████╗███████╗    ╚██████╔╝██║     ███████╗╚██████╔╝██║  ██║██████╔╝
                        ╚═╝     ╚═╝╚══════╝╚══════╝     ╚═════╝ ╚═╝     ╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═════╝ 
\n\n""" + Style.RESET_ALL)
                FileInclusion.fileInclusionCheck(
                )  #Redirecting to File Variable Detetction Tool
                SecondaryOption(3)
            elif optionS == 7:
                actionCall("\n\nCalling Function To get Network Description")
                print(Fore.RED + Style.DIM + """
                                ███╗   ██╗███████╗████████╗██╗    ██╗ ██████╗ ██████╗ ██╗  ██╗                    
                                ████╗  ██║██╔════╝╚══██╔══╝██║    ██║██╔═══██╗██╔══██╗██║ ██╔╝                    
                                ██╔██╗ ██║█████╗     ██║   ██║ █╗ ██║██║   ██║██████╔╝█████╔╝                     
                                ██║╚██╗██║██╔══╝     ██║   ██║███╗██║██║   ██║██╔══██╗██╔═██╗                     
                                ██║ ╚████║███████╗   ██║   ╚███╔███╔╝╚██████╔╝██║  ██║██║  ██╗                    
                                ╚═╝  ╚═══╝╚══════╝   ╚═╝    ╚══╝╚══╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝                    
                    ██████╗ ███████╗███████╗ ██████╗██████╗ ██╗██████╗ ████████╗██╗ ██████╗ ███╗   ██╗
                    ██╔══██╗██╔════╝██╔════╝██╔════╝██╔══██╗██║██╔══██╗╚══██╔══╝██║██╔═══██╗████╗  ██║
                    ██║  ██║█████╗  ███████╗██║     ██████╔╝██║██████╔╝   ██║   ██║██║   ██║██╔██╗ ██║
                    ██║  ██║██╔══╝  ╚════██║██║     ██╔══██╗██║██╔═══╝    ██║   ██║██║   ██║██║╚██╗██║
                    ██████╔╝███████╗███████║╚██████╗██║  ██║██║██║        ██║   ██║╚██████╔╝██║ ╚████║
                    ╚═════╝ ╚══════╝╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝╚═╝        ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝
\n\n""" + Style.RESET_ALL)
                network.networkEnum(
                )  #Redirecting to X-XSS Protection Value Detection Tool
                SecondaryOption(3)
            elif optionS == 8:
                actionCall("\n\nCalling Function To Check TLS Version")
                print(Fore.RED + Style.DIM + """
                    ████████╗██╗     ███████╗    ██╗   ██╗███████╗██████╗ ███████╗██╗ ██████╗ ███╗   ██╗
                    ╚══██╔══╝██║     ██╔════╝    ██║   ██║██╔════╝██╔══██╗██╔════╝██║██╔═══██╗████╗  ██║
                       ██║   ██║     ███████╗    ██║   ██║█████╗  ██████╔╝███████╗██║██║   ██║██╔██╗ ██║
                       ██║   ██║     ╚════██║    ╚██╗ ██╔╝██╔══╝  ██╔══██╗╚════██║██║██║   ██║██║╚██╗██║
                       ██║   ███████╗███████║     ╚████╔╝ ███████╗██║  ██║███████║██║╚██████╔╝██║ ╚████║
                       ╚═╝   ╚══════╝╚══════╝      ╚═══╝  ╚══════╝╚═╝  ╚═╝╚══════╝╚═╝ ╚═════╝ ╚═╝  ╚═══╝
                                             ██████╗██╗  ██╗███████╗ ██████╗██╗  ██╗                                            
                                            ██╔════╝██║  ██║██╔════╝██╔════╝██║ ██╔╝                                            
                                            ██║     ███████║█████╗  ██║     █████╔╝                                             
                                            ██║     ██╔══██║██╔══╝  ██║     ██╔═██╗                                             
                                            ╚██████╗██║  ██║███████╗╚██████╗██║  ██╗                                            
                                             ╚═════╝╚═╝  ╚═╝╚══════╝ ╚═════╝╚═╝  ╚═╝
\n\n""" + Style.RESET_ALL)
                tlsCheck.TLScheck()  #Redirecting to TLS Version Check Tool
                SecondaryOption(3)
            elif optionS == 9:
                print("Going Back To PrimaryOptions.")
                PrimaryOptions()
            elif optionS == 0:
                print(Fore.WHITE +
                      "\n[.] You Have Called To Terminate The Program")
                actionCall("Terminating Execution")
                sys.exit()  #Exit Program
            else:
                print(Fore.RED + Style.DIM + "Invalid choice! Do it again" +
                      Style.RESET_ALL)
                time.sleep(0.5)
                SecondaryOption(3)
        except (Exception):
            print(Fore.RED + Style.RED +
                  "Input of inavlid type entered. Enter Again" +
                  Style.RESET_ALL)
            time.sleep(0.5)
            SecondaryOption(3)