
Modlishka. Proxy Reverso.
Modlishka é uma ferramenta de teste de penetração open-source que atua como um proxy man-in-the-middle. Ela introduziu uma nova abordagem técnica para lidar com o fluxo de tráfego HTTP baseado em navegador, permitindo o proxy transparente de tráfego de destino de múltiplos domínios, tanto TLS quanto não-TLS, por meio de um único domínio, sem exigir a instalação de qualquer certificado adicional no cliente.
Em 2019, Modlishka foi a primeira ferramenta de pesquisa lançada publicamente a demonstrar uma técnica inovadora de Adversário-no-Meio (AitM) capaz de contornar muitas implementações comuns de 2FA — com o objetivo de aumentar a conscientização e melhorar as defesas no mundo real.
Nota: Este projeto destina-se estritamente a pesquisas autorizadas e testes de segurança profissionais.
Testes de Segurança:
Geral:
Geral:
Segurança:
Modlishka em ação contra um esquema 2FA de exemplo (contorno baseado em SMS):
Código-fonte mais recente: zip | tar
Usando go install:
go install github.com/drk1wi/Modlishka@latest
Compilação manual:
git clone https://github.com/drk1wi/Modlishka.git
cd Modlishka
make
./dist/proxy -h
Usage of ./dist/proxy:
-cert string
base64 encoded TLS certificate
-certKey string
base64 encoded TLS certificate key
-certPool string
base64 encoded Certification Authority certificate
-config string
JSON configuration file. Convenient instead of using command line switches.
-controlCreds string
Username and password to protect the credentials page. user:pass format
-controlURL string
URL to view captured credentials and settings. (default "SayHello2Modlishka")
-credParams string
Credential regexp with matching groups. e.g.: base64(username_regex),base64(password_regex)
-debug
Print debug information
-disableSecurity
Disable proxy security features like anti-SSRF. Disable at your own risk.
-disableDynamicSubdomains
Translate URL domain names to be the proxy domain
-dynamicMode
Enable dynamic mode for 'Client Domain Hooking'
-forceHTTP
Strip all TLS from the traffic and proxy through HTTP only
-forceHTTPS
Strip all clear-text from the traffic and proxy through HTTPS only
-allowSecureCookies
Allow secure cookies to be set. Useful when using HTTPS and cookies have SameSite=None
-ignoreTranslateDomains string
Comma separated list of domains to never translate and proxy
-jsRules string
Comma separated list of URL patterns and JS base64 encoded payloads that will be injected
e.g.: target.tld:base64(alert(1))
-listeningAddress string
Listening address (default "127.0.0.1")
-listeningPortHTTP int
Listening port for HTTP requests (default 80)
-listeningPortHTTPS int
Listening port for HTTPS requests (default 443)
-log string
Local file to which fetched requests will be written (appended)
-pathHostRules string
Comma separated list of URL path patterns and target domains
e.g.: /path/:example.com,/path2:www.example.com
-plugins string
Comma separated list of enabled plugin names (default "all")
-postOnly
Log only HTTP POST requests
-proxyAddress string
Proxy that should be used (socks/https/http) e.g.: http://127.0.0.1:8080
-proxyDomain string
Proxy domain name that will be used e.g.: proxy.tld
-rules string
Comma separated list of string patterns and their replacements
e.g.: base64(old):base64(new),base64(older):base64(newer)
-staticLocations string
Comma separated list of FQDNs in location headers that should be preserved
-target string
Target domain name e.g.: target.tld
-targetRes string
Comma separated list of domains that were not translated automatically
e.g.: static.target.tld
-terminateTriggers string
Comma separated list of URLs from target's origin which will trigger session termination
-terminateUrl string
URL to which a client will be redirected after session termination
-trackingCookie string
Name of the HTTP cookie used to track the client (default "id")
-trackingParam string
Name of the HTTP parameter used to track the client (default "id")
Modlishka está licenciado sob esta Licença.
Para aplicações comerciais, entre em contato com o autor para acordos de licenciamento.
Autor: Modlishka foi projetado e implementado por Piotr Duszyński (@drk1wi). Todos os direitos reservados.
Veja a lista de contribuidores que participaram deste projeto.
Esta ferramenta é feita apenas para fins educacionais e pode ser usada apenas em testes de penetração ou pesquisa legítimos. O autor não se responsabiliza por qualquer ação tomada por seus usuários.