INNER CODE UNIT · Python
arguments
idnahacks/GoodHound · goodhound/__init__.py:8
def arguments():
argparser = argparse.ArgumentParser(description="BloodHound Wrapper to determine the Busiest Attack Paths to High Value targets.", add_help=True, epilog="Attackers think in graphs, Defenders think in actions, Management think in charts.")
parsegroupdb = argparser.add_argument_group('Neo4jConnection')
parsegroupdb.add_argument("-u", "--username", default="neo4j", help="Neo4j Database Username (Default: neo4j)", type=str)
parsegroupdb.add_argument("-p", "--password", default="neo4j", help="Neo4j Database Password (Default: neo4j)", type=str)
parsegroupdb.add_argument("-s", "--server", default="bolt://localhost:7687", help="Neo4j server Default: bolt://localhost:7687)", type=str)
parsegroupoutput = argparser.add_argument_group('Output Formats')
parsegroupoutput.add_argument("-o", "--output-format", default="csv", help="Output formats supported: stdout, csv, md (markdown). Default: csv.", type=str, choices=["stdout", "csv", "md", "markdown"])
parsegroupoutput.add_argument("-d", "--output-dir", default=getcwd(), help="Directory to save the output. Defaults to current directory.", type=str)
parsegroupoutput.add_argument("-q", "--quiet", help="Mutes all output.", action="store_true")
parsegroupoutput.add_argument("-v", "--verbose", help="Enables informational output.", action="store_true")
parsegroupoutput.add_argument("--debug", help="Enables debug logging.", action="store_true")
parsegroupqueryparams = argparser.add_argument_group('Query Parameters')
parsegroupqueryparams.add_argument("-r", "--results", default="5", help="The number of busiest paths and weakest links to output. Default: 5", type=int)
parsegroupqueryparams.add_argument("-sort", "--sort", default="risk", help="Option to sort results by number of users with the path, number of hops or risk score. Default: Risk Score", type=str, choices=["users", "hops", "risk"])
parsegroupschema = argparser.add_argument_group('Schema')
parsegroupschema.add_argument("-sch", "--schema", help="Optionally select a text file containing custom cypher queries to add labels to the neo4j database. e.g. Use this if you want to add the highvalue label to assets that do not have this by default in the BloodHound schema.", type=str)
parsegroupschema.add_argument("--patch41", help="A temporary option to patch a bug in Bloodhound 4.1 relating to t