Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Krytyczne podatności pozwalają na zbackdoorowanie urządzeń F5
Na blogu eclypsium.com opublikowano wpis, który opisuje niedawno załatane podatności oznaczone jako CVE-2024-21793 oraz CVE-2024-26026 dotyczące produktów BIG-IP Next firmy F5. Od początku roku obserwujemy wysyp ciekawych podatności na urządzenia sieciowe między innymi Fortinetu czy Ivanti. Nic dziwnego, ich kontrola zapewnia atakującym całkiem ciekawe możliwości.
Odkryte podatności zostały znalezione w kontroli zarządzania produktu Next Central Manager czyli zunifikowanego interfejsu pozwalającego na konfigurację urządzeń F5. Już sam fakt istnienia podatności w tak krytycznym elemencie systemu powinien budzić niepokój. Ale to nie wszystko, okazuje się, że korzystając z innych luk, atakujący (uprzednio uwierzytelniony przez wykorzystanie podatności w Central Managerze) może tworzyć konta na urządzeniach BIG-IP Next. Brzmi strasznie? Jest jeszcze gorzej – stworzone w ten sposób złośliwe konta nie są widoczne z poziomu Central Managera, co oznacza, że administrator może przeoczyć fakt iż jego urządzenia zostały przejęte.
Badacze zgłosili pięć podatności, które odpowiadały za cały łańcuch ataku. Na ten moment zostały przydzielone tylko dwa numery CVE, a producent nie poinformował czy pozostałe problemy zostały naprawione.
CVE-2024-21793 to tzw. OData Injection czyli podatność pozwalająca atakującemu wstrzyknąć parametry do zapytania OData. OData (Open Data Protocol) to stworzony przez Microsoft protokół oparty na HTTP, który pozwala wykonywać zapytania do bazy danych. Aby atakujący mógł wykorzystać tę podatność wymagane jest aby Central Manager był skonfigurowany do pracy z LDAPem. Skutkiem tego ataku jest pozyskanie kluczowych informacji, takich jak hash hasła administratora.
Listing 1. Fragment PoC (Proof of Concept) opublikowanego przez badaczy z kodem wykonującym wstrzyknięcie, źródło.
stuff = requests.post(URL, json={
"username": f"fakeuser' or 'username' eq '{target_user}' and startswith('password','{full_guess}') or 'username' eq '1",
"password": "password",
"provider_type": "LDAP",
"provider_name": "LDAP"
}, verify=False).json()
CVE-2024-26026 to z kolei dobrze znane SQL Injection, które nie wymaga szczególnej konfiguracji. Atak pozwala na pominięcie uwierzytelnienia. Podatny jest, tak samo jak w poprzednim przypadku, endpoint odpowiedzialny za uwierzytelnienie użytkownika.
Listing 2. Fragment PoCa opublikowanego przez badaczy z kodem wykonującym SQL injection, źródło.
stuff = requests.post(URL, json={
"username": "fake_user",
"password": "password",
"provider_type": "LDAP",
"provider_name": f"LDAPP'or' name = (select case when (password like concat({full_guess})) then chr(76)||chr(111)||chr(99)||chr(97)||chr(108) else chr(76) end from mbiq_system.users where username like concat({encoded_user}) limit 1)"}, verify=False).json()
Dodatkowo opublikowano PoCe umożliwiające wykonanie SSRF przez nieudokumentowane API, które pozwala na wywołanie dowolnej metody na urządzeniu. Administratorzy korzystający z Central Managera nie mają świadomości istnienia API, ponieważ nie jest ono nigdzie wykorzystywane. Nawet w przypadku aktualizacji urządzenia, resetu hasła administratora – w systemie wciąż mogą przebywać atakujący, którzy stworzyli konta wykorzystując tę metodę.
Jakby tego było mało, badacze zwracają uwagę na błędną konfigurację funkcji bcrypt odpowiedzialnej za hashowanie hasła administratora. Zbyt niski koszt funkcji definiujący liczbę kryptograficznych operacji, powoduje, że atakujący z dostępem do przyzwoitego hardware jest w stanie bardzo szybko sprawdzić duże wolumeny haseł ze słowników.
Wisienką na torcie jest podatność pozwalająca na reset hasła bez znajomości jego obecnej postaci. To oznacza, że atakujący, który posiada zalogowaną sesję jest w stanie zmienić hasło konta w systemie odcinając administratorów.
Te ostatnie trzy podatności chociaż głoszone, nie zostały bezpośrednio zaadresowane, na co również uwagę zwrócili badacze.
Użytkownikom jak zwykle zalecamy pilną aktualizację. Opisane wyżej błędy z CVE zostały naprawione w wersji 20.2.0 i mogą zostać pobrane stąd.
~fc
Na szczęście Next nie jest jeszcze systemem „produkcyjnym”