H

无框- bitb-不使用iFrame的浏览器(BITB)浏览器的新方法 允许通过Microsoft等登录页面实现的传统框架旁路 以及与Evilginx一起使用

在不使用iFrame的情况下,在浏览器(BITB)中浏览器的一种新方法,允许通过Microsoft等登录页面实现的传统框架旁路。
此POC代码是为使用Evilginx和Microsoft Enterprise Phishlet使用此新的BITB而构建的。
在深入研究之前,我建议您首先在Bsides 2023上查看我的演讲,在那里我首次介绍了此概念以及如何制作“完美”网络钓鱼攻击的重要详细信息。 ▶观看视频
︎给我买咖啡
Video Tutorial:

Disclaimer​

此工具仅用于教育和研究目的。它在浏览器(BITB)方法中演示了基于非iFrame的浏览器。作者对任何滥用都不承担任何责任。仅在受控环境中法律和道德上仅在法律上和道德上使用此工具进行网络安全防御测试。通过使用此工具,您同意这样做,并承担自己的风险。

Backstory - The Why​

在过去一年中,我一直在尝试不同的技巧来制作“完美”的网络钓鱼攻击。典型的“危险信号”人经过培训是诸如紧迫性,威胁,权威,语法差等。如今,人们检查的下一个最好的东西是与他们正在互动的网站的链接/网址,并且他们在要求他们输入敏感的凭据(例如电子邮件和密码)时会非常有意识。
那就是浏览器(BITB)中浏览器发挥作用的地方。 BITB最初是由@MRD0X引入的,是创建信仰浏览器窗口的外观的概念,其中攻击者在其中控制内容(通过在iFrame内提供恶意网站)。但是,伪造浏览器窗口的假url栏设置为用户期望的合法网站。与Evilginx这样的工具结合在一起,它成为了相信网络钓鱼攻击的完美秘诀。
问题在于,在过去的几个月/几年中,像Microsoft这样的主要网站实施了称为“ Framebusters/Framekillers”的各种小技巧,这些技巧主要试图破坏可能用于为代理网站提供服务的IFRAME,例如Evilginx。
简而言之,对于Microsoft等网站而言,Evilginx + BITB不再工作。至少不是依赖于iframe的bitb。

The What​

浏览器(BITB)中的浏览器没有任何iframe!那样简单。
这意味着我们现在可以在Microsoft等网站上使用BITB与Evilginx一起使用。
这里的evilginx只是一个强烈的例子,但是同样的概念也可以用于其他用例。

The How​

FrameBusters专门针对IFRAMES,因此想法是在不使用IFRAME的情况下创建BITB效果,而不会破坏代理页面的原始结构/内容。这可以通过使用搜索和替换(又称替换)的原始内容来注入脚本和HTML,然后完全依靠HTML/CSS/JS技巧来实现视觉效果。我们还在HTML中使用一个名为“ Shadow dom”的其他技巧来放置着陆页(背景)的内容,以使其不会干扰验证的内容,从而使我们可以灵活地使用带有较小JS脚本的任何着陆页。

Instructions​

Video Tutorial​

Local VM:​

创建本地Linux VM。 (我个人在VMware Player上使用Ubuntu 22或Parallels Desktop)
更新和升级系统软件包:
sudo apt更新
Sudo Su
Adduser Evilginx
usermod -ag sudo evilginx
测试evilginx用户在sudo group:中
su -Evilginx
sudo ls -la /root
导航到用户回家dir:
CD /Home /Evilginx
(因为我们在本地运行所有内容,因此您也可以作为sudo用户做所有事情)

Evilginx Setup:​

下载并构建Evilginx:官方文档
将evilginx文件复制到/home /evilginx
安装GO:官方文档
wget https://go.dev/dl/go1.4.4.4.linux-amd64.tar.gz sudo tar -c/usr/local -xzf go1.21.4.linux-amd64.tar.tar.gz nano〜/.profile
来源〜/.profile Check:
GO版本安装Make:
sudo apt安装使构建evilginx:
CD/Home/Evilginx/Evilginx2与Phishlets和Redirectors :为我们的Evilginx创建新目录
mkdir/home/evilginx/evilginx复制构建,Phishlets和Redirectors:
cp/home/evilginx/evilginx2/build/evilginx/home/evilginx/evilginx/evilginx/evilginx/evilginx
cp -r/home/evilginx/evilginx2/redectors/home/evilginx/evilginx/rediectors
cp -r/home/evilginx/evilginx2/phishlets/home/evilginx/evilginx/phishlets ubuntu firewall Quick Fix(感谢@kgretzky)
sudo setcap cap_net_bind_service=+eip/home/home/evilginx/evilginx/evilginx/evilginx/evilginx在ubuntu上,如果您无法启动nameServer on : 3:错误,请尝试修改此文件
sudo nano /etc/systemd/resolved.conf编辑/添加dnsstublistener到no dnsstublistener=no
然后
sudo systemctl重新启动SystemD解决的

