thc-pptp-bruter: Cracks PPTP VPN logins

thc-pptp-bruter: Cracks PPTP VPN logins

PPTP is a legacy VPN protocol — and by “legacy” I mean genuinely broken. Its MS-CHAPv2 authentication has been publicly demonstrated as crackable in under 24 hours regardless of password complexity, which is exactly why modern guidance treats any PPTP deployment found in an assessment as an automatic finding, full stop. THC-PPTP-Bruter is the classic tool for actually demonstrating that weakness in an authorized test: it automates brute-force login attempts against a PPTP VPN endpoint’s MS-CHAPv2 authentication.

Here’s how it works, how to install and run it, and how I use it (rarely, since PPTP is thankfully increasingly uncommon) in a real authorized assessment.

What THC-PPTP-Bruter Does

PPTP (Point-to-Point Tunneling Protocol) uses MS-CHAPv2 for authentication over TCP port 1723. THC-PPTP-Bruter works by:

  1. Establishing a PPTP control connection to the target VPN server.
  2. Attempting authentication using a username and each password from a supplied wordlist.
  3. Parsing the server’s MS-CHAPv2 response to determine success or failure.
  4. Optionally running multiple attempts in parallel to increase throughput, and supporting resume functionality for long-running attempts.

Because PPTP servers often don’t implement account lockout the way modern services do, and because MS-CHAPv2 has known structural weaknesses (the DES-based encryption of the NT hash can be split and brute-forced far faster than the password’s apparent complexity would suggest), this class of attack is unusually effective against PPTP compared to brute-forcing better-designed authentication protocols.

Installation

sudo apt update
sudo apt install thc-pptp-bruter -y

From source:

git clone https://github.com/f0rb1dd3n/thc-pptp-bruter.git
cd thc-pptp-bruter
make

Verify:

thc-pptp-bruter --help

Syntax

thc-pptp-bruter [options] <target-ip>
FlagPurpose
-u <username>Username to test
-W <wordlist>Path to password wordlist
-w <seconds>Wait time between attempts (throttling)
-r <file>Resume from a previous session’s state file
-n <num>Number of parallel connections
-vVerbose output

Practical Example (Authorized Lab Target)

1. Basic brute-force attempt against a lab PPTP server:

thc-pptp-bruter -u labvpnuser -W /usr/share/wordlists/rockyou.txt 192.168.56.30

Sample output structure:

THC-PPTP-BRUTER - v0.1.4
Starting bruteforce against 192.168.56.30, user [labvpnuser]
Loaded 14344392 passwords
Trying: 123456 ... FAILED
Trying: password ... FAILED
Trying: LabPass123! ... SUCCESS

2. Throttled attempt (recommended to avoid overwhelming the target or looking like a DoS in shared lab infrastructure):

thc-pptp-bruter -u labvpnuser -W wordlist.txt -w 1 192.168.56.30

3. Resume an interrupted long-running attempt:

thc-pptp-bruter -u labvpnuser -W wordlist.txt -r resume_state.log 192.168.56.30

Real-World Workflow (Authorized Engagement Only)

# Step 1: Confirm PPTP is exposed
nmap -p1723 -sV 192.168.56.30

# Step 2: Build a targeted wordlist using CeWL + RSMangler against the organization's public content
cewl https://lab-target.local -w seed.txt
rsmangler -f seed.txt -o candidates.txt

# Step 3: Run the brute-force attempt against the PPTP endpoint with authorization
thc-pptp-bruter -u labvpnuser -W candidates.txt -w 1 192.168.56.30

The real deliverable from this kind of test usually isn’t “we cracked the password” — it’s the finding itself: PPTP should not be in use at all. Modern VPN protocols (IKEv2/IPsec, WireGuard, OpenVPN) don’t share MS-CHAPv2’s structural weaknesses, and any PPTP endpoint discovered during reconnaissance should be flagged as a critical/high finding regardless of whether the brute-force succeeds.

Troubleshooting

Best Practices

Common Mistakes

FAQ

Is PPTP still used anywhere in production? Rarely, but it does still turn up on legacy routers, older NAS devices, and small-business network appliances that haven’t been updated. When found, it’s treated as a significant finding regardless of password strength.

Why is MS-CHAPv2 considered broken? Because of how it derives its DES-based encryption keys from the NT password hash, an attacker can split the cryptographic problem into pieces that are individually crackable in a very short time, effectively making the password’s length/complexity far less protective than it would be against a well-designed modern protocol.

What should organizations use instead of PPTP? Modern alternatives like IKEv2/IPsec, OpenVPN, or WireGuard, none of which share PPTP’s MS-CHAPv2-based structural weaknesses.

Summary

THC-PPTP-Bruter is a narrow, purpose-built tool for a narrow, largely historical problem — but when you do encounter PPTP in an authorized assessment, it’s the fastest way to demonstrate concretely why the protocol needs to be retired, not just described as theoretically weak. In most modern engagements, finding PPTP exposed at all is the headline finding; successfully brute-forcing it is just the proof.

References

Exit mobile version