Ataque ShellShock, Simples

Recentemente, uma família de vulnerabilidades relacionadas a Bash BUG, o interpretador mais comum em GNU / Linux, MAC OS e alguns Unix, e foi chamado de SHellShock ou Bashdoor (CVE-2014-6271). A questão mais importante e alarmante a este respeito prende-se com o facto de o referido BUG estar presente no Bash há 20 anos, pelo que estima-se que a gravidade do assunto seja ainda maior do que o Heartbleed.

O Bash BUG ou Trauma pós guerra Não é em si um código malicioso (como vírus de computador, spyware, malware, etc.), portanto, não pode ser detectado e bloqueado por antivírus ou sistemas semelhantes, mas deve ser corrigido na própria implementação do software que o "sofre".

Recomenda-se a aplicação deste tutorial em ambientes controlados, para fins relacionados à pesquisa e estudo da ciência da computação, conforme explicado aqui.

O que é o Bash BUG ShellShock?


Basicamente, o problema reside na possibilidade do Bash ter de armazenar a definição das funções de script em variáveis ​​de ambiente, mais precisamente em como essas funções são carregadas pelo Bash.

O BUG se manifesta quando em uma variável de ambiente, após a definição da função, um código adicional é adicionado que o Bash continuará a analisar e executar após carregar a função.

Com o comando a seguir, uma definição de função vazia, código arbitrário, foi carregada na variável "x" e, em seguida, Bash foi chamado.

O que acontece é que antes de chamar o Bash, a variável de ambiente foi carregada e o código injetado foi executado que simplesmente mostra a string "vulnerável" no console (poderia ter sido pior, é claro!). Então o Bash foi executado e o comando echo foi chamado como exemplo. Uma variante mais simples do comando para realizar o teste:

 $ env x = '() {:;}; echo vulnerável 'bash 
Este último comando mostrará a string "vulnerável" na tela se a versão Bash tiver o BUG ou não mostrará nada se for uma versão corrigida.

Conforme indicado na introdução, este BUG determina uma família de vulnerabilidades que podem ser usadas por um invasor para controlar computadores remotamente. Dentro dessas variantes, existem algumas um pouco mais complexas, outras muito simples e algumas mais ou menos complexas. Existem variantes relacionadas aos módulos Apache e CGI, outras para o cliente DHCP e algumas um pouco mais elaboradas do que outras.

Um dos casos mais simples será usado para este guia, Ataque shellShock no cliente GNU / Linux DHCP.

Sistemas EnvolvidosAnfitrião da vítima:
GNU / Linux com Bash 4.3
Cliente DHCP isc-dhclient-4.2.4
IP 192.168.1.88 (via DHCP)

Host de ataque:
Windows Xp
Servidor DHCP "tftp32" por Ph. Jounin
IP: 192.168.1.100

PROLONGAR

Para a prova de conceito, assumimos uma LAN na qual a Vítima e o Atacante estão conectados.
Uma vez que o software cliente DHCP é executado com permissões de administração, o invasor tentará incluir código malicioso em algum parâmetro de opção DHCP na configuração DHCP atribuída à vítima.

Processar

1) O invasor executa o software do serviço DHCP {(ftp32 ”por Ph. Jounin) foi usado para este guia}

1.1) Selecione a interface de rede a ser usada e pressione o botão "Configurações"

1.2) Configure as opções para executar apenas o serviço DHCP.

1.3) Vá para a guia "DHCP" e configure da seguinte maneira:

1.4) Observação no campo "Opção adicional", a opção 114 (usada em VOIP) foi especificada e a definição da função Bash e o código malicioso foram inseridos no campo de detalhes da opção:

 () {ignorado;}; echo 'CÓDIGO INJETADO'; / bin / cat / etc / passwd 
1.5) Pressione "OK", o serviço DHCP está pronto.

2) No terminal do sistema da vítima, execute o seguinte comando para expor o Syslog do sistema para quando executarmos a solicitação DHCP:

 # tail -f / var / log / syslog & 
3) Supondo que eth1 seja a interface de rede da vítima, execute o cliente DHCP:
 # dhclient eth1 
4) O comando fará a solicitação DHCP e o invasor a atribuição correspondente:

5) No terminal da vítima, graças ao comando tail que estava em background mostrando o syslog do sistema, será mostrada a execução do código injetado, neste caso será mostrada a string "CÓDIGO INJETADO" e em seguida o conteúdo do arquivo / etc / passwd da vítima (poderia ter sido muito pior …):

Esta última parte é graças ao comando "/ bin / cat / etc / passwd”Que faz parte da string especificada como opção 114.

O invasor pode ter executado outros comandos e realizado qualquer ação, pois ele tem permissões de “root”, uma vez que o cliente DHCP da Vítima é executado com esses privilégios.

ConsideraçõesUm software comum foi usado para este guia, sem variações no sistema Victim. Esta vulnerabilidade está presente em outros aplicativos que usam o Bash para executar parâmetros ou scripts no sistema.

É imperativo aplique as atualizações correspondentes ao sistema para evitar este tipo de ataque.

Vale esclarecer que o conteúdo aqui apresentado é útil tanto para entender a mecânica do ataque quanto para aumentar a conscientização sobre este último ponto. Lembre-se de que essa decisão já existe há pelo menos 20 anos, portanto, pode ter sido aplicada muito antes de ser lançada.

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave