Usługa Pulpit Zdalny jest jedną z istotniejszych usług dla sysadmin’ów (czyli administratorów systemów operacyjnych), gdyż pozwala im/nam na wykonywanie zdalnych połączeń do urządzeń z zainstalowanym systemem operacyjnym MS Windows, znajdujących się daleko, daleko od nas (czyli np. u Pani Krysi piętro niżej dosłownie pod nami 😉 ), i pracę na tymże zdalnym urządzeniu MS Windows tak, jak byśmy przy nim siedzieli (tak w skrócie dla przypomnienia, gdyż tłumaczenie logiki działania tegoż mechanizmu nie jest istotą tegoż artykułu).
Serwerowa część aplikacji usługi Pulpit Zdalny domyślnie nasłuchuje połączeń przychodzących wykorzystując port TCP 3389. Pulpit Zdalny jest usługą dobrze znaną, stąd i sam port TCP 3389 jest dobrze znany, przez co usługa ta bywa też niestety często wykorzystywana do atakowania systemu MS Windows, stanowiąc łakomy kąsek już nawet dla niezbyt doświadczonych hackerów, czy też boty szukającego jakiegoś łatwego celu.
Wystarczy się połączyć z adresem urządzenia, i wpisać „admin/admin” 🙂 A nawet jeżeli mamy w tym systemie operacyjnym trochę lepsze konta użytkowników (z sensowniejszym hasłem dostępowym i nazwą użytkownika), to i tak można dość łatwo spróbować ataku typu brute-force, wypróbowując wszystkie możliwe kombinacje znaków w haśle (i tu się kłania dyskusja m.in. dotycząca jakości tworzenia haseł dostępowych, w tym jego długości – ale to inna dyskusja). Jeśli okazuje się, że atakowany system operacyjny nigdy nie odcina dostępu do konta, to w sumie jedyną barierę dla odgadnięcia hasła powyższą metodą i użycia go do logowania, stanowi czas (aczkolwiek jeszcze raz – jakość hasła ma tu też dość spore znaczenie w kontekście tego ile tegoż czasu do złamania będzie potrzebne).
Jednym ze sposobów obrony, jest implementacja odpowiednio skonfigurowanych zasad blokowania konta (account lockout policy) w ramach mechanizmu tzw. zasad grup. Aczkolwiek skonfigurowanie zasad blokowania kont nie rozwiązuje powyższego problemu całkowicie, gdyż nasze urządzenie z aktywną usługą pulpitu zdalnego nadal będzie nieustannie atakowane, co przy aktywnej w/w zasadzie będzie powodować czasowe blokowanie kont (i irytację użytkowników niemogących zalogować się do systemu), a nawet spowalniać pracę naszego urządzenia.
W celu więc ochrony własnego systemu przed takowymi botami i tymiż niezbyt doświadczonymi hackerami, lepszym sposobem rozwiązania problemu może być właśnie zawsze zmiana domyślnego portu usługi RDP. Działać to będzie na podobnej zasadzie jak:
Załóżmy, że wiemy, że administrator bloku mieszka zawsze w każdym bloku w mieszkaniu numer 1 (podobnie jak wiemy, że jak ktoś ma uruchomioną usługę RDP, to nasłuchuje ona na porcie TCP3389). Widząc więc przed sobą blok, i chcąc wejść do administratora tego bloku, wystarczy nam pójść i zadzwonić pod mieszkanie numer 1 – jeżeli jest w tym bloku administrator budynku, to będzie przecież w tym mieszkaniu. Ale jeżeli okaże się, że w tym bloku, jego administrator mieszka pod innym niestandardowym numerem mieszkania, to wtedy aby go znaleźć, trzeba będzie chodzić od mieszkania do mieszkania szukając go (a w systemie operacyjnym mamy 65535 portów), co będzie raczej dość uciążliwe, i może zniechęcić do poszukiwań.
Oczywiście osoby dostatecznie zdeterminowanej może to niepowstrzymać, ale mimo wszystko odetnie choć już boty realizujące zautomatyzowane ataki.
A oto procedura, jak zmienić domyślny port na którym nasłuchuje usługa pulpitu zdalnego:
- Załóżmy, że chcemy zmienić domyślny port 3389 przewidziany dla usługi pulpitu zdalnego na port 1777. Aby tego dokonać należy uruchomić edytor rejestru, w tym celu na klawiaturze należy wcisnąć kombinację klawiszy START+R, a następnie wpisać polecenie regedit.
Następnie w edytorze rejestru należy przejść do klucza HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp, w którym należy wyedytować wartość o nazwie PortNumber, zmienić system na Dziesiętny i wpisać w pozycji Dane wartości wartość 1777, a następnie kliknąć OK i zamknąć edytor rejestru: - Następnie, konieczne byłoby dodać odpowiednie wyjątki do wbudowanej w system operacyjny Windows zapory ogniowej, które umożliwią połączenie z usługą pulpitu zdalnego z wykorzystaniem skonfigurowanego wcześniej niestandardowego portu 1777 (domyślnie po aktywowaniu usługi pulpitu zdalnego dodawany jest też z automatu wyjątek do zapory ogniowej, ale dla portu 3389, a my zmieniamy na inny niestandardowy, a w takiej sytuacji wyjątek musimy odpowiedni sami dołożyć).W tym celu należy przejść do Panel sterowania\System i zabezpieczenia\Zapora systemu Windows, a następnie kliknąć na pozycję Ustawienia zaawansowane, i w lewym panelu okna Zapora systemu Windows z ustawieniami zaawansowanymi, należy wybrać opcję Reguły przychodzące, a następnie w prawym panelu kliknąć pozycję Nowa reguła…W ramach kreatora nowej reguły należy wybrać jako typ reguły Port, a następnie kliknąć przycisk Dalej.
Następnie w lewym panelu kliknąć opcję Protokół i porty, i zaznaczyć opcję protokołu TCP oraz zaznaczyć opcję Określone porty lokalne i wpisać 1777, a następnie kliknąć Dalej:Następnie w lewym panelu kliknąć opcję Nazwa i w polu Nazwa wpisać jako nazwę Zezwól na RDP. Kliknąć Zakończ.
Ta nowa reguła powinna umożliwić już komunikację z serwerem usługi pulpitu zdalnego. - Warto byłoby jeszcze sprawdzić, czy mamy uruchomiony w systemie dostęp zdalny z wykorzystaniem usługi pulpitu zdalnego. W tym celu należy przejść w Panelu sterowania do pozycji System i zabezpieczenia>System, a następnie kliknąć pozycję Zaawansowanie ustawienia systemu. W oknie Właściwości systemu które się pojawi należy przejść do zakładki Zdalny i zaznaczyć pozycję Zezwalaj na połączenia zdalne z tym komputerem, nacisnąć OK i zamknąć okna:
Uwaga: jeżeli zmiana portu w rejestrze jest wykonana po uruchomieniu usługi pulpitu zdalnego w systemie, to aby usługa zaczęła nasłuchiwać na nowym porcie, konieczne jest wykonanie restartu systemu.
- Teraz zostaje już tylko uruchomić w jakimś innym systemie operacyjnym wbudowaną w każdy system MS Windows aplikację klienta pulpitu zdalnego, wyszukując w menu start aplikację Podłączanie pulpitu zdalnego, a następnie uruchamiając ją.
Po uruchomieniu klienta pulpitu zdalnego należy wpisać w pozycji Komputer odczytany wcześniej w urządzeniu z uruchomioną usługą pulpitu zdalnego adres IPv4, pamiętając o tym, aby do adresu dodać po dwukropku nasz skonfigurowany wcześniej niestandardowy port, przykładowo:Jeżeli chcielibyśmy użyć adresu IPv6 (np. adres IPv6 typu link-local) to należy umieścić go w nawiasie kwadratowym, a po nawiasie kwadratowym wpisać dwukropek i numer skonfigurowanego wcześniej portu, np.: [fe80::78a7:e33e:8ab8:8884]:1777, przykładowo:
- I powinniśmy po naciśnięciu przycisku Podłącz, nawiązać prawidłowe już połączenie z usługą pulpitu zdalnego.