Od luki do eksploita

Eksploit dla każdego

Pod koniec września kod Stephena Fewera został dołączony do zestawu testowania podatności systemów, działającego w ramach frameworku Metasploit. Nie tylko on opracował dany kod. Podobną pracę wykonała firma Immunity, która dostarcza informacje o podatnościach systemów dla klientów, którzy wykupili odpowiedni abonament. Kod działający we frameworku Metasploit jest powszechnie dostępny i działa na systemy Windows Vista Service Pack 1 i SP2 oraz na Windows 2008 Server SP1. Powinien też działać w systemach z dodatkiem SP2 i na Windows 7 RC. Nie działa na system Windows 7 RTM i w 64-bitowych edycjach Windows Vista wewnątrz VMware. W kilku publikacjach blogowych (Reversemode.com, blog.48bits.com) podkreśla się fakt, że znalezienie payloadu dla danego eksploita nie zawsze jest łatwe, ale w tym przypadku mechanizm pozyskania kontroli przez atakującego jest na tyle prosty, że kod ten z powodzeniem może zostać zmodyfikowany do masowego ataku.

Dawniej - gdy hacker znalazł lukę - zmuszony był do pisania własnego eksploita, aby ją wykorzystać. Dziś przestępcy - podobnie jak eksperci wykonujący testy penetracyjne - często polegają na frameworkach, takich jak Metasploit, CORE IMPACT czy Immunity CANVAS. Takie rozwiązania rewolucjonizują proces ataku, zbierając wiele eksploitów w jeden sprawny system. Ciekawą cechą takich narzędzi jest odseparowanie eksploitu od kodu, który w jego następstwie ma być wykonany (payload). Oddzielenie kodu uruchamianego przez eksploitowanie błędu jest potężnym narzędziem, gdyż umożliwia przeprowadzanie wielu ataków, powstających przez kombinację eksploitów i kodu payload. Wiele z kodów payload jest wykorzystywanych wielokrotnie, niektóre z nich umożliwiają centralne zarządzanie przejętymi komputerami. Proces ten jest na tyle prosty, że udało się go odtworzyć w zaaranżowanym ad hoc laboratorium. Nam udało się to za pomocą popularnego skryptu w Pythonie.

Jednocześnie jakość kodu payload jest bardzo wysoka, gdyż nie musi być za każdym razem dopasowywany do eksploita, może być rozwijany prawie oddzielnie. Kody, które powodują umieszczenie konia trojańskiego lub eskalację uprawnień istniejących kont nadal są znane, ale są już w mniejszości. Najpopularniejszym frameworkiem jest Metasploit i zawiera kilka kodów payload wartych wspomnienia. Jednym z najciekawszych jest wstrzyknięcie kodu do istniejących procesów, które powoduje uruchomienie kodu biblioteki VNC (narzędzie do graficznego zdalnego dostępu) na atakowanej maszynie. Atakujący po udanym uruchomieniu kodu może niespostrzeżenie kontrolować zdalnie przejęte maszyny. Jeszcze ciekawszym payloadem jest Meterpreter, który może pozostać w całości w pamięci systemu, co bardzo utrudnia analizę powłamaniową. Kod ten ma o wiele większe możliwości, które zostaną opisane w następnym artykule.

Obejście problemu

Zanim łata będzie dostępna, opublikowano kilka sposobów na obejście problemu. Oprócz najbardziej oczywistego, jakim jest zablokowanie komunikacji na zaporze sieciowej, Microsoft proponuje wyłączenie obsługi protokołu SMB2. Nie ma to wpływu na pracę podstawowych funkcji, takich jak współdzielenie plików i drukarek w systemach Windows. Poradę producenta można znaleźć w artykule Knowledge Base o numerze 975497.


TOP 200