Mostrando entradas con la etiqueta Pentesting. Mostrar todas las entradas
Mostrando entradas con la etiqueta Pentesting. Mostrar todas las entradas

miércoles, 14 de septiembre de 2016

Resumen RootedCon Valencia 2016

Buenas chavales!!

Pues hoy os traigo una entrada en la que explicaré brevemente todas las charlas en las que pude asistir en la RootedCon Valencia 2016. 


 


La agenda quedó de la siguiente manera:

Jordi Ubach @jubachm - ¿A qué piso va?
Pablo Gonzalez @pablogonzalezpe- PSBot: No tools, but no problem! With Powershell.
Fernando Perera - Home Cracking, contruyendo nuestro Clúster.
Juan Blanco - Defensive security: Current trends and how to apply them.
Ramon Pinagua - Bad Hibernation
Alejandro Ramos @aramosf y Elias Grande @3grander - Odín


 



Pues empezamos la mañana amenizados por los presentadores, que son unos fenomenos, y enseguida nos pusimos con la primera charla, para despertarnos un poco.

La charla de Jordi Ubach (Informática de sistemas en la Uned, 10 años en electrónica y desarrollo industrial S.A.T. 24/7, 6 años en programación aplicaciones gestión (últimos 2 años combinándolo con seguridad informática), trataba de la  [IN]seguridad que hay en todo lo referente a los dispositivos industriales. Nos puso unas cuantas PoC (Pruebas de conceptos) sobre como se puede entrar en los parámetros de ascensores, plantas de gas, plantas de producción fotovoltaica... Trataba de explicarnos las vulnerabilidades que hay incluso públicas, de como poder entrar y manejar a nuestro antojo la producción de una empresa o planta, la poca seguridad o nula por parte de los fabricantes y la pasividad de los técnicos de seguridad y TI de las empresas para poner remedio a ello. En éste caso no hizo ninguna demostración en nada relacionado con crítico o muy crítico (centrales nucleares...).

Fue una gran charla, realizada por un profesional que sabe muy bien de lo que habla. Una información muy útil, que hay que tener muy encuenta para saber en que estado de exposición estamos y lo poco que no está pasando para todo lo que podría pasar.





La segunda charla del día fue para Pablo Gonzalez (Ingeniero Técnico en Informática de Sistemas e Ingeniero en Informática por la Universidad Rey Juan Carlos), hablando de como buscarse la vida cuando no tienes herramientas para hacer un pentest. Nos enseñó un pequeño bot con el que facilitarnos el trabajo en caso que no podamos "tocar" nada. En resumidas cuentas, fue una charla muy interesante con una PoC en directo de como hacerlo funcionar. Lo resumo mucho, por el tema de que tiene una entrada en el blog de elladodelmal, explicando él mismo el uso de dicho bot. Posiblemente saque entrada de ello.

http://www.elladodelmal.com/2015/04/psbot-dame-powershell-y-movere-el-mundo.html

 

La tercera charla fue para el novato en ésto de las charlas Fernando Perera (Ingeniero en Informática por la Universidad Autónoma de Barcelona), que para ser su primera charla nos dejó sorprendidos de lo profesional que estuvo en ella, sino lo llega a decir él, yo de seguro que no lo hubiera sabido. En la charla que ofreció, nos ofrecia un punto de vista para hacer un equipo para el cracking de contraseñas. En su caso, y gracias a su empresa y unos de los patrocinadores del evento LAYAKK, nos mostró el equipo que montaron para explicarnos los resultados obtenidos de ellos y la investigación para encontrar esos componentes, en resumidas cuentas... 3 monstruos de equipos, creo recordar algunas especificaciones eran... 4 gráficas potentes por equipo, disco duro ssd, procesador i7... Para que os hagáis una idea, algo para no todos los bolsillos. 

Algunos asistentes en el turno de preguntas, les preguntaron el porqué no usar un servicio de terceros para hacer el cracking de contraseñas, que saldría más económico... La justificación fue que tienen muchos datos privados de empresas que no pueden dar a terceros. Es un buen punto de vista, y a tener en cuenta a la hora de contratar un servicio de éste tipo, que la privacidad va a estar asegurada.


 


En la cuarta charla nos encontramos a Juan Blanco(10 años de experiencia en el campo de la seguridad informática. A lo largo de su carrera ha trabajado en 4 SOCs y 2 fabricantes de seguridad), dándonos una charla amena con buenos ejemplos extrapolados de estudios realizados en EEUU en otros ámbitos de empresa. Resumiendo su charla, fue que a una empresa atacar, la van a atacar... ¿Cuándo? A lo mejor ya están dentro, pero hay que hacer un planning para poder contener con lo mínimo, lo máximo.  Explicó un poco como gestionar y mejorar la seguridad de las organizaciones, mejorando el tiempo y la calidad de la respuesta ante incidentes de seguridad.



La penúltima charla fue para Ramon Pinagua(Ha trabajado como Penstester desde hace mas de 16 años para compañí­as como INNEVIS y S21SEC. Actualmente ejerce como analista de seguridad y manager del departamento de ciberseguridad de INNEVIS), en éste caso habló solo de la parte de hibernación de Windows, una cosa a muy tener en cuenta. ¿Qué és eso de la hibernación? Bueno, para quien no lo sepa, en los ordenadores hay una opción para cuando no lo estamos usando, y no queremos perder lo que estamos haciendo en ese momento apagando el equipo, podemos hinbernarlo, y así cuando volvamos pulsando una tecla, volvemos a tener el escritorio como anteriormente lo teniamos... Bien, ahora que ya sabemos lo que es, es una opción que se puede desactivar, y que viene así en los equipos a partir de Windows 7, pero hay otra cosa que no saben muchos... O casi nadie, y es que en los equipos portátiles cuando queda muy poca batería, automaticamente se pone el modo hibernación... :-O. 

Paso a explicar muy resumido que nos pasa con eso de la hibernación... Cuando hibernamos el PC se crea un archivo en el disco duro, guardando datos del equipo que ese momento están abiertos, o han sido abierto, y al volver al equipo no se borra el archivo, sino que se queda ahí... Eso significa, que si cogemos ese archivo y lo abrimos... Podemos encontrar users y passwords, entre otras cosas de nuestro equipo, ahí expuesto... Una charla muy interesante, y que seguramente también saque una entrada sóla para ella, y posiblemente lo haga en vídeo.


 



La última charla y para finalizar el evento de ponentes, dejaron a Alejandro Ramos(Profesor colaborador en el Master de Seguridad de la Universidad Europea de Madrid, para los módulos de análisis forense, fortificación de sistemas Linux y herramientas de seguridad) y Elías Grande (Ingeniero Técnico e Ingeniero Superior en Informática por la Universidad Rey Juan Carlos de Madrid y Máster en Seguridad de Tecnologías de la Información y de las Comunicaciones por la Universidad Europea de Madrid), explicandonos su servicio Odin, que viene siendo una herramienta para footprinting a lo grande. Nos hicieron unas demostraciones, y aunque esté en fase beta, tiene muy buena pinta, aunque ésta en modo privado y no vamos a poder usarlo por el momento... 


 


Pues esto es un resumen a la gran jornada realizada por la RootedCon. Espero con ansias la próxima, para aprender más de los grandes que van allí.

Un saludo,

Rubén Gutiérrez

@rgutga


miércoles, 7 de septiembre de 2016

Curso Hacking Ético: Principios básicos arquitectura de redes Parte I

Buenas chavales!!

Hoy os traigo un vídeo donde rápidamente vamos a pasar a ver los modelos OSI y TCP/IP, de una forma clara y concisa.

Van a ser unas semanas de teoría, pero totalmente necesarias para poder coger una base solida para lo que nos viene encima :-).

