
PoC para CVE-2024-23997
Uma Prova-de-Conceito para a vulnerabilidade CVE-2024-23997.
cf) Um proxy, especialmente um proxy web, atua como um agente no meio da comunicação web, recebendo e encaminhando solicitações e respostas em nome de outros. Assim, independentemente da porta que o YANA usa, um proxy pode interceptar a comunicação. Embora os proxies sejam usados para segurança ou para aumentar a velocidade de pesquisa por meio de cache, muitos programas maliciosos os exploram para bisbilhotar as comunicações web que os usuários enviam.
Vejamos um exemplo usando o YANA. Instalei o Burp Suite, uma ferramenta de proxy que atua como malware, no meu Windows 10 para montar um ambiente de prática. O Burp Suite é uma ferramenta de diagnóstico de segurança de rede da PortSwigger, e sua versão comunitária está disponível gratuitamente. Se você quiser seguir este exemplo, observe que alterações nas configurações de rede são necessárias para a prática, sendo necessária a restauração.
Passo 1) O malware real não altera as configurações da Internet, mas escuta pacotes usando APIs do Windows, APIs do Linux etc. No entanto, devido à sua complexidade, as opções são ativadas manualmente. Pressione a tecla Windows e pesquise por Opções da Internet.
Passo 2) Vá para a guia Conexões e clique no botão Configurações da LAN.
Passo 3) Marque “Usar um servidor proxy para a sua LAN” e clique no botão Avançado. Para restaurar as configurações, basta desmarcar.
Passo 4) Modifique o conteúdo de HTTP em Servidores para “127.0.0.1”, “8080” e Exceções para “<-loopback>” e clique nos botões OK para salvar a opção.
Passo 5) Abra o Burp Suite.
Passo 6) Como apenas vamos verificar, marque “Temporary project in memory” e clique no botão Next.
Passo 7) Selecione “Use Burp defaults” e clique no botão Start Burp.
Passo 8) Vá para a guia Proxy, depois clique em Proxy settings para verificar se o proxy está definido como 127.0.0.1:8080 em Proxy listeners e confirme se Running está marcado. Além disso, vá em Response interception rules em Proxy listeners e marque Intercept response based on the following rules. Ao fechar a janela de configurações, as opções são aplicadas automaticamente.
Passo 9) Vá para a guia Intercept no Proxy e verifique se “Intercept is on”, então abra o Yana. Quando o Intercept está habilitado, todas as comunicações HTTP/HTTPS são retidas e não enviadas à outra parte até que o Intercept seja desabilitado ou o botão Forward seja pressionado.
Passo 10) Enquanto pressiona o botão Forward, procure por respostas HTML entre as respostas recebidas do servidor em segundo plano do Yana. É fácil distinguir porque a tag title do documento HTML está escrita como Yana.
Passo 11) Insira o código JS("<script>require('child_process').exec('C:/Windows/System32/calc.exe')</script>") usando uma tag script sob a tag body do HTML.
Passo 12) Em seguida, desabilite “Intercept is on”, e o programa Electron do Yana receberá os pacotes e executará o script, iniciando o programa calculadora.
Passo 13) Quando a prática for concluída, vá em Opções da Internet e desabilite o uso do servidor proxy.
Isso ocorre porque a opção nodeIntegration está habilitada no Yana. Mesmo que essa opção esteja desabilitada, a execução de código Node.js a partir do HTML se torna possível usando vários outros métodos. Se for executado com as permissões do Yana, e se o Yana estiver rodando com permissões de administrador ou root, o código malicioso injetado pode ser executado com essas permissões. Portanto, como mencionado anteriormente, é mais seguro buscar e exibir páginas HTML usando protocolos como o protocolo File, que são mais difíceis de interceptar na comunicação entre programas, em vez de usar o protocolo HTTP.