
Preuve de concept de CVE-1999-0524
╔══════════════════════════════════════════════════════════════════╗
║ ██╗ ██████╗███╗ ███╗██████╗ ████████╗███████╗ ║
║ ██║██╔════╝████╗ ████║██╔══██╗ ██╔══╝██╔════╝ ║
║ ██║██║ ██╔████╔██║██████╔╝ ██║ ███████╗ ║
║ ██║██║ ██║╚██╔╝██║██╔═══╝ ██║ ╚════██║ ║
║ ██║╚██████╗██║ ╚═╝ ██║██║ ██║ ███████║ ║
║ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝ ║
╠══════════════════════════════════════════════════════════════════╣
║ CVE-1999-0524 · Scanner de requête/réponse d'horodatage ICMP ║
║ Auteur : Muhamad Bion Tadavi — VPSI ║
║ Org : Vantage Point Security — Usage autorisé uniquement ║
╚══════════════════════════════════════════════════════════════════╝
Scanner ICMP d'horodatage rapide et multi-threadé avec sortie hexadécimale colorée et analyse détaillée des horodatages.
Détecte les hôtes vulnérables à la CVE-1999-0524 (divulgation d'informations d'horodatage ICMP) en envoyant des paquets ICMP Type 13 (Demande d'horodatage). Les hôtes qui répondent par ICMP Type 14 (Réponse d'horodatage) sont marqués comme vulnérables — ils divulguent leur horloge système interne, ce qui facilite l'empreinte des appareils et l'enchaînement d'attaques temporelles.
Construit sans dépendances externes — stdlib Python pure.
| Champ | Valeur |
|---|---|
| ID CVE | CVE-1999-0524 |
| CWE | CWE-200 — Exposition d'informations sensibles |
| CVSS v3 | 0.0 (Faible) |
| Type | Divulgation d'informations |
| Protocole | ICMP Type 13 / Type 14 |
| Affecté | Cisco IOS, Cisco ASA, Linux, Windows (selon configuration) |
Attaquant Cible
│ │
│──── ICMP Type 13 (Demande d'horodatage) ──▶│
│ │ [hôte traite la demande]
│◀─── ICMP Type 14 (Réponse d'horodatage) ────│
│ │
La réponse contient trois champs d'horodatage 32 bits (ms depuis minuit UTC) :
├── Horodatage d'origine (défini par le demandeur — souvent 0)
├── Horodatage de réception ◀── horloge du serveur divulguée ici
└── Horodatage d'émission ◀── horloge du serveur divulguée ici
| Fonctionnalité | Détail |
|---|---|
| Scan multi-threadé | Sondes parallèles configurables (défaut : 30 threads) |
| Entrée flexible | IP unique · Séparées par virgules · Plage CIDR · Fichier (-t / -f) |
| Hexadécimal coloré | En-tête IP · En-tête ICMP · Octet de type · Horodatages — chacun coloré de façon unique |
| Décodage d'horodatage | Millisecondes brutes décodées en HH:MM:SS.mmm UTC |
| Preuve hexadécimale dans le résumé | Hexadécimal coloré + légende imprimés par hôte vulnérable dans le résumé final |
Vidage hexadécimal complet (-v) | Colonnes décalage + hex + ASCII pour chaque réponse |
Barre de progression (-v) | Barre de progression en direct affichée uniquement en mode verbeux |
| Tableau récapitulatif | Tableau trié des hôtes vulnérables avec TTL, RTT et heure serveur |
| Zéro dépendance | Stdlib Python pure — pas besoin de pip install |
python3 --version # doit être 3.8+
git clone https://github.com/<votre-nom-utilisateur>/CVE-1999-0524-ICMP-Timestamp-Scanner.git
cd CVE-1999-0524-ICMP-Timestamp-Scanner
chmod +x icmp_timestamp_scan.py
sudo python3 icmp_timestamp_scan.py [OPTIONS]
Options :
-t, --target IP, IP séparées par des virgules ou CIDR (saisie terminale)
-f, --file Chemin vers un fichier avec une IP/CIDR par ligne
--timeout SECS Secondes d'attente par hôte (défaut : 2.0)
--threads N Threads concurrents (défaut : 30)
-v, --verbose Affiche la barre de progression + vidage hexadécimal complet par hôte
-h, --help Affiche l'aide
| Mode | Comportement |
|---|---|
Par défaut (pas de -v) | Résultats imprimés immédiatement à chaque réponse d'hôte — hexadécimal coloré + horodatages par hôte, puis résumé |
Verbeux (-v) | Barre de progression en direct pendant le scan, puis vidage hexadécimal complet par hôte, puis résumé |
# Hôte unique
sudo python3 icmp_timestamp_scan.py -t 192.168.1.1
# Plusieurs hôtes
sudo python3 icmp_timestamp_scan.py -t 192.168.1.1,192.168.1.2,192.168.1.3
# Balayage de sous-réseau CIDR
sudo python3 icmp_timestamp_scan.py -t 192.168.1.0/24
# Depuis un fichier
sudo python3 icmp_timestamp_scan.py -f hosts.txt
# Verbeux — barre de progression + vidage hexadécimal complet
sudo python3 icmp_timestamp_scan.py -f hosts.txt -v
# Scan large rapide
sudo python3 icmp_timestamp_scan.py -t 10.0.0.0/16 --threads 100 --timeout 1
hosts.txt# Une IP ou CIDR par ligne. Les lignes commençant par # sont ignorées.
192.168.1.1
192.168.1.2
192.168.1.3
10.0.0.1
10.0.0.2
10.0.0.0/24
-v) [*] Cibles : 4 hôtes
[*] Timeout : 2.0s | Threads : 30
[*] Début : 2026-07-14 06:37:25 UTC
[*] Sonde : ICMP Type 13 (Demande d'horodatage)
[*] Attendu : ICMP Type 14 (Réponse d'horodatage) des hôtes vulnérables
╔══ VULNÉRABLE ════════════════════════════════════════════╗
║ Hôte : 192.168.1.1
║ Type ICMP : 14 — Réponse d'horodatage (Type 13 envoyé)
║ TTL : 59
║ RTT : 1.84 ms
║ ── Horodatages (ms depuis minuit UTC) ────────────────
║ Origine : 0 ms → 00:00:00.000 (non défini)
║ Réception : 22 974 518 ms → 06:22:54.518 UTC
║ Émission : 22 974 518 ms → 06:22:54.518 UTC ← heure serveur
║ ── Réponse brute (hex) ───────────────────────────────
║ 45 48 00 28 14 76 00 00 3b 01 2d 93 c0 a8 01 01 c0 a8 01 64 0e 00 f9 15 ...
║ Légende : ██=en-tête IP ██=en-tête ICMP ██=type ICMP 14 ██=horodatages
╚══════════════════════════════════════════════════════════╝
[-] 192.168.1.2 pas de réponse (filtré ou non vulnérable)
╔══ VULNÉRABLE ════════════════════════════════════════════╗
║ Hôte : 192.168.1.3
║ TTL : 59 | RTT : 2.11 ms
║ Émission : 22 977 926 ms → 06:22:57.926 UTC ← heure serveur
╚══════════════════════════════════════════════════════════╝
══════════════════════════════════════════════════════════════════
RÉSUMÉ DU SCAN
══════════════════════════════════════════════════════════════════
Heure du scanneur : 2026-07-14 13:37:25 WIB (06:37:25 UTC)
Total sondés : 4
Vulnérables : 2
Pas de réponse : 2
Erreurs : 0