Obejście Microsoft Defender SmartScreen z użyciem przenoszenia z plików ISO
W ostatnich latach atakujący nieustannie udoskonalają metody wykorzystywania luk w powszechnie używanych systemach zabezpieczeń. Jednym z kluczowych mechanizmów ochrony jest Microsoft Defender SmartScreen, który ma na celu chronić użytkowników przed uruchamianiem złośliwych plików, oznaczając niezaufane pliki wykonywalne pobrane z Internetu. Moje najnowsze odkrycie pokazuje jednak, że istnieje sposób na obejście tego zabezpieczenia, który pozwala na uruchomienie złośliwego kodu bez wywołania ostrzeżeń SmartScreen, poprzez wykorzystanie plików ISO.
W tym artykule szczegółowo opisuję, jak pliki ISO mogą być wykorzystane do obejścia zabezpieczeń Microsoft Defender SmartScreen. Przedstawiam Proof of Concept, w którym plik wykonywalny wyodrębniony z pliku ISO może zostać uruchomiony bez wyświetlenia typowego ostrzeżenia SmartScreen. Obejście to stanowi istotny problem, szczególnie w przypadku ataków phishingowych, gdzie atakujący nakłaniają do pobrania i uruchomienia złośliwego oprogramowania.
Każdy po przeczytaniu artykułu zrozumie jak działa obejście, jakie kroki są potrzebne do jego replikacji oraz jakie mogą być konsekwencje bezpieczeństwa dla użytkowników. Jeśli interesują Cię techniki phishingu (T1566) lub chcesz poznać podstawy Red Teamingu, polecam przeczytać poniższy artykuł jako wprowadzenie do tematu:
Miłej lektury!
Wektor Ataku – szczegóły techniczne
Microsoft Defender SmartScreen został zaprojektowany, aby chronić użytkowników, ostrzegając ich przed potencjalnie szkodliwymi plikami – a zwłaszcza wykonywalnymi, pobranymi z Internetu.
Zazwyczaj, gdy użytkownik próbuje uruchomić taki plik, SmartScreen analizuje go i wyświetla ostrzeżenie, jeśli uzna plik za niezaufany:
Mechanizm ten może skutecznie zapobiegać atakom phishingowym, ponieważ użytkownicy rzadziej zdecydują się na uruchomienie podejrzanego pliku, jeśli zostaną ostrzeżeni o potencjalnym zagrożeniu.
Jednakże, działa to inaczej w przypadku plików ISO. Gdy plik wykonywalny zostaje skopiowany z obrazu ISO i wklejony do systemu plików, nie jest on oznaczony atrybutem Mark of the Web (MOTW), który jest kluczowy do wywołania ostrzeżeń SmartScreen. W rezultacie, plik wykonywalny może zostać uruchomiony bez żadnej interwencji Microsoft Defender SmartScreen, co umożliwia jego obejście.
Scenariusz ataku
Oto jak może wyglądać typowy atak wykorzystujący to obejście:
1. Mail phishingowy: Atakujący wysyła e-mail zawierający link do pobrania złośliwego pliku ISO, wraz z instrukcjami, aby przenieść plik wykonywalny z ISO na pulpit, aby “zadziałał”.
Na tym etapie atakujący może użyć socjotechniki (pretexting), w zależności od wcześniejszych informacji zebranych o wybranej firmie. Poniżej znajduje się uniwersalny szablon wiadomości, często spotykany w scenariuszach phishingowych, gdzie atakujący nakłania do pobrania załącznika:
2. Pobranie pliku ISO: Ofiara ataku klika na link i pobiera plik ISO, który jest hostowany na publicznie dostępnej stronie.
3. Zamontowanie pliku ISO: Ofiara dwukrotnie klika na plik ISO, aby go zamontować. Działanie to otwiera zawartość ISO, która zawiera złośliwy plik wykonywalny.
4. Przeniesienie pliku wykonywalnego: Atakujący instruuje ofiarę, aby przeciągnęła i upuściła plik wykonywalny z zamontowanego ISO na pulpit. Na tym etapie plik nie otrzymuje atrybutu MOTW, ponieważ został przeniesiony bezpośrednio z zamontowanego obrazu ISO.
5. Uruchomienie pliku wykonywalnego: Kiedy ofiara dwukrotnie klika na plik wykonywalny na pulpicie, Microsoft Defender SmartScreen nie interweniuje, pozwalając na uruchomienie pliku.
Proof of Concept
Poniżej znajduje się nagranie PoC, które pokazuje działanie tego obejścia w praktyce:
Aby lepiej zrozumieć tę lukę, przedstawiam kroki, które można podjąć, aby zreplikować atak:
1. Przygotowanie pliku wykonywalnego: Stwórz “złośliwy” plik wykonywalny. W rzeczywistym ataku oprogramowanie powinno być dodatkowo zaciemnione, aby uniknąć wykrycia przez systemy EDR.
2. Utworzenie pliku ISO: Umieść plik wykonywalny w obrazie ISO. Możemy do tego celu użyć narzędzia PackMyPayload. Poniższe polecenie wygeneruje obraz ISO zawierający plik EXE:
python3 PackMyPayload.py test.exe test.iso
3. Hostowanie pliku ISO: Udostępnij plik ISO na publicznym serwerze, na przykład korzystając z prostego serwera HTTP Python. Dla przykładu link: http://123.123.123.123:80/test.iso
python3 -m http.server 80
4. Pobranie i otwarcie pliku ISO: Użyj wiadomości e-mail jako wektora, aby nakłonić ofiarę ataku do pobrania pliku ISO i dwukrotnego kliknięcia, w celu zamontowania obrazu.
5. Wyodrębnienie pliku wykonywalnego: Ofiara ataku przeciąga i upuszcza plik EXE z zamontowanego ISO na pulpit.
6. Uruchomienie pliku wykonywalnego: Ofiara ataku dwukrotnie klika na plik EXE na pulpicie. W tym momencie ostrzeżenie SmartScreen nie pojawia się, a plik uruchamia się bez przeszkód.
7. Weryfikacja kroku kontrolnego: W celu weryfikacji jak zabezpieczenie powinno działać, można przez dwukrotne kliknięcie na plik EXE bezpośrednio w zamontowanym ISO wywołać alert SmartScreen.
Zabezpieczenie działa, poprawnie, ponieważ atrybut Mark of the Web (MOTW) jest stosowany, gdy plik jest uruchamiany bezpośrednio z ISO.
Konsekwencje dla bezpieczeństwa
To obejście SmartScreen stwarza poważne ryzyko dla użytkowników, szczególnie w przypadku ataków phishingowych. Ponieważ pliki wykonywalne wyodrębnione z obrazów ISO nie są oznaczone atrybutem MOTW, użytkownicy mogą nieświadomie uruchamiać złośliwe pliki bez jakichkolwiek ostrzeżeń bezpieczeństwa. Atakujący mogą łatwo wykorzystać tę lukę do rozprzestrzeniania złośliwego oprogramowania za pomocą plików ISO wykorzystując pretexting.
Wnioski i sposoby łagodzenia ryzyka
Chociaż Microsoft Defender oferuje solidną ochronę przed wieloma formami złośliwego oprogramowania, to obejście zabezpieczeń oparte na plikach ISO stanowi w nim wyraźną lukę.
Użytkownicy powinni zachować ostrożność podczas obsługi plików ISO, zwłaszcza tych otrzymywanych za pośrednictwem podejrzanych e-maili od nieznanych nadawców.
Zespoły ds. bezpieczeństwa i użytkownicy muszą być świadomi tego problemu. Do czasu wdrożenia poprawki, organizacje powinny zachować czujność i edukować użytkowników na temat ryzyka związanego z uruchamianiem plików z obrazów ISO.
Słowa końcowe
Zgłosiłem ten problem firmie Microsoft za pośrednictwem portalu MSRC Research. Został on zklasyfikowany jako niski poziom ryzyka, z czym się zgadzam. Nie zostanie przydzielony numer CVE, a problem zostanie załatany w przyszłości, raczej później niż wcześniej.
Z tego powodu uznałem, że lepiej będzie ujawnić błąd publicznie, aby użytkownicy mogli być świadomi ryzyka. Microsoft zgodził się z tą decyzją, dlatego właśnie opublikowałem ten wpis na blogu.
Jeśli zainteresował Cię ten post i interesujesz się ogólnie cyberbezpieczeństwem, zachęcam do regularnego odwiedzania naszego bloga AFINE, aby zdobywać nową wiedzę!