Jeśli używasz TeamViewer’a, musimy Cię zmartwić. Właśnie odkryto sposób, jak można ominąć jego zabezpieczenia, uzyskać uprawnienia „NT AUTHORITY\SYSTEM” do systemu Windows i niezauważalnie łączyć się do niego zdalnie. Poniżej prezentujemy szczegóły.


Do czego służy TeamViewer?

Sądzimy, że większość z naszych czytelników zna doskonale aplikację TV oraz pamięta słynną wpadkę jej producenta w lipcu 2018 roku, w którym wykryto, że przechowuje ona w pamięci komputera hasła w postaci czystego tekstu (podatność CVE-2018-14333 ). Podatność ta została wykorzystana na szeroką skalę przez grupę hakerów APT41 do atakowania jej użytkowników. Na wszelki wypadek, aby w dużym skrócie wyjaśnić co potrafi aplikacja TV, przytoczmy opinię jej producenta, jaka jest zamieszczona na stronie WWW:

„TeamViewer™ to najpopularniejsze na świecie narzędzie do dostępu zdalnego, mogące pochwalić się ponad 30 000 nowych pobrań co godzinę. Aktualnie obsługujemy ponad 2.0 miliarda ID TeamViewer, które mają dostęp do największej i najszybszej sieci umożliwiającej połączenia zdalne. To jedyne narzędzie, którego będziesz kiedykolwiek potrzebował do obsługi swoich komputerów, serwerów oraz innych urządzeń.

Powyższe informacje stanowią wyzwanie dla cyberprzestępców. Wykorzystanie luki w tak popularnym narzędziu stanowi nie lada kąsek. Przejęcie uprawnień/kontroli nad TV poprzez wykorzystanie opisanej poniżej luki spowoduje, że możemy uzyskać doskonały, uniwersalny „backdoor” do tysięcy firm lub komputerów.


W czym tkwi problem?

5 listopada 2019 roku badacz z WhyNotSecurity odkrył, że TeamViewer przechowuje w rejestrze systemowym Windows zaszyfrowane w AES-128-CBC hasła użytkowników oraz klucz do ich deszyfracji! Całość opisał, zgłosił do producenta i 2 lutego 2020 opublikował tutaj artykuł opisujący problem.
Nasze testy z metasploitem na Windows 10 (build 1909) oraz informacje przedstawione w powyższym artykule potwierdziły problem! Mogliśmy zdekodować hasła dostępu do TV. Opisana metoda jest również dobrym wektorem do eskalacji uprawnień użytkownika – można je uzyskać za pomocą exploita dla Metasploit udostępnionego przez autora. POC exploita możecie znaleźć tutaj.

Przeglądając kod exploita możemy zaobserwować, że dane przechowywane w rejestrze, który dekoduje przy użyciu zwykłego konta użytkownika zalogowanego do Windows. Nie są hasłami do systemu Windows, ani danymi uwierzytelniającymi do strony internetowej TeamViewer – są to hasła do nienadzorowanego dostępu oraz służące to zabezpieczenia aplikacji. W szczególności pozyskane w ten sposób hasła do dostępu nienadzorowanego umożliwia atakującemu wektor do uruchamiania złośliwych skryptów wykonywanych podczas uruchomionej, niewidocznej i nienadzorowanej sesji. Przy czym należy pamiętać, że aby można było uzyskać te hasła, osoba atakująca musi zdobyć lokalny dostęp do komputera. Oznacza to, że w środowisku korporacyjnym, gdzie komputery są podpięte pod domenę Active Directory wystarczy zdobyć poświadczenia jednego, zwykłego użytkownika, który będzie mógł się uwierzytelnić do konkretnego komputera z zainstalowanym TV i będziemy mogli przejąć nad nim kontrolę. Wolimy nie myśleć co byłoby, gdyby TV był zainstalowany na serwerze!

Druga możliwością wykorzystania luki jest sytuacja, w której nie mamy dostępu RDP do komputera. Możemy w łatwy sposób uzyskać do niego zdalny dostęp, jeśli tylko jest na nim zainstalowany TeamViewer.

Ostatnią, najlepszą z możliwości zostawiliśmy na koniec. Oprócz wykonywania zdalnego połączenia do komputera, TV pozwala w tle kopiować dane lub planować zadania, które są wykonywane na komputerze przez serwis działający na uprawnieniach NT AUTHORITY\SYSTEM! Luka umożliwia atakującemu na połączenie się do komputera na zwykłego użytkownika i za pomocą specjalnego pliku .bat uzyskanie najwyższych uprawnień (SYSTEM).

Podatność została zgłoszona do producenta i ma numer CVE-2019-18988.


POC Exploita

Poniżej pokazujemy przykład jak zdalnie, używając exploita zdekodować hasło użytkownika proxy skonfigurowanego na TeamViewer na Windows 10.


Jak się zabezpieczyć?

Przede wszystkim, jeśli producent nie załata luki w najnowszej wersji produktu, sugerowalibyśmy ograniczenie możliwości korzystania z narzędzia i używanie go tylko w wyjątkowych sytuacjach (jeśli nie ma innej alternatywy). Zalecamy być czujnym na wszelkie połączenia do komputerów mających zainstalowanego TV.

Na stronie producenta TeamViewer znaleźliśmy jego oficjalną wypowiedź w sprawie opublikowanego niedawno postu przez WhyNoSecurity. W komunikacie producent uspakaja wszystkich użytkowników i zapewnia, że jego inżynierowie ds. Bezpieczeństwa analizują z należytą starannością ten problem i że nie uważa go za bardzo krytyczny. Twierdzi także, że problem nie wpływa na hasła do konta TeamViewer potrzebne do zalogowania się do TeamViewer.

Według naszej opinii jest to krytyczny problem, ponieważ stanowi dodatkowy wektor ataku, w którym podczas przejęcia kontroli na komputerze, na zwykłym koncie użytkownika, atakujący może podwyższyć uprawnienia do NT AUTHORITY\SYSTEM i wykonać na nim dalsze złośliwe działania.