Nově objevená zranitelnost CVE-2020-17049 – Kerberos Bronze Bit Attack
15. 12. 2020

Opět tu máme novou zranitelnost, která se objevuje u všech serverů Windows  – chyba v autentifikaci pomocí protokolu Kerberos….

Útoky umožněné chybou Bronze Bit jsou rozšířením dalších známých útoků, které vycházejí z delegování protokolu Kerberos. Bronze Bit exploit obchází dvě možné mitigace stávajících útočných cest, což zvyšuje jejich účinnost a univerzálnost. Útočník nyní může provádět následující:

  1. Útočník se může vydávat za uživatele, kteří nemohou být delegováni. To zahrnuje členy skupiny Protected users a všechny ostatní uživatele výslovně nakonfigurované jako „citlivé a nelze je delegovat.“
  2. Útočník může zahájit útok ze služby, která nemá povoleno provádět přechod ověřovacího protokolu. To znamená, že pokud je služba konfigurována bez vlastnosti „TrustedToAuthForDelegation“ (v grafickém uživatelském rozhraní služby AD se zobrazuje jako „Důvěřovat tomuto uživateli pro delegování pouze na určené služby – používat pouze protokol Kerberos“), může útočník zneužít k získání ticketů, jako by byla nastavena vlastnost „TrustedToAuthForDelegation“ (v grafickém rozhraní služby AD se zobrazuje jako „Důvěřovat tomuto uživateli pro delegování pouze na určené služby – použít libovolný ověřovací protokol“).

Útok: Při standardní konfiguraci DC se přihlásíme se na server Service1 jako User1. To simuluje získání opory v prostředí (krok č. 1 v útočné cestě). Spustíme relaci PowerShellu a potvrdíme, že uživatelé User1 a Service1 nemohou aktuálně přistupovat k Service2 na základě své vlastní autorizace. Pokračujeme krokem 2 cesty útoku: získání hash pro Service1. V tomto scénáři použijeme program secretsdump.py společnosti Impacket k získání hash AES256-CTS-HMAC-SHA1-96 a LM: NTLM pro účet stroje Service1. Po získání potřebných hashů se nejprve pokusíme spustit program getST.py bez příznaku -force-forwardable. To selhalo podle očekávání. Jak již bylo řečeno, výměna S4U2self stále vrací servisní lístek na Service1 pro uživatele2, ale příznak tohoto lístku není nastaven z důvodu omezení delegování služby a ochrany uživatele před delegováním. To způsobí chybu, když je lístek použit jako důkaz na výměně S4U2proxy. To je okamžik, na který všichni čekáme: spustíme exploit! Toto je krok č. 4 naší cesty útoku. Zopakujeme předchozí příkaz, ale tentokrát včetně argumentu příkazového řádku -force-forwardable.

Použitím příznaku -force-forwardable se exploit provede automaticky a převede servisní lístek přijatý z výměny S4U2self na předatelný lístek. To se provádí dešifrováním tiketu pomocí hash služby Service1, změnou druhého bitu v hodnotě příznaků z 0 na 1 a opětovným zašifrováním tiketu. Tento předatelný lístek je odeslán na burze S4U2proxy a servisní lístek pro Service2 jako User2 je vrácen a zapsán na disk v User2.ccache.

Dále použijeme Mimikatz k načtení servis ticketu do naší cache ticketů pro použití. Po načtení uvidíme, že Mimikatz potvrzuje, že se jedná o platný lístek pro User2 do služby cifs Service2.

Se service ticketem přidaným do naší cache nyní můžeme přistupovat k Service2, jako bychom byli User2. Ve službě Service2 máme veškerá oprávnění uživatele User2. K získání relace PowerShell na serveru Service2 použijeme PSExec od Marka Russinoviche a spustíme některé příkazy. Toto je náš poslední krok č. 5 cesty útoku.

Překlopili jsme bity a zneužili jsme delegování Kerberos k eskalaci našich privilegií a kompromitování jiné služby vydáváním se za chráněného uživatele.

Nová oprava protokolu Kerberos bude k dispozici v únoru 2021. Přidá podporu pro hodnotu registru PerformTicketSignature , která umožňuje ochranu serverů řadičů domény služby Active Directory. Ve výchozím nastavení tato hodnota neexistuje. Aktualizace bude ve dvou režimech. Zmírnění a vynucení. Fáze vynucení vynutí změny adresy CVE-2020-17049. Řadiče domény služby Active Directory teď můžete mít v režimu vynucení. V režimu vynucení vyžaduje, aby všechny řadiče domény služby Active Directory měly nainstalovanou aktualizaci, 2020 nebo novější verzi systému Windows. V současné době se nastavení klíče registru PerformTicketSignature ignorují a režim vynucení nelze přepsat.
Před instalací této aktualizace musíte mít nainstalované tyto požadované aktualizace. Pokud používáte Windows Update, budou tyto požadované aktualizace nabídnuty automaticky podle potřeby.

  • Před instalací této aktualizace musíte mít nainstalovanou aktualizaci SHA-2 (KB4474419) vydanou 23. září 2019 nebo novější aktualizaci SHA-2. Další informace o aktualizacích SHA-2 najdete v tématu 2019 požadavek na podporu podepisování kódu v SHA-2 pro Windows a WSUS.
  • Pro Windows Server 2008 R2 SP1 musíte mít nainstalovanou aktualizaci zásobníku obsluhy (SSU) (KB4490628) vydanou 12 2019. Po aktualizaci KB4490628 je nainstalovaný, doporučujeme nainstalovat nejnovější aktualizaci SSU. Další informace o nejnovější aktualizaci SSU najdete v článku ADV990001 | Nejnovější aktualizace zásobníku pro obsluhu.
  • V systému Windows Server 2008 s aktualizací SP2 musíte mít nainstalovanou aktualizaci zásobníku pro obsluhu (SSU) KB4493730 vydanou 9. dubna 2019. Po aktualizaci KB4493730 je nainstalovaný, doporučujeme nainstalovat nejnovější aktualizaci SSU. Další informace o nejnovějších aktualizacích SSU najdete v článku ADV990001 | Nejnovější aktualizace zásobníku pro obsluhu.
  • Zákazníci jsou povinni zakoupit rozšířenou aktualizaci zabezpečení (EVJ) pro místní verze systému Windows Server 2008 SP2 nebo Windows Server 2008 R2 SP1 po skončení prodloužené podpory na 14. ledna 2020. Zákazníci, kteří si nakoupili EVJ, musí dodržovat postupy v KB4522133, abyste mohli dál dostávat aktualizace zabezpečení. Další informace o EVJ a podporovaných edicích najdete v tématu KB4497181.

Po instalaci těchto požadovaných aktualizací je nutno restartovat zařízení.

Napište nám


Kontakt

Ing. Filip Lang, CEH, MCSA, MCITP, MCTS, MCP

Ing. Filip Lang, CEH, MCSA, MCITP, MCTS, MCP

Vedoucí oddělení
Implementace

+420 724 707 417
filip.lang@nwt.cz