VulNyx - First

logo

  • Default Password - SSH
  • Escape Restricted Shell - rbash
  • Cron Hijacking - Privesc

Escaneo de puertos

❯ nmap -p- -T5 -n -v 192.168.1.14

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
4369/tcp open  epmd

Escaneo de servicios

❯ nmap -sVC -v -p 22,80,4369 192.168.1.14

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
| ssh-hostkey: 
|   3072 24:83:97:49:96:11:7c:7a:54:00:17:3b:0c:f6:e1:54 (RSA)
|   256 83:cc:d0:72:41:48:fc:c4:ba:46:a1:0e:70:50:52:71 (ECDSA)
|_  256 a0:37:99:32:78:17:69:4f:1d:ac:75:1e:ba:19:58:45 (ED25519)
80/tcp   open  http    Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
| http-methods: 
|_  Supported Methods: GET POST OPTIONS HEAD
|_http-title: Apache2 Debian Default Page: It works
4369/tcp open  epmd    Erlang Port Mapper Daemon
| epmd-info: 
|   epmd_port: 4369
|_  nodes: 
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

HTTP TCP - 80

/http

Si miro la máquina víctima hay pequeña pista.

raspberry

En internet busco usuario y contraseña de una raspberry encuentro lo siguiente.

userpasswd

Me conecto por SSH usando las credenciales por defecto.

pi

Lanzo un echo $SHELL y me doy cuenta de que estoy en una rbash.

pi@raspberry:~ $ echo $SHELL
/bin/rbash

Si intento hacer una búsqueda de binarios con permisos SUID me sale el siguiente mensaje.

pi@raspberry:~ $ find / -perm -4000 2>/dev/null
-rbash: /dev/null: restringido: no se puede redirigir la salida

Para escapar de la rbash he usado esta web y lo unico que tengo que hacer es conectarme por SSH de la siguiente manera.

bashnprpofile

Ahora ya me permite realizar la búsqueda correctamente.

pi@raspberry:~ $ find / -perm -4000 2>/dev/null
/usr/bin/ping
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/su

Enumero el sistema con pspy64 y veo una tarea cron que realiza un ping al dominio raspberrypi.com.

pspy64

Reviso el archivo de configuración crontab y veo una ruta sospechosa en el path.

crontab

Al final del archivo se puede observar que cron llama al binario ping de forma relativa.

crontab2

Revisando los permisos de html veo que tengo todos los permisos.

pi@raspberry:~ $ ls -l /var/www/
total 4
drwxrwxrwx 2 www-data www-data 4096 nov 13 14:07 html

Ahora puedo elevar privilegios aprovechandome del PATH y de la tarea cron que llama al binario ping de forma relativa, para ello creo el archivo ping dentro de /var/www/html y en su interior escribo lo siguiente.

ping

Dejo un netcat a la escucha, espero unos segundos y obtengo el root.

root

Y aquí termina la máquina First.

Saludos!