Szukanie dziury w całym
- 20.10.2009
Darmowy framework Metasploit oraz komercyjne CORE IMPACT i Immunity CANVAS to bardzo dobre narzędzia, wykorzystywane zarówno przez włamywaczy, jak i testerów penetracyjnych, sprawdzających odporność badanych systemów.
Jeszcze kilka lat temu najskuteczniejszą metodą ataku było opracowanie eksploita wykorzystującego konkretną podatność systemu i uruchamiającego żądany kod (lub polecenia). Sposób ten był bardzo pracochłonny, wymagał bowiem napisania kodu od zera dla każdego z ataków. W tym czasie przykładowy eksploit wykorzystujący przepełnienie bufora w usłudze sieciowej Windows, był połączony z kodem uruchamiającym backdoora. Inny atak przeciw serwerowi FTP dawał dostęp do powłoki systemu, jeszcze inny mógł z kolei wykorzystywać podatność bazy danych, by w ten sposób dodać nowe konto o uprawnieniach systemowych. Wszystkie omawiane ataki mają jedną wspólną cechę, polegającą na tym, że eksploit był ściśle połączony z obcym kodem wykonywanym na przejętej maszynie. Dla każdego nowego ataku musiał być pisany od zera lub przynajmniej przystosowywany. Przenoszenie kodu między eksploitami było bardzo trudne, zazwyczaj modyfikowano oba składniki. W ten sposób powstawały kopie i mutacje popularnych wirusów komputerowych.
Dziel i rządź
Zasada działania mechanizmu przekazywania odwołań systemowych.
Skuteczność takiego modelu doceniono w miarę rozwoju nowych eksploitów. Obecnie specjalista, który chce sprawdzić podatność konkretnej usługi i tworzy eksploita, nie musi ponownie wymyślać kodu payload, wystarczy, aby zintegrował kod eksploita z wybranym frameworkiem. Dzięki temu proces przygotowywania eksploitów jest znacznie szybszy. Co więcej, ci deweloperzy, którzy nie koncentrują się na tworzeniu eksploitów, mogą z powodzeniem opracowywać nowe, lepsze kody payload. Chociaż tradycyjne kody (w rodzaju "uruchom mi dostęp do powłoki systemu" albo "dodaj użytkownika do grupy administratorów") nadal są dostępne, nowsze są znacznie bardziej skomplikowane i o wiele lepiej dopracowane.
Jednym z ciekawszych ataków jest wstrzyknięcie kodu biblioteki DLL, w celu uruchomienia usługi VNC (Virtual Network Computing, najpopularniejsze narzędzie zdalnego dostępu w trybie graficznym, rozwijane w modelu open source). Kod ten, łączony z wybranym eksploitem, umożliwia przejęcie kontroli nad maszyną z systemem Microsoft Windows, nie uruchamiając przy tym żadnej dodatkowej systemowej usługi, a jedynie wstrzykując kod do podatnego procesu. Po uruchomieniu, napastnik może kontrolować maszynę przez sieć. Podobny atak był demonstrowany przez Kevina Mittnicka jako przykład tego, co napastnik może wykonać bardzo prostymi środkami, gdy socjotechnika umożliwi mu obejście niektórych zabezpieczeń.
Własna minipowłoka, która nie pozostawia śladów
Jeszcze ciekawszy jest Meterpreter. Kod ten jest środowiskiem wyposażonym we własną, kompletną powłokę systemową i podlega wstrzyknięciu do już działającego, podatnego procesu. Napastnik lub tester bardzo często wybiera taki rodzaj inwazji ze względu na kilka ważnych zalet: kod działa w ukryciu, pozostaje w całości w pamięci i omija powłokę udostępnianą przez atakowany system operacyjny.