Локальный взлом Linux ( Часть Вторая )

Underground Archive
MAKS

В прошлой статье я писал возможность получить права root при физическом доступе к компьютеру. Теперь я опишу возможность взлома системы с помощью консоли. Хотя если говорить честно данные методики могут быть применены и удаленно, т.е. если есть шелл. С начала нужно узнать какие все – таки пользователи и группы находятся на данной машине, делается это командами:

cat /etc/passwd для пользователей

cat /etc/group для групп

Описывать поля этих файлов я не буду т.к. все это можно найти в документации. Итак мы выбираем себе имя пользователя и переходим собственно к методам.

History

По – русски история :) Тут обычно хранятся команды набранные пользователем. Хранится это добро в файле

.bash_history

Просмотреть историю можно командой

history

Если повезет то можно найти пароли (какой – нибудь ламак ввел не туда пароль :) хотя такое бывает редко). В крайнем случае мы узнаем команды которые используются пользователем.

SUID / SGID

Установка бита SUID / SGID для владельца бинарного файла приведет к тому что файл будет выполнен от имени владельца этого файла. А если пользователь root ? Тогда файл будет выполнен со всеми привилегиями :) Нам остается только найти такие файлы и добавить нужный нам код. Ищутся такие файлы следующей командой:

find / -type f \( -perm -04000 -o -perm -02000 \)

Файлы с разрешенной записью

Ищутся файлы командой:

find / -perm -2 -print

В грамотно настроенной системе нам маловероятно позволят писать куда – нибудь кроме домашнего каталога. Хотя некоторые пакеты позволяют изменять настройки в своих конфигурационных файлах. Некоторые файловые системы могут быть также в режиме записи, в общем нужно просто поискать.

Файлы без хозяина

Ну тут все просто, ищем такие файлы

find / -nouser -o -nogroup -print

и становимся их хозяином

chmod u+w имя файла

Изменение переменных оболочки

Для сначала получим значения переменной PATH, делается это командой

echo $PATH

и мы получим что – то похожее на это

/usr/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/home/maks/bin

Только что мы получили пути по которым оболочка ищет программы. Пользователь вызывает команды из оболочки без указания пути то оболочка проверяет каталог/usr/bin после этого /bin и т.д. Если программы нет в указанных каталогах то выводится сообщение о ошибке. Задача состоит в том что бы изменить эту переменную на наш каталог, где будут лежать измененные программы. И когда пользователь запустит например команду mount то сначала выполнится наша программа которая сделает свое черное дело а затем чтобы не вызывать подозрений выполнит уже настоящую команду mount.

Группы

В Linux есть такое понятие как группы. Каждый пользователь является членом какой – нибудь группы. В разных дистрибутивах по разному. Узнать какие группы и какие пользователи входят в группы можно в файле

/etc/group

Для добавления пользователя в какую – ни будь группу можно изменить этот файл или воспользоваться утилитой

groupadd -g

Существуют еще так называемые групповой пароль. Она создает пароль для группы и теперь если знать этот пароль мы можем стать членом этой группы используя команду newgrp.

На этом я думаю хватит. Конечно существуют и другие способы получения прав root на машине которые я не описал в данной статье, гораздо более сложные чем эти. Но для начала этого должно хватить.

(c) MAKS
X