我可以比较没有root访问权限的linux用户权限吗?

信息安全 linux 权限
2021-08-26 07:20:07

我在 RHEL 机器上泄露了两个 Linux 用户帐户(两者都没有 root 权限),我想确定哪个帐户在访问和特权方面对我更“有用”。有什么方法可以快速轻松地比较这两个帐户之间的权限/访问权限?

2个回答

以用户身份运行sudo -l以查看该用户可以通过运行获得哪些补充权限sudo您必须知道或收集用户的密码才能使用这些权限,除非 sudoers 规则之一被标记为NOPASSWD

运行id以查看用户属于哪些组。然后,您可能想四处看看这些组的价值

这两种是提升访问权限的常用方法,易于比较。以下是您可以查看的更多领域,需要进行更多工作才能获得有用的结果。

环顾四周,看看用户可以访问哪些文件。可以通过访问控制列表授予权限,而不仅仅是所有权和组成员资格。以下命令分别列出了用户可读、可写和可执行的文件,但不是所有用户。前两个不包括用户的主目录(其中包含其他人无法访问的文件并不奇怪),第三个仅针对 setuid/setgid 可执行文件。这些命令仅在根文件系统上运行,如果有更多已挂载的文件系统,则添加更多路径(或者删除-xdev和排除/proc,也许/sys相反)。

find -xdev / -path ~ -prune -o -readable ! -perm -a+r
find -xdev / -path ~ -prune -o -writable
find -xdev / -perm /u+s,g+s -executable ! -perm -a+x

检查用户的日志和配置文件,看看他们一直在做什么与管理相关的事情:shell 命令~/.bash_history(或其他文件,取决于用户选择的 shell 和配置),别名~/.bashrc(同样,或其他文件),中的脚本~/bin,…

检查用户是否有 SSH 密钥(在 中~/.ssh/),您可以使用这些密钥来提升您对其他机器的访问权限(或偶尔升级到同一台机器上的其他帐户)。您可以通过检查来查看用户登录了哪些站点~/.ssh/known_hosts,但默认情况下,地址是经过哈希处理的,因此您只能验证猜测。

如果这是台式机,请检查正在运行的密码管理器。您不太可能在服务器上找到一个,而是检查现有的 SSH 连接,您可能能够搭载(例如通过 X11 转发)。

电子邮件也可能提供线索。检查管理电子邮件转发给谁 ( ) 以及谁在/etc/aliases中拥有本地邮箱/var/mail/var/spool/mail

检查用户所在的组。检查这些组可以访问的内容

find / -group yourgroup

您还可以获取单个用户使用的所有文件

find / -user user

现在比较这些结果。从这里尝试查看哪些文件是世界可读的/etc/var尝试查看日志中是否还有任何有趣的内容(如果您可以访问它们)。