前因

为了让当前用户变为root权限,直接改了/etc/passwd文件中用户的用户ID和组ID(UID、GID)为0。万万没想到,改完后网络中断了,才想起来ssh配置了禁止root登录。这时候原先账户也登陆不了。

处理

扫描端口

因为人在外地,不能及时的本地登录更改,所以试试远程还有没有其他端口服务可以利用着改回去。
通过nmap扫描,只开放了nginx(纯静态)、qBittorrent Web UI(8080端口)和ssh端口(权限错误登录不了)。

探索qBittorrent Web UI

之前为了方便下载,安装了qBittorrent Web UI。先登录进去qBittorrent Web UI后可以查看版本。

42cd6fe6cf5b89ed97f1d3917e249c7e.png

版本是4.2.5的,通过google搜索历史版本,最接近的也是2019年的rce漏洞,版本也比较低,这里利用不了。
后来发现设置里有个选项 Torrent完成后运行外部程序
5b22e3f68245770324226560972fe2b0.png

直接设置bash反弹命令,然后本地监听端口。下载个热门小文件,用来触发这个反弹。

如何修改

通过反弹的shell可以看到当前用户还是个普通用户权限(奇怪,为啥不是root权限)。

81e4db1dbbaf7989295b51f2461ba942.png

直接使用sed -i 's/javashell:x:0:0/javashell:x:1000:1000/g' /etc/passwd修改文件提示权限不足,想到之前因为修改了/etc/passwd文件,按道理应该有root权限才对。这里用su javashell 进行重新切换到javashell用户。

输入密码即可 (又一个疑问,为啥这里可以可交互?) 再次输入之前修改文件的命令即可(这里倒是变成不可交互了)

a18f31af475b082e97d322cb39c16213.png

总结

通过qBittorrent Web UI设置完成下载后执行外部命令,利用反弹shell进行操作,修改文件。
所以互联网中如果存在弱口令,那就可以被用来干坏事了。
github已有相关issues讨论,但是看上去修复不积极更像是: 这不是bug 是feature
https://github.com/qbittorrent/qBittorrent/issues/22902
https://github.com/qbittorrent/qBittorrent/issues/20932