Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Absurdalnie prosta do wykorzystania krytyczna podatność w urządzeniach od Palo Alto (unauth RCE jako root). Luka jest już wykorzystywana przez atakujących.
Nie znajdzie się chyba miesiąc w kończącym się już 2024, który nie przyniósłby przynajmniej jednej krytycznej podatności w rozwiązaniach bezpieczeństwa klasy enterprise. Badacze (jak również różni aktorzy nie trudniący się etyczną pracą) upodobali sobie firewalle oraz VPNy. Pokazują, że chociaż są to urządzenia oraz oprogramowanie, które służy do zwiększenia bezpieczeństwa organizacji – to wciąż można tam znaleźć naprawdę trywialne błędy. Tym razem badacze cyberbezpieczeństwa wiedzieli o tym, że luka istnieje i że jest wykorzystywana, ponieważ producent ostrzegał swoich użytkowników. Postanowili jednak sprawdzić co tak naprawdę poszło źle w Next Gen produkcie od bezpieczeństwa. Wnioski… no nie są zbyt optymistyczne.
TLDR:
- WatchTowr opublikowało raport opisujący dwie podatności wyceniane jako critical i medium ( CVE-2024-9474 oraz CVE-2024-0012) pozwalające na zdalne wykonanie kodu bez uwierzytelnienia jako użytkownik root
- Ścieżka eksploitacji jest prosta i nie wymaga zaawansowanej wiedzy technicznej
- Aby podatność mogła być wykorzystana, atakujący musi mieć dostęp sieciowy do ekranu logowania panelu administracyjnego urządzenia
- Podatność jest wykorzystywana przez różnych aktorów w sieci, dlatego zalecane jest natychmiastowe działanie
- Palo Alto wydało odpowiednie advisory i poinformowało (w kilkustopniowym procesie) o podatności swoich klientów
- Producent informuje, że problemy zostały załatane w następujących wersjach systemów: PAN-OS 10.1.14-h6, PAN-OS 10.2.12-h2, PAN-OS 11.0.6-h1, PAN-OS 11.1.5-h1, PAN-OS 11.2.4-h1 oraz kolejne
CVE-2024-0012 – obejście uwierzytelniania (podatność krytyczna)
WatchTowr pokazał, jak w banalny sposób obejść proces uwierzytelniania. Wystarczy… dodać nagłówek oraz sufix do scieżki w zapytaniu HTTP. Szczegóły tej podatności kryją się w diffie przeprowadzonym na podatnej oraz poprawionej wersji:
Rysunek 1. Diff pliku /etc/nginx/conf/locations.conf dla podatnego i załatanego firmware (źródło: WatchTowr)
Z wcześniejszej analizy oprogramowania wyszło, że nagłówek X-pan-AuthCheck odpowiada za obejście uwierzytelniania (w przeciwnym przypadku użytkownik jest przekierowywany do panelu logowania) – szczegóły na ten temat znajdują się w oryginalnym poście. Nagłówek ten jest stosowany np. w przypadku odwiedzania URI /unauth/. Jak to z porównaniami aktualizacji bezpieczeństwa bywa – zmieniony kod najpewniej miał związek z podatnościami. Błędna konfiguracja powodowała złe ustawienia nagłówków dla .js.map.
Co zrobili badacze? Do podatnej instancji przesłali zapytanie pod takie URI, a w nagłówkach wyłączyli sobie uwierzytelnienie. Prawda, że piękne?
GET /php/ztp_gate.php/.js.map HTTP/1.1 Host: {{Hostname}} X-PAN-AUTHCHECK: off |
Listing 1. Zapytanie z bypassem uwierzytelnienia (źródło: WatchTowr)
CVE-2024-9474 – podniesienie uprawnień (podatność średnia)
Dalej jest tylko “lepiej”, okazuje się, że kod odpowiedzialny za logi zawiera trywialny… command injection (możliwość wstrzyknięcia dodatkowych parametrów do polecenia wykonywanego przez aplikację). Oczywiście wstrzyknięcie gwarantuje atakującemu wykonanie polecenia z uprawnieniami użytkownika root.
Rysunek 2. Diff pliku /var/appweb/htdocs/php-packages/panui_core/src/log/AuditLog.php z command injection (źródło: WatchTowr)
Okazuje się, że użytkownik ma możliwość zdefiniowania username, przy pomocy zapytania:
POST /php/utils/createRemoteAppwebSession.php/watchTowr.js.map HTTP/1.1Host: {{Hostname}} X-PAN-AUTHCHECK: off Content-Type: application/x-www-form-urlencoded Content-Length: 107 user=`echo $(uname -a) > /var/appweb/htdocs/unauth/watchTowr.php`&userRole=superuser&remoteHost=&vsys=vsys1 |
Listing 2. Zapytanie ustawiające wartość user na wstrzykiwane polecenie przy pomocy backticków (źródło: WatchTowr)
W efekcie atakujący uzyskuje piękny wpis do logów:
HTTP/1.1 200 OK Date: Tue, 19 Nov 2024 09:39:17 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 108 Connection: keep-alive Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS Linux PA-VM 4.18.0-240.1.1.20.pan.x86_64 #1 SMP Wed Jul 31 20:37:12 PDT 2024 x86_64 x86_64 x86_64 GNU/Linux |
Listing 3. Odpowiedź na zapytanie do endpointu zwracającego fragment logu zawierającego odpowiedź wstrzykniętego polecenia
Reasumując, mimo że marketingowo urządzenie jest “Next Gen” to “łańcuszek” podatności nie należy do tych bardziej skomplikowanych. Póki co badacze nie udostępnili zautomatyzowanego PoCa, ale na bazie opisu możliwe odtworzenie i zautomatyzowanie tej trywialnej podatności. Zademonstrowany został za to szablon nuclei, który pozwala sprawdzić czy Wasz host jest podatny.
Jak myślicie, czy końcówka listopada oraz grudzień to czas na kolejne podatności w firewallach i VPNach? Da się nas jeszcze zaskoczyć? :)
IoC opublikowane przez dostawcę znajdują się tutaj.
Aktualizacja 11.20.2024 10:08 CET
Na portalu GitHub pojawił się skrypt nmapa.
~fc
Zabawnie zacznie być jak to wszystko będzie pisane przez AI bo programisci i spece od bezpieczeństwa drodzy.
No właśnie w AI nadzieja, bo „programisty” z łapanki za miskę ryżu kodujo jak kodujo.
Eksploitacja?
Aktorzy?
Po jakiemu to?
Krytykować zawsze łatwo. Zamiast tego można by na przykład zasugerować jak to napisać inaczej.
Też nie lubię takich bezpośrednich kalek z angielskiego, ale wszystkie określenia są zgodne z żargonem będącym w IT.
Eksploitacja spoko, bo nie znaczy po polsku czegoś totalnie innego niż po angielsku, jest po prostu nowym słowem. Gorzej z aktorami i słynną kolaboracją ;)