Enum is the key — Automatizado + Manual = Full shell.
Hola, soy Alex aka 0x4lex. Este es mi primer post contando la historia para obtener una shell root.
Enumeración:
Como bien lo dice el post Enum is the key. Pues al hacer una buena enumeración del objetivo obtienes mayor superficie de ataque para explotar. Mis métodos varían según la plataforma, tecnología u objetivo. Pero al menos el automatizado va guiado por un pequeño script.
Este script esta centrado en la automatizacion de subdominios (subfinder)(assetfinder), (amass) y github subdomains para obtener la mayor superficie de ataque en un subdominio.
Posteriormente con ayuda de httpx validamos los subdominios que esta up, parte de la enumeración es saber que puertos y servicios esta ejecutando el servidor, para eso usamos naabu.
Hasta este punto tenemos los subdominios y sus puertos, y comenzamos a utilizar xray para buscar vulnerabilidades como xss, sqli, xxe, ssrf, rce o path trasversal, solo como primer check.
Los dejamos ejecutando en segundo plano mientras enumeramos manualmente modulos interesantes que vayan saliendo, otro que es de mucha ayuda para obtener subdominios es crt.sh
Validamos, en el DOM no se mostraba el error pero en el código si, por eso es importante verificar con las herramientas del navegador la interpretación de tu payload.
El script nos arroja un parametro vulerable con su url incluso su petición HTTP. partimos de ahí para explotar la inyección.
En primera instancia antes de explotarlo manual, probamos con sqlmap porque pues Keep it Simple jeje
Antes de comenzar la explotación de sqli manual, pruebo con SQLMAP a ver si dumpea automático.
Y me topo con un WAF, ademas de una conexión muy inestable, antes de meter mas cosas complicadas como proxys, force ssl, tampers y demás.
Pruebo con Ghauri. Ya que esta tool me ha servido para bypassear wafs o sanitizaciones de manera automática.
Y voalá, conseguimos el password en base64 y sencillo lo volvemos texto claro con cualquier decoder, lo mantuvimos simple y tenemos unas credenciales para acceder al panel de administrador.
El panel de administrador lo encontre con un fuzzer, un comando asi.
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u URL
Tenemos ubicado el path del panel de admin y sus credenciales, accedemos.
Lo importante aquí es que encontré una subida de archivos que solo aceptaba imagenes/png
Aquí si te manera manual, subí una shell php de una linea, cambiando el content-type a img/png
Y conseguí bypassear la validación de solo imágenes.
Tenemos una shell basica y considerada RCE. Pero como caso de abuso
Planeamos mantener el acceso, aqui hay dos maneras lo hicimos.
primero con el comando wich vemos que tenemos intalado un wget
Entonces con ayuda de ngrok free conseguimos subir cualquier archivo que queramos de nuestra maquina atacante.
O bien utilizando técnicas como path transversal, conseguimos el archivo
/etc/shadow & /etc/passwd
Lo que se traduce a obtener los usuarios y sus passwords hasheados
utilizamos jhon the ripper para crackear los mismos y así mantuvimos un cómodo acceso por SSH no detectable :)
Espero sea de su agrado, espero pronto seguir subiendo este tipo de contenido, Happy hunting.