Optional:​

,由于我们将在Evilginx面前使用Apache2,因此我们需要让Evilginx聆听与443的不同端口。
nano〜/.evilginx/config.json更改https_port从443到8443

Setting Up Evilginx​

安装Apache2:
sudo apt install apache2 -y enable apache2 mod将被使用:(我们还禁用Access_compat模块,因为它有时会导致问题)
sudo a2enmod代理
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
Sudo A2enmod Env
sudo a2enmod包括
sudo a2enmod setenvif
sudo a2enmod ssl
sudo a2ensite默认-ssl
sudo a2enmod缓存
sudo a2enmod替补
sudo a2enmod标头
sudo a2enmod重写
sudo a2dismod access_compat启动并启用apache:
sudo systemctl start apache2 sudo systemctl启用apache2尝试如果apache和vm网络可以通过从主机上的浏览器访问VM的IP来尝试使用。

Modify Evilginx Configurations:​

如果尚未可用的话,安装git:
sudo apt -y安装git克隆此repo:
git克隆https://github.com/waelmas/frameless-bitb cd cd brameless-bitb

Install Apache2 and Enable Mods:​

为页面制作目录,我们将服务:
home:(可选)主页(在基础域)主要:着陆页(背景)Secondary: BitB窗口(前景)sudo mkdir/var/var/www/home
sudo mkdir/var/www/primary
sudo mkdir/var/www/scientary复制每个page:的目录
sudo cp -r ./pages/home//var/www/www/
sudo cp -r ./pages/primary//var/www/www/
sudo cp -r ./pages/secondary//var/www/optional:删除默认的apache页面(未使用):
sudo rm -r/var/www/html/将O365 Phishlet复制到Phishlets目录:
sudo cp ./o365.yaml/home/evilginx/evilginx/evilginx/phishlets/o365.yamlOptional:设置了日历窗口小部件以使用您的帐户而不是我内部的默认值,请访问pages/primary/primary/script.js。
正如我在演练视频中所解释的那样,Note on Demo Obfuscation:,我为urls和bitb的标题等文本内容提供了最小混淆。您可以通过在浏览器中打开demo-obfuscator.html来打开演示obfuscator。在现实世界中,我强烈建议您混淆注射HTML代码的较大块或使用JS技巧以避免被检测和标记。我正在使用的高级版本将使用高级技巧的组合,使扫描仪几乎不可能指纹/检测BITB代码,因此请继续关注。

Clone this Repo:​

由于我们在本地运行所有内容,因此我们需要生成Apache将使用的自签名的SSL证书。 Evilginx将不需要证书,因为我们将在开发人员模式下运行它。
我们将使用domain nake.com,该域将指向我们本地的VM。如果要使用其他域,请确保更改所有文件中的域(Apache Conf Files,JS文件等)
创建DIR和父母,如果他们不存在:
sudo mkdir -p /etc/ssl/localcerts/fake.com/使用openssl config File:生成SSL证书
sudo openssl req -x509 -nodes -days 365 -newkey RSA:2048 \
-keyout /etc/ssl/localcerts/fake.com/privkey.pem-out /etc/ssl/localcerts/fake.com/fullchain.pem \
-config OpenSl-local.cnf修改私钥权限:
sudo chmod 600 /etc/ssl/localcerts/fake.com/privkey.pem

Apache Custom Pages:​

复制自定义替代文件(我们方法的核心):
sudo cp -r ./custom-subs/etc/apache2/custom-subsImportant Note:在此存储库中,我在Mac和Windows BitB上的Chrome上包含了2个替换Chrome的替代配置。两者都具有轻/暗模式的自动检测和样式,它们应该充当基本模板,以实现其他浏览器/OS组合。由于我不包括用于访问我们的网络钓鱼页面的浏览器/OS组合的自动检测,因此您必须使用两个或实现自己的逻辑中的一种来自动切换。
两个配置文件/apache-configs /均相同,只有不同的指令用于替代文件。 (每个文件有2个参考)
#不注重您想要的一个,并记住在任何更改后重新启动Apache:
#include /etc/apache2/custom-subs/win-chrome.conf
include/etc/apache2/custom-subs/mac-chrome.conf只是为了使其更容易,我将两个版本都作为下一步的单独文件包含在内。
Windows/ChromeBITB:
sudo cp ./apache-configs/win-chrome-bitb.conf/etc/apache2/sites-enabled/000-default.confMac/ChromeBitB:
sudo cp ./apache-configs/mac-chrome-bitb.conf/etc/apache2/sites-enabled/000-default.conf test apache configs apache configs以确保没有错误:
sudo apache2ctl configTest restart apache以应用更改:
sudo systemctl restart apache2

