
TLSフィンガープリントを回避するBurp拡張機能。WAFをバイパスし、あらゆるブラウザを偽装します。
この拡張機能は Burp の HTTP および TLS スタックをハイジャックし、任意のブラウザの TLS フィンガープリント (JA3) を偽装できるようにします。 Burp Suite のパワーを強化しつつ、CloudFlare、 PerimeterX、Akamai、DataDome などの各種 WAF によるフィンガープリント検出の可能性を低減します。
この拡張機能は、醜いハック、リフレクション、またはフォークされた Burp Suite Community コードに頼らずに動作します。

このプロジェクトのメンテナンスは、素晴らしいコントリビューターとスポンサーの皆様のおかげで成り立っています。 このプロジェクトをスポンサーしていただき、お名前や会社のロゴをこのセクションに掲載したい場合は、 ここ をクリックしてください。 💖

これは一例にすぎません。他の専用ボット検出サイトでもテストした結果があれば、ぜひ教えてください!
残念ながら、Burp の API はこのような高度なユースケースに対して非常に制限されているため、これを機能させるには 試行錯誤が必要でした。
リクエストが入ってくると、拡張機能はそれをインターセプトし、バックグラウンドで起動しているローカル HTTPS サーバーに転送します (拡張機能が読み込まれた時点で起動します)。 このサーバーはプロキシのように動作し、元のヘッダー順序を保持しながら、リクエストを宛先へ転送します さらに、カスタマイズ可能な TLS 設定を適用します。 その後、ローカルサーバーはレスポンスを Burp に返します。
設定情報や、宛先サーバーのアドレスやプロトコルなどの必要な情報は、マジックヘッダーによってリクエストごとに ローカルサーバーへ送信されます。 このマジックヘッダーは、宛先サーバーへ転送される前にリクエストから除去されます。

ℹ️ 別の方法として、アップストリームプロキシサーバーをコード化して Burp をそれに接続することもできましたが、 個人的にはカスタマイズ性と移植性のために拡張機能が必要でした。
Java を選択し、
ダウンロードしたばかりの jar ファイルを参照します。下部の 'Next' をクリックすると、エラーなく
拡張機能が読み込まれるはずです。この拡張機能は「プラグアンドプレイ」なので、説明は不要のはずです。各フィールドの詳細については、 'Awesome TLS' タブの各フィールドにマウスをホバーしてください。
WireShark からカスタム Client Hello を読み込むには、Client Hello レコードを hex ストリームとしてコピーし、
"Hex Client Hello" フィールドに貼り付けます。

'advanced' タブでは、リクエストから現在のフィンガープリントを自動的に適用する追加のプロキシリスナーを 有効にできます。

有効にすると、図は次のように変わります。

この拡張機能は JetBrains IntelliJ (および GoLand) IDE を使用して開発されました。 以下のビルド手順は、同じツールを使用してビルドすることを前提としています。 対象のプログラミング言語バージョンについては workflows を参照してください。
./src-go/ 内の Go パッケージをコンパイルします。次のコマンドを実行してください。
cd ./src-go/server && go build -o ../../src/main/resources/{OS}-{ARCH}/server.{EXT} -buildmode=c-shared ./cmd/main.go、
{OS}-{ARCH} を自分の OS と CPU アーキテクチャに、{EXT} を動的 C ライブラリ用のプラットフォーム推奨拡張子に
置き換えます。例: linux-x86-64/server.so。詳細は、
JNA docs で、サポートされているプラットフォームについての
詳細を確認できます。SettingsTab.form を Build > Build project で Java コードにコンパイルします。gradle buildJar.これで、お使いのオペレーティングシステム上の Burp で動作する 1 つの jar ファイル (通常は ./build/libs にあります) が得られるはずです。
以下のリポジトリのメンテナーの皆様に特別な感謝を捧げます。
そして、以下のウェブサイトの制作者の皆様に感謝します。