• XSS.stack #1 – первый литературный журнал от юзеров форума

Уязвимость Dirty Sock позволяет перехватить контроль над Linux-системами

Desoxyn

mind-bender
Эксперт
Регистрация
01.10.2018
Сообщения
1 610
Решения
1
Реакции
2 990
Депозит
0.0001
При наличии доступа к зараженной системе баг может использоваться для создания нового аккаунта с правами суперпользователя.


На портале GitHub опубликован PoC-код для эксплуатации уязвимости (CVE-2019-7304), позволяющей создать новую учетную запись с правами суперпользователя. В основном проблема затрагивает Ubuntu, но также присутствует в других дистрибутивах Linux.
Уязвимость обнаружил специалист компании Shenanigans Labs Крис Моберли (Chris Moberly) в январе нынешнего года. Проблема, окрещенная Dirty Sock, не предоставляет возможность удаленно скомпрометировать систему, однако при наличии доступа к ней может использоваться для повышения привилегий и создания нового аккаунта с правами суперпользователя.
Проблема содержится в демоне Snapd, поставляемом в составе недавних версий Ubuntu и некоторых других дистрибутивов Linux (Debian, Arch Linux, OpenSUSE, Solus и Fedora). Snapd представляет собой REST API демон для управления snap-пакетами ("snaps"), позволяющий загружать и устанавливать приложения в формате .snap. Пользователи могут взаимодействовать с ним с помощью snap клиента, входящего в тот же пакет.
Как выяснил Моберли, Snapd раскрывает локальный REST API сервер, с которым snap-пакеты взаимодействуют во время установки новых приложений. Специалист нашел способ обойти ограничения на сервере и получить доступ ко всем функциям API, включая доступные только пользователям с правами суперпользователя.
Опубликованный исследователем PoC-код включает два эксплоита, которые могут использоваться для эксплуатации API и создания новый учетных записей с правами суперпользователя. Вредоносный код может быть запущен непосредственно на инфицированной системе либо скрыт внутри вредоносных snap-пакетов.
Уязвимость Dirty Sock затрагивает версии Snapd с 2.28 по 2.37. Разработчик Snapd компания Canonical уже исправила проблему с релизом версии 2.37.1 продукта. Кроме того, Canonicalвыпустилаобновления безопасности для Ubuntu Linux, в котором Snapd активирован по умолчанию. Также доступны соответствующие обновления для Debian, Arch Linux, OpenSUSE, Solus и Fedora.
 
CVE-2019-7304

Для проверки систем на наличие уязвимости опубликовано два прототипа эксплоита - первый позволяет завести нового пользователя в системе, а второй даёт возможность установить любой snap-пакет и запустить код с правами root (через установку пакета в режиме "devmode" с прикреплением обработчика, вызываемого с привилегиями root при установке пакета).

Уязвимость вызвана отсутствием в snapd должных проверок при обработке адреса внешнего сокета в процессе оценки прав доступа для Unix-сокетов. При обработке запросов к API через Unix-сокет проверяется ассоциированный с соединением UID пользователя и на основании его принимается решение о предоставлении доступа. Пользователь может прикрепить к имени файла с сокетом строку ";uid=0;" (например, создать сокет "/tmp/sock;uid=0;") и данная строка будет обработана как часть адреса клиентского сокета.

При парсинге параметров в snapd идентификатор пользователя выделяется через цикличный поиск по маске ";uid=" в строке, также включающей имя файла с сокетом (например, при создании клиентского сокета /tmp/sock;uid=0; эта строка примет вид pid=5275;uid=1000;socket=/run/snapd.socket;/tmp/sock;uid=0;. Таким образом, при наличии строки ";uid=0;" в имени сокета идентификатор будет выделен из неё, а не из штатного параметра с реальным UID. Локальный атакующий может использовать данную ошибку для доступа через сокет /run/snapd.socket к привилегированным API snapd и получения полномочий администратора (в вышеупомянутых эксплоитах используется обращение к API v2/create-user и /v2/snaps).
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пользователь может прикрепить к имени файла с сокетом строку ";uid=0;" (например, создать сокет "/tmp/sock;uid=0;") и данная строка будет обработана как часть адреса клиентского сокета.
Линукс и все что с ним связано это вообще сборная солянка из говнокода.

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

Код:
    http_req = ('POST /v2/create-user HTTP/1.1\r\n'
                'Host: localhost\r\n'
                'Content-Length: ' + str(len(post_payload)) + '\r\n\r\n'
+ post_payload)
Это просто ебан#й пиздец. Позорнее только шеллшок был. И после этих багов линуксоиды всерьез говорят, что винда - решето. Ну-ну
 
Линукс и все что с ним связано это вообще сборная солянка из говнокода.

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

Код:
    http_req = ('POST /v2/create-user HTTP/1.1\r\n'
                'Host: localhost\r\n'
                'Content-Length: ' + str(len(post_payload)) + '\r\n\r\n'
+ post_payload)
Это просто ебан#й пиздец. Позорнее только шеллшок был. И после этих багов линуксоиды всерьез говорят, что винда - решето. Ну-ну

А почему винда не решето?
 
Линукс и все что с ним связано это вообще сборная солянка из говнокода.
нуу на старуху тоже бывает проруха ) везде хватает, в лине тоже. количество только разное

# dirty_sock: Privilege Escalation in Ubuntu (via snapd)
In January 2019, current versions of Ubuntu Linux were found to be vulnerable to local privilege escalation due to a bug in the snapd API. This repository contains the original exploit POC, which is being made available for research and education.
https://www.exploit-db.com/raw/46361
 
Пожалуйста, обратите внимание, что пользователь заблокирован
По забавному совпадению у меня линукс только что выбил кернелпаник, как я начал писать в этом посту. линукс ожил, мстит((
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх