
Webcam-Sicherheitslücken-Scanner-Tool | Webcam-Sicherheitslücken-Scanner-Werkzeug
Vereinfachtes Chinesisch | English
Ein Schwachstellen-Scan-Framework, das speziell auf Netzwerkkameras abzielt. Es unterstützt bereits gängige Geräte wie Hikvision, Dahua, Uniview, D-Link und andere.
Bitte unter Linux oder Mac verwenden. Stelle sicher, dass Python 3.8 oder höher installiert ist. Verwende möglichst nicht Python 3.11, da die Kompatibilität mit vielen Paketen nicht gut ist.
git clone https://github.com/jorhelp/Ingram.git
cd Ingram
pip3 install virtualenv
python3 -m virtualenv venv
source venv/bin/activate
pip3 install -r requirements.txt
Damit ist die Installation abgeschlossen!
Da die Konfiguration in der virtuellen Umgebung erfolgt, aktiviere sie vor jedem Start: source venv/bin/activate
Du benötigst eine Zieldatei (z. B. targets.txt), die die zu scannenden IP-Adressen enthält, jeweils eine pro Zeile. Das Format ist wie folgt:
# Du kannst das Rautezeichen (#) für Kommentare verwenden
# Einzelne IP-Adresse
192.168.0.1
# IP-Adresse und zu scannender Port
192.168.0.2:80
# IP-Bereich mit '/'
192.168.0.0/16
# IP-Bereich mit '-'
192.168.0.0-192.168.255.255
python3 run_ingram.py -i zu_scannende_Datei -o Ausgabeordner
target.txt ein bestimmter Port für das Ziel angegeben ist (z. B. 192.168.6.6:8000), wird dieser Port gescannt.Andernfalls werden standardmäßig nur die gängigen Ports gescannt (definiert in Ingram/config.py). Um andere Ports in größeren Mengen zu scannen, müssen diese selbst angegeben werden, z. B.:
python3 run_ingram.py -i zu_scannende_Datei -o Ausgabeordner -p 80 81 8000
-t angepasst werden:python3 run_ingram.py -i zu_scannende_Datei -o Ausgabeordner -t 500
Unterbrechungen werden unterstützt. Der aktuelle Status wird jedoch nicht in Echtzeit, sondern in bestimmten Abständen aufgezeichnet. Eine genaue Wiederherstellung des letzten Zustands ist nicht immer möglich. Wenn der Scan aufgrund von Netzwerk- oder anderen Problemen unterbrochen wird, kannst du den Scan fortsetzen, indem du den vorherigen Befehl erneut ausführst.
Alle Parameter:
optional arguments:
-h, --help show this help message and exit
-i IN_FILE, --in_file IN_FILE
the targets will be scan
-o OUT_DIR, --out_dir OUT_DIR
the dir where results will be saved
-p PORTS [PORTS ...], --ports PORTS [PORTS ...]
the port(s) to detect
-t TH_NUM, --th_num TH_NUM
the processes num
-T TIMEOUT, --timeout TIMEOUT
requests timeout
-D, --disable_snapshot
disable snapshot
--debug
Wir können leistungsstarke Port-Scanner nutzen, um aktive Hosts zu identifizieren und so den Scan-Bereich von Ingram zu verkleinern, was die Geschwindigkeit erhöht. Dazu wird die Ausgabedatei des Port-Scanners in das Format ip:port umgewandelt und als Eingabe für Ingram verwendet.
Hier ein einfaches Beispiel mit masscan (die genaue Verwendung von masscan wird hier nicht erläutert). Zuerst scanne mit masscan nach Hosts, die Port 80 oder 8000-8008 offen haben: masscan -p80,8000-8008 -iL Zieldatei -oL Ergebnisdatei --rate 8000
Nachdem masscan fertig ist, bereite die Ergebnisdatei auf: grep 'open' Ergebnisdatei | awk '{printf"%s:%s\n", $4, $3}' > targets.txt
Scanne dann diese Hosts: python run_ingram.py -i targets.txt -o out
run_ingram.py ein:# wechat
config.set_val('WXUID', 'hier UID eintragen')
config.set_val('WXTOKEN', 'hier Token eintragen')
.
├── not_vulnerable.csv
├── results.csv
├── snapshots
└── log.txt
results.csv enthält die vollständigen Ergebnisse im Format: IP, Port, Gerätetyp, Benutzername, Passwort, Schwachstelleneintrag:
not_vulnerable.csv enthält Geräte, die nicht exponiert sind.
snapshots enthält Snapshots einiger Geräte:
Du kannst dich direkt über den Browser anmelden, um eine Vorschau zu erhalten
Zur Massenansicht bieten wir ein Skript show/show_rtsp/show_all.py an, das jedoch noch einige Probleme hat:
Dieses Tool dient ausschließlich der Sicherheitsprüfung. Jegliche illegale Nutzung ist untersagt. Die Konsequenzen liegen nicht im Verantwortungsbereich unseres Teams.
Thanks to Aiminsun for CVE-2021-36260
Thanks to chrisjd20 for hidvision config file decryptor
Thanks to mcw0 for DahuaConsole