mitmproxy alternatives

Looking for an alternative tool to replace mitmproxy? During the review of mitmproxy we looked at other open source tools. Based on their category, tags, and text, these are the ones that have the best match.

Top 3

  1. SSH MITM (SSH MitM attack)
  2. Seth (MitM tool for RDP connections)
  3. SSLsplit (SSL/TLS MitM tool)

These tools are ranked as the best alternatives to mitmproxy.

Alternatives (by score)

60

SSH MITM

Introduction

This tool would most likely be used to intercept traffic during security assessments. Plaintext passwords and session data can be intercepted with it.

Project details

SSH MITM is written in Python.

Strengths and weaknesses

  • + More than 1000 GitHub stars
  • + The source code of this software is available

    Typical usage

    • Password discovery
    • Security assessment
    • Session hijacking

    SSH MITM review

    64

    Seth

    Introduction

    Seth is a security tool to perform a man-in-the-middle (MitM) attack and extract clear text credentials from RDP connections.

    Project details

    Seth is written in Python, shell script.

    Strengths and weaknesses

    • + The source code of this software is available

      Typical usage

      • Penetration testing
      • Security assessment

      Seth review

      74

      SSLsplit

      Introduction

      SSLsplit is a tool for man-in-the-middle attacks against SSL/TLS encrypted network connections. Connections are transparently intercepted through a network address translation engine and redirected to SSLsplit. SSLsplit terminates SSL/TLS and initiates a new SSL/TLS connection to the original destination address, while logging all data transmitted. SSLsplit is intended to be useful for network forensics and penetration testing.

      SSLsplit supports plain TCP, plain SSL, HTTP and HTTPS connections over both IPv4 and IPv6. For SSL and HTTPS connections, SSLsplit generates and signs forged X509v3 certificates on-the-fly, based on the original server certificate subject DN and subjectAltName extension. SSLsplit fully supports Server Name Indication (SNI) and is able to work with RSA, DSA and ECDSA keys and DHE and ECDHE cipher suites. Depending on the version of OpenSSL, SSLsplit supports SSL 3.0, TLS 1.0, TLS 1.1 and TLS 1.2, and optionally SSL 2.0 as well. SSLsplit can also use existing certificates of which the private key is available, instead of generating forged ones. SSLsplit supports NULL-prefix CN certificates and can deny OCSP requests in a generic way. For HTTP and HTTPS connections, SSLsplit removes response headers for HPKP in order to prevent public key pinning, for HSTS to allow the user to accept untrusted certificates, and Alternate Protocols to prevent switching to QUIC/SPDY. As an experimental feature, SSLsplit supports STARTTLS mechanisms in a generic manner.

      Project details

      SSLsplit is written in C.

      Strengths and weaknesses

      • + The source code of this software is available

        Typical usage

        • Learning
        • Network analysis
        • Penetration testing
        • Security assessment

        SSLsplit review

        60

        sslcaudit

        Introduction

        Sslcaudit is a tool that focuses on the niche of testing SSL/TLS clients.

        Project details

        sslcaudit is written in Python.

        Strengths and weaknesses

        • + The source code of this software is available

          Typical usage

          • Security assessment
          • Software testing

          sslcaudit review

          74

          Certificate Transparency

          Introduction

          HTTPS connections use cryptographic functions to provide confidentiality and integrity. It can provide features like domain validation, end-to-end encryption, and a trust chain from certificate authorities down to the end-user. Any flaws can endanger these goals, like the impersonation of a system, man-in-the-middle (MitM) attacks, and website spoofing. This project helps to find flaws and improve the overall security of our internet.

          Project details

          89

          Lemur

          Introduction

          With Lemur you can provide a central portal for developers and administrators to issue TLS certificates with predefined defaults.

          Lemur works on CPython 3.5 and uses the Flask framework. Another component it uses is cryptography to handle the creation of the certificates.

          Netflix develops on macOS and deploys on Ubuntu servers.

          Project details

          Lemur is written in Python.

          Strengths and weaknesses

          • + More than 500 GitHub stars
          • + The source code of this software is available
          • + Supported by a large company

            Typical usage

            • Certificate management

            Lemur review

            56

            MassBleed

            Introduction

            MassBleed is a SSL vulnerability scanner to check for several known vulnerabilities and attacks like DROWN, POODLE, and ShellShock.

            Project details

            MassBleed is written in Perl, Python, shell script.

            Strengths and weaknesses

            • + The source code of this software is available
            • - Full name of author is unknown
            • - Unknown project license

            Typical usage

            • Application security
            • Web application analysis

            MassBleed review

            97

            O-Saft

            Introduction

            O-Saft is the abbreviation for OWASP SSL advanced forensic tool.

            Project details

            O-Saft is written in Perl.

            Strengths and weaknesses

            • + The source code of this software is available

              Typical usage

              • Information gathering
              • Penetration testing
              • Security assessment
              • Vulnerability scanning
              • Web application analysis

              O-Saft review

              97

              OpenSSL

              Introduction

              This popular toolkit is used by many systems. It provides options like encryption and hashing of data, integrity testing, and digital certificates and signatures. Many software applications use the toolkit to provide support for these functions. OpenSSL also has a client utility that can be used on the command line to test, decrypt and encrypt data, and create certificates.

              Project details

              OpenSSL is written in C.

              Strengths and weaknesses

              • + The source code of this software is available
              • + Well-known library
              • - Major vulnerabilities in the past

              Typical usage

              • Certificate management
              • Data encryption

              OpenSSL review

              63

              SSLMap

              Introduction

              SSLMap uses its own SSL engine to avoid any dependencies or limitations with pre-installed libraries.

              Project details

              76

              SSLyze

              Introduction

              SSLyze provides a library for scanning services that use SSL/TLS for encrypted communications. It can be used to test their implementation.

              Project details

              64

              cipherscan

              Introduction

              The tool is of great assistance to quickly perform a security audit and may be used during penetrating testing, or guiding system administrator for system hardening.

              Project details

              cipherscan is written in Python, shell script.

              Strengths and weaknesses

              • + Screen output is colored
              • + More than 1000 GitHub stars
              • + Very low number of dependencies
              • + Supported by a large company

                Typical usage

                • Information gathering
                • Security assessment
                • System hardening
                • Web application analysis

                cipherscan review

                60

                clinker

                Introduction

                Clinker is a tool to test SSL and TLS security for Firefox. It is an addon that shows the used cipher suites, certificates, and shows related security information of the connection itself.

                Requirements: Firefox

                Project details

                84

                pshtt

                Introduction

                Pshtt was developed to push organizations, including government departments, to adopt HTTPS across the enterprise.

                Project details

                pshtt is written in Python.

                Strengths and weaknesses

                • + More than 500 GitHub stars
                • + The source code of this software is available

                  Typical usage

                  • Security assessment
                  • Web application analysis

                  pshtt review

                  52

                  ssldump

                  Introduction

                  ssldump is protocol analyzer for SSLv3/TLS network traffic. It identifies TCP connections on the chosen network interface and tries to interpret it.

                  Project details

                  Strengths and weaknesses

                  • + The source code of this software is available
                  • - No updates for a while

                  Typical usage

                  • Network analysis

                  ssldump review

                  74

                  testssl.sh

                  Introduction

                  Key features of testssl.sh include:

                  • Clear output: you can tell easily whether anything is good or bad
                  • Ease of installation: It works for Linux, Darwin, FreeBSD, NetBSD and MSYS2/Cygwin out of the box: no need to install or configure something, no gems, CPAN, pip or the like.
                  • Flexibility: You can test any SSL/TLS enabled and STARTTLS service, not only webservers at port 443
                  • Toolbox: Several command line options help you to run YOUR test and configure YOUR output
                  • Reliability: features are tested thoroughly
                  • Verbosity: If a particular check cannot be performed because of a missing capability on your client side, you'll get a warning
                  • Privacy: It's only you who sees the result, not a third party
                  • Freedom: It's 100% open source. You can look at the code, see what's going on and you can change it.

                  Project details

                  testssl.sh is written in shell script.

                  Strengths and weaknesses

                  • + Used language is shell script
                  • + The source code of this software is available

                    Typical usage

                    • Application testing
                    • Configuration audit

                    testssl.sh review

                    63

                    ArpON

                    Introduction

                    ArpOn protects a system by running as a daemon and guard against a Man in the Middle (MitM) attack due to ARP spoofing, cache poisoning, or an ARP poison routing attack.

                    The tool works by using three types of inspection to detect a related attack.

                    • SARPI (Static ARP Inspection), statically configured networks (without DHCP)
                    • DARPI (Dynamic ARP Inspection), dynamically configured networks (with DHCP)
                    • HARPI (Hybrid ARP Inspection), statically and dynamically configured networks (with DHCP)

                    Project details

                    ArpON is written in C.

                    Strengths and weaknesses

                    • + The source code of this software is available

                      ArpON review

                      78

                      BetterCAP

                      Introduction

                      BetterCAP is often used by those who perform penetration testing and security assessments. This tool and framework is in particular useful for attempting man-in-the-middle attacks (MitM).

                      Project details

                      BetterCAP is written in Golang.

                      Strengths and weaknesses

                      • + More than 25 contributors
                      • + More than 2000 GitHub stars
                      • + The source code of this software is available

                        Typical usage

                        • Bypassing security measures
                        • Penetration testing
                        • Security assessment

                        BetterCAP review

                        63

                        DNSChef

                        Introduction

                        DNSChef is a DNS proxy that can be used terminate or intercept traffic for DNS traffic. This might be useful during a penetration test or when researching malware and manipulate the actual DNS responses.

                        Project details

                        60

                        Nili

                        Introduction

                        This tool performs multiple types of scanning and attacks, which can be useful during penetration tests and security assignments.

                        Project details

                        Nili is written in Python.

                        Strengths and weaknesses

                        • + The source code of this software is available

                          Typical usage

                          • Network scanning
                          • Penetration testing
                          • Security assessment

                          Nili review

                          64

                          A2SV

                          Introduction

                          A2SV is short for Auto Scanning to SSL Vulnerability, a security tool to scan for SSL and TLS vulnerabilities. It can be used during security assessments.

                          Project details

                          A2SV is written in Python.

                          Strengths and weaknesses

                          • + The source code of this software is available
                          • - Full name of author is unknown

                          Typical usage

                          • Vulnerability scanning
                          • Vulnerability testing

                          A2SV review

                          70

                          sslh

                          Introduction

                          A typical use case for multiplexing is to allow serving several services on one port. Port 443 is commonly used, as that is typically opened on firewalls to allow HTTPS traffic. By multiplexing it, you can also use SSH or other services on the same port.

                          Project details

                          60

                          ZGrab

                          Introduction

                          ZGrab is a stateful application-layer scanner. It works together with ZMap and is also part of the ZMap project. ZGrab is written in Go and supports multiple protocols, including:

                          • BACNET
                          • HTTP
                          • HTTPS
                          • FTP
                          • IMAP
                          • POP3
                          • Modbus
                          • Siemens S7
                          • SMTP
                          • SSH
                          • Telnet
                          • Tridium Fox

                          Project details

                          ZGrab is written in Golang.

                          Strengths and weaknesses

                          • + The source code of this software is available

                            Typical usage

                            • Penetration testing
                            • Security assessment
                            • Vulnerability scanning

                            ZGrab review

                            60

                            tlsenum

                            Introduction

                            Tlsenum is a CLI tool to enumerate TLS protocol and TLS cipher support by a server. The tool lists then the output based on the order of priority. Tlsenum can be used to find the supported protocols and ciphers of a system and determine if it is properly hardened. This information can be useful to system administrators and pentesters doing a security assessment of the system.

                            Project details

                            tlsenum is written in Python.

                            Strengths and weaknesses

                            • + The source code of this software is available

                              Typical usage

                              • Information gathering
                              • Security assessment
                              • System enumeration
                              • System hardening

                              tlsenum review

                              85

                              Maltrail

                              Introduction

                              Maltrail monitors for traffic on the network that might indicate system compromise or other bad behavior. It is great for intrusion detection and monitoring.

                              Project details

                              Maltrail is written in Python.

                              Strengths and weaknesses

                              • + More than 10 contributors
                              • + More than 3000 GitHub stars
                              • + The source code of this software is available

                                Typical usage

                                • Intrusion detection
                                • Network analysis
                                • Security monitoring

                                Maltrail review

                                Some relevant tool missing as an alternative to mitmproxy? Please contact us with your suggestion.