W ostatnim czasie protokół Remote Desktop Protocol (RDP) pojawił się na pierwszych stronach portali od cyberbezpieczeństwa na Świecie (w tym naszym). Związane było to z dwiema nowymi lukami w zabezpieczeniach. Pierwsza została załatana przez Microsoft (CVE-2019-0709) natomiast druga nadal nie została zaktualizowana (CVE-2019-9510). O obu podatnościach pisaliśmy w naszych artykułach na Kapitanie Hack’u. Podatność BlueKeep pokazaliśmy na poniższym filmie, gdzie wykonywaliśmy zdalne skanowanie, a następnie crash serwera Windows 2018 R2.

Podczas, gdy wszyscy użytkownicy i firmy skupiali się na raportowaniu i zabezpieczaniu serwerów z problemem BlueKeep, lista podatnych komputerów z protokołem RDP, trafiła do DarkNetu. Listę tą zaczęły skanować specjalne sieci botnet używając do tego słabych i często używanych haseł. Najnowszym przykładem takiego ataku jest trwająca złośliwa kampania pod nazwą „GoldBrute”. Jest to groźny botnet, który próbuje skanować listę około 1,5 miliona serwerów RDP udostępnionych w Internecie. Serwis Shodan wymienia około 2,4 miliona odsłoniętych serwerów. GoldBrute używa własnej listy i ciągle ją rozszerza skanując i przechwytując nowe serwery, dzięki czemu dynamicznie rośnie.


Czym jest botnet GoldBrute?

GoldBrute to sieć botnet kontrolowana przez pojedynczy w sieci serwer C&C służący do zdalnej kontroli i zarządzania botami na zainfekowanych serwerach. Dostępny on jest pod adresem IP 104[.]156[.]249[.]231, z którym to boty w sieci wymieniają się danymi za pośrednictwem zaszyfrowanych AES połączeń WebSocket na porcie 8333.
Jeśli system w wyniku skanowania z Internetu zostanie przejęty (albo przy wykorzystaniu podatności BlueKeep lub ataku Brute-Force) dochodzi do jego infekcji, w wyniku której wykonywane są specjalne instrukcje służące do pobrania kodu bota. Sam jego kod jest stosunkowo duży, bo zajmuje około 80 MB i zawiera pełne środowisko wykonawcze Java. Kod Bot’a jest zaimplementowany w klasie Java o nazwie „GoldBrute”.

Poniższej zamieściliśmy schemat działania GoldBrute wraz z opisem.

źródło: morpheuslabs.com

Atak GoldBrute rozpoczyna się od skanowania komputerów losowo wybranych z puli adresów IP i ma na celu znalezienie jak największej listy hostów z udostępnionymi w sieci usługami RDP. Następnie wykonywane są następujące kroki:

Krok 1 – Po pomyślnym przejęciu serwera RDP w wyniku skanowania Brute-Force, atakujący instaluje na komputerze szkodliwe oparte na JAVA oprogramowanie botnetowe GoldBrute. Po zdekompresowaniu plików z archiwum uruchamiany jest plik jar o nazwie „bitcoin.dll”. Nazwa została celowo zmodyfikowana, ponieważ rozszerzenie „dll” jest trudniejsze do wykrycia przez specjalistyczne oprogramowanie do bezpieczeństwa.

Krok 2 – GoldBrute w celu kontroli zainfekowanych maszyn, wykorzystuje scentralizowany serwer C&C, którego zadaniem jest wymiana poleceń i danych za pośrednictwem szyfrowanego połączenia AES WebSocket.

Krok 3 i 4 – Każde zainfekowane urządzenie otrzymuje pierwsze zadanie skanowania i raportowania listy co najmniej 80 publicznie dostępnych nowych serwerów RDP, które mogą być podatne na włamanie.

Krok 5 i 6 – GoldBrute następnie przypisuje każdemu zainfekowanemu komputerowi unikalny zestaw kombinacji: „nazwy użytkownika i hasło” i w drugim przebiegu zmusza je do atakowania nowych serwery z listy, którą zainfekowany system na bieżąco otrzymuje od serwera C&C.

Krok 7 – Po udanych próbach zainfekowana innych komputerów maszyna zgłasza do serwera C&C prawidłowe poświadczenia logowania.


Kod GoldBrute

Na poniższym fragmencie przedstawiono kod z pliku „Console.java”. Możemy w nim zobaczyć zakodowany adres serwera C2, niektóre parametry limitu czasu, port i inicjalizację GoldBrute.

źródło: morpheuslabs.com

W następnym, z „Config.java”, mamy wiele dodatkowych parametrów, w tym parametry szyfrowania AES w ruchu C2 i zakodowany początkowy zakres IP do wykonania ataku.

źródło: morpheuslabs.com

Większość tych początkowych parametrów może zostać zmieniona przez serwer C2. Poniższy fragment z „ConfigPackage.java” pokazuje, w jaki sposób pakiet „config” jest identyfikowany i traktowany przez bota do aktualizacji konfiguracji, takich jak adresy TEST_SERVER.

źródło: morpheuslabs.com

Liczby

W czasie pisania tego artykułu i wyszukiwania Shodan pokazywał, że w Internecie można uzyskać dostęp do około 2,4 miliona serwerów RDP z systemem Windows, a prawdopodobnie ponad połowa z podatna jest na próby ataku.

źródło: isc.sans.edu

Jak sobie poradzić z problemem?

Na obecną chwilę nie jest wiadomo, ile dokładnie serwerów RDP zostało już skompromitowanych i przejętych oraz uczestniczy atakach na inne serwery RDP w Internecie. Oprócz odłączenia od Internetu komputerów z włączoną usługą RDP powinniśmy je załatać pod względem podatności, ponieważ nigdy nie mamy pewności, czy w naszej wewnętrznej sieci nie zostanie wykonane takie skanowanie.

W przypadku infrastruktury IT warto monitorować następujące zachowania:

  • monitorowanie logowań RDP (udane i nieudane) oraz prób przejęcie kont użytkowników. Warto zabezpieczyć się przed KILLCHAIN,
  • próby skanowania i połączeń w sieci do komputerów z RDP (domyślny port 3389).

Poniżej zamieszczamy IOC dla GoldBrute

Files (SHA256)
af07d75d81c36d8e1ef2e1373b3a975b9791f0cca231b623de0b2acd869f264e (bitcoin.dll)

Network
104[.]248[.]167[.]144 (pobieranie paczki Zip download)
104[.]156[.]249[.]231:8333 (serwer C2)

Źródła w Internecie:
https://www.shodan.io/search?query=Remote+desktop
https://isc.sans.edu/forums/diary/GoldBrute+Botnet+Brute+Forcing+15+Million+RDP+Servers/25002/