Демонстрация уязвимости в Ubuntu 9.04

15

Для класса по информационной безопасности я хочу продемонстрировать повышение привилегий студентам. Для этого я просмотрел exploit/linux/localсписок в Metasploit Framework, обнаружив (среди прочего) exploit/linux/local/sock_sendpageс августа 2009 года.

Я установил виртуальную машину с 32-битным Ubuntu Server 9.04 ( http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso ) с апреля 2009 года. uname -rДает мне 2.6.28-11-generic. По описанию подвига

Считается, что затронуты все версии Linux 2.4 / 2.6 с мая 2001 года: от 2.4.4 до 2.4.37.4 включительно; 2.6.0 до 2.6.30.4 включительно

Таким образом, кажется, что сервер Ubuntu, который я настроил, должен быть пригоден для демонстрации. Однако я не смог заставить его работать.

Я добавил (обычного) пользователя на сервер и SSH доступ работает. Из Metasploit Framework я могу создать сессию SSH, используя auxiliary/scanner/ssh/ssh_login. Однако, когда я запускаю эксплойт, я получаю

[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)

[*] Exploit completed, but no session was created.

Я не получаю никакой дополнительной информации, даже когда установлен DEBUG_EXPLOITв true. /tmpявляется записью, также из сеанса Metasploit SSH:

$ sessions -c "touch /tmp/test.txt"
[*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted])

$ sessions -c "ls -l /tmp"
[*] Running 'ls -l /tmp' on shell session 1 ([redacted])

total 0

-rw-r--r-- 1 [redacted] [redacted] 0 2016-03-28 09:44 test.txt

Я также попытался установить WriteableDirдомашний каталог пользователя на сервере, но без каких-либо изменений. Что мне здесь не хватает? Разве эта версия сервера Ubuntu (которую я специально не обновил!) Не уязвима?

Андреас Унтервегер
источник
По крайней мере, вы должны проверить журналы виртуальной машины.
Клаату фон Шлакер
@KlaatuvonSchlacker: Что именно я ищу? Я просто перезапустил эксплойт, и в журнал ни одной виртуальной машины не было добавлено новых записей.
Андреас Унтервегер

Ответы:

16

Релиз 9.04 поддерживался до 23 октября 2010 года. Об обнаруженной вами уязвимости было сообщено в августе 2009 года. Кажется разумным, что, поскольку этот выпуск все еще был актуальным и поддерживался в то время, ISO-файл был исправлен, и вы скачали версию, которая является больше не уязвим.

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

Почему бы вам не попробовать новый подвиг? Нечто подобное CVE-2013-2094, которое также должно повлиять на Ubuntu , например.

Тердон
источник
Кажется, нет модуля Metasploit для CVE-2013-2094. Есть ли какие-либо другие эксплойты с модулями Metasploit, которые могут работать? Эксплойт / linux / local / pkexec 2011 года показался многообещающим, но дает те же результаты, что и эксплойт / linux / local / sock_sendpage .
Андреас Унтервегер
@AndreasUnterweger о, извините, я не понял, что не было никакого модуля. Я просто нашел это случайно, ища «повышение привилегий». Что касается pkexecэксплойта, вы проверили версию libpolkit-backend-1? На странице, на которую вы ссылаетесь, указано, что для этой уязвимости требуется более старая версия, чем 0.94-1ubuntu1.1.
Terdon
Согласно dpkg -s libpolkit2установленной версии 0.9-2ubuntu1.
Андреас Унтервегер
@AndreasUnterweger в таком случае, я понятия не имею. Сожалею. Возможно, вам лучше написать вопрос об информационной безопасности , задав конкретную комбинацию эксплойта и распространения привилегий, которая, как известно, работает.
Terdon
@AndreasUnterweger и ThorbjørnRavnAndersen, пожалуйста, примите это обсуждение в чате . Я уже переместил ваши предыдущие комментарии туда.
Terdon
1

Это не отвечает на ваш конкретный запрос, а дает вам более удобный выбор, чтобы показать вашим студентам ...

Возможно, вы также захотите рассмотреть следующие две неудачные конфигурации администратора, которые могут привести к непривилегированному закрытию на 'nix (есть много других способов неправильно сконфигурировать коробку' nix, которые могут разрешить прививку, поэтому, пожалуйста, учтите, что это вызывает аппетит) ....

  1. исполняемые двоичные файлы suid и guid, принадлежащие корневой / корневой группе ( find / -uid 0 -perm -4000 -type f 2>/dev/nullи find / -uid 0 -perm -2000 -type f 2>/dev/null), и посмотреть, доступны ли они для записи во всем мире, чтобы позволить пользователю с низким уровнем привилегий изменять их; папка, в которой они находятся, доступна для записи вашему пользователю с низким уровнем привилегий - для возможного внедрения пути к библиотеке. Что насчет библиотек, которые они используют - можно ли их изменить: проверьте значения заголовков any DT_RPATHи DT_RUNPATHELF в двоичных файлах, используя одну из следующих команд:

    • objdump -x ...
    • readelf -a ...
    • scanelf (от PaX)
    • elfdump (от Солнца)
    • readelf -a binary | grep PATH
  2. sudoers недостатки

    • NOPASSWD - Локальный злоумышленник может использовать этот доступ для повышения своих привилегий в операционной системе, когда пользователь забывает заблокировать свой экран

    • Отсутствуют исполняемые файлы в Sudoers - некоторые исполняемые файлы в /etc/sudoersфайле не существуют. Если исполняемые файлы созданы, их можно запустить через sudo от имени пользователя root, что позволило бы повысить привилегии.

    • Записи осиротевших судористов - /etc/sudoersфайл может содержать несколько потерянных записей, для которых в /etc/passwdфайле не настроена соответствующая учетная запись . Если бы пользователь был создан с одним из осиротевших имен, он предоставил бы ему средство для повышения привилегий до полного корневого доступа.

    • Некоторые Программы не должны быть похожи на sudo vi, использовать :eили Ctrl o использовать :wдля доступа /etc/shadow.

    • Неправильно продуманная / плохая команда, используемая в файле sudoers - я часто вижу httpdв sudoers - поэтому попробуйте как пользователь с низким уровнем привилегий с доступом sudo выполнить только эту команду ( sudo -lили sudo -llпокажет, что может делать пользователь): sudo /usr/bin/httpd -t /etc/shadowи посмотрите на ошибку.

    • файловые команды и файлы, упомянутые в sudoers, слабы - см. мой предыдущий параграф о двоичных файлах suid и guid, принадлежащих root

Ричард Браганса
источник
Кстати, вы также можете попробовать оригинальный код Спендера для модуля metasploit в случае, если модуль metasploit не совсем корректен: grsecurity.net/~spender/exploits
Ричард Браганса
Большое спасибо за перечисление этих предметов. Тем не менее, я боюсь, что обе группы предметов потребуют слишком много справочной информации и контекста от студентов - они едва знают Linux на данном этапе своего обучения. Я хочу показать им, что повышение привилегий - это реальная вещь, и что они всегда должны исправлять системы, за которые они / будут нести ответственность. По иронии судьбы я до сих пор не смог продемонстрировать фактическое повышение привилегий, как описано выше. РЕДАКТИРОВАТЬ: Я посмотрю на код Спендера, но в настоящее время, к сожалению, не хватает времени. Большое спасибо за ссылку.
Андреас Унтервегер