Poważna luka w skrótach Windows (.LNK) umożliwia zdalne wykonanie kodu bez interakcji użytkownika. Microsoft jej nie załata
Niezależny badacz bezpieczeństwa Nafiez Zeifan ujawnił w kwietniu nową, niezałataną podatność typu zero-day w systemie Windows, związaną z obsługą plików … Czytaj dalej The post Poważna luka w skrótach Windows (.LNK) umożliwia zdalne wykonanie kodu bez interakcji użytkownika. Microsoft jej nie załata appeared first on Kapitan Hack.

Niezależny badacz bezpieczeństwa Nafiez Zeifan ujawnił w kwietniu nową, niezałataną podatność typu zero-day w systemie Windows, związaną z obsługą plików skrótów „.LNK”. Luka pozwala na zdalne wykonanie kodu przy minimalnej lub zerowej interakcji użytkownika. Mechanizm ataku opiera się na specjalnie spreparowanych skrótach zawierających ścieżki UNC oraz manipulacjach strukturą danych wewnątrz pliku.
Jak działa podatność?
Skróty „.LNK” są powszechnie używane w systemie Windows w celu odwoływania się do plików, folderów, aplikacji lub lokalizacji sieciowych. Ich struktura binarna zawiera wiele pól danych, w tym tzw. LinkFlags, ShellItemIDs, EnvironmentVariableDataBlock, LinkTargetIDList oraz inne rozszerzone bloki danych (tzw. extra data blocks).
W ramach ataku skrót „.LNK” zawiera spreparowany EnvironmentVariableDataBlock, w którym ustawia się:
- BlockSize: 0x00000314 (normalna wielkość dla środowiskowych bloków danych),
- Signature: 0xA0000001 (oznaczający EnvironmentVariableDataBlock),
- UnicodeTargetPath i AnsiTargetPath: zawierające ścieżkę UNC (np. \\192.168.1.12\c), która wskazuje na złośliwy zasób sieciowy SMB lub WebDAV.

Ustawienie flagi HasArguments w polu LinkFlags pozwala na przekazanie parametrów do aplikacji docelowej (np. explorer.exe), która również mogą zawierać ścieżki UNC.
Interakcja z interfejsami COM
Podczas renderowania folderu zawierającego złośliwy skrót Windows Explorer automatycznie przetwarza skrót, wywołując interfejs COM IInitializeNetworkFolder. Proces ten może powodować:
- automatyczne nawiązanie połączenia z lokalizacją UNC,
- przesłanie danych uwierzytelniających NTLM użytkownika do serwera atakującego (tzw. NTLM hash leak),
- wczytanie i uruchomienie złośliwego kodu, jeśli zasób sieciowy dostarcza, np. desktop.ini lub złośliwy plik DLL.
Dodatkowo wykorzystane są klasy COM, takie jak ShellFolderView, ShellExecuteHook, a także komponenty analizujące ikony skrótów (icon handler), które również mogą być przyczyną zdalnego wykonania kodu (analogicznie do CVE-2017-8464).
Right-Click exploit – podatność bez otwierania skrótu
Na blogu Nafieza zaprezentowano exploit nazwany „Right Click LNK”, który wykorzystuje fakt, że kliknięcie prawym przyciskiem myszy na pliku .LNK (np. w celu podglądu jego właściwości lub przeniesienia) również aktywuje przetwarzanie ścieżki UNC przez eksplorator plików.
Ten przypadek szczególnie niepokoi, ponieważ oznacza, że nie trzeba nawet otwierać skrótu – wystarczy interakcja z folderem, w którym się on znajduje, lub samo zaznaczenie pliku.
BYPASS: Omijanie Mark of The Web (MoTW)
Microsoft argumentuje, że skuteczną ochroną przed tą podatnością jest oznaczanie plików pobranych z Internetu flagą MoTW (Mark of The Web), co aktywuje dodatkowe mechanizmy ochronne, takie jak uruchamianie w trybie ograniczonym.
Niestety, istnieją sposoby na ominięcie MoTW, np.:
- kopiowanie skrótów z archiwów ZIP (nie zawsze dziedziczą MotW), o czym pisaliśmy tutaj,
- manipulacja nagłówkami NTFS ADS (Zone.Identifier),
- tzw. LNK stomping – technika, w której nadpisuje się struktury LNK w taki sposób, by zachować pozory legalnego pliku, jednocześnie usuwając oznaczenia bezpieczeństwa.
Porównanie z wcześniejszymi lukami
Nowa podatność przypomina kilka znanych z przeszłości luk:
- CVE-2010-2568 – wykorzystywana przez Stuxnet; uruchamiała kod poprzez podgląd folderu z ikonicznym LNK,
- CVE-2017-8464 – pozwalała na wykonanie kodu poprzez sam proces renderowania ikony skrótu,
- CVE-2019-1188 – dotyczyła przetwarzania danych skrótu przez Windows Shell.
Wszystkie te luki bazowały na automatycznym przetwarzaniu skrótów przez system, bez potrzeby interakcji użytkownika.
Jakie jest zagrożenie i potencjalne scenariusze ataku?
Eksploatacja luki może mieć następujące konsekwencje:
- Kradzież poświadczeń NTLM (w tym haszy do ataków typu pass-the-hash),
- lateral movement w sieci lokalnej przez SMB relay lub DLL planting,
- ataki phishingowe z wykorzystaniem archiwów zawierających złośliwe .LNK,
- ataki typu drive-by download, np. automatyczne przetwarzanie skrótu z udziału sieciowego (np. USB, WebDAV, Samba).
Zalecenia bezpieczeństwa
- Blokuj ruch SMB/WB przez firewalla, szczególnie w kontekście ruchu wychodzącego do Internetu.
- Wyłącz automatyczne renderowanie ikon skrótów poprzez GPO lub rejestr (np. NoDesktopIcons).
- Użyj zasad AppLocker / WDAC, by ograniczyć uruchamianie plików LNK z nieautoryzowanych lokalizacji.
- Ostrzegaj użytkowników przed otwieraniem archiwów ZIP/RAR z nieznanych źródeł.
- Monitoruj logi DNS/SMB pod kątem nieautoryzowanych połączeń do zasobów zewnętrznych.
Podsumowanie Mimo braku CVE oraz oficjalnej poprawki od Microsoftu, luka w obsłudze plików „.LNK” stanowi realne i poważne zagrożenie. Co istotne, może być łatwo zintegrowana z innymi technikami ataku, np. phishingiem, atakami typu living off the land czy przemycaniem ładunków przez złośliwe zasoby WebDAV.
Microsoft nie planuje wprowadzenia poprawki, co oznacza, że odpowiedzialność za zabezpieczenie systemów spoczywa obecnie na administratorach oraz użytkownikach końcowych.
The post Poważna luka w skrótach Windows (.LNK) umożliwia zdalne wykonanie kodu bez interakcji użytkownika. Microsoft jej nie załata appeared first on Kapitan Hack.