CVE-2021-44207

Acclaim Systems USAHERDS

ВЕРОЯТНОСТЬ 9.1%

Дата обнаружения

2024-12-23

Официальное описание

Acclaim Systems USAHERDS contains a hard-coded credentials vulnerability that could allow an attacker to achieve remote code execution on the system that runs the application. The MachineKey must be obtained via a separate vulnerability or other channel.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2021-44207 представляет собой критическую уязвимость в приложении USAHERDS от Acclaim Systems, связанную с использованием жестко заданных учетных данных (Hard-coded Credentials) в конфигурации ASP.NET.

Проблема заключается в статичном значении MachineKey (ValidationKey и DecryptionKey), которое одинаково для всех инсталляций продукта. Если злоумышленник получает доступ к этим ключам (например, через чтение конфигурационных файлов или иные уязвимости), он может создать поддельный объект сериализации (ViewState), что приведет к удаленному выполнению произвольного кода (RCE) с правами учетной записи, под которой запущен веб-сервер IIS.

Как исправить

Основной метод исправления — генерация уникальных ключей MachineKey для каждого конкретного экземпляра приложения и обновление конфигурационного файла web.config.

  1. Сгенерируйте новые случайные ключи (Validation Key и Decryption Key). Для этого можно использовать скрипт PowerShell:
$decryptionKey = [byte[]]::new(32);
$validationKey = [byte[]]::new(64);
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($decryptionKey);
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($validationKey);
$dk = [System.BitConverter]::ToString($decryptionKey).Replace("-", "");
$vk = [System.BitConverter]::ToString($validationKey).Replace("-", "");
Write-Host "DecryptionKey: $dk";
Write-Host "ValidationKey: $vk";

  1. Откройте файл web.config в корневой директории приложения USAHERDS.

  2. Найдите секцию <system.web> и добавьте или обновите элемент <machineKey>, вставив сгенерированные значения:

<system.web>
   <machineKey validationKey="ВСТАВЬТЕ_ВАШ_VALIDATION_KEY" decryptionKey="ВСТАВЬТЕ_ВАШ_DECRYPTION_KEY" validation="SHA1" decryption="AES" />
</system.web>

  1. Перезапустите пул приложений в IIS для применения изменений:
Restart-WebAppPool -Name "USAHERDS_Pool_Name"

Временные меры

Если немедленная смена ключей невозможна, рекомендуется выполнить следующие действия для снижения риска:

  1. Ограничьте доступ к конфигурационным файлам (web.config), убедившись, что права на чтение есть только у системной учетной записи IIS и администраторов:
icacls "C:\inetpub\wwwroot\USAHERDS\web.config" /inheritance:r /grant:r "IIS AppPool\USAHERDS_Pool_Name":R /grant:r "Administrators":F

  1. Настройте правила Web Application Firewall (WAF) для блокировки подозрительных POST-запросов, содержащих аномально большие или зашифрованные данные в параметре __VIEWSTATE.

  2. Включите принудительное использование MAC-проверки для ViewState в web.config (если не было включено ранее):

<pages enableViewStateMac="true" />

  1. Изолируйте сервер с приложением в отдельный сегмент сети (DMZ) и ограничьте исходящий трафик, чтобы предотвратить попытки Reverse Shell в случае эксплуатации.