我正在读一本关于道德黑客的书,里面有一些 Python 示例,除非有人要求,否则我不会在这里发布,因为这不是 Stack Overflow。但是,我想知道,如果黑客试图访问 /etc/shadow 中的密码,他们如何在没有 root 访问权限的情况下做到这一点?他们无法复制它、打开它;等等。是否有一些暴力破解方法?
而且我的 /etc/shadow 文件不是文本文件,而是影子文件。我对这些一无所知,在哪里可以学到?
答案1
为了了解黑客如何访问此文件,您必须像黑客一样思考,主要是跳出固有的思维模式,思考大多数人认为的访问文件的“正常”方法。
为此,有人可以访问可能具有 root 权限的守护进程,然后诱导此守护进程读取文件的内容/etc/shadow
。在我的职业生涯中,我见过许多开发人员或知识渊博的系统管理员以 root 身份运行 Tomcat 或 Apache 等应用程序的例子。
相同的方法也可用于增强文件的权限,但优秀的黑客不会做一些明显以至于被发现的事情,更安全地读取这些文件的内容并将它们藏在其他地方或从盒子中检索它们。
至于文件类型/etc/shadow
,在我的 CentOS 7.x 系统上它被清楚地标记为文本文件。
$ file /etc/shadow
/etc/shadow: regular file, no read permission
$ sudo file /etc/shadow
/etc/shadow: ASCII text
其权限如下:
$ ll /etc/shadow
----------. 1 root root 1150 Oct 29 11:44 /etc/shadow
并且每个用户的散列密码都是清晰可见的:
$ sudo grep vagrant /etc/shadow
vagrant:$1$sPqOnE53$gIcd5Q0xjmV9bM406mHpf/::0:99999:7:::
-或者-
$ sudo getent shadow | grep vagrant
vagrant:$1$sPqOnE53$gIcd5Q0xjmV9bM406mHpf/::0:99999:7:::
答案2
- 用户
/etc/shadow
在没有 root 权限的情况下无法访问,除非他们设法利用系统漏洞导致保护发生/etc/shadow
变化。但问题是,如果黑客设法利用系统漏洞获得 root 权限,您不希望他们能够简单地读取密码。 /etc/shadow
是(据我所知)文本文件。你为什么认为它不是?你试过用文本编辑器查看它吗?是否有文件管理器告诉你它是一个“影子文件”?那只是意味着它不知道,它正在做出最好的猜测。