注意! 以下の脆弱性再現アルゴリズムは、教育目的のみに提供されています!
脆弱性の実装
本質は非常に簡単です。Yandexでは、1つのアドレスでログインし、他から送信できます。この場合、YandexルールはDMARCとSPFで指定され、レターは有効なDKIM署名yandex.ruで署名されます。
実装には、Yandex上のメールボックスとサードパーティのメールクライアントが必要です(私の選択は、オープンで機能的なThunderbirdでした)。
後者には、Yandexからのメールボックスを固定し、手紙を送信するためのウィンドウを開きます
送信者のアドレスを必要なものに変更します(この例ではi@yandex.ru)
そしてどこかに手紙を送る
Google Mail(他の)と同様に、手紙は普通に届きました。 Googleは、すべてが賑やかであることを示すカードを表示します。
レターソース
受信者アドレスは
に置き換えられ、現在のアドレスは
Delivered-To: @gmail.com
Received: by 10.31.164.6 with SMTP id n6csp2248696vke;
Thu, 10 Aug 2017 09:17:13 -0700 (PDT)
X-Received: by 10.46.33.9 with SMTP id h9mr3821349ljh.52.1502381833140;
Thu, 10 Aug 2017 09:17:13 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1502381833; cv=none;
d=google.com; s=arc-20160816;
b=CM0dF4giYDl9jToC/17FjHIeiQNsfFaDUxcYErv/RAHKrX+8PIdx0QabF/kUMVelug
ESNfNVYYv09sIrZsYSgqnmKlVdPbQYkmr0mSE+oZ2cjIhebKQcfQjKARk+6LLFOrtNSb
M1O014IAXh+y+ykx2EEyhyWir1y+SWItjS2ukNN19t9GwY91hjFtd+0T2OQDvC44qjpW
ztHKTCTNne0+NhMRYg2iSL0uQZkkpeUNNKgkRavCJRKgnjtMOuLqtx0uNLfZex34XcBl
vtZTfThoUeuzBPmHVVnnE+W8lcLoqTG2/jr4C4E4VNDHrjUCsDecNNfGYf5/BajX45n0
BdsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=content-language:content-transfer-encoding:mime-version:user-agent
:date:message-id:subject:from:to:dkim-signature:dkim-signature
:arc-authentication-results;
bh=AOjHaT+yDXpmJsW3LSDugt7u95YQzsSxsGi10r66W3Y=;
b=Edjq07PU+c0nie1ia60SrVoI219rb8q/OnUJMtf0tJrFPktG29Pqs4fx7E3DsNvH6l
PPdsJVsvHDl3nIWqVSASAXaTPELSAXYETQ/zuluD+wrR2n7MXNt8QQ8cUqt7Zae8Wkq2
Yr3cW+9Ty3VZEi2TzqRzOU3UNNhds+UHa8o6/LK3N7NN91INYevsNnrfMBSUvqm6HmMi
AJ7dHkkwqqKX7XNkIvKNVjyq8FhnVfMiow8N/PCsVqtTly+q825p5kOl3hxqbLMsi3ix
AL3MGC84U/m8+dvivNege5yDby/Dfp6uY6jHJL/hOVmmUwT1/y2F+5SD/ifuS4EX2gI7
geLg==
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=@yandex.ru header.s=mail header.b=T2n/cJmZ;
dkim=pass header.i=@yandex.ru header.s=mail header.b=T2n/cJmZ;
spf=pass (google.com: domain of 42@yandex.ru designates 37.140.190.181 as permitted sender) smtp.mailfrom=42@yandex.ru;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex.ru
Return-Path: <42@yandex.ru>
Received: from forward101o.mail.yandex.net (forward101o.mail.yandex.net. [37.140.190.181])
by mx.google.com with ESMTPS id 128si582786lfz.671.2017.08.10.09.17.12
for <@gmail.com>
(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Thu, 10 Aug 2017 09:17:13 -0700 (PDT)
Received-SPF: pass (google.com: domain of 42@yandex.ru designates 37.140.190.181 as permitted sender) client-ip=37.140.190.181;
Authentication-Results: mx.google.com;
dkim=pass header.i=@yandex.ru header.s=mail header.b=T2n/cJmZ;
dkim=pass header.i=@yandex.ru header.s=mail header.b=T2n/cJmZ;
spf=pass (google.com: domain of 42@yandex.ru designates 37.140.190.181 as permitted sender) smtp.mailfrom=42@yandex.ru;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex.ru
Received: from mxback1o.mail.yandex.net (mxback1o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::1b])
by forward101o.mail.yandex.net (Yandex) with ESMTP id 919D813416EA
for <@gmail.com>; Thu, 10 Aug 2017 19:17:12 +0300 (MSK)
Received: from smtp1o.mail.yandex.net (smtp1o.mail.yandex.net [2a02:6b8:0:1a2d::25])
by mxback1o.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 3IjaA941Wl-HCe4hwWw;
Thu, 10 Aug 2017 19:17:12 +0300
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1502381832;
bh=AOjHaT+yDXpmJsW3LSDugt7u95YQzsSxsGi10r66W3Y=;
h=To:From:Subject:Message-ID:Date;
b=T2n/cJmZ2jEcX5rX5exetDc2VfT1lhVgPkMXfbIFAmw8PE6iLFkdddO7f67IRKfrb
KNV7U5whs9PUhGRd0S2x5OULF8VC3QXMSEvXJiM5gSxZdbNNNq2GRDpTkxbJiDASDT
A2DYgoRtpFzN64wX4EnSEmya/D24mP43VOi2TlAc=
Received: by smtp1o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id i5ALruo2pE-HC4WKA0l;
Thu, 10 Aug 2017 19:17:12 +0300
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(Client certificate not present)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1502381832;
bh=AOjHaT+yDXpmJsW3LSDugt7u95YQzsSxsGi10r66W3Y=;
h=To:From:Subject:Message-ID:Date;
b=T2n/cJmZ2jEcX5rX5exetDc2VfT1lhVgPkMXfbIFAmw8PE6iLFkdddO7f67IRKfrb
KNV7U5whs9PUhGRd0S2x5OULF8VC3QXMSEvXJiM5gSxZdbNNNq2GRDpTkxbJiDASDT
A2DYgoRtpFzN64wX4EnSEmya/D24mP43VOi2TlAc=
Authentication-Results: smtp1o.mail.yandex.net; dkim=pass header.i=@yandex.ru
To: @gmail.com
From: Habratest <i@yandex.ru>
Subject: Test fot Habr
Message-ID: <48942373-b6c4-d019-a15f-6aeaeeda39df@yandex.ru>
Date: Thu, 10 Aug 2017 21:17:10 +0500
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
Thunderbird/52.2.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Hbrahabrahabrahabrahabrahabrahabrahabrahabrahabrahabrahabrahabra
受信者アドレスは
@gmail.com
に置き換えられ、現在のアドレスは
42@yandex.ru
ヤンデックスのモラルとレスポンス
この脆弱性は、ソーシャルエンジニアリングに大きな機会をもたらします。 したがって、GeekBrainsなどのアドレスを使用できます。GeekBrainsは、メールにトラフィックルール(または接続)を使用します。
DKIMチェックはパスしますが、ドメインはYandexによって指定されます(別のメールドメインを使用することもあります)。
当然、私はすぐに昨夏Yandexのバッグハンターでそれについて書き、
答えを受け取った:
私の前に、脆弱性は2016年6月27日に彼らに送られました。 つまり Yandexは1年間、メーラーを使用するYandexパートナーのセキュリティに影響を与える可能性がある十分に深刻な(私の意見では)脆弱性を修正できませんでした。
UPD:送信者アドレスをマスクする方法があります。 これを行うには、ほぼ同様のドメインを購入し、トラフィックルールを固定して、そこから手紙を送信するだけで十分です。 アドレスも同様に置き換えられ、すべてのチェックが有効になり、DKIM署名と送信者アドレスは新しいドメインからのものになります。
ちなみに、mail.ruとgmailはこの影響を受けません。 GeekBrains、すみませんが、あなたはアバターとして燃えたので、Yandexサービスを使用している人の中で、あなただけを知っています。