Menu dostępności

Przejęcie kontroli nad komputerem przy użyciu protokołu DNS

W dzisiejszym artykule pokażemy jak za pomocą protokołu DNS (ang. Domain Name System) i specjalnego narzędzia napisanego w języku Python można przejąć kontrolę nad komputerem Windows oraz zdalnie wykonywać na nim komendy. Na koniec pokażemy scenariusz ataku z wykorzystaniem DNS i opiszemy jak się przed nim chronić.


Złośliwy PowerShell i niemonitorowany DNS – duże zagrożenia dla organizacji

O tym w jaki sposób cyberprzestępcy pozostają w ukryciu podczas atakowania komputerów (tzw. Living off the Land) pisaliśmy bardzo szczegółowo w naszym technicznym artykule „W jaki sposób malware może wykorzystać usługę DNS do pobrania dowolnego kodu

W celu uruchomienia ładunku na komputerze ofiary cyberprzestępcy najczęściej używają bezplikowych technik ataku oraz komunikują się używając przeróżnych protokołów transmisji (w tym DNS), aby mogli pozostać niewykryci przez tradycyjne oprogramowanie do bezpieczeństwa. W przypadku ataku opisywanego w naszym artykule wykorzystane będą użyte dwie technologie:

  • PowerShell do wykonania ładunku na komputerze.
  • Protokół DNS do transportu kodu malware i komend poprzez specjalne rekordy TXT.

DNS-Shell

Protokół DNS działa na warstwie aplikacyjnej modelu TCP/IP. Jeśli cyberprzestępca próbowałby wykorzystać lukę RCE (Remote Command Execution) w DNS wówczas serwer DNS stanie się backdoor’em i posłuży do wykonywania poleceń. Narzędzie DNS-Shell jest narzędziem do eksploitacji napisanym w języku Python, które pozwala skompromitować maszynę ofiary (zapewnia do niej zdalny dostęp z serwera za pomocą wiersza linii poleceń).


Budowa skryptu DNS-Shell

DNS-Shell składa się z dwóch części. Pierwsza to serwer, czyli maszyna atakującego oparta jest na Pythonie i może działać na dowolnym systemie operacyjnym pod warunkiem, że jest na nim zainstalowany interpreter skryptów python. Druga to ładunek, który musimy odpalić (uruchomić) na komputerze ofiary. Skrypt serwera po uruchomieniu umożliwia wygenerowanie ładunku (payload), który jest zakodowanym poleceniem w PowerShell. Ładunek jest generowany automatycznie w momencie uruchomienia skryptu na serwerze i używa do komunikacji poleceń nslookup. Polecenia te to nic innego jak wykonywanie komend i wysyłanie zapytań o nowe komunikaty do serwera, na które czeka nasłuchując na porcie 53 UDP (port używany przez DNS). W momencie, gdy na komputerze ofiary zostanie uruchomiony ładunek, po stronie serwera otrzymamy interaktywną powłokę (interpreter linii komend Windows). Po udanym ustanowieniu kanału transmisji ładunek będzie nieustannie odpytywał serwer o polecenia, jeśli wprowadzono nowe polecenie, wykona je i zwróci wynik z powrotem do serwera.


Scenariusz DNS-Shell

Uruchomienie skryptu DNS-Shell jest stosunkowo proste. W naszym teście komputerem (serwerem), na którym odpalimy skrypt będzie Linux Kali. W przypadku wywołania z linii komend skryptu DNS-Shell mamy do wyboru dwa tryby działania: bezpośredni i rekursywny:

  • Tryb bezpośredni DNS-Shell komenda: sudo python DNS-Shell.py -l -d [IP Serwera]
  • Tryb rekursywny DNS-Shell komenda: sudo python DNS-Shell.py -l -r [Domena]
Dostępne parametry wywołania skryptu „DNS-Shell.py”

Po wybraniu odpowiednich opcji uruchomienia skryptu i naciśnięcia klawisza ENTER wygeneruje się nam zakodowany skrypt PowerShell.

