Skip to content

Commit 9762b56

Browse files
Implement -p- for full range scan
1 parent f2f88b2 commit 9762b56

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

tests/test_cli.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,28 @@ def test_run_scan_ip():
6868
assert "Scan started with ID" in result.stdout
6969

7070

71+
def test_run_scan_ip_full_range_ports():
72+
result = subprocess.run(
73+
["vulnebify", "run", "scan", "45.33.32.156", "-p-", "--wait"],
74+
capture_output=True,
75+
text=True,
76+
)
77+
assert result.returncode == 0
78+
assert "Scan started with ID" in result.stdout
79+
80+
result = subprocess.run(
81+
["vulnebify", "get", "host", "45.33.32.156", "-o", "json"],
82+
capture_output=True,
83+
text=True,
84+
)
85+
86+
json = parse_json_output(result.stdout)
87+
print(json)
88+
ports = [s["port"] for s in json[0]["services"]]
89+
90+
assert set(ports) == {22, 80, 9929, 31337}
91+
92+
7193
# vulnebify run scan 1.1.1.1 --wait
7294
def test_run_scan_ip_with_wait():
7395
result = subprocess.run(

vulnebify/cli.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ def parse_scopes(args):
3939
return []
4040

4141

42+
def parse_ports(args):
43+
if not args.ports:
44+
return ["top100"] # default
45+
return ["top65535" if p == "-" else p for p in args.ports]
46+
47+
4248
def get_api_key():
4349
api_key = os.getenv(VULNEBIFY_API_KEY)
4450

@@ -203,7 +209,7 @@ def cli():
203209
run_scans_parser.add_argument("-p", "--ports", nargs="*", help="Ports to scan (default: top100)")
204210
run_scans_parser.add_argument("-s", "--scanners", nargs="*", help="Scanners to use (default: empty)")
205211
run_scans_parser.add_argument("-w", "--wait", action="store_true", help="Wait for scan to finish (default: false)")
206-
run_scans_parser.set_defaults(func=lambda args: run_scan(parse_scopes(args), args.ports or ["top100"], args.scanners or [], args.wait))
212+
run_scans_parser.set_defaults(func=lambda args: run_scan(parse_scopes(args), parse_ports(args), args.scanners or [], args.wait))
207213

208214
# CANCEL group
209215
cancel_parser = subparsers.add_parser("cancel", help="Cancel scan")

0 commit comments

Comments
 (0)