
Modlishka. Proxy inverso.
Modlishka è uno strumento open-source per penetration testing che funge da proxy man-in-the-middle. Introduce un nuovo approccio tecnico alla gestione del flusso di traffico HTTP basato su browser, consentendo di fare da proxy in modo trasparente al traffico verso destinazioni multi-dominio, sia TLS che non TLS, attraverso un unico dominio, senza richiedere l'installazione di alcun certificato aggiuntivo sul client.
Nel 2019, Modlishka è stato il primo strumento di ricerca rilasciato pubblicamente a dimostrare una nuova tecnica Adversary-in-the-Middle (AitM) in grado di aggirare molte implementazioni comuni di 2FA — con l'obiettivo di aumentare la consapevolezza e migliorare le difese reali.
Nota: Questo progetto è destinato esclusivamente a ricerche autorizzate e test di sicurezza professionali.
Test di sicurezza:
Generale:
Generale:
Sicurezza:
Modlishka in azione contro un esempio di schema 2FA (elusione basata su SMS):
Ultimo codice sorgente: zip | tar
Usando go install:
go install github.com/drk1wi/Modlishka@latest
Build manuale:
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 è distribuito sotto questa Licenza.
Per applicazioni commerciali, contatta l'autore per accordi di licenza.
Autore: Modlishka è stato progettato e implementato da Piotr Duszyński (@drk1wi). Tutti i diritti riservati.
Vedi l'elenco dei contributori che hanno partecipato a questo progetto.
Questo strumento è realizzato esclusivamente a scopo educativo e può essere utilizzato solo in penetration test legittimi o ricerche. L'autore non si assume alcuna responsabilità per le azioni intraprese dai suoi utilizzatori.