web-dev-qa-db-ja.com

SSLstrip2 + DNS2proxyによるHSTSバイパス

HSTS保護をバイパスする方法を理解しようとしています。 LeonardoNve( https://github.com/LeonardoNve/sslstrip2 および https://github.com/LeonardoNve/dns2proxy )によるツールについて読みました。しかし、私はそれを全く理解していません。

  • クライアントがサーバーを初めて要求する場合、sslstripは単にStrict-Transport-Security:ヘッダーフィールド。それで大丈夫です。
  • そうでなければ?何が起こるのですか?クライアントは自動的にHTTPSを使用してサーバーに接続しようとしますか?その場合、MITMは役に立たないですね。

コードを見ると、SSLstrip2はクライアントが必要とするリソースのドメイン名を変更するので、これらのリソースは同じドメイン上にないため、クライアントはHSTSを使用する必要はありません(本当ですか?)。クライアントは、DNS2proxyツールが代行受信するDNS要求を送信し、実際のドメイン名のIPアドレスを返信します。最後に、クライアントはHTTPSの方法で実行する必要があるリソースをHTTPで処理します。

例:サーバーの応答から、クライアントはmail.google.comをダウンロードする必要があります。攻撃者はそれをgmail.google.comに変更するため、同じ(サブ)ドメインではありません。次に、クライアントはこのドメインのDNS要求を行い、DNS2proxyはmail.google.comの実際のIPで応答します。その後、クライアントはこのリソースをHTTP経由で要求します。

その前に得られないのは、クライアントからサーバーへの接続がHTTPSである必要があるときに、攻撃者がどのようにHTMLストリップを実行できるかです。

15
Nikkolasg

元の質問に答えるために-ほとんどの人はhttps://example.comを直接入力することはありません。リンク(hereをクリックして安全なログインサーバーにアクセスする)またはリダイレクト(ブラウザーで"gmail.com"と入力すると、安全なサイトに自動的にリダイレクトされます)に依存します。

これがSSLStripの出番です。元の安全でないHTTP応答をインターセプトし、<a href="https">;リンクをHTTP(安全でない)バージョンに置き換えます。また、HTTPS URLを指すリダイレクト("Location:"ヘッダー)を変更します。

SSLStrip2を使用すると、これは少し先に進みます(インターセプト、無効なサブドメインへのリダイレクト、DNSインターセプトを使用して実際にそのサブドメインに有効なIPを提供する)。

3
Bogd

ここにプロセス全体のウォークスルーがあります: http://sign0f4.blogspot.com/2014/10/mitmf-v07-released-sslstrip-integration.html

要約すると、ブログ投稿の作成者は、sslstrip2およびdns2proxyを使用して認証情報を取得する方法を示しています。著者が自分のMITMfツールを使用している間、ツールはsslstrip2dns2proxy、およびそれらに関連付けられたHSTS構成ファイルをカプセル化します。コマンド、ブラウザー、およびツール出力のスクリーンショットを提供します。実証された2つのケーススタディがあります:GoogleおよびFacebook。

1
atdre