Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak klientem VPN Fortinet zdobyć lokalnego admina? CVE-2022-26113, eskalacja uprawnień.
TLDR: warto aktualizować również część kliencką naszych rozwiązań VPNowych.
Tutaj ciekawy opis załatanej niedawno luki CVE-2022-26113: FortiClient Arbitrary File Write As SYSTEM.
Przechodząc od razu do sedna:
FortiClient VPN allows normal users of the VPN Client to backup their VPN configuration. The backup file is written by FortiClient’s scheduler service running as SYSTEM, which calls the FCConfig.exe on the specified backup file. Since the file path used to perform the backup to is only validated in the UI of the application, it is possible to bypass any permission checks and force the service to write to an arbitrary location, even if the user does not have permission to do so. The user can control partial contents of the configuration backup, which means at the very least they could write a .bat script to an administrator’s startup directory as one method of privilege escalation.
Czyli mając uprawnienia lokalnego użytkownika, możemy wykonać kopię zapasową konfiguracji VPNa, przy czym wskazać dowolną ścieżkę do pliku, gdzie ta kopia ma się znaleźć. Ktoś może więc stworzyć plik .bat (plik można stworzyć wszędzie w systemie, bo usługa backupowa działa z uprawnianiami SYSTEM), który to plik odpalany będzie z uprawnieniami administratora. Wystarczy tylko wrzucić odpowiednie polecenie do konfiguracji klienta VPNa.
Badacze odpalili klienta VPN w włączonym zdalnym debugowaniem:
C:\Program Files\Fortinet\FortiClient\FortiClient.exe –remote-debugging-port=9222
Zdalne debugowanie potrzebne było żeby aktywować w interfejsie możliwość zmiany ścieżki gdzie zapisywana jest kopia zapasowa (normalnie nie można tego pola edytować):
To znaczy teraz już można:
Można też z poziomu debuggera ustawić dowolną zawartość tego pliku, co było do udowodnienia ;-)
PS
Inny przykład podobnej eskalacji został niedawno załatany w AWS VPN Client.
~Michał Sajdak