
Herramienta de escaneo de vulnerabilidades de cámara web | Webcam vulnerability scanning tool
Chino simplificado | English
Marco de escaneo de vulnerabilidades principalmente para cámaras de red, actualmente integrado con dispositivos comunes como Hikvision, Dahua, Uniview, D-Link, etc.
Utilícelo en sistemas Linux o Mac, asegúrese de tener instalada la versión 3.8 o superior de Python, trate de no usar la 3.11, ya que la compatibilidad con muchos paquetes no es buena
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
¡Instalación completa!
Dado que está configurado en un entorno virtual, antes de ejecutar, active el entorno virtual: source venv/bin/activate
Debe preparar un archivo de destino, por ejemplo targets.txt, que contenga las direcciones IP que desea escanear, un objetivo por línea, con el siguiente formato:
# Puede usar el símbolo de numeral (#) para comentar
# Dirección IP individual
192.168.0.1
# Dirección IP y puerto a escanear
192.168.0.2:80
# Rango de IP con '/'
192.168.0.0/16
# Rango de IP con '-'
192.168.0.0-192.168.255.255
python3 run_ingram.py -i You want to scan file -o Output folder
(Note: The original Chinese text inside the code block is "你要扫描的文件" and "输出文件夹". Since the rule says NEVER translate code, I must keep them exactly as in the input: python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹. So I will restore the original code block exactly. Let me correct.)
Actually, the input is:
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹
I will preserve that exactly. Similarly for all code blocks. So I must not change any character inside code fences. I made a mistake; I should not have translated those. Let me revert.
The correct approach: copy the code blocks exactly from the input. So for the execution example, the code block is:
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹
Preserve that.
Similarly, the port example:
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹 -p 80 81 8000
Preserve.
The -t example:
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹 -t 500
Preserve.
The masscan commands: preserve exactly as in input.
Thus, I will adjust.
Also, the line after "所有参数:" is a code block with the optional arguments. That is in English already, so no change.
Now, for the "端口扫描器" section, the commands:
masscan -p80,8000-8008 -iL 目标文件 -oL 结果文件 --rate 8000
and
grep 'open' 结果文件 | awk '{printf"%s:%s\n", $4, $3}' > targets.txt
Preserve exactly.
Now, let's produce the final translation with corrections.
I need to ensure all natural language is translated, but code blocks remain as they are.
Also, in the "开发计划" section, the checkboxes are markdown, preserve.
Finally, the footer image: translate alt and title. Let's do that:
[](https://dartnode.com "Desarrollado por DartNode - VPS gratuito para código abierto")
But note: the original alt and title are in English. The instruction says for HTML blocks (img) with alt/title, translate if natural language. So I will translate. However, the rule for shield badges says preserve verbatim, but this is not a shield badge. So translate.
Now, finalize.
Chino simplificado | English
Marco de escaneo de vulnerabilidades principalmente para cámaras de red, actualmente integrado con dispositivos comunes como Hikvision, Dahua, Uniview, D-Link, etc.
Utilícelo en sistemas Linux o Mac, asegúrese de tener instalada la versión 3.8 o superior de Python, trate de no usar la 3.11, ya que la compatibilidad con muchos paquetes no es buena
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
¡Instalación completa!
Dado que está configurado en un entorno virtual, antes de ejecutar, active el entorno virtual: source venv/bin/activate
Debe preparar un archivo de destino, por ejemplo targets.txt, que contenga las direcciones IP que desea escanear, un objetivo por línea, con el siguiente formato:
# Puede usar el símbolo de numeral (#) para comentar
# Dirección IP individual
192.168.0.1
# Dirección IP y puerto a escanear
192.168.0.2:80
# Rango de IP con '/'
192.168.0.0/16
# Rango de IP con '-'
192.168.0.0-192.168.255.255
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹
De lo contrario, por defecto solo se escanean los puertos comunes (definidos en Ingram/config.py). Para escanear otros puertos en lote, debe especificarlos, por ejemplo:
python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹 -p 80 81 8000
-t:python3 run_ingram.py -i 你要扫描的文件 -o 输出文件夹 -t 500
Admite reanudación de interrupción, pero no registra el estado de ejecución actual en tiempo real, sino a intervalos, por lo que no se puede restaurar exactamente al estado anterior. Si el escaneo se interrumpe debido a la red o una anomalía, puede continuar el escaneo ejecutando nuevamente el último comando de escaneo.
Todos los parámetros:
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
Podemos usar un potente escáner de puertos para obtener hosts activos, reduciendo así el rango de escaneo de Ingram y mejorando la velocidad. La práctica es organizar el archivo de resultados del escáner de puertos en el formato ip:port y usarlo como entrada para Ingram.
Aquí se muestra un ejemplo simple con masscan (no se detalla el uso de masscan). Primero, use masscan para escanear hosts vivos en los puertos 80 o 8000-8008: masscan -p80,8000-8008 -iL 目标文件 -oL 结果文件 --rate 8000
Después de ejecutar masscan, organice el archivo de resultados: grep 'open' 结果文件 | awk '{printf"%s:%s\n", $4, $3}' > targets.txt
Luego escanee estos hosts: python run_ingram.py -i targets.txt -o out
run_ingram.py:# wechat
config.set_val('WXUID', 'aquí el uid')
config.set_val('WXTOKEN', 'aquí el token')
.
├── not_vulnerable.csv
├── results.csv
├── snapshots
└── log.txt
results.csv contiene los resultados completos, con el formato: ip,puerto,tipo_de_dispositivo,usuario,contraseña,entrada_de_vulnerabilidad:
not_vulnerable.csv contiene los dispositivos no expuestos
snapshots contiene capturas de algunos dispositivos:
Se puede iniciar sesión a través del navegador para previsualizar
Si desea ver en lote, proporcionamos un script show/show_rtsp/show_all.py, pero tiene algunos problemas:
Esta herramienta es solo para pruebas de seguridad. Está estrictamente prohibido su uso con fines ilegales. El equipo no se hace responsable de las consecuencias.
Thanks to Aiminsun for CVE-2021-36260
Thanks to chrisjd20 for hidvision config file decryptor
Thanks to mcw0 for DahuaConsole