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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
http2-rst-stream-attacker — CVE-2023-44487に対するサーバーの脆弱性をチェックするための高度に設定可能なツール。HEADERSおよびRST_STREAMフレームを高速に送信し、サーバーの応答を記録します。 | Kitploit
ツール/GitHubGitHub/ndrscodes/http2-rst-stream-attacker
脆弱性分析エクスプロイトウェブセキュリティペネトレーションテスト
GitHubndrscodes/http2-rst-stream-attacker

http2-rst-stream-attacker

CVE-2023-44487に対するサーバーの脆弱性をチェックするための高度に設定可能なツール。HEADERSおよびRST_STREAMフレームを高速に送信し、サーバーの応答を記録します。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
6212年前未レビュー
共有

CVE-2023-44487 と http2-rst-stream-attacker

CVE-2023-44487

CVE-2023-44487 は、HTTP2 プロトコルそのものに対するエクスプロイトです。HTTP2 では、データリクエストは HEADERS フレームを送信することで開始されます。このフレームを受信したサーバーはリクエストの処理を開始し、その後すべてのデータが送信されるまで DATA フレームを送信します。また HTTP2 は RST_STREAM フレームを定義しており、任意の時点でストリームを閉じるために使用できます。攻撃を防ぐため、サーバーは通常、同時に開かれるストリームの最大数を制限しています(デフォルトで 100)。クライアントが実際にすべてのリソースが消費されるのを待つ場合、この制限に達することはほとんどありません。この攻撃が機能する理由は単純です。クライアントは 任意の 時点で RST_STREAM フレームを送信できます。RST_STREAM フレームはストリームを閉じ、閉じられたストリームは同時ストリームとしてカウントされません。つまり、クライアントはリクエストを送信した直後に接続を閉じるだけで、この制限に達することなくリクエストを高速に送信できます。攻撃されたサーバーは、場合によってはデータの読み込みを開始し続け、過剰な負荷を引き起こします。

このツールは、サーバーのこの攻撃に対する脆弱性を確認することを目的としています。1 つ以上の同時 HTTP2 接続を確立し、指定された数の HEADER フレームを送信し、続いて RST_STREAM フレームを送信します。

また、HEADERS と RST_STREAM フレームの間の遅延、開くストリームの数、ストリームごとに送信するフレームの数など、他の多くの設定オプションも提供します。 攻撃が完了すると、受信したフレーム数、エラー数、GOAWAY フレームの受信数を含むサマリーが出力されます。 これにより、自身のサービスが CVE-2023-44487 に対して脆弱かどうかを特定するのに役立ちます。

実行

現時点では、このツールはソースコードのみで配布されており、go install が必要です。ツールは go run main.go <options> を実行することで実行できます。 また、monitor.log ファイルに書き込まれたレイテンシ情報をプロットするための Python スクリプトもあります。

ツーリング

さらに、より正確で広範な測定を行うための新しい Python ツーリングを作成しました。 tooling フォルダにある ファイルは、(詳細は を参照)で定義された値を読み取り、定義されたすべての Docker コンテナに対してすべてのテストを実行します。 次に、 配列で定義されたすべてのパスに対して、最も成功したテスト(最高の中央値 + 平均レイテンシ)を実行します。各テストのプロットとログファイルを出力します。 このツーリングはまだ開発中です。私たちの研究論文のためにこれらのテストを手動で実行するのが面倒だったので、作成しただけです。 クリーンアップしたり、私たちのユースケース以上に実際に使用可能にしたい場合は、PR を送ってください。

runner.py
config.py
config-sample.py
paths

CLI フラグ

現在、以下の CLI オプションが実装されています:

フラグデフォルト意味
frames1任意のストリームで送信する HEADERS と RST_STREAM のフレーム数
connections1攻撃を実行する TLS 接続数(同時)
consecutiveSends1RST_STREAM フレームを送信する前に送信する HEADERS フレーム数(フローごと)
connectAttempts1テストを実行する連続接続数(接続ルーチンごと)
delay0HEADERS と RST_STREAM フレームの送信間の待機時間(ms)
ignoreGoAwayfalsetrue の場合、GOAWAY ストリームは受信ルーチンを終了させません。代わりに、10 秒以上フレームを受信しなくなるまで待機します。
monitorfalseパフォーマンスモニタリングを有効にする
monitorDelay100応答レイテンシをテストする間隔(ms)
monitorLog./monitor.logモニタ遅延ログを書き込むファイル
routines1攻撃するストリーム数
skipValidationtruetrue の場合、サーバー証明書は検証されません(これがデフォルトです。攻撃者であるためセキュリティは気にしません)
timeout1000新しいフレームを待つ時間。これを超えると接続試行は無効とみなされ停止します
urlhttps://localhost:433/攻撃を実行する URL

出力例

ツールは多くのデバッグ情報とサマリーを出力します。 デバッグ情報には、接続の確立方法、現在の進捗状況、現在送信中のフレームの種類に関する情報が含まれます。

サマリーは次のようになります(設定により異なります)

root@kitploit:~
####################SUMMARY####################
Packet types received:
	PING: 2
	HEADERS: 12
	SETTINGS: 0
	DATA: 11
	GOAWAY: 3
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
Attack ending reasons (per receiving thread):
	GoAway events: 3
	Timeout events: 0
	Error events: 0
Summary for connection 2
	PING: 1
	HEADERS: 9
	SETTINGS: 0
	DATA: 6
	GOAWAY: 1
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
	Reason for stopping to listen for more packets: GoAway - the server responded as expected.
Summary for connection 1
	PING: 1
	HEADERS: 3
	SETTINGS: 0
	DATA: 5
	GOAWAY: 1
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
	Reason for stopping to listen for more packets: GoAway - the server responded as expected.
Summary for connection 0
	PING: 0
	HEADERS: 0
	SETTINGS: 0
	DATA: 0
	GOAWAY: 1
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
	Reason for stopping to listen for more packets: GoAway - the server responded as expected.

集める必要がある他の統計があれば、遠慮なく連絡するか、Issue を作成してください!

TODO

  • HEADERS 送信からこのリクエストの最初のフレーム受信までの平均遅延を計算
  • HEADERS 送信から GOAWAY フレーム受信までの平均遅延を計算(該当する場合)
  • サーバーが正しく応答した接続の割合を計算
  • サーバーが正しく応答したストリームの割合を計算(接続ごとおよび合計)
  • サマリーに送信パケット数を追加

免責事項

このツールは研究目的のみを意図しています。自身が所有または管理していないサーバーに対して攻撃を実行することを意図していません。 提供される統計の正確性、ならびに攻撃とそのサーバーやサービスへの影響について、一切の責任を負いません。

ツールをダウンロード