Fortinet wordt enorm veel gebruikt als Firewall en VPN server in België.
Begin dit jaar zijn details naar buiten gekomen over een kwetsbaarheid binnen het veel gebruikte OS van Fortinet genaamd FortiOS. De fout is echter geen “Remote Code Execution” of “Authentication Bypass” en werd dus vrij snel geminimaliseerd als “CVE-2018-13379”, gepubliceerd op 6 april 2019 met een update voor FortiOS 5.6 op 25 april (v5.6.8) en voor FortiOS 6.0 pas op 12 juni (v6.0.5).
Officiële details zijn hier te vinden: https://fortiguard.com/psirt/FG-IR-18-384
Details
De categorie is “Information Disclosure” met CVSS scores van 5 tot 7.5, wat heel veel en tegelijk heel weinig zegt:
Onder “Information Disclosure” kan namelijk evengoed de versie van een webserver zitten als de geheimen van eender welk bedrijf.
Concreet is CVE-2018-13379 een zogenaamde “Path Traversal” om bestanden in te laden op de SSL web interface. Het is dus enkel van toepassing indien de SSL VPN web interface open staat (poort 10443), wat helaas standaard het geval is.
Exploitation
In detail zit de fout in het ophalen van het bestand dat instaat voor de vertalingen van die interface: de browser van de bezoeker maakt daarvoor een aanvraag naar een pagina genaamd “fgt_lang” met als parameter “lang=en”. Wat op de achtergrond wordt vertaald naar “/migadmin/lang/en.json”, maar door de “en” in de browser aan te passen kan elk bestand worden ingeladen:
/remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession
Indien men bovenstaande tekst in een willekeurige browser plaatst na de obligate https://<ip>:<port> dan wordt dus het bestand “/dev/cmdb/sslvpn_websession” getoond in de browser.
Impact
Het bovenstaande bestand in bij “Exploitation” is niet
willekeurig gekozen, dit bestand bevat namelijk alle inlogpogingen van de voorbije
weken en/of maanden. En het bevat daarbij:
Bron
IP adres, gebruikersnaam, wachtwoord, naam van de group, rechten, …
Dit maakt de impact dus TOTAAL: het is vreemd dat in 2019 een security fabrikant gebruikersnamen en wachtwoorden in clear text (dus zonder enige hashing, encryptie of beveiliging) opslaat. Dit is echter exact wat er gebeurd:
- Wat nu dus kan gebeuren bij alle fortinet installaties die niet zijn geüpdatet sinds april
- Uitlezen van alle gebruikers en hun wachtwoorden die toegang hadden tot de VPN
- Vervolgens toegang verschaffen tot de netwerk omgeving m.b.v. de gratis FortiClient
- Diezelfde gebruikersnamen en wachtwoorden allicht opnieuw gebruiken om toegang te krijgen tot tal van interne diensten en systemen (Active Directory, RDP, web applicaties …)
Oplossing
Naast het updaten van het Fortinet toestel (zie link bovenaan) is het dus aanbevolen om minstens de wachtwoorden te wijzigen van elke VPN gebruiker én bij vermoeden (of kans) van misbruik ook alle andere gebruikers.
Two-Factor authenticatie voorkomt overigens elk misbruik van deze exploit.