PoC 漏洞利用视频: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 是最知名且使用最广泛的工具之一,用于远程控制电脑,尤其是通过浏览器进行控制。
为了控制和管理承载该服务的设备,需要先经过客户端接受(授权)的阶段,其中会显示一个如下所示的“Message Box”对话框:
一旦连接被接受,会话负责人就可以通过浏览器管理该设备,并执行以下任务(以及其他操作):
尽管我没有分享用于绕过客户端验证的 PoC,但我分享了一些实用脚本,用于在连接被接受后提取敏感信息。
同样,我分享了 'airdroid_dos.sh' 和 'airdroid_fast_dos.sh' 脚本,它们负责执行一种“Remote DoS Application & System Crash”类型的操作,通过这些脚本可以使服务在远程崩溃,同时让移动设备因内存被完全占满而卡死,直至无法运行:
我们首先运行 'AirDroidPwner.py' 脚本,为此需要提供你的 Shodan KEY,以便找到大量正在运行 AirDroid 服务的设备:
# Usa tu API KEY de Shodan
SHODAN_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)
执行方式如下:
python AirDroidPwner.py
如你所见,非常复杂。执行后,首先通过 Shodan API,将 Shodan 针对此次搜索(本例中为 AirDroid 服务,端口 8888)索引到的所有 IP 存储到一个数组中。
找到这些 IP 后,会执行一个验证过程,以确认找到的主机确实启用了该服务,方法是根据发出一个简单请求后服务器端响应返回的状态码来判断。
在获得包含活动主机的新数组后,这些元素会被导出到名为 'ips' 的文件中。目前有以下操作模式:
连接被接受后(请求会发送到所有主机,就看其中是否有主机接受 [遗憾的是,你会发现很多主机都会接受……]),会话标识符会被存储在 7bb 参数中,之后通过该参数来管理各项查询:
def get_identifier(r_json):
identifier_session = r_json["7bb"]
return identifier_session
如果客户端不接受连接,这些客户端将被存储到一个已拒绝连接向量中,以便随后发起一种类型的攻击(攻击者可以决定 <y/n>):
其中,通过利用“Message Box”,借助一个可修改迭代次数的主循环(默认为 10)以及向受害者线程发送 3000 个请求的子循环,来填满设备的内存(RAM),不仅会导致应用程序被远程拒绝服务,还会造成 Remote System Crash,使设备完全无法运行,并强制系统重启。
该漏洞不仅影响最新版 AirDroid,还影响其之前的所有版本。
如果受害者接受了我们的连接,目前该工具已实现以下操作:
此外,我们还可以运行 'airdroid_dos.sh' 和 'airdroid_fast_dos.sh' 脚本。两者之间的主要区别在于,后者直接发起攻击,而前者会先进行一次简短的初步检查,以确认目标主机是否激活了该服务等(更商业化的一面)。
如果你想通过 Web 浏览器管理访问,在运行 'AirDroidPwner.py' 脚本并将 IP 列表导出到 'ips' 文件后,可以运行 'web_browser.py' 脚本,在浏览器中打开所有活动的服务。
任务: