← retour aux outils back to tools

# ike-scan

Scanner et fingerprinter IKE/IPSec VPN. Découvre et identifie les hôtes IKE (Internet Key Exchange) utilisés dans les implémentations VPN IPSec, en identifiant le vendeur, le mode et les transforms supportés. IKE/IPSec VPN scanner and fingerprinter. Discovers and fingerprints IKE (Internet Key Exchange) hosts used in IPSec VPN implementations, identifying vendor, mode, and supported transforms.

↗ https://github.com/royhills/ike-scan

## Overview

ike-scan discovers IPSec VPN gateways and fingerprints them by analyzing IKE handshake responses. It identifies the VPN vendor, supported encryption algorithms, authentication methods, and whether aggressive mode is enabled — which can leak the preshared key hash.

## Basic Usage

Scan a single host

    ike-scan 10.10.10.1

Scan multiple hosts

    ike-scan 10.10.10.1 10.10.10.2 192.168.1.1

Scan with aggressive mode (may reveal PSK hash)

    ike-scan --aggressive -M 10.10.10.1

Show transform payloads

    ike-scan -M 10.10.10.1

## Discovery and Fingerprinting

Verbose output — full transform details

    ike-scan -v 10.10.10.1

Identify VPN vendor from fingerprint

    ike-scan --showbackoff --multiline 10.10.10.1

Test specific transforms

    ike-scan --trans=5,2,1,2 10.10.10.1

→ (Enc=3DES, Hash=SHA1, Auth=PSK, DH=2)

    ike-scan --trans=1,1,1,1 10.10.10.1   # DES, MD5, PSK, DH1

    ike-scan --trans=5,2,1,2 10.10.10.1   # 3DES, SHA1, PSK, DH2

    ike-scan --trans=7/256,2,1,2 10.10.10.1  # AES-256, SHA1, PSK, DH2

## Aggressive Mode PSK Capture

Aggressive mode with ID — captures PSK hash

    ike-scan --aggressive -M --id=vpn-user 10.10.10.1

    # Try common group names
    ike-scan --aggressive -M --id=vpn 10.10.10.1
    ike-scan --aggressive -M --id=cisco 10.10.10.1
    ike-scan --aggressive -M --id=default 10.10.10.1

The PSK hash from aggressive mode can be cracked with ikecrack or psk-crack

    psk-crack -d /usr/share/wordlists/rockyou.txt ike-hash.txt

## Subnet Scanning

    # Scan a /24 for IKE hosts
    for i in $(seq 1 254); do
      ike-scan -q 10.10.10.$i &
    done | grep "1 returned"

Better: use a file of targets

    ike-scan -f targets.txt

Filter for hosts that respond

    ike-scan 10.10.10.0/24 2>/dev/null | grep "1 returned handshake"

## Options Reference

    -M              Multi-line output (show all transforms)
    --aggressive    Use IKE aggressive mode
    --id=NAME       Identity for aggressive mode
    --trans=T       Specify transform (enc,hash,auth,dh)
    --showbackoff   Show backoff fingerprinting
    --sport=PORT    Source port (default: 500)
    --dport=PORT    Destination port (default: 500)
    -v              Verbose
    -f FILE         Read targets from file

## Tips

- If main mode returns nothing, try aggressive mode — some VPNs only support one
- Aggressive mode PSK hashes are crackable offline — very valuable finding
- Vendor fingerprinting helps identify exploitable VPN implementations (Cisco, Checkpoint, etc.)
- Port 500/UDP for IKEv1, 4500/UDP for NAT-T — scan both
- Failed transforms in main mode indicate the supported transform list

Help / Man page

    ike-scan [options] host [host...]

    -M          Multi-line output
    --aggressive Use aggressive mode
    --id=ID     IKE identity for aggressive mode
    --trans=T   Transform: enc,hash,auth,dh
    --sport=N   Source UDP port (default: 500)
    --dport=N   Destination UDP port (default: 500)
    --showbackoff Fingerprint by backoff
    -v          Verbose
    -d          Debug
    -f FILE     Read hosts from file

## Vue d’ensemble

ike-scan découvre les passerelles VPN IPSec et les identifie en analysant les réponses du handshake IKE. Il identifie le vendeur du VPN, les algorithmes de chiffrement supportés, les méthodes d’authentification, et si le mode agressif est activé (ce qui peut divulguer le hash de la clé pré-partagée).

## Utilisation de base

    # Scanner un seul hôte
    ike-scan 10.10.10.1

    # Scanner plusieurs hôtes
    ike-scan 10.10.10.1 10.10.10.2 192.168.1.1

    # Scanner en mode agressif (peut révéler le hash PSK)
    ike-scan --aggressive -M 10.10.10.1

    # Afficher les transform payloads
    ike-scan -M 10.10.10.1

## Découverte et fingerprinting

    # Sortie verbeuse : détails complets des transforms
    ike-scan -v 10.10.10.1

    # Identifier le vendeur VPN à partir du fingerprint
    ike-scan --showbackoff --multiline 10.10.10.1

    # Tester des transforms spécifiques
    ike-scan --trans=5,2,1,2 10.10.10.1

→ (Enc=3DES, Hash=SHA1, Auth=PSK, DH=2)

    ike-scan --trans=1,1,1,1 10.10.10.1   # DES, MD5, PSK, DH1
    ike-scan --trans=5,2,1,2 10.10.10.1   # 3DES, SHA1, PSK, DH2
    ike-scan --trans=7/256,2,1,2 10.10.10.1  # AES-256, SHA1, PSK, DH2

## Capture de PSK en mode agressif

    # Mode agressif avec ID : capture le hash PSK
    ike-scan --aggressive -M --id=vpn-user 10.10.10.1

    # Essayer des noms de groupe courants
    ike-scan --aggressive -M --id=vpn 10.10.10.1
    ike-scan --aggressive -M --id=cisco 10.10.10.1
    ike-scan --aggressive -M --id=default 10.10.10.1

    # Le hash PSK issu du mode agressif peut être cassé avec ikecrack ou psk-crack
    psk-crack -d /usr/share/wordlists/rockyou.txt ike-hash.txt

## Scan de sous-réseau

    # Scanner un /24 à la recherche d'hôtes IKE
    for i in $(seq 1 254); do
      ike-scan -q 10.10.10.$i &
    done | grep "1 returned"

    # Mieux : utiliser un fichier de cibles
    ike-scan -f targets.txt

    # Filtrer les hôtes qui répondent
    ike-scan 10.10.10.0/24 2>/dev/null | grep "1 returned handshake"

## Référence des options

    -M              Multi-line output (show all transforms)
    --aggressive    Use IKE aggressive mode
    --id=NAME       Identity for aggressive mode
    --trans=T       Specify transform (enc,hash,auth,dh)
    --showbackoff   Show backoff fingerprinting
    --sport=PORT    Source port (default: 500)
    --dport=PORT    Destination port (default: 500)
    -v              Verbose
    -f FILE         Read targets from file

## Conseils

- Si le mode principal ne renvoie rien, essayer le mode agressif : certains VPN ne supportent qu’un seul mode
- Les hashs PSK du mode agressif sont cassables hors ligne : une découverte très précieuse
- Le fingerprinting du vendeur aide à identifier les implémentations VPN exploitables (Cisco, Checkpoint, etc.)
- Port 500/UDP pour IKEv1, 4500/UDP pour le NAT-T : scanner les deux
- Les transforms échoués en mode principal indiquent la liste des transforms supportés

Aide / Page de manuel

    ike-scan [options] host [host...]

    -M          Multi-line output
    --aggressive Use aggressive mode
    --id=ID     IKE identity for aggressive mode
    --trans=T   Transform: enc,hash,auth,dh
    --sport=N   Source UDP port (default: 500)
    --dport=N   Destination UDP port (default: 500)
    --showbackoff Fingerprint by backoff
    -v          Verbose
    -d          Debug
    -f FILE     Read hosts from file