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 ALP-001 twierdzi, że zaatakowała Polsat

Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

W niedzielę wieczorem na zagranicznych serwisach newsowych poświęconych malware pojawiły się informacje o cyberataku na serwis Polsatu. Według doniesień za incydent odpowiada grupa ransomware ALP-001, która...
DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

Powstał nowy, zaawansowany zestaw exploitów wymierzony w użytkowników iPhone’ów. Narzędzie o nazwie DarkSword pokazuje, że nawet platformy uznawane za jedne z najbezpieczniejszych mogą stać się celem...
ClickFix na macOS, czyli jak użytkownicy sami instalują malware i jak Apple próbuje to powstrzymać

ClickFix na macOS, czyli jak użytkownicy sami instalują malware i jak Apple próbuje to powstrzymać

Współczesne cyberataki rzadko polegają na wykorzystywaniu luk w oprogramowaniu. Zamiast tego cyberprzestępcy coraz częściej manipulują samymi użytkownikami, nadużywając ich zaufania i obserwując rutynowe z...
Irańscy hakerzy włamali się na skrzynkę dyrektora FBI. Atak elementem cyberwojny

Irańscy hakerzy włamali się na skrzynkę dyrektora FBI. Atak elementem cyberwojny

Grupa hakerska powiązana z Iranem przeprowadziła skuteczny atak na prywatną skrzynkę e-mail dyrektora FBI, Kasha Patela. Incydent szybko stał się głośny nie tylko ze względu na rangę celu, ale także jak...
WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

Cyberprzestępcy po raz kolejny wykorzystują zaufanie użytkowników do popularnych komunikatorów. Najnowsze ostrzeżenie Microsoftu ujawnia zaawansowaną kampanię, w której złośliwe oprogramowanie jest rozsy...