微软
居然可以从Microsoft发钓鱼邮件?!
2024-11-10 17:00  

居然可以从Microsoft发钓鱼邮件?!

这篇推文介绍了我在 发现的一个神奇又简单的漏洞。说实话microsoft outlook收件箱,我不能完全理解这个漏洞背后的逻辑。不管怎样,现在它已经被修复了。

九月的时候,我在测试各种邮件应用的垃圾邮件过滤器,比如 Gmail、 和 Yandex。我使用了 上的大学邮箱以及 Gmail 和 Yandex 上的个人邮箱作为测试对象。我在亚马逊服务器上安装了 sees 工具(工具获取地址:)来发送钓鱼邮件。但是测试并不成功。一个用于测试我的Yandex邮箱的样例:

它被检测出并放进了垃圾过滤器。试了试 Gmail 和microsoft outlook收件箱,情况还是一样。或许这个工具并不实用,或许我犯了什么错误,我并不确定。

突然,一件奇怪的事发生了。我看到在我 Yandex 收件箱里的一封主题为 “” 的邮件出现了绿色的有效标志。

开始的时候,我以为是我无意中发送了另一封测试邮件给我的 Yandex 邮箱并通过了过滤。但后来我意识到,我是发送了主题为 “” 的邮件给 Yandex 邮箱,并发送了主题为 “” 的邮件给 Outlook 邮箱。应该还有别的东西。

检查了几分钟后,我想起曾经给我的 设置了邮件转发到 Yandex 邮箱,所以 Outlook 转发这封邮件给了 Yandex。但是为什么那个有效标志会在这时候出现?

我在 Yandex 网站上看到它是这么说的(顺便说一下,这个功能现在已经不支持了):“使用 DKIM 签名,收件人可以验证邮件是否真的来自可信的发件人。”

这是一个简单的 DKIM(Mail,域名密钥识别邮件)验证器。所以基本上如果一封邮件被有效的证书签名,并忽略发送者的域名,我们就可以看到这个很酷的绿色标志了。所以,只要发送域名是 ,它就一定已经被 的证书签名了吗??

为了了解到底发生了什么,我检查了这些垃圾邮件和有效邮件的邮件头。下图是被 Yandex 标记为垃圾邮件的邮件头:

代码:

Received: from mxfront15h.mail.yandex.net ([127.0.0.1])
 by mxfront15h.mail.yandex.net with LMTP id HG70cJmK
 for ; Sat, 3 Sep 2016 22:02:37 +0300
Received: from ec2-52-51-33-8.eu-west-1.compute.amazonaws.com (ec2-52-51-33-8.eu-west-1.compute.amazonaws.com [52.51.33.8])
 by mxfront15h.mail.yandex.net (nwsmtp/Yandex) with ESMTP id K8106KgL1a-2aGmWbm2;
 Sat, 03 Sep 2016 22:02:36 +0300
Return-Path: [email protected]
X-Yandex-Front: mxfront15h.mail.yandex.net
X-Yandex-TimeMark: 1472929356
Authentication-Results: mxfront15h.mail.yandex.net; spf=fail (mxfront15h.mail.yandex.net: domain of example.com does not designate 52.51.33.8 as permitted sender) [email protected]
X-Yandex-Spam: 1
Received: from [127.0.0.1] (localhost [127.0.0.1])
 by ip-10-0-0-12.eu-west-1.compute.internal (Postfix) with ESMTP id 2749C42DA5
 for ; Sat,  3 Sep 2016 19:02:36 +0000 (UTC)
Content-Type: multipart/alternative;
    boundary="127.0.0.1.0.4022.1472929356.122.1"
From: Johannes Brahms 
Subject: Verify Test 1
MIME-Version: 1.0
To: [email protected]

它的接受者是亚马逊服务器,它没有被有效的证书签名,毫无疑问它会被放进垃圾邮件过滤器里。接下来我们检查有效邮件的邮件头:

代码:

Received: from mxfront9h.mail.yandex.net ([127.0.0.1])
 by mxfront9h.mail.yandex.net with LMTP id anm2f8eB
 for ; Sat, 3 Sep 2016 22:05:49 +0300
Received: from mail-he1eur01lp0215.outbound.protection.outlook.com (mail-he1eur01lp0215.outbound.protection.outlook.com [213.199.154.215])
 by mxfront9h.mail.yandex.net (nwsmtp/Yandex) with ESMTPS id **REMOVED**;
 Sat, 03 Sep 2016 22:05:48 +0300
 (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits))
 (Client certificate not present)
Return-Path: [email protected]
X-Yandex-Front: mxfront9h.mail.yandex.net
X-Yandex-TimeMark: 1472929548
Authentication-Results: mxfront9h.mail.yandex.net; dkim=pass [email protected]
X-Yandex-Spam: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=bilgiedu.onmicrosoft.com; s=selector1-bilgiedu-net;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=**REMOVED**
 b=**REMOVED**
Resent-From: 
Received: from HE1PR0401CA0023.eurprd04.prod.outlook.com (10.166.116.161) by
 AM5PR0401MB2563.eurprd04.prod.outlook.com (10.169.245.14) with Microsoft SMTP
 Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id
 15.1.609.3; Sat, 3 Sep 2016 19:05:44 +0000
Received: from AM5EUR02FT060.eop-EUR02.prod.protection.outlook.com
 (2a01:111:f400:7e1e::203) by HE1PR0401CA0023.outlook.office365.com
 (2a01:111:e400:c512::33) with Microsoft SMTP Server (version=TLS1_0,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.609.3 via Frontend
 Transport; Sat, 3 Sep 2016 19:05:44 +0000
Received-SPF: Fail (protection.outlook.com: domain of example.com does not
 designate 52.51.33.8 as permitted sender) receiver=protection.outlook.com;
 client-ip=52.51.33.8; helo=ip-10-0-0-12.eu-west-1.compute.internal;
Received: from ip-10-0-0-12.eu-west-1.compute.internal (52.51.33.8) by
 AM5EUR02FT060.mail.protection.outlook.com (10.152.9.179) with Microsoft SMTP
 Server id 15.1.587.6 via Frontend Transport; Sat, 3 Sep 2016 19:05:43 +0000
Received: from [127.0.0.1] (localhost [127.0.0.1])
 by ip-10-0-0-12.eu-west-1.compute.internal (Postfix) with ESMTP id E7BF642DA5
 for ; Sat,  3 Sep 2016 19:05:42 +0000 (UTC)
Content-Type: multipart/alternative;
 boundary="127.0.0.1.0.4033.1472929542.917.1"
From: Johannes Brahms 
Subject: Verify Test 2
MIME-Version: 1.0
To: 

实话说,我并没有完全懂发生了什么,因为我不是邮件身份认证方向的专家。邮件的接受者是 域名并持有 DKIM 签名。让我们一起检查这个邮件头(我移除了bh域和b域):

a=签名算法

c=规范化算法

d=签名的域名

h=被签名的邮件头列表

bh=正文哈希

b=内容的数字签名

所以我的邮箱地址是 但签名的域名却是 。我不确定是否所有的 用户都会出现这种情况,可能是的。

但是邮件显示发送者是。这让我感到很困惑。难道 的签名和 的签名是一样的吗?如果是的话,这就是微软方面的问题了。或者,情况不是这样,而是 Yandex 的问题即可以识别有效的 DKIM 签名。或者,我完全不知道关于这个 DKIM 的精髓。

更新(2016年11月20日):Reddit 用户 ptmb 很好的解释了到底发生了什么。

“对 /u/indrora 关于 DKIM 的解释做进一步的补充,针对这个问题,和为什么它会和 DKIM 有关,就是因为 Outlook 在转发邮件时会用自己的 DKIM 密钥对邮件签名,而不会继续保留邮件原来的签名(没有签名时也一样)。”

这就意味着,你收到的邮件具有“转发者”的身份证明,而没有原始发送者的身份证明。而且因为Outlook 对这些转发的邮件是盲签名的,如果邮件把发送域伪装成 ,经过 Outlook 的盲转发之后,邮件就碰巧有了真正的 DKIM 签名,即使原始邮件根本不是从 发出的。

我决定做一些其他的测试。我把转发地址换成了我的 Gmail 邮箱地址并用 域名把钓鱼邮件发送给了我的 Outlook 邮箱。它被Outlook过滤到了垃圾过滤器居然可以从Microsoft发钓鱼邮件?!,却被 Gmail 放进了收件箱。

我把转发地址又换回了 Yandex。这次我把钓鱼地址的域名伪装成其他的名字而不是 。它被 Outlook 和 Yandex 都放进了垃圾箱。也没有“绿色的有效标志”出现(很明显)。

即使我并不完全明白发生了什么,我仍然可以从 发送有效的邮件给任何人。

不管怎样,我决定通知 Yandex 和 。我告诉 Yandex 你可能在“绿色的有效标志”上出现了问题,它可能会导致用户误以为是安全的。同时我也给 发送了一个漏洞报告。

我还没有从 Yandex 收到回复B2B电子商务平台,但是之后 安全团队说他们再现了这个漏洞。过了一段时间,漏洞被修复了。奇怪的是,Yandex 在过了一段时间之后取消了“绿色标志”(我不知道取消的确切时间),我不确定这是不是和这个异常有关。

下面是漏洞修补的时间线。

2016年9月3日

我将问题报告给了

2016年9月3日

把报告发送给了分析员

2016年9月29日

说他们重现了这个问题

2016年10月27日

宣布漏洞已经修复

2016年11月

在其安全中心()上给出了我的名字。

文章由Green奇编译

原文链接:

欢迎大家拿稿子砸我呦!

投稿请发至

如有企业合作,

请发邮件至

微博:看雪安全

看雪安全 · 看雪众测

持续关注安全16年,专业为您服务!

【本文来源于互联网转载,如侵犯您的权益或不适传播,请邮件通知我们删除】

发表评论
0评