W poprzedniej części czytelnik mógł zobaczyć w jaki sposób można wykorzystywać publicznie dostępny kod, który potrafi (w sposób nieautoryzowany) zdobyć dostęp do systemu, który został zdefiniowany jako cel ataku. Dla przypomnienia, stan na ten moment wygląda następująco:

A zatem atakujący ma dostęp do maszyny ofiary w tzw. restricted shell, czyli w uwarunkowaniach w których, potencjalnie, niektóre komendy lub ich wyniki mogą być blokowane lub niewidoczne dla użytkownika, a także akcje wymagające kilku interakcji pomiędzy restricted shell a daną usługą.

Restricted shell a full shell na maszynie ofiary

Przykładem, który zobrazuje ograniczoność restricted shell jest połączenie się do bazy danych MySQL na maszynie ofiary.

Jak widać komenda show databases; nie pokazała nic. Dla porównania, po wyeskalowaniu restricted shell do full shell.

Komenda odpowiedzialna za eskalację „uprawnień” do full shell zostanie przedstawiona i opisana w podsumowaniu niniejszej części. Obecna prezentacja miała na celu pokazanie, że samo włamanie się na maszynę ofiary i otrzymanie sesji z uprawnieniami roota na owej maszynie nie dają jeszcze pełni możliwości kontroli nad nią.

Wartościowe pliki – przykłady

Atakujący po dokonaniu udanego ataku na maszynę, którą obrał sobie za cel, bardzo często dokonuje przeszukania zasobów aby wyeskalować uprawnienia, osiągnąć założony cel czy też aby stworzyć tzw. backdoor. Backdoor jest to usługa, program lub cokolwiek innego dającego atakującemu możliwość ustanowienia sobie tylnej furtki, która umożliwi mu dostęp do maszyny ofiary w przyszłości, mimo wykrycia ataku przez administratorów systemu. Przykładem tworzenia backdoora jest dodanie żądania w pliku /root/.bashrc, (plik ten zawiera w sobie instrukcje, które są domyślnie uruchamiane po zalogowaniu się użytkownika root).

Dodana instrukcja spowoduje mimowolne zestawienie sesji z maszyną atakującego, w momencie gdy na maszynie ofiary użytkownik zaloguje się na konto root.

Na powyższym zrzucie ekranu znajduje się weryfikacja działania powyższego scenariusza. Oczywiście podana metoda to nie jedyna, a zaledwie jedna z wielu metod definiowania backdoora na maszynie ofiary. Równie skuteczną metodą jest dodanie powyższego żądania w narzędziu cron, ze zdefiniowanym interwałem wykonywania owego żądania. Ważnym czynnikiem determinującym metodę ustanawiania backdoora jest lista dostępnych narzędzi na maszynie ofiary lub możliwość ich doinstalowania.

W powyższym przykładzie posłużono się narzędziem netcat, ponieważ w systemie Linux jest to narzędzie, które generalnie często jest natywnie zainstalowane. W systemie Windows sposób może być całkowicie inny, ponieważ Windows nie posiada domyślnie zainstalowanego narzędzia netcat. W przypadku Windowsa jednym ze sposobów wydaje się być scenariusz, gdzie atakujący po udanym ataku odblokowuje dostęp do zdalnego pulpitu po uprzednim stworzeniu użytkownika o znanym dla atakującego loginie i haśle oraz o odpowiednich uprawnieniach.

Drugim przykładowym scenariuszem może być doinstalowanie na maszynie ofiary narzędzia netcat oraz zdefiniowanie odpowiedniego żądania w Windowsowym odpowiedniku crona tj. Windows Task Scheduler lub AT command.