Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ike-scan — The IKE Scanner | Kitploit
ツール/GitHubGitHub/royhills/ike-scan
パスワードクラッキング偵察脆弱性スキャナー脆弱性分析情報収集ネットワークセキュリティペネトレーションテスト
GitHubroyhills/ike-scan

ike-scan

The IKE Scanner

リポジトリを見る
4206351年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ike-scan

Build Coverage Status CodeQL

IKEホスト(IPsec VPNサーバ)の発見とフィンガープリント取得

目次

  • ビルドとインストール
  • 概要
  • 使い方
  • 実装の詳細
    • ホスト入力とメモリ要件
    • レート制限
    • クッキー生成とリモートホスト識別
    • IKEパケットの詳細
    • バックオフフィンガープリント
  • プログラムの出力
  • 例
  • 対応プラットフォーム
  • 参考資料とRFC
  • 連絡先

ビルドとインストール

ike-scanは標準のGNU autoconfおよびautomakeツールを使用しているため、インストールは通常の手順となります。

  • git clone https://github.com/royhills/ike-scan.git を実行してプロジェクトのソースコードを取得します
  • cd ike-scan を実行してソースディレクトリに移動します
  • autoreconf --install を実行して有効な ./configure ファイルを生成します
  • ./configure または ./configure --with-openssl を実行してOpenSSLライブラリを使用します
  • make を実行してプロジェクトをビルドします
  • make check を実行してすべてが正しく動作することを確認します
  • make install を実行してインストールします(この部分にはrootまたはsudoが必要です)

事前共有鍵の解読を行う予定がある場合は、組み込みのハッシュ関数より通常高速なOpenSSLのハッシュ関数を使用するようike-scanを設定することをお勧めします。これを行うには、OpenSSLのインクルードファイルとライブラリがインストールされていることを確認し、./configure --with-openssl としてconfigureを実行してください。OpenSSLを使用するかどうかはike-scanの機能に影響しません。psk-crackによる事前共有鍵解読の速度のみが変わります。

一部のオペレーティングシステムではOpenSSLのヘッダとライブラリがデフォルトでインストールされますが、他のOSではオプションパッケージのインストールが必要です。例えばDebian Linuxではlibssl-devパッケージをインストールする必要があります。あるいは、http://www.openssl.org/ からOpenSSLのtarballをダウンロードしてインストールすることもできます。

ほとんどの最新のUnix系OSでビルドできるはずです。Cygwinを使用すればWindowsでも動作し、cygwin1.dllが存在すればスタンドアロンのWindows実行ファイルとしても使用できます。

Windows-32バイナリパッケージを使用する場合は、Windowsプラットフォームで実行する際の違いについて説明したREADME-WIN32ファイルもお読みください。

このプログラムは、Linux、FreeBSD、OpenBSD、NetBSD、Win32/Cygwin、Solaris、MacOS X、HP Tru64、HP-UX、SCO OpenServerでビルドおよび実行できることが確認されています。詳細については、以下の「対応プラットフォーム」セクションを参照してください。

概要

ike-scanはIKEホストを発見し、再送バックオフパターンを使用してフィンガープリントを取得することもできます。

ike-scanは以下の機能を実行できます。

  • 発見 指定されたIP範囲内のどのホストがIKEを実行しているかを特定します。ike-scanが送信したIKE要求に応答したホストを表示することで行います。
  • フィンガープリント ホストが使用しているIKE実装を特定し、場合によっては実行中のソフトウェアのバージョンも判別します。これは2つの方法で行われます。1つ目はUDPバックオフフィンガープリントで、ターゲットホストからのIKE応答パケットの時間を記録し、観測された再送バックオフパターンと既知のパターンを比較します。2つ目はベンダーIDフィンガープリントで、VPNサーバからのベンダーIDペイロードを既知のベンダーIDパターンと比較します。
  • トランスフォーム列挙 VPNサーバがIKEフェーズ1でサポートするトランスフォーム属性(例:暗号化アルゴリズム、ハッシュアルゴリズムなど)を特定します。
  • ユーザー列挙 一部のVPNシステムでは、有効なVPNユーザー名を発見します。
  • 事前共有鍵解読 IKEアグレッシブモードと事前共有鍵認証に対するオフラインの辞書攻撃またはブルートフォースパスワード解読を実行します。これにはike-scanでハッシュやその他のパラメータを取得し、psk-crack(ike-scanパッケージの一部)で解読を行います。

