为什么每个人都这么关心etc / passwd?


36

这是我这个特定文件的无所不在的机器的内容:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/us$
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
syslog:x:100:103::/home/syslog:/bin/false

谁能解释一下为什么有些邪恶的家伙可以从我的生产服务器上得到这个文件,为什么这样不好呢?


19
过去,它包含每个用户的加密密码-现在是:x:的地方。如果得到了它(这很容易被所有人阅读,因此只需要一次登录),就可以用蛮力破解密码。现在,它们存储在/ etc / shadow中,因此所有人都不太可读,因此不太可能“退出”,但是如果这样做的话,也会有相同的问题。
马克·史密斯

8
我可以告诉你,这台机器上有一台网络服务器。结合您的IP地址,它可能会被黑客攻击>:-D
Rinzwind

3
@MarkSmith它何时包含加密的密码?AFAIK作为哈希密码开始了人们的生活。当然,自从我于1982
。– user207421

3
@funguy:www数据用户通常由Web服务器使用。Ubuntu和可能的Debian将此用户用作默认的Apache用户。
Lie Ryan

3
@funguy www-data是默认的apache用户。还有更多:uucp是unix到unix的副本;这意味着您在系统之间复制文件。而且“ irc”和““”也很容易被发现。
Rinzwind

Answers:


47

关键是Pentesters / white-hats / ethical hackers以及black-hat的目标/etc/passwdproof of concept,以测试是否有可能访问系统。

从技术上讲/etc/passwd并不那么可怕。过去,它过去通常用于存储私有数据和密码,但是从现在起,您需要更加担心/etc/shadow-如今,大多数Linux系统都使用shadow实用程序套件在/etc/shadow其中保留散列和加盐的密码,这与/etc/passwd世界不同可读。(除非使用pwunconv命令,否则实际上会将散列的密码移回`/ etc / passwd)。

唯一或多或少敏感的信息是用户名。如果您在服务器上sshdtelnet服务器上使用密码弱的用户名,则可能会发生暴力攻击。

顺便问一下,您之前也曾问过同样的问题。在这里,我只是重申了已经提到的一些概念。

小添加:这有点牵强,但我注意到您具有bashroot shell。现在,假设您的系统上有一个用户,bash其外壳甚至更糟-该用户更傻。现在,如果您的bash过时或未修补,攻击者可能会尝试利用Shellshock漏洞来窃取数据或执行分叉炸弹,从而使系统暂时瘫痪。所以是的,从技术上讲/etc/passwd没什么大不了的,但是它的确可以使攻击者了解一些有关如何尝试的信息

补充编辑,2016年11月18日

在Digital Ocean上使用Ubuntu服务器已有一段时间后,我注意到,针对我的服务器的大多数暴力攻击都是针对root用户进行的-密码输入失败的条目中/var/log/auth.log有99%是for root/etc/password就像我之前提到的,攻击者可以查看用户列表,而不仅仅是系统用户,还有人类用户,这意味着潜在的攻击场所。让我们记住,并非所有用户都具有安全意识,并且并非总是创建强密码,因此,攻击者将赌注押在人为错误或过分自信上,很有可能会中奖。


6
+1,好答案。除此之外,我还想说一句话,信息就是力量。撇开臭名昭著的Shellshock,可以收集例如有关正在运行的进程的信息,也可以利用这些信息;例如,在OP的计算机上,Apache正在运行,这是一个
尚未

1
嗯...所以您建议更改默认的用户名以使攻击者感到困惑吗?
Freedo 2015年

@Freedom没有帮助。如果您更改登录名,则用户名和组ID保持不变。例如,这是我的测试用户:testuser1:x:1001:1001:,,,:/home/testuser:/bin/bash。运行后sudo usermod testuser1 -l testuser2 sudo usermod testuser1 -l testuser2 ,该条目具有不同的用户名,但gid和uid相同: testuser2:x:1001:1001:,,,:/home/testuser:/bin/bash。如果密码未更改,攻击者可以猜测并且仍然可以破解系统。要求密码过期并不时更改密码是一种更好的方法,但也不是防弹的。
Sergiy Kolodyazhnyy,2015年

1
对于具有SSH登录名(或其他远程登录名)的帐户,更改默认用户名很有用。当然,更改那些登录的默认端口也是如此。任何使您无法清除脚本脚本对数十亿次随机驱动扫描的日志,都意味着您可以专注于更刻意的攻击。如果您的自定义名称出现在登录失败日志中,则说明您是一个认真的尝试,而不是开车闯入。
Dewi Morgan

11

为了登录到计算机,您需要同时知道用户名和密码。

/etc/passwd 提供有关用户的信息,这将为您提供所需信息的一半,并用于包含密码的哈希值。

散列是根据您的密码计算得出的。从哈希表中很难找到密码,反之则很难。如果两者都有,则可以尝试通过蛮力尝试离线查找密码,然后仅在找到计算机后尝试连接到计算机。

如今,安全性得到了改善,因为哈希存储在不同的文件/etc/shadow中,默认情况下,大多数用户无法读取这些文件。

但是,如果我可以同时访问这两者/etc/passwd,那么/etc/shadow我可能可以通过蛮力的“字典式”攻击找到您的密码。由于我可以在计算机上本地进行此操作,因此您不会发现许多失败的尝试来找到您的密码,并且仅在知道密码后才需要再次连接到您的计算机。然后,我可以自由地做我想做的事。

在Wikipedia上有更多信息


就像您可能应该在这里提到“彩虹表”一样,以便对暴力攻击的工作原理有所了解。
里克·查塔姆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.