예제 #1
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Run whatweb against one or many targets.',
    )

    # Mutually exclusive inputs: csv, url, list of sites.
    input_arg = parser.add_mutually_exclusive_group()
    input_arg.add_argument('--csv', help='CSV File of open ports.')
    input_arg.add_argument('--url', help="Single url to be tested")
    input_arg.add_argument('--txt', help='Text file with url per line.')

    parser.add_argument('output', help="where to store results")
    parser.add_argument("-s", "--screenshot",
                        help="full path to where the screenshot will be saved.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')

    if not args.csv and not args.url and not args.txt:
        print('You must provide either a single URL (--url), a CSV file (--csv) or a text file (--txt)')
        sys.exit()
    return args
예제 #2
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Run escan against one or many targets.',
    )

    parser.add_argument('ips', help="full path to list of ips.")

    parser.add_argument('output', help="where to store results")
    parser.add_argument("-s", "--screenshot",
                        help="full path to where the screenshot will be saved.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')

    if not utils.file_is_executable('/opt/eternal_scanner/escan'):
        logger.error('I can\'t find escan. Please download eternal scanner and save to /opt/eternal_scanner')
        logger.error('From /opt run: "git clone https://github.com/peterpt/eternal_scanner"')
        logger.error('Then CD to /usr/local/sbin and create two symlinks:')
        logger.error('ln -s /opt/eternal_scanner/escan ./')
        logger.error('ln -s /opt/eternal_scanner/elog ./')
        sys.exit()
    return args
예제 #3
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Read file of urls and then take a screenshot of each.',
        prog='website_screenshot.py',
    )
    parser.add_argument('input_file',
                        help='a file with a line for each webserver')
    parser.add_argument('output_dir', help='directory to write images to')
    parser.add_argument('--proxy', help='Use proxychains', action='store_true')
    parser.add_argument('-n',
                        '--no-display',
                        help="Don't use virtual display",
                        action='store_true',
                        default=False)
    parser.add_argument('-f',
                        '--force',
                        help="Don't resume, start over.",
                        action="store_true")
    parser.add_argument('-t',
                        '--threads',
                        help="Number of threads (default is 2).",
                        default=2,
                        type=int)
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        LOG.debug("Logging set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #4
0
def parse_args(args):
    print('\n')
    print('\n')
    print('***** IMPORTANT *****')
    print('Deprecated - use mnikto.py from now on.')
    print('*****           *****')
    print('\n')
    print('\n')
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Capture dirb data and image.',
    )
    parser.add_argument('url', help="url to be tested")
    parser.add_argument('output', help="where to store results")
    parser.add_argument("-s", "--screenshot",
                        help="full path to where the screenshot will be saved.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #5
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Run Nikto on multiple urls servers.',
        prog='multi_nikto.py',
    )
    parser.add_argument('input_file', help='CSV File of open ports.')
    parser.add_argument(
        'output_dir',
        help='Output directory where nikto reports will be created.')
    parser.add_argument('--proxy', help='Use proxychains', action='store_true')
    parser.add_argument('-t',
                        '--threads',
                        help="Number of threads (default is 2).",
                        default=2,
                        type=int)
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #6
0
def parse_args():
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()], prog='parse_testssl_csv.py',
        description='Parses and combines the testssl vulnerabilities.')
    parser.add_argument('input_dir', help='Directory with testssl output.')
    args = parser.parse_args()
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #7
0
def parse_args(args):
    parser = argparse.ArgumentParser(parents=[utils.parent_argparser()])
    parser.add_argument(
        "output_dir",
        help="Full path to where the output of the commands should be saved.")
    parser.add_argument("url", help="URL of application")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #8
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Capture http_methods data and image.',
    )
    parser.add_argument('url', help="url to be tested")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #9
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Capture DNSDumpster Images',
    )
    parser.add_argument('output', help="full path to where the images will be saved.")
    parser.add_argument('domain', help="Domain to capture.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #10
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Extract URLs from ports.csv to a file.',
    )
    parser.add_argument('input', help="full path to ports.csv file.")
    parser.add_argument('output', help="full path to where the 'webservers.txt' file will be saved.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #11
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Print web commands formatted for current pentest.',
    )
    parser.add_argument('-n', '--name', help="Short name of the engagement.")
    parser.add_argument('-u', '--url', help="URL for the engagement.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #12
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Extract IPs from IP notation in a file.',
    )
    parser.add_argument('input_file',
                        help='a file with ips listed in cidr or dashed format')
    parser.add_argument('output_dir', help='directory to write ips.txt file')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #13
