17 ~ 0day - Linux
Última actualización
Última actualización
Una vez iniciada la maquina lo primero que realizaremos será un ping a la maquina para saber dos cosas, la primera es para ver si tenemos conexión con la maquina y la otra para conocer mediante el ttl que sistema operativo es.
En este caso el ttl es 63 siendo una maquina Linux, pero realmente el ttl de una maquina Linux es de 64, esta reducción es debido a los nodos intermediarios de la red.
Una vez verificado que tenemos conexión con la maquina, haremos un escaneo de puertos con la herramienta nmap.
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, realizaremos un escaneo mas exhaustivo.
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.
[6]
Vemos que tiene el puerto 80 y en el esta corriendo el servicio http, lo primero que haremos será lanzar la herramienta whatweb para ver que tecnologías tiene la web.
Una vez visto las tecnologías, ingresamos a la pagina.
Hacemos una enumeración a la pagina y no vemos nada, utilizaremos la herramienta gobuster para descubrir alguna ruta oculta.
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.
En la ruta /backup podemos ver una id_rsa, y si recordamos teníamos el servicio ssh abierto, pero no podemos conectarnos ya que nos pide la contraseña del usuario.
También vemos que hay una ruta /cgi-bin, si buscamos por internet vemos que podemos realizar un shellsock.
Probamos con este comando que hemos encontrado en internet y nos intentamos lanzar un whoami.
Descripción de los parámetros:
-A : Indicamos el User-Agent.
"() { :;}; echo Content-Type: text/html; echo; <comando>;" : Shellsock CGI-BIN.
URL : Donde estara el shellsock.
Al ver tenemos ejecución remota de comandos, vamos a intentar lanzarnos una reverse shell.
Nos ponemos en escucha con la herramienta netcat.
Descripción de los parámetros:
-n : Solo direcciones de IP numéricas.
-I : Modo de escucha, para conexiones entrantes.
-v : Muestra información por pantalla.
-p : Numero del puerto.
PUERTO : El puerto que se pondrá en escucha.
Y estamos dentro.
Realizaremos el tratamiento, con lo siguientes pasos:
1º > script /dev/null -c bash
2º > stty raw echo; fg
3º > export TERM=xterm
3º > export SHELL=bash
4º > stty rows 45 columns 185
Realizamos una enumeración del sistema y vemos que la versión del mismo es vulnerable al overlayfs.
Descripción de los parámetros:
-a : Muestra toda la información.
Buscamos con la herramienta searcsploit, a ver si tenemos algún exploit.
Lo descargamos a nuestra maquina.
Descripción de los parámetros:
-m : Copia el exploit.
Y ahora lo transferimos a la maquina victima con un servidor http y lo descargamos con wget.
Lo compilamos con la herramienta gcc y vemos que nos da un error. Si buscamos por internet el error, vemos que es un problema del path, lo arreglamos y volvemos a compilarlo y parece ser que funciono.
Ahora lo ejecutamos y listo somos ROOT!
Pero somos root de la montura, nos daremos permisos con chmod a la /bin/bash y podremos salirnos de la montura y lanzarnos una bash como root.
Ahora podremos buscar las flags del usuario y root.