Почему всех так волнует файл 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

Может кто-нибудь объяснить мне, почему это плохо, если какой-то злой парень может получить этот файл моего рабочего сервера?

funguy
источник
19
В прежние времена он содержал зашифрованные пароли для каждого пользователя - где сейчас находится: x :. Если вы его получили (что было легко, так как все читают, и вам нужен только один логин), вы можете взломать пароли. Теперь они хранятся в / etc / shadow, который не может быть прочитан всеми, поэтому менее вероятно, что он «выйдет», но у которого будет такая же проблема, если это произойдет.
Марк Смит
8
Для одного я могу сказать, что у вас есть веб-сервер на этой машине. В сочетании с вашим IP-адресом это может быть взломано>: - D
Rinzwind
3
@MarkSmith Он содержал зашифрованные пароли, когда? AFAIK начал жизнь как хешированные пароли. Конечно, так как я впервые использовал Unix в 1982 году.
user207421
3
@funguy: пользователь www-данных обычно используется веб-серверами. Ubuntu и, вероятно, Debian использовали этого пользователя в качестве пользователя Apache по умолчанию.
Ли Райан
3
@funguy www-data - пользователь Apache по умолчанию. Есть и другие: uucp - это unix to unix copy; это означает, что вы копируете файлы между системами. И "irc" и "gnats" также легко обнаружить.
Rinzwind

Ответы:

47

Ключевым моментом является то, что Пентестеры / белые шляпы / этические хакеры, а также черные шляпы /etc/passwd как цель proof of concept, как тест на возможность получения доступа к системе.

Технически /etc/passwdэто не так страшно. В прошлом он используется для хранения личных данных, паролей , очевидно, но в настоящее время вы должны были бы быть более обеспокоены /etc/shadow- большинство систем Linux в настоящее время используют shadowнабор утилита , чтобы сохранить хешированную и соленый пароль /etc/shadow, который в отличии от /etc/passwdне мир -удобочитаемый. (если вы не используете pwunconvкоманду, которая фактически перемещает хешированные пароли обратно в `/ etc / passwd).

Единственная более или менее конфиденциальная информация - это имена пользователей. Если у вас есть sshdили telnetна сервере и имя пользователя со слабым паролем, существует вероятность атаки методом перебора.

Кстати, ваш самый тот же вопрос был задан ранее . Здесь я просто изложил некоторые из концепций, упомянутых там уже.

Небольшое дополнение: это немного надумано, но я заметил, что у вас есть bashroot-оболочка. Теперь предположим, что у вас в системе есть пользователь, у которого в bashкачестве оболочки даже хуже - этот пользователь sudoer. Теперь, если ваш bash устарел или не исправлен, злоумышленник может попытаться использовать уязвимость Shellshock, чтобы украсть данные или выполнить бомбу-бомбу , временно отключив вашу систему. Так что да, технически /etc/passwdэто не имеет большого значения, но оно дает злоумышленнику представление о том, что делать

Дополнительное редактирование, 18.11.2016

Некоторое время использовав сервер Ubuntu в Digital Ocean, я обратил внимание, что большинство грубых атак на мой сервер было выполнено для rootпользователя - 99% записей для ошибочного пароля /var/log/auth.logбыли root. /etc/passwordКак я уже упоминал ранее, злоумышленник видит список пользователей, и не только пользователей системы, но и пользователей, что означает больше потенциальных мест для атаки. Давайте помнить, что не все пользователи заботятся о безопасности и не всегда создают надежный пароль, поэтому ставка злоумышленника на человеческую ошибку или чрезмерную уверенность имеет довольно высокую вероятность получения джекпота.

Сергей Колодяжный
источник
6
+1, отличный ответ. В дополнение к этому я хотел бы также сказать, что в целом информация - это сила; оставляя в стороне печально известный «Шеллшок», можно, например, собрать информацию о запущенных процессах, которые также могут быть использованы; например, на компьютере OP работает Apache, и это еще одна потенциальная дыра, оставшаяся открытой
kos
1
Хм ... Так вы бы предложили изменить имена пользователей по умолчанию, чтобы сбить с толку злоумышленника?
Фридо
@ Свобода Это не помогает. Идентификатор пользователя и группы остаются неизменными, если вы измените вход в систему. Например, вот мой TestUser: 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. Если пароль не изменился, злоумышленник может сделать предположение и все равно взломать систему. Требование истечения срока действия пароля и его смены время от времени является лучшим подходом, но также не пуленепробиваемым.
Сергей Колодяжный
1
Изменение имен пользователей по умолчанию полезно для тех учетных записей, которые имеют SSH-вход (или другие удаленные входы). Так же меняется порты по умолчанию для этих логинов, конечно. Все, что позволит вам очистить ваши журналы от миллиардов случайных сканирований, выполненных детскими сценариями, будет означать, что вы можете сосредоточиться на более преднамеренных атаках. Если ваши пользовательские имена появляются в ваших журналах неудачного входа в систему, вы знаете, что это серьезная попытка войти, а не на машине.
Деви Морган
11

Чтобы войти в систему, вам нужно знать как имя пользователя, так и пароль.

/etc/passwd предоставляет информацию о пользователях, которая дает вам половину необходимой вам информации и используется для добавления хэша вашего пароля.

Хеш - это что-то, вычисленное по вашему паролю. Трудно найти пароль из хэша, но не наоборот. Если у вас есть оба варианта, вы можете попытаться перебором паролей, чтобы найти пароль в автономном режиме, тогда пытайтесь подключиться к компьютеру только после того, как вы его нашли.

Сегодня безопасность улучшена, потому что хеши хранятся в другом файле, /etc/shadowкоторый по умолчанию не читается большинством пользователей.

Но, если бы у меня был доступ к обоим, /etc/passwdи /etc/shadowя, вероятно, мог бы найти ваш пароль, используя атаку «словарь». Поскольку я могу сделать это локально на моей машине, вы не заметите много неудачных попыток найти ваш пароль, и мне нужно будет подключиться к вашей машине снова, только когда я узнаю пароль. Тогда я свободен делать все, что захочу.

Здесь больше информации в Википедии

Уоррен Хилл
источник
Похоже, вам следует упомянуть «радужные таблицы», чтобы дать представление о том, как работает эта атака грубой силой.
Рик Чатем