ICMP プロトコル集中化シナリオの詳細な説明

I.はじめに

ここに画像の説明を挿入

ICMP は、ネットワークの検出やトラブルシューティングでよく使用されるコマンドです。この記事では、6 つのシナリオを使用して、icmp プロトコルにおける一般的なネットワークの問題を詳細にシミュレートします。
ここに画像の説明を挿入

2. シーンの詳しい説明

2.1. ICMP タイムスタンプ要求の送信

ICMP タイムスタンプ要求を使用すると、システムは別のシステムに現在時刻を問い合わせることができますが、日付は含まれません。返される推奨値は、午前 0 時 (UTC) からの時間です。ICMP タイムスタンプ要求および応答メッセージの形式を図 1 に示します。
ここに画像の説明を挿入

ここに画像の説明を挿入

ICMP タイムスタンプ要求を送信する場合、要求者は開始タイムスタンプを入力してメッセージを送信します。応答システムは、要求メッセージを受信するときに受信タイムスタンプを記入し、応答を送信するときに送信タイムスタンプを記入します。要求と応答の対話型プロセスでは、ICMP メッセージのタイプ値が 13 で値が 0 の場合、データ パケットは ICMP タイムスタンプ要求パケットです。ICMP メッセージのタイプ値が 14 で値が 0 の場合、データ パケットは ICMP タイムスタンプ要求パケットです。 、パケットは ICMP タイムスタンプ応答パケットです。このツールは、タイムスタンプ要求を作成するための番号 81 のモジュールを提供します。

ICMP タイムスタンプ要求をターゲット ホスト 192.168.59.135 に送信して、データ パケットの送信時間を検出します。

1) ICMP タイムスタンプ要求を送信し、次のようにコマンドを実行します。

root@daxueba:~# netwox 81 -i 192.168.59.135

0 0    #输出信息表示目标可达,如果目标不可达,将显示信息如下:

No answer.

2) 図 2 に示すように、パケットをキャプチャすることで、タイムスタンプ要求が正常に送信されたことを確認できます。このうち、6 番目のデータ パケットは ICMP タイムスタンプ要求です。[制御メッセージ プロトコル] セクションでは、タイプ値が 13、コード値が 0 で、データ パケットが ICMP タイムスタンプ要求であることを示しています。Originate タイムスタンプの値はデータ パケットの開始時刻を示し、ここでは 0 秒 (深夜 0:00 秒)、Receive タイムスタンプの値はデータ パケットの受信時間を示し、ここでは 0 秒、Transmit タイムスタンプの値はデータ パケットの送信時間を示します。ここでは 0 秒です。時間は午前0時からカウントされるため0秒です。

ここに画像の説明を挿入
ICMP タイムスタンプ応答:
ここに画像の説明を挿入

2.2. 偽造されたリクエストタイムアウトICMPパケット

ネットワーク上で IP データグラムを送信するプロセス中に、IP データグラムの TTL 値が徐々に 0 まで減少した場合、データグラムを破棄する必要があります。このとき、送信がタイムアウトしたことを示す ICMP タイムアウト メッセージを送信元に送信する必要があります。タイムアウト ICMP パケット メッセージでは、タイプ値は 11、値は 0 です。ユーザーは、ツール内の 83 番のモジュールを使用してリクエスト タイムアウト ICMP パケットを偽造できます。

A は 192.168.59.134、B は 192.168.59.135 であり、リクエスト タイムアウト ICMP パケットが C 上で偽造されたことがわかっています。

1) A に対して B に ping を実行するには、次のコマンドを実行します。

root@daxueba:~# ping 192.168.59.135

PING 192.168.59.135 (192.168.59.135) 56(84) bytes of data.

64 bytes from 192.168.59.135: icmp_seq=1 ttl=64 time=0.447 ms

64 bytes from 192.168.59.135: icmp_seq=2 ttl=64 time=0.468 ms

64 bytes from 192.168.59.135: icmp_seq=3 ttl=64 time=0.773 ms

64 bytes from 192.168.59.135: icmp_seq=4 ttl=64 time=0.307 ms

