Práctica Taller: CVE-2014-6271/Shellshock
Vulnerabilidade servizo GNU Bash (Shellshock) – CVE-2014-6271
- Explicación: Execución remota de código en Bash mediante a manipulación de variables de entorno con funcións maliciosas.
- CVE: CVE
- Gravidade: Crítica
- CVSS: 9.8
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Recomendación: Actualizar inmediatamente Bash ás versións parcheadas distribuídas polos provedores oficiais. Se non é posible, desactivar temporalmente servizos que dependan de Bash (CGI, DHCP, etc.) e empregar intérpretes alternativos ata aplicar a corrección definitiva.
Obxectivo
Seguir o procedemento descrito en CVE-2014-6271/Shellshock para comprender como se explota esta vulnerabilidade.
A vulnerabilidade CVE-2014-6271 é coñecida como Shellshock.
Consiste nun fallo na shell Bash (Bourne Again SHell). O problema está en como Bash procesa variables de entorno que conteñen funcións:
- Bash permite exportar funcións a procesos fillos a través das variables de entorno.
- O bug fai que, se despois da definición dunha función se engade código adicional, ese código tamén se executa ao abrirse unha nova instancia de Bash, aínda que non debería.
- Isto abre a porta a execución remota de código (RCE) se un atacante consegue que unha aplicación ou servizo pase variables de entorno maliciosas a Bash.
Exemplo simplificado dunha variable maliciosa:
Se o sistema é vulnerable, ademais de imprimir test, tamén executará echo VULNERABLE.
Impacto
- Permite a un atacante executar comandos arbitrarios en servidores que usan Bash como shell para procesar entradas externas.
- Servizos moi expostos foron, por exemplo, CGI en servidores web Apache, sistemas DHCP, SSH con configuracións concretas, etc.
- A gravidade foi considerada crítica (CVSS 10.0).
Mitigación
- Actualizar Bash ás versións parcheadas liberadas polos distintos distribuidores en setembro de 2014.
- Como medida temporal, podíanse restrinxir servizos que dependían de Bash, ou cambiar a outros intérpretes de comandos.