XUT_ / MACHINES / THM

0010

Basic Pentesting

THMMACHINENONEEASY

Introduction

basic-pentesting

En el siguiente conjunto de tareas haremos lo siguiente:

  • Fuerza bruta
  • Hash cracking
  • Enumeración de servicios
  • Enumeración de Linux

Finding the flags

En esta máquina se nos piden varias cosas por lo que en vez de seguir nuestra metodología habitual vamos a ir respondiendo juntos a estas preguntas propuestas.

Antes de responder a ninguna pregunta vamos primero a enumerar los puertos abiertos y a profundizar un poco en su enumeración, como solemos hacer.

Primero con los puertos abiertos:

basic-pentesting

Y después profundizamos sobre estos puertos:

basic-pentesting

Normalmente ahora empezaríamos a investigar sobre los servicios, pero como tenemos preguntas guiadas vamos a hacerlo de esa otra forma.

  1. ¿Cuál es el nombre del directorio escondido en el servidor web?

Para obtener el nombre del directorio "escondido" basta con enumerar directorios con nuestra herramienta favorita.

basic-pentesting

  1. ¿Cuál es el username?

Seguiremos por el único camino claro que hay hasta ahora, el directorio development/. Aunque primero vamos a ver cómo es la página web.

basic-pentesting

Parece que no hay mucho que ver. Vamos a ir a dicho directorio.

basic-pentesting

Hay dos documentos de texto, vamos a leerlos.

El archivo dev.txt:

text
2018-04-23: I've been messing with that struts stuff, and it's pretty cool! I think it might be neat
to host that on this server too. Haven't made any real web apps yet, but I have tried that example
you get to show off how it works (and it's the REST version of the example!). Oh, and right now I'm 
using version 2.5.12, because other versions were giving me trouble. -K

2018-04-22: SMB has been configured. -K

2018-04-21: I got Apache set up. Will put in our content later. -J

De aquí sacamos varias cosas:

  • Están usando algo llamado struts
  • Han implementado SMB
  • Han levantado Apache

Vamos ahora a leer el archivo j.txt:

text
For J:

I've been auditing the contents of /etc/shadow to make sure we don't have any weak credentials,
and I was able to crack your hash really easily. You know our password policy, so please follow
it? Change that password ASAP.

-K

De aquí sacamos algo clave: La contraseña del tal J es muy débil.

Vamos a proceder con los servicios que habíamos listado, y además con las pistas que hemos encontrado en los archivos de texto deberíamos buscar en SMB.

basic-pentesting

Parece que hemos encontrado un grupo de trabajo interesante (Anonymous), vamos a intentar listar los usuarios.

basic-pentesting

Pues ya tenemos sus nombres, Kay y Jan.

  1. ¿Cuál es la contraseña?

Sabiendo que la contraseña del usuario jan es muy débil (según Kay), vamos a hacer un ataque de fuerza bruta contra dicho usuario por ssh con hydra.

basic-pentesting

Ya tenemos la contraseña y también el usuario: jan:armando.

  1. ¿Qué servicio usamos para acceder al servidor?

Para acceder al servidor vamos a usar el mismo servicio que hemos crackeado, ssh.

basic-pentesting

  1. ¿Cuál es el nombre del otro usuario que has encontrado?

Ya lo habíamos encontrado, era kay. Sin embargo podemos asegurarnos leyendo el archivo /etc/hosts del sistema:

basic-pentesting

  1. ¿Cuál es la contraseña final que has obtenido?

Navegando por el sistema podemos ver lo que hay en el directorio /home del usuario kay.

basic-pentesting

Como no nos deja vamos a ver si obteniendo el certificado privado de ssh podemos iniciar sesión como kay y leerlo desde su cuenta.

basic-pentesting

Pues parece que sí. Ahora nos copiamos el certificado en nuestra máquina e iniciamos sesión por SSH con él.

basic-pentesting

Nos pide una passphrase que no tenemos, así que vamos a meter a john por aquí

basic-pentesting

Y hemos obtenido la passphrase. Ahora ya podemos iniciar sesión por SSH.

basic-pentesting

Por último leemos el archivo pass.bak:

basic-pentesting