OffSec DC-9
Última actualización
Última actualización
Como siempre empezamos con Nmap para observar que puertos y servicios corren para este host en el cual solamente hay dos.
Si nos vamos al puerto 80 en Display all encontramos algo de informacion pero no mucha, tipo tablas nombres de colaboradores o algo asi.
Si nos vamos al buscador y primeramente solo ponemos mary me aparece la informacion sobre ella, pero si hacemos un order by hasta 6 igualmente me sigue apareciendo la misma informacion. Lo que nos indicaria que probablemente la web sea vulnerable a SQL Injection.
Si pasamos la peticion por Burp Suite observamos que si es vulnerable ya que solicitamos la version de la base de datos y nos dice que es una MariaDB.
Ya con este hecho confirmado vamos a empezar a enumerar todo lo que haya aca, seremos simple en los terminos que usaremos ya que la maquina es un poco larguilla.
Iniciamos.
schema_name
es el nombre de los esquemas (bases de datos) disponibles en el servidor de la base de datos. Se obtiene consultando la tabla information_schema.schemata
. Es útil para tareas administrativas y para obtener información sobre la estructura de la base de datos.
Nos revela que tenemos tres information_schema, Staff y Users.
Bueno tonces vamos primeramente por la de Staff, en la peticion del lado iziquierdo le decimos que nos muestre las tablas dadas para Staff.
En segundo nos nuestra dos tablas lado derecho para la base dada Staff.
Ahora le decimos muestrame las columnas dadas para la tabla Users.
Nos muestra tres columnas UserID,Username y Password, obviamente ya sabemos por cual vamos.
Ahora haciendo uso de group_concat le decimos, la peticion es tal que asi, muestrame la informacion que tiene Username y Password que estan dentro de la columna Users de la tabla Staff.
Tenemos un usario admin y una contraseña en hash.
Nos vamos ah CrackStation y logra crackearla, ahora tenemos un usuario y una contraseña.
Bueno en la pagina nos vamos ah Manage y nos loguemos con las credenciales que ahora tenemos, pero no nos lleva a nada.
Hay que recordar que aparte de la Staff teniamos ah User. Asi que ahora vamos por esta otra base.
Vamos por user.
Lo mismo decimos muestrame las tablas que estan dentro de la base user, en lo cual nos muestra una unica tabla, UserDetails.
Seguimos ahora la consulta es asi, muestrame las columnas dadas de la tabla UserDetails, nos muestra 5 columnas, las que nos interesa es username y password.
Seguimos y haciendo uso de group_concat le decimos, muestra lo que contiene username y password que estan dentro de la conlumna UserDetails dado de la tabla users.
Y tenemos info, multiples usuarios y posibles contraseñas.
Vamos a ordenarlos usuarios y contraseñas cada uno en un archivo diferente siga los pasos que se ve en la captura.
Ahora si lanzamos hydra oh si nos intentamos conectar nos dice que connection refused, podria ser que en vez de estar abierto el puerto oh este filtrado o tiene ciertas reglas.
Como proseguimos si no podemos hacer fuerza bruta, bueno recuerde que tenemos acceso al dashboar de la web con las credenciales del admin.
Buscando y buscando resulta que el propio dashboar tiene un Directory traversal podemos leer ciertos archivos basicamente solo tenemos permisos de lectura.
Vamos a buscar el config del ssh.
El archivo knockd.conf
en Linux es utilizado por el servicio Knockd, que es una herramienta de seguridad que permite abrir puertos en un servidor remoto mediante una secuencia específica de "tocadas" (o peticiones) a otros puertos.
Este archivo de configuración define las reglas de toques necesarios para desencadenar la apertura de puertos. Cada regla especifica los puertos que deben ser tocados y en qué secuencia para que se active una acción determinada, como abrir un puerto específico. Es una forma de implementar una capa adicional de seguridad al requerir una secuencia específica de toques antes de permitir el acceso a determinados servicios en el servidor.
Y tenemos la secuencia 7469,8475,9842.
Ahora usamos la herramienta knock para darle el toque y que el puerto se habra.
Ahora si ya podemos usar hydra y tenemos un usuario y una contraseña para conectarnos por SSH.
Una vez conectados buscamos la forma de escalar privilegios pero adelanto que este usario esta mas pelado que un que.
Recordemos los usarios que teniamos los podemos probar dentro ya de la maquina victima, pero aca no tenemos hydra entonces nos montaremos una utilidad en en python3 para hacer fuerza bruta.
Nos creamos este script en /tmp o /dev/shm. Lo ejecutamos y ahora observamos que tenemos dos usuarios mas con su respectiva contraseña.
Hacemos un pivoteo de usuario ah janitor y en su directorio personal econtramos mas contraseñas bajo un directorio oculto.
Haremos lo mismo.
El mismo script solo que cambiamos las contraseñas ah las nuevas que tenemos.
Observamos que tenemos un nuevo usuario y otro que ya teniamos.
Hacemos un nuevo pivoteo de usuario, de janitor ah fredf y si hacemos un sudo -l observamos que tenemos este privilegio.
No voy ah explicar en que consiste estoy cansado jefe.
Usando openssl nos creamos una contraseña.
Ahora creamos un archivo usuario en /tmp y le asignamos un nombre de usuario y la contraseña que generamos.
Lo ejecutamos, y si hacemos un su rodGAR nos pedira la contraseña que creamos y wala somos root señores, espero hayas podido seguir el ritmo y resolverla.