Хакер #305. Многошаговые SQL-инъекции
Французский исследователь Жиль Лионель (Gilles Lionel) обнаружил уязвимость в Windows, которой дал имя PetitPotam. Проблему можно использовать, чтобы заставить удаленные Windows-серверы аутентифицировать злоумышленника и поделиться с ним данными аутентификации NTLM или сертификатами аутентификации. На GitHub уже опубликован PoC-эксплоит.
По словам Лайонела, проблема возникает в ходе злоупотребления протоколом MS-EFSRPC (а именно функцией EfsRpcOpenFileRaw), с помощью которого Windows-машины выполняют операции с зашифрованными данными, хранящимися в удаленных системах. Атака была протестирована в Windows Server 2016 и Windows Server 2019, но PetitPotam, скорее всего, представляет угрозу для большинства поддерживаемых версий Windows Server.
Эксплоит позволяет отправлять SMB-запросы MS-EFSRPC удаленной системы и вынуждает компьютер жертвы инициировать процедуру аутентификации, поделившись данными аутентификации. Затем атакующий может использовать эти для атаки типа NTLM relay, чтобы получить доступ к удаленным системам в той же внутренней сети.
К счастью, PetitPotam нельзя использовать удаленно, через интернет. По сути, атака актуальна для крупных корпоративных сетей, где злоумышленники могут заставить контроллеры домена раскрыть хэши паролей NTLM или сертификаты аутентификации. Подобное может привести к полному захвату внутренней сети компании.
Представители Microsoft уже посоветовали отключить NTLM там, где в нем нет необходимости (например, в контроллерах домена), а также включить механизм Extended Protection for Authentication. Однако Лионель отмечает, что PetitPotam злоупотребляет функцией EfsRpcOpenFileRaw в MS-EFSRPC, а в свежих рекомендациях Microsoft описаны действия по предотвращению атак типа NTLM relay, но не рассматривается злоупотребление API MS-EFSRPC в целом (а EFSRPC даже не упоминается). Дело в том, что PetitPotam допускает и другие атаки, к примеру, даунгрейд до NTLMv1, использующего Data Encryption Standard (DES) — небезопасный алгоритм, который упрощает восстановление паролей из хэша.