再送バックオフフィンガープリントの概念については、ike-scanキットに含まれているUDPバックオフフィンガープリント文書(UDP Backoff Fingerprinting Paper)で詳しく説明されています。

このプログラムは、指定されたホストにIKEフェーズ1(メインモードまたはアグレッシブモード)の要求を送信し、受信した応答を表示します。パケット損失に対処するため、バックオフを伴う再試行と再送を処理します。また、送信IKEパケットによる帯域幅の使用量を制限します。

IKEはInternet Key Exchangeプロトコルであり、IPsecで使用される鍵交換および認証の仕組みです。最新のVPNシステムのほとんどはIPsecを実装しており、IPsec VPNの大多数がIKEを鍵交換に使用しています。メインモードはIKE交換のフェーズ1で定義されたモードの1つです(もう1つの定義済みモードはアグレッシブモードです)。RFC 2409のセクション5ではメインモードの実装が必須とされているため、すべてのIKE実装がメインモードをサポートしていると期待できます。多くはアグレッシブモードもサポートしています。

使い方

現在の使用法情報を表示するには、ike-scanバイナリを次のように実行します。ike-scan -h

Additional documentation is provided on the NTA Monitor Wiki

To report bugs or suggest new features, please create a GitHub issue.

Implementation Details

Host Input and Memory Requirements

The hosts to scan can be specified on the command line or read from an input file using the --file=<fn> option. The program can cope with large numbers of hosts limited only by the amount of memory needed to store the list of host_entry structures. Each host_entry structure requires 45 bytes on a 32-bit system, so a class B network (65534 hosts) would require about 2.8 MB for the list. The hosts can be specified as either IP addresses or hostnames, however the program will store all hosts internally as IP addresses and will only display IP addresses in the output (ike-scan calls gethostbyname(3) to determine the IP address of each host, but this can be disabled with the --nodns option).

Rate Limiting

The program limits the rate at which it sends IKE packets to ensure that it does not overload the network connection. By default it uses an outbound data rate of 56000 bits per second. This can be changed with the --bandwidth option.

If you want to send packets at a specific rate, you can use the --interval option.

Cookie Generation and Remote Host Identification

ike-scan generates unique IKE cookies for each host, and it uses these cookies to determine which host the response packets belong to. Note that it does not rely on the source IP address of the response packets because it is possible for a response packet to be sent from a different IP address than it was originally sent to. See the PROGRAM OUTPUT section for an example of this.

The cookies are generated by taking the first 64 bits of an MD5 hash of the current time in seconds and microseconds as returned by gettimeofday(), the unique host number, and the host IP address. This ensures that the cookies are unique with a reasonable degree of certainty.

If --verbose is in effect, any packets that are received with cookies that do not match will result in a message like:

Ignoring 84 bytes from 172.16.2.2 with unknown cookie 195c837e5a39f657 --verbose が有効でない場合、そのようなパケットは黙って無視されます。

このタイプのクッキーの不一致は、以下の原因で発生する可能性があります:

  • ホストが以前の ike-scan 実行に対する IKE 応答をまだ返している。
  • パケットが IKE パケットでないか、何らかの方法で破損している。
  • ike-scan とは無関係の IKE パケットを受信した。

IKE パケットの詳細

送信されるメインモードパケットには、ISAKMP ヘッダーと SA ペイロードが含まれます。SA ペイロードには単一の提案が含まれ、その提案には以下で詳述するように可変数のトランスフォームを含めることができます。

デフォルトでは、SA 提案には 8 つのトランスフォームが含まれます。これらの 8 つのトランスフォームは、以下のすべての組み合わせを表します:

  • 暗号化アルゴリズム: DES-CBC および 3DES-CBC;
  • ハッシュアルゴリズム: MD5 および SHA-1; および
  • DH グループ: 1 (MODP 768) および 2 (MODP 1024).

デフォルトのトランスフォームセットを使用して ike-scan によって送信されるメインモードパケットの tcpdump 出力例を以下に示します。これは 8 つのトランスフォームと、それらが送信される順序を示しています:

