🕵️‍♂️
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
  • Conocer la red
  • Conectividad con la máquina atacante
  • Escaneo de puertos
  • SSLH
  • JSON WEB TOKEN
  • ¿Qué es un JSON WEB TOKEN?
  • ¿Por qué pasa esto?
  1. WriteUps
  2. Vulnyx

Plex

AnteriorLoadSiguienteVulnhub

Última actualización hace 11 meses

Conocer la red

Lo primero de todos es encontrar equipos dentro de mi red.

sudo arp-scan -I eth0 --localnet

captura-red

Ahora podemos saber cuál es la máquina atacante ya que estamos en VMware y la MAC siempre empieza por 00:0c Por lo tanto sería la 192.168.95.104

Conectividad con la máquina atacante

Comprobamos que tenemos conectividad.

ping -c1 192.168.95.104

Podemos ver que el ttl es 64 por lo tanto se trata de una máquina Linux, esto no es 100% fiable. Vemos que sí tenemos conectividad.

Escaneo de puertos

Ahora que sabemos que tenemos conectividad, podemos escanear los puertos que estan abiertos para poder hacer la intrusión. Utilizamos la herramienta nmap

sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -vvv -Pn 192.168.95.104 -oN allPorts

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 allPorts (-oN allPorts).

Como podemos ver, el puerto 21 está abierto. Es el puerto de FTP. Pero hay algo raro, y es que si nos fijamos, en el servicio, pone SSH. En este caso parece una especie de multiplexación. Comprobamos que efectivamente está utilizando el servicio SSH, ya que nos pide contraseña.

SSLH

Como no hay ningún otro puerto abierto, me da a pensar de que utiliza SSLH ya que usa distintos servicios por ese puerto.

Como podemos ver dice que acepta las conexiones de puertos específicos y que las reenvia.

Entonces nosotros podemos hacer un curl -I para que solo nos muestre el HEAD, es decir la cabecera.

Vemos que utiliza Apache2 por este puerto, entonces hacemos un curl de tipo GET para ver lo que responde.

En este punto lo que se me ocurre es hacer fuzzing, para ello podemos utilizar tanto gobuster como wfuzz, en mi caso lo voy a hacer con gobuster.

Entonces ahora que sabemos que hay un fichero llamado robots.txt, pues podemos enviar un curl de tipo GET para ver lo que responde.

JSON WEB TOKEN

¿Qué es un JSON WEB TOKEN?

Un Json Web Token (JWT) es un mecanismo para poder propagar de forma segura entre dos partes, la identidad de un usuario, privilegios, etc. Esto viene todo codificado en JSON, que se encuentran dentro del payload (cuerpo)

Si le hacemos el mismo curl pero a la ruta que nos devuelve el curl a robots.txt, que parece un JSON Web Token.

Entonces podemos irnos a la página jwt, y pegamos la respuesta.

Ya tenemos el usuario y la password, entonces ya podemos entrar por ssh.

Y ahí estaría la flag del usuario. Ahora vamos a por la de root. Hacemos un sudo -l para ver los comandos que puede ejecuar como sudo.

Vemos que puede ejecutar mutt que es un cliente de correo electrónico, por tanto, ejecutamos mutt con sudo, y con el usuario root.

Se nos va a abrir como una especie de editor de texto, por tanto vamos a probar a poner ! para poder ejecutar comandos ya que en otros editores de texto se hace así. Escribimos /usr/bin/bash

Y funciona, ya somos root

Entonces nos vamos al directorio de root.

¿Por qué pasa esto?

Nosotros hemos ejecutado la herramienta mutt con los privilegios del usuario root. Entonces nosotros si ponemos ! en el editor de texto podemos escribir comandos del sistema. Por lo tanto si ejecutamos /usr/bin/bash, estamos ejecutando una shell de Bash como root, de manera temporal ya que hemos ejecutado el comando mutt como root.

captura-conect
captura-nmap
captura-ssh

captura-sslh
captura-curl_-i
capura-get
captura-gobuster

Como se puede ver, también he puesto el parámetro -x para que busque con extensiones. En esto caso ha encontrado el fichero .

captura-robots
captura-token
captura-jwt
captura-ssh2
captura-sudol
captura-mutt
captura-mutt
captura-root
captura-root2
SSLH
robots.txt