Wygenerowany ładunek (zakodowany skrypt PowerShell) na serwerze, który musimy uruchomić na komputerze ofiary

Zakodowany skrypt PowerShell musimy przekopiować na komputer ofiary i uruchomić w wierszu poleceń komendą:

Powershell -e >

Uruchomienie ładunku na Windows 10

Poniższy rysunek pokazuje interpretera linii poleceń z komputera Windows 10, który działa od teraz jako backdoor i nasłuchuje komend przychodzących na porcie 53 UDP (DNS) z serwera (Kali Linux).

Wywołanie interpretera linii komend z Windows 10 na serwerze (komputer atakującego)

Dla pokazania całego scenariusza ataku zamieściliśmy poniżej film:


Testy bezpieczeństwa

Jak widać na podstawie powyższego scenariusza udało nam się uruchomić bez problemów skrypt na komputerze z Windows 10 (wersja 1903) i włączoną oraz zaktualizowaną usługą Windows Defender. Dodatkowo skrypt ładunku postanowiliśmy sprawdzić na portalu Virustotal. Wynik przeskanowania przez skanery antywirusowe 0/56 także nas nie zaskoczył i wyjaśnił nam, dlaczego nie zareagował na odpalenie ładunku Windows Defender. W tym przypadku standardowy antywirus nam się nie sprawdzi.

Wskazania VirusTotal

Co możemy zrobić z problemem?

Atak z wykorzystaniem protokołu DNS nie jest najnowszym osiągnieciem, lecz wciąż może stwarzać poważne zagrożenie dla wielu użytkowników oraz firm, które nie zabezpieczają należycie środowiska IT. Przede wszystkim w pierwszej kolejności powinniśmy skupić nasza uwagę na monitorowaniu zapytań i ich ilości do serwera DNS. W szczególności powinny być monitorowane zapytania o rekordy TXT, ponieważ za ich pomocą malware na komputerze komunikuje się z serwerem (komputerem atakującego). Ciekawą opcja jest także zaimplementowanie Sinkhole. Poza zabezpieczeniem DNS powinniśmy także monitorować i zabezpieczyć wywołania Powershell. Pisaliśmy o tym w artykule tutaj.

Jeśli jesteś zainteresowany ochroną systemu za pomocą specjalistycznych narzędzi do bezpieczeństwa zapraszamy do kontaktu z firmą Appeal.

Popularne

Grupa ransomware zyskuje pełną kontrolę nad platformą Azure! Analiza ataku

Grupa ransomware zyskuje pełną kontrolę nad platformą Azure! Analiza ataku

Ciekawe informacje przynoszą badacze Microsoft. Opisali oni, w jaki sposób często omawiane przez nas ataki na AD mogą posłużyć do przejęcia całego środowiska chmurowego. Jako przykład służy Storm-0501 ...
PromptLock – pierwszy ransomware oparty na sztucznej inteligencji!

PromptLock – pierwszy ransomware oparty na sztucznej inteligencji!

MalwareAI, czyli złośliwe oprogramowanie oparte na sztucznej inteligencji, jest bliżej, niż oczekiwano. Odkryto pierwszą rodzinę ransomware wykorzystującą systemy sztucznej inteligencji do operacji lokalny...
Popularne oszustwa na WhatsAppie i jak ich uniknąć

Popularne oszustwa na WhatsAppie i jak ich uniknąć

Z ponad dwoma miliardami użytkowników WhatsApp oferuje ogromną pulę potencjalnych celów dla scamerów. Aby jeszcze bardziej skomplikować sprawę, oszuści cały czas zdobywają nowe wyrafinowane umiejętno...
Cyberprzestępcy sięgają po formularze „Contact Us” – nowy atak phishingowy na firmy produkcyjne

Cyberprzestępcy sięgają po formularze „Contact Us” – nowy atak phishingowy na firmy produkcyjne

Najnowsza kampania phishingowa, ujawniona przez badaczy z Check Point, koncentruje się na firmach z sektora produkcyjnego oraz innych kluczowych elementach łańcuchów dostaw. Jej szczególna złośliwość polega n...
Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...