1

ネットワーク パケットを盗聴するプログラムを作成する必要があります (その 1 - 簡単な部分)。
そして、接続を終了できるようにプログラムを更新する必要があります (その 2)。
具体的な要件は次のとおりです。

適切な送信元と宛先の MAC アドレスと IP アドレスを含むデータ リンク層とネットワーク層の情報を指定して、生のパケットを作成します。これらのパケットは、接続を終了することを目的としています。そのためには、ヘッダー情報を自分で設定できるように、ソケット タイプとして SOCK_RAW を使用する必要があります。

第二部のアイデアを誰か教えてください。
セッションをハイジャックして、ユーザーの 1 人に DoS 攻撃を適用する必要がありますか?

必要なのは、接続を終了する方法のヒントだけです。私は C プログラミング言語を使用しており、これはセキュリティ コースのコース課題です。

4

4 に答える 4

1

接続を終了することの意味によって異なります。TCP 回線または UDP ストリームのエンドポイントを提供することを意味する場合があります。

または、ストリームの終わりを示すために、TCP ストリームの途中で受け入れ可能な RST を送信することを意味する場合もあります。これを実現するには、とりわけ相手側が期待するシーケンス番号を知る必要があります。

いずれにせよ、あなたが授業で注意を払っていないことは明らかです。課題の全体的なポイントは、IP パケットの生のレイアウトと、場合によっては TCP/UDP を理解していることを示すことにあるようです。このテーマに関する教科書を購入することをお勧めします (講師が推奨することは間違いありません) および/またはウィキペディアを読むことをお勧めします。

于 2010-03-09T08:48:47.483 に答える
1

この課題では、Python のパケット キャプチャおよびインジェクション ライブラリであるpypacpを使用します。Pypcap は raw ソケットを使用してパケットを偽造します。奇妙な理由で C を使用せざるを得ない場合、このプロジェクトはより困難になります。この場合、libpcap を使用して行をスニッフィングする必要があります。raw ソケット ライブラリは、開発するプラットフォームによって異なります。

TCP シーケンス ID を探して行をスニッフィングできます。この ID に基づいて、接続の片側を切断するために RST または FIN を偽造できます。難しい部分は、生のソケットを使用して TCP 接続を維持しようとすることです。アプリケーション層の接続を維持することはほぼ不可能です。HTTP は維持するのが簡単なプロトコルですが、http の場合は Cookie をハイジャックするのがより簡単になります。

于 2010-03-09T16:43:50.140 に答える
0

C ライブラリについてはお手伝いできません - 私の得意分野ではありませんが、そこには何かがあるはずです。

しかし、あなたがパート 2 でやろうとしていることは、DOS を引き起こすのではなく、防ぐことのようです!

ここをチェックしてください:

http://en.wikipedia.org/wiki/サービス拒否攻撃

DoS 攻撃に関するものです。PP が言うように、接続の誤用に関連する攻撃は数多くあります。そのため、割り当てがどの攻撃に関するものかを把握する必要があります。その攻撃については、教授に確認する必要があります。たとえば、上記の Wiki ページでは SYN Floods について言及されていますが、ほとんどすべての接続指向プロトコルは、接続プールが多すぎる接続要求でいっぱいになり、それらを閉じないという攻撃の危険にさらされます。

課題を読んで、あなたの仕事は、攻撃者が開いた接続を閉じることによってこれを修正する方法を理解することだと思います。つまり、攻撃がどのように機能するかを理解し、それから回復する方法を理解する必要があります。

ヒント: 大量の接続切断要求でサーバーを攻撃することは攻撃ではありません。開いている接続を必ずしも閉じるとは限らないため、これもあまり役に立ちません。ただし、接続のオープン要求によって損傷が発生します。ここを参照してください:

http://en.wikipedia.org/wiki/SYN_flood

一例として。

于 2010-03-09T18:25:10.127 に答える
0

libpcap を使用して、パケット スニッフィングを支援できます。libpcap は tcpdump チームによって開発されました。

于 2010-03-09T18:35:56.907 に答える