King Cope, który jest znany z tworzenia exploitów, opublikował sposób na podniesienie uprawnień w bazie MySQL na systemie Linux. Pozwala on na dodanie do bazy danych użytkownika o prawach administratora. Do wykorzystania exploita, atakujący musi posiadać użytkownika w bazie danych z przywilejami FILE. Dzięki temu napastnik może stworzyć plik w systemie o uprawnieniach użytkownika mysql.
Następnie atakujący tworzy TRIGGER na dowolne zdarzenie w bazie. Zazwyczaj TRIGGER doczepiany jest do użytkownika i wykonywany na jego prawach. Ponieważ jednak mamy możliwość zapisu do plików dzięki FILE, możemy dodać dowolną treść do pliku TRG (plik triggera). Atakujący zapisuje tam zapytanie SQL, które uruchamia się jako root@localhost.
Następnie należy spowodować uszkodzenie serwera MySQL i jego wznowienie za pomocą przepełnienia stosu, aby plik TRIGGERA został poprawnie zaczytany i rozpoznany. Wykonanie dowolnego zapytania SQL, które uruchamia TRIGGER pozwoli na wykonanie zapytania jako root@localhost.
Opublikowany przez Kinga exploit wykonuje następujące kroki:
- Podłącza się do serwera MySQL
- Tworzy tabelę dla TRIGGERa
- Tworzy plik dla TRIGGERa:
/var/lib/mysql/<bazadanych>/<tabela>.TRG - Poprzez wywołanie przepełnienia stosu, zmusza serwer MySQL do awarii i przeładowania się
- Dodaje wartość do tabeli aby wywołać TRIGGER
- TRIGGER dodaje wszystkie uprawnienia dla bieżącego użytkownika w
mysql.user - Ponowne uszkodzenie i przeładowanie MySQLa
- Dodanie nowego użytkownika o uprawnieniach administratora
- Ponowne uszkodzenie i przeładowanie MySQLa
- Podłącza się do bazy danych jako nowy użytkownik
- Wykonuje zrzut loginów oraz hashy haseł z tabeli
mysql.user
Błąd został sprawdzony na systemach:
- Debian Lenny (mysql-5.0.51a)
- OpenSuSE 11.4 (5.1.53-log)
























OSWorld.pl liked this on Facebook.
Wystarczy zabrać uprawnienia FILE dla użytkowników jako tymczasowe zabezpieczenie.
Bartosz Lordmccord Świtoń liked this on Facebook.
Jakub Szukała liked this on Facebook.
[…] Article from https://osworld.pl/0day-na-mysql-podniesienie-uprawnien-na-linuksie/0day na MySQL – podniesienie uprawnień na […]
Łukasz Wòjcik liked this on Facebook.
Jakub Kamycki liked this on Facebook.
[…] tym roku także MySQL zaliczył dwie poważne wpadki. Jedna z nich, oznaczona jako 0day na MySQL, podnosiła uprawnienia w Linuksie. Druga polegała na ominięciu autoryzacji i uzyskaniu bardzo łatwego dostępu do bazy danych z […]