Modlishka. 反向代理。
Modlishka 是一款开源渗透测试工具,可作为中间人代理使用。它引入了一种处理基于浏览器的 HTTP 流量流的新技术方法,使得能够透明地将多域目标流量(包括 TLS 和非 TLS)代理到单个域上,而无需在客户端安装任何额外的证书。
2019 年,Modlishka 是首个公开发布的研究工具,展示了一种新颖的中间人攻击者(AitM)技术,能够绕过许多常见的双因素认证(2FA)实现——旨在提高业界认知并改善现实防御。
说明: 本项目严格仅用于授权的研究和专业安全测试。
安全测试:
常规用途:
常规:
安全:
Modlishka 针对一个示例 2FA 方案(基于短信绕过)的实际演示:
使用 go install:
go install github.com/drk1wi/Modlishka@latest
手动构建:
git clone https://github.com/drk1wi/Modlishka.git
cd Modlishka
make
./dist/proxy -h
Usage of ./dist/proxy:
-cert string
base64 编码的 TLS 证书
-certKey string
base64 编码的 TLS 证书密钥
-certPool string
base64 编码的证书颁发机构证书
-config string
JSON 配置文件。比使用命令行开关更方便。
-controlCreds string
用于保护凭据页面的用户名和密码。格式:user:pass
-controlURL string
查看捕获的凭据和设置的 URL。(默认为 "SayHello2Modlishka")
-credParams string
带匹配组的凭据正则表达式。例如:base64(用户名_regex),base64(密码_regex)
-debug
打印调试信息
-disableSecurity
禁用代理安全功能(如反 SSRF)。风险自负。
-disableDynamicSubdomains
将 URL 域名转换为代理域名
-dynamicMode
为 'Client Domain Hooking' 启用动态模式
-forceHTTP
剥离所有 TLS,仅通过 HTTP 代理
-forceHTTPS
剥离所有明文,仅通过 HTTPS 代理
-allowSecureCookies
允许设置安全 cookie。在 HTTPS 且 cookie 具有 SameSite=None 时有用
-ignoreTranslateDomains string
从不翻译和代理的域名列表,以逗号分隔
-jsRules string
URL 模式与 base64 编码的 JS 载荷的逗号分隔列表,将被注入
例如:target.tld:base64(alert(1))
-listeningAddress string
监听地址(默认为 "127.0.0.1")
-listeningPortHTTP int
HTTP 请求的监听端口(默认为 80)
-listeningPortHTTPS int
HTTPS 请求的监听端口(默认为 443)
-log string
本地文件,获取的请求将被写入(追加)
-pathHostRules string
URL 路径模式与目标域的逗号分隔列表
例如:/path/:example.com,/path2:www.example.com
-plugins string
启用的插件名称列表,以逗号分隔(默认为 "all")
-postOnly
仅记录 HTTP POST 请求
-proxyAddress string
应使用的代理(socks/https/http)例如:http://127.0.0.1:8080
-proxyDomain string
将使用的代理域名,例如:proxy.tld
-rules string
字符串模式及其替换的逗号分隔列表
例如:base64(old):base64(new),base64(older):base64(newer)
-staticLocations string
Location 头中应保留的 FQDN 列表,以逗号分隔
-target string
目标域名,例如:target.tld
-targetRes string
未自动翻译的域名列表,以逗号分隔
例如:static.target.tld
-terminateTriggers string
源自目标的 URL 列表(以逗号分隔),触发会话终止
-terminateUrl string
会话终止后客户端将被重定向到的 URL
-trackingCookie string
用于跟踪客户端的 HTTP cookie 名称(默认为 "id")
-trackingParam string
用于跟踪客户端的 HTTP 参数名称(默认为 "id")
Modlishka 的许可条款参见此许可。
如需商业应用,请联系作者商谈许可安排。
作者:Modlishka 由 Piotr Duszyński(@drk1wi)设计和实现。版权所有。
请参阅参与本项目的贡献者列表。
此工具仅用于教育目的,并且只能用于合法的渗透测试或研究。作者对其用户的任何行为不承担任何责任。