0
def parse_args():
    parser = argparse.ArgumentParser(
        prog='nessus_scan.py',
        parents=[utils.parent_argparser()],
        description='Initiate a nessus scan.',
    )
    parser.add_argument('input_file', help='File with ip addresses (one per line).')
    parser.add_argument('scan_name', help='Nessus Scan Name.')
    args = parser.parse_args()
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #14
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Prints ips with port open',
        prog='port_open.py',
    )
    parser.add_argument('input', help='CSV file')
    parser.add_argument('port', help='Port')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #15
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Run wpscan on multiple urls.',
        prog='multi_wpscan.py',
    )
    parser.add_argument('input', help='File with a URL each line.')
    parser.add_argument('output_dir', help='Output directory where wpscan reports will be created.')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #16
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Convert nmap.xml to csv file.',
        prog='nmap_to_csv.py',
    )
    parser.add_argument('input_file', help='Nmap xml file to parse.')
    parser.add_argument('output_dir', help='Output directory to create.')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #17
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Extract vulns from csv files.',
    )
    parser.add_argument('input', help="full path to testssl folder.")
    parser.add_argument('output', help="where to store results")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #18
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        prog='parse_nessus_csv.py',
        parents=[utils.parent_argparser()],
        description='Parse an exported nessus scan.',
    )
    parser.add_argument('input', help='Nessus CSV file.')
    parser.add_argument(
        'output', help='Directory where the output file "parsed_nessus.csv"')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #19
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Creates folder structure for engagement.',
        prog='folder_structure_web.py',
    )
    parser.add_argument('input', help='Complete path to pentest folder.')
    parser.add_argument('url', help='URL of application.')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Set logger to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #20
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Hostnames to IPs.',
    )
    parser.add_argument('input', help='Path to input file: /root/pentests/blah/blah.txt')
    parser.add_argument('output', help='Path to place to save IPs: /root/pentests/blah/output.txt')

    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #21
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='ZAP scan list of URLs.',
    )
    parser.add_argument('input', help='File with a URL each line.')
    parser.add_argument(
        'output', help='Output directory where zap session will be created.')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #22
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Capture theharvester data and image.',
    )
    parser.add_argument('ptfolder', help="Full path to pentest folder (e.g. /root/pentests/tjcim/ept).")
    parser.add_argument('output', help="Full path to output folder (e.g. /root/pentests/tjcim/ept/recon_ng)")
    parser.add_argument("-s", "--screenshot",
                        help="full path to where the screenshot will be saved.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #23
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Capture theharvester data and image.',
    )
    parser.add_argument('domain', help="Domain to be tested.")
    parser.add_argument('output', help="full path to where the results will be saved.")
    parser.add_argument("-s", "--screenshot",
                        help="full path to where the screenshot will be saved.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #24
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Creates folder structure for engagement.',
        prog='folder_structure.py',
    )
    parser.add_argument(
        'input',
        help='Full path to pentest folder. (ex: /root/pentests/tjcim)')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Set logger to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #25
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Format the ports.csv file',
        prog='format_nmap.py',
    )
    parser.add_argument('input', help='Ports csv file to parse.')
    parser.add_argument('output',
                        help='Output directory where file will be created.')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #26
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Capture searchsploit data and image.',
    )
    parser.add_argument('input', help="full path to ports.csv file.")
    parser.add_argument('output', help="full path to where the results will be saved.")
    parser.add_argument("-s", "--screenshot",
                        help="full path to where the screenshot will be saved.")
    parser.add_argument('-n', '--no-update', action='store_true',
                        help="If set searchsploit will not be updated.")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args
예제 #27
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Find neighboring networks.',
    )

    parser.add_argument('-s',
                        '--starting-network',
                        help='Starting Network, e.g. 10.0.0.0',
                        required=True)
    parser.add_argument('-e',
                        '--end-network',
                        help='End network, e.g. 10.5.0.0',
                        required=True)
    parser.add_argument(
        '-c',
        '--cidr',
        help='Netmask of each network expressed as a two digit number, e.g. 24',
        required=True,
        type=int)
    parser.add_argument('-t',
                        '--threads',
                        help='Number of threads to use. Default 100',
                        default=100,
                        type=int)
    # parser.add_argument('output', help="where to store results")
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')

    args.starting_network = str(args.starting_network)
    args.end_network = str(args.end_network)
    args.cidr = str(args.cidr)
    return args
예제 #28
0
def parse_args(args):
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Run pikebrute on multiple servers.',
        prog='pikebrute.py',
    )
    parser.add_argument('input', help='CSV File created from nmap_to_csv.py.')
    parser.add_argument('out_dir', help='Output directory and working folder.')
    parser.add_argument(
        '--dictionary',
        '-d',
        help=
        'Dictionary that psk_crack should use. If not provided the script will use the \
psk-crack-dictionary. Must be the full path to the file.')
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
    else:
        logger.setLevel('INFO')
    return args
예제 #29
0
def parse_args(args):
    ips_path_prompt = os.path.join(config.BASE_PATH, "<short name>/ept")
    parser = argparse.ArgumentParser(
        parents=[utils.parent_argparser()],
        description='Print commands formatted for current pentest.',
    )
    parser.add_argument('-n', '--name', help="Short name of the engagement.")
    parser.add_argument('-d', '--domain', help="Domain for the engagement.")
    parser.add_argument(
        '-i',
        '--ips-file',
        help="Relative path (from {}) to ips file provided for engagement.".
        format(ips_path_prompt))
    args = parser.parse_args(args)
    logger = logging.getLogger("ptscripts")
    if args.quiet:
        logger.setLevel('ERROR')
    elif args.verbose:
        logger.setLevel('DEBUG')
        logger.debug("Logger set to debug.")
    else:
        logger.setLevel('INFO')
    return args