root@kitploit:~
16:57:16.024536 192.168.124.8.500 > 172.16.2.2.500:  [udp sum ok]isakmp 1.0 msgid 00000000: phase 1 I ident:
  (sa: doi=ipsec situation=identity
    (p: #1 protoid=isakmp transform=8
      (t: #1 id=ike (type=enc value=3des)(type=hash value=sha1)(type=auth value=preshared)(type=group desc value=modp1024)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #2 id=ike (type=enc value=3des)(type=hash value=md5)(type=auth value=preshared)(type=group desc value=modp1024)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #3 id=ike (type=enc value=1des)(type=hash value=sha1)(type=auth value=preshared)(type=group desc value=modp1024)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #4 id=ike (type=enc value=1des)(type=hash value=md5)(type=auth value=preshared)(type=group desc value=modp1024)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #5 id=ike (type=enc value=3des)(type=hash value=sha1)(type=auth value=preshared)(type=group desc value=modp768)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #6 id=ike (type=enc value=3des)(type=hash value=md5)(type=auth value=preshared)(type=group desc value=modp768)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #7 id=ike (type=enc value=1des)(type=hash value=sha1)(type=auth value=preshared)(type=group desc value=modp768)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080))
      (t: #8 id=ike (type=enc value=1des)(type=hash value=md5)(type=auth value=preshared)(type=group desc value=modp768)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080)))) (DF) (ttl 64, id 0, len 364)```

このデフォルトのトランスフォームセットは、ほとんどの IKE 実装で受け入れ可能になるように設計されています。ほとんどの実装は、提供されたトランスフォームのうち少なくとも 1 つを受け入れます。ただし、異なる認証方法(事前共有鍵が最も一般的ですが、常にサポートされているわけではありません)を使用する必要がある場合があり、また 256 ビット AES などの異なる暗号を指定する必要がある場合もあります。さらにまれに、ライフタイムを変更する必要があるかもしれません。最後に、一部の実装では、応答する前にクライアントが特定の「Vendor ID」文字列を送信する必要があります。これは --vendor オプションで指定できます。

デフォルトのトランスフォームセットでは、パケットデータ長は 336 バイトになり、IP ヘッダーと UDP ヘッダーを追加すると、合計パケットサイズは 364 バイトになります。

認証方法は --auth (デフォルトは 1 - 事前共有鍵) で指定でき、IKE ライフタイムは秒単位で --lifetime (デフォルトは RFC 2407 推奨の 28800 秒または 8 時間) で指定できます。--lifetime を 0 に指定すると、トランスフォームペイロードにライフタイム属性は含まれません。カスタムトランスフォームを指定する場合、このオプションを複数回使用して、異なるライフタイムを持つトランスフォームペイロードを生成できます。各 --trans オプションは、以前に指定されたライフタイム値を使用します。

カスタムトランスフォームセットは --trans=e[/l],h,a,g で指定できます。ここで "e" は暗号化アルゴリズム、"l" は可変長暗号の鍵長、"h" はハッシュアルゴリズム、"a" は認証方法、"g" は DH グループです。これらは数値で指定します。使用する値の詳細については、RFC 2409 付録 A を参照してください。

例: --trans=5,2,1,2 は次のように指定します:Enc=5 (3DES-CBC), Hash=2 (SHA1), Auth=1 (shared key), DH Group=2 (modp 1024)

and --trans=7/256,1,1,5 specifies: Enc=7 (AES), Keylen=256 bits, Hash=MD5, Auth=shared key, DH Group=5 (modp 1536) You can use the --trans option more than once to send an arbitrary number of custom transforms in the proposal.

Specifying a custom transform set overrides any authentication method specified with --auth. However, it still uses the lifetime value specified in the last --lifetime option.

An example of a complex custom transform set is:--trans=5,2,1,2 --lifetime=0 --trans=7/256,1,3,5 --lifetime=600 --trans=7/128,1,3,5

This would specify the following three transforms:

  • 3DES Encryption with SHA1 hash, shared key authentication, DH group 2, and the default lifetime;
  • 256-bit AES Encryption with MD5 hash, RSA authentication, DH group 5, and no lifetime; and
  • 128-bit AES Encryption with MD5 hash, RSA authentication, DH group 5, and lifetime of 600 second.

If a custom transform set is specified, the packet length will differ from the default. Fewer than 8 transforms will make it smaller, and more than 8 transforms will make it larger. If the packet size exceeds the MTU, then it will be fragmented. You may need to increase the --interval setting for large packets to avoid overloading your network connection. Some VPN servers may ignore very long packets.

A custom transform can be useful in the following situations:

  • If none of the transforms in the default transform set is acceptable to the remote IKE implementation;
  • If you know that a particular transform will be acceptable, and you want to minimise bandwidth use or allow faster scanning rates; or
  • If you want to determine exactly which transforms a remote IKE implementation supports for fingerprinting.

The default mode used is Main Mode. However, it is possible to specify Aggressive Mode with the --aggressive option. When this is done, three additional payloads will be included: Key Exchange, Nonce and ID. This will increase the packet size, and you may need to increase --interval to ensure that ike-scan doesn't try to use too much bandwidth as a result. If you use Aggressive Mode, you can also use the following options:

  • --id Set identification value.
  • --idtype Set identification type (Default 3 (ID_USER_FQDN)).
  • --dhgroup Specify Diffie-Hellman group (Default 2 - MODP 1024).

If you use Aggressive Mode, then you can only use one Diffie Hellman group in the transform set. If you specify custom transforms with the --trans option, you should ensure that they all use the same group, and that this group matches the DH group specified with the --dhgroup option, or the default of 2 if --dhgroup is not specified.

IKE hosts may respond in one of two ways:

  • With an IKE main or aggressive mode response packet containing the cookie that was originally sent to the host. This is a "handshake" response and indicates that the host supports IKE and finds our proposal acceptable; or
  • With an IKE notify message containing the cookie that was originally sent to the host. This is a "notify" response and indicates that the host is running IKE, but does not accept our proposal.

An example tcpdump output for a "handshake" response is:

root@kitploit:~
16:57:48.068698 172.16.2.2.500 > 192.168.124.8.500:  [udp sum ok]isakmp 1.0 msgid 00000000: phase 1 R ident:
  (sa: doi=ipsec situation=identity
    (p: #1 protoid=isakmp transform=1
      (t: #1 id=ike (type=enc value=3des)(type=hash value=sha1)(type=auth value=preshared)(type=group desc value=modp1024)(type=lifetype value=sec)(type=lifeduration len=4 value=00007080)))) (ttl 126, id 37891, len 112)

This shows that the IKE host has responded with an ISAKMP header and an SA payload containing a single proposal. This proposal contains a single transform representing the transform chosen from the proposal sent by ike-scan.

An example tcpdump output for a "notify" response is:

root@kitploit:~
17:12:55.038554 192.168.89.22.500 > 192.168.37.1.500:  [udp sum ok]isakmp 1.0 msgid 00000000: phase 1 R inf:
  (n: doi=0 proto=1 type=NO-PROPOSAL-CHOSEN) (ttl 52, id 39577, len 68)

This shows that the IKE host has responded with an ISAKMP header and a notify payload. The notify payload is an informational message with the type "NO-PROPOSAL-CHOSEN".

ike-scan does not respond to any of the IKE responses it receives, so the IKE main mode handshake will never complete. Some IKE implementations do not log handshakes that don't complete; these implementations will not log the scanning and therefore the owners of these systems will not be aware of the scanning. It is possible to use ike-scan to determine if a given implementation will log these scanning attempts if you have access to the system logs.

Backoff Fingerprinting

For those hosts that respond, ike-scan records the times of the received IKE responses. The backoff between IKE responses varies between different IKE implementations and can therefore be used as a fingerprint. The --showbackoff option is used to display the backoff times for each host which responded. Note that using the --showbackoff option will cause ike-scan to wait for 60 seconds after the last received packet to ensure that it has seen all of the responses. This 60 second wait can be altered by specifying a different value in seconds to the --showbackoff option.

When all of the packets have been received, the backoff table is displayed, and the program attempts to match the backoff pattern against the known backoff patterns contained in the text file ike-backoff-patterns. It is possible to add new patterns to this file.

Note that only hosts which respond with a handshake can be fingerprinted by backoff timings; hosts which respond with a notify message cannot. This is because notify messages are only ever sent once and are not subject to retransmission with backoff.

If you discover IKE hosts with backoff patterns which are not recognised by ike-scan, then you are encouraged to submit the pattern and details of the IKE implementation to me so I can incorporate it into future versions of ike-scan. You can do this by opening an issue, or a pull request on github.

Note that any packet loss will prevent the backoff fingerprinting from working because the program needs to see all of the responses.

ike-scan can also be used to fingerprint IKE hosts in other ways. For example:

  • Some systems (such as Checkpoint Firewall-1) allow the use of any source port (e.g. --sport=0) whereas others (e.g. Windows 2000) only respond to IKE requests from source port 500 (actually, Windows 2000 responds to requests from any port, but always sends the responses back to port 500 which amounts to the same thing).
  • Some systems use proprietary notify message codes which allows them to be identified. For example, Checkpoint Firewall-1 4.0, 4.1 and NG Base use notify message code 9101. ike-scan recognises this and will identify the system as "Checkpoint Firewall-1 4.x or NG Base".
  • Different systems support different transforms, and this support can be determined by trying all possible combinations with --trans. Note however, that the user can usually change the transform set, so this cannot be relied upon by itself.
  • Different implementations require different IKE Lifetimes. Some implementations will accept any lifetime, whereas others will only accept lifetimes below a certain value.
  • By using another tool (e.g. tcpdump) to sniff the returned IKE packets, the IP ID and IP TTL can be determined. These can be useful in fingerprinting the IP stack which can help to determine the IKE implementation.
  • The IKE host may send Vendor ID payloads which uniquely identify the implementation. This Vendor ID fingerprinting method was first proposed by Brett Eldridge [email protected]. ike-scan will display any vendor ID payloads that it receives, and will attempt to match these against known Vendor ID patterns.

Program Output

The program output consists of two sections:

  • The IKE host detection section; and
  • The IKE backoff pattern section (if --showbackoff is specified).

The IKE host detection section contains one line for each host that responds. The response can either be a successful handshake or an informational message. Only the first packet returned by any given host is displayed in this section.

Some examples of the IKE host detection section are:

root@kitploit:~
10.0.1.98        IKE Handshake returned (1 transforms)
10.0.1.22        Notify message 14 (NO-PROPOSAL-CHOSEN)
10.0.1.189        (10.0.1.130) Notify message 9101 (No common authentication method with Firewall.)

In the above example output, host 10.0.1.98 has returned an IKE handshake, 10.0.1.22 has returned notify message 14 (decimal) which corresponds to the RFC-defined error message "NO-PROPOSAL-CHOSEN" (see RFC 2408 section 3.14.1), and 10.0.1.189 has returned a non-standard notify message 9101 but the response has come from the IP address 10.0.1.130 rather than the address which the request was sent to (presumably this is a multi-homed system). Notify message 9101 is not defined by RFC 2408, but it is known to be a Checkpoint proprietary notify code (therefore the system is probably Firewall-1) and the program displays the text included in the notify message.

Some examples of the IKE backoff pattern section are:

root@kitploit:~
IP Address      No.     Recv time               Delta Time
172.16.2.2      1       1042549209.247980       0.000000
172.16.2.2      2       1042549211.239254       1.991274
172.16.2.2      3       1042549213.241935       2.002681
172.16.2.2      4       1042549215.244731       2.002796
172.16.2.2      5       1042549217.247512       2.002781
172.16.2.2      6       1042549219.250254       2.002742
172.16.2.2      7       1042549221.253044       2.002790
172.16.2.2      8       1042549225.258551       4.005507
172.16.2.2      9       1042549229.264074       4.005523
172.16.2.2      10      1042549233.269605       4.005531
172.16.2.2      11      1042549237.275145       4.005540
172.16.2.2      12      1042549241.280654       4.005509
172.16.2.2      Implementation guess: Firewall-1 4.1/NG

IP Address      No.     Recv time               Delta Time
10.0.1.98        1       1042549209.426540       0.000000
10.0.1.98        2       1042549224.425435       14.998895
10.0.1.98        3       1042549239.422251       14.996816
10.0.1.98        Implementation guess: Cisco IOS / PIX

Here, host 172.16.2.2 returned a total of 12 packets and the pattern matched "Firewall-1 4.1/NG", and host 10.0.1.98 returned 3 packets matching the pattern for "Cisco IOS / PIX". The recv time column shows the absolute time when the packet was received in seconds and microseconds since the epoch; delta time shows the elapsed time between packets in seconds and microseconds.

Examples

The below example will run IKE detection against the single host 172.16.2.2. No backoff fingerprinting will be done, and all options (timeouts, retrys, transform set Etc) will be the default.

  • ike-scan 172.16.2.2

This will read the target hosts from the file "hostlist.txt".

  • ike-scan --file=hostlist.txt

This reads the hosts from stdin and performs both IKE detection and backoff fingerprinting. The backoff wait is specified as 20 seconds.

  • cat hostlist.txt | ike-scan --file=- --showbackoff=20

This will run ike-scan against all hosts in the network specified by 172.16.0.0/16 (including network and broadcast addresses). In this case, this will result in a total of 65536 hosts being scanned - from 172.16.0.0 to 172.16.255.255 inclusive.

  • ike-scan 172.16.0.0/16

This uses the range notation to scan a total of 65536 hosts from 172.16.0.0 to 172.16.255.255 inclusive.

  • ike-scan 172.16.0.0-172.16.255.255

Supported Platforms

ike-scan has been built and tested on the following platforms:

  • Debian Linux 1.3.1 on IA32 with gcc 2.7.2.1, libc5 and 2.0.29 Kernel
  • Debian Linux 2.2r7 (Potato) on IA32 with gcc 2.95.2 and 2.2.17 Kernel
  • Debian Linux 3.0r1 (Woody) on IA32 with gcc 2.95.4 and 2.4.18 Kernel
  • Debian Linux 3.1 (Sarge) on IA32 with gcc 3.3.4 and 2.4.27 Kernel
  • Debian Linux 3.0 (Woody) on PA-RISC with gcc 3.0.4 and 2.4.17-64 Kernel
  • Debian Linux 3.0 (Woody) on Alpha with gcc 3.3.1 and 2.4.18-smp Kernel
  • Redhat Advanced Server 3.2 on IA64 with gcc 3.2.3 and 2.4.21-19.EL Kernel
  • HP-UX 11.11 on PA-RISC with gcc 3.4.1
  • HP-UX 11.11 on PA-RISC with HP cc HP92453-01 B.11.11.32003.GP
  • FreeBSD 4.3 on IA32 with gcc 2.95.3
  • OpenBSD 3.1 on IA32 with gcc 2.95.3
  • NetBSD 1.6 on IA32 with gcc 2.95.3
  • SCO OpenServer 5.0.7 on IA32 with gcc 2.95.3
  • Windows NT 4.0 / Cygwin 1.5.12 on IA32 with gcc 3.3.3
  • Solaris 2.8 on SPARC with gcc 2.95.3
  • HP Tru64 Unix v5.1 on Alpha with Tru64 cc
  • MacOS X (Darwin 7.7.0) on PowerPC

I've also had reports that it builds OK on the following systems:

  • RedHat Linux 7.1 with 2.4 Kernel
  • RedHat Linux 8.0 with 2.4 Kernel
  • Debian Linux 3.1 on Alpha
  • Debian Linux 3.1 on ARM
  • Debian Linux 3.1 on HP PA-RISC
  • Debian Linux 3.1 on Intel IA64
  • Debian Linux 3.1 on Motorola 68000
  • Debian Linux 3.1 on MIPS
  • Debian Linux 3.1 on PowerPC
  • Debian Linux 3.1 on IBM S390
  • Debian Linux 3.1 on SPARC

It should work, or be capable of working, on any Unix-like system which has a 64-bit integer type, supports sockets and has the system calls malloc, gethostbyname, gettimeofday, inet_ntoa, memset, select, socket, and strerror.

If you port ike-scan to a system not listed above, please let me know the details of the changes required so I can add them to future releases.

Further Reading and RFCs

For an in-depth coverage of IPsec including IKE, I recommend the book "IPsec The New Security Standard for the Internet, Intranets and Virtual Private Networks" by Doraswamy and Harkins, ISBN 0-13-011898-2. I used this book together with the RFCs to learn about IKE.

The following RFCs relate to IKE:

  • RFC 2407 The Internet IP Security Domain of Interpretation for ISAKMP
  • RFC 2408 Internet Security Association and Key Management Protocol (ISAKMP)
  • RFC 2409 The Internet Key Exchange (IKE)
  • RFC 2412 The OAKLEY Key Determination Protocol
  • RFC 5996 Internet Key Exchange Protocol Version 2 (IKEv2)

All of these RFCs can be obtained from: http://www.ietf.org/rfc

Contact Information

The best way to contact me is via the ike-scan repository on github.

I would like to hear from you if you have any of the following:

  • A modern Unix-like OS which ike-scan won't build on;
  • An OS not listed in the list above which ike-scan builds and runs OK on;
  • Any IKE implementation patterns that are not already in the ike-backoff-patterns file.
    • Please include details of the pattern and also details of the IKE implementation;
  • Any Vendor ID pattern that is not already in the ike-vendor-ids file; or
  • Any comments or suggestions about the program.

If you need to contact me offline, please email me at [email protected]

ツールをダウンロード