上記の出力は、ホスト B が到達可能であることと、送信時刻を示しています。たとえば、time=0.447ms は、時間が 0.447 ミリ秒である必要があることを意味します。

2) C でリクエスト タイムアウト ICMP パケットを偽造し、送信元を 192.168.59.135 に設定し、次のようにコマンドを実行します。

root@daxueba:~# netwox 83 -i 192.168.59.135

コマンドの実行後、出力情報はありませんが、リクエスト タイムアウト ICMP パケットは正常に偽造されています。

3) A に対して B に再度 ping を実行し、次のようにコマンドを実行します。

root@daxueba:~# ping 192.168.59.135

PING 192.168.59.135 (192.168.59.135) 56(84) bytes of data.

64 bytes from 192.168.59.135: icmp_seq=6 ttl=64 time=0.336 ms

From 192.168.59.135 icmp_seq=6 Time to live exceeded

64 bytes from 192.168.59.135: icmp_seq=7 ttl=64 time=0.532 ms

From 192.168.59.135 icmp_seq=7 Time to live exceeded

64 bytes from 192.168.59.135: icmp_seq=8 ttl=64 time=0.495 ms

From 192.168.59.135 icmp_seq=8 Time to live exceeded

上記の出力情報から、A が 192.168.59.135 に ping リクエストを送信したことがわかります。一部のリクエストは応答メッセージを受信しませんでしたが、時間を超過したことを示す「存続時間超過」メッセージが表示されました。

4) 偽造されたリクエスト タイムアウト ICMP パケットを確認するには、パケットをキャプチャして表示できます。図 4 に示すように、いくつかの ICMP タイムアウト パケットがキャプチャされています。このうち、3 番目のデータ パケットの送信元は 192.168.59.134、宛先は 192.168.59.135 で、A が B に送信した ICMP 要求パケットであり、5 番目のデータ パケットの送信元は 192.168.59.135、宛先は 192.168.59.135 です。は 192.168.59.134 であり、[情報] 列に [存続時間超過] と表示されている場合は、時間が経過したことを示し、データ パケットが偽造されたリクエスト タイムアウト ICMP パケットであることを示します。

ここに画像の説明を挿入

5) 図 5 に示すように、5 番目のデータ パッケージを選択してパッケージ情報を表示します。データ パケットのインターネット制御メッセージ プロトコル部分では、タイプ値は 11、コード値は 0 であり、データ パケットが要求タイムアウト ICMP データ パケットであることを示しています。

ここに画像の説明を挿入

2.3. 偽造されたターゲットには到達できない

ターゲット到達不能パケットとは、IP データ パケットをターゲット アドレスに送信できない場合に、ターゲットに到達できないことを示す ICMP メッセージが送信者に返されることを意味します。Destination Unreachable メッセージでは、タイプ値は 3、値は 1 です。このようなパケットを偽造するには、ツールでモジュール番号 82 を使用する必要があります。

A は 192.168.59.134、B は 192.168.59.135、宛先到達不能 ICMP パケットは C で偽造されたことがわかっています。

1) C 上でターゲットの到達不能な ICMP パケットを偽造し、送信元を 192.168.59.135 に設定し、次のようにコマンドを実行します。

root@daxueba:~# netwox 82 -i 192.168.59.135

コマンド実行後に情報が出力されない場合は、ターゲット ホストに到達できない ICMP パケットが正常に偽造されたことを意味します。

2) A に対して B に ping を送信するには、次のコマンドを実行します。

root@daxueba:~# ping 192.168.59.135

PING 192.168.59.135 (192.168.59.135) 56(84) bytes of data.

64 bytes from 192.168.59.135: icmp_seq=1 ttl=64 time=3.95 ms

From 192.168.59.135 icmp_seq=1 Destination Host Unreachable

64 bytes from 192.168.59.135: icmp_seq=2 ttl=64 time=0.608 ms

From 192.168.59.135 icmp_seq=2 Destination Host Unreachable

64 bytes from 192.168.59.135: icmp_seq=3 ttl=64 time=0.341 ms

