Syhunt Dynamic: Detecção de Log4Shell

As informações contidas neste documento se aplicam a versão 6.9.19 do Syhunt Dynamic.

Projetado para profissionais que realizam teste de penetração, este guia explica como configurar Syhunt Dynamic para fazer com que os recursos OAST do Syhunt se integrem ao JNDI Exploit Server, permitindo que o Syhunt Dynamic detecte aplicações web vulneráveis a ataques Log4Shell.

Passo 1: Inicie o servidor JNDI Exploit

Você deve ler e concordar com o EULA da Syhunt antes de continuar e executar qualquer linha de comando em seu sistema operacional. Observe que o JNDI Exploit não foi desenvolvido pela Syhunt, e a ferramenta pode (ou não) ser coberta por um EULA próprio.

Em primeiro lugar, você precisa iniciar o servidor JNDI Exploit de uma máquina dedicada e limpa que não hospede quaisquer recursos, dados ou arquivos confidenciais (entenda o porquê lendo a seção Segurança e Requisitos de Conexão logo abaixo). Após ser iniciado, o servidor abrirá duas portas e serviços: um servidor HTTP em 8888 e um servidor LDAP em 1389. Este guia assume que você já possui o JDK (Java Development Kit) instalado, que é necessário para executar o servidor JNDI Exploit. Testamos com sucesso o exploit usando o JDK versão 11.0.3

As seguintes linhas baixam e executam o servidor JNDIExploit:


wget https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i IPADDRESS -p 8888

O JNDIExploit.v1.2.zip foi removido pelo site do GitHub, mas uma cópia está disponível no link abaxo.

https://bit.ly/3Azqvnq (MD5: 15dcaa1920b3e34acc1dca2b9286c075)

Você também pode tentar obter uma cópia do arquivo original por meio de outras fontes da Internet. Abaixo, você pode encontrar os hashes do arquivo para que possa compará-lo e verificar se é o arquivo correto:

 CRC-32: 5df539f0
 MD5: a8dca50391115eb8741b664cf137ba05
 SHA-1: 2b3791e501e5ceba9be65ee8526cc11084faa198
 SHA-256: 03fb135841f8f8d5c7b9b9a7cd5e65e13162fbfe958318731ab2a5ea41912ffb
 SHA-512: f04eb18c91314b1d9f7d02a2b64a7aa2ccc5134e24c135c54dae5205b90a653b1ec97aeb6e0ea0e288d791e81056e3e14f92ca7171c02cbd6c472247f1c9caaa

Segurança e Requisitos de Conexão

A máquina em que o Syhunt está instalado deve ter permissão para abrir solicitações HTTP e LDAP para os seguintes endereços de Internet adicionais:

IPPortas
YOUR-JDNIEXPLOIT-IPADDRESS8888, 1389

Isso permitirá que o Syhunt verifique se os servidores estão funcionando antes de prosseguir com a varredura.

Se o site de destino que você deseja varrer usa um endereço IP privado, o servidor JNDI Exploit também pode ter um endereço IP privado. Mas se o site de destino usa um endereço IP público, você deve certificar-se de que o servidor JNDI Exploit também está sendo executado a partir de um endereço IP público. O Syhunt Hybrid tentará alertar sobre quaisquer violações destes requisitos.

Iniciar uma instância pública do JNDI Exploit Server traz riscos e você assume todos os riscos resultantes de seu uso, o que inclui:

  1. Que possa ser localizado por meio de varredura de portas e usado por agentes mal-intencionados para realizar ataques contra alvos não autorizados, não se limitando a ataques Log4Shell.
  2. Que o servidor possa conter vulnerabilidades que podem ser exploradas quando descobertas ou conhecidas apenas pelo autor do exploit (leia mais sobre essa possibilidade abaixo)

Pelas razões acima, depois de terminar sua varredura nos alvos desejados, certifique-se de fechar e desligar o servidor JNDI Exploit.

Segurança do JNDIExploit

Uma varredura do código-fonte do JNDIExploit-master.zip (md5 aa018bbf3e6f2fef69854b9b167482f4) realizado pela equipe Syhunt usando o Syhunt Code indica 6 possíveis vulnerabilidades :

  1. Vulnerabilidade de Execução de Comando na linha 43 de /src/main/java/com/feihong/ldap/template/DynamicInterceptorTemplate.java
  2. Modo Criptográfico Inseguro na linha 53 de/src/main/java/com/feihong/ldap/template/DynamicFilterTemplate.java and /src/main/java/com/feihong/ldap/template/DynamicInterceptorTemplate.java
  3. Geração de Número Aleatório Fraco na linha 14 de /src/main/java/com/feihong/ldap/utils/Util.java

Passo 2: Configure o Syhunt Dynamic

  1. Inicie o Syhunt Hybrid e clique no botão Preferências na página de boas-vindas.

  2. Vá para a guia Avançado e insira o endereço IP (sem o número da porta) de sua instância do servidor JNDIExploit.
  3. Clique no botão OK para salvar as preferências.

Se você estiver usando a CLI, poderá definir o IP do servidor por meio do seguinte comando:

 scancore -prefset:syhunt.dynamic.options.augmented.jndiserver -v:YOUR-JDNIEXPLOIT-IPADDRESS

Passo 3: Confirme se está tudo OK

Opcionalmente, você pode verificar se a detecção Log4Shell está funcionando executando uma varredura no log4shell-vulnerable-app. As instruções para executar o aplicativo estão disponíveis em https://github.com/christophetd/log4shell-vulnerable-app#running-the-application

Passo 4: Inicie sua varredura Log4Shell

  1. Clique no ícone Syhunt Dynamic ou no botão New Scan na página de boas-vindas.

  2. Insira o URL do site que você deseja verificar.

  3. Selecione o método de verificação Log4Shell, que verifica as vulnerabilidades Log4J usando as configurações recomendadas.

Se você estiver usando a CLI, use o seguinte comando para iniciar uma varredura: scanurl yourtargetsite.com -hm:log4shell

Importante: Depois de terminar sua varredura contra os alvos desejados, certifique-se de fechar e desligar o servidor JNDI Exploit. Se você abrir http://YOUR-JDNIEXPLOIT-IPADDRESS:8888 com o seu navegador Chrome e aparecer a mensagem 404 Not Found, então o servidor ainda está aberto e funcionando. No Firefox, uma página em branco aparece e você pode ver o status 404 na aba Rede do Web Developer Tools.

Contato