Dnes si ukážeme kritickou zranitelnost v LLMNR neboli Link-Local Multicast Name Resolution. Popíšeme, jak útočník postupuje při útoku pomocí nástroje Responder, a jak se proti tomuto bezpečnostnímu riziku efektivně bránit.
Dnes si ukážeme kritickou zranitelnost v LLMNR neboli Link-Local Multicast Name Resolution. Popíšeme, jak útočník postupuje při útoku pomocí nástroje Responder, a jak se proti tomuto bezpečnostnímu riziku efektivně bránit.
LLMNR je síťový protokol používaný v operačním systému Windows, který umožňuje počítačům překládat IP adresy, aniž by se musely spoléhat na DNS server v lokální síti. Tento protokol představuje velké bezpečnostní riziko, protože může být snadno zneužit k útoku.
LLMNR využívá port 5355 a funguje jak v rámci IPv4, tak IPv6.
Responder je nástroj dostupný pro Linux, který je často používán pro penetrační testování a etický hacking. Některé distribuce Linuxu ho mají předinstalovaný, ale v jiných je potřeba ho ručně nainstalovat. Responder umožňuje zachytávání a následné odpovídání na dotazy v síťových protokolech, jako jsou například LLMNR, NBT-NS a MDNS.
Responder naslouchá a zachytává dotazy pro překlad IP adres, na které neodpověděl správně DNS server. Když nějaké zařízení v síti pošle multicastový dotaz, kde žádá o přeložení konkrétního jména na IP adresu pomocí LLMNR, NBT-NS nebo MDNS, Responder tento dotaz zachytí a následně na něj odpoví, jako by byl legitimním serverem.
Responder zašle falešnou unicastovou odpověď klientovi, ve které tvrdí, že daný hostname je přidružen k jeho vlastní IP adrese (tedy k IP adrese útočníka). Odpověď obsahuje hostname a IP adresu útočníka, jako by šlo o adresu serveru, ke kterému se klient chtěl původně připojit. Po přijetí této odpovědi klient věří, že IP adresa útočníka je správná adresa hledaného serveru. Klient se automaticky pokusí ověřit pomocí svého NetNTLMv2 hashe a následně ho zašle útočníkovi. Tento hash obsahuje uživatelské přihlašovací údaje, které mohou být prolomeny hrubou silou, pokud uživatel používá slabé heslo.
Pojďme se nyní podívat na samotný útok. Pro tuto simulaci jsme využili Kali Linux, který má předinstalované nástroje pro penetrační testování, včetně Responderu. Počítač napadeného uživatele používá Windows 10.
Otevřeme si terminál a zadáme příkaz pro spuštění Responderu. Dále musíme určit síťové rozhraní, které budeme používat, to se definuje pomocí parametru `-I`, v našem případě používáme rozhraní `eth0`. Za celý příkaz přidáme ještě parametry `-dwPv`, abychom aktivovali režim ladění a zajistili, že Responder automaticky odpovídá na příchozí dotazy kromě WPAD.
Po spuštění příkazu můžeme vidět konfiguraci Responderu, která ukazuje, jaké typy Poisonerů a serverů jsou zapnuté (ve výchozím nastavení je zapnuto téměř vše). Responder začne automaticky zachytávat veškeré dotazy v síti týkající se daných protokolů.
Na obrázku níže vidíme uživatele, který se chce připojit k serveru, jenž není nikde v síti dostupný. Klient nejprve zkontroluje, zda nemá záznam tohoto serveru ve své lokální DNS cache, poté se zeptá DNS serveru, který také nemá žádný záznam o jménu. Zbývá už jen kontrola souboru hosts ve Windows. Pokud ani tohle nevede k nalezení odpovídající IP, přichází na řadu LLMNR
Poté, co DNS server odpoví, že nezná dané jméno, počítač vyšle do sítě tzv. LLMNR multicast a zeptá se všech zařízení v síti, zda někdo nezná \\server123. Responder tento dotaz zachytí a odpoví, že zná cílový počítač, a že mu klient může zaslat svůj autentizační hash a připojit se.
Tímto Responder získá požadované údaje – jméno klienta, jméno uživatele a především NetNTLMv2 hash, který obsahuje heslo uživatele. Na rozdíl od klasického NTLM hashe se NetNTLMv2 nedá použít k pass-the-hash útoku.
Z tohoto hashe lze uhádnout přihlašovací údaje, pokud uživatel používá velmi slabé heslo, pomocí útoku Brute Force.
Další možností, jak zneužít zachycený hash, je přeposlat autentizační údaje na server nebo službu, kde se útočník potřebuje autentizovat jménem oběti. Tento útok se nazývá NTLM Relay a vyžaduje interakci oběti, aby útočník mohl hash přeposlat. Celý útok je založen na principu man-in-the-middle.
V kybernetické bezpečnosti bývá nejslabším článkem člověk, a proto je důležité používat silná hesla a pravidelně je měnit. Díky tomu je prolomení hashe a získání hesla bez použití superpočítače časově náročné až nemožné.
Pokud chceme předejít zneužití slabiny v síťovém protokolu LLMNR, můžeme ho jednoduše vypnout pomocí GPO (Group Policy Management Console) v Active Directory. Ve starších verzích Windows je LLMNR známo také jako NBT-NS.
Přihlaste se k doménovému kontroleru nebo počítači, kde máte přístup ke správě Group Policy Management Console. Vytvořte nebo vyberte zásadu skupiny a klikněte na Editovat.
V editoru se přesuňte do:
Computer Configuration -> Policies -> Administrative Templates -> Network -> DNS Client.
Vyberte Turn off multicast name resolution, klikněte na Editovat a nastavte stav na Enabled.
Musíme brát v potaz, že zneužití popsané v tomto článku může mít mnoho dalších scénářů, při kterých mohou útočníci využít tuto zranitelnost ke kompromitaci sítě nebo získání citlivých dat. Naším cílem bylo ukázat alespoň jeden praktický příklad, který demonstruje, proč je důležité LLMNR v prostředí firemních sítí zakázat. Zakázání LLMNR je jedním z jednoduchých kroků, jak zvýšit bezpečnost vaší sítě a ztížit útočníkům možnost kompromitovat vaše systémy.