From 192.168.59.135 icmp_seq=3 Destination Host Unreachable

64 bytes from 192.168.59.135: icmp_seq=4 ttl=64 time=0.499 ms

From 192.168.59.135 icmp_seq=4 Destination Host Unreachable

上記の出力情報から、A が 192.168.59.135 に ping リクエストを送信しましたが、一部のリクエストは応答情報を取得できず、宛先に到達できないことを示す Destination Host Unreachable 情報が表示されたことがわかります。

3) 偽のターゲットに到達できない ICMP パケットを検証するには、パケット キャプチャを使用して、図 6 に示すように、いくつかの ICMP パケットがキャプチャされていることを確認します。このうち、3 番目のデータ パケットの送信元は 192.168.59.134、宛先は 192.168.59.135、これは A から B に送信された ICMP 要求パケットであり、5 番目のデータ パケットの送信元は 192.168.59.135、宛先は 192.168 です。 .59.134、および情報列に表示される宛先到達不能(ホスト到達不能)は、宛先に到達できないことを示し、データ パケットが宛先到達不能な偽造された ICMP データ パケットであることを示します。

ここに画像の説明を挿入

4) 図 7 に示すように、5 番目のデータ パッケージを選択してパッケージ情報を表示します。データ パケットのインターネット制御メッセージ プロトコル部分では、タイプ値が 3、コード値が 1 であり、データ パケットが宛先到達不能な ICMP データ パケットであることを示しています。

ここに画像の説明を挿入

2.4. パラメータ偽造エラー ICMP データパケット

データグラムの処理中に、パケット ヘッダー内の不正なパラメータによりパケットを破棄する必要があることが判明し、パラメータ エラー パケットをソース送信者に送信する必要があります。このメッセージでは、タイプ値は 12、値は 0 です。このようなパケットを偽造するには、ツールでモジュール番号 84 を使用する必要があります。

A は 192.168.59.134、B は 192.168.59.135 であり、間違ったパラメータを持つ ICMP パケットが C 上で偽造されることが知られています。

1) C 上で不正なパラメータを使用して ICMP パケットを偽造し、送信元を 192.168.59.135 に設定し、次のようにコマンドを実行します。

root@daxueba:~# netwox 82 -i 192.168.59.135

コマンド実行後は出力情報はありませんが、パラメータエラーのICMPパケットが偽造されます。

2) A に対して B に ping を送信するには、次のコマンドを実行します。

root@daxueba:~# ping 192.168.59.135

PING 192.168.59.135 (192.168.59.135) 56(84) bytes of data.

64 bytes from 192.168.59.135: icmp_seq=1 ttl=64 time=11.1 ms

From 192.168.59.135 icmp_seq=1 Parameter problem: pointer = 0

64 bytes from 192.168.59.135: icmp_seq=2 ttl=64 time=0.546 ms

From 192.168.59.135 icmp_seq=2 Parameter problem: pointer = 0

64 bytes from 192.168.59.135: icmp_seq=3 ttl=64 time=0.453 ms

From 192.168.59.135 icmp_seq=3 Parameter problem: pointer = 0

出力情報から、A が 192.168.59.135 に ping リクエストを送信しましたが、一部のリクエストでは応答情報が得られず、パラメータが間違っていることを示すパラメータ問題情報が表示されたことがわかります。

3) データ パケットをキャプチャして、間違ったパラメータを持つ偽の ICMP データ パケットを検証します。図 8 に示すように、いくつかの ICMP データ パケットがキャプチャされます。最初のデータ パケットの送信元は 192.168.59.134、宛先は 192.168.59.135 (A によって B に送信された ICMP 要求パケット)、3 番目のデータ パケットの送信元は 192.168.59.135、宛先は 192.168 です。 59.134 は、[情報] 列に表示されます。パラメータ問題はパラメータ エラーを示し、データ パケットがパラメータ エラーの偽造された ICMP データ パケットであることを示します。

ここに画像の説明を挿入

