Почему нельзя найти + :: 0: 0 ::: в / etc / passwd?

Решение, которое не печатает запятую в конце строки:

{printf("%s", NR == 1 ? $0 : ","$0);} END {printf("\n");} file

Пояснение

Когда видна первая строка (NR == 1), печатается только она; в противном случае запятая и строка передаются в качестве аргументов printf.

Это решение использует троичный оператор AWK ?:, то есть:

NR == 1 ? $0 : ","$0

Если переменная NR равна 1, то в качестве аргумента в printf отправляется первая строка; в противном случае отправляется запятая, скомпонованная с текущей строкой.

3
24.03.2019, 15:52
1 ответ

Такие записи, как +::0:0:::, могут работать должным образом, только если в вашем файле /etc/nsswitch.confесть passwd: compat. Если вместо этого вы используете passwd: files nis, эта запись не будет иметь ожидаемого эффекта.

По крайней мере, согласно nsswitch.conf(5)справочной странице моей системы Debian 9, этот синтаксис в любом случае не кажется допустимым :он должен быть либо +user::0:0:::, где userбудет именем пользователя NIS, которому будет предоставлен root доступ в этой системе или просто +, который включает всех пользователей NIS, за исключением тех, которые ранее были исключены с помощью синтаксиса -userили -@netgroup, без переопределения указанных NIS -значений UID/primaryGID.

В более широком смысле +::0:0:::может означать, что «каждый пользователь NIS является пользователем root в этой системе», что в первую очередь кажется плохой идеей.

Опасность заключается в том, что для приложения, которое выполняет аутентификацию самостоятельно путем чтения /etc/passwdи /etc/shadow, но не реализует расширения синтаксиса стиля passwd: compat, эта строка буквально означает «пользователь +имеет UID 0 и GID 0 и не имеет пароля".

Если вы используете такое приложение, это уязвимость «введите +в приглашение имени пользователя, просто нажмите введите в приглашении пароля; теперь у вас есть root-доступ». Поскольку действительной оболочки нет, вы можете не получить доступ к оболочке немедленно :, но просто наличие доступа с UID 0 через приложение, вероятно, дает сообразительному злоумышленнику достаточно рычагов для получения полного доступа к корневой оболочке вскоре после этого.

4
27.01.2020, 21:17

Теги

Похожие вопросы