diff --git a/CamXploit.py b/CamXploit.py index 236c5c4..28ccc15 100644 --- a/CamXploit.py +++ b/CamXploit.py @@ -3,6 +3,7 @@ import sys import threading import warnings +import argparse from requests.auth import HTTPBasicAuth from xml.etree import ElementTree as ET import ipaddress @@ -870,6 +871,9 @@ def detect_live_streams(ip, open_ports): '/live/1/h264.sdp', # Generic '/live/1/mpeg4.sdp', # Generic '/live/1/audio.sdp' # Generic + '/cam/realmonitor?channel=1&subtype=0', # Amcrest (Main Stream) + '/cam/realmonitor?channel=1&subtype=1', # Amcrest (Sub Stream) + '/h264Preview_01_main' #Armcrest DVR/NVR ], 'rtmp': [ '/live', @@ -1058,7 +1062,13 @@ def check_stream_with_details(url): def main(): global threads_running try: - target_ip = input(f"{G}[+] {C}Enter IP address: {W}").strip() + parser = argparse.ArgumentParser( + description="CamXploit - Camera Exploitation & Exposure Scanner.", + epilog=f"Example: python {sys.argv[0]} 192.168.1.100" + ) + parser.add_argument("target_ip", help="The IP address of the target camera to scan.") + args = parser.parse_args() + target_ip = args.target_ip.strip() if not validate_ip(target_ip): return