- Chema Alonso nos cuenta como va a ser a partir de ahora su nueva vida como Chief Data Officer en Telefonica.
- El martes 28 de Junio se celebra un nuevo encuentro de la mano de OWASP Madrid sobre Seguridad en NodeJS y Python
- En Xataka, "Cómo llegar a ser un hacker: varios expertos en seguridad nos lo cuentan", con entrevista a nuestro compañero Yago Jesús, así como a María García y Oliver López.
- Ausencia de autenticación combinada con una vulnerabilidad de referencia insegura a objetos pudo permitir el hacerse con el control de un conjunto de cuentas bloqueadas de Instagram
- Trailer del documental ZERO DAYS de Alex Gibney sobre ciberguerra
- Ya disponible el material de Hack In The Box 2016 Amsterdam en este enlace.
- Nuevo artículo de Antonio Salas sobre verdades y mentiras de Anonymous
- Hacker intenta vender 427 millones de usuarios y contraseñas de MySpace por 2800 dólares
- Cuarto banco (esta vez de Filipinas) afectado tras el compromiso del sistema interbancario SWIFT. No creemos que sea el último...
- Chip no detectable utiliza circuitos analógicos para escalar privilegios (prueba de concepto)
- Securízame, la compañía de seguridad de nuestro compañero Lorenzo, celebra cuatro años de vida. Felicidades!
29 mayo 2016
23 mayo 2016
A raíz de participar en Palabra de Hacker con Yolanda Corral, desde un grupo privado de facebook llamado "Seguridad Informática Chile", me comentaron sobre la posibilidad de estar en un Hangout para hablar de seguridad. Se fueron dando las cosas y debido a que estaba llenando de vida las aplicaciones de un Android para las demos del último módulo del Curso de Forense 2.0, les propuse que podría preparar unas slides de Análisis Forense en Android.
El resultado del Hangout que tuvimos anoche lo podéis ver en el video Youtube que os dejo bajo estas líneas.
El resultado del Hangout que tuvimos anoche lo podéis ver en el video Youtube que os dejo bajo estas líneas.
22 mayo 2016
- Desde la cuenta de twitter de GammaGroupPR se publica información (video de casi 30 minutos explotando una vulnerabilidad de inyección SQL) acerca del compromiso a un portal que contenía información sensible sobre Mossos d'Esquadra. Más información en este enlace.
- Este fin de semana se ha celebrado una nueva edición de X1RedMasSegura. Hemos podido disfrutar del evento a través de los streamings en Youtube, por lo que aquí podréis encontrar las grabaciones. Esta ha sido la agenda, en la que se encuentran nuestros compañeros Yago (con su participación en una mesa redonda) y Lorenzo (con la charla Perito de Familia)
- Exploit disponible para escritura arbitraria de ficheros en Magento, software para creación de tiendas online. La vulnerabilidad corresponde con el identificador CVE-2016-4010
- Fechas confirmadas para la próxima RootedSatelite Valencia. Se celebrará el 9 y 10 de Septiembre de 2016 en la Fundación Universidad-Empresa de la Universitat de València (ADEIT).
- Los creadores de TeslaCrypt publican la clave maestra para descifrar los archivos en caso de infectarse con este ransomware.
- Aparecen en el "mercado negro" más de 150 millones de usuarios y contraseñas (cifradas) de LinkedIn, que podrían haber sido obtenidas en un hack de hace años.
- Nuevo hack a un banco relacionado con los problemas detectados en la red Swift. Esta vez, le toca el turno al Banco de Ecuador, sobre el que se podría haber robado 9 millones de dólares.
- Presentación de la charla de Chris Hernandez sobre los nuevos exploits, mitigaciones y técnicas avanzadas de evasión en el congreso Secure360 celebrado en Minnesota del 17 al 18 de Mayo.
- Apple publica actualizaciones para todos sus sistemas operativos, parcheando DROWN, vulnerabilidades de evasión de la pantalla de bloqueo y más.
- Hack In The Box Amsterdam 2016, que se celebrará esta semana el 26 y 27 de Mayo, podrá seguirse por streaming en Youtube a través de estos enlaces ya disponibles.
17 mayo 2016
Me habéis oído y leído defender a Perl como lenguaje de scripting en múltiples ocasiones a lo largo de los años que llevo escribiendo en este blog. Siempre he dicho que el lenguaje en el que hagamos nuestros scripts da igual, siempre y cuando nos sintamos cómodos con él, éste disponga de los medios y módulos que nos permitan cumplir nuestras necesidades de manera rápida y efectiva.
Sin embargo, es cierto que si tiramos de estadísticas, o mejor dicho de realidad, la mayoría de los proyectos de herramientas albergadas en github que han surgido en los últimos años están hechas en Python. Es cierto que otros lenguajes como Ruby o NodeJS también tienen su nicho, pero a día de hoy, es difícil encontrar un lenguaje que "valga para todo", y esté tan universalmente aceptado com Python.
Por ello, en Securízame hemos propuesto un nuevo pack de cursos con uno online y tres presenciales que permiten aprender Python desde el principio, que además cubren las necesidades de administradores de sistemas, el desarrollo de herramientas para pentesters y las de cualquiera que quiera especializarse en ello sacando todo lo que Python puede dar de sí.
Junio.py: el mes de Python con Securízame
En este caso, y para aquellos que no tengan ni idea de Python, habrá un primer módulo que es 100% online, para el que la profesora, María José Montes Díaz, responsable de formación de Securízame, ha preparado 45 horas de sesiones en video, así como ejercicios para que hagan los alumnos, y a los que ella enviará posteriormente una solución propuesta. Se trata de un módulo básico, donde se explique lo más normal con Python, declaración de variables, estructuras de control, funcionamiento con módulos, orientación a objetos, interacción y manejo de ficheros, tratamiento de sockets, etc,... Este módulo estará disponible a primeros de Junio. Te puedes registrar a él aquí: Python 101
Los siguientes módulos, son presenciales, y serán impartidos en las oficinas de Securízame en Madrid. De 10 horas de duración cada uno, se darán en fines de semana (en formato viernes por la tarde - sábado por la mañana).
El viernes 10 y sábado 11 de Junio, se impartirá "Python para Sysadmins". El profesor, Julio Semper, del equipo de Securízame, mostrará módulos que pueden ser interesantes para administradores de sistemas. Módulos que permitan automatizar tareas cotidianas, o desarrollo de scripts puntuales que permitan interactuar con ficheros más grandes, logs, pcaps, bases de datos, etc,... La idea no es mostrar en modo masterclass qué hace cada módulo y qué opciones tienen, sino también que los alumnos hagan ejercicios y que el profesor solucione en el momento aquello que no funcione.
El viernes 17 y sábado 18 de Junio, el profesor será Daniel García "Chron", al que algunos ya conocéis como profesor del módulo de Hacking con Python en el curso de hacking online que hicimos a finales de 2015, o como uno de los creadores de la herramienta de pentesting escrita en Python GoLismero. En esta ocasión dará en modo presencial "Python avanzado". El temario está relacionado con concurrencia, hilos, optimización, etc,... el temario completo y registro aquí: https://cursos.securizame.com/python-avanzado/
El viernes 24 y sábado 25 de Junio, le toca el turno a Daniel Echeverri (AKA "Adastra") nos contará cómo utilizar Python en las diferentes fases de un pentest. Se trata de un curso también práctico, del que todo el mundo hablaba maravillas cuando coincidimos en el DragonjarCON en Manizales. El título del curso es "Python para Pentesting" y tenéis el temario y formulario de registro aquí: https://cursos.securizame.com/python_pentesting/
Cada módulo suelto presencial tiene un precio de 165 euros + 21% IVA, y el online 165 euros (estando exento de IVA según el artículo 20, apartado uno, número 9, de la Ley 37/1992, al encontrarse el contenido en el sistema educativo español, según Real Decreto 1393/2007) e incorpora, además de la formación y el material que cada profesor proporcione, un certificado nominal de asistencia con aprovechamiento.
Además, se incluye café, infusiones, refrescos y algo de picar en dos descansos que se hacen en cada jornada.
Puedes pre-registrarte en alguno de los cursos que te he contado, por separado, o matricularte en la oferta de pack conjunto por 495 euros + 21% IVA, según prefieras ,aquí: https://cursos.securizame.com/python/.
Como se puede ver en las fotos, la sala tiene una capacidad limitada por lo que aconsejamos no dejar el registro para el último día.
Consulta todo aquí: https://cursos.securizame.com/cursos/python-para-sysadmins-y-pentesters/.
14 mayo 2016
Aunque el líder indiscutible y universal de mensajería, es whatsapp, tiempo atrás llegó un competidor, que a mi juicio resulta incluso más práctico. Una de las ventajas que tiene, es la creación de grupos de difusión con capacidades enormes, así como de canales a los que simplemente te suscribes o unes.
Los hay de todas las temáticas, desde cocina y Fórmula 1 hasta distribución de material protegido con derechos de propiedad intelectual.
Al igual que hace unos días publiqué diferentes recomendaciones de cuentas Twitter relacionadas con seguridad en inglés, que podían ser del interés de los lectores, hoy quiero hacerlo con grupos y canales relacionados con seguridad en diferentes ramas. Se trata de canales en los que recibes de forma pasiva los contenidos, o grupos creados por alguien en los que "se discute" de temas relacionados. Es decir, lo más parecido a un canal de IRC de toda la vida, pero aprovechando esta aplicación de mensajería.
Yo lo veo como un complemento a las listas de correo, aunque las listas tienen la ventaja de archivado de mensajes, permitiendo así la búsqueda de información en local, que te puede venir bien. Claro ejemplo de ello, y hablo en mi propia experiencia, es la lista de correo de RootedCON, en la que alguna vez he tenido necesidad de alguna herramienta o técnica vista en esa lista y, con una búsqueda en el correo, das con información muy interesante.
En este caso, seguro que hay más, pero los que detallo aquí son algunos en los que estoy suscritos y que me parecen interesantes:
- https://telegram.me/SeguridadInformatica: Canal de noticias de seguridad. Los administradores siguen diferentes fuentes y van publicando aquello que consideran interesante. Desde herramientas, eventos, etc....
- https://telegram.me/Infoseces: De título "Infosec - es", el objetivo es precisamente ese. Un grupo reducido de profesionales de seguridad que comparten inquietudes, se comentan dudas, cada uno aporta alguna solución, herramienta o el "cómo se haría". Algo muy importante en este canal son las normas, y es que está completamente prohibido salirse del tema, con riesgo de ser baneado. Algo que los que estamos en dicho grupo agradecemos. El objetivo es calidad, más que cantidad.
- https://telegram.me/joinchat/Bz3s0j5emyHj1Adl3iHYSQ: Canal especializado en Exploiting en el que el gran Ricardo Narvaja colabora compartiendo diversos retos que los integrantes del grupo se rompen la cabeza para intentar explotar.
- https://telegram.me/seguridadinformatic4: Su descripción es esta: "Compartimos conocimientos en seguridad informática, aunque el termino más indicado es autodefensa digital." No parece que tenga una actividad desmesurada y lo que comparten está bien, sobre todo muy orientado a privacidad personal.
- https://telegram.me/redsegura: Este canal aún no tiene contenido, pero los administradores tienen pensado que sea a un nivel "para toda la familia", muy al estilo de concienciación de X1redmassegura, un colectivo mucho más vulnerable, al que no debemos dejar de proteger.
- https://telegram.me/secbydefault: Como podéis imaginar, en este canal iremos publicando los diferentes posts del blog
- https://telegram.me/securizame: Aquí publicamos noticias relacionadas con Securízame, según aparecen en el blog de la empresa, sobre cursos de seguridad que impartimos, ofertas puntuales en los mismos o relacionadas con eventos en los que participamos.
Si conoces alguno más que creas que pueda resultar interesante que esté en esta lista, indícamelo por twitter y lo evalúo para añadirlo.
13 mayo 2016
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:
<?php
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.='<br><br>';
$msg.='<table><tr><td>Origen:</td><td>'.$domain.'</td></tr></table>';
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".
<script>
// Esta linea permite que el control se ejecute cada vez que el fichero "index.html" se carga en un navegador.
window.addEventListener('load', test, false);
// Esta función envia el dominio desde el cual se esta accediendo al fichero "index.html"
function check(){
var ajax_url = "http://www.*******.com/phish/verif.php"; // Reemplazar con tu dominio
var d=document.domain;
var params = "domain="+d;
var ajax_request = new XMLHttpRequest();
ajax_request.open("POST",ajax_url,true);
ajax_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax_request.send(params);
}
</script>
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.
<script>Ahora solo resta copiar el código ofuscado en el fichero "index.html" del sitio web a proteger.
var _0xbc3a=["\x6C\x6F\x61\x64","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x6D\x6F\x65\x62\x69\x75\x73\x65\x63\x2E\x63\x6F\x6D\x2F\x70\x68\x69\x73\x68\x2F\x76\x65\x72\x69\x66\x2E\x70\x68\x70","\x64\x6F\x6D\x61\x69\x6E","\x64\x6F\x6D\x61\x69\x6E\x3D","\x50\x4F\x53\x54","\x6F\x70\x65\x6E","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64"];window[_0xbc3a[1]](_0xbc3a[0],test,false);function test(){var _0x56c1x2=_0xbc3a[2];var _0x56c1x3=document[_0xbc3a[3]];var _0x56c1x4=_0xbc3a[4]+_0x56c1x3;var _0x56c1x5= new XMLHttpRequest();_0x56c1x5[_0xbc3a[6]](_0xbc3a[5],_0x56c1x2,true);_0x56c1x5[_0xbc3a[9]](_0xbc3a[7],_0xbc3a[8]);_0x56c1x5[_0xbc3a[10]](_0x56c1x4)}
</script>
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:
5. Conclusiones
Como se ha visto, la implementación de un control de detección temprana para ataques de phishing, empleando Javascript, es de mínima complejidad. Si bien este control "reduce" la probabilidad de no detectar de manera oportuna un ataque de phishing, resta la posibilidad de que el atacante realice una inspección de código minuciosa antes de levantar un sitio clonado, y asi detectar y borrar nuestro script, por lo que se podría pensar en mejorar la tecnica de ofuscación y de camuflaje mostradas en este artículo. Por ejemplo se podría pensar en incrustar esta porción de código en librerias JS necesarias para replicar exactamente estilos y comportamientos visuales del sitio web (por ejemplo liberias jquery, grids, charts, sliders,etc.), y asi forzar al atacante a que incluya nuestro script sin percatarse de ello.
Espero que esta lectura haya sido de su agrado y mas importante aún, sea útil para ustedes. Si desean mas información sobre este tema, no duden en escribirme. Muchas gracias a SBD por brindarme su espacio. Hasta la próxima.
Cesar Cuenca
Correo: cesar.cuenca@owasp.org
Twitter: @ccuencad
Suscribirse a:
Entradas
(
Atom
)