Basic Pentesting – TryHackMe Walkthrough

Basic Pentesting – TryHackMe Walkthrough

Hoy toca resolver la maquina Basic Pentesting de TryHackMe, es básicamente un acercamiento muy introductorio al pentesting, una máquina muy sencillita que toca los aspectos más básicos de una prueba de penetración, desde escaneos, fuzzing, accesos por SSH, pensamiento lateral, etc.

Ip de la máquina en mi caso: 10.10.11.18

Dificultad asignada por la plataforma: Fácil

Esta máquina está de forma guiada en TryHackMe, pero yo la resolveré como cualquiera de las que han estado resolviendo, igualmente las respuestas se pueden encontrar a medida que la máquina se va completando.

Reconocimiento

Como ya es habitual, lo primero es usar rec0ldd para detectar los puertos abiertos:

rec0ldd <ip>
clear ya funciona

Escaneo con rec0ldd

Únete al servidor de Discord de Coldd Security y aprende ciberseguridad cada día.

Tenemos los puertos 80,445,22,139,8009,8080 abiertos, ahora toca hacer un escaneo más profundo con nmap, usaremos los parámetros típicos, -sC para que lance todos los scripts NSE con categoría “default”, -sV para que detecte las versiones de dichos artículos y -T4 para hacer que el escaneo vaya más rápido, ten en cuenta que este último parámetro hace que el escaneo sea muy ruidoso, casi tanto como tus gritos cuando el programa en Java no compila, por ende, lo usaremos solo en estos casos porque estamos en entornos controlados, pero en auditorías reales, hay que ir con cuidado:

nmap -sC -sV -T4 -p80,445,22,139,8009,8080 <ip> -oN nmapScan
clear ya funciona

Escaneo con nmap

Tenemos información interesante, a priori vemos varios servidores web, así que lo propio, vamos a ver que contienen:

clear ya funciona

Sitio web en el puerto 80

clear ya funciona

Sitio web en el puerto 8080

En este punto, hagamos lo propio, fuzzing con gobuster en ambos sitios web para detectar recursos ocultos:

gobuster dir -u <url> -w /usr/share/wordlists/dirb/big.txt
clear ya funciona

Fuzzing con gobuster, resultados

Encontramos directorios interesantes, el que más llama la atención es el que está en el servicio apache en el puerto 80, un directorio llamado development, miremos que hay ahí:

clear ya funciona

Ficheros encontrados

Tenemos dos ficheros, al ver su contenido, veremos que se habla de una configuración de un servidor smb que corre en la máquina y que hay un usuario (J) con una contraseña muy débil, lo cual puede indicar que podríamos intentar hacer fuerza bruta:

clear ya funciona

Nota en el fichero j.txt

Partiendo de esto, me interesa enumerar el dichoso smb para ver si podemos detectar algún usuario, para ello:

enum4linux -a <ip>
clear ya funciona

Usuarios encontrados

Explotación

Bueno, obtuvimos dos usuarios “Kay” y “Jan”, en este punto, recordando que tenemos un SSH en el puerto 22, podemos probar un ataque de fuerza bruta para adivinar la contraseña, ya que, la nota anterior que leímos decía que el usuario con contraseña débil es “J”, y el único que empieza por “J” es “Jan” así que probemos con él, para ello:

hydra -t 4 -l jan -P /usr/share/wordlists/rockyou.txt ssh://<ip> 
clear ya funciona

Conraseña del usuario “Jan” encontrada

Y después de 4 meses obtendremos la contraseña del usuario “jan”, en este punto vamos a iniciar sesión con estas credenciales en el SSH y ya obtenemos el primer acceso al sistema:

clear ya funciona

Primer acceso al sistema

Escalación de privilegios

En este punto, enumerando un poco más el sistema, vi que en el directorio home del usuario “kay” tiene un fichero con permisos de lectura y escritura, pero solo para dicho usuario, y es un fichero que parece ser una copia de una contraseña, además que tenemos también un directorio de ssh, así que, partiendo de toda esta información, vamos a probar conseguir el id_rsa para ver si a través de este podemos escalar privilegios a este usuario y ver la dichosa contraseña.

clear ya funciona

Fichero de backup y directorio ssh

Para ello copiare el contenido del id_rsa en mi máquina, lo llamare ssh.txt y con John The Ripper intentaré conseguir la contraseña para poder iniciar sesión con el id_rsa por ssh como el usuario “Kay”, para ello, con el id_rsa guardado en ssh.txt, primero tenemos que pasarlo a formato que John entienda, para ello:

python /usr/share/john/ssh2john.py ssh.txt > hash.txt   

Ahora, con el hash en cuestión, usaremos:

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
clear ya funciona

Passphrase conseguido

De esta forma obtendremos la contraseña, ahora toca logearse como el usuario “kay” usando las claves públicas, para ello (desde la máquina víctima con la sesión del usuario “Jan”:

ssh -i /home/kay/.ssh/id_rsa kay@<ip>
clear ya funciona

Acceso como “Kay” al sistema

Y ya estamos dentro, ahora toca ver la dichosa contraseña, en este punto he de resaltar que, al conseguir la contraseña y estar enumerando un poco más el sistema, me percaté que, el usuario “kay” podía ejecutar comandos con privilegios con tan solo aportar su contraseña, contraseña que, ya habíamos conseguido, por ende, con solo ejecutar un sudo su, podremos lograr acceso como root:

clear ya funciona

Acceso como root

Calificación

  • Dificultad de acceso: 9% 9%
  • Dificultad de escalación de privilegios: 3% 3%

He hecho esta puntuación basándome en estos valores propios:

Fácil1% – 30%

Medio: 31% – 70%

Difícil: 71% – 100%

Anuncio

Sobre el Autor

Martin Frias

Founder of Coldd Security

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información adicional sobre protección de datos:
Responsable: Martin Frias.
Finalidad: Moderar los comentarios de este sitio web.
Cesión: NO se cederán a nadie, salvo obligación legal.
Derechos: Acceso, rectificación, cancelación y borrado de tus datos.
Legitimación: Tu consentido expreso.

REDES SOCIALES

Newsletter

Estadísticas

  • 106.288
  • 51

TheHackerSnow

0

Share This