前因
为了让当前用户变为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后可以查看版本。
版本是
4.2.5的,通过google搜索历史版本,最接近的也是2019年的rce漏洞,版本也比较低,这里利用不了。后来发现设置里有个选项 Torrent完成后运行外部程序
直接设置bash反弹命令,然后本地监听端口。下载个热门小文件,用来触发这个反弹。
如何修改
通过反弹的shell可以看到当前用户还是个普通用户权限(奇怪,为啥不是root权限)。
直接使用
sed -i 's/javashell:x:0:0/javashell:x:1000:1000/g' /etc/passwd修改文件提示权限不足,想到之前因为修改了/etc/passwd文件,按道理应该有root权限才对。这里用su javashell 进行重新切换到javashell用户。
输入密码即可 (又一个疑问,为啥这里可以可交互?) 再次输入之前修改文件的命令即可(这里倒是变成不可交互了)
总结
通过qBittorrent Web UI设置完成下载后执行外部命令,利用反弹shell进行操作,修改文件。
所以互联网中如果存在弱口令,那就可以被用来干坏事了。
github已有相关issues讨论,但是看上去修复不积极更像是: 这不是bug 是feature
https://github.com/qbittorrent/qBittorrent/issues/22902
https://github.com/qbittorrent/qBittorrent/issues/20932