
Strumento di scansione delle vulnerabilità delle webcam | Webcam vulnerability scanning tool
Cinese semplificato | English
Framework di scansione delle vulnerabilità principalmente per telecamere IP. Attualmente integra dispositivi comuni come Hikvision, Dahua, Uniview, D-Link, ecc.
Utilizzare su sistema Linux o Mac, assicurarsi di avere installato Python 3.8 o superiore, possibilmente non usare 3.11 poiché non è molto compatibile con molti pacchetti
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
Installazione completata!
Poiché la configurazione è in ambiente virtuale, prima di ogni esecuzione attiva l'ambiente virtuale con: source venv/bin/activate
Devi preparare un file di destinazione, ad esempio targets.txt, che contenga gli indirizzi IP da scansionare, un target per riga, nel formato seguente:
# 你可以使用井号(#)来进行注释
# 单个的 IP 地址
192.168.0.1
# IP 地址以及要扫描的端口
192.168.0.2:80
# 带 '/' 的IP段
192.168.0.0/16
# 带 '-' 的IP段
192.168.0.0-192.168.255.255
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹
Altrimenti, per impostazione predefinita vengono scansionate solo le porte comuni (definite in Ingram/config.py). Per scansionare altre porte in blocco, specificarle, ad esempio:
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹 -p 80 81 8000
-t in base alla configurazione della macchina e alla velocità della rete:python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹 -t 500
Supporta il ripristino da interruzioni, ma non registra lo stato corrente in tempo reale, solo a intervalli, quindi non può riprendere esattamente lo stato precedente. Se la scansione viene interrotta per rete o anomalie, è possibile riprendere ripetendo l'ultimo comando di scansione.
Tutti i parametri:
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
Possiamo utilizzare un potente scanner di porte per ottenere host attivi, restringendo così l'ambito di scansione di Ingram e aumentando la velocità. Il metodo consiste nel formattare il file dei risultati dello scanner di porte nel formato ip:porta e usarlo come input per Ingram.
Ecco un semplice esempio con masscan (i dettagli di masscan non vengono trattati qui). Per prima cosa, scansiona gli host con porte 80 o 8000-8008 attive: masscan -p80,8000-8008 -iL 目标文件 -oL 结果文件 --rate 8000
Dopo che masscan è terminato, prepara il file dei risultati: grep 'open' 结果文件 | awk '{printf"%s:%s\n", $4, $3}' > targets.txt
Successivamente scansiona questi host: python run_ingram.py -i targets.txt -o out
run_ingram.py:# wechat
config.set_val('WXUID', '这里写uid')
config.set_val('WXTOKEN', '这里写token')
.
├── not_vulnerable.csv
├── results.csv
├── snapshots
└── log.txt
results.csv contiene i risultati completi nel formato: ip, porta, tipo dispositivo, nome utente, password, vulnerabilità:
not_vulnerable.csv contiene i dispositivi non vulnerabili.
snapshots contiene gli screenshot di alcuni dispositivi:
Si può accedere direttamente tramite browser per l'anteprima
Per visualizzare in blocco, abbiamo fornito uno script show/show_rtsp/show_all.py, ma presenta alcuni problemi:
Questo strumento è solo per test di sicurezza, è severamente vietato l'uso illegale, il team non è responsabile delle conseguenze.
Grazie a Aiminsun per CVE-2021-36260
Grazie a chrisjd20 per il decodificatore del file di configurazione di Hikvision
Grazie a mcw0 per DahuaConsole