30 dic 2017

Lo mejor del año 2017, por Juan Antonio Calles (@jantonioCalles)

¡Muy buenas a todos y felices fiestas! De nuevo nos tenéis aquí a Pablo y a mí, como llevamos haciendo desde el año 2013, para traeros un resumen de como ha sido nuestro año en Flu Project, y como lo hemos vivido con vosotros.


En las siguientes líneas podréis acceder a los resúmenes de los años anteriores:
Si bien 2016 se me planteó como un año de retos, como ya os conté hace 12 meses, este 2017 podría resumirlo como un año de transición. Ha sido un año en el que me he tenido que enfocar en mi trabajo, y he tenido poco tiempo para dedicar a hobbies, a pasarme por aquí a compartir con vosotros anécdotas, a compartir tiempo con la familia y amigos, etc. La verdad que gestionar un laboratorio tan grande como el que tenemos en mi empresa, requiere de mucho tiempo y sacrificio. Si que he podido hacer alguna escapada puntual para dar alguna conferencia, ver algún evento como Rooted, donde pude estar 2 de las jornadas, pero por desgracia los he contado con los dedos de una mano.

En enero comenzamos el año como de costumbre, cerrando el URJC TechFest. Nunca hemos faltado, y no vamos a dejar de hacerlo :) En esta ocasión me acompañó mi compañero del Laboratorio de KPMG, David Jiménez, un hacha del pentesting y con el que impartí un taller de 2 horas como cierre del evento, sobre como realizar un Test de Intrusión desde 0.



Por Febrero, Marzo y Abril me he movido por bastantes eventos de ciberseguridad empresarial. Si trabajáis en clientes Ibex35, grandes cuentas o en otras consultoras, probablemente hayamos coincidido en alguno de ellos.

También hemos tenido algunas ediciones satélites de X1RedMasSegura que han ido calentando el evento principal, que de nuevo y por 5ª edición, repetimos en el mes de Mayo :)



Con una agenda de vértigo, además de co-organizar el evento junto con mis ya hermanos, Ángel, Josep y CIA ;), participé en 2 mesas redondas en este X1RedMasSegura 2017. La primera de ellas trataba sobre la evolución de las ciberamenazas de este 2017, y en la que acabamos hablando de Wannacry. Y la segunda cerraba el evento, junto a mis homólogos responsables de los laboratorios de ciberseguridad de otras empresas, para hablar sobre el panorama de la ciberseguridad en el mundo laboral en España, y que moderaban los amigos de Revisa SIC:


Gracias de nuevo a todos los que lo hicisteis posible, patrocinadores, colaboradores y público. Sois muy grandes :)

En Junio estuve impartiendo de nuevo algunos talleres y conferencias orientados a empresas, como el de la One Hacker Experience, que inauguraron Juan Rosell, Presidente de la Confederación Española de Organizaciones Empresariales (CEOE) y Félix Sanz, Director del Centro Nacional de Inteligencia (CNI), junto a José Luis Cortina, presidente del Grupo Atenea.


En este evento estuve hablando de Ciberinteligencia y de su aplicación en las organizaciones como medida de seguridad preventiva, junto a mi compañero de KPMG Javier Santos, Director de Cyber:
Llegó el verano, y me di por primera vez en mucho tiempo unas semanas sabáticas visitando algo de mundo y disfrutando del bello Caribe, para volver en Septiembre con las pilas cargadas para la nueva temporada.

En Septiembre tuvimos una nueva edición de los eventos que One organiza sobre ciberseguridad para familias. En esta ocasión alquilaron un recinto en Faunia, y lograron un lleno rotundo. En esta edición estuve ayudando a mi compañera de X1RedMasSegura Olga, con el taller de robótica de los más peques, y cómo no podía ser de otra manera, acabamos todos tirados por el suelo montando cacharros :P

En este segundo semestre he escrito algunos artículos en revistas especializadas y de divulgación, como SIC y One Hacker. Probablemente si estáis suscritos o las habéis adquirido hayáis leído los textos que de nuevo he dedicado a ciberinteligencia. Desde el nacimiento de Zink Security en 2014, he potenciado mucho este campo, tanto en la investigación de fuentes y metodologías, como en el desarrollo y coordinación de sendas herramientas que podréis ver en el Github de Flu Project, entre otros canales, como por ejemplo, Flu Scan (https://github.com/fluproject/FluScan), y algunas otras de pago que estamos comercializando a nivel empresa.

Tras 4 años dedicándome a ciberinteligencia en especial, aunque no he dejado atrás el hacking ético, estoy planteando de nuevo un cambio de campo para seguir investigando y aprendiendo cosas nuevas. Si todo va bien, en un par de meses tendréis noticias sobre ello :)

También en este año he lanzado algunos pequeños desarrollos como varios scripts o la utilidad WinProcDump, la cual podéis descargar también gratuitamente desde nuestro repositorio:
Se trata de un sencillo programa de consola, desarrollado completamente en C, para manipular la memoria RAM durante un proceso de pentest a entornos Windows.

