🕵️‍♂️
Alv-fh
  • Whoami
    • Curriculum
  • WriteUps
    • DockerLabs
      • Amor
      • NodeClimb
      • HiddenCat
      • Escolares
      • FirstHacking
      • Hidden
      • Move
      • SecretJenkins
      • Trust
      • Upload
      • Vacaciones
    • Vulnyx
      • Basic
      • Fire
      • Infected
      • Load
      • Plex
    • Vulnhub
      • Fristileaks
      • Symfonos1
Con tecnología de GitBook
En esta página
  • Levantar la máquina
  • Conectividad con la máquina atacante
  • Escaneo de puertos
  • Fichero /etc/hosts
  • Fuzzing
  1. WriteUps
  2. DockerLabs

Hidden

AnteriorFirstHackingSiguienteMove

Última actualización hace 11 meses

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.

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).

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.

Ahora si vemos que resuelve bien la página.

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

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!!

captura-ping
captura-escaneo
captura-host
captura-cafe
captura-subdominio
captura-sub
image

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.

captura-php
captura-todos
captura-uploads
captura-nc
captura-reverse
captura-bonito
captura-passwd

El script que voy a utilizar es este ->

captura-todo
captura-cafetero
captura-nano

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

captura-searchbins
captura-john
captura-bobby
captura-apt
captura-bobby2
captura-roo
captura-find
captura-root
.phar
php-reverse-shell
Linux-Su-Force
Searchbins
GTFOBins