DETECCIÓN PROACTIVA DE PHISHING CON JAVASCRIPT

Sin duda alguna el phishing es uno de los métodos mas utilizados por ciber-delincuentes, esto para estafar y obtener información confidencial de usuarios legítimos. Actualmente existen diversas soluciones de pago, basadas en controles preventivos, detectivos y reactivos.
En esta ocasión deseo compartir un control detectivo para ataques de phishing, el control detectivo está codificado en Javascript, el cual funciona como un agente de verificación incrustado en el mismo sitio web que se desea proteger, y tiene por objetivo detectar cuando un sitio web es copiado y levantado desde un dominio distinto al original, tal y como sucede en los casos de phishing. 

Consideremos que en la mayoría de los casos de phishing, el atacante descarga la web original que quiere clonar (ya que así se asegura de mantener el mismo aspecto visual) y posteriormente adecua el código fuente para almacenar o enviar por correo la información robada. Ahora bien, volviendo al punto de mantener un aspecto visual idéntico, es que el atacante se ve forzado a usar las mismas referencias u objetos, por ejemplo: CSS, JavasSript, JQuery, entre otros. Por tanto, ¿podriamos "camuflar" un script de detección el cual nos alerte de manera temprana cuando estamos siendo victimas de phishing?. La respuesta es SI.

1. Verificación en el lado del servidor.

En este caso, haremos uso de PHP para la verificación y envio de notificación por correo electrónico (Sin embargo es posible realizarlo con otros lenguajes). 


En este ejemplo el fichero PHP será capaz de recibir información desde el script (Javascript) alojado en cualquier otro dominio. Por motivos de seguridad, este intercambio de información entre dominios no es permitido por los navegadores, sin embargo esto puede resolverse haciendo uso de CORS (Cross-Origin Resource Sharing)

El fichero PHP se encuentra alojado en el mismo servidor del sitio web a proteger, en este ejemplo el sitio a proteger es http://www.prosec-it.com/mi_sitio, y el fichero PHP se encuentra en http://www.prosec-it.com/phish/verif.php. Gracias a CORS (Cross-Origin Resource Sharing), es posible implementar el fichero verif.php en otro servidor web, si se se desea.

El código fuente del fichero verif.php es:
header("access-control-allow-origin: *"); // Con esta linea habilitamos CORS.
$domain = $_POST['domain']; // Variable que recibira el dominio origen.

if ($domain=="www.prosec-it.com"){ // Aca se debe escribir el dominio de la web a proteger
exit(0);
}else{ // El dominio recibido se compara
$subject='Alerta Phishing!'; // y si son diferentes se envia una alerta
$msg="La pagina web ha sido cargada desde un origen desconocido.";
$msg.='

';
$msg.='
Origen:'.$domain.'
';
send_notif($subject,$msg);
}
?>

En este ejemplo, la función para enviar correo "send_notif" hace uso de "phpmailer", el cual es un conjunto de lilbrerias PHP para el envío de correos, el código fuente de la función es:

function send_notif($subject, $msg){ require ('class.phpmailer.php');
$mail = new PHPMailer();
$mail->SetFrom('phishing@alerta.com', 'Alerta');
$mail->Subject = $subject;
$mail->MsgHTML($msg);
$mail->AddAddress('cesarcuencad@gmail.com', "CesarR CuencaD");
$mail->AddAddress('cesar.cuenca@owasp.org', "CesarR OWASP");
if(!$mail->Send()) {return -1;}
else {return 1;}
}

Con esto, el fichero verif.php se encuentra listo para recibir información del javascript que enviará información desde cualquier otro dominio donde sea ejecutado.

2. Envio de información de dominio desde Javascript 

El objetivo en este paso es diseñar una porción de código en Javascript, el cual será incrustado en la pagina web que deseamos proteger, en este ejemplo el sitio que se desea proteger es http://www.prosec-it.com/mi_sitio/index.html, por tanto se debe incluir la siguiente porción de código en "index.html".

El script anterior, obtiene el dominio de donde se esta ejecutando el "index.html" del sitio www.prosec-it.com/mi_sitio, por ejemplo, si el sitio se clonará, se subierá a otro dominio www.phishing.com, y se accediera a este sitio, el dato www.phishing.com será enviado a nuestro fichero PHP del paso 1.

3. Camuflaje del script

En este paso ofuscaremos el script para que no sea facilmente visible ni comprensible por simple inspección de código, para ello se debe copiar el código javascript del paso 2 en alguna herramienta de ofuscación, en este caso hice uso de la siguiente: http://www.javascriptobfuscator.com/Javascript-Obfuscator.aspx

Como resultado se obtiene el siguiente código javascript ofuscado.



Ahora solo resta copiar el código ofuscado en el fichero "index.html" del sitio web a proteger.

4. Pruebas
Ahora solo resta probar!. El sitio web de prueba (el que contiene el script) es http://www.prosec-it.com/mi_sitio/.

 

Descargué el anterior sitio y lo subi en un servidor local, http://172.29.21.16/mi_sitio/ 



Como resultado, a los pocos segundos me llegó el siguiente correo:


También probé subiendo la página clonada a un hosting:
DETECCIÓN PROACTIVA DE PHISHING CON JAVASCRIPT DETECCIÓN PROACTIVA DE PHISHING CON JAVASCRIPT Reviewed by PDFREEBOOK on 6:26 Rating: 5