CVE-2021-44207
Acclaim Systems USAHERDS
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.
- Сгенерируйте новые случайные ключи (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";
-
Откройте файл
web.configв корневой директории приложения USAHERDS. -
Найдите секцию
<system.web>и добавьте или обновите элемент<machineKey>, вставив сгенерированные значения:
<system.web>
<machineKey validationKey="ВСТАВЬТЕ_ВАШ_VALIDATION_KEY" decryptionKey="ВСТАВЬТЕ_ВАШ_DECRYPTION_KEY" validation="SHA1" decryption="AES" />
</system.web>
- Перезапустите пул приложений в IIS для применения изменений:
Restart-WebAppPool -Name "USAHERDS_Pool_Name"
Временные меры
Если немедленная смена ключей невозможна, рекомендуется выполнить следующие действия для снижения риска:
- Ограничьте доступ к конфигурационным файлам (web.config), убедившись, что права на чтение есть только у системной учетной записи IIS и администраторов:
icacls "C:\inetpub\wwwroot\USAHERDS\web.config" /inheritance:r /grant:r "IIS AppPool\USAHERDS_Pool_Name":R /grant:r "Administrators":F
-
Настройте правила Web Application Firewall (WAF) для блокировки подозрительных POST-запросов, содержащих аномально большие или зашифрованные данные в параметре
__VIEWSTATE. -
Включите принудительное использование MAC-проверки для ViewState в
web.config(если не было включено ранее):
<pages enableViewStateMac="true" />
- Изолируйте сервер с приложением в отдельный сегмент сети (DMZ) и ограничьте исходящий трафик, чтобы предотвратить попытки Reverse Shell в случае эксплуатации.