pulse-secure-vpn-mitm-research
Pulse Secure mitm 연구
공개일
벤더와 공동 공개일: 2020년 10월 26일
작성자
David Kierznowski, @withdk
크레딧
- 공개 절차 전반에 걸쳐 지원해 준 Pulse Secure PSIRT 팀의 Sahil Mahajan에게 감사드립니다.
- "Red Teamer’s Guide to Pulse Secure SSL VPN" 보고서를 작성한 Alyssa Herrera, Justin Wagner, Mimir, Rich Warren에게 감사드립니다 - Alyssa Herrera (2019년 9월 4일)
- 지속적인 지원과 격려를 보내준 SA Red Team에게 감사드립니다.
CVE 참조
- CVE-2020-8241 (8.1 High CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
- CVE-2020-8239 (5.9 Medium CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N)
샘플

동일 네트워크에 연결된 Pulse Client로부터 rogue-pulse-svr.py가 리버스 meterpreter 셸을 획득하는 모습을 보여주는 개념 증명입니다.
소개
Pulse Connect Secure(PCS)는 일반적으로 사용되는 엔터프라이즈 VPN 솔루션입니다. 이 글을 작성하는 시점에 PCS는 2천만 개 이상의 엔드포인트를 지원합니다(Pulse Secure, 연도 미상). 이 연구는 Windows 10 PCS 엔드포인트와 PCS 게이트웨이 사이에 구축된 네트워크 통신 채널의 기밀성과 무결성을 검토하는 데 초점을 맞추었습니다. 특히, "신뢰할 수 없는 네트워크에 연결되었을 때 엔드포인트는 얼마나 안전한가?"라는 질문을 제기합니다. 이 연구는 기본(default) 및 "Always-On" 구성에 모두 적용됩니다.
영향도 (중간 - 높음)
체이닝되면 신뢰할 수 없는 네트워크에서 완전한 SYSTEM 권한으로 원격 코드 실행을 획득할 수 있습니다. 또는 내부자 위협은 CVE-2020-8241을 단독 취약점으로 사용하여 권한을 상승시킬 수 있습니다.
발생 가능성 (낮음 - 중간)
이러한 공격은 다양한 상황에서 사용될 수 있지만, 표적 공격에 가장 적합합니다. 이와 아래의 가정에 근거할 때 발생 가능성은 낮음~중간입니다.
잠재적 공격
다음 공격들은 개념 증명(proof-of-concept) 도구인 "rogue-pulse"에서 성공적으로 시연되었습니다:
- 사용자 자격 증명 탈취. rogue 서버는 사용자를 속여 로그인 자격 증명을 공개하도록 유도할 수 있습니다.
- Microsoft Windows UNC 경로에서 바이너리 실행. PCS 서버는 인증 후 실행 파일을 실행하는 옵션을 지원합니다. 이는 로그온한 사용자의 권한으로 코드 실행을 획득하는 데 악용될 수 있습니다. 이는 Alyssa Herrera와 팀 Alyssa Herrera(2019년 9월 4일)의 연구를 기반으로 합니다.
- 호스트 준수 검사 악용을 통한 완전한 원격 관리자 액세스. 호스트 준수 검사는 SYSTEM 권한으로 실행됩니다. rogue 서버는 이 기능을 악용하여 레지스트리에 대한 임의 쓰기 액세스를 허용하는 악성 정책을 배포할 수 있습니다.
- 네트워크 트래픽 가로채기. 이를 통해 공격자는 "always-on"이 활성화된 경우에도 네트워크 트래픽을 가로채고 수정할 수 있습니다. 현재 이 도구는 엔드포인트의 네트워크 트래픽 요청만 표시합니다.
PoC는 또한 자동 로그인(auto-login) 기능을 구현합니다. 이는 클라이언트가 이전에 인증했었다고 믿도록 속입니다. 이는 자격 증명 수집보다 코드 실행이 우선인 경우에 유용합니다.
가정
- 이 연구는 신뢰할 수 없는 네트워크를 통한 원격 코드 실행 획득을 목표로 합니다. 이 목표를 달성하기 위해 두 취약점이 체이닝됩니다. 그렇지만 내부자 위협은 CVE-2020-8241을 단독으로 사용하여 권한을 상승시킬 수도 있습니다.
- PCS 게이트웨이는 "dynamic-trust"가 활성화된 기본 구성을 사용 중입니다. 정책은 일반적으로 인증 후에 업데이트되어 클라이언트로 푸시된다는 점에 유의하세요. 즉, 게이트웨이가 "dynanmic-trust"를 비활성화한 후에도 작은 공격 기회의 창이 여전히 존재할 수 있습니다.
- 공격자는 HTTPS 네트워크 트래픽에 대해 중간자 공격(man-in-the-middle)을 수행할 수 있는 위치에 있습니다. 예를 들어, 공격자가 사용자의 홈 네트워크 라우터를 장악했거나 rogue Wi-Fi 핫스팟 등을 운영하고 있는 경우입니다.
- 사용자는 인증서 경고를 수락해야 합니다. 흥미로운 관찰 결과 중 하나는 Pulse Secure Client가 사용자가 인증서를 수락할 때까지 이 메시지를 계속 팝업으로 표시한다는 점입니다. 또한 팝업 메시지는 특별히 경각심을 주지 않습니다. 마지막으로, "Secure Client"라는 이름 때문에 사용자는 메시지를 무시하고 어쨌든 연결할 가능성이 훨씬 높습니다. 이는 큰 장애물로 보이지 않습니다.
- 엔드포인트는 Microsoft Windows 운영 체제에서 연결합니다.
권장 사항
이 문제를 완화하고 해결하기 위해 다음 권장 사항을 고려해야 합니다:
- 조직은 Pulse Secure 보안 모범 사례(Pulse Secure, 2019년 7월 2일)에 대한 준수 여부를 점검해야 합니다. "Dynamic certificate trust"가 비활성화되어 있는지 확인하십시오.
- 벤더 수정 패치를 적용하십시오(https://kb.pulsesecure.net/articles/Pulse_Security_Advisories/SA44601 참조).
- PCS 서버 스크립트 실행은 "Pulse.exe"의 자식 프로세스로 실행됩니다. 따라서 "Pulse.exe" 바이너리의 자식 프로세스를 모니터링하여 보호 대책을 마련할 수 있습니다.
- "PulseSecureService" 서비스에서 의심스러운 레지스트리 활동을 모니터링하십시오.
참고 자료
면책 조항
제공된 정보는 교육 및 연구 목적으로만 사용됩니다. 작성자는 이 정보의 사용에 대해 어떠한 책임도 지지 않으며, 적용 가능한 법률을 위반하려는 모든 시도를 강력히 규탄합니다. 작성자는 이 정보를 업데이트할 의무를 지지 않으며, 그 완전성, 사용 또는 적용 가능성에 대해 어떠한 보증도 제공하지 않고, 이에 대한 모든 신뢰를 부인합니다. 이 정보의 사용은 전적으로 사용자의 책임입니다.