Explicaremos las 7 capas compuestas por el modelo OSI, y su similitud comparado con el modelo TCP/IP.

En el siguiente vídeo, indagaremos más sobre cada capa, y su función, así que si hoy no habéis entendido algo, podéis preguntar, y aparte la semana siguiente habrá otro vídeo explicándolo un poco más claro.


Aquí os dejo el vídeo de hoy:






Un saludo!!


Rubén Gutiérrez.

jueves, 25 de agosto de 2016

Pentesting Moodle II - Desde dentro

Buenas compañeros,

Este post es la segunda parte de la entrada Pentesting Moodle relacionado con la investigación que hice en mi trabajo de fin de grado. En la primera parte Pentesting con Moodle I - Desde fuera el pentesting se basó en un enfoque de caja negra, es decir, sin tener ningún tipo de conocimiento emulando el rol de un posible atacante.

En este caso, se va a enfocar el rol de caja blanca o caja negra con acceso a la parte privada de la aplicación web con mínimos privilegios, es decir, se está emulando el rol de un alumno o de un profesor (una cuenta cuenta con un nivel intermedio de privilegios).

Vamos al lío!

Enumeración de usuarios

Nuevamente dentro de la aplicación es posible realizar una enumeración de usuarios. Entrando en el perfil del usuario que se tiene en la url se pueda observar un id= X




