On every system there’s a nobody who dreams of being a somebody.
В каждой системе есть никто, отчаянно пытающийся стать кем-то.
Что происходит?
$ id
uid=1002(guest) gid=1002(guest) groups=1002(guest)
$ sudo -l
[sudo] password for guest:
Sorry, user guest may not run sudo on server.
Пользователь выясняет, каков его логин, uid, в какие группы он входит (как выясняется – ни в какие, за исключением его собственной).
Пользователь хочет узнать,
какие команды он может выполнить через sudo
.
Оказывается – никаких.
Как показывает дальнейшее, такое бесправие огорчает пользователя, он хочет изменить положение дел.
Пользователь начинает собирать
определенную информацию о системе,
записывая все найденное в
файл /tmp/inf
, очевидно,
рассчитывая затем спокойно изучить полученные данные.
Список пользователей, входящих в группу 0 (суперпользователи):
$ echo +++ super-users >>/tmp/inf; grep -v -E "^#" /
etc/passwd |awk -F: '$3 == 0 { print $1}' >>/tmp/inf
Файлы, на которых установлен бит setuid
или setgid
, то есть файлы,
которые исполняются не с правами того, кто
запускает, а с правами владельца файла:
$ echo +++ sgid-suid >>/tmp/inf; find / -perm -g=s -
o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {}
\; 2>/dev/null >>/tmp/inf
Каталоги и файлы, доступные на запись для всех. Их содержимое можно поменять по своему усмотрению, влияя таким образом на работу других пользователей или системы в целом.
$ echo +++ world-writeable-dirs >>/tmp/inf; find / -
perm -o+w -type d 2>/dev/null >>/tmp/inf
$ echo +++ world-writeable-files >>/tmp/inf; find /
-xdev -type f \( -perm -0002 -a ! -perm -1000 \) -pr
int 2>/dev/null >>/tmp/inf
Файлы конфигураций, доступные на запись для всех.
Через такие конфигурации можно повлиять на работу
сервисов, запускаемых от имени других пользователей
или даже от root
‘а.
$ echo +++ writeable-configurations >>/tmp/inf; ls -
aRl /etc/ | awk '$1 ~ /w.$/' 2>/dev/null >>/tmp/inf
Процессы, запущенные в данный момент от root
‘а.
Если в соответствующих программах есть
известные уязвимости, их можно попытаться использовать.
$ echo +++ processes-running-by-root >>/tmp/inf; ps
aux |grep root >>/tmp/inf
В целом набор запросов не оставляет сомнений: пользователь хочет нештатно повысить свои привилегии в системе, и ищет для этого технические возможности.