场景是带有 Web 服务器的 Ubuntu 系统:
- SSH 已禁用
- 用户没有任何终端访问权限
- UFW 仅允许 HTTP 和 HTTPS
- PHP 和 Apache 在 www-data 下运行
- www-data 未添加到 suedors
考虑到系统中上传了 php shell 的用户,该用户是否只需要知道 root 密码就可以提升权限?考虑到 system() 函数只能在 www-data 下运行 shell 命令。
答案1
默认情况下,除非您弄乱了它,否则 Ubuntu 没有“root
密码”。这不是空密码,而是(读取)中没有明文(输入)密码加密的
“加密密码” 。Ubuntu 使用()执行系统管理任务。/etc/passwd
man 5 passwd
sudo
man sudo sudoers
Unix/Linux 上的密码检查工作方式如下:检查过程从用户/etc/passwd
输入的加密密码字段中提取三部分数据:1) 实际的加密密码;2) 用于加密密码的加密算法;3) “盐”,用于增加随机性的量。然后,它使用相同的加密算法和“盐”加密您提供的(纯文本)密码。如果加密结果与实际加密密码相同,则您输入的密码正确。
通过将加密密码设置为永远不会由任何密码加密产生的字符串,可以防止登录。
当然,如果知道 的密码,www-data
也可以。su otheruser
otheruser