
Инструмент сканирования уязвимостей веб-камер | Инструмент сканирования уязвимостей веб-камер
简体中文 | English
Фреймворк для сканирования уязвимостей, ориентированный в первую очередь на IP-камеры. В настоящее время поддерживаются устройства Hikvision, Dahua, Uniview, D-Link и другие распространённые модели.
Используйте на Linux или Mac. Убедитесь, что установлен Python версии 3.8 или выше. По возможности избегайте версии 3.11, так как совместимость со многими пакетами оставляет желать лучшего.
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
На этом установка завершена!
Поскольку настройка производилась в виртуальном окружении, перед каждым запуском активируйте его: source venv/bin/activate
Вам потребуется файл с целями, например targets.txt. В нём сохраняются IP-адреса для сканирования, по одному адресу на строку. Поддерживаемые форматы:
# Для комментариев используйте символ решётки (#)
# Отдельный IP-адрес
192.168.0.1
# IP-адрес и порт для сканирования
192.168.0.2:80
# Подсеть с '/'
192.168.0.0/16
# Диапазон '-'
192.168.0.0-192.168.255.255
python3 run_ingram.py -i ваш_файл_с_целями -o выходная_папка
target.txt для цели указан порт (например, 192.168.6.6:8000), будет сканироваться порт 8000 этой цели.В противном случае по умолчанию сканируются только распространённые порты (определены в Ingram/config.py). Для массового сканирования других портов укажите их явно, например:
python3 run_ingram.py -i ваш_файл_с_целями -o выходная_папка -p 80 81 8000
-t в зависимости от конфигурации машины и скорости сети:python3 run_ingram.py -i ваш_файл_с_целями -o выходная_папка -t 500
Поддерживается восстановление после прерывания. Однако текущее состояние фиксируется не в реальном времени, а через определённые интервалы, поэтому точное восстановление последнего состояния невозможно. Если сканирование прервалось из-за сети или ошибки, просто повторите предыдущую команду сканирования.
Все параметры:
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
Для обнаружения активных хостов можно использовать мощный сканер портов, что позволит сократить область сканирования Ingram и повысить скорость работы. Для этого приведите результат работы сканера портов к формату ip:port и передайте его как входной файл для Ingram.
Пример с masscan (подробное описание masscan здесь не приводится). Сначала отсканируйте хосты с открытыми портами 80 или 8000-8008: masscan -p80,8000-8008 -iL файл_с_целями -oL файл_результатов --rate 8000
После завершения masscan обработайте файл результатов: grep 'open' файл_результатов | awk '{printf"%s:%s\n", $4, $3}' > targets.txt
Затем запустите Ingram на этих хостах: 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 содержит полные результаты в формате: ip, порт, тип устройства, имя пользователя, пароль, запись об уязвимости:
not_vulnerable.csv содержит устройства, которые не были скомпрометированы.
snapshots содержит снимки экрана некоторых устройств:
Вы можете просматривать видео, войдя в браузер
Для массового просмотра мы предоставили скрипт show/show_rtsp/show_all.py, однако у него есть некоторые проблемы:
Данный инструмент предназначен исключительно для тестирования безопасности. Запрещается использовать его в нелегальных целях. Авторы не несут ответственности за любые последствия, вызванные его использованием.
Thanks to Aiminsun for CVE-2021-36260
Thanks to chrisjd20 for hidvision config file decryptor
Thanks to mcw0 for DahuaConsole