mirror of
https://github.com/aquasecurity/kube-hunter.git
synced 2026-08-21 05:06:32 +00:00
82 lines
2.7 KiB
Python
82 lines
2.7 KiB
Python
from argparse import ArgumentParser
|
|
from kube_hunter.plugins import hookimpl
|
|
|
|
|
|
@hookimpl
|
|
def parser_add_arguments(parser):
|
|
"""
|
|
This is the default hook implementation for parse_add_argument
|
|
Contains initialization for all default arguments
|
|
"""
|
|
parser.add_argument(
|
|
"--list", action="store_true", help="Displays all tests in kubehunter (add --active flag to see active tests)",
|
|
)
|
|
|
|
parser.add_argument("--interface", action="store_true", help="Set hunting on all network interfaces")
|
|
|
|
parser.add_argument("--pod", action="store_true", help="Set hunter as an insider pod")
|
|
|
|
parser.add_argument("--quick", action="store_true", help="Prefer quick scan (subnet 24)")
|
|
|
|
parser.add_argument(
|
|
"--include-patched-versions", action="store_true", help="Don't skip patched versions when scanning",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--cidr",
|
|
type=str,
|
|
help="Set an IP range to scan/ignore, example: '192.168.0.0/24,!192.168.0.8/32,!192.168.0.16/32'",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--mapping", action="store_true", help="Outputs only a mapping of the cluster's nodes",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--remote", nargs="+", metavar="HOST", default=list(), help="One or more remote ip/dns to hunt",
|
|
)
|
|
|
|
parser.add_argument("--active", action="store_true", help="Enables active hunting")
|
|
|
|
parser.add_argument(
|
|
"--log",
|
|
type=str,
|
|
metavar="LOGLEVEL",
|
|
default="INFO",
|
|
help="Set log level, options are: debug, info, warn, none",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--report", type=str, default="plain", help="Set report type, options are: plain, yaml, json",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--dispatch",
|
|
type=str,
|
|
default="stdout",
|
|
help="Where to send the report to, options are: "
|
|
"stdout, http (set KUBEHUNTER_HTTP_DISPATCH_URL and "
|
|
"KUBEHUNTER_HTTP_DISPATCH_METHOD environment variables to configure)",
|
|
)
|
|
|
|
parser.add_argument("--statistics", action="store_true", help="Show hunting statistics")
|
|
|
|
parser.add_argument("--network-timeout", type=float, default=5.0, help="network operations timeout")
|
|
|
|
|
|
def parse_args(add_args_hook):
|
|
"""
|
|
Function handles all argument parsing
|
|
|
|
@param add_arguments: hook for adding arguments to it's given ArgumentParser parameter
|
|
@return: parsed arguments dict
|
|
"""
|
|
parser = ArgumentParser(description="kube-hunter - hunt for security weaknesses in Kubernetes clusters")
|
|
# adding all arguments to the parser
|
|
add_args_hook(parser=parser)
|
|
|
|
args = parser.parse_args()
|
|
if args.cidr:
|
|
args.cidr = args.cidr.replace(" ", "").split(",")
|
|
return args
|