在Azure中使用恶意软件来访问Microsoft 365租户



网络钓鱼仍然是渗透组织的最成功方法之一。我们已经看到大量的恶意软件感染是由于用户打开受感染的附件或单击指向恶意站点的链接而导致的,这些站点试图破坏易受攻击的浏览器或插件。

现在,组织以如此快速的速度迁移到Microsoft 365,我们看到了一种新的攻击媒介-Azure应用程序

正如您将在下面看到的那样,网络罪犯可以创建,屏蔽和部署恶意的Azure应用程序,以用于其网络钓鱼活动。Azure应用程序不需要Microsoft的批准,更重要的是,它们不需要在用户计算机上执行代码,因此可以轻松绕过工作站上的检测工具和防病毒程序。

攻击者说服受害者安装了恶意的Azure应用程序之后,他将能够找出受害者所属的组织,访问受害者的文件,阅读她的电子邮件,代表受害者发送电子邮件(对于内部网络钓鱼攻击非常有用),并且通常多很多。

什么是Azure应用程序?


Microsoft创建了Azure应用程序服务,以使用户能够创建自己的基于云的应用程序,这些应用程序可以调用和使用Azure API和资源。这使得创建与Microsoft 365生态系统集成的强大自定义程序变得容易

,Azure中最常见的API之一就是MS Graph API。此API允许应用程序与用户环境进行交互,即:用户,组,OneDrive文档,Exchange Online邮箱和聊天。



就像您的iOS手机会询问您是否可以允许该应用程序访问您的联系人或位置一样,Azure也会询问您是否允许该应用程序访问必需的资源。显然,攻击者可以利用这一机会,以欺诈手段使应用程序访问一个或多个机密云资源。

攻击如何


要执行此攻击,攻击者必须拥有Web应用程序本身和Azure租户才能托管它。设置商店后,我们可以使用该链接启动网络钓鱼活动以安装Azure应用程序:



电子邮件中链接将用户定向到攻击者控制的网站(例如,myapp.malicious.com),该网站进而将受害者重定向到Microsoft登录页面。 。身份验证过程完全由Microsoft处理,因此使用多因素身份验证不是解决方案。

用户进入他的O365实例后,将立即为恶意应用程序创建令牌,并且将要求用户登录并向应用程序提供必要的权限。这是最终用户的外观(如果用户以前在SharePoint或Teams中安装了该应用程序,应该看起来很熟悉):



这是攻击者在我们应用程序的代码中所要求的MS Graph API权限:



如您所见,攻击者控制着应用程序的名称(“ MicrosoftOffice” )和快捷方式(我们使用了OneNote快捷方式)。该URL是有效的Microsoft URL,该证书也有效。

但是,在应用程序名称下会显示攻击者的租户的名称和警告消息,并且不能隐藏任何一个。攻击者的希望是,用户将急忙,看到熟悉的快捷方式,并像使用条款的通知一样迅速而周到地跳过此信息。

通过单击“接受”,受害人代表他的帐户授予我们的应用程序权限,也就是说,该应用程序将能够读取受害人的电子邮件并获得对受害人有权访问的任何文件的访问权限。

此步骤是唯一需要受害者同意的步骤,从现在开始,攻击者将完全控制用户帐户和资源

在同意申请后,受害者将被重定向到我们选择的网站。比较最近用户对文件的访问并将它们重定向到最近打开的内部SharePoint文档之一,可以是引起最少怀疑的好方法。

收到的机会


此攻击非常适合以下活动:

  • 智能(获取用户租户中的帐户,组,对象的列表);
  • 内部网络钓鱼
  • 文件资源和电子邮件中的数据被盗。

为了说明Azure应用程序的功能,我们创建了一个有趣的控制台来显示作为PoC(概念验证)测试的一部分而访问的资源:



“我”部分显示了受害人的详细信息:



