muraen钓鱼工具-源码分析

背景

 传统网络钓鱼攻击是由虚假登录页面组成的,这些页面在攻击者控制的web服务器上,并由与目标网站名称相似的自定义域名提供服务。然而,对于2FA(双因素认证)而言,即使攻击者拿到了用户名密码,也无法登录网站,因为没有与合法网站进行交互来触发生成cookie。此时,攻击者需要让钓鱼网站充当代理,代表受害者转发请求到合法网站,并实时回传(中间人攻击)。

 识别中间人攻击的方式有很多,例如子资源完整性 (Subresource Integrity,SRI) 和内容安全策略 (Content Security Policy,CSP) 等技术(为什么能识别?还不明白)。为了绕过这些防御措施,Muraena应运而生。

Muraena的功能

 一旦部署完成,攻击者就可以配置他们的钓鱼域名,并为其获得合法的证书(通过非营利性的Let’s Encrypt证书颁发机构)。该工具包含充当反向代理的小型web服务器爬虫程序。爬虫程序可以自动确定从合法网站代理哪些资源。小型web服务器在传递来自受害者的请求之前重写这些请求。爬虫程序会自动生成一个JSON配置文件,然后可以手动修改该文件来绕过更复杂网站上的各种防御机制。

 一旦受害者登陆一个由Muraena提供支持的钓鱼网站,那么攻击过程如下所示:

(1)网站会要求用户输入他们的2FA验证码(用户名密码)。当他们提供验证码并完成身份验证之后,代理会窃取会话cookie。cookie通常由浏览器存储在一个文件中,并在后续请求中提供服务。

(2)Muraena自动将收集到的会话cookie传送给NecroBrowser,而NecroBrowser可以立即滥用cookie。
NecroBrowser是一个可以通过API进行控制的微服务,进行配置以后可在Docker容器内运行的Chromium实例执行操作。攻击者可以同时生成数十个容器,每个容器都有一个窃取的cookie。

源码阅读笔记

 注:没有实际跑过,看了四五天,头大,越看越不知道是干啥的。笔记以注释形式存在。

 链接:https://github.com/WD-2711/muraena

留言

2023-10-13

© 2024 wd-z711

⬆︎TOP