All Projects → drk1wi → Modlishka

drk1wi / Modlishka

Licence: other
Modlishka. Reverse Proxy.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to Modlishka

mps
MPS is a high-performance HTTP(S) proxy library that supports forward proxies, reverse proxies, man-in-the-middle proxies, tunnel proxies, Websocket proxies. MPS 是一个高性能HTTP(s)中间代理库,它支持正向代理、反向代理、中间人代理、隧道代理、Websocket代理
Stars: ✭ 64 (-98.24%)
Mutual labels:  mitm, reverse-proxy
Ethereum Lists
A repository for maintaining lists of things like malicious URLs, fake token addresses, and so forth. We love lists.
Stars: ✭ 300 (-91.74%)
Mutual labels:  security-tools, phishing
Ssh Mitm
ssh mitm server for security audits supporting public key authentication, session hijacking and file manipulation
Stars: ✭ 335 (-90.78%)
Mutual labels:  security-tools, mitm
Opensquat
Detection of phishing domains and domain squatting. Supports permutations such as homograph attack, typosquatting and bitsquatting.
Stars: ✭ 149 (-95.9%)
Mutual labels:  security-tools, phishing
Isthislegit
Dashboard to collect, analyze, and respond to reported phishing emails.
Stars: ✭ 251 (-93.09%)
Mutual labels:  security-tools, phishing
Rebel Framework
Advanced and easy to use penetration testing framework 💣🔎
Stars: ✭ 183 (-94.96%)
Mutual labels:  security-tools, mitm
Spoofcheck
Simple script that checks a domain for email protections
Stars: ✭ 437 (-87.97%)
Mutual labels:  security-tools, phishing
Awesome Network Stuff
Resources about network security, including: Proxy/GFW/ReverseProxy/Tunnel/VPN/Tor/I2P, and MiTM/PortKnocking/NetworkSniff/NetworkAnalysis/etc。More than 1700 open source tools for now. Post incoming.
Stars: ✭ 578 (-84.09%)
Mutual labels:  reverse-proxy, mitm
Whatweb
Next generation web scanner
Stars: ✭ 3,503 (-3.6%)
Mutual labels:  security-tools, penetration-testing-tools
Reverse Shell Cheatsheet
🙃 Reverse Shell Cheat Sheet 🙃
Stars: ✭ 297 (-91.83%)
Mutual labels:  reverse-proxy
Mitmf
Framework for Man-In-The-Middle attacks
Stars: ✭ 3,277 (-9.82%)
Mutual labels:  mitm
Rmiscout
RMIScout uses wordlist and bruteforce strategies to enumerate Java RMI functions and exploit RMI parameter unmarshalling vulnerabilities
Stars: ✭ 296 (-91.85%)
Mutual labels:  security-tools
Heralding
Credentials catching honeypot
Stars: ✭ 297 (-91.83%)
Mutual labels:  security-tools
Annon.api
Configurable API gateway that acts as a reverse proxy with a plugin system.
Stars: ✭ 306 (-91.58%)
Mutual labels:  reverse-proxy
Wirespy
Framework designed to automate various wireless networks attacks (the project was presented on Pentester Academy TV's toolbox in 2017).
Stars: ✭ 293 (-91.94%)
Mutual labels:  mitm
Hetty
Hetty is an HTTP toolkit for security research.
Stars: ✭ 3,596 (-1.05%)
Mutual labels:  mitm
Vulcain
Fast and idiomatic client-driven REST APIs.
Stars: ✭ 3,190 (-12.22%)
Mutual labels:  reverse-proxy
Prowler
Prowler is a security tool to perform AWS security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains more than 200 controls covering CIS, ISO27001, GDPR, HIPAA, SOC2, ENS and other security frameworks.
Stars: ✭ 4,561 (+25.51%)
Mutual labels:  security-tools
Excelntdonut
Excel 4.0 (XLM) Macro Generator for injecting DLLs and EXEs into memory.
Stars: ✭ 301 (-91.72%)
Mutual labels:  phishing
Cheatsheet God
Penetration Testing Reference Bank - OSCP / PTP & PTX Cheatsheet
Stars: ✭ 3,521 (-3.11%)
Mutual labels:  security-tools

..Modlishka..

Modlishka is a powerful and flexible HTTP reverse proxy. It implements an entirely new and interesting approach of handling browser-based HTTP traffic flow, which allows to transparently proxy multi-domain destination traffic, both TLS and non-TLS, over a single domain, without a requirement of installing any additional certificate on the client. What does this exactly mean? In short, it simply has a lot of potential, that can be used in many use case scenarios...

From the security perspective, Modlishka can be currently used to:

  • Support ethical phishing penetration tests with a transparent and automated reverse proxy component that has a universal 2FA “bypass” support.
  • Automatically poison HTTP 301 browsers cache and permanently hijack non-TLS URLS.
  • Diagnose and hijack browser-based applications HTTP traffic from the "Client Domain Hooking" attack perspective.
  • Wrap legacy websites with TLS layer, confuse crawler bots and automated scanners, etc.
  • TBC

Modlishka was written as an attempt overcome standard reverse proxy limitations and as a personal challenge to see what is possible with sufficient motivation and a bit of extra research time. The achieved results appeared to be very interesting and the tool was initially released and later updated with aim to:

  • Highlight currently used two factor authentication (2FA) scheme weaknesses, so adequate security solutions can be created and implemented by the industry.
  • Support other projects that could benefit from a universal and transparent reverse proxy.
  • Raise community awareness about modern phishing techniques and strategies and support penetration testers in their daily work.

Modlishka was primarily written for security related tasks. Nevertheless, it can be helpful in other, non-security related, usage scenarios.

Efficient proxying !

Features

Some of the most important 'Modlishka' features :

General:

  • Point-and-click HTTP and HTTPS reverse proxying of an arbitrary domain/s.
  • Full control of "cross" origin TLS traffic flow from your users browsers (without a requirement of installing any additional certificate on the client).
  • Easy and fast configuration through command line options and JSON configuration files.
  • Pattern based JavaScript payload injection.
  • Wrapping websites with an extra "security": TLS wrapping, authentication, relevant security headers, etc.
  • Striping websites from all encryption and security headers (back to 90's MITM style).
  • Stateless design. Can be scaled up easily to handle an arbitrary amount of traffic - e.g. through a DNS load balancer.
  • Can be extended easily with your ideas through modular plugins.
  • Automatic test TLS certificate generation plugin for the proxy domain (requires a self-signed CA certificate)
  • Written in Go, so it works basically on all platforms and architectures: Windows, OSX, Linux, BSD supported...

Security related:

  • Support for majority of 2FA authentication schemes (out of the box).
  • Practical implementation of the "Client Domain Hooking" attack. Supported with a diagnostic plugin.
  • User credential harvesting (with context based on URL parameter passed identifiers).
  • Web panel plugin with a summary of automatically collected credentials and one-click user session impersonation module (proof-of-concept/beta).
  • No website templates (just point Modlishka to the target domain - in most cases, it will be handled automatically without any additional manual configuration).

Proxying In Action (2FA bypass)

"A picture is worth a thousand words":

Modlishka in action against an example two factor authentication scheme (SMS based bypass proof-of-concept) :

https://vimeo.com/308709275

Installation

Latest source code version can be fetched from here (zip) or here (tar).

Fetch the code with 'go get' :

$ go get -u github.com/drk1wi/Modlishka

Compile the binary and you are ready to go:

$ cd $GOPATH/src/github.com/drk1wi/Modlishka/
$ make

alt text

# ./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. : baase64(username_regex),baase64(password_regex)

  -debug
    	Print debug information
  
  -disableSecurity
    	Disable proxy security features like anti-SSRF. 'Here be dragons' - disable at your own risk.
  
  -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
 
  -jsRules string
    	Comma separated list of URL patterns and JS base64 encoded payloads that will be injected - e.g.: target.tld:base64(alert(1)),..,etc
  
  -listeningAddress string
    	Listening address - e.g.: 0.0.0.0  (default "127.0.0.1")
  
  -log string
    	Local file to which fetched requests will be written (appended)
  
  -plugins string
    	Comma seperated list of enabled plugin names (default "all")
  
  -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
  
  -postOnly
    	Log only HTTP POST requests
  
  -rules string
      	Comma separated list of 'string' patterns and their replacements - e.g.: base64(new):base64(old),base64(newer):base64(older)

  -target string
    	Target domain name  - e.g.: target.tld
     
  -targetRes string
    	Comma separated list of domains that were not translated automatically. Use this to force domain translation - e.g.: static.target.tld 
  
  -terminateTriggers string
    	Session termination: 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 rules trigger
  
  -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")

References

  • WIKI pages: with more details about the tool usage and configuration.
  • FAQ

Blog posts:

License

Author: Modlishka was designed and implemented by Piotr Duszyński (@drk1wi) (this includes the technique described in the "Client Domain Hooking" paper) . You can find the relevant license here. All rights reserved.

The initial version of the tool was written as part of a bigger project that was dissolved and assets were distributed accordingly.

Credits

Big kudos go to all contributors 💪!

Kudos for helping with the final code optimization and great support go to Giuseppe Trotta (@Giutro).

Disclaimer

This tool is made only for educational purposes and can be used in legitimate penetration tests or research only. Author does not take any responsibility for any actions taken by its users.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].