4) 図 9 に示すように、3 番目のデータ パッケージを選択してパッケージ情報を表示します。[インターネット制御メッセージ プロトコル] セクションでは、タイプ値が 12、コード値が 0 であり、データ パケットが間違ったパラメータを持つ ICMP データ パケットであることを示しています。
図9 パラメータエラーICMPパケット

2.5. 偽造送信元ステーションが ICMP パケットを抑制する

パケットを処理するときにバッファキューが存在します。ホストの受信速度が処理速度よりも速い場合、最大バッファキューを超えるとホストは処理できなくなるため、パケットを破棄することを選択します。このとき、ホストは ICMP 送信元ステーション抑制メッセージを送信元送信者に送信し、キャッシュ キューがいっぱいであり、要求は後で行われることを相手に伝えます。このタイプのメッセージでは、タイプ値は 4、コード値は 0 です。このようなパケットを偽造するには、netwox ツールのモジュール No. 85 を使用する必要があります。

A は 192.168.59.134、B は 192.168.59.135 であることがわかっています。ICMP パケットを抑制するために C 上の偽のソース。

1) C 上の送信元ステーションを偽造して ICMP パケットを抑制し、送信元を 192.168.59.135 に設定し、次のようにコマンドを実行します。

root@daxueba:~# netwox 85 -i 192.168.59.135

コマンドの実行後に出力情報はありませんが、送信元ステーションは正常に偽造されて ICMP パケットを抑制します。

2) A に対して B に ping を送信するには、次のコマンドを実行します。

root@daxueba:~# ping 192.168.59.135

PING 192.168.59.135 (192.168.59.135) 56(84) bytes of data.

64 bytes from 192.168.59.135: icmp_seq=1 ttl=64 time=1.77 ms

From 192.168.59.135: icmp_seq=1 Source Quench

64 bytes from 192.168.59.135: icmp_seq=2 ttl=64 time=0.429 ms

From 192.168.59.135: icmp_seq=2 Source Quench

64 bytes from 192.168.59.135: icmp_seq=3 ttl=64 time=18.8 ms

From 192.168.59.135: icmp_seq=3 Source Quench

出力情報から、A が 192.168.59.135 に ping リクエストを送信しましたが、一部のリクエストは応答情報を取得できませんでしたが、ソース クエンチ情報が表示され、ソース サイトが抑制されたことがわかります。

3) データ パケットをキャプチャすることにより、図 10 に示すように、偽の送信元ステーションによって抑制された ICMP データ パケットを確認します。いくつかの ICMP パケットがキャプチャされ、そのうち 4 番目のパケットの送信元は 192.168.59.134、宛先は 192.168.59.135 で、これは A から B に送信された ICMP 要求パケットであり、6 番目のパケットの送信元は 192.168.59.135 でした。 、宛先は 192.168.59.134 で、[情報] 列に表示されるソース クエンチは送信元ステーションの抑制を示しており、パケットが偽造された送信元ステーション抑制 ICMP パケットであることを示しています。

図 10 キャプチャされた ICMP パケット

4) 図 11 に示すように、6 番目のデータ パッケージを選択してパッケージ情報を表示します。[インターネット制御メッセージ プロトコル] セクションでは、タイプ値が 4、コード値が 0 で、パケットが送信元ステーションによって抑制された ICMP パケットであることを示しています。

図 11 送信元ステーションが ICMP パケットを抑制する

2.6. ICMP パケットの偽装とリダイレクト

ルーターが IP データグラムを受信し、データグラムの宛先アドレスがルーティング テーブルに存在しないことが判明すると、ICMP リダイレクト メッセージを送信元送信者に送信して、受信したアドレスが存在しないため再送信する必要があることを通知します。さらなる処理のために他のアドレスを見つけます。このタイプのメッセージでは、タイプ値は 5 で、値は 0 です。このタイプのパケットを偽造するには、ツールでモジュール番号 86 を使用する必要があります。

ホスト A の IP アドレスは 192.168.59.132 で、netwox ツールが存在するホストは 192.168.59.135 であることがわかっています。netwox が配置されているホストに基づいてホスト A に対する攻撃。ターゲット ホストが攻撃元を発見するのを防ぐために、偽造データ パケットのソース IP アドレスは 192.168.59.136 で、ターゲット ホストのゲートウェイはネットワーク セグメント内の他のホストに変更されます。ターゲット ホストによって送信されたパケットは、このホストにリダイレクトされます。具体的な手順は次のとおりです。

