
Exploit para Apache NiFi CVE-2023-34468, visando uma vulnerabilidade nas versões 1.21.0 e anteriores para demonstrar acesso a dados e comprometimento do sistema.
[][nifi]
O Apache NiFi é um sistema fácil de usar, poderoso e confiável para processar e distribuir dados.
O Apache NiFi foi criado para fluxos de dados. Ele suporta grafos direcionados altamente configuráveis de roteamento de dados, transformação e lógica de mediação de sistemas. Alguns de seus principais recursos incluem:
Leia o guia de início rápido para desenvolvimento. Ele incluirá informações sobre como obter uma cópia local do código-fonte, dará orientações sobre o rastreamento de problemas e fornecerá alguns avisos sobre problemas comuns em ambientes de desenvolvimento.
Para um guia mais abrangente de desenvolvimento e informações sobre como contribuir com o projeto, leia o Guia do Desenvolvedor NiFi.
Execute mvn clean install ou, para compilação paralela, execute mvn -T 2.0C clean install.
A compilação paralela deve levar cerca de quinze minutos em hardware moderno.
laptop:nifi myuser$ mvn -T 2.0C clean install
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 115 modules...
...tens of thousands of lines elided...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 09:24 min (Wall Clock)
[INFO] Finished at: 2015-04-30T00:30:36-05:00
[INFO] Final Memory: 173M/1359M
[INFO] ------------------------------------------------------------------------
Execute mvn clean install -DskipTests para pular a execução dos testes unitários.
Altere o diretório para nifi-assembly. O diretório target contém os arquivos binários.
laptop:nifi myuser$ cd nifi-assembly
laptop:nifi-assembly myuser$ ls -lhd target/nifi*
drwxr-xr-x 3 myuser mygroup 102B Apr 30 00:29 target/nifi-1.0.0-SNAPSHOT-bin
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.tar.gz
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.zip
Copie o nifi-VERSION-bin.tar.gz ou nifi-VERSION-bin.zip para um diretório de implantação separado. A extração da distribuição criará um novo diretório nomeado de acordo com a versão.
laptop:nifi-assembly myuser$ mkdir ~/example-nifi-deploy
laptop:nifi-assembly myuser$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy
laptop:nifi-assembly myuser$ ls -lh ~/example-nifi-deploy/
total 0
drwxr-xr-x 10 myuser mygroup 340B Apr 30 01:06 nifi-1.0.0-SNAPSHOT
Altere o diretório para o local de implantação e execute o seguinte comando para iniciar o NiFi.
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
Executar bin/nifi.sh start inicia o NiFi em segundo plano e sai. Use --wait-for-init com um tempo limite opcional em segundos para aguardar uma inicialização completa antes de sair.
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
A configuração padrão gera um nome de usuário e uma senha aleatórios na inicialização. O NiFi grava as credenciais geradas no log do aplicativo, localizado em logs/nifi-app.log no diretório de instalação do NiFi.
O seguinte comando pode ser usado para encontrar as credenciais geradas em sistemas operacionais com o grep instalado:
laptop:nifi-1.0.0-SNAPSHOT myuser$ grep Generated logs/nifi-app*log
O NiFi registra as credenciais geradas da seguinte forma:
Generated Username [USERNAME]
Generated Password [PASSWORD]
O USERNAME será um UUID aleatório composto por 36 caracteres. O PASSWORD será uma string aleatória composta por 32 caracteres. As credenciais geradas serão armazenadas em conf/login-identity-providers.xml, com a senha armazenada usando hash bcrypt. Registre essas credenciais em um local seguro para acessar o NiFi.
O nome de usuário e a senha aleatórios podem ser substituídos por credenciais personalizadas usando o seguinte comando:
./bin/nifi.sh set-single-user-credentials <username> <password>
Abra o seguinte link em um navegador web para acessar o NiFi: https://localhost:8443/nifi
O navegador web exibirá uma mensagem de aviso indicando um possível risco de segurança devido ao certificado autoassinado que o NiFi gerou durante a inicialização. Aceitar o possível risco de segurança e continuar carregando a interface é uma opção para instalações iniciais de desenvolvimento. Implantações em produção devem provisionar um certificado de uma autoridade certificadora confiável e atualizar a configuração do keystore e do truststore do NiFi.