Shocker
Shocker, aunque bastante simple en general, demuestra la gravedad del famoso exploit Shellshock, que afectΓ³ a millones de servidores pΓΊblicos.

Reconnaissance
Realizaremos un reconocimiento con nmap para ver los puertos que estΓ‘n expuestos en la mΓ‘quina Shocker. Este resultado lo almacenaremos en un archivo llamado allPorts.
A travΓ©s de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generΓ³ el primer escaneo a travΓ©s de Nmap. Esta herramienta nos copiarΓ‘ en la clipboard los puertos encontrados.
Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado, comprobamos que se encuentran abierta una pΓ‘gina web de Apache y un servicio SSH.
Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.
Accederemos a http://localhost y verificaremos el resultado en un formato mΓ‘s cΓ³modo para su anΓ‘lisis.

Web Enumeration
Realizaremos una comprobaciΓ³n de las tecnologΓas que utiliza el sitio web.
Al acceder a http://10.10.10.56 nos encontramos con el siguiente contenido de la pΓ‘gina web.

Realizamos una enumeraciΓ³n bΓ‘sica de directorios y pΓ‘ginas y no logramos obtener ninguna informaciΓ³n al respecto.
Realizamos nuevamente una enumeraciΓ³n de pΓ‘ginas con extensiΓ³n html y php pero tampoco logramos obtener informaciΓ³n relevante.
A travΓ©s del parΓ‘metro -f lo que le indicamos a Feroxbuster de aΓ±adir un slash / al final de cada peticiΓ³n que se realiza, esto debido que posiblemente podamos encontrar mΓ‘s informaciΓ³n de posibles directorios.
En el resultado obtenido, logramos enumerar el directorio /cgi-bin/.
Realizaremos una bΓΊsqueda de archivos ejecutables que se puedan encontrar en el directorio /cgi-bin/. Finalmente logramos enumerar un archivo llamadouser.sh.
Initial Access
ShelShock Attack (User-Agent) [CVE-2014-6271]
Accederemos a http://10.10.10.56/cgi-bin/user.sh y visualizamos el contenido del script.

El endpoint /cgi-bin/user.sh estΓ‘ ejecutando un script en el servidor y devolviendo su salida.
AnΓ‘lisis de la respuesta:
Content-Type: text/x-sh β El servidor estΓ‘ sirviendo un archivo de script de shell (
.sh).Just an uptime test script β Mensaje que indica que el script solo muestra el uptime del sistema.
19:11:10 up 5 min, 0 users, load average: 0.00, 0.03, 0.01 β Resultado del comando
uptime, lo que sugiere que el script ejecuta comandos del sistema.

Si el servidor ejecuta el script sin restricciones, podrΓamos probar Shellshock o command injection enviando una carga en la cabecera User-Agent o como parΓ‘metro en la URL.
Shellshock (CVE-2014-6271) es una vulnerabilidad en Bash que permite ejecutar comandos arbitrarios a travΓ©s de variables de entorno manipuladas. Se explota inyectando cΓ³digo malicioso en cabeceras HTTP o parΓ‘metros de CGI cuando el servidor usa Bash para ejecutar scripts.
GNU Bash hasta la versiΓ³n 4.3 procesa las cadenas finales despuΓ©s de las definiciones de funciones en los valores de las variables de entorno, lo que permite a atacantes remotos ejecutar cΓ³digo arbitrario a travΓ©s de un entorno diseΓ±ado, como lo demuestran los vectores que involucran la caracterΓstica ForceCommand en OpenSSH sshd, los mΓ³dulos mod_cgi y mod_cgid en el servidor HTTP Apache, scripts ejecutados por clientes DHCP no especificados y otras situaciones en las que la configuraciΓ³n del entorno ocurre a travΓ©s de un lΓmite de privilegios desde la ejecuciΓ³n de Bash, tambiΓ©n conocido como "ShellShock". NOTA: la soluciΓ³n original para este problema era incorrecta; CVE-2014-7169 se ha asignado para cubrir la vulnerabilidad que aΓΊn estΓ‘ presente despuΓ©s de la soluciΓ³n incorrecta.
Nos encontramos con el siguiente repositorio de GitHub que nos mostraba un simple PoC de cΓ³mo intentar explotar el ShellShock.
Modificaremos el encabezado de User-Agent para inyectarle el siguiente cΓ³digo malicioso. Verificamos que en la respuesta por parte del servidor, hemos logrado la ejecuciΓ³n de comandos.

El siguiente paso, serΓ‘ lograr obtener una Reverse Shell para acceder al sistema. Nos pondremos en escucha con nc.
Inyectaremos el siguiente cΓ³digo malicioso en el User-Agent para establecernos la Reverse Shell.

Verificaremos que logramos acceder al sistema y visualizar la flag de user.txt.
Privilege Escalation
Abusing sudoers privilege (perl)
Revisaremos los grupos a los que forma parte el usuario shelly. Por otro lado, al verificar si disponΓamos de permisos de sudoers, nos encontramos que tenemos la capacidad de ejecutar como sudo sin proporcionar credenciales el binario de /usr/bin/perl.
En la pΓ‘gina de GTFOBins podemos encontrar diferentes maneras de cΓ³mo abusar de privilegios de binarios con sudoers. Nos encontramos la respectiva entrada del binario perl.
TambiΓ©n, podemos realizar la misma consulta a travΓ©s de la siguiente herramienta de searchbins que realiza la consulta de GTFOBins desde la misma terminal.
Realizamos la ejecuciΓ³n del comando que se nos proporciona en GTFOBins y finalmente logramos abusar del binario /usr/bin/perl como sudo y logramos el acceso a root. Finalmente, comprobamos la flag de root.txt.
Γltima actualizaciΓ³n
ΒΏTe fue ΓΊtil?