De esta manera, se puede deducir que el usuario actual tiene el id = 4, por lo tanto, si se va variando a el valor del id, se podría ir accediendo a los perfiles públicos de los diferentes usuarios que estén en la plataforma registrados.


Tras realizar un par de posibles enumeraciones se observan los siguientes resultados:

Usuario registrado pero no se tiene acceso (controles de autorización)  Esto es debido a dos motivos: alumno registrado en un curso diferente del actual o por ser un usuario con privilegios (administrador o profesor de otros cursos).





Usuario no registrado: ID no asociado a ningún usuario.




Usuario con permisos accesible: Se está accediendo al perfil de un profesor que está matriculado en nuestro curso, de ahí que se pueda visualizar su perfil así como conocer el id que tiene asociado en la plataforma que es una información útil para posibles intentos de intrusión.





Además Moodle está permitiendo la visualización de un listado de los usuarios matriculados en un curso (tanto profesor/es como alumnos) con datos interesantes como los correos electrónicos para posibles campañas de phishing.




Esta información puede ser utilizada para atacar la aplicación web, por ejemplo, a través de un ataque de fuerza bruta o un ataque de usuarios/contraseñas predeterminadas.

Con la información recolectada se podría crear un diccionario personalizado con la combinación de nombre y apellidos, o a través de partes del nombre de la aplicación o cualquier otro dato significante a través de la información obtenida en su perfil, una vez que se sabe que está registrado en la aplicación.

Incorrecta configuración de seguridad

Esta vulnerabilidad es bastante peculiar...Los que habéis tenido que hacer algún examen a través de Moodle seguro que os hubiera gustado poder parar el contador del examen o incluso suprimirlo...pues resulta que es posible...

Adquiriendo el rol de alumno que se dispone a realizar un test que tiene un tiempo de duración limitada.

Sabiendo que el contador de tiempo se encuentra implementado con JavaScript, se realiza como prueba de concepto la deshabilitación de JavaScript empleando el complemento de Firefox Mozilla, NoScript. De tal manera, que se obtiene como resultado saltarse la duración por tiempo limitado para la realización del test.





Mientras que deshabilitando JavaScript desaparece el contador del tiempo para finalizar el test. El aspecto para la realización del test es el siguiente:



Cross Site Scripting (XSS) almacenado

Verificando la posibilidad de XSS almacenado en los test correspondiente al módulo quiz. Adquiriendo el rol de profesor (con permisos de edición) quien tiene la capacidad de poder editar un curso para añadir foros, exámenes, noticias,…se verifica que es vulnerable a XSS.

Citar que los compañeros de @FluProject, desarrollaron una herramienta llamado Flunym0us  para enumerar plugins de Moodle.

Como prueba de concepto se introduce código JavaScript tanto en el contenido de la pregunta como en la retroalimentación de la pregunta. Esto es posible pues permite el uso de HTML en el contenido tanto de la pregunta del test como en la retroalimentación del mismo.

<𝑠𝑐𝑟𝑖𝑝𝑡>𝑎𝑙𝑒𝑟𝑡(‘𝑉𝑢𝑙𝑛𝑒𝑟𝑎𝑏𝑙𝑒 𝑋𝑆𝑆’)</𝑠𝑐𝑟𝑖𝑝𝑡>




De tal manera que nada más iniciar el examen cuando se muestra la primera pregunta aparece el alert:




