
Ideales Programm, um alle Informationen von einem Gerät aus der Ferne über die AirDroid-Anwendung zu stehlen. [CVE-2019-9599] (https://www.exploit-db.com/exploits/46337)
PoC-Exploit-Video: https://www.youtube.com/watch?v=0QDM224_6DM
CVE: https://nvd.nist.gov/vuln/detail/CVE-2019-9599
Exploit-db: https://www.exploit-db.com/exploits/46337
AirDroid ist eines der bekanntesten und am häufigsten verwendeten Tools, um einen Computer remote zu steuern, insbesondere über den Browser.
Um das Gerät zu steuern und zu verwalten, das den Dienst bereitstellt, ist eine vorherige Annahme durch den Client erforderlich, in der eine 'Message Box' wie im Folgenden dargestellt erscheint:
Sobald die Verbindung akzeptiert wurde, kann der Verantwortliche der Sitzung das Gerät über den Browser verwalten und unter anderem folgende Aufgaben ausführen:
Obwohl ich den PoC, der die Validierung auf der Clientseite umgeht, nicht teile, habe ich einige nützliche Skripte zur Extraktion privilegierter Informationen geteilt, sobald die Verbindung akzeptiert wurde.
Des Weiteren habe ich die Skripte 'airdroid_dos.sh' und 'airdroid_fast_dos.sh' geteilt, die eine Aktion vom Typ 'Remote DoS Application & System Crash' ausführen. Mit ihrer Hilfe lässt sich der Dienst remote zum Absturz bringen und das Mobilgerät einfrieren, indem der gesamte Speicher gefüllt wird, bis es nicht mehr funktionsfähig ist:
Wir beginnen mit der Ausführung des Skripts 'AirDroidPwner.py', wobei wir unseren KEY von Shodan angeben müssen, um eine große Anzahl von Geräten zu finden, auf denen der Dienst AirDroid läuft:
# Usa tu API KEY de Shodan
SHODAN_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)
Die Ausführung erfolgt folgendermaßen:
python AirDroidPwner.py
Wie Sie sehen, sehr komplex. Nach der Ausführung werden über die Shodan-API zunächst alle IPs, die Shodan zu der durchgeführten Suche indexiert, in einem Array gespeichert, in diesem Fall für den Dienst AirDroid (Port 8888).
Sobald sie gefunden wurden, wird ein Validierungsprozess durchgeführt, um zu prüfen, ob die gefundenen Hosts den Dienst tatsächlich aktiviert haben, wobei der Statuscode der Serverantwort nach einer einfachen Anfrage berücksichtigt wird.
Nachdem das neue Array mit den Elementen der aktiven Hosts erstellt wurde, werden diese in eine Datei mit dem Namen 'ips' exportiert. Derzeit gibt es die folgenden Betriebsmodi:
Nach der Annahme der Verbindung (die Anfrage wird an die Hosts gesendet, und es ist nur eine Frage der Zeit, bis einer von ihnen sie annimmt [Leider werden Sie sehen, dass viele es tun ...]), wird die Sitzungskennung im Parameter 7bb gespeichert, über den die Abfragen anschließend verwaltet werden:
def get_identifier(r_json):
identifier_session = r_json["7bb"]
return identifier_session
Falls der Client die Verbindung nicht akzeptiert, werden diese in einem Vektor abgelehnter Verbindungen gespeichert, um anschließend einen Angriff der folgenden Art zu starten (Der Angreifer kann <y/n> entscheiden):
Dabei wird mithilfe der 'Message Box' über eine Hauptschleife mit änderbarer Iterationsanzahl (standardmäßig 10) sowie Unterschleifen, die 3.000 Thread-Anfragen an die Opfer senden, der RAM-Speicher des Geräts gefüllt, was nicht nur einen Remote-Denial-of-Service der Anwendung verursacht, sondern auch einen Remote System Crash, bei dem das Gerät völlig funktionsunfähig wird und ein Neustart des Systems erzwungen wird.
Diese Schwachstelle betrifft nicht nur die neueste Version von AirDroid, sondern auch alle Vorgängerversionen.
Falls das Opfer die Verbindung akzeptiert, sind dies die Operationen, die das Tool derzeit implementiert hat:
Zusätzlich können wir auch die Skripte 'airdroid_dos.sh' und 'airdroid_fast_dos.sh' ausführen. Der Hauptunterschied zwischen beiden besteht darin, dass das zweite direkt zum Angriff übergeht, während das erste eine kurze anfängliche Prüfung durchführt, ob der Host über den aktiven Dienst verfügt usw. (die kommerziellere Seite).
Falls Sie den Zugriff über den Webbrowser verwalten möchten, können Sie, nachdem Sie das Skript 'AirDroidPwner.py' ausgeführt und die IP-Liste in die Datei 'ips' exportiert haben, das Skript 'web_browser.py' ausführen, um alle aktiven Dienste in einem Browser zu öffnen.
Aufgaben: