OffSec VIKINGS
Última actualización
Última actualización
Primero que nada con lo basico buscar los puertos abiertos en la maquina.
Ahora con los puertos abiertos observamos las versiones y servicios que corren para cada uno de los puertos.
Si nos vamos ah observar la pagina web observamos que es una pagina web simple.
Haciendo fuzing en la pagina web encuntro el directorio war, yo le habia concatenado la extencion .txt, lo que significa que este directorio es war.txt.
Si nos vamos al txt, observamos que nos estan dando un nuevo directorio, si vamos a este directorio es una traya de info.
Asi que hice lo siguiente descargar todo el contenido.
Luego decodificarlo de base64 y pasarlo a un archivo zip.
Si hacemos uso de 7z l nos lista que dentro del zip hay un archivo llamado king.
Haciendo uso de 7z x para extraer el contenido observamos que me pide contraseña, contraseña que no poseemos.
Hice uso de binwalk y no me pidio contraseña para extraer, observamos que se extrae una carpeta.
Entramos a la carpeta y hay un archivo user.
Tenemos varias posibles contraseñas y usuarios.
Me creo un pass.txt con todas las palabras que se me dieron para hacer un ataque de fuerza bruta, como floki esta en la lista usare este como usuario principal.
Fuerza bruta por SSH y tenemos un usuario y una contraseña para loguearnos.
Observamos que floki esta en el grupo lxd, el cual podemos usar para escalar privilegios a root creando un contenedor.
Buscamos con search el exploit.
Nos lo descargamos a local y lo renombramos lx.sh.
Echale un ojo, al script y sigue las instrucciones, descarga primero el alpine, luego hacer un bash buil-alpine que nos creara el alpine .gz.
Nota todo esto se hace en local en tu maquina atacante no en la victima ya que para hacer el bash build necesitas ser root.
Tenemos todo preparado.
Primero nos compartimos un servidor con python3 desde local.
Luego desde la maquina victima nos descargamos el lx.sh.
Tambien el alpine.gz.
Ejecutamos el alpine.gz. y observamos que si hacemos un whoami somos root, pero no en la maquina real si no en el contenedor que fue creado. Pero ya con esto podemos darle permisos SUID a la bash, porque el contenedor se monta trayendose la raiz de la maquina real.
En una segunda terminal nos conectamos de nuevo por SSH como floki, y observamos que la bash no tiene permisos SUID.
Estando en el contenedor nos vamos a donde se llevo la raiz de la maquina HOST, /mnt/root, y le asignamos permisos SUID a la bas.
Ahora observamos que la bash si tiene permisos SUID, hacemos un bash -p y somos root y pues tenemos la bandera de root.txt
Maquina resuelta.