
Exploit para Apache NiFi CVE-2023-34468, dirigido a una vulnerabilidad en versiones 1.21.0 y anteriores para demostrar acceso a datos y compromiso del sistema.
[][nifi]
Apache NiFi es un sistema fácil de usar, potente y confiable para procesar y distribuir datos.
Apache NiFi fue creado para el flujo de datos. Admite gráficos dirigidos altamente configurables de enrutamiento de datos, transformación y lógica de mediación de sistemas. Algunas de sus características clave incluyen:
Lee la guía de inicio rápido para desarrollo. Incluirá información sobre cómo obtener una copia local del código fuente, dará indicaciones sobre el seguimiento de problemas y proporcionará algunas advertencias sobre problemas comunes con los entornos de desarrollo.
Para obtener una guía más completa sobre el desarrollo e información sobre cómo contribuir al proyecto, lee la Guía del desarrollador de NiFi.
Ejecuta mvn clean install o, para una compilación en paralelo, ejecuta mvn -T 2.0C clean install.
La compilación en paralelo debería tardar unos quince minutos en 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] ------------------------------------------------------------------------
Ejecuta mvn clean install -DskipTests para omitir la ejecución de pruebas unitarias.
Cambia de directorio a nifi-assembly. El directorio target contiene los archivos binarios.
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
Copia nifi-VERSION-bin.tar.gz o nifi-VERSION-bin.zip a un directorio de despliegue separado.
Al extraer la distribución se creará un nuevo directorio con el nombre de la versión.
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
Cambia de directorio a la ubicación de despliegue y ejecuta el siguiente comando para iniciar NiFi.
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
Ejecutar bin/nifi.sh start inicia NiFi en segundo plano y sale. Usa --wait-for-init con un tiempo de espera opcional en
segundos para esperar a que el inicio se complete antes de salir.
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
La configuración predeterminada genera un nombre de usuario y una contraseña aleatorios al inicio. NiFi escribe las credenciales generadas
en el registro de la aplicación ubicado en logs/nifi-app.log dentro del directorio de instalación de NiFi.
El siguiente comando se puede utilizar para encontrar las credenciales generadas en sistemas operativos con grep instalado:
laptop:nifi-1.0.0-SNAPSHOT myuser$ grep Generated logs/nifi-app*log
NiFi registra las credenciales generadas de la siguiente manera:
Generated Username [USERNAME]
Generated Password [PASSWORD]
El USERNAME será un UUID aleatorio compuesto por 36 caracteres. El PASSWORD será una cadena aleatoria compuesta por
32 caracteres. Las credenciales generadas se almacenarán en conf/login-identity-providers.xml con la contraseña almacenada
mediante hash bcrypt. Guarda estas credenciales en un lugar seguro para acceder a NiFi.
El nombre de usuario y la contraseña aleatorios se pueden reemplazar con credenciales personalizadas mediante el siguiente comando:
./bin/nifi.sh set-single-user-credentials <username> <password>
Abre el siguiente enlace en un navegador web para acceder a NiFi: https://localhost:8443/nifi
El navegador web mostrará un mensaje de advertencia que indica un posible riesgo de seguridad debido al certificado autofirmado que NiFi generó durante la inicialización. Aceptar el posible riesgo de seguridad y continuar cargando la interfaz es una opción para instalaciones de desarrollo iniciales. Los despliegues de producción deben aprovisionar un certificado de una autoridad de certificación de confianza y actualizar la configuración del almacén de claves y de confianza de NiFi.