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 지원하기

기본 정보

**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는 다음과 같습니다:

  1. PPTP handshake를 캡처
  2. challenge/response를 추출
  3. 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 지원하기