
Exploit de prueba de concepto para CVE-2019-6440 que logra escalada de privilegios a SYSTEM en el antimalware Zemana mediante interceptación de actualizaciones man-in-the-middle y clonación de firma digital.
Productos probados:
Zemana antimalware v.2.74.2.150 y Zemana antilogger v.2.74.204.150.
Corregido desde v.2.74.2.664
Acerca de la vulnerabilidad:
Esta vulnerabilidad permitía a los atacantes obtener privilegios SYSTEM en las máquinas objetivo sin interacción del usuario.
Requisitos:
1. El atacante debe poder interceptar y cambiar el contenido de la solicitud POST a la URL "POST /api/client/settings/"
2. No se requiere acceso físico a la PC objetivo.
Detalles:
Los productos probados usan HTTP simple para recibir actualizaciones, por lo que el atacante puede cambiar fácilmente la versión y la URL correspondiente a valores arbitrarios.
Cambiemos la URL de actualización a nuestro shell simple (Fig.0 y apéndice 1).

Fig.0
El antivirus dice que la firma digital de la actualización no puede verificarse. Pero permite al usuario ejecutarla DE TODOS MODOS (fig.1). Si el usuario tiene derechos de usuario, entonces puede obtener derechos SYSTEM (fig.2).

Fig.1. ¿Quieres ejecutar un archivo desconocido con derechos SYSTEM?

Fig.2. Derechos SYSTEM.
Pero esta alerta se puede evitar.
Para hacerlo necesitamos una copia de la firma digital de ZAM.exe. Clonémosla (directorio Security).
Ahora tenemos nuestro shell con un clon de la firma digital de Zemana y no puede ser verificado por el SO. (Fig.3).

Fig.3. Firma incorrecta.
Ahora veamos la función "ZmnAppUpdater".
Vemos que el resultado del SignatureChecker es IGNORADO. (Fig.4)

Fig.4. Verificación perdida.
EAX = 0x80096010 (TRUST_E_BAD_DIGEST).

Fig.5. Demo-gif.