1) ターゲット A のゲートウェイを表示します。ターゲット A で、www.qq.com に ping リクエストを送信します。図 12 に示すように、データ パケットをキャプチャしてゲートウェイ情報を確認します。図のフレーム 2 と 3 はプロトコル クエリ パケットで、ゲートウェイを介して www.qq.com 情報をクエリします。このことから、対象のゲートウェイは192.168.59.2であると判断できます。
ここに画像の説明を挿入

2) リダイレクト パケットをターゲットに送信し、ソースを 192.168.59.136 に設定し、ターゲットによって送信されたパケットを 192.168.59.131 にリダイレクトし、次のようにコマンドを実行します。

root@daxueba:~# netwox 86 -g 192.168.59.131 -c 1 -i 192.168.59.136

コマンドを実行しても出力は生成されません。

3) ターゲット ホスト上の www.qq.com に ping リクエストを送信し、次のようにコマンドを実行します。

root@daxueba:~# ping www.qq.com

PING https.qq.com (125.39.52.26) 56(84) bytes of data.

64 bytes from no-data (125.39.52.26): icmp_seq=1 ttl=128 time=25.6 ms

From localhost (192.168.59.136): icmp_seq=1 Redirect Host(New nexthop:localhost (192.168.59.131))

From localhost (192.168.59.136): icmp_seq=2 Redirect Host(New nexthop:localhost (192.168.59.131))

64 bytes from no-data (125.39.52.26): icmp_seq=2 ttl=128 time=25.2 ms

From localhost (192.168.59.136): icmp_seq=3 Redirect Host(New nexthop:localhost (192.168.59.131))

64 bytes from no-data (125.39.52.26): icmp_seq=3 ttl=128 time=27.1 ms

64 bytes from no-data (125.39.52.26): icmp_seq=4 ttl=128 time=25.5 ms

From localhost (192.168.59.136): icmp_seq=4 Redirect Host(New nexthop:localhost (192.168.59.131))

上記の出力情報では、no-data(125.39.52.26) からの 64 バイト: icmp_seq=1 ttl=128 time=25.6 ms は、ping 要求がターゲット www.qq.com に正常に送信されたことを意味します。From localhost(192.168. 59.136): icmp_seq= 1 リダイレクト ホスト (新しいネクストホップ: localhost (192.168.59.131)) は、偽造されたリダイレクト ICMP パケットを示し、ソースは 192.168.59.136 で、リダイレクト ホストは、ターゲットが 192.168.59.131 にリダイレクトされたことを示します。

4) 図 13 に示すように、ターゲット上のパケットをキャプチャし、リダイレクトされたパケットを確認します。このうち、11 番目のフレームのソースは 192.168.59.136 (設定されたソース)、ターゲットは 192.168.59.132 (設定されたターゲット)、Info 列の Redirect (Redirect for host) はデータ パケットがリダイレクションデータパケット。[制御メッセージ プロトコル] セクションでは、タイプ値が 5、コード値が 1 で、データ パケットがリダイレクトされたデータ パケットであることを示します。ゲートウェイ アドレス: 192.168.59.131 は、ゲートウェイが 192.168.59.131 にリダイレクトされることを示します。

ここに画像の説明を挿入

5) フレーム 13 を選択して、図 14 に示すように、ゲートウェイのリダイレクト情報を表示します。フレーム 13 の送信元は 192.168.59.136(設定元)、宛先は 192.168.59.2(宛先 A のゲートウェイ)です。このパケットもリダイレクトされたパケットです。「制御メッセージ プロトコル」セクションの「ゲートウェイ アドレス: 192.168.59.131」は、ターゲット A のゲートウェイが 192.168.59.131 に変更されたことを示します。

ここに画像の説明を挿入

3.ICMPタイプ

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/ximenjianxue/article/details/131064824