Self-signed SSL certificates:​

使用ifconfig获取VM的IP,并在下一步的某个地方记下它。
现在,我们需要在主机文件中添加新的条目,以将此演示nake.com中使用的域和所有使用的子域中使用的域中使用Apache和Evilginx正在运行的VM。
On Windows:打开记事本作为管理员(搜索记事本右键单击作为管理员运行)
单击文件选项(左上角)和文件资源管理器地址栏中,复制并粘贴以下:
C: \ Windows \ System32 \ drivers \ etc \
将文件类型(右下)更改为“所有文件”。
双击名为主机的文件
On Mac:打开终端并运行以下:
sudo nano/private/etc/主机现在修改以下记录(用VM的IP替换[IP]),然后将记录粘贴到主机file:的末尾
#本地Apache和Evilginx设置
[ip] login.fake.com
[ip] account.fake.com
[ip] sso.fake.com
[ip] www.fake.com
[ip] portal.fake.com
[ip] nake.com
#节保存和退出的部分结束。
现在,在移至下一步之前重新启动浏览器。
Note:在Mac上,使用以下命令冲洗DNS CACHE:
sudo dscaceutil -flushcache; sudo killall -hup mdnsresponder

Apache Custom Configs:​

此演示是由提供的Office 365 Enterprise Phishlet进行的。要获取主机条目,您需要为其他Phishlet添加,请使用Phishlet get-主持人[Phishlet_name],但请记住将127.0.0.1替换为VM的实际本地IP。

Modifying Hosts:​

由于我们使用自签名的SSL证书,我们的浏览器会在每次尝试访问Fake.com时都会警告我们,因此我们需要使我们的主机信任签署SSL证书的证书授权。
在此步骤中,遵循视频说明更容易,但无论如何都是要点。
在您的Chrome浏览器中打开https://fake.com/。
忽略不安全的网站警告,然后进入页面。
单击SSL图标详细信息导出证书IMPORTANT:保存时,该名称必须以.crt的windows结尾才能正确打开。
双击它为当前用户安装。请勿选择自动,而是将证书放在特定的商店:中选择“受信任的路线认证机构”。
On Mac:要为当前用户安装,仅选择'KEYCHAIN:登录'AND单击“查看证书”详细信息信任始终信任
Now RESTART your Browser您现在应该能够访问https://fake.com,并在没有任何SSL警告的情况下查看主页。

Important Note:​

在这一点上,一切都应该准备就绪,以便我们可以继续前进,开始邪恶,设置Phishlet,创建我们的诱饵并进行测试。
可选:安装TMUX(即使终端会话关闭即使在远程VM上运行时也很有用,也可以使Evilginx运行。)
在开发人员模式下(使用TMUX避免丢失会话):
tmux new -session -s evilginx cd〜/evilginx/./evilginx -developer(重新代表tmux会话使用tmux附件- tecterment -session -t evilginx)
Evilginx Config:
config domain nake.com配置IPv4 127.0.0.1IMPORTANT:将evilginx黑名单模式设置为noadd,以避免使用黑名单的apache,因为所有请求都来自Apache,而不是实际的访问者IP。
黑名单NOADD设置Phishlet和Lure:
Phishlets主机名O365 Fake.com Phishlets启用O365诱饵创建O365诱饵Get-url 0复制Lure URL并从浏览器访问它(使用Chrome上的访客用户,以避免在测试之间删除所有保存/缓存的数据)。
010-1011 @mrd0x: 3https://github.com/mrd0x/bitb
Evilginx精通课程由Evilginx的创建者@kgretzky: https://ademy.breakdev.org/evilginx-mastery
我在Bsides的演讲2023:
如何使用CloudFlare和HTML Obfuscation : https://www.jackphilipbutton.com/po...cloudflare-and-html-obfusccation如何保护evilginx。
@bakkerjan: https://janbakker.tech/evilginx-resources-for-microsoft-365/

Trusting the Self-Signed SSL Certs:​

创建脚本以自动化大多数步骤
 
后退
顶部