Analysis: FortiOS Credentials Disclosure (CVE-2018–13379)

can1337
3 min readNov 21, 2020

--

Merhaba.

Geçen gün twitter anasayfamda gördüğüm bir post dikkatimi çekti. Paylaşım, bir tehdit aktörünün ‘CVE-2018–13379’ numaralı zafiyete sahip 49K’lık bir IP listesi paylaşması hakkındaydı. İlgi çekici görünüyordu.

Muhtemelen -shodan- ve benzeri keşif araçları yardımıyla toplanmış bu listeyi elde etmek zor değil. Bu yüzden ciddi görünüyordu ve ben de daha önceden görüp test ettiğim bu exploiti incelemeye karar verdim. (exploit’e buradan ulaşabilirsiniz)

CVE-2018–13379: FortiOS 5.6.3–5.6.7 / FortiOS 6.0.0–6.0.4 — Credentials Disclosure

(FortiOS Remote Access)

Fortinet ve FortiOS sistemleri, ağ güvenliği üzerine çalışan, kullanıcılarına WAF , antivirüs koruması, VPN, Web içeriğini filtreleme ve anti-spam gibi çeşitli güvenlik eklentileri sağlayan, global ve yaygın bir kullanıma sahip olan yazılımlardır.

İlgili exploit kullanılarak FortiOS’un zafiyetli (FortiOS 5.6.3–5.6.7 / FortiOS 6.0.0–6.0.4) versiyonlarında Path Traversal aracılığıyla kimlik bilgilerinin clear text şeklinde elde edilmesi mümkün. Herhangi bir şifreleme yapılmadığı için de yetkili panele ulaşmak çok kolay oluyor.

Zafiyetten etkilenen sürümler:

FortiOS 6.0–6.0.0 to 6.0.4
FortiOS 5.6–5.6.3 to 5.6.7
FortiOS 5.4–5.4.6 to 5.4.12

1) Metasploit Aracılığıyla Sömürü

Analizimi ilgili exploitin Metasploit varyantını kullanarak sürdüreceğim. Bu yüzden CVE-2018–13379'i Metasploit veritabanımıza ekleyerek başlayalım.

Exploiti MSF’in dizinine dahil edelim ve updatedb komutu ile güncelleyelim.

curl ‘https://www.exploit-db.com/exploits/47287' -o /yourmsfconsolemodule/[]/exploit.py

//

updatedb

Exploiti seçelim ve hedefin RHOST, RPORT değerlerini girelim. Ardından check işlemini bekleyelim.

Görüldüğü gibi kullanıcı dosyasını plaintext (clear text) şeklinde okumuş olduk. Bu adımdan sonra FortiOS’un SSL VPN paneline ulaşmak çok kolay.

2) Manuel Sömürü

Sömürü kısmında asıl olarak faydalanmış olduğumuz Path Traversal zafiyeti, sistemin dosya yolundaki kaynakları veya özel öğeleri düzgün bir şekilde filtreleyememesi sebebiyle oluşuyor. Bu sayede hedef üzerinde okunması istenmeyen özel dosyalar dizinler aracılığıyla çağrılabiliyor.

Bu aşamada ilgili exploitin kaynak kodunun ilgili bölümünü incelersek:

Tanımlanan “url” kısmında host ve port değişkenleriyle beraber hedefin /remote/fgt_lang?lang= dizinine geçiyor ve Path Traversal zafiyetini kullanarak /../../../..//////////dev/cmdb/sslvpn_websession payloadı ile kullanıcıları clear text şeklinde elde etmiş oluyor.

Demo: https://target.com/remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession

Fortinet yayımladığı yamalarla ilgili zafiyeti fixlemiş olsa da hala birçok sunucu eski versiyonu kullanıyor.

Kaynaklar:

--

--

can1337
can1337

Written by can1337

application security researcher / part-time bug hunter / twitter.com/canmustdie

No responses yet