
OWASP CTF es una maquina del OWASP Guatemala, aqui encontrarás la solucion para obtener la flag user.txt y root.txt de las diferentes maquinas Windows y Linux presentadas por los organizadores.
INFRAESTRUCTURA 1
NMAP
Escaneo de puertos/version/sistema operativo con nmap
|
|
METASPLOIT
Utilizamos el exploit netapi para windows xp contra el sistema operativo.
SHELL
Obtenemos permisos de administrador y nuestra flag en el Escritorio.
flag.txt: flag{w1nd0ws_n3tap1_3xplo1t}
INFRAESTRUCTURA 2
NMAP
Escaneo de puertos tcp/version/sistema con nmap.
|
|
Puerto 8009
Nos muestra un error de conexion.
HTTP
En el puerto 8080 nos muestra una pagina corriendo en tomcat.
Utilizamos el panel de control para obtener acceso. Siempre probamos las contraseñas comunes o por default de alguna plataforma para ver si logramos obtener accesso, este es el caso de esta maquina.
|
|
Ahora tenemos acceso al panel de control de tomcat, podemos subir una shell/payload con extension war.
Creamos nuestra reverse shell o payload con msfvenom y configuramos metasploit para poder obtener una sesion o shell por medio del payload.
Subimos nuestro archivo en el panel de control en a parte de ‘WAR file to deploy’.
Para ejecutar nuestra shell solo buscamos en la lista que nos aparece por encima y basta con darle click para que se habra una sesion en metasploit.
Metasploit
Actualizamos nuestra shell con python3
.
Estando dentro obtenemos nuestra bandera en la carpeta principal del usuario retoinfra1.
user.txt:flag{t0mcat_fa1_cr3dent1als}
PRIVILEGE ESCALATION
Utilizndo pspy encontramos un cronjob que se ejecuta cada minuto y ejecuta un archivo sh en /home/retoinfra1/script.sh
.
Ya que podemos editar el archivo y se ejecuta cada minuto vamos a modificar el script.sh para obtener una shell inversa, agregamos una linea de comando que nos permite obtener una shell inversa.
|
|
Ponemos a la escucha nuestro puerto en netcat, esperamos y obtenemos nuestra shell inversa como usuario root.
root.txt:flag{cr0n_fa1l_bash_scr1pt}
INFRAESTRUCTURA 3
NMAP
Escaneo de puertos tcp con nmap.
|
|
PUERTO 10000
NETCAT - PUERTO 10000
EJECUTANDO comandos - NETCAT 10000
http://intx0x80.blogspot.com/2017/05/python-input-vulnerability_25.html
Al pasarle una cadena de texto al ‘input’ este lo evalua, si le pasamos la siguiente linea de codigo "__import__('os').system('id')"
lo va ejecutar.
Encontramos unas credenciales, para poder verlas utilizamos "__import__('os').system('cat credentials.txt')"
credentials.txt
|
|
Nos logeamos por medio de SSH con las credenciales que encontramos.
Encontramos el archivo ping que nos mostraba en el navegador:
|
|
Tambien con nuestro archivo flag user y un hint:
user.txt: flag{598852e2cd167e254ce4c5e95393c372}
|
|
Revisamos los puertos con netstat -ntpl
|
|
Como lo dice el hint vamos a hacer port fordwarding del puerto 5000, lo vamos a traer a nuestra maquina local por medio de SSH.
|
|
Revisamos localmente con netstat -tnpl y tenemos localmente el puerto 5000 en el puerto 5656 :).
|
|
Como lo decia el hint, debug to rce werkzeug, encontramos un script que nos ayuda a ejecutar comandos en la maquina cuando esta activado “debug=True”.
https://github.com/its-arun/Werkzeug-Debug-RCE
Ejecutamos el script y le pasamos la ip local con el puerto que trajimos con SSH tambien le pasamos un comando y eventualmente obtenemos la bandera root.txt
intra2_root.webp
root.txt: flag{8eab1e913f4a669eddbbd45c1484925a}
SHELL ROOT
Agregamos una shell inversa a un archivo sh en la carpeta del usuario que tenemos con bajos privilegios, para ejecutarlo como usuario root.
|
|
Y por medio del script ejecutamos el archivo que contiene nuestra shell inversa y obtenemos una shell como root.
root.txt: flag{8eab1e913f4a669eddbbd45c1484925a}
user.txt: flag{598852e2cd167e254ce4c5e95393c372}