1723 - Pentesting PPTP
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Podstawowe informacje
Point-to-Point Tunneling Protocol (PPTP) to stary protokół tunelowania VPN używany do zdalnego dostępu. Wykorzystuje TCP port 1723 dla kanału kontrolnego oraz protokół IP 47 (GRE) do przenoszenia payloadu PPP. Ruch wewnątrz tunelu jest zwykle zabezpieczony za pomocą MPPE, natomiast uwierzytelnianie często opiera się na MS-CHAPv2.
Z perspektywy ofensywnej interesująca część zwykle nie dotyczy samego połączenia kontrolnego, lecz faktu, że przechwycenie handshake PPTP/MS-CHAPv2 może umożliwić odzyskanie hasła lub NT-hasha w trybie offline. Pamiętaj też, że host może odpowiadać na TCP/1723, podczas gdy tunel nadal nie działa, ponieważ GRE (protocol 47) jest filtrowany.
Default Port:1723
Enumeracja
nmap -Pn -sSV -p1723 <IP>
nmap -Pn -sO --protocol 47 <IP>
Jeśli potwierdzisz tylko tcp/1723 i pominiesz GRE, możesz łatwo odnieść błędne wrażenie, że VPN jest osiągalny. Podczas troubleshooting lub sniffing przechwyć zarówno ruch kontrolny, jak i enkapsulowany:
sudo tcpdump -ni <iface> 'tcp port 1723 or gre' -w pptp-handshake.pcap
tshark -r pptp-handshake.pcap -Y 'pptp || gre || ppp || chap'
Brute Force
Uwagi dotyczące ataku
MS-CHAPv2 handshake capture
Dla PPTP istotne są wymiany uwierzytelniania PPP transportowane wewnątrz GRE. W MS-CHAPv2 odpowiedź zależy od:
- Serwer AuthenticatorChallenge
- Klient Peer-Challenge
- username
- NT-Response
To oznacza, że packet capture często wystarcza, aby przenieść atak offline. Jeśli możesz sniff the initial connection, poproś użytkownika o ponowne połączenie lub ustaw się on-path, przechwyć handshake i wyodrębnij dane challenge/response.
Przydatne szybkie filtry:
tshark -r pptp-handshake.pcap -Y 'chap'
tshark -r pptp-handshake.pcap -Y 'ppp and chap'
Parsuj i odszyfruj za pomocą chapcrack
chapcrack wciąż jest jednym z najprostszych sposobów przetwarzania PPTP capture:
chapcrack.py parse -i pptp-handshake.pcap
Jeśli odzyskasz podstawowy materiał tajny, możesz odszyfrować PPTP packet capture:
chapcrack.py decrypt -i pptp-handshake.pcap -o pptp-decrypted.pcap -n <recovered_nt_hash_or_token>
Jest to szczególnie przydatne, gdy celem jest nie tylko odzyskanie poświadczeń, ale także session decryption i post-auth traffic analysis.
Crack challenge/response material
Jeśli już wyodrębniłeś challenge/response pair, asleap nadal może być użyty bezpośrednio przeciwko materiałowi PPTP/MS-CHAPv2:
asleap -C 58:16:d5:ac:4b:dc:e4:0f -R 50:ae:a3:0a:10:9e:28:f9:33:1b:44:b1:3d:9e:20:91:85:e8:2e:c3:c5:4c:00:23 -W /usr/share/wordlists/rockyou.txt
asleap obsługuje również pracę z przechwyconymi pakietami lub wstępnie obliczonymi tabelami wyszukiwania, ale podczas testów PPTP najczęściej stosowany przebieg jest następujący:
- Przechwyć handshake PPTP
- Wyodrębnij challenge/response
- Przeprowadź łamanie offline przy użyciu
asleap,chapcracklub niestandardowej procedury
Najnowsze techniki obejmują także NT-hash-first workflowy, takie jak assless-chaps, które odzyskują NT hash z materiału challenge-response MS-CHAPv2/NTLMv1, wykorzystując przygotowaną bazę hashy. Może to być szybsze niż konwencjonalne łamanie haseł, jeśli utrzymujesz dobrą kolekcję NT-hashów:
./assless-chaps <challenge> <response> <hashes.db>
To ma znaczenie, ponieważ dla PPTP odzyskany NT hash jest sam w sobie operacyjnie cenny: po jego uzyskaniu można go użyć do walidacji cracka, odszyfrowania captures i pivotu do Windows-oriented reuse checks.
Podsumowanie słabości protokołu
- PPTP zależy od separate GRE data channel, więc zapory często wystawiają
tcp/1723, jednocześnie po cichu przerywając tunel. - MS-CHAPv2 security effectively collapses to recovering DES-derived material / NT-hash-equivalent secrets, co sprawia, że passive capture jest znacznie bardziej niebezpieczny niż w przypadku modern VPNs.
- Nawet jeśli hasło nie zostanie od razu odzyskane, handshake zwykle można zachować i zaatakować offline później.
Referencje
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


