Generatywna analiza danych

Słabość systemu Windows „MagicDot” umożliwia nieuprzywilejowaną aktywność rootkitów

Data:

BLACK HAT AZJA – Singapur – Znany problem związany z procesem konwersji ścieżki DOS na NT w systemie Windows stwarza znaczne ryzyko dla firm, umożliwiając atakującym uzyskanie po eksploitacji możliwości przypominających rootkity w celu ukrywania i podszywania się pod pliki, katalogi i procesy.

Tak twierdzi Or Yair, badacz bezpieczeństwa w SafeBreach, który nakreślił ten problem podczas sesji w tym tygodniu. Wyszczególnił także cztery różne luki w zabezpieczeniach związane z tym problemem, które według niego nazwany „MagicDot” – w tym niebezpieczny błąd podczas zdalnego wykonywania kodu, który można wywołać po prostu przez rozpakowanie archiwum.

Kropki i spacje w konwersji ścieżki DOS na NT

Grupa problemów MagicDot wynika ze sposobu, w jaki system Windows zmienia ścieżki DOS na ścieżki NT.

Gdy użytkownicy otwierają pliki lub foldery na swoich komputerach, system Windows dokonuje tego poprzez odniesienie się do ścieżki, w której znajduje się plik; zwykle jest to ścieżka DOS zgodna z formatem „C:UsersUserDocumentsexample.txt”. Jednak do faktycznego wykonania operacji otwierania pliku używana jest inna podstawowa funkcja o nazwie NtCreateFile, a NtCreateFile pyta o ścieżkę NT, a nie ścieżkę DOS. W ten sposób system Windows konwertuje znaną ścieżkę DOS-ową widoczną dla użytkowników na ścieżkę NT przed wywołaniem NtCreateFile w celu umożliwienia operacji.

Problem, który można wykorzystać, polega na tym, że podczas procesu konwersji system Windows automatycznie usuwa wszelkie kropki ze ścieżki DOS wraz z dodatkowymi spacjami na końcu. Zatem ścieżki DOS takie jak te:

  • C:przykładprzykład.   

  • C:przykładprzykład… 

  • C:przykładprzykład    

wszystkie są konwertowane na „??C:exampleexample” jako ścieżkę NT.

Yair odkrył, że to automatyczne usuwanie błędnych znaków może pozwolić atakującym na utworzenie specjalnie spreparowanych ścieżek DOS, które zostaną przekonwertowane na wybrane przez nich ścieżki NT, które następnie można wykorzystać do uniemożliwienia użycia plików lub ukrycia złośliwej zawartości i działań.

Symulacja nieuprzywilejowanego rootkita

Problemy z MagicDot przede wszystkim stwarzają możliwość zastosowania szeregu technik poeksploatacyjnych, które pomagają atakującym na maszynie zachować dyskrecję.

Można na przykład zablokować złośliwą zawartość i uniemożliwić użytkownikom, a nawet administratorom, sprawdzenie jej. „Umieszczając prostą kropkę na końcu nazwy złośliwego pliku lub nazywając plik lub katalog składający się wyłącznie z kropek i/lub spacji, mógłbym sprawić, że wszystkie programy w przestrzeni użytkownika korzystające z normalnego interfejsu API staną się dla nich niedostępne… nie będę mógł ich czytać, pisać, usuwać ani robić z nimi niczego innego” – wyjaśnił Yair podczas sesji.

Następnie w powiązanym ataku Yair odkrył, że tę technikę można wykorzystać do ukrycia plików lub katalogów w plikach archiwalnych.

„Po prostu zakończyłem nazwę pliku w archiwum kropką, aby uniemożliwić Eksploratorowi wyświetlenie go na liście lub wyodrębnienie” – powiedział Yair. „W rezultacie udało mi się umieścić szkodliwy plik w niewinnym zipie — ktokolwiek używał Eksploratora do przeglądania i wyodrębniania zawartości archiwum, nie był w stanie zobaczyć, że plik w nim się znajduje”.

Trzecia metoda ataku polega na maskowaniu złośliwej zawartości poprzez podszywanie się pod legalne ścieżki plików.

„Jeśli istniał nieszkodliwy plik o nazwie „łagodny”, mogłem [użyć konwersji ścieżki z DOS na NT] i utworzyć złośliwy plik w tym samym katalogu [nazywanym również] łagodnym” – wyjaśnił, dodając, że to samo podejście może służyć do podszywania się pod foldery i nawet szersze procesy Windows. „W rezultacie, gdy użytkownik odczyta złośliwy plik, zamiast tego zwrócona zostanie zawartość oryginalnego, nieszkodliwego pliku”, co nie sprawi, że ofiara nie będzie świadoma, że ​​w rzeczywistości otwierała złośliwą zawartość.

Podsumowując, manipulowanie ścieżkami MagicDot może zapewnić przeciwnikom zdolności podobne do rootkitów bez uprawnień administratora, wyjaśnił Yair, który opublikował szczegółowe uwagi techniczne na temat metod ataku w połączeniu z sesją.

„Odkryłem, że mogę ukryć pliki i procesy, ukryć pliki w archiwach, wpłynąć na analizę plików z wyprzedzeniem, sprawić, że użytkownicy Menedżera zadań i Eksploratora procesów będą myśleć, że złośliwy plik to zweryfikowany plik wykonywalny opublikowany przez firmę Microsoft, wyłączyć Eksploratora procesów za pomocą odmowy usługi (DoS) luki w zabezpieczeniach i nie tylko” – powiedział – a wszystko to bez uprawnień administratora i możliwości uruchamiania kodu w jądrze oraz bez ingerencji w łańcuch wywołań API pobierających informacje.

