EvilProxy AiTM钓鱼攻击检测技术详解

本文深入分析EvilProxy AiTM钓鱼攻击的检测方法,包括租户背景图像特征识别、可疑引用源检测、代理请求监控等技术细节,提供具体的Splunk查询规则和Azure日志分析方案,帮助防御者有效识别中间人攻击。

EvilProxy AiTM— 第2部分 检测

使用EvilProxy的中间人攻击(Adversary in the Middle)正逐渐成为日益严重的钓鱼威胁,其能够窃取MFA令牌的能力使其快速成为钓鱼的主要手段。

这是一个由两部分组成的博客文章 - 请参阅第1部分了解在我蜜罐租户中的攻击演练: https://medium.com/@martinconnarty/adversary-in-the-middle-part-1-walkthrough-2c91fb00197

以下是我总结的一些检测思路。随着我了解更多,这些方法也会不断更新。

租户图像特征

我观察到的许多中间人攻击页面都利用了一个功能:加载受害者租户的背景图像(当然,如果存在的话!)。作为防御者,如果我们能够访问适当类型的日志(包含URL和引用源的Web代理日志),我们就可以进行一些检测!

AiTM页面通常会直接从authcdn拉取图像(https://aadcdn.msauthimages.net/<唯一租户ID>/logintenantbranding/0/illustration?ts=)

如何找到你的租户ID?很简单:

  1. 访问 https://login.microsoftonline.com
  2. 打开开发者工具(Ctrl+Shift+I)
  3. 打开网络标签页: 图片描述
  4. 输入或选择你的邮箱 - 这将触发背景加载: 图片描述
  5. 选择你看到的’illustration?ts…‘的URL - 右键点击并"复制链接地址"
  6. 你会得到类似这样的链接: https://aadcdn.msauthimages.net/52ksdjfklj-kdr3246598sgljsdlfk-j2-k287s84lsj3j/logintenantbranding/0/illustration?ts=638307426057595200
  7. 唯一的租户字符串(是的,我已经修改了我的!)将是这部分: “52ksdjfklj-kdr3246598sgljsdlfk-j2-k287s84lsj3j”

优先缓解 - 在背景图像上使用覆盖层

我首先建议你在背景图像上使用覆盖层(在此设置:https://entra.microsoft.com/#view/Microsoft_AAD_UsersAndTenants/CompanyBrandingOverview.ReactView)

如果你能让用户每次看到登录页面时都检查URL,那么可能会阻止很多这类攻击。也许可以像这样: 随意使用此设计!

这将产生类似这样的效果: 图片描述

寻找可疑引用源 - 直接访问情况

如果我们在Web代理日志中对引用源建立基线 - 我们通常会观察到它们通常是合法的Microsoft页面,如 https://login.microsoftonline.com/

如果我们看到任何其他内容,就应该进行调查/创建新规则。

1
| tstats `summariesonly` count from datamodel=Web where Web.url="https://aadcdn.msauthimages.net/<这是你的租户ID>/logintenantbranding/0/illustration?*" AND NOT Web.http_referrer IN ("login.microsoftonline.com/*") by Web.user Web.http_referrer

寻找可疑请求 - 代理访问情况

在一个AiTM页面的例子中,不是受害者的浏览器直接访问图像,而是访问的网站获取了图像。然而,我们可以在日志中看到相同的租户ID。这是不寻常的,我们可以寻找这种情况:

1
| tstats `summariesonly` count from datamodel=Web where Web.url="*<这是你的租户ID>*" AND Web.dest!="aadcdn.msauthimages.net" by Web.user Web.dest Web.url

注意:对于这两种方法,我想象未来的AiTM工具包会相应调整,因此追逐将继续。确保用户养成检查URL栏的习惯将更加稳健。

在Azure日志中寻找请求

这有点棘手,然而在我看到的例子中,尝试中经常出现非典型的应用程序或位置。根据我的观察,它们通常在短时间内来自多个位置,并且在钓鱼点击的时间附近。

待完成 - 寻找用户位置异常峰值的Splunk规则。类似这样(注意:待完成!):

1
| index=azure category=SignInLogs | bucket span=5m | stats dc(src) as srccount by user _time | where srccount>5

#AiTM检测 #工程 #蓝队 #钓鱼 #钓鱼意识

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计