11 ~ UltraTech - Linux
Última actualización
Última actualización
Una vez tenemos la IP de la maquina, vamos a realizarle un ping para saber dos cosas, la primera es para saber si tenemos conexión con la maquina, y la otra es para conocer a que sistema operativo nos enfrentamos.
En nuestro caso nos da un ttl de 63 siendo de una posible maquina Linux, pero realmente el ttl de Linux es 64, esto es debido a que hay varios nodos intermediaros.
Una vez sabemos que tenemos conexión con la maquina, vamos a utilizar la herramienta nmap para ver los puertos y servicios que contiene la maquina.
Descripción de los parámetros:
-p- : Escanea los puertos especificados, en este caso escanea los 65535 puertos.
--open : Muestra solo los puertos abiertos.
-sS : Escanea mediante TCP SYN.
--min-rate : Envía paquetes no mas lentos que el número indicado por segundo en nuestro caso 5000.
-Pn : Omite el descubrimiento de host.
-n : No realiza resolución DNS.
-vvv : Muestra la información mientras se esta realizando el escaneo.
IP : La IP que queremos escanear.
-oG : Guarda la salida del escaneo en un formato grepeable.
Una vez descubierto los puertos y posibles servicios, vamos a realizar un escaneo mas exhaustivo para averiguar mas información acerca de los servicios.
Descripción de los parámetros:
-p : Escanea los puertos especificados.
-sC : Lanza varios scripts defaults de nmap.
-sV : Determina los servicios que están corriendo en los puertos además de información extra.
IP : La IP que queremos escanear.
-oN : Guarda la salida en el formato de nmap.
Vemos que tiene dos servicios http, entonces lo primero que hacemos es un reconocimiento con la herramienta whatweb.
Una vez terminada vamos ha acceder a las varias paginas para seguir investigando. La primera que vemos es la alojada en el puerto 8081.
Y la segunda alojada en el puerto 31331.
En la segunda pagina, tenemos varios posibles usuarios, que guardaremos por si los podemos utilizar en un futuro.
Vamos a ver si tiene el archivo robots.txt disponible y si, y al parecer contiene una ruta, al visitarla nos da otras rutas.
Tras estar investigando en ellas descubrimos un panel login, podríamos realizar un ataque de fuerza bruta con los posibles usuarios y este panel login, pero vamos a seguir investigando un poco mas la pagina.
Después de un rato, utilizamos la herramienta gobuster para conocer mas rutas ocultas de la pagina.
Descripción de los parámetros:
dir : Utiliza el modo de enumeración de directorios/archivos.
-u : Le indicamos que le vamos a pasar una url.
URL : La url objetivo.
-w : Le indicamos que vamos a usar un diccionario.
/PATH/ : Le indicamos la ruta del diccionario a usar.
-t 50 : Le indicamos el numero de peticiones hacia el servidor.
--no-error : No muestra errores por pantalla.
-z : No muestra la barra de progresos por pantalla.
-o : Guarda la salida en un archivo.
Dándonos varias rutas nuevas, volvemos a investigarlas y al parecer en la ruta /js tenemos algo interesante.
Parece que dentro del archivo api.js tenemos algo, al parecer podemos ejecutar el comando ping desde la api alojada en el puerto 8081. Vamos a realizar un escaneo con gobuster al puerto 8081, para ver si encontramos alguna ruta critica.
Encontramos la ruta /ping y no nos da mucha información, pero si nos fijamos en el código encontrado vemos que si ponemos ?ip= debería funcionar.
Podemos realizar ping a nuestra maquina, perfecto, vamos asegurarnos capturando el trafico con la herramienta tcpdump.
Descripción de los parámetros:
-i : interfaz
tun0 : interfaz
icmp : Imprime los paquetes ICMP
Ahora vamos a intentar ejecutar comandos, para poder acceder al sistema.
Tras probar varias formas, damos con que poniendo la comillas "`", vemos que tenemos ejecución de comandos.
Vamos a enumerar el sistema desde la pagina web a ver si podemos encontrar algo interesante. Hacemos un ls y vemos un archivo bastante interesante.
Realizaremos un cat al archivo para ver si podemos verlo desde la web.
Vamos a probar estas credenciales conectándonos via ssh.
Bueno ahora toca ver como escalamos privilegios, lo primero que haremos será enumerar el sistema, y vemos que el usuario esta dentro del grupo docker .
Sabiendo esto es muy sencillo escalar privilegios, lo primero es revisar si tenemos alguna imagen de docker para poder ejecutar el comando.
Ejecutamos el comando que nos muestra, cambiándole la shell sh por una bash.
Descripción de los parámetros:
run : Corre un comando en un nuevo contenedor.
-v : Monta un volumen.
/:/mnt : Copia la ruta raíz en la ruta /mnt.
--rm : Remueve el contenedor.
-it : Asignar una tty para el contenedor.
495... : Nombre de la imagen.
chroot : Lanzar procesos confinados dentro de un determinado directorio.
/mnt : Nombre de la montura para aplicar los permisos.
bash : Tipo de shell.
Y somos root del contenedor, ahora vamos a darle permisos a la /bin/bash, para poder salirnos del docker y ser root de la maquina.
Ahora simplemente ejecutamos el siguiente comando y somos ROOT de la maquina.
Buscamos la id_rsa con el comando find y listo.
Descripción de los parámetros:
-name : Busca por nombres.
Name : El nombre del archivo.
2>/dev/null : Mandamos los errores al /dev/null.
Tenemos unas posibles hashes, vamos a utilizar la pagina web .
Una vez verificado que tenemos una imagen, nos vamos a la pagina web y buscamos por docker.