制作我们自己的网络钓鱼页面不是什么大事。从网站复制源代码和修改链接只是我们的工作。但是,如果我们想在相同的代码中为2FA添加钓鱼页面呢?
假设攻击者和受害者都在没有防火墙的同一网络(路由器)上。
攻击者使用网络钓鱼页面击打受害者,并强制登录。
当受害者登录时,攻击者将获得信息。他通过自己的设备输入信息。
现在,该网站要求2FA.So攻击者制作一个2FA钓鱼页面,并将其发送给受害者。
受害者不知道他收到了2FA是为另一个设备输入代码。
攻击者获取2FA凭据并将其输入到他的设备中。也许能行。
我的问题是,是否有可能将登录页和2FA页面的代码合并成单个代码,以及如何实现。简而言之,当攻击者输入登录详细信息并单击登录时,他应该直接获得2FA页面。
我想要方法
发布于 2020-04-24 09:58:02
是的,这是可行的。还有一些现有的平台为您处理典型的应用程序:- https://github.com/ustayready/CredSniper - https://github.com/kgretzky/evilginx2。
从概念上讲,它们是真正的应用程序,并传递所有身份验证因素。您甚至可以让受害者透明地使用真正的应用程序,同时获取凭据、2fa代码和会话标识符。
发布于 2020-04-23 23:48:01
我希望这是不言而喻的,但我假设你在这种情况下得到了“受害者”的同意。
这将需要更多的努力,而不仅仅是更改链接,您可能需要添加一些JavaScript。
假设您要发送的页面需要一个表单中的两个输入。
<form id="1" action="...">
<input type="text" name="username">
<input type="password" name="password">
</form>您需要在页面上实际放置两个表单,并使用javascript发送凭据并切换表单。
从一个隐藏的开始
<form id="1" action="..." onsubmit="yourJsFunction(this)">
<input type="text" name="username">
<input type="password" name="password">
</form>
<form id="2" class="hidden" action="...">
<input type="text" name="otp">
</form>当用户提交表单时,数据将转到您的javascript函数,然后您可以通过Ajax向服务器提交数据,隐藏第一个表单,并显示第二个表单。
<form id="1" action="..." class="hidden" onsubmit="yourJsFunction(this)">
<input type="text" name="username">
<input type="password" name="password">
</form>
<form id="2" action="...">
<input type="text" name="otp">
</form>应该是一个简单的javascript函数来编写。
发布于 2020-04-23 18:44:05
天真的2FA,像SMS一样,总是容易受到攻击,而且你也没什么办法。相反,您应该使用类似WebAuthn/U2F之类的方法来修复它,方法是将发送的凭据绑定到要发送到的域(也就是说,如果用户成为网络钓鱼站点的受害者并激活U2F,它获得的凭据只会有利于登录到网络钓鱼站点,而不是真正的站点,从而阻止攻击)。
https://security.stackexchange.com/questions/230409
复制相似问题