Mostrando entradas con la etiqueta CTF. Mostrar todas las entradas
Mostrando entradas con la etiqueta CTF. Mostrar todas las entradas
domingo, 2 de octubre de 2016
[RETO] Noticia importante en FWHIBBIT
Hola a todos!
Tenemos algo muy importante que comunicar, pero obviamente, no os lo íbamos a poner tan fácil, es por ello, que hemos desarrollado un reto (bastante sencillo), para que averigüéis el "secreto".
El Martes daremos la solución, no obstante, si consigues terminarlo, podrás conocerlo hoy mismo.
Si lo consigues, nos gustaría que nos avisaras por twitter y/o facebook (obviamente por privado :P), además, estad atentos pues iremos dejando pistas!
Reto:
SOLDADO! No sabemos que ha ocurrido, pero el pelotón que se dirija a Cybercamp nos ha enviado esta URL, no sabemos que secretos guarda en su interior, pero estamos seguros de que el futuro de la nación depende de ti! AYÚDANOS!
http://137.74.44.236:8080/
Mucha suerte a todos y gracias por participar!
martes, 27 de septiembre de 2016
Reto Ninja - Qurtuba CTF
Hola a todos! Soy Álvaro (@alvarodh5), aunque mi nick es Blackdrake. Ante todo quería dar las gracias a fwhibbit por permitirme escribir en este fantástico blog.
En esta entrada, explicaré como realizar el reto ninja del CTF de Qurtuba, aprovecho para felicitar una vez a toda la organización, pues hicieron un trabajo excelente.
Llegamos al reto ninja, teóricamente el más difícil pues era el que más puntuación otorgaba, comenzamos con un comprimido con contraseña, la descripción es clara: "Visita Is it a game or is it real? para continuar con el reto".
Obviamente no me la
iba a perder por nada en el mundo, pero la pista, hizo que estuviera más atento
a los pequeños detalles.
Comienza la ponencia y nos encontramos con un vídeo de 10
unido a un temazo hardcore con el que sorprendió a toda la sala a mí incluido,
justo después, apareció en una de las diapositivas un personaje bastante
conocido:
¿Qué hace charizard en una
diapositiva? ¿Será nuestra contraseña?
BINGO! Archivo descomprimido y nos encontramos con los siguientes ficheros:
Nos dirigimos a visualizar el
contenido del fichero PassWords.odt:
Aparentemente un documento vacío en
el que lo único que hay es la siguiente cadena:
WARGAMES ENDING
Sin perder tiempo, comencé a traducirlo:
W w A a R r
G g A a M m
E e S s  
(espacio)
E e N n
D d I i N n
G g
wargames ending
En ese momento y entre carcajadas apareció Fran (el creador
del reto) que les enseñó su pc a otros miembros de la organización que
compartieron con él las risas. En ese instante supe que el documento escondía
más de lo que parecía, aprovecho para darle gracias a Justo que me dijo que mirase bien todo el documento entre risas.
BA-GOSHI TSAH-AS-ZIH TOISH-JEH AH-NAH DAH-NES-TSA BA-GOSHI BE-LA-SANA NA-AS-TSO-SI
CLA-GI-AIH A-CHI A-CHIN TLA-GIN YEH-HES NA-HASH-CHID DZEH
Cuya traducción al castellano es: cybercampincibe
Llegados a este punto, contamos con 3 contraseñas (o eso
parece), en este momento nos dirigimos a comprobar que contiene el audio
llamado Mr.Robot 1x09.ape.
Al ejecutarlo, nos encontramos con otra canción hardcore…
pero el nombre no cuadraba, algo debe esconder. Después de googlear y porque no,
de ver el capítulo, llegamos a la conclusión de que se utiliza DeepSound, una
herramienta de steganografía exclusiva para Windows, aunque, se puede utilizar
con wine. (http://jpinsoft.net/DeepSound/)
Abrimos DeepSound y le pasamos nuestro audio, y como era de
esperar, nos solicita una de nuestras contraseñas:
En este caso, h0n3yst4t10n
Y encontramos estos ficheros ocultos:
Ambos comprimidos con contraseña, en un primer momento,
pensé que no habría problema, pues aún contamos con dos contraseñas sin usar,
por desgracia, ninguna era válida. Qurtuba
había finalizado, así que, me puse en contacto con Fran para preguntarle al respecto, le pasé las contraseñas y su respuesta fue
la siguiente:
“Ha habido un error, es en mayúsculas, la otra, no es una contraseña,
OSINT”
Perfecto, ahora todo tenía lógica, y aunque Qurtuba ya había finalizado y me había proclamado vencedor
junto con Diego y Juan, quise acabar este reto.
Por tanto, probamos CYBERCAMPINCIBE y listo! Tenemos el
fichero xab descomprimido:
Aparentemente un apk que descomprimiría más tarde, ahora el
objetivo era conseguir la otra contraseña, en cuanto comencé a buscar sobre
“wargames ending” supe cuál era la contraseña (además, Fran también mencionó
unos mapas), recordaba que cuando grabé parte de su ponencia para poder volver
a verla de nuevo, me fijé en un código que apareció en el medio de unas
pantallas. Por tanto, busqué dicha imagen. Unos minutos más tarde, la tenía y con ella, el contenido
del fichero xaa:
Era momento de decompilar el apk para comprobar si escondía
algún secreto:
¿Un apk que no se puede decompilar ni descomprimir? Algo
falla, para asegurarme, intenté instalarla en un emulador y obviamente, dió
error. Por tanto, no era un apk.
Utilicé binwalk para comprobar si de verdad había algo
oculto y lo encontré:
¿Un fichero que se llamaba igual que el comprimido?
Sospechoso. No pude obtener nada útil de este fichero (ni strings, ni cabeceras
etc…).
Era turno del fichero xaa, si antes parecía un apk y no lo
era, esta vez, ¿qué tipo de archivo será?
El editor hexadecimal nos confirma que es un RIFF (o al
menos, que contiene esa cabecera), me propuse escucharlo y en efecto, solo se
escuchaban sonidos y ruidos.
Analicé el audio por si había de nuevo
steganografía, pero sin éxito. Así que, se lo comenté a Fran, que me pasó un
vídeo en youtube (Cargando un juego de Amstrad): https://www.youtube.com/watch?v=4S9qTfdUWbc.
También me preguntó sobre los nombres de los ficheros xaa y xab, le dije que
tenían pinta de ser el resultado de un Split, respuesta a la que dió su visto
bueno.
En este momento lo tenía claro, había que unir ambos
ficheros y ejecutar el juego:
Me volví loco, intenté ejecutar el juego con
todo tipo de emuladores sin éxito, así que, investigué
sobre las caratulas, intentando generar una, después de haber probado varias herramientas desistí.
En un acto desesperado de Fran que quería ver su reto ninja
resuelto, envío este enlace: http://www.rtl-sdr.com/the-international-space-station-is-transmitting-sstv-images/
enseguida encontré un fragmento de texto que llamó mucho mi atención:
“To decode the images it is recommended to use SDR# and pipe the audio into MMSSTV, a freeware SSTV decoding software
program”
Instalé el programa y le pasé el archivo generado de la unión de xaa y xab:
Ahí estaba la flag, reto ninja resuelto por fin!
Comencé a
entender, que el vídeo de youtube era una pista sobre convertir el audio en
imagen y no tenía nada que ver con Amstrad.
Sin más darle las gracias a Fran,
que consiguió tenerme enganchado durante unos días para poder resolverlo.
Espero que os haya gustado!
Un saludo, Blackdrake.
Etiquetas:
Auditoría y CTF,
CTF,
esteganografía,
Qurtuba,
QurtubaCON,
Retos
martes, 6 de septiembre de 2016
Auditando a TheFrequency - Vulnhub (Parte II)
Buenos días a todos!
Después de un largo tiempo sin publicar entrada, y después de que varios de mis compañeros me lo pidieran, os traigo la segunda y última parte del CTF "TheFrequency".
Como ya dije en la primera parte de Auditando a "TheFrequency" - Vulnhub (Parte I) , esta máquina es muy peculiar y divertida, ya que se basa en el arte de la esteganografía,
Retomamos el reto donde lo dejamos, ya habíamos conseguido las claves para acceder a los dos primeros niveles del reto. De aquí en adelante, no tiene mucho misterio, deberemos seguir el mismo proceso que en los niveles anteriores para ir consiguiendo las claves de los diferentes niveles.
NIVEL 3
Seguimos la misma metodología que para el nivel 2, donde utilizábamos el programa fldigi para analizar los distintos modos digitales de nuestro audio.
Cerca del minuto 30:35 , empezamos a percibir un sonido muy extraño, que resultó ser el modo: BPSK31, por lo que configuramos de nuevo la herramienta y ejecutamos.
Al igual que en anteriores niveles, es muy importante que la franja roja que observamos en la siguiente imagen (justo entre el 500 y 1000), se sitúe justo en esa posición, para este audio en concreto.
Tras analizar todo el mensaje, hemos conseguido:
NIVEL 3: THE PASSWORD FOR LEVEL THREE IS Ph4z3Sh1ftK3y3d
Ya tenemos la tercera password, así que realizaremos el mismo procedimiento, nos conectaremos por SFTP, consiguiendo un nuevo fichero frequency.txt. Al abrirlo, contiene parte de la clave privada, no toda, por tanto pasamos al siguiente nivel.
Como habéis podido comprobar, el proceso es el mismo para todos los niveles, así que a continuación pondré una captura de cada uno de los niveles, junto al modo de audio utilizado y la contraseña obtenida, para no alargar mucho el post.
NIVEL 4
MODO UTILIZADO: MT63
NIVEL 5
MODO UTILIZADO: RTTY
NIVEL 6
MODO UTILIZADO: THROB
NIVEL 6: THE PASSWORD FOR LEVEL SIX IS THROBONTHISKNOB
ACCESO A ROOT
En este punto, ya disponemos de las contraseñas de cada uno de los niveles, por lo que habremos obtenido un fichero "frecuency.txt" en cada nivel, con un fragmento de la clave privada.
Unimos los ficheros en uno solo, unificando así todos los fragmentos de la clave privada y le damos permisos de lectura y ejecución para podernos conectar por el protocolo ssh y con el usuario root.
Este es el resultado de la clave privada:
Intentamos conectarnos, y ...BINGO!!!!! ACCESO A ROOT CONSEGUIDO!!!
Una vez dentro, encontramos un fichero llamado flag.txt, que contiene un enlace a un video de youtbe. El video no es nada más y nada menos que Notorious Big feat Frank Sinatra.
Y con esto, damos por finalizada la auditoría a la máquina TheFrequency.
Os invito a todos a que realicéis este CTF ya que es muy divertido y no se parece en nada a ninguno de los retos que hemos visto anteriormente en este blog.
Espero que os haya gustado y hasta la próxima!
ACCESO A ROOT
En este punto, ya disponemos de las contraseñas de cada uno de los niveles, por lo que habremos obtenido un fichero "frecuency.txt" en cada nivel, con un fragmento de la clave privada.
Unimos los ficheros en uno solo, unificando así todos los fragmentos de la clave privada y le damos permisos de lectura y ejecución para podernos conectar por el protocolo ssh y con el usuario root.
Este es el resultado de la clave privada:
Intentamos conectarnos, y ...BINGO!!!!! ACCESO A ROOT CONSEGUIDO!!!
Una vez dentro, encontramos un fichero llamado flag.txt, que contiene un enlace a un video de youtbe. El video no es nada más y nada menos que Notorious Big feat Frank Sinatra.
Y con esto, damos por finalizada la auditoría a la máquina TheFrequency.
Os invito a todos a que realicéis este CTF ya que es muy divertido y no se parece en nada a ninguno de los retos que hemos visto anteriormente en este blog.
Espero que os haya gustado y hasta la próxima!
domingo, 4 de septiembre de 2016
Pentestit.ru - Test lab v.9 (Parte I)
Buenas hackers! Bienvenidos al lab.pentestit.ru
Vemos su código fuente y no se ve nada de interés, unicamente contenido de wordpress. Si es un wordpress ¿Por qué no probamos el wp-login? Bien vemos que hay detras un WAF, detector de intrusos. Probamos dirb para hacer fuzzing de los directorios (Sin resultados positivos).
Segun Nmap esta abierto el puerto y la version de nginx esta obsoleta. Vamos a ver que tipo de SSL se esta usando con sslscan.
Una vez obtenido los usuarios del proxy, ya que vimos el resultado del nmap con un puerto abierto y su servicio proxy, vamos a usar sqlmap para explotar la vulnerabilidad anterior con el proxy y con las credenciales de un usuario.
Despues de un tiempo, nos devuelve dos bases de datos, concretamente MySQL.
Una vez analizado el puerto 80 y 443, y mediante el uso del proxy pudimos obtener el token, nos conectaremos mediante el puerto 22 el servicio SSH al servidor. Es muy importante intentar conseguir acceso mediante este servicio ya que una vez conseguido podemos hacer pivoting dentro de la red interna, y a su vez crear un tunel hacia nuestro localhost y auditar o realizar un test de intrusión en dicho server interno. Por lo visto la versión del openssh no es vulnerable así que vamos a realizar la conexion para a ver si podemos obtener iunformacion del banner al conectarnos. Hice una consulta en el canal de telegram ya que no sabía por donde tirar y me dijeron que me fijase justamente en el banner. Podríamos buscar en google el nombre y saber que es. Aun así probamos contraseñas por defecto y nada. Por lo visto en github tiene un codigo en C, y podemos ver justamente el string The password en él y bueno no se programar en C, pero interpretando el código vemos lo siguiente:
Tiene deshabilitado el login de usuario " root "
Nos dice time_t now = time(NULL) ----> hora actual
Me ha costado hacerlo en una
semana más o menos y es el tiempo que me puse para hacerlo. No lo he
terminado debido a su dificultad, y aún con ayuda me quede de momento
en el 63%. Tengo que dar agradecimientos al compañero belane que me
resolvió un token, ya que andaba bastante perdido y también a una
persona del canal de telegram en inglés del lab, que me ha ayudado en
el transurso de él. Gracias.
Una vez dicho esto, hay que
conectarse mediante VPN al servidor. Para ello podemos hacerlo de dos
formas, bajarnos la iso que tienen disponible para hacer el lab o
bajarse el archivo de configuracion de la VPN y usar openvpn con
dicho archivo. Usare esta ultima para poder usar parrotOS.
Por tanto solo basta con
descargarnos ese arhivo e irnos luego a network connections y añadir
una nueva conexion VPN, importando una configuracion VPN previamente
guardada. Una vez elegido esto simplemente hay que poner el user y la
pass que nos proporciona la web.
Es muy aconsejable que
miremos el esquema de la red interna del lab, ya que es la estructura
principal por donde nos moveremos en el pentesting. Vemos que hay dos
subredes bien diferenciadas y distintos servidores con software y
sistemas diferenciados, al giaul que los servicios que prestan.
De primeras solo podemos
hacer un descubrimiento de red a la ip del gateway. Una vez conectado
a la VPN necesitamos nmap para ver que puertos del gateway estan
abiertos.
Atención Spoiler!!
Nmap para realizar un
escaneo Con la opción -sV permite ver la versión de los servicios,
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.
Haciendo pruebas en el
navegador, no resuelve el dominio por el protocolo http. Con https
nos dice que es inseguro y en el puerto 8100 vemos que es un servidor
de correo.
"El archivo hosts de
un ordenador es usado por el sistema
operativo para guardar la correspondencia entre dominios
de Internet y direcciones
IP. Este es uno de los diferentes métodos que usa el sistema
operativo para resolver nombres de dominios."Wikipedia.
Así añadimos la dirección
del gateway con su nombre del dominio y guardamos. Vemos dos email
que pueden ser usados como nombres de usuario dentro de la red, así
que es importante tenerlo en cuenta para mas adeltante.
Vemos su código fuente y no se ve nada de interés, unicamente contenido de wordpress. Si es un wordpress ¿Por qué no probamos el wp-login? Bien vemos que hay detras un WAF, detector de intrusos. Probamos dirb para hacer fuzzing de los directorios (Sin resultados positivos).
Sabiendo que es un
wordpress, vamos a usar wpscan, para poder enumerar diferentes
usuarios y las vulnerabilidades de los plugins.
Probe buscar en searchsploit
symposium para ver algún tipo de exploit para poder ganar algun tipo
de acceso al servidor. En uno de ellos usaremos un SQLi en donde se
aprecia una PoC, por tanto que mejor que usarla. Permite de una forma
muy sencilla usando wget, obtener la base de datos incluyendo datos e
informacion sensinble de usuarios y hashes de las contraseñas. Sin
exito, error 403 Forbbiden. Creo que no se puede explotar ninguna
vulnerabilidad por el puerto 80 debido al WAF. Así que probemos el
puerto 443 https.
Segun Nmap esta abierto el puerto y la version de nginx esta obsoleta. Vamos a ver que tipo de SSL se esta usando con sslscan.
Esta herramienta permite
realizar un escaneo para la busca de vulnerabilidad del SSL, y así
poder subsanarla.
Según el resultado nos
indica que es vulnerable a heartbleed. Podemos usar los scripts de
Nmap para poder ver la vulnerabilidad del SSL tambien. Recomiendo
usar la documentación en la web de Nmap en la seccion de NSE para ver
todos los scripts disponibles que tenemos para poder hacer una buena
auditoría de seguridad y pentesting.
Obtenemos un resultado
positivo con un riesgo alto.
Vamos a usar metasploit, un
auxiliar para poder explotar dicha vulnerabilidad en busca de
información. La recoleccion de información es un proceso muy
importante para poder encontrar información sensible como por ejemplo
usuarios.
Seleccionamos la versión del
TLS, rhost y en verbose para poder ver la salida de la ejecucción del
auxiliar.
Encontramos un backup de
usuarios....
Es una dirección web, como
podemos observar en /var/html/_old.....
Lo introduccimos en el
navegador y nos lo descargamos.
Bien tenemos unos usuarios
con sus hashes.
Usaremos hashcat y el
parametro -m
Y el resultado es la
obtención del token bypass y conttraseñas utiles que nos van a
servir para hacer lo que vendrá a continuación.
Una vez obtenido los usuarios del proxy, ya que vimos el resultado del nmap con un puerto abierto y su servicio proxy, vamos a usar sqlmap para explotar la vulnerabilidad anterior con el proxy y con las credenciales de un usuario.
Usamos esta parte del exploit
que encontramos:
/wp-content/plugins/wp-symposium/get_album_item.php?size=
Como hay un WAF y en los
intentos no nos ha dado resultado, ponemos el como proxy la url de la
web:
--proxy="http://192.168.101.8:3128"
y usamos una de las
credenciales antes obtenidas
--proxy-cred="b.muncy:rabbit"
que nos dé un user-agent
aleatorio:
--random-agent
le indica número de
intentos o de carga:
--level="4"
sqlmap -u "http://cybear32c.lab/wp-content/plugins/wp-symposium/get_album_item.php?size=1" --dbs --proxy="http://192.168.101.8:3128" --proxy-cred="b.muncy:rabbit" --random-agent --level="4"
Despues de un tiempo, nos devuelve dos bases de datos, concretamente MySQL.
Ahora usamos una base de
datos, y obtenemos las tablas de ella
Seguidamente las columnas, y
luego un dump.
Y bien, de esta forma obtenemos el token.
Una vez analizado el puerto 80 y 443, y mediante el uso del proxy pudimos obtener el token, nos conectaremos mediante el puerto 22 el servicio SSH al servidor. Es muy importante intentar conseguir acceso mediante este servicio ya que una vez conseguido podemos hacer pivoting dentro de la red interna, y a su vez crear un tunel hacia nuestro localhost y auditar o realizar un test de intrusión en dicho server interno. Por lo visto la versión del openssh no es vulnerable así que vamos a realizar la conexion para a ver si podemos obtener iunformacion del banner al conectarnos. Hice una consulta en el canal de telegram ya que no sabía por donde tirar y me dijeron que me fijase justamente en el banner. Podríamos buscar en google el nombre y saber que es. Aun así probamos contraseñas por defecto y nada. Por lo visto en github tiene un codigo en C, y podemos ver justamente el string The password en él y bueno no se programar en C, pero interpretando el código vemos lo siguiente:
En el código de la
aplicación estaba la clave para pasar.
En la primera parte veíamos
esto:
// disallow root logins if (strcmp(pUsername, "root") == 0) { return PAM_AUTH_ERR; }
Tiene deshabilitado el login de usuario " root "
En la segunda parte del
código:
time_t now = time(NULL); struct tm *now_tm = localtime(&now); int hour = now_tm->tm_hour; int day = now_tm->tm_mday; char correctPass[11]; sprintf(correctPass, "daypass%d%d", day, hour);
Nos dice time_t now = time(NULL) ----> hora actual
struct tm
*now_tm = localtime(&now); ---> hora del lugar,(sabemos que el
CTF está en Rusia, por lo tanto horario Ruso)
Aquí la manera de proceder
con la clave:
sprintf(correctPass,
"daypass%d%d", day, hour); ---->para que la pass sea
correcta tenemos que poner daypass+el-día+la-hora (de Rusia)
Ejemplo:
Si en rusia son las 21:30, y
hoy es el 7 de Agosto del 2016, la password sería ----> daypass721
Una vez deducida la
password, usaremos usuarios comunes de linux, tal como daemon o
www-data para el login en SSH.
Vemos que hay 3 users,
probamos con el primero para loguearnos con él:
daemon@tl9-ssh:/etc$ su
d.nash
The password: daypass723
d.nash@tl9-ssh:/etc$ cd
/home
d.nash@tl9-ssh:/home$ ls -la
total 20
drwxr-xr-x 5 root root
4096 May 17 14:32 .
drwxr-xr-x 23 root root
4096 Aug 18 2013 ..
drwxr-x--- 3 root d.nash
4096 May 19 17:07 d.nash
drwxr-x--- 2 root e.grant
4096 May 17 14:54 e.grant
drwxr-x--- 2 root t.alvarez
4096 May 17 14:30 t.alvarez
Accedemos al directorio de
d.nash :
d.nash@tl9-ssh:/home$ cd
d.nash
d.nash@tl9-ssh:~$ ls -la
total 24
drwxr-x--- 3 root d.nash
4096 May 19 17:07 .
drwxr-xr-x 5 root root
4096 May 17 14:32 ..
-rw-r----- 1 root d.nash
220 Dec 30 2012 .bash_logout
-rw-r----- 1 root d.nash
3392 Dec 30 2012 .bashrc
-rw-r----- 1 root d.nash
675 Dec 30 2012 .profile
drwxr-x--- 2 root d.nash
4096 May 19 17:11 .ssh ------> directorio oculto
Accedemos al directorio
oculto .ssh
d.nash@tl9-ssh:~$ cd .ssh
d.nash@tl9-ssh:~/.ssh$ ls
-la
total 24
drwxr-x--- 2 root d.nash
4096 May 19 17:11 .
drwxr-x--- 3 root d.nash
4096 May 19 17:07 ..
-rw-r----- 1 root d.nash
1675 May 19 16:52 id_rsa
-rw-r----- 1 root d.nash
396 May 19 16:52 id_rsa.pub
-rw-r----- 1 root d.nash
222 May 19 17:11 known_hosts
-rw-r----- 1 root d.nash
10 May 19 16:57 token.txt ----> flag
Ahora vemos con cat que hay dentro
del token.txt:
d.nash@tl9-ssh:~/.ssh$ cat
token.txt
******ah
Un saludo, Naivenom
martes, 30 de agosto de 2016
La fraude fiscale des grandes sociétés
Buenas hackers! Y bienvenidos a otro CTF de Vulnhub
"Welcome to Droopy. This is a beginner's boot2root/CTF VM.
The VM is set to grab a DHCP lease on boot.
There's 2 hints I would offer you:
1.) Grab a copy of the rockyou wordlist.
2.) It's fun to read other people's email.
SHA1SUM: e6862fa5ebc9c2a8e582e77f440510062afe47ba droopyctf.ova
Special thanks and shout-outs go to Barrebas and Rasta_Mouse for testing, and g0tmi1k for advice and offering to host my first CTF."
La escalada de privilegios basada en el uso de un exploit local debido a la versión del Kernel. Recomiendo mucho esta página web para poder realizar escalada de privilegios en Linux básicos---> https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
Una vez obtenido un fichero en .tc nos indica que es TrueCrypt y que tendremos que obtener una password en texto plano para poder montar un volumen. El descifrado se usa Hashcat.
Un saludo, Naivenom
"Welcome to Droopy. This is a beginner's boot2root/CTF VM.
The VM is set to grab a DHCP lease on boot.
There's 2 hints I would offer you:
1.) Grab a copy of the rockyou wordlist.
2.) It's fun to read other people's email.
SHA1SUM: e6862fa5ebc9c2a8e582e77f440510062afe47ba droopyctf.ova
Special thanks and shout-outs go to Barrebas and Rasta_Mouse for testing, and g0tmi1k for advice and offering to host my first CTF."
Atención Spoiler!!
En este CTF veremos el uso de exploits locales gracias a searchsploit, las diferentes técnicas entre el uso de un script en Python, una shell escrita en PHP y nc, o el uso más automatizado de Metasploit.La escalada de privilegios basada en el uso de un exploit local debido a la versión del Kernel. Recomiendo mucho esta página web para poder realizar escalada de privilegios en Linux básicos---> https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
Una vez obtenido un fichero en .tc nos indica que es TrueCrypt y que tendremos que obtener una password en texto plano para poder montar un volumen. El descifrado se usa Hashcat.
Un saludo, Naivenom
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.
Etiquetas:
Análisis de Vulnerabilidades,
Ataque a contraseñas,
auditoría seguridad,
bandera,
Captura la bandera,
capture the flag,
CTF,
Pentesting
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
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
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
Suscribirse a:
Entradas (Atom)