
CVE-2019-0708 - BlueKeep (RDP)
RDP 연결 시퀀스: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/023f1e69-cfe8-4ee6-9ee0-7e759fb4e4ee
RDP 서비스 취약점 분석: https://www.zerodayinitiative.com/blog/2019/5/27/cve-2019-0708-a-comprehensive-analysis-of-a-remote-desktop-services-vulnerability
위의 두 링크를 확인하여 RDP 연결 시퀀스가 어떻게 동작하는지, 그리고 Microsoft Windows RDP 커널 드라이버인 termdd.sys(MS_T120)에 존재하는 취약점에 대해 이해하시기 바랍니다.
Windows 커널 디버깅: https://medium.com/@straightblast426/a-debugging-primer-with-cve-2019-0708-ccfa266682f6
저는 커널 익스플로잇과 디버깅에 초보입니다 :)
1일차:
처음에 인증되지 않은 CVE-2019-0708 "BlueKeep" 스캐너 PoC 스크립트 - cve_2019_0708_bluekeep.rb 를 살펴보며 PoC 스크립트가 어떻게 구현되었는지 이해하려고 했습니다. 그래서 metasploit 데이터스토어에서 verbose 모드를 활성화하고 출력을 분석하기 시작했습니다. 하지만 이해하기에는 너무 어려웠습니다. 같은 PoC를 파이썬으로 구현해 보자는 생각을 했습니다.
2일차:
인증되지 않은 CVE-2019-0708 "BlueKeep" 스캐너를 파이썬으로 작성했습니다. 이 과정은 RDP 연결 시퀀스와 패킷을 이해하는 데 큰 도움이 되었습니다. 그런 다음 크래시를 찾기 위해 2일 동안 RDP 패킷을 조작하며 놀았지만 실패했습니다 :(

참고: cve_2019_0708_bluekeep.py는 인증되지 않은 CVE-2019-0708 "BlueKeep" 스캐너 PoC이며, 실제 익스플로잇이 아닙니다.
4일차:
어디에서 실수했는지 깨달았습니다 :) 기존 PoC 스크립트를 사용하는 대신, RDP 패킷 전송을 쉽게 하기 위해 TLS를 사용하여 PoC를 처음부터 작성하기 시작했습니다.
참고: MSDN 문서를 제대로 읽어보세요. 모든 것이 매우 명확하게 설명되어 있습니다.
5일차:
마침내 크래시를 유발했습니다. 데모 비디오를 확인하세요 :)
이메일 주소: [email protected] 또는 [email protected]
유튜브: Fools Of Security
웹사이트: Fools Of Security Community