feat: support scanning IP addresses

This commit is contained in:
Ahmed Allam
2025-11-14 01:38:58 +04:00
committed by Ahmed Allam
parent f1d2961779
commit 6abb53dc02
3 changed files with 23 additions and 4 deletions
+4 -1
View File
@@ -260,6 +260,9 @@ Examples:
# Domain penetration test
strix --target example.com
# IP address penetration test
strix --target 192.168.1.42
# Multiple targets (e.g., white-box testing with source and deployed app)
strix --target https://github.com/user/repo --target https://example.com
strix --target ./my-project --target https://staging.example.com --target https://prod.example.com
@@ -275,7 +278,7 @@ Examples:
type=str,
required=True,
action="append",
help="Target to test (URL, repository, local directory path, or domain name). "
help="Target to test (URL, repository, local directory path, domain name, or IP address). "
"Can be specified multiple times for multi-target scans.",
)
parser.add_argument(
+11 -2
View File
@@ -1,3 +1,4 @@
import ipaddress
import re
import secrets
import shutil
@@ -141,7 +142,7 @@ def generate_run_name() -> str:
# Target processing utilities
def infer_target_type(target: str) -> tuple[str, dict[str, str]]:
def infer_target_type(target: str) -> tuple[str, dict[str, str]]: # noqa: PLR0911
if not target or not isinstance(target, str):
raise ValueError("Target must be a non-empty string")
@@ -167,6 +168,13 @@ def infer_target_type(target: str) -> tuple[str, dict[str, str]]:
return "repository", {"target_repo": target}
return "web_application", {"target_url": target}
try:
ip_obj = ipaddress.ip_address(target)
except ValueError:
pass
else:
return "ip_address", {"target_ip": str(ip_obj)}
path = Path(target).expanduser()
try:
if path.exists():
@@ -191,7 +199,8 @@ def infer_target_type(target: str) -> tuple[str, dict[str, str]]:
"- A valid URL (http:// or https://)\n"
"- A Git repository URL (https://github.com/... or git@github.com:...)\n"
"- A local directory path\n"
"- A domain name (e.g., example.com)"
"- A domain name (e.g., example.com)\n"
"- An IP address (e.g., 192.168.1.10)"
)