Testy podatnośći Zerologon w Polsce

Pojawiające się coraz częściej podatności stają się już codziennością naszego życia. Niektóre z nich przechodzą bez echa, a niektóre powodują ogromne straty tak jak ms17-010, który został wykorzystany przez złośliwe oprogramowanie Wannacry. Sam Wannacry spowodował globalne straty liczone w miliardach dolarów. Straty były spotęgowane tym, że w Internecie było dostępnych wiele serwerów z wytawionymi podatnymi usługami bez żadnego dodatkowego filtrowania. Ponadto były to często usługi, które wcale nie musiały być udostępnione, a wręcz nie powinny być dostępne z internetu. Wannacry zaatakował kilka lat temu, ale niestety wiele osób nie wyciągneło lekcji z tego incydentu. Przykładem jest sytuacja przy podatności CVE-2020-1472 (Zerologon).

Podatność zerologon polega na błędzie w protokole “Netlogon”, który w przypadku pomyślnego wykorzystania umożliwia otrzymanie pełnego dostępu do kontrolera domeny. Więcej informacji o samej podatnośći można znaleźć na stronie https://www.secura.com/blog/zero-logon.

Nasze badanie

Używając platformy Shodan.io wyszukaliśmy polskie adresy IP przedstawiające się jako system Windows, wyszukując otwarte porty 139/445. Znaleźliśmy w ten sposob około 4000 hostów które przeskanowaliśmy skryptem naszego autorstwa. Skrypt ten wykorzystuje Nmapa do skanowania adresów IP oraz kod udostępniony przez SecuraBV celem sprawdzania podatności “Zerologon”. Skrypt działa w następujący sposób:

  1. Sprawdza czy któryś z portów 139/445 jest otwarty.
  2. Próbuje pobrać informacje o nazwie komputera.
  3. Jeśli nazwy nie uda się pobrać próbuje pobrać nazwę z usługi zdalnego pulpitu 3389.
  4. Jesli uda się znaleźć nazwę komputera wykorzystywana jest ona do sprawdzenia czy serwer ma podatność “Zerologon”.

Używając tego skryptu zidentyfikowaliśmy 80 podatnych serwerów w Polsce. O wszystkich został powiadomiony CERT Polska z odpowiednim wyprzedzeniem.

Oczywiście podatnych serwerów może być więcej, ale podatność wymaga najpierw poznania nazwy komputera co nie zawsze było możliwe. Nazwa komputera nie musi się łączyć z nazwą w DNS szczególnie w internecie. Aby poznać nazwę komputera najlepszym sposobem jest go po prostu o tą nazwę zapytać w czym przychodzi nam z pomocą protokół “NetBIOS”. Protokół ten jest najbardziej rozmowny i podatny w wersji SMBv1. W wyniku badania zidentyfikowaliśmy około 3000 hostów które nadal miało włączony protokół SMBv1.

Microsoft od wielu lat próbuje edukować administratorów, aby protokół ten wyłączyć szczególnie, że był też powodem tak szerokiego rozprzestrzenienia się Wannacry. Może on zostać także wykorzystany do amplifikacji ruchu przy atakach DDos, czy przy SMB relay attacks. A więc cytując Microsoft:

SMB1 isn’t good. Stop using SMB1. For your children. For your children’s children. Please. We’re begging you. And if that’s not enough: SMB1 is being removed (fully or partially, depending on SKU) by default in the RS3 release of Windows and Windows Server. This is here folks: https://aka.ms/smb1rs3

Niestety stare, niewspierane i niezabezpieczone systemy mają się dobrze w polskiej cyberprzestrzeni co widać po liczbie serwerów, które podczas badania przedstawiły się za pomocą protokołu SMBv1:

Protokół SMBv1 pozwala także zidentyfikować domenę, w której jest serwer. Analiza domen pokazuje, że serwery podatne na Zerologon znajdują się głównie w małych i średnich firmach, ale także w mniejszym stopniu w szkołach i innych jednostkach publicznych takich jak MOPS czy MOSIR.

Nawet jeśli zignorujemy kwestie podatności to i tak nie ma wytłumaczenia, dlaczego te serwery są dostępne z poziomu internetu z tak ważnymi usługami jak kotroler domeny. Jest to wbrew jakimkolwiek zasadom i najlepszym praktykom bezpieczeństwa, tak samo jak ich konfiguracja, która pozwala na wykorzystywanie wielu znanych ataków.

Zagrożenie wynikające z podatności CVE-2000-1472 jest tym bardziej realne, iż jest ona aktualnie wykorzystywana przez przestępców.