Nigdy się nie zajmowałem hackowaniem ( no ok troszkę
), w każdym razie nie żebym szukał dziur w systemach czy programach, ale w myśl zasady:
Don’t Learn to hack. Hack to Learn.
Odkryłem coś co w teorii działa (w praktyce testowałem tylko na jednym serwerze). Więc tak jak zdobyć konto roota na (prawie) każdym serwerze obsługiwanym przez system Debiano podobny (nie koniecznie Debian, byle by miał apt’a). Zrobimy własną komendę sudo
. Administratorzy często (zawsze!?) blokują nam dostęp do pobierania/instalowania nowych programów, i z pomocą przychodzi nam komenda apt-get source, dzięki którym sami będziemy mogli skompilować potrzebny nam program, w tym wypadku sudo. Pobieramy sudo i zaczynamy ./configure (hehehe… nie tak szybko nie ma tak łatwo), jeżeli czegoś brakuje pobieramy i również kompilujemy (w moim wypadku brakowało yacc). Teraz przyda nam się mała wiedza z zakresu programowania, bo trzeba będzie przeglądać pliki instalacyjne sudo i pozamieniać ścieżki na nasz katalog domowy i kilka innych rzeczy związane z naszymi ograniczonymi (jak na razie) prawami. Po kilku godzinach zabawy udało mi się skompilować (musiałem stworzyć pliki sudoers, group, passwd i shadow z moimi własnymi ustawieniami użytkowników). Teraz zacząłem się zastanawiać dlaczego nie chce działać… Więc (tak wiem nie zaczyna się od więc, ale lepiej brzmi) dokompilowałem busybox’a (oczywiście może być każdy inny shell).
Teraz tylko ./sudo ./busybox i nie wiem jakim cudem cały system nas widzi jako roota.
Jak się uchronić? Pierwsze co mi przychodzi do głowy to prawa do pliku apt-get aby tylko root miał prawa wykonawcze. Drugie ustawić quote dla userów mniejszą niż 10MB (ja ze wszystkim się zmieściłem na 15MB (i tak było ciężko)).