Análogamente tomando el rol de profesor, añadiendo el recurso “Página” es posible explotar la vulnerabilidad XSS en la descripción y/o contenido de la página al posibilitar introducir código HTML.

 De esta manera se inyecta código JavaScript y al no existir mecanismos de protección anti-XSS en este recurso se posibilita explotar la vulnerabilidad. Inyectando el código:


<𝑠𝑐𝑟𝑖𝑝𝑡 𝑡𝑦𝑝𝑒 =”𝑡𝑒𝑥𝑡/𝑗𝑎𝑣𝑎𝑠𝑐𝑟𝑖𝑝𝑡”>𝑎𝑙𝑒𝑟𝑡(𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡.𝑐𝑜𝑜𝑘𝑖𝑒)</𝑠𝑐𝑟𝑖𝑝𝑡>

Se consigue visualizar la cookie del usuario que accede al recurso como se muestra en la siguiente figura:


En las diferentes entradas del blog, se han desarrollando pruebas de concepto de los riegos de un XSS y como explotarlos: phishing manual explotando xss y automatizando  vulnerabilidades xss con beEF

Exposición de información sensible

Existe una exposición de información debido a un incorrecto control de autorización desde el exterior, esto es, un usuario sin estar logueado en la plataforma podría acceder a información sensible desde el exterior a través de rutas predecibles o fáciles de descubrir empleando herramientas como dirbuster.

Acceso README.txt:

Como ya se detalló en el post anterior, el acceso al fichero README.txt desvela información sensible como la ruta para ejecutar el script cron.php




Listing herramientas del panel de administrador:

Se puede acceder al listado de directorios de las herramientas disponibles por el administrador:



Acceso documento explicativo de cookies:

A su vez, es posible acceder a través de la URL a un fichero que explica las cookies que soportan y su uso:



Errores y excepciones no controladas:

Numerosos errores y excepciones no controladas que facilitan el conocimiento de información como son los parámetros que esperan recibir.



Citar que las pruebas que se han mostrador se han realizado en entornos controlados y virtuales, por lo que la finalidad de esta entrada es con fines educativas y formativos, no nos hacemos responsables de uso para otro fin.


Espero que os haya gustado :) ¡Para cualquier cosa, usad el apartado de comentarios!

La mejor defensa es un buen ataque.

NaxHack5

lunes, 22 de agosto de 2016

Los labs de gf0s

- Reto  GF0S -


Buenas Pentesters: 

Desde fwhibbit os dejamos la guía de la manera en que nosotros hemos realizado el reto CTF que nos ha brindado la oportunidad de hacer a nosotros y gran parte de este mundillo el Admin de  https://gf0s.com/ y desde aquí le felicitamos por esta labor desinteresada y poder practicar online.

Solamente decir que para los que nos estamos iniciando es una muy buena opción y encima en español.



Aquí os dejamos la Guía escrita para que la consultéis por si os quedáis atascados.

Aquí os dejamos la Guía en vídeo realizada por Naivenom.

 

viernes, 19 de agosto de 2016

Tr0ll 1 trolleando a Fwhibbit

Buenas hackers! CTF de Vulnhub


Si queréis hacer el CTF, a partir de aquí os recomiendo que no leais nada, simplemente como guía si os veis atascados, como muchas veces me sucede ami cuando resuelvo un CTF, que necesito echarle un ojo jijiji


Atención Spoiler!!


Ejecutamos el netdiscover:

A continuacion usamos nmap, para descubrir las direcciones IP dentro de una subred:


Ahora ya descubierto la direccion IP en la misma red, realizamos un reconocimiento para ver que
puertos tiene abiertos y sus servicios.
Con la opción -sV permite ver la versión de los servicios, con -sS permite TCP SYN, con -A permite la deteción de OS, la versión, script scanning, y traceroute. Con -T4 indica el tiempo de envió de los paquetes, es decir desde 0-6, la más baja es la más lenta, y también mejor ya que podría evadir algunos firewall.



