HSTS保護をバイパスする方法を理解しようとしています。 LeonardoNve( https://github.com/LeonardoNve/sslstrip2 および https://github.com/LeonardoNve/dns2proxy )によるツールについて読みました。しかし、私はそれを全く理解していません。
Strict-Transport-Security:
ヘッダーフィールド。それで大丈夫です。コードを見ると、SSLstrip2はクライアントが必要とするリソースのドメイン名を変更するので、これらのリソースは同じドメイン上にないため、クライアントはHSTSを使用する必要はありません(本当ですか?)。クライアントは、DNS2proxyツールが代行受信するDNS要求を送信し、実際のドメイン名のIPアドレスを返信します。最後に、クライアントはHTTPSの方法で実行する必要があるリソースをHTTPで処理します。
例:サーバーの応答から、クライアントはmail.google.comをダウンロードする必要があります。攻撃者はそれをgmail.google.comに変更するため、同じ(サブ)ドメインではありません。次に、クライアントはこのドメインのDNS要求を行い、DNS2proxyはmail.google.comの実際のIPで応答します。その後、クライアントはこのリソースをHTTP経由で要求します。
その前に得られないのは、クライアントからサーバーへの接続がHTTPSである必要があるときに、攻撃者がどのようにHTMLストリップを実行できるかです。
元の質問に答えるために-ほとんどの人はhttps://example.com
を直接入力することはありません。リンク(hereをクリックして安全なログインサーバーにアクセスする)またはリダイレクト(ブラウザーで"gmail.com"
と入力すると、安全なサイトに自動的にリダイレクトされます)に依存します。
これがSSLStrip
の出番です。元の安全でないHTTP応答をインターセプトし、<a href="https">;
リンクをHTTP(安全でない)バージョンに置き換えます。また、HTTPS URLを指すリダイレクト("Location:"
ヘッダー)を変更します。
SSLStrip2
を使用すると、これは少し先に進みます(インターセプト、無効なサブドメインへのリダイレクト、DNSインターセプトを使用して実際にそのサブドメインに有効なIPを提供する)。
ここにプロセス全体のウォークスルーがあります: http://sign0f4.blogspot.com/2014/10/mitmf-v07-released-sslstrip-integration.html
要約すると、ブログ投稿の作成者は、sslstrip2
およびdns2proxy
を使用して認証情報を取得する方法を示しています。著者が自分のMITMf
ツールを使用している間、ツールはsslstrip2
とdns2proxy
、およびそれらに関連付けられたHSTS構成ファイルをカプセル化します。コマンド、ブラウザー、およびツール出力のスクリーンショットを提供します。実証された2つのケーススタディがあります:GoogleおよびFacebook。