Kritična RCE ranjivost pogađa Windows DNS servere

Još nema zabeleženih napada, ali ranjive su sve Windows Server verzije.

Kritična RCE ranjivost pogađa Windows DNS servere

Otkrivena je kritična ranjivost u Microsoft Windows DNS Serveru koja postoji 17 godina i koja može omogućiti napadaču administratorske privilegije i potencijalno ugroziti čitavu mrežu kompanije. RCE ranjivost CVE-2020-1350 je nazvana SIGRed i pogađa Windows Server verzije od 2003 do 2019. U pitanju je izuzetno ozbiljan propust (10/10). Posebnu opasnost predstavlja sposobnost širenja na druge ranjive uređaje u mreži (poput crva) bez interakcije korisnika, što ovu ranjivost svrstava u istu kategoriju rizika kao EternalBlue SMB i BlueKeep RDP ranjivosti!

SIGRed se može eksploatisati slanjem malicioznih DNS upita ka Windows DNS serveru i izvršenjem proizvoljnog koda, što hakeru omogućava presretanje i manipulaciju mrežnog saobraćaja, emaila korisnika, otkazivanje servisa, prikupljanje kredencijala i još mnogo toga.

Domain Name System (DNS) je praktično telefonski imenik interneta koji omogućava povezivanje klijenata i servera. DNS mapira domenska imena i IP adrese kako bi došlo do konekcije sa odgovarajućim serverom. Ovaj model je hijerarhijski i decentralizovan, tako da DNS kontaktira “višu instancu” ukoliko nema odgovora na upit. Na vrhu hijerarhije je 13 root DNS servera koji sadrže sve informacije.

Istraživači iz Check Pointa otkrili su propust u Microsoft DNS implementaciji koji se može eksploatisati kada server obrađuje dolazni upit ili odgovor na prosleđeni zahtev. Ukratko, slanjem DNS odgovora koji sadrži SIG zapis veći od 64KB moguće je izazvati kontrolisani buffer overflow. Kako bi izazvali odgovor od ciljanog Windows DNS servera, istraživači su uradili sledeće:

  1. Konfigurisali su NS Records domena (deadbeef.fun) tako da vodi na maliciozni DNS Server (ns1.41414141.club).

  2. Izvršili su upit ka Windows DNS Serveru žrtve za NS Records deadbeef.fun.

  3. DNS žrtve, koji nije imao odgovor na ovaj upit, prosledio je upit DNS serveru koji je hijerarhijski iznad (8.8.8.8).

  4. Server (8.8.8.8) je poslao odgovor da je deadbeef.fun NameServer ns1.41414141.club.

  5. Windows DNS Server žrtve obrađuje i kešira odgovor.

  6. Sledeći put kad se pošalje upit za poddomen deadbeef.fun, targetirani Windows DNS Server će takođe potražiti odgovor od ns1.41414141.club, jer je to NameServer za ovaj domen.

Da bi se eksploatisala SIGRed ranjivost, napadač ne mora da bude u istoj mreži kao targetirani DNS server, jer DNS podaci mogu ići preko TCP konekcije koju podržava Windows DNS. Zbog toga će server obrađivati podatke kao DNS upit čak i kada je u pitanju HTTP payload. Zbog toga što Windows DNS podržava “Connection Reuse” i “Pipelining”, napadač može pokrenuti više upita preko TCP konekcije bez čekanja odgovora. Ove karakteristike omogućavaju da se serveru pošalje HTTP POST zahtev sa binarnim podacima koji ima drugi DNS upit u POST podacima, koji se obrađuje odvojeno. To je moguće i u Internet Explorer i Microsoft Edge pregledačima, jer oni dozvoljavaju zahteve ka portu 53, ali nije moguće u Google Chrome i Mozilla Firefox pregledačima.

Na videu ispod možete pogledati demonstraciju rušenja internog Windows DNS servera preko browsera.

Video 1. SIGRed - Windows DNS Server RCE.

Patch i workaround su dostupni

Zbog ozbiljnosti propusta, iako još uvek nema zabeleženih napada, preporuka je da primenite patch koji je sada dostupan.

Ukoliko trenutno ne možete da izvršite bezbednosno ažuriranje, primenite sledeći workaround odnosno registry modifikaciju, a nakon toga restartujte DNS servis:

HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\DNS\Parameters

DWORD = TcpReceivePacketSize

Value = 0xFF00

Nakon instaliranja ažuriranja, potrebno je registry promene vratiti na pređašnje stanje uklanjanjem vrednosti TcpReceivePacketSize i njegovih podataka.