20 ~ LazyAdmin - Linux
Última actualización
Última actualización
Lo primero que haremos será realizar un ping para saber dos cosas, lo primero para ver si tenemos conexión con la maquina y la segunda saber cual podría ser el sistema operativo mediante el ttl.
En este caso el ttl nos da 63 siendo una maquina Linux, pero realmente el sistema operativo Linux tiene un ttl de 64, esto se debe a los nodos intermediarios que tiene la red.
Una vez verificado que tenemos conexión con la maquina, realizaremos un escaneo de los 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 finalizado este escaneo 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.
Vamos a empezar a buscar información por el puerto 80, donde corre un servicio http.
Vemos que es una pagina apache, realizamos una búsqueda de información y no vemos nada, vamos a realizar para ver rutas ocultas.
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.
Vemos que hay una ruta llamada /content al acceder a ella vemos lo siguiente.
Volvemos a realizar otro fuzzing para ver si contiene rutas ocultas.
Y vemos algunas rutas interesantes, vemos que la ruta /as es un panel login, donde nos pide credenciales, vamos a analizar todas las rutas en busca de información.
Vemos que hay un archivo backup de msql.
Al descargarlo y abrirlo, podemos ver credenciales.
Probamos las credenciales encontradas en el panel login y estamos dentro del panel del CMS.
Ahora investigando el CMS, vemos que en el apartado ads podemos escribir, vamos a insertar una reverse shell, y buscar el archivo.
Vemos que nuestra reverse shell se encuentra en la siguiente ruta.
Ahora simplemente nos ponemos en escucha con la herramienta nc.
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 listo estamos dentro de la maquina.
Lo primero que haremos será buscar la flag del usuario y la podemos ver sin problemas.
Ahora vamos a escalar privilegios, realizaremos una enumeración del sistema y vemos que podemos ejecutar un script en perl como sudo.
Al analizar lo que hace el backup.pl.
Vemos que llama a otro archivo en el que podemos modificarlo.
Lo modificamos dándole permisos SUID a la /bin/bash.
Lanzamos el comando como sudo y tenemos la /bin/bash con permisos SUID.
Ahora simplemente lanzamos un bash -p y seremos root.
Vamos a intentar a crackear la contraseña en la pagina , y parece ser que si se puede.