miguel@home:~$

Allien - DockerLabs

OS Dificultad Creator
Linux Fácil Luisillo_o

Reconocimiento

Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports 
  • -p-: Escanea todos los puertos (1-65535).
  • --open: Solo muestra los puertos abiertos.
  • -sS: Realiza un escaneo SYN, que es rápido y discreto.
  • --min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.
  • -n: No realiza resolución DNS.
  • -Pn: No realiza ping previo para determinar si el host está activo.
  • -vvv: Muestra resultados detallados y en tiempo real.

image

Durante el escaneo, descubrimos que los siguientes puertos están activos:

  • 22 (SSH)
  • 80 (HTTP)
  • 139 (NetBIOS)
  • 445 (SMB)

A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.

nmap -p 22,80,139,445 -sCV 172.17.0.2 -oG targeted

image

Exploración Web

Al acceder a la página web, observamos un panel de login.

image

Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.

gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
  • gobuster dir - Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.17.0.2/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

    image

Exploramos el directorio productos.php, pero no encontramos nada particularmente interesante.

image

Enumeracion de usuario Samba.

Los puertos 445 y 139 están abiertos, lo que indica que hay un servicio Samba en funcionamiento. Procedemos a enumerar usuarios.

enum4linux -a 172.17.0.2

Este comando nos proporciona información sobre varios usuarios y carpetas compartidas en el servicio Samba.

image

image

Fuerza bruta

Dado que hemos identificado varios usuarios, procederemos a realizar un ataque de fuerza bruta sobre ellos.

crackmapexec smb 172.17.0.2 -u usuarios.txt  -p /usr/share/wordlists/rockyou.txt

image

En la salida, podemos observar que el usuario satriani7 tiene la contraseña 50cent.

Usuario satriani7

Ahora, utilizaremos la siguiente herramienta para enumerar los recursos compartidos del usuario satriani7 con la contraseña 50cent.

smbmap -u satriani7 -p 50cent -H 172.17.0.2

image

Ahora vamos a ver qué contienen esos directorios. Entramos en las carpetas compartidas con el siguiente comando:

smbclient //172.17.0.2/ -U 'satriani7'

image

En myshare, encontramos un archivo llamado access.txt. Para descargar archivos, utilizamos el comando get:

get access.txt

image

En backup24 encontramos un archivo llamado credencial.txt y notes.txt.

image

Descargamos estos archivos a nuestro equipo:

get credenciales.txt
get notes.txt

image

Contenido de los archivos de texto

Vamos a ver qué contienen los archivos de texto que hemos descargado.

Al observar el archivo credenciales.txt, contiene la contraseña de varios usuarios, incluyendo la del administrador.

image

Ahora volveremos a usar smbmap para enumerar los recursos compartidos del usuario administrador con la contraseña Adm1nP4ss2024.

smbmap -u 'administrador' -p 'Adm1nP4ss2024'   -H 172.17.0.2

image

Observamos que la carpeta home tenemos permisos de escritura.

Vamos a acceder para ver qué contiene.

smbclient //172.17.0.2/home -U 'administrador'

image

Podemos ver que es la ruta donde se encuentran todos los archivos de la página web, por tanto podemos importar una reverse shell.

Intrusión en la Máquina

Generamos la reverseshell utilizando Pentest Monkey, una herramienta popular para crear shells PHP que nos permiten obtener acceso remoto al servidor. La ruta de la reverseshell es la siguiente:

Reverseshell de Pentest Monkey

Pasos para Cargar la Reverseshell

  1. Preparar la Reverseshell: Creamos un archivo de reverseshell en nuestro sistema local utilizando el código disponible en la ruta mencionada anteriormente.
  2. Subir el Archivo: Utilizamos el comando de put para subir el archivo al directorio.
  3. Ejecutar la Reverseshell: Una vez que el archivo esté en el servidor, lo ejecutaremos para establecer la conexión.

image

Nos ponemos a escuchar por netcat en mi caso por el 4444

nc -lvnp 4444

Luego, accedemos a la ruta de la página web donde hemos cargado la reverseshell:

image

Y ya tendriamos acceso a la maquina.

image

TTY ReverseShell

Iniciar una sesión de shell interactiva

En nuestra shell básica, ejecutamos el siguiente comando para forzar la creación de una sesión de bash interactiva:

script /dev/null -c bash

Suspender la shell

Una vez que el comando anterior está en ejecución, utilizamos

Control+Z

para suspender temporalmente nuestra shell.

Preparar nuestro terminal local:

Antes de volver a nuestra shell, configuramos nuestro terminal local:

stty raw -echo; fg

Resetear la configuración del terminal

Ahora que tenemos el control de la shell, la reseteamos para asegurar que se comporta correctamente:

reset

Configura el tipo de terminal:

xterm
export TERM=xterm
export SHELL=bash

Escalada de privilegios

Ya estamos dentro de la máquina. Si ejecutamos el comando sudo -l, vemos que podemos ejecutar service como root. Para ello, debemos hacer lo siguiente:

image

Para generar una shell como usuario root con el comando service, lo hacemos de la siguiente manera:

sudo service ../../bin/sh

Y ya seriamos root

image