Al ejecutar con -A los scripts por defecto de nmap, como el http-enum.nse, hemos descubierto un archivo llamado robots.txt muy interesante.
Y como se puede apreciar tiene el puerto 21 FTP, con el login anonymous habilitado!!
EL 22 SSH
El 80 HTTP
Ahora con curl, realizamos una petición HTTP con la siguiente dirección del servidor:

Curl: Herramienta muy útil para hacer peticiones HTTP, que nos permite usar distintos protocolos
para dichas peticiones.
Introducimos la dirección del servidor en el navegador y WTF!!!

Usaremos nikto y el CLI de dirb:



También podemos usar wfuzz:


En robots.txt tenemos esto:

Hacemos Curl, y vemos que hay una imagen en la página HTML:


Vamos con el FTP:
Usaremos un auxiliar, para saber la versión aunque ya el Nmap nos lo pudo mostrar anteriormente


Conectamos mediante FTP, y antes de ver el archivo que existe, capturamos trafico para ver lo
vulnerable que es el servicio FTP, dandonos el user y pass en texto claro.


Analizamos a su vez el tráfico capturando paquetes con Wireshark:


Ahora abrimos el archivo lol.pcap:


Y vemos que existe un archivo .txt:


Y leemos su significado, dando a analizar y follow:


También podemos ver el acrhivo lol.pcap con strings:


Probamos el directorio que nos menciona el archivo,en el navegador:


Vemos que existe un binario en el servidor, nos lo descargamos con wget:


Damos permisos de ejecución al binario y ejecutamos:


Bien esta dirección nose en cuanto nos puede ayudar, pero ¿qué podría significar?
Probamos con file para ver el tipo de fichero y strings:


Nos devuelve algo más de información... Siendo una dirección de memoria podríamos usar gdb pero sin resultados positivos. Así que vamos hacer algo más sencillo poniendo esa dirección en el navegador:


Bien pues encontramos dos directorios en la cual podemos encontrar información valiosa, en uno de ellos encontramos un .txt donde contiene usernames, mientras que en el otro directorio tenemos las password.
Por tanto que mejor que descargarnos los archivos con wget y montarnos el diccionario, ya que esto es una vía de acceso en uno de los servicios ya sea ftp o ssh.


Con nano users.txt:


Nos descargamos el archivo pass y creamos el diccionario:


Si visualizas Pass.txt solo viene una linea en el archivo, "buen trabajo", por tanto nose esta maquina tengo la sensación de que me esta troleando jjj, leyendo algún walkthroughs, haré lo siguiente:



Usamos hydra para realizar un ataque de fuerza bruta:


Sin resultados....Probemos con el servicio SSH:


Y si esa era la pass.... :(
Por tanto, vamos a conectarnos por SSH al servidor:



Bien obtuvimos una shell, pero se me cerro la conexion THIS F*** MACHINE IS TROLLING ME?
Si estamos conectados cierto tiempo, nos cierra la conexión...
Bueno nos conectamos de nuevo, y vamos a ver los ficheros con permisos de escritura y redirijimos los errores a /dev/null:



Existe un fichero en Python donde tenemos permisos de escritura, lo visualizamos:



Este script lo que hace es borrar de forma recursiva todo lo contenido en /tmp
En esta carpeta es donde podemos siempre ejecutar algún exploit o scripts para poder realizar una escalada de privilegios.
Seguidamente nos dirijimos a var/log ya que es interesante ver el cron, debido a que quizás haya una tarea programada de ejecutar el script cleaner.py.
Antes veremos los permisos:


Tenemos permisos para escritura, lectura y ejecución con el usuario actual...
Visualizamos:


Efectivamente cada 2 minutos se ejecuta todos los dias este script. Coincide con el tiempo que se nos desconecta la conexión al servidor. Así que si editamos este script y en vez de que borre todo lo que existe en /tmp, copiamos lo que hay en /bin/sh a /tmp/sh y cambiamos a permisos de setuid y ejecutables para cualquier usuario, podremos ser root.


Bien una vez editado el script vamos a esperar a que se nos desconecte, para que el cron haga su trabajo ejecutando el cleaner.py. Nos logueamos y ejecutamos /tmp/sh


Ahora nos dirijimos a /root y alli esta la bandera!:


Espero que os sirva esta posible solución al CTF
Un saludo Naivenom

Google Analytics