„Ważne jest, aby społeczność zajmująca się cyberbezpieczeństwem dostrzegła to ryzyko i rozważyła opracowanie nieuprzywilejowanych technik i zasad wykrywania rootkitów” – ostrzegł.

Seria luk w zabezpieczeniach „MagicDot”.

Podczas badania ścieżek MagicDot Yairowi udało się również odkryć cztery różne luki w zabezpieczeniach związane z podstawowym problemem, z czego trzy zostały załatane przez Microsoft.

Jedna luka w zabezpieczeniach umożliwiająca zdalne wykonanie kodu (RCE) (CVE-2023-36396, CVSS 7.8) w nowej logice wyodrębniania wszystkich nowo obsługiwanych typów archiwów systemu Windows umożliwia atakującym utworzenie złośliwego archiwum, które po rozpakowaniu zapisuje w dowolnym miejscu na komputerze zdalnym, co prowadzi do wykonania kodu.

„Zasadniczo załóżmy, że przesyłasz archiwum do swojego Repozytorium GitHub reklamując je jako fajne narzędzie, które można pobrać” – Yair mówi Dark Reading. „A kiedy użytkownik je pobiera, nie jest to plik wykonywalny, po prostu rozpakowujesz archiwum, co jest uważane za całkowicie bezpieczną czynność i nie stwarzającą zagrożeń dla bezpieczeństwa. Ale teraz samo wyodrębnienie jest w stanie uruchomić kod na twoim komputerze, co jest poważnie błędne i bardzo niebezpieczne.

Drugim błędem jest luka w zabezpieczeniach umożliwiająca podniesienie uprawnień (EoP) (CVE-2023-32054, CVSS 7.3), która umożliwia atakującym zapisywanie w plikach bez uprawnień poprzez manipulację procesem przywracania poprzedniej wersji z kopii w tle.

Trzeci błąd to nieuprzywilejowany DOS Process Explorera pod kątem błędu zapobiegającego analizie, dla którego zarezerwowano CVE-2023-42757 (szczegóły poniżej). Czwarty błąd, również związany z EoP, umożliwia nieuprzywilejowanym atakującym usunięcie plików. Microsoft potwierdził, że luka doprowadziła do „nieoczekiwanego zachowania”, ale nie wydał jeszcze CVE ani poprawki.

„Tworzę folder w folderze demonstracyjnym o nazwie… a w środku zapisuję plik o nazwie c.txt” – wyjaśnił Yair. „Następnie, gdy administrator spróbuje usunąć… folderze, zamiast tego zostanie usunięty cały folder demo.”

Potencjalnie szersze konsekwencje „MagicDot”.

Chociaż firma Microsoft zajęła się specyficznymi lukami w zabezpieczeniach Yaira, automatyczne usuwanie kropek i spacji podczas konwersji ścieżki DOS na NT nadal występuje, mimo że jest to główna przyczyna występowania luk.

„Oznacza to, że może istnieć o wiele więcej potencjalnych luk w zabezpieczeniach i technik poeksploatacyjnych, które można znaleźć, wykorzystując ten problem” – mówi badacz Dark Reading. „Ten problem nadal istnieje i może prowadzić do znacznie większej liczby problemów i luk w zabezpieczeniach, które mogą być znacznie bardziej niebezpieczne niż te, o których wiemy”.

Dodaje, że problem ma konsekwencje wykraczające poza Microsoft.

„Uważamy, że konsekwencje te dotyczą nie tylko systemu Microsoft Windows, który jest najpopularniejszym na świecie systemem operacyjnym dla komputerów stacjonarnych, ale także wszystkich dostawców oprogramowania, z których większość pozwala również na utrzymywanie się znanych problemów w kolejnych wersjach swojego oprogramowania” – ostrzegł. w swojej prezentacji.

Tymczasem twórcy oprogramowania mogą uczynić swój kod bezpieczniejszym przed tego typu lukami, wykorzystując ścieżki NT zamiast ścieżek DOS – zauważył.

„Większość wywołań API wysokiego poziomu w systemie Windows obsługuje ścieżki NT” – powiedział Yair w swojej prezentacji. „Korzystanie ze ścieżek NT pozwala uniknąć procesu konwersji i zapewnia, że ​​podana ścieżka jest tą samą ścieżką, na której faktycznie wykonywana jest operacja”.

W przypadku firm zespoły ds. bezpieczeństwa powinny tworzyć mechanizmy wykrywania, które wyszukują nieprawidłowe kropki i spacje w ścieżkach plików.

„Istnieją całkiem proste metody wykrywania, które można dla nich opracować, aby szukać plików lub katalogów zawierających końcowe kropki lub spacje, ponieważ jeśli znajdziesz je na swoim komputerze, oznacza to, że ktoś zrobił to celowo, ponieważ nie jest to to łatwe do zrobienia” – Yair mówi Dark Reading. „Zwykli użytkownicy nie mogą po prostu utworzyć pliku zakończonego kropką lub spacją, Microsoft temu zapobiegnie. Napastnicy będą musieli użyć m.in niższe API który jest bliżej jądra i będzie wymagał pewnej wiedzy, aby to osiągnąć.

spot_img

Najnowsza inteligencja

spot_img

Czat z nami

Cześć! Jak mogę ci pomóc?