"--tests", metavar="BITSTRING", help="1 or 0 for run or don't run test. Must have exactly " + str(len(RUN_ALL_TESTS)) + " digits (the number of possible tests).") otherOptionsGroup = parser.add_argument_group( "Other Options", "Additional options that you can use.") otherOptionsGroup.add_argument( "--listous", action="store_true", help="If you want to enumerate the OUs without using the GUI or dsquery.") args = parser.parse_args() #get any user input for the appropriate parameters doListOUs = args.listous if doListOUs: ouList = support.enumerateOUs() for ou in ouList: print ou sys.exit(0) workPath = args.output ldapPath = args.ldap inputHosts = args.hosts inputOUs = args.ous scanName = args.name tests = args.tests threads = args.threads run = args.run norun = args.norun currentPath = os.path.abspath(".")
domainGroup.add_argument("-n", "--name", metavar="NAME", help="One word conventional name for scan. Example: \"HR\".") domainGroup.add_argument("-x", "--threads", metavar="THREADS", help="Number of threads to use. Use more than one at your own risk.") testGroup = parser.add_argument_group("Run Tests", "Select which tests to run or not to run. Choose only one option --run, --norun, or --tests. The possible tests for --run and --norun are: " + possibleTests + ". If none of these options is chosen, all tests are run.") mutexTestGroup = testGroup.add_mutually_exclusive_group() mutexTestGroup.add_argument("--run", metavar="TEST1,TEST2,...", help="List the tests you want to run. Example: \"--run UserRegistry,SystemRegistry\" will run only the user and system registry modules.") mutexTestGroup.add_argument("--norun", metavar="TEST1,TEST2,...", help="List the tests you don't want to run. Example: \"--norun DataExists,Processes,Tasks\" will run all modules except data exists, processes, and tasks.") mutexTestGroup.add_argument("--tests", metavar="BITSTRING", help="1 or 0 for run or don't run test. Must have exactly " + str(len(RUN_ALL_TESTS)) + " digits (the number of possible tests).") otherOptionsGroup = parser.add_argument_group("Other Options", "Additional options that you can use.") otherOptionsGroup.add_argument("--listous", action="store_true", help="If you want to enumerate the OUs without using the GUI or dsquery.") otherOptionsGroup.add_argument("--compress", action="store_true", help="Compress the results after completion. The uncompressed results will remain. If run in standalone mode, the compressed file will be located in the results directory.") args = parser.parse_args() #get any user input for the appropriate parameters doListOUs = args.listous if doListOUs: ouList = support.enumerateOUs() for ou in ouList: print ou sys.exit(0) workPath = args.output ldapPath = args.ldap inputHosts = args.hosts inputOUs = args.ous scanName = args.name tests = args.tests threads = args.threads run = args.run norun = args.norun compressRes = 0 if args.compress:
def createGUI(standalone): versionDescriptionLabel.pack_forget() standaloneButton.pack_forget() domainButton.pack_forget() if not standalone: scanNameLabel = Label(root, text="Scan Name") scanNameLabel.pack() scanNameEntry.pack() Button(text='Output Directory', command=askdirectory).pack(**button_opt) outputDirLabel = Label(root, textvariable=outputDirVar) outputDirLabel.pack() if not standalone: ouOptions = support.enumerateOUs() chosenOU.set(ouOptions[0]) ouOptionMenu = OptionMenu(root, chosenOU, *ouOptions) ouOptionMenu.config(width=100) ouOptionMenu.pack() runNsDnsCheck = Checkbutton(root, text="Netstat/DNS", variable=runNsDnsVar) runNsDnsCheck.pack() runUserAutostartCheck = Checkbutton(root, text="User Registry", variable=runUserAutostartVar) runUserAutostartCheck.pack() runFileListVarCheck = Checkbutton(root, text="File List", variable=runFileListVar) runFileListVarCheck.pack() runAutostartCheck = Checkbutton(root, text="System Registry", variable=runAutostartVar) runAutostartCheck.pack() runProcCheck = Checkbutton(root, text="Process/Process Modules", variable=runProcVar) runProcCheck.pack() runTasksCheck = Checkbutton(root, text="Tasks", variable=runTasksVar) runTasksCheck.pack() runServicesCheck = Checkbutton(root, text="Services", variable=runServicesVar) runServicesCheck.pack() runServiceDLLCheck = Checkbutton(root, text="Service DLLs", variable=runServiceDLLVar) runServiceDLLCheck.pack() runLocalAccountsCheck = Checkbutton(root, text="Local Accounts/Local Admins", variable=runLocalAccountsVar) runLocalAccountsCheck.pack() runDataExistsCheck = Checkbutton(root, text="Data Exists", variable=runDataExistsVar) runDataExistsCheck.pack() runShimCacheCheck = Checkbutton(root, text="Shim Cache", variable=runShimCacheVar) runShimCacheCheck.pack() runUserDataExistsCheck = Checkbutton(root, text="User Data Exists", variable=runUserDataExistsVar) runUserDataExistsCheck.pack() runDirectoryListCheck = Checkbutton(root, text="Directory List", variable=runDirectoryListVar) runDirectoryListCheck.pack() runShellbagsCheck = Checkbutton(root, text="Shellbags", variable=runShellbagsVar) runShellbagsCheck.pack() runUsbDevicesCheck = Checkbutton(root, text="USB Device Enumeration", variable=runUsbDevicesVar) runUsbDevicesCheck.pack() Button(text='Select All', command=selectAll).pack(**button_opt) Button(text='Deselect All', command=deselectAll).pack(**button_opt) if not standalone: numThreadsLabel = Label(root, text="Number of Threads") numThreadsLabel.pack() numThreadsEntry.pack() submit = Button(root, text ="Submit", command=submitConfig) submit.pack() if not standalone: root.title("CIS Enumeration and Scanning Program - Domain Version") else: root.title("CIS Enumeration and Scanning Program - Standalone Version")
def createGUI(standalone): versionDescriptionLabel.pack_forget() standaloneButton.pack_forget() domainButton.pack_forget() if not standalone: scanNameLabel = Label(root, text="Scan Name") scanNameLabel.pack() scanNameEntry.pack() Button(text='Output Directory', command=askdirectory).pack(**button_opt) outputDirLabel = Label(root, textvariable=outputDirVar) outputDirLabel.pack() if not standalone: ouOptions = support.enumerateOUs() chosenOU.set(ouOptions[0]) ouOptionMenu = OptionMenu(root, chosenOU, *ouOptions) ouOptionMenu.config(width=100) ouOptionMenu.pack() runNsDnsCheck = Checkbutton(root, text="Netstat/DNS", variable=runNsDnsVar) runNsDnsCheck.pack() runUserAutostartCheck = Checkbutton(root, text="User Registry", variable=runUserAutostartVar) runUserAutostartCheck.pack() runFileListVarCheck = Checkbutton(root, text="File List", variable=runFileListVar) runFileListVarCheck.pack() runAutostartCheck = Checkbutton(root, text="System Registry", variable=runAutostartVar) runAutostartCheck.pack() runProcCheck = Checkbutton(root, text="Process/Process Modules", variable=runProcVar) runProcCheck.pack() runTasksCheck = Checkbutton(root, text="Tasks", variable=runTasksVar) runTasksCheck.pack() runServicesCheck = Checkbutton(root, text="Services", variable=runServicesVar) runServicesCheck.pack() runServiceDLLCheck = Checkbutton(root, text="Service DLLs", variable=runServiceDLLVar) runServiceDLLCheck.pack() runLocalAccountsCheck = Checkbutton(root, text="Local Accounts/Local Admins", variable=runLocalAccountsVar) runLocalAccountsCheck.pack() runDataExistsCheck = Checkbutton(root, text="Data Exists", variable=runDataExistsVar) runDataExistsCheck.pack() runShimCacheCheck = Checkbutton(root, text="Shim Cache", variable=runShimCacheVar) runShimCacheCheck.pack() runUserDataExistsCheck = Checkbutton(root, text="User Data Exists", variable=runUserDataExistsVar) runUserDataExistsCheck.pack() runDirectoryListCheck = Checkbutton(root, text="Directory List", variable=runDirectoryListVar) runDirectoryListCheck.pack() runShellbagsCheck = Checkbutton(root, text="Shellbags", variable=runShellbagsVar) runShellbagsCheck.pack() runUsbDevicesCheck = Checkbutton(root, text="USB Device Enumeration", variable=runUsbDevicesVar) runUsbDevicesCheck.pack() compressCheck = Checkbutton(root, text="Compress Results", variable=compressVar) compressCheck.pack() Button(text='Select All', command=selectAll).pack(**button_opt) Button(text='Deselect All', command=deselectAll).pack(**button_opt) if not standalone: numThreadsLabel = Label(root, text="Number of Threads") numThreadsLabel.pack() numThreadsEntry.pack() submit = Button(root, text="Submit", command=submitConfig) submit.pack() if not standalone: root.title("CIS Enumeration and Scanning Program - Domain Version") else: root.title("CIS Enumeration and Scanning Program - Standalone Version")