Одна из наиболее частых рекомендаций по безопасности — это запускать приложения и сервисы под урезанной учеткой. Полностью проблемы безопасности это не решает, но жизнь атакующему осложнить может. Таким образом, что бы ты ни ломал/пентестил: домен Active Directory, машину, на которой хостится сайт, — перед тобой почти обязательно встанет задача поднятия своих привилегий. От ее решения будет зависеть, сможешь ли ты продвинуться дальше или нет. Сегодня мы постараемся рассмотреть всё (ну или почти всё), что касается продвижения вверх в Windows-системах.

WARNING

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

 

Flashback

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

 

1. Сохраненные credentials

Пожалуй, самый легкий способ поднять привилегии, к которому стоит прибегнуть в первую очередь, — это поискать в системе сохраненные учетные данные админского аккаунта. Самое простое — это файлы, оставшиеся после автоматической установки (unattended installation). Общеизвестно, что человек — существо ленивое, поэтому системные администраторы будут пытаться автоматизировать установку софта, и тогда в системе можно обнаружить файлы:

C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\system32\sysprep.inf
C:\Windows\system32\sysprep\sysprep.xml

В них в открытом виде или закодированные в Base64 будут лежать пароли администратора. Кстати, в Metasploit есть модуль, позволяющий автоматизировать поиск, — post/windows/gather/enum_unattend.

Если на машине установлен IIS, то нелишним будет проверить файлы

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
C:\inetpub\wwwroot\web.config

в которых также может присутствовать пароль администратора в plaintext.

 

2. Group Policy Preferences

Еще есть вариант с настройками групповой политики безопасности. Файл Groups.xml, содержащий пароль, обычно закеширован локально, или он легко может быть получен с контроллера домена, так как каждый пользователь домена имеет к нему доступ на чтение. Пароль хранится в зашифрованном виде, но Microsoft опубликовала ключ, поэтому он может быть легко расшифрован. В случае локальной машины проверяем наличие файла по следующему пути:

C:\ProgramData\Microsoft\Group Policy\History\*\Machine\Preferences\Groups\Groups.xml

Для контроллера домена:

\\????\SYSVOL\\Policies\????\MACHINE\Preferences\Groups\Groups.xml

В последнем случае вместо ???? указываем имя домена. Для тех, кому интересно, 32-битный AES-ключ выглядит следующим образом:

4e 99 06 e8  fc b6 6c c9  fa f4 93 10  62 0f fe e8
f4 96 e8 06  cc 05 79 90  20 9b 09 a4  33 b6 6c 1b

Но чтобы самостоятельно не заморачиваться с расшифровкой пароля, можно воспользоваться модулем Metasploit post/windows/gather/credentials/gpp. Или же PowerSploit:

Get-CachedGPPPassword // Для локальных файлов групповой политики
Get-GPPPassword // Для файлов групповой политики, сохраненных на котроллере домена 

Подробнее о том, как вытаскивать пароли из групповой политики, можно посмотреть тут и тут.

 

3. Taskschd.msc

Во времена Windows XP был интересный прием поднять привилегии до системных. Проворачивался он просто:

at 14:50 /interactive command

Правда, для запуска утилиты at требовались административные привилегии, поэтому можно было повыситься только от администратора до NT-AUTHORITY\SYSTEM. Но оказывается, что времена планировщика задач еще далеко не прошли. Если выполнить в консоли команду net user, то можно увидеть список локальных пользователей. С помощью данной команды можно также добавить локального пользователя (если есть соответствующие привилегии):

net user USERNAME PASSWORD /add

Однако если выполнить команду от имени обычного пользователя, то получим в ответ системную ошибку 5, или, проще говоря, «доступ запрещен». В такой ситуации нам поможет возможность импортировать таски в планировщик задач. Каждую задачу можно описать в виде XML-файла (подробнее о его формате можно почитать на сайте мелкомягких). Готовый файл будет выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>1337-01-01T13:37:07.9601296</Date>
    <Author>NT AUTHORITY\SYSTEM</Author>
  </RegistrationInfo>
  <Triggers />
  <Principals>
    <Principal id="Author">
      <UserId>PCNAME\USERNAME</UserId>
      <LogonType>S4U</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>Parallel</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
    <RestartOnFailure>
      <Interval>PT1M</Interval>
      <Count>3</Count>
    </RestartOnFailure>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>%USERPROFILE%\Desktop\EXPLOIT.JS</Command>
    </Exec>
  </Actions>
</Task>  

Подробнее о каждом из параметров можно будет почитать тут. Для нас наибольший интерес представляют <RegistrationInfo><Author> — тот, от имени кого будет зарегистрировано задание, а также <Principals><Principal><UserId> — от имени кого оно будет запущено. Здесь мы указываем нашего непривилегированного пользователя. Ну и самое интересное — <Actions><Exec>, который определяет, что будет запущено. В данном случае это JS-скрипт EXPLOIT.JS, лежащий на рабочем столе пользователя. Содержание этого скрипта ограничивается только твоей фантазией. Самый банальный пример — добавление нового пользователя:

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


9 комментариев

  1. trashographer

    30.06.2017 at 15:25

  2. dmitryzorg

    30.06.2017 at 16:15

  3. cyberlight

    30.06.2017 at 19:14

    0тличная статья! Спасибо!

  4. Nikolay Markin

    03.07.2017 at 00:27

    А «почистить хвосты» после unattended installation?

  5. urban66

    07.07.2017 at 07:27

    На самом деле, информация очень старая Potato и его производные залатаны более года назад.
    Из реально работающих методов в наши дни только 2 и 11.
    Еще хочу отметить сплоит ms16-135
    https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-MS16-135.ps1
    Sherlock — мусор. Ложные срабатывания, очень старые уязвимости.

  6. widesmile

    07.07.2017 at 09:24

    Пункт 3 вы вообще проверяли? Это уже давно не работает, если вообще когда-то работало… Такую задачу создать не получится с правами пользователя.

  7. urban66

    26.07.2017 at 20:57

    3й пункт на XP работал, когда я в школу ходил

  8. Leopard

    23.01.2018 at 15:37

    Очень нужно, поделитесь плиз этой темой 🙂 leopard176@yahoo.com

  9. Leopard

    24.01.2018 at 08:29

    Админ поделись пожалуйста темой, мне нужно поднять права на сервере 🙁 буду очень благодарен. Я делюсь вашим сайтом во всех соц сетях)

Оставить мнение

Check Also

Android под колпаком. Как раскрывают кейсы взлома мобильных устройств

Личная и деловая переписка, деньги, фотографии, заметки, планы на будущее и удаленный дост…