throwaway96/slopbro
GitHub: throwaway96/slopbro
SlopBro 是针对 LG webOS 电视 jsserver 漏洞的概念验证 exploit,利用特权 Luna 请求实现 root 提权并安装 Homebrew Channel。
Stars: 1 | Forks: 0
# SlopBro
部分 Python 代码是由 LLM 编写的。(你以为我想写一个兼容 Python 2.7/3.x 的 WebSocket 客户端吗?)其余部分则是纯正的、传统的**人类**制造的粗制滥造代码。这就是这个时代的精神,你懂的?
## 概述
SlopBro 是一个针对 LG 电视中 jsserver 漏洞的概念验证(proof-of-concept) exploit。
我尽量让它兼容 Python 2.7 和 3.x,并且除了标准库之外不依赖任何外部库,以便它能在所有版本的 webOS 电视上运行。不幸的是,webOS 6(可能还有更老版本)上的 Python 2.7 环境缺少 HTTP 服务器相关的组件,所以这有点浪费时间。哎。
我只在 webOS 6 上进行了最低限度的测试(记住:这是粗制滥造的代码!),但它应该至少能在其他一些版本上运行。
我也在 webOS 10 (25) 上测试了部分功能,并且其他人已在 webOS 5 和 7 上成功使用了它。我相信它应该也能在 webOS 11 (26) 上运行。
### 工作原理
`slopbro.py` 是主脚本。它执行以下步骤:
1. 启动 HTTP 服务器以提供 exploit 页面和 payload。
2. 打开与电视的 SSAP 连接。
3. 启动一个 WAM 应用,指向 exploit 页面 `index.html`。
在特定 WAM 应用上下文中运行的页面可以发起特权 Luna 请求。在电视上加载时,`index.html` 会执行以下操作:
1. 在电视屏幕上显示状态和调试信息。
2. 从 HTTP 服务器下载用于伪造 `com.webos.service.jsserver` 包的文件。
3. 利用 jsserver 漏洞运行该包。
伪造 `com.webos.service.jsserver` 包的入口点是 `main.js`,它会以 root 权限执行。它负责启动 `autoroot.sh`,该脚本会安装 Homebrew Channel 并启用持久化。
## 运行
使用 Python 运行脚本,并传入你电视的 IP 地址:
```
python slopbro.py [--debug] [--local-ip ] [--asset-source ]
```
*注意:在 webOS 7 及以上版本中,你可能需要使用 `python3` 而不是 `python`。*
在目标电视上接受配对提示。(凭证将保存在 `.key` 文件中以便日后使用。)
### 选项
`--debug` 选项可在电视屏幕以及 `autoroot.log` 中启用额外的输出。
`--local-ip` 选项允许你手动指定本地 IP 地址,如果脚本猜测错了 IP 地址,这会很有用。
`--asset-source` 选项允许你指定脚本应从何处查找资产(`auto`、`dir`、`embedded`)。
## 打包
除了从 `wwwroot` 目录提供文件外,SlopBro 还可以作为嵌入了资产的单个文件进行分发。
### 构建单文件包
使用以下命令生成独立文件:
```
python tools/package_single_file.py --out dist/slopbro_packed.py
```
然后直接运行它(无需 `wwwroot`):
```
python dist/slopbro_packed.py 192.168.1.50
```
你还可以显式指定它应从何处查找资产(`embedded`、`dir`):
```
python dist/slopbro_packed.py --asset-source embedded 192.168.1.50
```
默认情况下(`auto` 模式),如果两者都存在,优先使用嵌入的资产而不是文件。
## 故障排除
- `slopbro.py` 会猜测本地 IP 地址是什么,并且可能会猜错。如果你没有看到任何连接返回到 HTTP 服务器,请尝试使用 `--local-ip` 手动指定 IP 地址。
- 确保你的电视与运行 SlopBro 的位置之间没有任何奇怪的网络问题。请记住,连接需要在双向都能正常工作。
## 许可证
本程序是自由软件:你可以根据自由软件基金会发布的 GNU Affero General Public License 的条款重新分发或修改它,无论是该许可证的第 3 版,还是(由你选择)任何更高版本。
本程序的发布是希望它能有用,但没有任何保证;甚至没有适销性或特定用途适用性的暗示保证。有关更多详细信息,请参阅 GNU Affero General Public License。
你应该已经随本程序收到了一份 GNU Affero General Public License 的副本。如果没有,请参见 。
有关详细信息,请参阅 `COPYING`。
标签:Go语言工具, PoC, Python, Web报告查看器, 协议分析, 数据可视化, 无后门, 智能电视, 暴力破解, 权限提升, 逆向工具