“用户”部分将为我们显示上述每个元数据组织中的单个用户,包括电子邮件地址,手机号码,职务等,这取决于组织的Active Directory的属性。仅此API调用便会严重违反个人数据保护政策,尤其是在GDPR和CCPA的框架内。



日历部分向我们显示受害者日历的事件。我们还可以代表她安排约会,查看现有会议,甚至删除以后的会议。

控制台应用程序中最重要的部分也许是“最近文件” 部分,该部分使我们可以查看用户在OneDrive或SharePoint中访问的任何文件。我们还可以上传或修改文件(包括带有恶意宏的文件以发起攻击)。



重要说明:当我们通过此API访问文件时,Azure将创建一个唯一链接。即使组织不允许普通365用户匿名交换链接,任何地方的任何人都可以访问此链接。
API链接很特殊。坦白地说,我们不确定为什么它们不受组织交换链接的政策的限制;如果政策更改,Microsoft可能不想破坏现有的用户应用程序。该应用程序可能会请求下载链接或修改文件的链接-在我们的PoC中,我们同时要求两者。

通过“ Outlook”部分,我们可以完全访问受害者的电子邮件。我们可以看到任何邮件的收件人,按优先级过滤它们,发送电子邮件(内部网络钓鱼)等等。



通过阅读受害者的电子邮件,我们可以识别她的交流圈子和该圈子中最脆弱的联系人,代表我们的受害者发送内部网络钓鱼电子邮件,从而在组织内部发动攻击。我们还可以使用受害者的电子邮件地址和圈子中的联系人来过滤在365中找到的数据。

此外,Microsoft提供了一个API,可提供有关受害者当前通信圈子的信息:



如上所述,我们可以修改用户文件受相关权利的约束。但是,如果我们使用API​​修改文件怎么办?



一种选择是将我们的恶意Azure应用程序转变为勒索软件程序,该程序可以远程加密受害者有权在SharePoint和OneDrive上修改的文件:



但是,这种加密文件的方法并不可靠(因为可以使用更严格的备份设置还原某些文件),但是具有默认配置的租户可能会永久丢失数据。另一方面,除非获得赎金,否则我们总是可以带出机密数据并扬言将其发布。

其他来源:

  • 凯文·米特尼克(Kevin Mitnik)引入了一种类似的基于云的加密方法,该方法适用于邮箱。
  • Krebs On Security在他的博客上也写了一篇有关此类攻击的好文章。

问题的紧迫性


如今,这种网络钓鱼技术的意识还相对较低。许多专家不了解由于组织中只有一名员工提供了对恶意Azure应用程序的访问权限,因此攻击者可能造成的潜在损害级别。同意Azure应用程序与运行恶意.exe文件或允许从未知发件人的文档中激活宏没有太大区别。但是,由于这是一种较新的向量,不需要在用户的计算机上执行代码,因此检测和阻止更加困难。

如何禁用所有第三方应用程序?


Microsoft不建议设置禁止用户授予应用程序权限的禁令:
“您可以为租户禁用集成应用程序。这是一个根本步骤,全球性地剥夺了最终用户在租户级别提供同意的能力。这样可以防止您的用户无意中授予对恶意应用程序的访问权限。这不是一个强烈的建议,因为它严重损害了用户使用第三方应用程序的能力。”

如何检测对Azure应用程序的滥用?


检测非法权限的最简单方法是跟踪Azure AD中的访问事件,并定期在Azure门户中查看企业应用程序。

总是问自己问题:

  • 我知道这个程序吗?
  • 它属于我认识的组织吗?

对于Varonis客户: DatAlert模块具有检测恶意权限的威胁模型。也可以创建自己的Azure应用共享通知规则。

如何删除恶意应用程序?


在Azure门户中,转到“ Azure Active Directory”选项卡的“企业应用程序”部分,然后卸载应用程序。普通用户可以通过访问myapps.microsoft.com,检查此处列出的应用程序并根据需要吊销权限来删除先前授予的权限。

有关详细说明,请参见Microsoft的官方指南

All Articles