Ya finalizando el año nos llegó la noticia de que Pablo y yo habíamos sido seleccionados como Top Influencers por Adecco, en un estudio que realizó en redes sociales. Aunque no es algo a lo que le demos mucha importancia porque no trata sobre los éxitos profesionales, sino meramente sobre la influencia en una red social en particular, siempre es de agradecer que se acuerden de uno. Por lo que aprovecho para dar las gracias a Adecco por el detalle y el galardón virtual:
Se acaba el año familia, y lo único que nos falta es desearos a todos unas felices fiestas. Espero que las paséis con vuestros seres más queridos, las disfrutéis, y el nuevo 2018 os traiga nuevas aventuras cargadas de éxitos.

Saludos!






29 dic 2017

Creando un módulo de Metasploit de tipo Auxiliary


Aprovechando los días de descanso, he vuelto a jugar con Metasploit y me ha dado por escribir un post sobre cómo crear nuestro propio módulo en Metasploit. Podemos elegir si tirar por la rama Exploit o por Auxiliary, para ello deberemos heredar de una de las siguientes opciones:

  • Msf::Exploit::Remote
  • Msf::Exploit::Local
  • Msf::Auxiliary

En este caso nos decantamos por desarrollar un módulo dentro de Auxiliary, aquí buscamos crear una funcionalidad útil, que no está relacionada con la explotación. Un tipo podría ser el averiguar el servidor y versión de este que se encuentra corriendo detrás de un determinado puerto.

El módulo que se va a crear, va a servir para recorrer un fichero y hacer peticiones HTTP a un host para saber si una URI se encuentra o no, como, por ejemplo:

  • flu-project.com/index
  • flu-project.com/test

Un ejemplo del fichero que se va a utilizar:


En la primera línea importamos el fichero msf/core, si quieres echar un vistazo a que contiene, aquí el enlace al código en el GitHub. Se crea la clase que hereda de Msf::Auxiliary y acto seguido incluimos el código de Msf::Exploit::Remote::HttpClient en nuestro archivo, para poder usarlo.

En este tipo de módulo se tiene que rellenar la función initialize (arriba) y la función run (abajo), como su nombre indica la primera función se encarga de inicializar el módulo y la segunda esa llamada cuando ejecutas el comando run en Metasploit. Se pueden agregar todas las funciones que desees, pero sin olvidar que run desencadena las acciones.

Si vemos la función initialize:


  • La parte de Super, damos los valores de nombre del módulo, una descripción, el autor y la licencia, pero se pueden hacer más cosas, como, por ejemplo, utilizar DefaultOptions para dar un valor por defecto a los atributos del módulo.
  • En register_options, se registran nuevos atributos, uno de tipo String, para guardar la ruta del fichero a utilizar, y otro booleano, para activar o no el modo Verbose.
  • Y en deregister_options, se pueden eliminar atributos que no usemos.

La segunda y última parte del código se muestra a continuación (el último end termina la clase):



Ahora, la función que se encarga de realizar el trabajo “duro” run, que aquí es algo sencillo, se lee el fichero y se recorre línea a línea haciendo peticiones HTTP con la función send_request_raw que trae el Módulo HttpClient incluido anteriormente, para ver el código de esta función, consulta este link. Los parámetros que se pasan aquí son bastante descriptivos. Por último, se comprueba la respuesta, para pintar por pantalla la información, o no (según código de respuesta o verbose).

Se puede ver el uso de las siguientes funciones que facilita Metasploit para pintar por pantalla (los colores no son exactamente los mismos):

  • print_status: veras que pinta [*] mensaje.
  • print_good: el que empieza por [+].
  • print_error: el que empieza por [-].
Este módulo lo he agregado a la siguiente ruta:

/usr/share/metasploit-framework/modules/auxiliary/scanner

Aquí he creado una carpeta llamada testing, para agregar mis propios módulos, y tenerlos más localizados. Y el archivo le he llamado test_uris.rb (para usar el módulo se hace referencia a este nombre, sin la extensión).

A continuación, se deja una imagen del uso del módulo, en el código se dio un valor por defecto a la ruta del fichero, por eso no he necesitado configurarlo, pero tu deberías darle la ruta que contiene el fichero con set FILE <path>:


Como se puede ver, crear un módulo para Metasploit no es nada del otro mundo, lo puedes hacer todo lo complejo que quieras.  Si quieres iniciarte o profundizar en este gran framework, el siguiente libro es muy recomendable: Metasploit para pentesters.


Autor: Josué Encinar García (@JosueEncinar). Ingeniero de Software por la Universidad Rey Juan Carlos, estudiante del Máster Universitario en Seguridad de Tecnologías de la Información y de las
Comunicaciones en la Universidad Europea de Madrid. Analista de Seguridad en Accenture. Co-Fundador de @_ciberbyte_.